diff --git a/src/api/home/kqgl/index.ts b/src/api/home/kqgl/index.ts index 82e1da3..5d841b4 100644 --- a/src/api/home/kqgl/index.ts +++ b/src/api/home/kqgl/index.ts @@ -45,4 +45,12 @@ export const KqglApi = { exportKqgl: async (params) => { return await request.download({ url: `/home/kqgl/export-excel`, params }) }, + // 保存为草稿 + saveDraft: async (data: KqglVO) => { + return await request.post({ url: `/home/kqgl/saveDraft`, data }) + }, +// 查询草稿 + getDraft: async (params: any) => { + return await request.get({ url: `/home/kqgl/draft`, params }) + }, } diff --git a/src/views/Home/kqnr/draft/indexDraftKqgl.vue b/src/views/Home/kqnr/draft/indexDraftKqgl.vue new file mode 100644 index 0000000..2fa804b --- /dev/null +++ b/src/views/Home/kqnr/draft/indexDraftKqgl.vue @@ -0,0 +1,209 @@ + + + diff --git a/src/views/Home/kqnr/kqgl/KqglCreate.vue b/src/views/Home/kqnr/kqgl/KqglCreate.vue index ae6d7a0..d2dfa66 100644 --- a/src/views/Home/kqnr/kqgl/KqglCreate.vue +++ b/src/views/Home/kqnr/kqgl/KqglCreate.vue @@ -76,6 +76,7 @@ @@ -297,6 +298,10 @@ const changeStatus = async ()=>{ } }; +//流程 +const { query } = useRoute() // 查询参数 +const queryId = query.id as unknown as number // 从 URL 传递过来的 id 编号 + /** 打开弹窗 设置时间戳为固定信息 */ const open = async () => { pop.value=false//每次打开渲染span @@ -306,9 +311,15 @@ const open = async () => { formLoading.value = true try { await getUserInfo() //获取当前用户,部门数据 - //创建的我就新建数据,还有新建标识,把标识传递过去 - await createUser() - await getList(dateKey.value) + // 通过queryId判断 草稿模式走草稿逻辑 新建模式走新建逻辑 + if (queryId){ + formData.value = await KqglApi.getKqgl(queryId) + await getList() //如果是修改那么我获取列表标识使用有的标识 + } else { + //创建的我就新建数据,还有新建标识,把标识传递过去 + await createUser() + await getList(dateKey.value) + } await changeStatus()//把字符串工作状态更改为数组 await getWorkDay()//获取工作日信息 } finally { @@ -336,19 +347,29 @@ 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 } - data.date = dateKey.value //创建后提交的时候才会更新标识 - await KqglApi.createKqgl(data) - await updateUser() //提交的时候更新考勤数据 + // 提交的时候也是,因为草稿保存时key已经保存过了,所以草稿模式不需要再保存key,会覆盖原数据, + // 判断 新建模式就正常保存key + if (queryId){ + await KqglApi.createKqgl(data) + await updateUser() //提交的时候更新考勤数据 + }else { + data.date = dateKey.value //创建后提交的时候才会更新标识 + await KqglApi.createKqgl(data) + await updateUser() //提交的时候更新考勤数据 + } message.success(t('common.createSuccess')) delView(unref(currentRoute)) @@ -357,13 +378,44 @@ const submitForm = async () => { formLoading.value = false } } +const draftButton = ref(false) +const saveDraft = async () => { + // 校验表单 + await formRef.value.validate() + // 提交请求 + formLoading.value = true + try { + const data = formData.value as unknown as KqglVO + // 这里时考勤独有的需要保存一下key + data.date = dateKey.value //创建后提交的时候才会更新标识 + await KqglApi.saveDraft(data) + await updateUser() //提交的时候更新考勤数据 + message.success(t('存为草稿成功!')) + // 关闭当前 Tab + delView(unref(currentRoute)) + await push({ name: 'Kqgl' }) + } finally { + formLoading.value = false + } +} /** 初始化 */ onMounted(async () => { await open() - const curFullPath = currentRoute.value.fullPath + 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]; + if ( id != "") { + formData.value = await KqglApi.getKqgl(Number( id) ) + draftButton.value= true + } + } const processKey = await FormProcessMappingApi.selectProcessKey( curFullPath ) if ( !processKey ) {