请假管理前端判断天数
This commit is contained in:
parent
c4035f095d
commit
693a75dde6
@ -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>
|
||||
|
Loading…
Reference in New Issue
Block a user