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 |   59 ++++++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 52 insertions(+), 7 deletions(-)

diff --git a/src/views/productionManagement/productionProcess/New.vue b/src/views/productionManagement/productionProcess/New.vue
index a17ec91..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"
@@ -67,6 +60,35 @@
                 :value="__deviceLoadMoreSentinel"
                 label="鍔犺浇鏇村鈥�"
                 disabled
+            />
+          </el-select>
+        </el-form-item>
+        <el-form-item
+            label="鎶ュ伐浜�"
+            prop="ids"
+            :rules="[
+              {
+                required: true,
+                message: '璇烽�夋嫨鎶ュ伐浜�',
+                trigger: 'change',
+              }
+            ]"
+        >
+          <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>
@@ -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,7 +146,12 @@
 
 // 鍝嶅簲寮忔暟鎹紙鏇夸唬閫夐」寮忕殑 data锛�
 const formState = ref({
+  no: "",
   name: '',
+  deviceId: "",
+  deviceName: "",
+  ids: [],
+  reportWorkerList: [],
   type: 0,
   remark: '',
   salaryQuota:  '',
@@ -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