From 5eef21ed1f6e1c97e048dd07543f21bc868f9bba Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期二, 10 三月 2026 14:38:16 +0800
Subject: [PATCH] fix: 入库前需加上仓库管理员审审批这一流程,审核通过后才能入库。另外在消息通知中需要展示这个审批信息

---
 src/views/collaborativeApproval/approvalProcess/components/infoFormDia.vue |   73 +++++++++++++++++++++++++++---------
 1 files changed, 55 insertions(+), 18 deletions(-)

diff --git a/src/views/collaborativeApproval/approvalProcess/components/infoFormDia.vue b/src/views/collaborativeApproval/approvalProcess/components/infoFormDia.vue
index a269375..40e510a 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>
@@ -217,6 +217,7 @@
 const emit = defineEmits(['close'])
 import useUserStore from "@/store/modules/user";
 import { getCurrentDate } from "@/utils/index.js";
+import log from "@/views/monitor/job/log.vue";
 const userStore = useUserStore();
 
 const dialogFormVisible = ref(false);
@@ -242,7 +243,10 @@
     startDate: "", // 璇峰亣寮�濮嬫椂闂�
     endDate: "", // 璇峰亣缁撴潫鏃堕棿
     price: null, // 鎶ラ攢閲戦
-    location: "" // 鍑哄樊鍦扮偣
+    location: "", // 鍑哄樊鍦扮偣
+    inventoryReview: false, // 鍏ュ簱鏄惁瀹℃牳閫氳繃
+    storageType: "",       // 鍏ュ簱绫诲瀷锛堝悎鏍�/涓嶅悎鏍硷級
+    recordId: null,        // 鍏ュ簱璁板綍ID
   },
   rules: {
     approveTime: [{ required: false, message: "璇疯緭鍏�", trigger: "change" },],
@@ -279,7 +283,17 @@
 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;
@@ -287,7 +301,6 @@
 	userListNoPageByTenantId().then((res) => {
     userList.value = res.data;
   });
-  getProductOptions();
 	form.value = {}
 	approverNodes.value = [
 		{ id: 1, userId: null }
@@ -297,12 +310,19 @@
   
   // 鑾峰彇褰撳墠鐢ㄦ埛淇℃伅骞惰缃儴闂↖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
     approveProcessGetInfo({id: row.approveId,approveReason: '1'}).then(res => {
 			form.value = {...res.data}
+      // 纭繚鍏ュ簱瀹℃壒鐩稿叧瀛楁浠庡垪琛ㄨ閫忎紶杩涙潵
+      form.value.recordId = row.recordId ?? form.value.recordId
+      form.value.inventoryReview = row.inventoryReview ?? form.value.inventoryReview
+      form.value.storageType = row.storageType ?? form.value.storageType
       // 鍙嶆樉瀹℃壒浜�
       if (res.data && res.data.approveUserIds) {
         const userIds = res.data.approveUserIds.split(',')
@@ -319,8 +339,18 @@
   }
 }
 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) {
@@ -342,6 +372,13 @@
   // 鏀堕泦鎵�鏈夎妭鐐圭殑瀹℃壒浜篿d
   form.value.approveUserIds = approverNodes.value.map(node => node.userId).join(',')
   form.value.approveType = props.approveType
+
+  // 鍏ュ簱瀹℃壒锛氱洿鎺ラ�忎紶鍏ュ簱鐩稿叧瀛楁锛堢敱澶栭儴棰勫厛濉厖锛�
+  if (props.approveType == 9) {
+    // 纭繚甯冨皵绫诲瀷姝g‘
+    form.value.inventoryReview = !!form.value.inventoryReview
+    // storageType銆乺ecordId 鎸夌収鏌ュ嚭鏉ョ殑鏁版嵁鍘熸牱甯︾粰鍚庡彴
+  }
   // 瀹℃壒浜哄繀濉牎楠�
   const hasEmptyApprover = approverNodes.value.some(node => !node.userId)
   if (hasEmptyApprover) {

--
Gitblit v1.9.3