请假管理前端判断天数

This commit is contained in:
XaoLi717 2024-12-18 19:51:53 +08:00
parent c4035f095d
commit 693a75dde6

View File

@ -11,65 +11,76 @@
label-width="100px" label-width="100px"
v-loading="formLoading" v-loading="formLoading"
> >
<el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="请假标题" prop="title"> <el-form-item label="请假标题" prop="title">
<el-input v-model="formData.title" placeholder="请输入请假标题" /> <el-input v-model="formData.title" placeholder="请输入请假标题" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-row>
<el-form-item label="起草人" prop="userName"> <el-col :span="12">
<el-input v-model="formData.userName" placeholder="请输入起草人" readonly/> <el-form-item label="起草人" prop="userName">
</el-form-item> <el-input v-model="formData.userName" placeholder="请输入起草人" readonly/>
</el-col> </el-form-item>
<el-col :span="12"> </el-col>
<el-form-item label="部门" prop="deptId"> <el-col :span="12">
<el-input v-model="formData.deptId" placeholder="请输入部门信息" v-show="false" /> <el-form-item label="部门" prop="deptId">
<!-- <div class="pull-left" v-show="true" v-if="userInfo?.dept">{{ userInfo?.dept.name }} </div>--> <el-input v-model="formData.deptId" placeholder="请输入部门信息" v-show="false" />
<!-- <div class="pull-left" v-show="true" v-if="deptInfo">{{ deptInfo }} </div>--> <!-- <div class="pull-left" v-show="true" v-if="userInfo?.dept">{{ userInfo?.dept.name }} </div>-->
<el-input v-model="formData.deptName" placeholder="请输入部门信息" readonly/> <!-- <div class="pull-left" v-show="true" v-if="deptInfo">{{ deptInfo }} </div>-->
</el-form-item> <el-input v-model="formData.deptName" placeholder="请输入部门信息" readonly/>
</el-col> </el-form-item>
<el-col :span="12"> </el-col>
<el-form-item label="开始时间" prop="startTime"> </el-row>
<el-date-picker <el-row>
<el-col :span="12">
<el-form-item label="开始时间" prop="startTime">
<el-date-picker
v-model="formData.startTime" v-model="formData.startTime"
type="datetime" type="datetime"
value-format="x" value-format="x"
placeholder="选择开始时间" placeholder="选择开始时间"
@change="getDay()" @change="getDay()"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="结束时间" prop="endTime"> <el-form-item label="结束时间" prop="endTime">
<el-date-picker <el-date-picker
v-model="formData.endTime" v-model="formData.endTime"
type="datetime" type="datetime"
value-format="x" value-format="x"
placeholder="选择结束时间" placeholder="选择结束时间"
@change="getDay()" @change="getDay()"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row>
<el-col :span="12"> <el-row>
<el-form-item label="请假类型" prop="type"> <el-col :span="12">
<el-select v-model="formData.type" placeholder="请选择请假类型"> <el-form-item label="请假类型" prop="type">
<el-option <el-select v-model="formData.type" placeholder="请选择请假类型">
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.BPM_OA_LEAVE_TYPE)" v-for="dict in getIntDictOptions(DICT_TYPE.BPM_OA_LEAVE_TYPE)"
:key="dict.value" :key="dict.value"
:label="dict.label" :label="dict.label"
:value="dict.value" :value="dict.value"
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> </el-row>
<el-form-item label="请假天数" prop="day"> <el-row :gutter="10">
<el-input v-model="formData.day" placeholder="请输入请假天数" /> <el-col :span="12">
</el-form-item> <el-form-item label="请假天数" prop="day">
</el-col> <el-input v-model="formData.day" placeholder="请输入请假天数" />
</el-form-item>
</el-col>
<el-col v-if="formData.type==1" :span="12">
<el-form-item v-if="njList" label="剩余年假天数">
<el-input v-model="njList.remainingDays" placeholder="剩余年假天数" disabled />
</el-form-item>
</el-col>
</el-row>
<!-- <el-form-item label="文件路径" prop="filePath">--> <!-- <el-form-item label="文件路径" prop="filePath">-->
<!-- <el-input v-model="formData.filePath" placeholder="请输入文件路径" />--> <!-- <el-input v-model="formData.filePath" placeholder="请输入文件路径" />-->
<!-- </el-form-item>--> <!-- </el-form-item>-->
@ -78,12 +89,9 @@
<!-- <el-form-item label="申请人的用户编号" prop="userId">--> <!-- <el-form-item label="申请人的用户编号" prop="userId">-->
<!-- <el-input v-model="formData.userId" placeholder="请输入申请人的用户编号" />--> <!-- <el-input v-model="formData.userId" placeholder="请输入申请人的用户编号" />-->
<!-- </el-form-item>--> <!-- </el-form-item>-->
<el-col :span="24">
<el-form-item label="请假原因" prop="reason"> <el-form-item label="请假原因" prop="reason">
<el-input v-model="formData.reason" type="textarea" placeholder="请输入请假原因" /> <el-input v-model="formData.reason" type="textarea" placeholder="请输入请假原因" />
</el-form-item> </el-form-item>
</el-col>
</el-row>
</el-form> </el-form>
<!-- <el-form>--> <!-- <el-form>-->
<!-- <el-form-item>--> <!-- <el-form-item>-->
@ -133,7 +141,7 @@ const formData = ref({
day: 0, day: 0,
filePath: undefined, filePath: undefined,
userName: '', userName: '',
deptId: '', deptId: undefined,
deptName: '', deptName: '',
processInstanceId: undefined, processInstanceId: undefined,
userId: undefined, userId: undefined,
@ -254,7 +262,7 @@ const startUserSelectAssigneesFormRef = ref() // 发起人选择审批人的表
const startUserSelectAssigneesFormRules = ref({}) // Rules const startUserSelectAssigneesFormRules = ref({}) // Rules
const userList = ref<any[]>([]) // const userList = ref<any[]>([]) //
const njList = ref<NjglVO[]>([]) // const njList = ref<NjglVO | null>(null); //
const total = ref(0) // const total = ref(0) //
const queryParamsNjgl = reactive({ const queryParamsNjgl = reactive({
pageNo: 1, pageNo: 1,
@ -290,17 +298,20 @@ const submitForm = async () => {
formLoading.value = true formLoading.value = true
try { try {
//
if (formData.value.type == 1) { if (formData.value.type == 1) {
queryParamsNjgl.userId = formData.value.userId // (0) () (0)
queryParamsNjgl.year = new Date().getFullYear().toString() if (njData.value.total !== 1 || njList.value?.status === 0){
const njData = await NjglApi.getNjglPageNac(queryParamsNjgl) message.error("存在另一年假申请记录")
njList.value = njData.list return
} else if (njList.value!.remainingDays < formData.value.day) {
if (njData.total !== 1 || njList.value[0].status === 0){ message.error("申请天数大于剩余天数")
message.error("不能重复申请年假") return
} else if (njList.value?.remainingDays === 0) {
message.error("无剩余年假天数")
return return
}else { }else {
let nData: NjglVO = njList.value[0]; const nData: NjglVO = njList.value;
nData.status = 0 nData.status = 0
await NjglApi.updateNjglNac(nData) await NjglApi.updateNjglNac(nData)
} }
@ -331,7 +342,22 @@ const submitForm = async () => {
formLoading.value = false formLoading.value = false
} }
} }
//
const njData = ref();
//
const getNjglData = async ()=> {
//
queryParamsNjgl.userId = formData.value.userId
queryParamsNjgl.deptId = formData.value.deptId
queryParamsNjgl.year = new Date().getFullYear().toString()
//
njData.value = await NjglApi.getNjglPageNac(queryParamsNjgl)
//
if (njData.value.list[0]) {
njList.value = njData.value.list[0]
}
}
/** 重置表单 */ /** 重置表单 */
const resetForm = () => { const resetForm = () => {
formData.value = { formData.value = {
@ -391,6 +417,7 @@ onMounted(async () => {
userList.value = await UserApi.getSimpleUserList() userList.value = await UserApi.getSimpleUserList()
//console.log(userList.value ,"userList.value") //console.log(userList.value ,"userList.value")
} }
await getNjglData()
}) })
</script> </script>