refactor(mes): 优化假期设置交互,精简接口对齐后端
1. 右键改左键点击弹出设置弹窗,阻止非当前月切换 2. 弹窗打开时调 get-by-day 接口回显已有 type 和 remark 3. 新增备注(remark)输入框,时间戳传参用 formatDate 转换 4. HolidayType 枚举抽取到 mes/utils/constants.ts 统一管理 5. 精简 API:移除 page/export/update/delete,create 改为 savepull/871/MERGE
parent
369d3bbff2
commit
23531c6c5b
|
|
@ -20,28 +20,13 @@ export const CalHolidayApi = {
|
|||
return await request.get({ url: `/mes/cal/holiday/list` })
|
||||
},
|
||||
|
||||
// 查询假期设置详情
|
||||
getHoliday: async (id: number) => {
|
||||
return await request.get({ url: `/mes/cal/holiday/get?id=` + id })
|
||||
// 根据日期查询假期设置
|
||||
getHolidayByDay: async (day: string) => {
|
||||
return await request.get({ url: `/mes/cal/holiday/get-by-day`, params: { day } })
|
||||
},
|
||||
|
||||
// 新增假期设置(含 upsert 逻辑)
|
||||
createHoliday: async (data: CalHolidayVO) => {
|
||||
return await request.post({ url: `/mes/cal/holiday/create`, data })
|
||||
},
|
||||
|
||||
// 修改假期设置
|
||||
updateHoliday: async (data: CalHolidayVO) => {
|
||||
return await request.put({ url: `/mes/cal/holiday/update`, data })
|
||||
},
|
||||
|
||||
// 删除假期设置
|
||||
deleteHoliday: async (id: number) => {
|
||||
return await request.delete({ url: `/mes/cal/holiday/delete?id=` + id })
|
||||
},
|
||||
|
||||
// 导出假期设置 Excel
|
||||
exportHoliday: async (params: any) => {
|
||||
return await request.download({ url: `/mes/cal/holiday/export-excel`, params })
|
||||
// 保存假期设置(含 upsert 逻辑)
|
||||
saveHoliday: async (data: CalHolidayVO) => {
|
||||
return await request.post({ url: `/mes/cal/holiday/save`, data })
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -78,12 +78,17 @@ defineExpose({ open })
|
|||
/** 提交表单 */
|
||||
const emit = defineEmits(['success'])
|
||||
const submitForm = async () => {
|
||||
await formRef.value.validate()
|
||||
// 校验表单
|
||||
if (!formRef) return
|
||||
const valid = await formRef.value.validate()
|
||||
if (!valid) return
|
||||
// 提交请求
|
||||
formLoading.value = true
|
||||
try {
|
||||
await CalHolidayApi.saveHoliday(formData.value as any)
|
||||
message.success('设置成功')
|
||||
dialogVisible.value = false
|
||||
// 发送操作成功的事件
|
||||
emit('success')
|
||||
} finally {
|
||||
formLoading.value = false
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@
|
|||
<ContentWrap>
|
||||
<el-calendar v-model="currentDate">
|
||||
<template #date-cell="{ data }">
|
||||
<div class="calendar-cell" @contextmenu.prevent="onRightClick(data)">
|
||||
<div class="calendar-cell-header">
|
||||
<span class="solar-day" :class="{ weekend: isWeekend(data.day) }">
|
||||
<div class="h-full p-4px" @click.stop="onClickDay(data)">
|
||||
<div class="flex justify-between items-center">
|
||||
<span class="text-16px font-500" :class="{ 'text-#f56c6c': isWeekend(data.day) }">
|
||||
{{ data.day.split('-')[2] }}
|
||||
</span>
|
||||
<el-tag v-if="holidaySet.has(data.day)" size="small" effect="dark" type="success">
|
||||
|
|
|
|||
Loading…
Reference in New Issue