From 36b909e117c3ccc22dd266a94479e2a02335d261 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 26 三月 2026 18:03:34 +0800
Subject: [PATCH] 军泰伟业 1.生产订单新增编辑逻辑重写
---
src/views/productionManagement/processRoute/processRouteItem/index.vue | 100 +++++++-------------------------------------------
1 files changed, 14 insertions(+), 86 deletions(-)
diff --git a/src/views/productionManagement/processRoute/processRouteItem/index.vue b/src/views/productionManagement/processRoute/processRouteItem/index.vue
index 65035ec..f1d46fc 100644
--- a/src/views/productionManagement/processRoute/processRouteItem/index.vue
+++ b/src/views/productionManagement/processRoute/processRouteItem/index.vue
@@ -63,11 +63,9 @@
<el-button
icon="Grid"
@click="toggleView"
- style="margin-right: 10px;"
>
鍗$墖瑙嗗浘
</el-button>
- <el-button type="primary" @click="handleAdd">鏂板</el-button>
</div>
</div>
<el-table
@@ -87,10 +85,6 @@
{{ getProcessName(scope.row.processId) || '-' }}
</template>
</el-table-column>
- <el-table-column label="浜у搧鍚嶇О" prop="productName" min-width="160" />
- <el-table-column label="鍥剧焊缂栧彿" prop="model" min-width="140" />
- <el-table-column label="瑙勬牸鍨嬪彿" prop="drawingNumber" min-width="160" />
- <el-table-column label="鍗曚綅" prop="unit" width="100" />
<el-table-column label="鏄惁璐ㄦ" prop="isQuality" width="100">
<template #default="scope">
{{scope.row.isQuality ? "鏄�" : "鍚�"}}
@@ -117,11 +111,9 @@
<el-button
icon="Menu"
@click="toggleView"
- style="margin-right: 10px;"
>
琛ㄦ牸瑙嗗浘
</el-button>
- <el-button type="primary" @click="handleAdd">鏂板</el-button>
</div>
</div>
<div v-loading="tableLoading" class="card-container">
@@ -141,18 +133,8 @@
<div class="card-process-name">{{ getProcessName(item.processId) || '-' }}</div>
</div>
- <!-- 浜у搧淇℃伅 -->
<div class="card-content">
- <div v-if="item.productName" class="product-info">
- <div class="product-name">{{ item.productName }}</div>
- <div class="product-model">{{ item.drawingNumber || '-' }}</div>
- <div v-if="item.model" class="product-model">
- {{ item.model }}
- <!-- <span v-if="item.unit" class="product-unit">{{ item.unit }}</span> -->
- </div>
- <el-tag type="primary" class="product-tag" v-if="item.isQuality">璐ㄦ</el-tag>
- </div>
- <div v-else class="product-info empty">鏆傛棤浜у搧淇℃伅</div>
+ <el-tag type="primary" class="product-tag" v-if="item.isQuality">璐ㄦ</el-tag>
</div>
<!-- 鎿嶄綔鎸夐挳 -->
@@ -194,23 +176,6 @@
</el-select>
</el-form-item>
- <el-form-item label="浜у搧鍚嶇О" prop="productModelId">
- <el-button type="primary" @click="showProductSelectDialog = true">
- {{ form.productName && form.model
- ? `${form.productName} - ${form.model}`
- : '閫夋嫨浜у搧' }}
- </el-button>
- </el-form-item>
-
- <el-form-item label="鍗曚綅" prop="unit">
- <el-input
- v-model="form.unit"
- :placeholder="form.productModelId ? '鏍规嵁閫夋嫨鐨勪骇鍝佽嚜鍔ㄥ甫鍑�' : '璇峰厛閫夋嫨浜у搧'"
- clearable
- :disabled="true"
- />
- </el-form-item>
-
<el-form-item label="鏄惁璐ㄦ" prop="isQuality">
<el-switch v-model="form.isQuality" :active-value="true" :inactive-value="false"/>
</el-form-item>
@@ -237,18 +202,11 @@
</template>
</el-dialog>
- <!-- 浜у搧閫夋嫨瀵硅瘽妗� -->
- <ProductSelectDialog
- v-model="showProductSelectDialog"
- @confirm="handleProductSelect"
- single
- />
</div>
</template>
<script setup>
import { ref, computed, getCurrentInstance, onMounted, onUnmounted, nextTick } from "vue";
-import ProductSelectDialog from "@/views/basicData/product/ProductSelectDialog.vue";
import { findProcessRouteItemList, addOrUpdateProcessRouteItem, sortProcessRouteItem, batchDeleteProcessRouteItem } from "@/api/productionManagement/processRouteItem.js";
import { findProductProcessRouteItemList, deleteRouteItem, addRouteItem, addOrUpdateProductProcessRouteItem, sortRouteItem } from "@/api/productionManagement/productProcessRoute.js";
import { processList } from "@/api/productionManagement/productionProcess.js";
@@ -283,7 +241,6 @@
});
const processOptions = ref([]);
-const showProductSelectDialog = ref(false);
const staffList = ref([]);
const treeProps = {
@@ -307,17 +264,12 @@
id: undefined,
routeId: routeId.value,
processId: undefined,
- productModelId: undefined,
- productName: "",
- model: "",
- unit: "",
isQuality: false,
userPower: [],
});
const rules = {
processId: [{ required: true, message: '璇烽�夋嫨宸ュ簭', trigger: 'change' }],
- productModelId: [{ required: true, message: '璇烽�夋嫨浜у搧', trigger: 'change' }],
};
// 鏍规嵁宸ュ簭ID鑾峰彇宸ュ簭鍚嶇О
@@ -395,10 +347,6 @@
id: row.id,
routeId: routeId.value,
processId: row.processId,
- productModelId: row.productModelId,
- productName: row.productName || "",
- model: row.model || "",
- unit: row.unit || "",
isQuality: row.isQuality,
userPower: userPowerIds,
};
@@ -447,20 +395,6 @@
.catch(() => {});
};
-// 浜у搧閫夋嫨
-const handleProductSelect = (products) => {
- if (products && products.length > 0) {
- const product = products[0];
- form.value.productModelId = product.id;
- form.value.productName = product.productName;
- form.value.model = product.model;
- form.value.unit = product.unit || "";
- showProductSelectDialog.value = false;
- // 瑙﹀彂琛ㄥ崟楠岃瘉
- formRef.value?.validateField('productModelId');
- }
-};
-
// 鎻愪氦
const handleSubmit = () => {
formRef.value.validate((valid) => {
@@ -480,7 +414,6 @@
productOrderId: orderId.value,
productRouteId: routeId.value,
processId: form.value.processId,
- productModelId: form.value.productModelId,
isQuality: form.value.isQuality,
userPower: userPowerNames.join(','),
dragSort,
@@ -488,7 +421,6 @@
: addOrUpdateProcessRouteItem({
routeId: routeId.value,
processId: form.value.processId,
- productModelId: form.value.productModelId,
isQuality: form.value.isQuality,
userPower: userPowerNames.join(','),
dragSort,
@@ -514,14 +446,12 @@
? addOrUpdateProductProcessRouteItem({
id: form.value.id,
processId: form.value.processId,
- productModelId: form.value.productModelId,
isQuality: form.value.isQuality,
userPower: userPowerNames.join(','),
})
: addOrUpdateProcessRouteItem({
routeId: routeId.value,
processId: form.value.processId,
- productModelId: form.value.productModelId,
id: form.value.id,
isQuality: form.value.isQuality,
userPower: userPowerNames.join(','),
@@ -550,10 +480,8 @@
id: undefined,
routeId: routeId.value,
processId: undefined,
- productModelId: undefined,
- productName: "",
- model: "",
- unit: "",
+ isQuality: false,
+ userPower: [],
};
formRef.value?.resetFields();
};
@@ -800,20 +728,20 @@
.process-card {
flex-shrink: 0;
- width: 220px;
+ width: 160px;
background: #fff;
+ border: 1px solid #e4e7ed;
border-radius: 8px;
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
+ box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
padding: 16px;
display: flex;
flex-direction: column;
cursor: move;
- transition: all 0.3s;
+ transition: all 0.2s;
}
.process-card:hover {
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
- transform: translateY(-2px);
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}
.card-header {
@@ -822,20 +750,20 @@
}
.card-number {
- width: 36px;
- height: 36px;
- line-height: 36px;
+ width: 28px;
+ height: 28px;
+ line-height: 28px;
border-radius: 50%;
background: #409eff;
color: #fff;
font-weight: bold;
- font-size: 16px;
+ font-size: 13px;
margin: 0 auto 8px;
}
.card-process-name {
font-size: 14px;
- color: #333;
+ color: #303133;
font-weight: 500;
word-break: break-all;
}
@@ -843,7 +771,7 @@
.card-content {
flex: 1;
margin-bottom: 12px;
- min-height: 60px;
+ min-height: 40px;
display: flex;
align-items: center;
justify-content: center;
--
Gitblit v1.9.3