From f0420251442ac6f7bfb6beafa37ad045b4f6478a Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期三, 31 十二月 2025 15:49:05 +0800
Subject: [PATCH] 报工多工序,用户多工序修改

---
 north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue |   67 +++++++++++++++++++++++++++++++--
 1 files changed, 62 insertions(+), 5 deletions(-)

diff --git a/north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue b/north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue
index 15addfc..308c20d 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue
@@ -67,6 +67,8 @@
     customerName: '',
     //椤圭洰鍚嶇О
     project: '',
+    //鎵规
+    batch:'',
   },
   flowCard: {
     //鍙姤宸ユ暟閲�
@@ -964,7 +966,28 @@
   done()
 }
 
+const parseProcessData = (rawData) => {
+  if (!rawData) return [] // 绌哄�艰繑鍥炵┖鏁扮粍
 
+  // 姝ラ1锛氬厛杞负瀛楃涓插苟鍘婚櫎棣栧熬澶氫綑鐨勫紩鍙凤紙澶勭悊鍚庣杩斿洖鐨� "\"[\"纾ㄨ竟\",\"鎵撳瓟\"]\"" 鎯呭喌锛�
+  let str = String(rawData).trim()
+  if (str.startsWith('"') && str.endsWith('"')) {
+    str = str.slice(1, -1) // 鍘绘帀棣栧熬鐨勫紩鍙�
+  }
+
+  // 姝ラ2锛氳В鏋怞SON瀛楃涓蹭负鏁扮粍
+  try {
+    const arr = JSON.parse(str)
+    // 纭繚瑙f瀽鍚庢槸鏁扮粍锛屼笖鍏冪礌鍘荤┖鏍�
+    return Array.isArray(arr) ? arr.map(item => item.trim()) : []
+  } catch (e) {
+    // 瑙f瀽澶辫触鏃讹紝闄嶇骇澶勭悊锛堟寜閫楀彿鍒嗗壊锛�
+    console.warn('宸ュ簭鏁版嵁瑙f瀽澶辫触锛岄檷绾у鐞嗭細', e)
+    return str.split(',').filter(item => item.trim())
+  }
+}
+
+const currentProcessOptions = ref([])
 //绗竴娆″姞杞芥暟鎹�
 let groupChangeProcess = ref(false)//鐢ㄤ簬鏈彮缁勬樉绀洪棶棰�
 const initTiltle = async () => {
@@ -973,20 +996,47 @@
     if (res.code == 200) {
       titleSelectJson.value.processType = res.data.process
       processName  = res.data.processNameList
+
       if(user.user.address!==null && user.user.address!==''){
-        titleUploadData.value.thisProcess = user.user.address
+        user.user.address=parseProcessData(user.user.address)
+        titleUploadData.value.thisProcess = user.user.address[0] // 鏁扮粍鍙栫涓�涓綔涓洪粯璁ゅ�硷紙鍙�夛級
         titleUploadData.value.teamsGroupsName = user.user.userName
-        groupChangeProcess.value = true
+        currentProcessOptions.value = user.user.address.map((name, index) => ({
+          id: `user_process_${index}`,
+          basic_name: name,
+          basic_type: 'process',
+          basic_category: index + 1
+        }));
+
         if (user.user.address==='鎶�鏈儴澶氭洸' || user.user.address==='澶硅兌'){
           groupChangeProcess.value = false
+          currentProcessOptions.value = titleSelectJson.value.processType
         }
         gridOptions.toolbarConfig.buttons[1].visible=false
+      }else {
+        currentProcessOptions.value = titleSelectJson.value.processType // 鏃犻粯璁ゅ�兼樉绀哄叏閮�
       }
 
     } else {
       ElMessage.warning(res.msg)
     }
   })
+}
+
+const filterCurrentProcessOptions = () => {
+  // ======== 鏍稿績淇敼寮�濮� ========
+  const userBelongProcess = user.user.address || [];
+  // 濮嬬粓鍙樉绀哄憳宸ユ墍灞炲伐搴忥紙鏈夊�硷級鎴栧叏閮ㄥ伐搴忥紙鏃犲�硷級
+  if (userBelongProcess.length > 0) {
+    currentProcessOptions.value = user.user.address.map((name, index) => ({
+      id: `user_process_${index}`,
+      basic_name: name,
+      basic_type: 'process',
+      basic_category: index + 1
+    }));
+  } else {
+    currentProcessOptions.value = titleSelectJson.value.processType;
+  }
 }
 
 
@@ -1301,6 +1351,10 @@
       titleUploadData.value.processId = processId
       titleUploadData.value.teamsGroupsName = user.user.userName
       titleUploadData.value.laminating = res.data.laminating
+      if(titleUploadData.value.order.batch!=null&&titleUploadData.value.order.batch!=""){
+        titleUploadData.value.order.project=titleUploadData.value.order.project+'('+titleUploadData.value.order.batch+')'
+      }
+
       //璁惧涓嬫媺妗�
       titleSelectJson.value.deviceType = res.data.device
       //鐝粍涓嬫媺妗�
@@ -1352,6 +1406,9 @@
       });
       detail.value = modifiedCollection
       xGrid.value.reloadData(detail.value)
+
+      filterCurrentProcessOptions()
+
       hideButton()
       // nextTick(() => {
       //   hiddenCompletedOk()
@@ -1684,7 +1741,7 @@
                  style="width: 120px"
                  @change="getWork();getQuantity()">
         <el-option
-            v-for="item in titleSelectJson['processType']"
+            v-for="item in currentProcessOptions"
             :key="item.id"
             :label="item.basic_name"
             :value="item.basic_name"
@@ -1738,10 +1795,10 @@
           <el-text>{{$t('processCard.customerName')}}锛�</el-text>
         </el-col>
         <el-col :span="3">
-          <el-text class="customClass"></el-text>
+          <el-text class="customClass">{{ titleUploadData.order.customerName }}</el-text>
         </el-col>
         <el-col :span="2">
-          <el-text >{{$t('order.project')}}锛�</el-text>
+          <el-text >{{$t('order.project')}}({{$t('order.batch')}})锛�</el-text>
         </el-col>
         <el-col :span="3">
           <el-input :readonly="true" v-model="titleUploadData.order.project"/>

--
Gitblit v1.8.0