From 6bea4a03b32c48d72cee59e46c90accdf07b8b35 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 23 四月 2026 17:59:22 +0800
Subject: [PATCH] 阳光彩印 1.协同审批管理不再需要选择审批人 2.审批管理添加审批流联调 3.销售发货、采购台账、销售报价不再需要选择审批人

---
 src/views/collaborativeApproval/approvalProcess/components/infoFormDia.vue |  189 +++++++++++------------------------------------
 1 files changed, 45 insertions(+), 144 deletions(-)

diff --git a/src/views/collaborativeApproval/approvalProcess/components/infoFormDia.vue b/src/views/collaborativeApproval/approvalProcess/components/infoFormDia.vue
index a269375..8328ee6 100644
--- a/src/views/collaborativeApproval/approvalProcess/components/infoFormDia.vue
+++ b/src/views/collaborativeApproval/approvalProcess/components/infoFormDia.vue
@@ -17,25 +17,25 @@
         <el-row>
           <el-col :span="24">
             <el-form-item label="鐢宠閮ㄩ棬锛�" prop="approveDeptName">
-              <el-input v-model="form.approveDeptName" placeholder="璇疯緭鍏�" clearable/>
-<!--							<el-select-->
-<!--								disabled-->
-<!--								v-model="form.approveDeptId"-->
-<!--								placeholder="閫夋嫨閮ㄩ棬"-->
-<!--							>-->
-<!--								<el-option-->
-<!--									v-for="user in productOptions"-->
-<!--									:key="user.deptId"-->
-<!--									:label="user.deptName"-->
-<!--									:value="user.deptId"-->
-<!--								/>-->
-<!--							</el-select>-->
+<!--              <el-input v-model="form.approveDeptName" placeholder="璇疯緭鍏�" clearable/>-->
+							<el-select
+								v-model="form.approveDeptId"
+								placeholder="閫夋嫨閮ㄩ棬"
+                @change="handleDeptChange"
+							>
+								<el-option
+									v-for="user in productOptions"
+									:key="user.deptId"
+									:label="user.deptName"
+									:value="user.deptId"
+								/>
+							</el-select>
             </el-form-item>
           </el-col>
         </el-row>
         <el-row>
           <el-col :span="24">
-            <el-form-item :label="props.approveType == 5 ? '閲囪喘璇存槑锛�' : '瀹℃壒浜嬬敱锛�'" prop="approveReason">
+            <el-form-item :label="props.approveType == 5 ? '閲囪喘鍚堝悓鍙凤細' : '瀹℃壒浜嬬敱锛�'" prop="approveReason">
               <el-input v-model="form.approveReason" placeholder="璇疯緭鍏�" clearable type="textarea" />
             </el-form-item>
           </el-col>
@@ -97,82 +97,7 @@
             </el-form-item>
           </el-col>
         </el-row>
-        <!-- 瀹℃壒浜洪�夋嫨锛堝姩鎬佽妭鐐癸級 -->
-        <el-row>
-          <el-col :span="24">
-            <el-form-item>
-              <template #label>
-                <span>瀹℃壒浜洪�夋嫨锛�</span>
-                <el-button type="primary" @click="addApproverNode" style="margin-left: 8px;">鏂板鑺傜偣</el-button>
-              </template>
-              <div style="display: flex; align-items: flex-end; flex-wrap: wrap;">
-                <div
-                  v-for="(node, index) in approverNodes"
-                  :key="node.id"
-                  style="margin-right: 30px; text-align: center; margin-bottom: 10px;"
-                >
-                  <div>
-                    <span>瀹℃壒浜�</span>
-                    鈫�
-                  </div>
-                  <el-select
-                    v-model="node.userId"
-                    placeholder="閫夋嫨浜哄憳"
-                    style="width: 120px; margin-bottom: 8px;"
-                  >
-                    <el-option
-                      v-for="user in userList"
-                      :key="user.userId"
-                      :label="user.nickName"
-                      :value="user.userId"
-                    />
-                  </el-select>
-                  <div>
-                    <el-button
-                      type="danger"
-                      size="small"
-                      @click="removeApproverNode(index)"
-                      v-if="approverNodes.length > 1"
-                    >鍒犻櫎</el-button>
-                  </div>
-                </div>
-              </div>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="30">
-          <el-col :span="12">
-            <el-form-item label="鐢宠浜猴細" prop="approveUser">
-							<el-select
-								v-model="form.approveUser"
-								placeholder="閫夋嫨浜哄憳"
-                filterable
-                default-first-option
-                :reserve-keyword="false"
-							>
-								<el-option
-									v-for="user in userList"
-									:key="user.userId"
-									:label="user.nickName"
-									:value="user.userId"
-								/>
-							</el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="鐢宠鏃ユ湡锛�" prop="approveTime">
-              <el-date-picker
-                  v-model="form.approveTime"
-                  type="date"
-                  placeholder="璇烽�夋嫨鏃ユ湡"
-                  value-format="YYYY-MM-DD"
-                  format="YYYY-MM-DD"
-                  clearable
-                  style="width: 100%"
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
+
         <el-row :gutter="30">
           <el-col :span="24">
             <el-form-item label="闄勪欢鏉愭枡锛�" prop="remark">
@@ -211,12 +136,10 @@
 import {
   delLedgerFile,
 } from "@/api/salesManagement/salesLedger.js";
-import {userListNoPageByTenantId} from "@/api/system/user.js";
 import { getToken } from "@/utils/auth";
 const { proxy } = getCurrentInstance()
 const emit = defineEmits(['close'])
 import useUserStore from "@/store/modules/user";
-import { getCurrentDate } from "@/utils/index.js";
 const userStore = useUserStore();
 
 const dialogFormVisible = ref(false);
@@ -230,24 +153,19 @@
 });
 const data = reactive({
   form: {
-    approveTime: "",
     approveId: "",
-    approveUser: "",
-		approveDeptId: "",
+    approveDeptId: "",
     approveDeptName: "",
     approveReason: "",
     checkResult: "",
     tempFileIds: [],
-    approverList: [], // 鏂板瀛楁锛屽瓨鍌ㄦ墍鏈夎妭鐐圭殑瀹℃壒浜篿d
     startDate: "", // 璇峰亣寮�濮嬫椂闂�
     endDate: "", // 璇峰亣缁撴潫鏃堕棿
     price: null, // 鎶ラ攢閲戦
     location: "" // 鍑哄樊鍦扮偣
   },
   rules: {
-    approveTime: [{ required: false, message: "璇疯緭鍏�", trigger: "change" },],
     approveId: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
-    approveUser: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
     approveDeptName: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
     approveReason: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
     checkResult: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
@@ -267,60 +185,51 @@
   }
 })
 
-// 瀹℃壒浜鸿妭鐐圭浉鍏�
-const approverNodes = ref([
-  { id: 1, userId: null }
-])
-let nextApproverId = 2
-const userList = ref([])
-function addApproverNode() {
-  approverNodes.value.push({ id: nextApproverId++, userId: null })
-}
-function removeApproverNode(index) {
-  approverNodes.value.splice(index, 1)
-}
 
+// 澶勭悊閮ㄩ棬閫夋嫨鍙樺寲
+const handleDeptChange = (deptId) => {
+  if (deptId) {
+    const selectedDept = productOptions.value.find(dept => dept.deptId === deptId);
+    if (selectedDept) {
+      form.value.approveDeptName = selectedDept.deptName;
+    }
+  } else {
+    form.value.approveDeptName = '';
+  }
+};
 // 鎵撳紑寮规
 const openDialog = (type, row) => {
   operationType.value = type;
   dialogFormVisible.value = true;
-	userListNoPageByTenantId().then((res) => {
-    userList.value = res.data;
-  });
-  getProductOptions();
-	form.value = {}
-	approverNodes.value = [
-		{ id: 1, userId: null }
-	]
-  form.value.approveUser = userStore.id;
-  form.value.approveTime = getCurrentDate();
-  
+  form.value = {}
+
   // 鑾峰彇褰撳墠鐢ㄦ埛淇℃伅骞惰缃儴闂↖D
   form.value.approveDeptId = userStore.currentDeptId
+
+  // 鍔犺浇閮ㄩ棬閫夐」锛屽苟鍦ㄥ姞杞藉畬鎴愬悗璁剧疆閮ㄩ棬鍚嶇О
+  getProductOptions();
   if (operationType.value === 'edit') {
     fileList.value = row.commonFileList
     form.value.tempFileIds = fileList.value.map(file => file.id)
-		currentApproveStatus.value = row.approveStatus
+    currentApproveStatus.value = row.approveStatus
     approveProcessGetInfo({id: row.approveId,approveReason: '1'}).then(res => {
-			form.value = {...res.data}
-      // 鍙嶆樉瀹℃壒浜�
-      if (res.data && res.data.approveUserIds) {
-        const userIds = res.data.approveUserIds.split(',')
-        approverNodes.value = userIds.map((userId, idx) => ({
-          id: idx + 1, 
-          userId: parseInt(userId.trim())
-        }))
-        nextApproverId = userIds.length + 1
-      } else {
-        approverNodes.value = [{ id: 1, userId: null }]
-        nextApproverId = 2
-      }
+      form.value = {...res.data}
     })
   }
 }
 const getProductOptions = () => {
-  getDept().then((res) => {
+  return getDept().then((res) => {
     productOptions.value = res.data;
+    // 濡傛灉宸叉湁閮ㄩ棬ID锛岃嚜鍔ㄨ缃儴闂ㄥ悕绉帮紙鐢ㄤ簬楠岃瘉锛�
+    if (form.value.approveDeptId && productOptions.value.length > 0) {
+      const matchedDept = productOptions.value.find(dept => 
+        dept.deptId == form.value.approveDeptId || 
+        String(dept.deptId) === String(form.value.approveDeptId)
+      );
+      if (matchedDept) {
+        form.value.approveDeptName = matchedDept.deptName;
+      }
+    }
   });
 };
 function convertIdToValue(data) {
@@ -339,15 +248,7 @@
 }
 // 鎻愪氦浜у搧琛ㄥ崟
 const submitForm = () => {
-  // 鏀堕泦鎵�鏈夎妭鐐圭殑瀹℃壒浜篿d
-  form.value.approveUserIds = approverNodes.value.map(node => node.userId).join(',')
   form.value.approveType = props.approveType
-  // 瀹℃壒浜哄繀濉牎楠�
-  const hasEmptyApprover = approverNodes.value.some(node => !node.userId)
-  if (hasEmptyApprover) {
-    proxy.$modal.msgError("璇蜂负鎵�鏈夊鎵硅妭鐐归�夋嫨瀹℃壒浜猴紒")
-    return
-  }
   // 褰� approveType 涓� 2 鏃讹紝鏍¢獙璇峰亣鏃堕棿
   if (props.approveType == 2) {
     if (!form.value.startDate) {

--
Gitblit v1.9.3