diff --git a/src/api/home/qjgl/index.ts b/src/api/home/qjgl/index.ts index ffc01fa..1152b79 100644 --- a/src/api/home/qjgl/index.ts +++ b/src/api/home/qjgl/index.ts @@ -48,6 +48,13 @@ export const QjglApi = { deleteQjgl: async (id: number) => { return await request.delete({ url: `/home/qjgl/delete?id=` + id }) }, + saveDraft: async (data: QjglVO) => { + return await request.post({ url: `/home/qjgl/saveDraft`, data }) + }, + // 查询草稿 + getQjglDraft: async (params: any) => { + return await request.get({ url: `/home/qjgl/draft`, params }) + }, // 导出请假管理 Excel exportQjgl: async (params) => { diff --git a/src/views/Home/qjgl/QjglCreate.vue b/src/views/Home/qjgl/QjglCreate.vue index c760312..6f2d881 100644 --- a/src/views/Home/qjgl/QjglCreate.vue +++ b/src/views/Home/qjgl/QjglCreate.vue @@ -93,18 +93,10 @@ - - - - - - - - - - + @@ -116,7 +108,6 @@ import * as DefinitionApi from '@/api/bpm/definition' import * as UserApi from '@/api/system/user' 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"; @@ -130,6 +121,7 @@ const { push, currentRoute } = useRouter() // 路由 // const dialogVisible = ref(false) // 弹窗的是否展示 // const dialogTitle = ref('') // 弹窗的标题 const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用 +const draftButton = ref(false) const formType = ref('') // 表单的类型:create - 新增;update - 修改 const formData = ref({ id: undefined, @@ -214,23 +206,7 @@ const formRef = ref() // 表单 Ref const userInfo = ref('') // const deptInfo = ref({} as DeptVO ) const deptInfo = ref('') -/** 打开弹窗 */ -// const open = async (type: string, id?: number) => { -// dialogVisible.value = true -// dialogTitle.value = t('action.' + type) -// formType.value = type -// resetForm() -// // 修改时,设置数据 -// if (id) { -// formLoading.value = true -// try { -// formData.value = await QjglApi.getQjgl(id) -// } finally { -// formLoading.value = false -// } -// } -// } -// defineExpose({ open }) // 提供 open 方法,用于打开弹窗 + const getUserInfo = async () => { const users = await getUserProfile() if (formData.value.deptId == ''||formData.value.deptId == undefined){ @@ -287,6 +263,25 @@ const queryParamsNjgl = reactive({ /** 提交表单 */ const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调 +const saveDraft = async () => { + // 校验表单 + await formRef.value.validate() + // 提交请求 + formLoading.value = true + try { + const data = formData.value as unknown as QjglVO + + await QjglApi.saveDraft(data) + message.success(t('存为草稿成功!')) + // 关闭当前 Tab + delView(unref(currentRoute)) + await push({ name: 'Qjglindex' }) + + } finally { + formLoading.value = false + } + +} const submitForm = async () => { // 校验表单 await formRef.value.validate() @@ -327,10 +322,14 @@ const submitForm = async () => { data.startUserSelectAssignees = startUserSelectAssignees.value } - const curFullPath = currentRoute.value.fullPath + let curFullPath = currentRoute.value.fullPath if( curFullPath ) { data.curfullpath = curFullPath } + + if (curFullPath.includes("?")) { + curFullPath = curFullPath.split("?")[0]; + } const processKey = await FormProcessMappingApi.selectProcessKey( curFullPath ) if ( processKey) { data.processDefinitionKey = processKey @@ -387,9 +386,22 @@ const resetForm = () => { } /** 初始化 */ onMounted(async () => { - await getUserInfo() - // await getKnowtypeTree() - const curFullPath = currentRoute.value.fullPath + await getUserInfo() + let curFullPath = currentRoute.value.fullPath + + if (curFullPath.includes("?")) { + // 使用 URLSearchParams 提取查询参数 + const params = new URLSearchParams(curFullPath.split("?")[1]); + const id = params.get("id") ; + // 获取路径部分 + curFullPath = curFullPath.split("?")[0]; + //console.log("Path:", curFullPath); + //console.log("id:", id); + if ( id != "") { + formData.value = await QjglApi.getQjgl(Number( id) ) + draftButton.value= true + } + } const processKey = await FormProcessMappingApi.selectProcessKey( curFullPath ) if ( !processKey ) { diff --git a/src/views/Home/qjgl/QjglForm.vue b/src/views/Home/qjgl/QjglDraft.vue similarity index 58% rename from src/views/Home/qjgl/QjglForm.vue rename to src/views/Home/qjgl/QjglDraft.vue index d52b610..acf9497 100644 --- a/src/views/Home/qjgl/QjglForm.vue +++ b/src/views/Home/qjgl/QjglDraft.vue @@ -1,70 +1,88 @@