From c46bf7475742e9b50a8fdcc8d592ba3a86b2754d Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期一, 17 十一月 2025 15:02:25 +0800
Subject: [PATCH] 海川开心-添加请假管理、出差管理、公出管理页面

---
 src/pages/cooperativeOffice/collaborativeApproval/detail.vue |  117 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 108 insertions(+), 9 deletions(-)

diff --git a/src/pages/cooperativeOffice/collaborativeApproval/detail.vue b/src/pages/cooperativeOffice/collaborativeApproval/detail.vue
index a564628..7dbf5b2 100644
--- a/src/pages/cooperativeOffice/collaborativeApproval/detail.vue
+++ b/src/pages/cooperativeOffice/collaborativeApproval/detail.vue
@@ -39,9 +39,48 @@
       <u-form-item prop="approveTime" label="鐢宠鏃ユ湡" required>
         <u-input
           v-model="form.approveTime"
-          placeholder="璇烽�夋嫨"
           readonly
+          placeholder="璇烽�夋嫨"
           @click="showDatePicker"
+        />
+      </u-form-item>
+      
+      <!-- approveType=2 璇峰亣鐩稿叧瀛楁 -->
+      <template v-if="approveType === 2">
+        <u-form-item prop="startDate" label="璇峰亣寮�濮嬫椂闂�" required>
+          <u-input
+            v-model="form.startDate"
+            readonly
+            placeholder="璇烽�夋嫨寮�濮嬫椂闂�"
+            @click="showStartDatePicker"
+          />
+        </u-form-item>
+        <u-form-item prop="endDate" label="璇峰亣缁撴潫鏃堕棿" required>
+          <u-input
+            v-model="form.endDate"
+            readonly
+            placeholder="璇烽�夋嫨缁撴潫鏃堕棿"
+            @click="showEndDatePicker"
+          />
+        </u-form-item>
+      </template>
+      
+      <!-- approveType=3 鍑哄樊鐩稿叧瀛楁 -->
+      <u-form-item v-if="approveType === 3" prop="location" label="鍑哄樊鍦扮偣" required>
+        <u-input
+          v-model="form.location"
+          placeholder="璇疯緭鍏ュ嚭宸湴鐐�"
+          clearable
+        />
+      </u-form-item>
+      
+      <!-- approveType=4 鎶ラ攢鐩稿叧瀛楁 -->
+      <u-form-item v-if="approveType === 4" prop="price" label="鎶ラ攢閲戦" required>
+        <u-input
+          v-model="form.price"
+          type="number"
+          placeholder="璇疯緭鍏ユ姤閿�閲戦"
+          clearable
         />
       </u-form-item>
     </u-form>
@@ -56,15 +95,37 @@
     />
 
     <!-- 鏃ユ湡閫夋嫨鍣� -->
-    <u-popup v-model="showDate" mode="bottom">
-      <u-datetime-picker
+    <up-popup :show="showDate" mode="bottom" @close="showDate = false">
+      <up-datetime-picker
+        :show="true"
         v-model="currentDate"
-        title="閫夋嫨鏃ユ湡"
-        mode="date"
         @confirm="onDateConfirm"
         @cancel="showDate = false"
+        mode="date"
       />
-    </u-popup>
+    </up-popup>
+    
+    <!-- 璇峰亣寮�濮嬫椂闂撮�夋嫨鍣� -->
+    <up-popup :show="showStartDate" mode="bottom" @close="showStartDate = false">
+      <up-datetime-picker
+        :show="true"
+        v-model="startDateValue"
+        @confirm="onStartDateConfirm"
+        @cancel="showStartDate = false"
+        mode="date"
+      />
+    </up-popup>
+    
+    <!-- 璇峰亣缁撴潫鏃堕棿閫夋嫨鍣� -->
+    <up-popup :show="showEndDate" mode="bottom" @close="showEndDate = false">
+      <up-datetime-picker
+        :show="true"
+        v-model="endDateValue"
+        @confirm="onEndDateConfirm"
+        @cancel="showEndDate = false"
+        mode="date"
+      />
+    </up-popup>
     <!-- 瀹℃牳娴佺▼鍖哄煙 -->
     <view class="approval-process">
       <view class="approval-header">
@@ -137,7 +198,11 @@
 		approveReason: "",
 		checkResult: "",
 		tempFileIds: [],
-		approverList: [] // 鏂板瀛楁锛屽瓨鍌ㄦ墍鏈夎妭鐐圭殑瀹℃壒浜篿d
+		approverList: [], // 鏂板瀛楁锛屽瓨鍌ㄦ墍鏈夎妭鐐圭殑瀹℃壒浜篿d
+		startDate: "",
+		endDate: "",
+		location: "",
+		price: ""
 	},
 	rules: {
 		approveTime: [{ required: false, message: "璇疯緭鍏�", trigger: "change" },],
@@ -145,6 +210,10 @@
 		approveDeptId: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
 		approveReason: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
 		checkResult: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
+		startDate: [{ required: false, message: "璇烽�夋嫨寮�濮嬫椂闂�", trigger: "change" }],
+		endDate: [{ required: false, message: "璇烽�夋嫨缁撴潫鏃堕棿", trigger: "change" }],
+		location: [{ required: false, message: "璇疯緭鍏ュ嚭宸湴鐐�", trigger: "blur" }],
+		price: [{ required: false, message: "璇疯緭鍏ユ姤閿�閲戦", trigger: "blur" }],
 	},
 });
 const { form, rules } = toRefs(data);
@@ -158,8 +227,13 @@
 const formRef = ref(null);
 const message = ref("");
 const showDate = ref(false)
-const currentDate = ref([new Date().getFullYear(), new Date().getMonth() + 1, new Date().getDate()])
+const currentDate = ref(Date.now())
+const showStartDate = ref(false)
+const startDateValue = ref(Date.now())
+const showEndDate = ref(false)
+const endDateValue = ref(Date.now())
 const userStore = useUserStore()
+const approveType = ref(0)
 
 const getProductOptions = () => {
 	getDept().then((res) => {
@@ -184,6 +258,7 @@
 		
 		// 浠庢湰鍦板瓨鍌ㄨ幏鍙栧弬鏁�
 		operationType.value = uni.getStorageSync('operationType') || 'add';
+		approveType.value = uni.getStorageSync('approveType') || 0;
 		
 		// 濡傛灉鏄紪杈戞ā寮忥紝浠庢湰鍦板瓨鍌ㄨ幏鍙栨暟鎹�
 		if (operationType.value === 'edit') {
@@ -250,6 +325,7 @@
 	// 娓呴櫎鏈湴瀛樺偍鐨勬暟鎹�
   uni.removeStorageSync('operationType');
 	uni.removeStorageSync('invoiceLedgerEditRow');
+	uni.removeStorageSync('approveType');
   uni.navigateBack();
 };
 
@@ -283,7 +359,7 @@
 	  // 鏀堕泦鎵�鏈夎妭鐐圭殑瀹℃壒浜篿d
 	  console.log('approverNodes---', approverNodes.value)
 	  form.value.approveUserIds = approverNodes.value.map(node => node.userId).join(',')
-	  form.value.approveType = 0
+	  form.value.approveType = approveType.value
 	  if (operationType.value === "add" || currentApproveStatus.value == 3) {
 		approveProcessAdd(form.value).then(res => {
 		  showToast("鎻愪氦鎴愬姛");
@@ -366,6 +442,28 @@
 	currentDate.value = formatDateToYMD(e.value)
 	showDate.value = false;
 }
+
+// 鏄剧ず璇峰亣寮�濮嬫椂闂撮�夋嫨鍣�
+const showStartDatePicker = () => {
+	showStartDate.value = true
+}
+
+// 纭璇峰亣寮�濮嬫椂闂撮�夋嫨
+const onStartDateConfirm = (e) => {
+  form.value.startDate = formatDateToYMD(e.value)
+	showStartDate.value = false
+}
+
+const showEndDatePicker = () => {
+	showEndDate.value = true
+}
+
+// 纭璇峰亣缁撴潫鏃堕棿閫夋嫨
+const onEndDateConfirm = (e) => {
+  form.value.endDate = formatDateToYMD(e.value)
+	showEndDate.value = false
+}
+
 // 鑾峰彇褰撳墠鏃ユ湡骞舵牸寮忓寲涓� YYYY-MM-DD
 function getCurrentDate() {
 	const today = new Date();
@@ -374,6 +472,7 @@
 	const day = String(today.getDate()).padStart(2, "0");
 	return `${year}-${month}-${day}`;
 }
+
 </script>
 
 <style scoped lang="scss">

--
Gitblit v1.9.3