| | |
| | | <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> |
| | |
| | | /> |
| | | |
| | | <!-- 日期选择器 --> |
| | | <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"> |
| | |
| | | approveReason: "", |
| | | checkResult: "", |
| | | tempFileIds: [], |
| | | approverList: [] // 新增字段,存储所有节点的审批人id |
| | | approverList: [], // 新增字段,存储所有节点的审批人id |
| | | startDate: "", |
| | | endDate: "", |
| | | location: "", |
| | | price: "" |
| | | }, |
| | | rules: { |
| | | approveTime: [{ required: false, message: "请输入", trigger: "change" },], |
| | |
| | | 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); |
| | |
| | | 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) => { |
| | |
| | | |
| | | // 从本地存储获取参数 |
| | | operationType.value = uni.getStorageSync('operationType') || 'add'; |
| | | approveType.value = uni.getStorageSync('approveType') || 0; |
| | | |
| | | // 如果是编辑模式,从本地存储获取数据 |
| | | if (operationType.value === 'edit') { |
| | |
| | | // 清除本地存储的数据 |
| | | uni.removeStorageSync('operationType'); |
| | | uni.removeStorageSync('invoiceLedgerEditRow'); |
| | | uni.removeStorageSync('approveType'); |
| | | uni.navigateBack(); |
| | | }; |
| | | |
| | |
| | | // 收集所有节点的审批人id |
| | | 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("提交成功"); |
| | |
| | | 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(); |
| | |
| | | const day = String(today.getDate()).padStart(2, "0"); |
| | | return `${year}-${month}-${day}`; |
| | | } |
| | | |
| | | </script> |
| | | |
| | | <style scoped lang="scss"> |