diff --git a/src/views/Home/qjgl/QjglCreate.vue b/src/views/Home/qjgl/QjglCreate.vue index 5c82344..cdff760 100644 --- a/src/views/Home/qjgl/QjglCreate.vue +++ b/src/views/Home/qjgl/QjglCreate.vue @@ -37,6 +37,7 @@ type="datetime" value-format="x" placeholder="选择开始时间" + @change="getDay()" /> @@ -47,6 +48,7 @@ type="datetime" value-format="x" placeholder="选择结束时间" + @change="getDay()" /> @@ -108,6 +110,8 @@ import {useTagsViewStore} from "@/store/modules/tagsView"; import {getUserProfile, ProfileVO} from "@/api/system/user/profile"; import {DeptVO, getDept} from "@/api/system/dept"; import {FormProcessMappingApi} from "@/api/bpm/formprocessmapping"; +import {CalendarApi, CalendarVO} from "@/api/home/calendar"; +import {NjglApi, NjglVO} from "@/api/home/njgl"; /** 请假管理 表单 */ defineOptions({ name: 'QjglCreate' }) @@ -126,7 +130,7 @@ const formData = ref({ type: undefined, startTime: undefined, endTime: undefined, - day: undefined, + day: 0, filePath: undefined, userName: '', deptId: '', @@ -145,6 +149,42 @@ const formRules = reactive({ deptId: [{ required: true, message: '部门不能为空', trigger: 'blur' }], reason: [{ required: true, message: '请假原因不能为空', trigger: 'blur' }] }) + +const queryParamsDate = reactive({ + pageNo: 1, + pageSize: 1, + id: undefined, + date: ['',''],//只获取本年的数据 + isWorkday: 1, + content: undefined, + createTime: [], +}) + +const getDay = async ()=> { + if (formData.value.startTime && formData.value.endTime) { + //提取对应数据 + const startTime = formData.value.startTime + const endTime = formData.value.endTime + //新建对应日期数据 + const startDate = new Date(startTime) + const endDate = new Date(endTime) + //根据时间戳数据判断选择日期 + if (startTime > endTime) { + formData.value.endTime = undefined + message.error("开始时间必须大于结束时间") + return; + } + //根据日期数据,获取字符串年月日数据 + const sTime= `${startDate.getFullYear()}-${(startDate.getMonth() + 1).toString().padStart(2, '0')}-${startDate.getDate().toString().padStart(2, '0')}`; + const eTime= `${endDate.getFullYear()}-${(endDate.getMonth() + 1).toString().padStart(2, '0')}-${endDate.getDate().toString().padStart(2, '0')}`; + //设置年月日区间 + queryParamsDate.date = [sTime,eTime] + queryParamsDate.isWorkday = 1 + //设置完后获取后台数据 + formData.value.day = await CalendarApi.getWorkDay(queryParamsDate) + } +} + const formRef = ref() // 表单 Ref // const userInfo = ref({} as ProfileVO ) const userInfo = ref('') @@ -179,6 +219,10 @@ const getUserInfo = async () => { if (formData.value.userName == ''||formData.value.userName == undefined){ formData.value.userName= users.nickname } + + if (formData.value.userId == ''||formData.value.userId == undefined){ + formData.value.userId= users.id + } // if (formData.value.deptName != undefined){ // deptInfo.value = formData.value.deptName // } @@ -195,6 +239,28 @@ const startUserSelectAssigneesFormRef = ref() // 发起人选择审批人的表 const startUserSelectAssigneesFormRules = ref({}) // 发起人选择审批人的表单 Rules const userList = ref([]) // 用户列表 +const njList = ref([]) // 列表的数据 +const total = ref(0) // 列表的总页数 +const queryParamsNjgl = reactive({ + pageNo: 1, + pageSize: 10, + id: undefined, + userName: undefined, + userId: undefined, + deptName: undefined, + year: '', + deptId: undefined, + annualDays: undefined, + usedDays: undefined, + remainingDays: undefined, + startDate: [], + endDate: [], + status: undefined, + dataStatus: undefined, + remark: undefined, + createTime: [] +}) + /** 提交表单 */ const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调 const submitForm = async () => { @@ -208,6 +274,23 @@ const submitForm = async () => { // 提交请求 formLoading.value = true try { + + if (formData.value.type == 1) { + queryParamsNjgl.userId = formData.value.userId + queryParamsNjgl.year = new Date().getFullYear().toString() + const njData = await NjglApi.getNjglPage(queryParamsNjgl) + njList.value = njData.list + + if (njData.total !== 1 || njList.value[0].status === 0){ + message.error("不能重复申请年假") + return + }else { + let nData: NjglVO = njList.value[0]; + nData.status = 0 + await NjglApi.updateNjgl(nData) + } + } + const data = formData.value as unknown as QjglVO // // 设置指定审批人++ if (startUserSelectTasks.value?.length > 0) {