From 492802e4fc1b371ba21a2a490c8dcd67d7c8b29c Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期一, 22 六月 2026 14:03:40 +0800
Subject: [PATCH] fix: 出差和请假审批新增开始与结束日期

---
 src/views/collaborativeApproval/approvalProcess/components/approvalDia.vue |   28 ++++++++++++++
 src/views/collaborativeApproval/approvalProcess/index.vue                  |   32 ++++++++++++---
 src/views/collaborativeApproval/approvalProcess/components/infoFormDia.vue |   22 +++++-----
 3 files changed, 64 insertions(+), 18 deletions(-)

diff --git a/src/views/collaborativeApproval/approvalProcess/components/approvalDia.vue b/src/views/collaborativeApproval/approvalProcess/components/approvalDia.vue
index 7ce5b4d..e551197 100644
--- a/src/views/collaborativeApproval/approvalProcess/components/approvalDia.vue
+++ b/src/views/collaborativeApproval/approvalProcess/components/approvalDia.vue
@@ -45,6 +45,32 @@
             </el-form-item>
           </el-col>
         </el-row>
+        <!-- 璇峰亣/鍑哄樊鏃堕棿锛堝綋 approveType 涓� 2 鎴� 3 鏃舵樉绀猴級 -->
+        <el-row :gutter="30"
+                v-if="props.approveType == 2 || props.approveType == 3">
+          <el-col :span="12">
+            <el-form-item :label="props.approveType == 2 ? '璇峰亣寮�濮嬫椂闂达細' : '寮�濮嬫椂闂达細'"
+                          prop="startDate">
+              <el-date-picker v-model="form.startDate"
+                              type="date"
+                              value-format="YYYY-MM-DD"
+                              format="YYYY-MM-DD"
+                              disabled
+                              style="width: 100%" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item :label="props.approveType == 2 ? '璇峰亣缁撴潫鏃堕棿锛�' : '缁撴潫鏃堕棿锛�'"
+                          prop="endDate">
+              <el-date-picker v-model="form.endDate"
+                              type="date"
+                              value-format="YYYY-MM-DD"
+                              format="YYYY-MM-DD"
+                              disabled
+                              style="width: 100%" />
+            </el-form-item>
+          </el-col>
+        </el-row>
         <!-- 瀹℃壒浜洪�夋嫨锛堝姩鎬佽妭鐐癸級 -->
         <el-row :gutter="30">
           <el-col :span="12">
@@ -457,6 +483,8 @@
       approveDeptId: "",
       approveReason: "",
       checkResult: "",
+      startDate: "",
+      endDate: "",
     },
   });
   const { form } = toRefs(data);
diff --git a/src/views/collaborativeApproval/approvalProcess/components/infoFormDia.vue b/src/views/collaborativeApproval/approvalProcess/components/infoFormDia.vue
index cee3eeb..e486fe4 100644
--- a/src/views/collaborativeApproval/approvalProcess/components/infoFormDia.vue
+++ b/src/views/collaborativeApproval/approvalProcess/components/infoFormDia.vue
@@ -47,11 +47,11 @@
             </el-form-item>
           </el-col>
         </el-row>
-        <!-- 璇峰亣鏃堕棿锛堜粎褰� approveType 涓� 2 鏃舵樉绀猴級 -->
+        <!-- 璇峰亣/鍑哄樊鏃堕棿锛堝綋 approveType 涓� 2 鎴� 3 鏃舵樉绀猴級 -->
         <el-row :gutter="30"
-                v-if="props.approveType == 2">
+                v-if="props.approveType == 2 || props.approveType == 3">
           <el-col :span="12">
-            <el-form-item label="璇峰亣寮�濮嬫椂闂达細"
+            <el-form-item :label="props.approveType == 2 ? '璇峰亣寮�濮嬫椂闂达細' : '寮�濮嬫椂闂达細'"
                           prop="startDate">
               <el-date-picker v-model="form.startDate"
                               type="date"
@@ -63,7 +63,7 @@
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="璇峰亣缁撴潫鏃堕棿锛�"
+            <el-form-item :label="props.approveType == 2 ? '璇峰亣缁撴潫鏃堕棿锛�' : '缁撴潫鏃堕棿锛�'"
                           prop="endDate">
               <el-date-picker v-model="form.endDate"
                               type="date"
@@ -258,10 +258,10 @@
       approveReason: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
       checkResult: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
       startDate: [
-        { required: true, message: "璇烽�夋嫨璇峰亣寮�濮嬫椂闂�", trigger: "change" },
+        { required: true, message: "璇烽�夋嫨寮�濮嬫椂闂�", trigger: "change" },
       ],
       endDate: [
-        { required: true, message: "璇烽�夋嫨璇峰亣缁撴潫鏃堕棿", trigger: "change" },
+        { required: true, message: "璇烽�夋嫨缁撴潫鏃堕棿", trigger: "change" },
       ],
       price: [{ required: true, message: "璇疯緭鍏ユ姤閿�閲戦", trigger: "blur" }],
       location: [{ required: true, message: "璇疯緭鍏ュ嚭宸湴鐐�", trigger: "blur" }],
@@ -388,19 +388,19 @@
       proxy.$modal.msgError("璇蜂负鎵�鏈夊鎵硅妭鐐归�夋嫨瀹℃壒浜猴紒");
       return;
     }
-    // 褰� approveType 涓� 2 鏃讹紝鏍¢獙璇峰亣鏃堕棿
-    if (props.approveType == 2) {
+    // 褰� approveType 涓� 2 鎴� 3 鏃讹紝鏍¢獙璇峰亣/鍑哄樊鏃堕棿
+    if (props.approveType == 2 || props.approveType == 3) {
       if (!form.value.startDate) {
-        proxy.$modal.msgError("璇烽�夋嫨璇峰亣寮�濮嬫椂闂达紒");
+        proxy.$modal.msgError(props.approveType == 2 ? "璇烽�夋嫨璇峰亣寮�濮嬫椂闂达紒" : "璇烽�夋嫨寮�濮嬫椂闂达紒");
         return;
       }
       if (!form.value.endDate) {
-        proxy.$modal.msgError("璇烽�夋嫨璇峰亣缁撴潫鏃堕棿锛�");
+        proxy.$modal.msgError(props.approveType == 2 ? "璇烽�夋嫨璇峰亣缁撴潫鏃堕棿锛�" : "璇烽�夋嫨缁撴潫鏃堕棿锛�");
         return;
       }
       // 鏍¢獙缁撴潫鏃堕棿涓嶈兘鏃╀簬寮�濮嬫椂闂�
       if (new Date(form.value.endDate) < new Date(form.value.startDate)) {
-        proxy.$modal.msgError("璇峰亣缁撴潫鏃堕棿涓嶈兘鏃╀簬寮�濮嬫椂闂达紒");
+        proxy.$modal.msgError(props.approveType == 2 ? "璇峰亣缁撴潫鏃堕棿涓嶈兘鏃╀簬寮�濮嬫椂闂达紒" : "缁撴潫鏃堕棿涓嶈兘鏃╀簬寮�濮嬫椂闂达紒");
         return;
       }
     }
diff --git a/src/views/collaborativeApproval/approvalProcess/index.vue b/src/views/collaborativeApproval/approvalProcess/index.vue
index 9e5a1ce..6677c48 100644
--- a/src/views/collaborativeApproval/approvalProcess/index.vue
+++ b/src/views/collaborativeApproval/approvalProcess/index.vue
@@ -186,6 +186,8 @@
   // 鍔ㄦ�佽〃鏍煎垪閰嶇疆锛屾牴鎹鎵圭被鍨嬬敓鎴愬垪
   const tableColumnCopy = computed(() => {
     const isLeaveType = currentApproveType.value === 2; // 璇峰亣绠$悊
+    const isBusinessTripType = currentApproveType.value === 3; // 鍑哄樊绠$悊
+    const showDateRange = isLeaveType || isBusinessTripType; // 鏄惁鏄剧ず鏃堕棿娈�
     const isReimburseType = currentApproveType.value === 4; // 鎶ラ攢绠$悊
     const isQuotationType = currentApproveType.value === 6; // 鎶ヤ环瀹℃壒
     const isPurchaseType = currentApproveType.value === 5; // 閲囪喘瀹℃壒
@@ -261,20 +263,36 @@
       });
     }
 
-    // 鏃ユ湡鍒楋紙鏍规嵁绫诲瀷鍔ㄦ�侀厤缃級
+    // 鍩虹鏃ユ湡鍒�
     baseColumns.push(
       {
-        label: isLeaveType ? "寮�濮嬫棩鏈�" : "鐢宠鏃ユ湡",
-        prop: isLeaveType ? "startDate" : "approveTime",
-        width: 200,
+        label: "鐢宠鏃ユ湡",
+        prop: "approveTime",
+        width: 160,
       },
       {
-        label: "缁撴潫鏃ユ湡",
-        prop: isLeaveType ? "endDate" : "approveOverTime",
-        width: 120,
+        label: "瀹℃壒鏃ユ湡",
+        prop: "approveOverTime",
+        width: 160,
       }
     );
 
+    // 寮�濮嬪拰缁撴潫鏃ユ湡鍒�
+    if (showDateRange) {
+      baseColumns.push(
+        {
+          label: "寮�濮嬫棩鏈�",
+          prop: "startDate",
+          width: 120,
+        },
+        {
+          label: "缁撴潫鏃ユ湡",
+          prop: "endDate",
+          width: 120,
+        }
+      );
+    }
+
     // 褰撳墠瀹℃壒浜哄垪
     baseColumns.push({
       label: "褰撳墠瀹℃壒浜�",

--
Gitblit v1.9.3