请假管理前端判断天数

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