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