From 70be2de00b48aafb33d9fb3374a870ed5b6957c0 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 23 四月 2026 16:10:32 +0800
Subject: [PATCH] 进销存pro 1.协同审批管理不再需要选择审批人 2.审批管理添加审批流联调 3.销售发货、采购台账、销售报价不再需要选择审批人

---
 src/views/collaborativeApproval/approvalManagement/index.vue |  107 ++++++++++++++++++++++++++---------------------------
 1 files changed, 52 insertions(+), 55 deletions(-)

diff --git a/src/views/collaborativeApproval/approvalManagement/index.vue b/src/views/collaborativeApproval/approvalManagement/index.vue
index 1eb20c8..4638392 100644
--- a/src/views/collaborativeApproval/approvalManagement/index.vue
+++ b/src/views/collaborativeApproval/approvalManagement/index.vue
@@ -188,6 +188,8 @@
   Suitcase, Calendar, Location, Money, ShoppingCart, DocumentChecked,
   Van, ArrowRight, User, InfoFilled
 } from '@element-plus/icons-vue';
+import { getApproveProcessConfigNodeList, addApproveProcessConfigNode } from '@/api/collaborativeApproval/approvalManagement';
+import { userListNoPage } from '@/api/system/user';
 
 // 褰撳墠閫変腑鐨勬爣绛鹃〉
 const activeTab = ref('1');
@@ -271,44 +273,8 @@
   return texts[index] || `绗�${index + 1}绾;
 };
 
-// 鑾峰彇瀹℃壒浜烘暟閲�
-const getApproverCount = (typeValue) => {
-  const type = Number(typeValue);
-  const data = mockConfigData[type] || [];
-  return data.length;
-};
-
-// 妯℃嫙鐢ㄦ埛鍒楄〃鏁版嵁
-const userList = ref([
-  { userId: 1, nickName: '寮犱笁' },
-  { userId: 2, nickName: '鏉庡洓' },
-  { userId: 3, nickName: '鐜嬩簲' },
-  { userId: 4, nickName: '璧靛叚' },
-  { userId: 5, nickName: '瀛欎竷' },
-  { userId: 6, nickName: '鍛ㄥ叓' },
-  { userId: 7, nickName: '鍚翠節' },
-  { userId: 8, nickName: '閮戝崄' },
-]);
-
-// 妯℃嫙瀹℃壒閰嶇疆鏁版嵁瀛樺偍锛堟寜瀹℃壒绫诲瀷鍒嗙被锛�
-const mockConfigData = {
-  1: [
-    { id: 1, approveType: 1, approverId: 1, approverName: '寮犱笁', sortOrder: 1 },
-    { id: 2, approveType: 1, approverId: 2, approverName: '鏉庡洓', sortOrder: 2 },
-  ],
-  2: [
-    { id: 3, approveType: 2, approverId: 3, approverName: '鐜嬩簲', sortOrder: 1 },
-  ],
-  3: [],
-  4: [
-    { id: 4, approveType: 4, approverId: 1, approverName: '寮犱笁', sortOrder: 1 },
-    { id: 5, approveType: 4, approverId: 3, approverName: '鐜嬩簲', sortOrder: 2 },
-    { id: 6, approveType: 4, approverId: 5, approverName: '瀛欎竷', sortOrder: 3 },
-  ],
-  5: [],
-  6: [],
-  7: [],
-};
+// 瀹℃壒浜哄垪琛紙鐪熷疄鎺ュ彛锛�
+const userList = ref([]);
 
 // 瀹℃壒浜哄垪琛�
 const approverList = ref([]);
@@ -326,14 +292,40 @@
 };
 
 // 鍔犺浇瀹℃壒閰嶇疆鏁版嵁锛堟ā鎷燂級
-const loadData = () => {
+const loadData = async () => {
   loading.value = true;
-  setTimeout(() => {
-    const data = mockConfigData[currentApproveType.value] || [];
-    approverList.value = data.sort((a, b) => a.sortOrder - b.sortOrder);
+  try {
+    const res = await getApproveProcessConfigNodeList(currentApproveType.value);
+    const source = Array.isArray(res?.data)
+      ? res.data
+      : Array.isArray(res?.rows)
+        ? res.rows
+        : Array.isArray(res?.data?.records)
+          ? res.data.records
+          : [];
+    const data = source.map((item, index) => ({
+      ...item,
+      sortOrder: item.nodeOrder ?? item.sortOrder ?? index + 1,
+    }));
+    approverList.value = data.sort((a, b) => (a.sortOrder || 0) - (b.sortOrder || 0));
     originalList.value = JSON.parse(JSON.stringify(approverList.value));
+  } catch (error) {
+    approverList.value = [];
+    originalList.value = [];
+    ElMessage.error('鍔犺浇瀹℃壒閰嶇疆澶辫触');
+  } finally {
     loading.value = false;
-  }, 300);
+  }
+};
+
+const loadUserList = async () => {
+  try {
+    const res = await userListNoPage();
+    userList.value = Array.isArray(res?.data) ? res.data : [];
+  } catch (error) {
+    userList.value = [];
+    ElMessage.error('鍔犺浇浜哄憳鍒楄〃澶辫触');
+  }
 };
 
 // 瀹℃壒浜洪�夋嫨鍙樺寲
@@ -393,8 +385,8 @@
   approverList.value[index + 1].sortOrder = index + 2;
 };
 
-// 淇濆瓨閰嶇疆锛堟ā鎷燂級
-const handleSave = () => {
+// 淇濆瓨閰嶇疆
+const handleSave = async () => {
   if (approverList.value.length === 0) {
     ElMessage.warning('璇疯嚦灏戦厤缃竴涓鎵逛汉');
     return;
@@ -414,17 +406,21 @@
   }
 
   saveLoading.value = true;
-  setTimeout(() => {
-    mockConfigData[currentApproveType.value] = approverList.value.map((item, index) => ({
-      ...item,
-      id: item.id || Date.now() + index,
-      sortOrder: index + 1,
+  try {
+    const payload = approverList.value.map((item, index) => ({
+      approveType: currentApproveType.value,
+      nodeOrder: index + 1,
+      approverId: item.approverId,
+      approverName: item.approverName,
     }));
-    originalList.value = JSON.parse(JSON.stringify(mockConfigData[currentApproveType.value]));
-    approverList.value = JSON.parse(JSON.stringify(originalList.value));
+    await addApproveProcessConfigNode(payload);
     ElMessage.success('淇濆瓨鎴愬姛');
+    await loadData();
+  } catch (error) {
+    ElMessage.error('淇濆瓨澶辫触');
+  } finally {
     saveLoading.value = false;
-  }, 500);
+  }
 };
 
 // 閲嶇疆
@@ -445,8 +441,9 @@
     .catch(() => {});
 };
 
-onMounted(() => {
-  loadData();
+onMounted(async () => {
+  await loadUserList();
+  await loadData();
 });
 </script>
 

--
Gitblit v1.9.3