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 ) {