请假管理,获取实际工作日,年假类型,新增对状态是否锁定判断,和提交时更新数据为锁定

This commit is contained in:
XaoLi717 2024-12-13 08:37:06 +08:00
parent 26a693cd52
commit 4b2d958e17

View File

@ -37,6 +37,7 @@
type="datetime"
value-format="x"
placeholder="选择开始时间"
@change="getDay()"
/>
</el-form-item>
</el-col>
@ -47,6 +48,7 @@
type="datetime"
value-format="x"
placeholder="选择结束时间"
@change="getDay()"
/>
</el-form-item>
</el-col>
@ -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<any[]>([]) //
const njList = ref<NjglVO[]>([]) //
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) {