From a387709376961b134da6fb35975663947519e5b2 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期三, 19 八月 2026 17:42:04 +0800
Subject: [PATCH] 天津-阳光彩印 1.公出管理列表详情页「申请部门」当前只展示部门 ID,需替换为部门名称展示 2.同一机台排产多人、多班组生产时,报工支持拆分录入多人产量、分开记录各班组生产时长,生产核算自动汇总全部工时 3.生产工单列表删除「计划开始、计划结束」字段,移除进度条组件,简化页面展示 4.销售台账新增产品弹窗内含税单价小数位数调整为 5 位,匹配合同精准计价需求,避免金额尾差

---
 src/views/collaborativeApproval/approvalProcess/index.vue |   33 +++++++++++++++++++++++----------
 1 files changed, 23 insertions(+), 10 deletions(-)

diff --git a/src/views/collaborativeApproval/approvalProcess/index.vue b/src/views/collaborativeApproval/approvalProcess/index.vue
index dba6bc1..f7e5834 100644
--- a/src/views/collaborativeApproval/approvalProcess/index.vue
+++ b/src/views/collaborativeApproval/approvalProcess/index.vue
@@ -70,7 +70,7 @@
           <el-button
             type="primary"
             @click="openForm('add')"
-            v-if="currentApproveType !== 5 && currentApproveType !== 6 && currentApproveType !== 7"
+            v-if="currentApproveType !== 5 && currentApproveType !== 6 && currentApproveType !== 7 && currentApproveType !== 9"
             class="action-btn primary"
           >
             <el-icon><Plus /></el-icon>
@@ -84,7 +84,7 @@
             type="danger"
             plain
             @click="handleDelete"
-            v-if="currentApproveType !== 5 && currentApproveType !== 6 && currentApproveType !== 7"
+            v-if="currentApproveType !== 5 && currentApproveType !== 6 && currentApproveType !== 7 && currentApproveType !== 9"
             class="action-btn danger"
           >
             <el-icon><Delete /></el-icon>
@@ -144,6 +144,11 @@
 const userStore = useUserStore();
 const route = useRoute();
 
+// 绠$悊鍛樿处鍙凤紙瑙掕壊涓� 鏅��2 / admin / 鏈�楂�1锛夊彲瀹℃壒浠绘剰娴佺▼锛屼笉鍙楀鎵逛汉闄愬埗
+const isAdminUser = computed(() =>
+  ["admin", "鏅��2", "鏈�楂�1"].some(r => (userStore.roles || []).includes(r))
+);
+
 // 褰撳墠閫変腑鐨勬爣绛鹃〉锛岄粯璁や负鍏嚭绠$悊
 const activeTab = ref('1');
 
@@ -159,6 +164,7 @@
   { value: '5', label: '閲囪喘瀹℃壒', icon: 'ShoppingCart', color: '#909399' },
   { value: '6', label: '鎶ヤ环瀹℃壒', icon: 'DocumentChecked', color: '#9B59B6' },
   { value: '7', label: '鍙戣揣瀹℃壒', icon: 'Van', color: '#1ABC9C' },
+  { value: '9', label: '鐢ㄥ嵃瀹℃壒', icon: 'Stamp', color: '#7D3C98' },
 ];
 
 // 褰撳墠瀹℃壒绫诲瀷淇℃伅
@@ -286,11 +292,11 @@
     }
   );
   
-  // 褰撳墠瀹℃壒浜哄垪
+  // 褰撳墠瀹℃壒浜哄垪锛堟敮鎸佸悓鑺傜偣澶氬鎵逛汉锛�
   baseColumns.push({
     label: "褰撳墠瀹℃壒浜�",
-    prop: "approveUserCurrentName",
-    width: 120
+    prop: "currentApproverNames",
+    width: 180
   });
   
   // 鎿嶄綔鍒�
@@ -305,6 +311,7 @@
         currentApproveType.value === 5 ||
         currentApproveType.value === 6 ||
         currentApproveType.value === 7 ||
+        currentApproveType.value === 9 ||
         row.approveStatus == 2 ||
         row.approveStatus == 1 ||
         row.approveStatus == 4
@@ -316,11 +323,10 @@
         openApprovalDia("approval", row);
       },
       disabled: (row) =>
-        row.approveUserCurrentId == null ||
         row.approveStatus == 2 ||
         row.approveStatus == 3 ||
         row.approveStatus == 4 ||
-        row.approveUserCurrentId !== userStore.id
+        !row._canApprove
     },
     {
       name: "璇︽儏",
@@ -331,8 +337,8 @@
     },
   ];
 
-  // 鎶ヤ环瀹℃壒锛堢被鍨� 6锛変笉灞曠ず"闄勪欢"鎿嶄綔
-  if (!isQuotationType) {
+  // 鎶ヤ环瀹℃壒锛堢被鍨� 6锛夈�佺敤鍗板鎵癸紙绫诲瀷 9锛変笉灞曠ず"闄勪欢"鎿嶄綔锛堥檮浠惰蛋 common_file锛屼笉璧� storage_attachment锛�
+  if (!isQuotationType && currentApproveType.value !== 9) {
     actionOperations.push({
       name: "闄勪欢",
       type: "text",
@@ -385,7 +391,12 @@
   tableLoading.value = true;
   approveProcessListPage({...page, ...searchForm.value, approveType: currentApproveType.value}).then(res => {
     tableLoading.value = false;
-    tableData.value = res.data.records
+    // 瀵屽寲琛屾暟鎹細褰撳墠瀹℃壒浜烘樉绀猴紙澶氬�煎厹搴曟棫鍗曞�硷級+ 褰撳墠鐢ㄦ埛鏄惁鍙鏍�
+    tableData.value = (res.data.records || []).map(r => ({
+      ...r,
+      currentApproverNames: r.approveUserCurrentNames || r.approveUserCurrentName || '-',
+      _canApprove: isAdminUser.value || String(r.approveUserCurrentIds ?? '').split(',').filter(Boolean).includes(String(userStore.id)) || r.approveUserCurrentId === userStore.id
+    }));
     page.total = res.data.total;
     // 鏇存柊褰撳墠绫诲瀷鏁伴噺
     typeCounts.value[activeTab.value] = res.data.total;
@@ -405,6 +416,7 @@
     5: "/approveProcess/exportFive",
     6: "/approveProcess/exportSix",
     7: "/approveProcess/exportSeven",
+    9: "/approveProcess/exportNine",
   }
   const url = urlMap[type] || urlMap[0]
   const nameMap = {
@@ -416,6 +428,7 @@
     5: "閲囪喘鐢宠瀹℃壒琛�",
     6: "鎶ヤ环瀹℃壒琛�",
     7: "鍙戣揣瀹℃壒琛�",
+    9: "鐢ㄥ嵃瀹℃壒琛�",
   }
   const fileName = nameMap[type] || nameMap[0]
   proxy.download(url, {}, `${fileName}.xlsx`)

--
Gitblit v1.9.3