From 8657873b0a4c57904bcecdab121f6b261c92ef6e Mon Sep 17 00:00:00 2001
From: 张诺 <zhang_12370@163.com>
Date: 星期二, 28 四月 2026 14:35:32 +0800
Subject: [PATCH] feat(productionProcess): 新增工序编辑和新增功能

---
 src/views/productionManagement/productionProcess/New.vue |   85 ++++++++++++++++++++++++++++++++----------
 1 files changed, 65 insertions(+), 20 deletions(-)

diff --git a/src/views/productionManagement/productionProcess/New.vue b/src/views/productionManagement/productionProcess/New.vue
index 3a6222a..c878a45 100644
--- a/src/views/productionManagement/productionProcess/New.vue
+++ b/src/views/productionManagement/productionProcess/New.vue
@@ -39,13 +39,6 @@
         </el-form-item>
         <el-form-item
             label="宸ュ簭鏈哄彴"
-            prop="deviceId"
-            :rules="[
-                {
-                required: true,
-                message: '璇烽�夋嫨宸ュ簭绫诲瀷',
-              }
-            ]"
         >
           <el-select
               v-model="formState.deviceId"
@@ -71,25 +64,54 @@
           </el-select>
         </el-form-item>
         <el-form-item
-            label="宸ュ簭绫诲瀷"
-            prop="type"
+            label="鎶ュ伐浜�"
+            prop="ids"
             :rules="[
-                {
+              {
                 required: true,
-                message: '璇烽�夋嫨宸ュ簭绫诲瀷',
+                message: '璇烽�夋嫨鎶ュ伐浜�',
+                trigger: 'change',
               }
             ]"
         >
-          <el-select v-model="formState.type" placeholder="璇烽�夋嫨宸ュ簭绫诲瀷">
-            <el-option label="璁℃椂" :value="0" />
-            <el-option label="璁′欢" :value="1" />
+          <el-select
+              v-model="formState.ids"
+              multiple
+              filterable
+              clearable
+              collapse-tags
+              collapse-tags-tooltip
+              placeholder="璇烽�夋嫨鎶ュ伐浜�"
+              @change="handleReportUsersChange"
+          >
+            <el-option
+                v-for="item in userOptions"
+                :key="item.userId"
+                :label="item.nickName"
+                :value="item.userId"
+            />
           </el-select>
         </el-form-item>
-        <el-form-item label="宸ヨ祫瀹氶" prop="salaryQuota">
-          <el-input v-model="formState.salaryQuota" type="number" :step="0.001">
-            <template #append>鍏�</template>
-          </el-input>
-        </el-form-item>
+<!--        <el-form-item-->
+<!--            label="宸ュ簭绫诲瀷"-->
+<!--            prop="type"-->
+<!--            :rules="[-->
+<!--                {-->
+<!--                required: true,-->
+<!--                message: '璇烽�夋嫨宸ュ簭绫诲瀷',-->
+<!--              }-->
+<!--            ]"-->
+<!--        >-->
+<!--          <el-select v-model="formState.type" placeholder="璇烽�夋嫨宸ュ簭绫诲瀷">-->
+<!--            <el-option label="璁℃椂" :value="0" />-->
+<!--            <el-option label="璁′欢" :value="1" />-->
+<!--          </el-select>-->
+<!--        </el-form-item>-->
+<!--        <el-form-item label="宸ヨ祫瀹氶" prop="salaryQuota">-->
+<!--          <el-input v-model="formState.salaryQuota" type="number" :step="0.001">-->
+<!--            <template #append>鍏�</template>-->
+<!--          </el-input>-->
+<!--        </el-form-item>-->
         <el-form-item label="鏄惁璐ㄦ" prop="isQuality">
           <el-switch v-model="formState.isQuality" :active-value="true" inactive-value="false"/>
         </el-form-item>
@@ -111,6 +133,7 @@
 import { ref, computed, onMounted, getCurrentInstance, reactive, nextTick, onBeforeUnmount } from "vue";
 import {add} from "@/api/productionManagement/productionProcess.js";
 import {getLedgerPage} from "@/api/equipmentManagement/ledger.js";
+import {userListNoPageByTenantId} from "@/api/system/user.js";
 
 const props = defineProps({
   visible: {
@@ -123,8 +146,13 @@
 
 // 鍝嶅簲寮忔暟鎹紙鏇夸唬閫夐」寮忕殑 data锛�
 const formState = ref({
+  no: "",
   name: '',
-  type: undefined,
+  deviceId: "",
+  deviceName: "",
+  ids: [],
+  reportWorkerList: [],
+  type: 0,
   remark: '',
   salaryQuota:  '',
   isQuality: false,
@@ -139,10 +167,26 @@
 
 onMounted(() => {
   resetDeviceOptions();
+  getUserOptions();
 });
 
 const handleDeviceChange = (val) => {
   formState.value.deviceName = equipmentList.value.find(item => item.id === val)?.deviceName || '';
+};
+
+const userOptions = ref([]);
+
+const handleReportUsersChange = (val) => {
+  const userMap = new Map(userOptions.value.map(item => [item.userId, item.nickName]));
+  formState.value.reportWorkerList = (val || []).map(userId => ({
+    userId,
+    userName: userMap.get(userId) || "",
+  }));
+};
+
+const getUserOptions = async () => {
+  const res = await userListNoPageByTenantId();
+  userOptions.value = Array.isArray(res?.data) ? res.data : [];
 };
 
 const isShow = computed({
@@ -269,6 +313,7 @@
 const handleSubmit = () => {
   proxy.$refs["formRef"].validate(valid => {
     if (valid) {
+      handleReportUsersChange(formState.value.ids);
       add(formState.value).then(res => {
         // 鍏抽棴妯℃�佹
         isShow.value = false;

--
Gitblit v1.9.3