请假管理,获取实际工作日,年假类型,新增对状态是否锁定判断,和提交时更新数据为锁定
This commit is contained in:
parent
26a693cd52
commit
4b2d958e17
@ -37,6 +37,7 @@
|
|||||||
type="datetime"
|
type="datetime"
|
||||||
value-format="x"
|
value-format="x"
|
||||||
placeholder="选择开始时间"
|
placeholder="选择开始时间"
|
||||||
|
@change="getDay()"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
@ -47,6 +48,7 @@
|
|||||||
type="datetime"
|
type="datetime"
|
||||||
value-format="x"
|
value-format="x"
|
||||||
placeholder="选择结束时间"
|
placeholder="选择结束时间"
|
||||||
|
@change="getDay()"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
@ -108,6 +110,8 @@ import {useTagsViewStore} from "@/store/modules/tagsView";
|
|||||||
import {getUserProfile, ProfileVO} from "@/api/system/user/profile";
|
import {getUserProfile, ProfileVO} from "@/api/system/user/profile";
|
||||||
import {DeptVO, getDept} from "@/api/system/dept";
|
import {DeptVO, getDept} from "@/api/system/dept";
|
||||||
import {FormProcessMappingApi} from "@/api/bpm/formprocessmapping";
|
import {FormProcessMappingApi} from "@/api/bpm/formprocessmapping";
|
||||||
|
import {CalendarApi, CalendarVO} from "@/api/home/calendar";
|
||||||
|
import {NjglApi, NjglVO} from "@/api/home/njgl";
|
||||||
/** 请假管理 表单 */
|
/** 请假管理 表单 */
|
||||||
defineOptions({ name: 'QjglCreate' })
|
defineOptions({ name: 'QjglCreate' })
|
||||||
|
|
||||||
@ -126,7 +130,7 @@ const formData = ref({
|
|||||||
type: undefined,
|
type: undefined,
|
||||||
startTime: undefined,
|
startTime: undefined,
|
||||||
endTime: undefined,
|
endTime: undefined,
|
||||||
day: undefined,
|
day: 0,
|
||||||
filePath: undefined,
|
filePath: undefined,
|
||||||
userName: '',
|
userName: '',
|
||||||
deptId: '',
|
deptId: '',
|
||||||
@ -145,6 +149,42 @@ const formRules = reactive({
|
|||||||
deptId: [{ required: true, message: '部门不能为空', trigger: 'blur' }],
|
deptId: [{ required: true, message: '部门不能为空', trigger: 'blur' }],
|
||||||
reason: [{ 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 formRef = ref() // 表单 Ref
|
||||||
// const userInfo = ref({} as ProfileVO )
|
// const userInfo = ref({} as ProfileVO )
|
||||||
const userInfo = ref('')
|
const userInfo = ref('')
|
||||||
@ -179,6 +219,10 @@ const getUserInfo = async () => {
|
|||||||
if (formData.value.userName == ''||formData.value.userName == undefined){
|
if (formData.value.userName == ''||formData.value.userName == undefined){
|
||||||
formData.value.userName= users.nickname
|
formData.value.userName= users.nickname
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (formData.value.userId == ''||formData.value.userId == undefined){
|
||||||
|
formData.value.userId= users.id
|
||||||
|
}
|
||||||
// if (formData.value.deptName != undefined){
|
// if (formData.value.deptName != undefined){
|
||||||
// deptInfo.value = formData.value.deptName
|
// deptInfo.value = formData.value.deptName
|
||||||
// }
|
// }
|
||||||
@ -195,6 +239,28 @@ const startUserSelectAssigneesFormRef = ref() // 发起人选择审批人的表
|
|||||||
const startUserSelectAssigneesFormRules = ref({}) // 发起人选择审批人的表单 Rules
|
const startUserSelectAssigneesFormRules = ref({}) // 发起人选择审批人的表单 Rules
|
||||||
const userList = ref<any[]>([]) // 用户列表
|
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 emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
|
||||||
const submitForm = async () => {
|
const submitForm = async () => {
|
||||||
@ -208,6 +274,23 @@ const submitForm = async () => {
|
|||||||
// 提交请求
|
// 提交请求
|
||||||
formLoading.value = true
|
formLoading.value = true
|
||||||
try {
|
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
|
const data = formData.value as unknown as QjglVO
|
||||||
// // 设置指定审批人++
|
// // 设置指定审批人++
|
||||||
if (startUserSelectTasks.value?.length > 0) {
|
if (startUserSelectTasks.value?.length > 0) {
|
||||||
|
Loading…
Reference in New Issue
Block a user