From 423a401d4b7808e47a5945f43f98c00d678addce Mon Sep 17 00:00:00 2001
From: buhuazhen <hua100783@gmail.com>
Date: 星期五, 10 四月 2026 13:38:09 +0800
Subject: [PATCH] fix(approvalProcess): 请假表单时间选择器从日期改为日期时间并修正校验逻辑

---
 src/views/collaborativeApproval/approvalProcess/components/infoFormDia.vue |   80 +++++++++++++++++++++++++--------------
 1 files changed, 51 insertions(+), 29 deletions(-)

diff --git a/src/views/collaborativeApproval/approvalProcess/components/infoFormDia.vue b/src/views/collaborativeApproval/approvalProcess/components/infoFormDia.vue
index a269375..df88ad8 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>
@@ -46,10 +46,10 @@
             <el-form-item label="璇峰亣寮�濮嬫椂闂达細" prop="startDate">
               <el-date-picker
                   v-model="form.startDate"
-                  type="date"
-                  placeholder="璇烽�夋嫨寮�濮嬫棩鏈�"
-                  value-format="YYYY-MM-DD"
-                  format="YYYY-MM-DD"
+                  type="datetime"
+                  placeholder="璇烽�夋嫨寮�濮嬫椂闂�"
+                  value-format="YYYY-MM-DD HH:mm:ss"
+                  format="YYYY-MM-DD HH:mm:ss"
                   clearable
                   style="width: 100%"
               />
@@ -59,10 +59,10 @@
             <el-form-item label="璇峰亣缁撴潫鏃堕棿锛�" prop="endDate">
               <el-date-picker
                   v-model="form.endDate"
-                  type="date"
-                  placeholder="璇烽�夋嫨缁撴潫鏃ユ湡"
-                  value-format="YYYY-MM-DD"
-                  format="YYYY-MM-DD"
+                  type="datetime"
+                  placeholder="璇烽�夋嫨缁撴潫鏃堕棿"
+                  value-format="YYYY-MM-DD HH:mm:ss"
+                  format="YYYY-MM-DD HH:mm:ss"
                   clearable
                   style="width: 100%"
               />
@@ -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);
@@ -279,7 +280,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 +298,6 @@
 	userListNoPageByTenantId().then((res) => {
     userList.value = res.data;
   });
-  getProductOptions();
 	form.value = {}
 	approverNodes.value = [
 		{ id: 1, userId: null }
@@ -297,6 +307,9 @@
   
   // 鑾峰彇褰撳墠鐢ㄦ埛淇℃伅骞惰缃儴闂↖D
   form.value.approveDeptId = userStore.currentDeptId
+  
+  // 鍔犺浇閮ㄩ棬閫夐」锛屽苟鍦ㄥ姞杞藉畬鎴愬悗璁剧疆閮ㄩ棬鍚嶇О
+  getProductOptions();
   if (operationType.value === 'edit') {
     fileList.value = row.commonFileList
     form.value.tempFileIds = fileList.value.map(file => file.id)
@@ -319,8 +332,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) {
@@ -358,9 +381,8 @@
       proxy.$modal.msgError("璇烽�夋嫨璇峰亣缁撴潫鏃堕棿锛�")
       return
     }
-    // 鏍¢獙缁撴潫鏃堕棿涓嶈兘鏃╀簬寮�濮嬫椂闂�
-    if (new Date(form.value.endDate) < new Date(form.value.startDate)) {
-      proxy.$modal.msgError("璇峰亣缁撴潫鏃堕棿涓嶈兘鏃╀簬寮�濮嬫椂闂达紒")
+    if (new Date(form.value.startDate).getTime() >= new Date(form.value.endDate).getTime()) {
+      proxy.$modal.msgError("璇峰亣寮�濮嬫椂闂村繀椤绘棭浜庣粨鏉熸椂闂达紒")
       return
     }
   }
@@ -450,4 +472,4 @@
 
 <style scoped>
 
-</style>
\ No newline at end of file
+</style>

--
Gitblit v1.9.3