请假管理,获取实际工作日,年假类型,新增对状态是否锁定判断,和提交时更新数据为锁定
This commit is contained in:
parent
26a693cd52
commit
4b2d958e17
@ -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) {
|
||||
|
Loading…
Reference in New Issue
Block a user