diff --git a/frontend/build/getEnv.ts b/frontend/build/getEnv.ts index 1487dc5..aa9f42a 100644 --- a/frontend/build/getEnv.ts +++ b/frontend/build/getEnv.ts @@ -30,7 +30,9 @@ export function wrapperEnv(envConf: Recordable): ViteEnv { if (envName === "VITE_PROXY") { try { realName = JSON.parse(realName); - } catch (error) {} + } catch (error) { + // Keep the original string when the proxy config is not valid JSON. + } } ret[envName] = realName; } diff --git a/frontend/src/api/aireport/testReport/index.ts b/frontend/src/api/aireport/testReport/index.ts index 36cade7..84b2ded 100644 --- a/frontend/src/api/aireport/testReport/index.ts +++ b/frontend/src/api/aireport/testReport/index.ts @@ -36,12 +36,16 @@ export const downloadReportTaskLedgerTemplateApi = (): Promise> -export const importReportTaskLedgerApi = (id: string, formData: FormData) => { - return http.post(`${REPORT_TASK_BASE_URL}/${id}/ledger/import`, formData, { +export const validateReportTaskLedgerApi = (id: string, formData: FormData) => { + return http.post(`${REPORT_TASK_BASE_URL}/${id}/ledger/validate`, formData, { headers: { 'Content-Type': 'multipart/form-data' } }) } +export const importReportTaskLedgerApi = (id: string, params: ReportTask.ReportTaskLedgerImportRequest) => { + return http.post(`${REPORT_TASK_BASE_URL}/${id}/ledger/import`, params) +} + export const listReportTaskGroupReportsApi = (id: string) => { return http.get(`${REPORT_TASK_BASE_URL}/${id}/group-report/list`) } diff --git a/frontend/src/api/aireport/testReport/interface/index.ts b/frontend/src/api/aireport/testReport/interface/index.ts index 96a06e2..48985bf 100644 --- a/frontend/src/api/aireport/testReport/interface/index.ts +++ b/frontend/src/api/aireport/testReport/interface/index.ts @@ -1,9 +1,11 @@ export namespace ReportTask { + export type ReportTaskState = '01' | '02' | '03' | '04' | '05' + export type ReportTaskGenerateState = 0 | 1 | 2 export type ReportTaskGroupReportGenerateState = 0 | 1 | 2 | 3 export type ReportTaskLedgerImportStage = | '选择文件' | '校验文件' - | '文件上传' + | '文件导入' | '基础资料维护' | '完成' @@ -23,10 +25,11 @@ export namespace ReportTask { checkerName?: string | null checkTime?: string | null checkResult?: string | null + state?: ReportTaskState | null status?: number pointCount?: number | null groupCount?: number | null - reportGenerateState?: number | null + reportGenerateState?: ReportTaskGenerateState | null createBy?: string | null createByName?: string | null createTime?: string | null @@ -40,6 +43,7 @@ export namespace ReportTask { keyword?: string searchBeginTime?: string searchEndTime?: string + state?: ReportTaskState | '' timeRange?: string[] pageNum?: number pageSize?: number @@ -94,11 +98,57 @@ export namespace ReportTask { } | null } + export interface ReportTaskLedgerValidateAttachment { + attachmentName?: string | null + attachmentType?: string | null + referenced?: boolean | null + uploaded?: boolean | null + missing?: boolean | null + reuploadAllowed?: boolean | null + message?: string | null + } + + export interface ReportTaskLedgerValidatePoint { + rowNo?: number | null + pointKey?: string | null + substationName?: string | null + pointName?: string | null + complete?: boolean | null + missingAttachmentCount?: number | null + testDeviceNoValid?: boolean | null + testDeviceNoMessage?: string | null + clientUnitNameValid?: boolean | null + clientUnitNameMessage?: string | null + attachments?: ReportTaskLedgerValidateAttachment[] | null + } + + export interface ReportTaskLedgerValidateResult { + sessionId?: string | null + batchId?: string | null + success?: boolean | null + summaryFileName?: string | null + summaryFilePresent?: boolean | null + tempStoragePath?: string | null + uploadedFileCount?: number | null + pointCount?: number | null + missingAttachmentCount?: number | null + canContinueUpload?: boolean | null + requiredSheets?: string[] | null + existingSheets?: string[] | null + missingSheets?: string[] | null + orphanAttachmentNames?: string[] | null + failReasons?: string[] | null + points?: ReportTaskLedgerValidatePoint[] | null + } + export interface ReportTaskLedgerImportResult { + batchId?: string | null currentStage?: ReportTaskLedgerImportStage | string | null success?: boolean | null summaryFileName?: string | null + tempStoragePath?: string | null totalFileCount?: number + uploadedFileCount?: number pointCount?: number excelAttachmentCount?: number wordAttachmentCount?: number @@ -111,6 +161,10 @@ export namespace ReportTask { stages?: ReportTaskLedgerImportStageRecord[] | null } + export interface ReportTaskLedgerImportRequest { + batchId: string + } + export interface ReportTaskPointRecord { id?: string groupNo?: number | null @@ -150,9 +204,12 @@ export namespace ReportTask { export interface ReportTaskLedgerPreparedState { draftId: string + validateSessionId: string + validateResult: ReportTaskLedgerValidateResult | null latestImportResult: ReportTaskLedgerImportResult | null snapshot: ReportTaskLedgerImportSnapshot | null hasImported: boolean - pendingReimport: boolean + validatedBatchId: string + pendingRevalidate: boolean } } diff --git a/frontend/src/types/vite-plugin-eslint.d.ts b/frontend/src/types/vite-plugin-eslint.d.ts new file mode 100644 index 0000000..2788d8c --- /dev/null +++ b/frontend/src/types/vite-plugin-eslint.d.ts @@ -0,0 +1,7 @@ +declare module 'vite-plugin-eslint' { + import type { Plugin } from 'vite' + + const eslintPlugin: (options?: Record) => Plugin + + export default eslintPlugin +} diff --git a/frontend/src/views/aireport/testReport/components/ReportTaskBaseInfoStep.vue b/frontend/src/views/aireport/testReport/components/ReportTaskBaseInfoStep.vue new file mode 100644 index 0000000..2620f9a --- /dev/null +++ b/frontend/src/views/aireport/testReport/components/ReportTaskBaseInfoStep.vue @@ -0,0 +1,221 @@ + + + + + diff --git a/frontend/src/views/aireport/testReport/components/ReportTaskCompleteStep.vue b/frontend/src/views/aireport/testReport/components/ReportTaskCompleteStep.vue new file mode 100644 index 0000000..f7c628d --- /dev/null +++ b/frontend/src/views/aireport/testReport/components/ReportTaskCompleteStep.vue @@ -0,0 +1,53 @@ + + + + + diff --git a/frontend/src/views/aireport/testReport/components/ReportTaskFormDialog.vue b/frontend/src/views/aireport/testReport/components/ReportTaskFormDialog.vue index 62efb22..5bf91a6 100644 --- a/frontend/src/views/aireport/testReport/components/ReportTaskFormDialog.vue +++ b/frontend/src/views/aireport/testReport/components/ReportTaskFormDialog.vue @@ -6,17 +6,17 @@ append-to-body destroy-on-close class="report-task-flow-dialog" - @closed="resetForm" + @closed="resetFlow" >
-
-
- +
+ + + + + + +
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +