From a72eca88f85e0a2e1b7383697002817d3c8ae01b Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期五, 07 十一月 2025 11:45:03 +0800
Subject: [PATCH] 合同管理加下载合同功能

---
 src/views/collaborativeApproval/approvalProcess/components/infoFormDia.vue |   98 ++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 96 insertions(+), 2 deletions(-)

diff --git a/src/views/collaborativeApproval/approvalProcess/components/infoFormDia.vue b/src/views/collaborativeApproval/approvalProcess/components/infoFormDia.vue
index 24bb1d0..e0af994 100644
--- a/src/views/collaborativeApproval/approvalProcess/components/infoFormDia.vue
+++ b/src/views/collaborativeApproval/approvalProcess/components/infoFormDia.vue
@@ -39,6 +39,63 @@
             </el-form-item>
           </el-col>
         </el-row>
+        <!-- 璇峰亣鏃堕棿锛堜粎褰� approveType 涓� 2 鏃舵樉绀猴級 -->
+        <el-row :gutter="30" v-if="props.approveType == 2">
+          <el-col :span="12">
+            <el-form-item label="璇峰亣寮�濮嬫椂闂达細" prop="leaveStartTime">
+              <el-date-picker
+                  v-model="form.leaveStartTime"
+                  type="date"
+                  placeholder="璇烽�夋嫨寮�濮嬫棩鏈�"
+                  value-format="YYYY-MM-DD"
+                  format="YYYY-MM-DD"
+                  clearable
+                  style="width: 100%"
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="璇峰亣缁撴潫鏃堕棿锛�" prop="leaveEndTime">
+              <el-date-picker
+                  v-model="form.leaveEndTime"
+                  type="date"
+                  placeholder="璇烽�夋嫨缁撴潫鏃ユ湡"
+                  value-format="YYYY-MM-DD"
+                  format="YYYY-MM-DD"
+                  clearable
+                  style="width: 100%"
+              />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <!-- 鎶ラ攢閲戦锛堜粎褰� approveType 涓� 4 鏃舵樉绀猴級 -->
+        <el-row v-if="props.approveType == 4">
+          <el-col :span="24">
+            <el-form-item label="鎶ラ攢閲戦锛�" prop="reimbursementAmount">
+              <el-input-number
+                  v-model="form.reimbursementAmount"
+                  placeholder="璇疯緭鍏ユ姤閿�閲戦"
+                  :min="0"
+                  :precision="2"
+                  :step="0.01"
+                  style="width: 100%"
+                  clearable
+              />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <!-- 鍑哄樊鍦扮偣锛堜粎褰� approveType 涓� 3 鏃舵樉绀猴級 -->
+        <el-row v-if="props.approveType == 3">
+          <el-col :span="24">
+            <el-form-item label="鍑哄樊鍦扮偣锛�" prop="businessTripLocation">
+              <el-input
+                  v-model="form.businessTripLocation"
+                  placeholder="璇疯緭鍏ュ嚭宸湴鐐�"
+                  clearable
+              />
+            </el-form-item>
+          </el-col>
+        </el-row>
         <!-- 瀹℃壒浜洪�夋嫨锛堝姩鎬佽妭鐐癸級 -->
         <el-row>
           <el-col :span="24">
@@ -175,7 +232,11 @@
     approveReason: "",
     checkResult: "",
     tempFileIds: [],
-    approverList: [] // 鏂板瀛楁锛屽瓨鍌ㄦ墍鏈夎妭鐐圭殑瀹℃壒浜篿d
+    approverList: [], // 鏂板瀛楁锛屽瓨鍌ㄦ墍鏈夎妭鐐圭殑瀹℃壒浜篿d
+    leaveStartTime: "", // 璇峰亣寮�濮嬫椂闂�
+    leaveEndTime: "", // 璇峰亣缁撴潫鏃堕棿
+    reimbursementAmount: null, // 鎶ラ攢閲戦
+    businessTripLocation: "" // 鍑哄樊鍦扮偣
   },
   rules: {
     approveTime: [{ required: false, message: "璇疯緭鍏�", trigger: "change" },],
@@ -184,6 +245,10 @@
 		approveDeptId: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
     approveReason: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
     checkResult: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
+    leaveStartTime: [{ required: true, message: "璇烽�夋嫨璇峰亣寮�濮嬫椂闂�", trigger: "change" }],
+    leaveEndTime: [{ required: true, message: "璇烽�夋嫨璇峰亣缁撴潫鏃堕棿", trigger: "change" }],
+    reimbursementAmount: [{ required: true, message: "璇疯緭鍏ユ姤閿�閲戦", trigger: "blur" }],
+    businessTripLocation: [{ required: true, message: "璇疯緭鍏ュ嚭宸湴鐐�", trigger: "blur" }],
   },
 });
 const { form, rules } = toRefs(data);
@@ -211,7 +276,6 @@
 
 // 鎵撳紑寮规
 const openDialog = (type, row) => {
-  console.log('openDialog', type, row)
   operationType.value = type;
   dialogFormVisible.value = true;
 	userListNoPageByTenantId().then((res) => {
@@ -278,6 +342,36 @@
     proxy.$modal.msgError("璇蜂负鎵�鏈夊鎵硅妭鐐归�夋嫨瀹℃壒浜猴紒")
     return
   }
+  // 褰� approveType 涓� 2 鏃讹紝鏍¢獙璇峰亣鏃堕棿
+  if (props.approveType == 2) {
+    if (!form.value.leaveStartTime) {
+      proxy.$modal.msgError("璇烽�夋嫨璇峰亣寮�濮嬫椂闂达紒")
+      return
+    }
+    if (!form.value.leaveEndTime) {
+      proxy.$modal.msgError("璇烽�夋嫨璇峰亣缁撴潫鏃堕棿锛�")
+      return
+    }
+    // 鏍¢獙缁撴潫鏃堕棿涓嶈兘鏃╀簬寮�濮嬫椂闂�
+    if (new Date(form.value.leaveEndTime) < new Date(form.value.leaveStartTime)) {
+      proxy.$modal.msgError("璇峰亣缁撴潫鏃堕棿涓嶈兘鏃╀簬寮�濮嬫椂闂达紒")
+      return
+    }
+  }
+  // 褰� approveType 涓� 3 鏃讹紝鏍¢獙鍑哄樊鍦扮偣
+  if (props.approveType == 3) {
+    if (!form.value.businessTripLocation || form.value.businessTripLocation.trim() === '') {
+      proxy.$modal.msgError("璇疯緭鍏ュ嚭宸湴鐐癸紒")
+      return
+    }
+  }
+  // 褰� approveType 涓� 4 鏃讹紝鏍¢獙鎶ラ攢閲戦
+  if (props.approveType == 4) {
+    if (!form.value.reimbursementAmount || form.value.reimbursementAmount <= 0) {
+      proxy.$modal.msgError("璇疯緭鍏ユ湁鏁堢殑鎶ラ攢閲戦锛�")
+      return
+    }
+  }
   proxy.$refs.formRef.validate(valid => {
     if (valid) {
       if (operationType.value === "add" || currentApproveStatus.value == 3) {

--
Gitblit v1.9.3