diff --git a/frontend/src/api/aireport/testReportMulti/index.ts b/frontend/src/api/aireport/testReportMulti/index.ts new file mode 100644 index 0000000..a09f044 --- /dev/null +++ b/frontend/src/api/aireport/testReportMulti/index.ts @@ -0,0 +1,40 @@ +import http from '@/api' +import type { AxiosResponse } from 'axios' +import type { ReportTaskMulti } from './interface' + +const REPORT_TASK_MULTI_BASE_URL = '/api/test-report-multi' + +export const listReportTaskMultisApi = (params: ReportTaskMulti.ReportTaskMultiListParams) => { + return http.post(`${REPORT_TASK_MULTI_BASE_URL}/list`, params) +} + +export const validateReportTaskMultiZipApi = (formData: FormData) => { + return http.post(`${REPORT_TASK_MULTI_BASE_URL}/zip/validate`, formData, { + headers: { 'Content-Type': 'multipart/form-data' } + }) +} + +export const createReportTaskMultiApi = (params: ReportTaskMulti.ReportTaskMultiCreateParam) => { + return http.post(`${REPORT_TASK_MULTI_BASE_URL}/create`, params) +} + +export const getReportTaskMultiDetailApi = (id: string) => { + return http.get(`${REPORT_TASK_MULTI_BASE_URL}/${id}`) +} + +export const listReportTaskMultiChildReportsApi = (id: string) => { + return http.get(`${REPORT_TASK_MULTI_BASE_URL}/${id}/child-report/list`) +} + +export const downloadReportTaskMultiApi = (id: string): Promise> => + http.get(`${REPORT_TASK_MULTI_BASE_URL}/${id}/download`, undefined, { + responseType: 'blob' + }) as unknown as Promise> + +export const deleteReportTaskMultisApi = (ids: string[]) => { + return http.post(`${REPORT_TASK_MULTI_BASE_URL}/delete`, ids) +} + +export const generateReportTaskMultiApi = (id: string) => { + return http.post(`${REPORT_TASK_MULTI_BASE_URL}/${id}/generate`) +} diff --git a/frontend/src/api/aireport/testReportMulti/interface/index.ts b/frontend/src/api/aireport/testReportMulti/interface/index.ts new file mode 100644 index 0000000..3ba6c86 --- /dev/null +++ b/frontend/src/api/aireport/testReportMulti/interface/index.ts @@ -0,0 +1,72 @@ +export namespace ReportTaskMulti { + export interface ReportTaskMultiRecord { + id?: string + no?: string | null + zipFileName?: string | null + summaryFileName?: string | null + dirCount?: number | null + childReportCount?: number | null + pointCount?: number | null + importState?: number | null + generateState?: number | null + status?: number | null + createBy?: string | null + createByName?: string | null + createTime?: string | null + updateBy?: string | null + updateByName?: string | null + updateTime?: string | null + } + + export interface ReportTaskMultiListParams { + keyword?: string + searchBeginTime?: string + searchEndTime?: string + timeRange?: string[] + generateState?: number + pageNum?: number + pageSize?: number + } + + export interface ReportTaskMultiTemplateDirRecord { + dirName?: string | null + dirPath?: string | null + pointCount?: number | null + groupCount?: number | null + excelAttachmentCount?: number | null + wordAttachmentCount?: number | null + } + + export interface ReportTaskMultiValidateResult { + success?: boolean | null + sessionId?: string | null + zipFileName?: string | null + summaryFileName?: string | null + dirCount?: number | null + childReportCount?: number | null + pointCount?: number | null + excelAttachmentCount?: number | null + wordAttachmentCount?: number | null + orphanAttachmentPaths?: string[] | null + failReasons?: string[] | null + templateDirs?: ReportTaskMultiTemplateDirRecord[] | null + } + + export interface ReportTaskMultiChildConfig { + templateDirName: string + templateDirPath: string + no: string + clientUnitId: string + reportModelId: string + createUnit: string + contractNumber: string + standard: string[] + phonenumber?: string + } + + export interface ReportTaskMultiCreateParam { + no: string + sessionId: string + childReports: ReportTaskMultiChildConfig[] + } +} diff --git a/frontend/src/routers/modules/dynamicRouter.ts b/frontend/src/routers/modules/dynamicRouter.ts index 6e72698..492d32b 100644 --- a/frontend/src/routers/modules/dynamicRouter.ts +++ b/frontend/src/routers/modules/dynamicRouter.ts @@ -44,8 +44,12 @@ const COMPONENT_PATH_ALIASES: Record = { // 报告菜单后端使用 aiReport,前端目录沿用既有 aireport 命名。 '/aiReport/reportTask': '/aireport/testReport', '/aiReport/reportTask/index': '/aireport/testReport/index', + '/aiReport/reportTaskMulti': '/aireport/testReportMulti', + '/aiReport/reportTaskMulti/index': '/aireport/testReportMulti/index', '/aiReport/testReport': '/aireport/testReport', '/aiReport/testReport/index': '/aireport/testReport/index', + '/aiReport/testReportMulti': '/aireport/testReportMulti', + '/aiReport/testReportMulti/index': '/aireport/testReportMulti/index', '/aiReport/reportModel': '/aireport/reportModel', '/aiReport/reportModel/index': '/aireport/reportModel/index', '/aiReport/clientUnit': '/aireport/clientUnit', diff --git a/frontend/src/views/aireport/testReportMulti/components/TestReportMultiCreateDialog.vue b/frontend/src/views/aireport/testReportMulti/components/TestReportMultiCreateDialog.vue new file mode 100644 index 0000000..385010e --- /dev/null +++ b/frontend/src/views/aireport/testReportMulti/components/TestReportMultiCreateDialog.vue @@ -0,0 +1,438 @@ + + + + + diff --git a/frontend/src/views/aireport/testReportMulti/components/TestReportMultiTable.vue b/frontend/src/views/aireport/testReportMulti/components/TestReportMultiTable.vue new file mode 100644 index 0000000..e26180a --- /dev/null +++ b/frontend/src/views/aireport/testReportMulti/components/TestReportMultiTable.vue @@ -0,0 +1,133 @@ + + + diff --git a/frontend/src/views/aireport/testReportMulti/index.vue b/frontend/src/views/aireport/testReportMulti/index.vue new file mode 100644 index 0000000..964ff2c --- /dev/null +++ b/frontend/src/views/aireport/testReportMulti/index.vue @@ -0,0 +1,607 @@ + + + + + diff --git a/frontend/tsconfig.app.json b/frontend/tsconfig.app.json index 32d87f2..6ff8aaf 100644 --- a/frontend/tsconfig.app.json +++ b/frontend/tsconfig.app.json @@ -3,7 +3,9 @@ "include": [ "env.d.ts", "src/**/*", - "src/**/*.vue" + "src/**/*.vue", + "src/views/aireport/testReportMulti/**/*.vue", + "src/views/aireport/testReportMulti/**/*.ts" ], "exclude": [ "src/**/__tests__/*"