From 916248483cd4aff785bfd10d645620dea26b0adf Mon Sep 17 00:00:00 2001 From: qiaoxinjiu Date: Wed, 29 Apr 2026 17:14:31 +0800 Subject: [PATCH] refactor: update case API to use camelCase for parameters and add import/export functionality for case templates --- src/api/caseApi.js | 18 +- .../TestPlatform/Case/CaseEditor.vue | 205 ++++++++++++++++-- src/utils/request.js | 27 ++- 3 files changed, 217 insertions(+), 33 deletions(-) diff --git a/src/api/caseApi.js b/src/api/caseApi.js index ee563e9..0f36f05 100644 --- a/src/api/caseApi.js +++ b/src/api/caseApi.js @@ -33,10 +33,14 @@ export function deleteModule(data) { } export function getCaseList(projectId, params) { + const query = Object.assign({}, params || {}) + if (projectId !== undefined && projectId !== null && projectId !== '') { + query.projectId = projectId + } return request({ url: '/case/list', method: 'get', - params: Object.assign({ project_id: projectId }, params || {}) + params: query }) } @@ -45,8 +49,8 @@ export function getCaseDetail(projectId, caseId) { url: '/case/detail', method: 'get', params: { - project_id: projectId, - id: caseId + projectId, + caseId } }) } @@ -55,7 +59,7 @@ export function createCase(projectId, data) { return request({ url: '/case/create', method: 'post', - data: Object.assign({ project_id: projectId }, data) + data: Object.assign({ projectId }, data) }) } @@ -63,7 +67,7 @@ export function updateCase(projectId, caseId, data) { return request({ url: '/case/update', method: 'post', - data: Object.assign({ project_id: projectId, id: caseId }, data) + data: Object.assign({ projectId, caseId }, data) }) } @@ -72,8 +76,8 @@ export function deleteCase(projectId, caseId) { url: '/case/delete', method: 'post', data: { - project_id: projectId, - id: caseId + projectId, + caseId } }) } diff --git a/src/components/TestPlatform/Case/CaseEditor.vue b/src/components/TestPlatform/Case/CaseEditor.vue index dd71055..d7d8316 100644 --- a/src/components/TestPlatform/Case/CaseEditor.vue +++ b/src/components/TestPlatform/Case/CaseEditor.vue @@ -2,8 +2,44 @@
- - + + + + + + + + + + + + + + + + + @@ -23,19 +59,32 @@ - + + + + + + + + + + + + + + 保存 - 返回 + 返回 @@ -44,7 +93,9 @@ diff --git a/src/utils/request.js b/src/utils/request.js index b36deae..ee22868 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -26,17 +26,30 @@ service.interceptors.request.use( // 响应拦截 401 token过期处理 service.interceptors.response.use( response => { - if(response.data.code===500){ - Message.error("服务异常") - }else if(response.data.code===451){ - router.push({name:'login'}) - } - else { + const data = response && response.data ? response.data : {} + // 兼容后端返回结构:{ success, code, message, data } + if (data && data.code === 500) { + Message.error('服务异常') + } else if (data && data.code === 451) { + router.push({ name: 'login' }) + } else if (data && data.success === false) { + Message.error(data.message || '请求失败') + } else { return response.data } }, error => { - // 错误提醒 + // 非 2xx 时会进入这里(如 40009/40012),后端通常会带 JSON body + const data = error && error.response && error.response.data ? error.response.data : null + if (data && typeof data === 'object') { + if (data.success === false) { + Message.error(data.message || '请求失败') + } else if (data.code && data.code !== 20000 && data.message) { + Message.error(data.message || '请求失败') + } + } else if (error && error.message) { + Message.error(error.message) + } return Promise.reject(error) } )