From 57b32e609f9c459839248a31336177bb06acb576 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BA=90=E6=96=87=E9=9B=A8?= <41315874+fumiama@users.noreply.github.com> Date: Thu, 16 Mar 2023 23:06:53 +0800 Subject: [PATCH] finish filelist/file --- frontend/vben/mock/page/file.ts | 34 +++ frontend/vben/src/api/page/index.ts | 10 +- frontend/vben/src/api/page/model/fileModel.ts | 18 ++ frontend/vben/src/views/page/file/index.vue | 288 ++++++++++-------- 4 files changed, 221 insertions(+), 129 deletions(-) diff --git a/frontend/vben/mock/page/file.ts b/frontend/vben/mock/page/file.ts index 1df2265..8aaa4f5 100644 --- a/frontend/vben/mock/page/file.ts +++ b/frontend/vben/mock/page/file.ts @@ -16,4 +16,38 @@ export default [ }) }, }, + { + url: '/api/getFileStatus', + timeout: 500, + method: 'get', + response: (request: requestParams) => { + const token = getRequestToken(request) + if (!token) return resultError('Invalid token') + const id = Number(request.query.id) + if (!id || id < 0) return resultError('Invalid id') + return resultSuccess({ + name: '100.docx', + size: 1.5, + questions: [ + { count: 4, point: 10, name: '一、填空题' }, + { count: 10, point: 20, name: '二、不定项选择题' }, + { count: 5, point: 10, name: '三、判断改错题' }, + { count: 5, point: 30, name: '四、简述题' }, + { count: 4, point: 30, name: '五、综合题' }, + ], + duplications: [ + { percent: 10, name: '二.1' }, + { percent: 20, name: '二.2' }, + { percent: 30, name: '二.3' }, + { percent: 40, name: '二.4' }, + { percent: 50, name: '二.5' }, + { percent: 60, name: '二.6' }, + { percent: 70, name: '二.7' }, + { percent: 80, name: '二.8' }, + { percent: 90, name: '二.9' }, + { percent: 100, name: '二.10' }, + ], + }) + }, + }, ] as MockMethod[] diff --git a/frontend/vben/src/api/page/index.ts b/frontend/vben/src/api/page/index.ts index e26f9b3..f8b0cd8 100644 --- a/frontend/vben/src/api/page/index.ts +++ b/frontend/vben/src/api/page/index.ts @@ -1,6 +1,6 @@ import { defHttp } from '/@/utils/http/axios' import { getFileListModel, FilePercent, DelFile, AnalyzeFile } from './model/fileListModel' -import { DownloadFile } from './model/fileModel' +import { DownloadFile, FileStatus } from './model/fileModel' enum Api { GetFileList = '/getFileList', @@ -8,6 +8,7 @@ enum Api { DelFile = '/delFile', AnalyzeFile = '/analyzeFile', DlFile = '/dlFile', + GetFileStatus = '/getFileStatus', } /** @@ -44,3 +45,10 @@ export const analyzeFile = (id: number) => { export const downloadFile = (id: number) => { return defHttp.get({ url: Api.DlFile, params: { id: id } }) } + +/** + * @description: Get file status + */ +export const getFileStatus = (id: number) => { + return defHttp.get({ url: Api.GetFileStatus, params: { id: id } }) +} diff --git a/frontend/vben/src/api/page/model/fileModel.ts b/frontend/vben/src/api/page/model/fileModel.ts index 8c72af1..ec7712b 100644 --- a/frontend/vben/src/api/page/model/fileModel.ts +++ b/frontend/vben/src/api/page/model/fileModel.ts @@ -1,3 +1,21 @@ export interface DownloadFile { url: string } + +export interface Question { + count: number + point: number + name: string +} + +export interface Duplication { + percent: number + name: string +} + +export interface FileStatus { + name: string + size: number + questions: Question[] + duplications: Duplication[] +} diff --git a/frontend/vben/src/views/page/file/index.vue b/frontend/vben/src/views/page/file/index.vue index 9229718..eefcdb9 100644 --- a/frontend/vben/src/views/page/file/index.vue +++ b/frontend/vben/src/views/page/file/index.vue @@ -1,7 +1,7 @@