From b1cf1b9a6f0b9e0e6113ab1684e80fb37d612770 Mon Sep 17 00:00:00 2001 From: ywyonui Date: Sun, 6 Jul 2025 21:49:44 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E8=AF=B7=E5=81=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/base/server.ts | 23 ++ src/components/BasicListLayout/ListLayout.vue | 4 +- src/pages/base/grades/list.vue | 33 -- .../leave-request/components/xsQjEdit.vue | 200 +++++++++ .../leave-request/components/xsQjList.vue | 147 +++++++ src/pages/base/leave-request/index.vue | 183 ++------- src/pages/base/leave-request/xsQjDetail.vue | 385 ++++++++++++++++++ src/pages/system/login/login.vue | 2 +- 8 files changed, 792 insertions(+), 185 deletions(-) create mode 100644 src/pages/base/leave-request/components/xsQjEdit.vue create mode 100644 src/pages/base/leave-request/components/xsQjList.vue create mode 100644 src/pages/base/leave-request/xsQjDetail.vue diff --git a/src/api/base/server.ts b/src/api/base/server.ts index 587d58a..ac41464 100644 --- a/src/api/base/server.ts +++ b/src/api/base/server.ts @@ -121,3 +121,26 @@ export const jzXkTkjApi = async (params: any) => { export const jzXkJfCxjApi = async (params: any) => { return await post("/mobile/jz/xk/jfcx", params); }; + +/** + * 发起学生请假 + */ +export const jzAddXsQjApi = async (params: any) => { + return await post("/api/xsQj/save", params); +}; + +/** + * 查询学生请假列表 + */ +export const jzXsQjListApi = async (params: any) => { + return await get("/api/xsQj/findPage", params); +}; + +/** + * 查询学生请假流程处理历史 + */ +export const jzXsQjActivitiHistoryApi = async (params: any) => { + return await get("/api/activiti/history/historicFlow", params); +}; + + diff --git a/src/components/BasicListLayout/ListLayout.vue b/src/components/BasicListLayout/ListLayout.vue index 1ed0509..fb624bd 100644 --- a/src/components/BasicListLayout/ListLayout.vue +++ b/src/components/BasicListLayout/ListLayout.vue @@ -19,7 +19,7 @@ - + @@ -32,7 +32,7 @@ import {reactive} from "vue"; import type {LayoutOptions, PagingRefInterface} from "@/components/BasicListLayout/type/useLayout"; -const dataList = ref([]) +const dataList = ref([]) const fixed = ref(false) const pagingRef = ref(null) diff --git a/src/pages/base/grades/list.vue b/src/pages/base/grades/list.vue index 1b128e9..1d64bdc 100644 --- a/src/pages/base/grades/list.vue +++ b/src/pages/base/grades/list.vue @@ -48,36 +48,6 @@ let pageParams = ref({ xsId: getCurXs.id }) -// 模拟请假申请数据 -const mockLeaveData = [ - { - id: "ks001", - applicantName: "施瑞辰", - reason: "家里有事要处理", - startTime: "2025-02-17 08:00", - endTime: "2025-02-17 18:00", - }, - { - id: "ks002", - applicantName: "李晓明", - reason: "身体不适,需要就医", - startTime: "2025-02-18 09:00", - endTime: "2025-02-18 17:00", - }, - // 可以添加更多模拟数据 -]; - -// 模拟 API,实际应替换为真实 API 调用 -const testList = async (param?: any): Promise<{ message: string, resultCode: number, rows: any[] }> => { - console.log("Simulating API call for ks list with params:", param); - // 这里简单返回所有数据,真实场景需要分页 - return new Promise((resolve) => { - setTimeout(() => { - resolve({ message: "测试", resultCode: 1, rows: mockLeaveData }); - }, 500); - }); -}; - const [register, { reload }] = useLayout({ api: xsKsccApi, componentProps: {}, @@ -92,9 +62,6 @@ const viewDetails = (item: any | null) => { \ No newline at end of file diff --git a/src/pages/base/leave-request/index.vue b/src/pages/base/leave-request/index.vue index 13adbde..212d895 100644 --- a/src/pages/base/leave-request/index.vue +++ b/src/pages/base/leave-request/index.vue @@ -1,166 +1,51 @@ \ No newline at end of file diff --git a/src/pages/base/leave-request/xsQjDetail.vue b/src/pages/base/leave-request/xsQjDetail.vue new file mode 100644 index 0000000..5895df4 --- /dev/null +++ b/src/pages/base/leave-request/xsQjDetail.vue @@ -0,0 +1,385 @@ + + + + + diff --git a/src/pages/system/login/login.vue b/src/pages/system/login/login.vue index 1e2c776..a55d3e9 100644 --- a/src/pages/system/login/login.vue +++ b/src/pages/system/login/login.vue @@ -220,7 +220,7 @@ async function afterRead(event: any, index: number) { const tempFilePath = event.tempFilePaths[0]; showLoading({ title: "上传中" }); try { - const res = await attachmentUpload(tempFilePath); + const res = await attachmentUpload(tempFilePath) as { result: Array<{ filePath: string }> }; const result = res.result; if (result && result.length > 0 && result[0].filePath) { students.value[index].xstx = result[0].filePath;