From da550b75f718be25ba99a718f6b3a0397cb893bc Mon Sep 17 00:00:00 2001 From: baiqi Date: Mon, 11 Mar 2024 18:37:17 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E6=8E=A5=E5=8F=A3=E7=AE=A1=E7=90=86):=20?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=AE=9A=E4=B9=89-=E8=AF=A6=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/.eslintrc.js | 1 + frontend/package.json | 4 +- .../src/api/modules/api-test/management.ts | 6 + .../src/api/requrls/api-test/management.ts | 13 +- .../business/ms-params-input/index.vue | 2 + .../components/pure/ms-detail-card/index.vue | 106 +++ .../pure/ms-detail-card/locale/en-US.ts | 4 + .../pure/ms-detail-card/locale/zh-CN.ts | 4 + .../components/pure/ms-form-table/index.vue | 245 ++++- .../pure/ms-form-table/locale/en-US.ts | 1 + .../pure/ms-form-table/locale/zh-CN.ts | 4 + .../components/pure/ms-table/base-table.vue | 1 + .../components/pure/ms-tag/ms-tag-group.vue | 8 +- frontend/src/enums/caseEnum.ts | 1 + frontend/src/enums/tableEnum.ts | 2 +- frontend/src/enums/taskCenter.ts | 2 +- frontend/src/locale/en-US/common.ts | 4 + frontend/src/locale/zh-CN/common.ts | 4 + frontend/src/models/apiTest/common.ts | 2 +- frontend/src/router/guard/index.ts | 10 +- .../views/api-test/components/apiStatus.vue | 5 +- .../api-test/components/batchAddKeyVal.vue | 2 +- .../api-test/components/paramDescInput.vue | 2 + .../views/api-test/components/paramTable.vue | 40 +- .../views/api-test/components/popConfirm.vue | 1 - .../components/quoteSqlSourceDrawer.vue | 5 + .../components/requestComposition/index.vue | 11 +- .../requestComposition/response/edit.vue | 109 ++- .../requestComposition/response/index.vue | 105 ++- .../src/views/api-test/components/utils.ts | 29 + frontend/src/views/api-test/debug/index.vue | 2 +- .../components/management/api/apiTable.vue | 10 +- .../components/management/api/index.vue | 103 ++- .../components/management/api/preview.vue | 862 ++++++++++++++++++ .../components/management/index.vue | 2 +- .../src/views/api-test/management/index.vue | 10 + .../views/api-test/management/locale/en-US.ts | 13 + .../views/api-test/management/locale/zh-CN.ts | 15 +- .../components/caseDetail.vue | 6 +- 39 files changed, 1590 insertions(+), 166 deletions(-) create mode 100644 frontend/src/components/pure/ms-detail-card/index.vue create mode 100644 frontend/src/components/pure/ms-detail-card/locale/en-US.ts create mode 100644 frontend/src/components/pure/ms-detail-card/locale/zh-CN.ts create mode 100644 frontend/src/components/pure/ms-form-table/locale/en-US.ts create mode 100644 frontend/src/components/pure/ms-form-table/locale/zh-CN.ts create mode 100644 frontend/src/views/api-test/management/components/management/api/preview.vue diff --git a/frontend/.eslintrc.js b/frontend/.eslintrc.js index 449b38aea7..a17baa2d02 100644 --- a/frontend/.eslintrc.js +++ b/frontend/.eslintrc.js @@ -53,6 +53,7 @@ module.exports = { '@typescript-eslint/no-unused-vars': 1, '@typescript-eslint/no-empty-function': 1, '@typescript-eslint/no-explicit-any': 0, + '@typescript-eslint/no-duplicate-enum-values': 0, 'consistent-return': 'off', 'import/extensions': [ 2, diff --git a/frontend/package.json b/frontend/package.json index 746ed4be9e..5a5c1a943a 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -92,8 +92,8 @@ "@types/lodash-es": "^4.17.9", "@types/nprogress": "^0.2.0", "@types/sortablejs": "^1.15.2", - "@typescript-eslint/eslint-plugin": "^5.62.0", - "@typescript-eslint/parser": "^5.62.0", + "@typescript-eslint/eslint-plugin": "^7.1.1", + "@typescript-eslint/parser": "^7.1.1", "@vitejs/plugin-vue": "^3.2.0", "@vitejs/plugin-vue-jsx": "^2.1.1", "@vitest/coverage-c8": "^0.31.4", diff --git a/frontend/src/api/modules/api-test/management.ts b/frontend/src/api/modules/api-test/management.ts index c9408e5d53..332c0f8fef 100644 --- a/frontend/src/api/modules/api-test/management.ts +++ b/frontend/src/api/modules/api-test/management.ts @@ -24,6 +24,7 @@ import { MoveModuleUrl, SortDefinitionUrl, SwitchDefinitionScheduleUrl, + ToggleFollowDefinitionUrl, TransferFileModuleOptionUrl, TransferFileUrl, UpdateDefinitionScheduleUrl, @@ -203,6 +204,11 @@ export function debugDefinition(data: ExecuteRequestParams) { return MSR.post({ url: DebugDefinitionUrl, data }); } +// 关注/取消关注接口定义 +export function toggleFollowDefinition(id: string | number) { + return MSR.get({ url: ToggleFollowDefinitionUrl, params: id }); +} + /** * Mock */ diff --git a/frontend/src/api/requrls/api-test/management.ts b/frontend/src/api/requrls/api-test/management.ts index 8fd7584828..95d705f3a7 100644 --- a/frontend/src/api/requrls/api-test/management.ts +++ b/frontend/src/api/requrls/api-test/management.ts @@ -6,6 +6,9 @@ export const GetEnvModuleUrl = '/api/definition/module/env/tree'; // 获取环 export const GetModuleCountUrl = '/api/definition/module/count'; // 获取模块统计数量 export const AddModuleUrl = '/api/definition/module/add'; // 添加模块 export const DeleteModuleUrl = '/api/definition/module/delete'; // 删除模块 +/** + * 接口定义 + */ export const DefinitionPageUrl = '/api/definition/page'; // 接口定义列表 export const AddDefinitionUrl = '/api/definition/add'; // 添加接口定义 export const UpdateDefinitionUrl = '/api/definition/update'; // 更新接口定义 @@ -13,9 +16,6 @@ export const GetDefinitionDetailUrl = '/api/definition/get-detail'; // 获取接 export const TransferFileUrl = '/api/definition/transfer'; // 文件转存 export const TransferFileModuleOptionUrl = '/api/definition/transfer/options'; // 文件转存目录 export const UploadTempFileUrl = '/api/definition/upload/temp/file'; // 临时文件上传 -export const DefinitionMockPageUrl = '/api/definition/mock/page'; // mock列表 -export const UpdateMockStatusUrl = '/api/definition/mock/enable/'; // 更新mock状态 -export const DeleteMockUrl = '/api/definition/mock/delete'; // 刪除mock export const DeleteDefinitionUrl = '/api/definition/delete-to-gc'; // 删除接口定义 export const ImportDefinitionUrl = '/api/definition/import'; // 导入接口定义 export const SortDefinitionUrl = '/api/definition/edit/pos'; // 接口定义拖拽 @@ -30,3 +30,10 @@ export const SwitchDefinitionScheduleUrl = '/api/definition/schedule/switch'; // export const GetDefinitionScheduleUrl = '/api/definition/schedule/get'; // 接口定义-定时同步-查询 export const DeleteDefinitionScheduleUrl = '/api/definition/schedule/delete'; // 接口定义-定时同步-删除 export const DebugDefinitionUrl = '/api/definition/debug'; // 接口定义-调试 +export const ToggleFollowDefinitionUrl = '/api/definition/follow'; // 接口定义-关注/取消关注 +/** + * Mock + */ +export const DefinitionMockPageUrl = '/api/definition/mock/page'; // mock列表 +export const UpdateMockStatusUrl = '/api/definition/mock/enable/'; // 更新mock状态 +export const DeleteMockUrl = '/api/definition/mock/delete'; // 刪除mock diff --git a/frontend/src/components/business/ms-params-input/index.vue b/frontend/src/components/business/ms-params-input/index.vue index cabc69eea4..62a24a7586 100644 --- a/frontend/src/components/business/ms-params-input/index.vue +++ b/frontend/src/components/business/ms-params-input/index.vue @@ -632,6 +632,8 @@ } } .ms-params-input:not(.arco-input-focus) { + @apply bg-transparent; + border-color: transparent; &:not(:hover) { .arco-input::placeholder { diff --git a/frontend/src/components/pure/ms-detail-card/index.vue b/frontend/src/components/pure/ms-detail-card/index.vue new file mode 100644 index 0000000000..88b1a9f9ce --- /dev/null +++ b/frontend/src/components/pure/ms-detail-card/index.vue @@ -0,0 +1,106 @@ + + + + + diff --git a/frontend/src/components/pure/ms-detail-card/locale/en-US.ts b/frontend/src/components/pure/ms-detail-card/locale/en-US.ts new file mode 100644 index 0000000000..16a5438a42 --- /dev/null +++ b/frontend/src/components/pure/ms-detail-card/locale/en-US.ts @@ -0,0 +1,4 @@ +export default { + 'msDetailCard.more': 'Expand more', + 'msDetailCard.collapse': 'Collapse', +}; diff --git a/frontend/src/components/pure/ms-detail-card/locale/zh-CN.ts b/frontend/src/components/pure/ms-detail-card/locale/zh-CN.ts new file mode 100644 index 0000000000..9613d009a0 --- /dev/null +++ b/frontend/src/components/pure/ms-detail-card/locale/zh-CN.ts @@ -0,0 +1,4 @@ +export default { + 'msDetailCard.more': '展开更多', + 'msDetailCard.collapse': '收起', +}; diff --git a/frontend/src/components/pure/ms-form-table/index.vue b/frontend/src/components/pure/ms-form-table/index.vue index 4f96eaa7dc..5ff23c1e4c 100644 --- a/frontend/src/components/pure/ms-form-table/index.vue +++ b/frontend/src/components/pure/ms-form-table/index.vue @@ -2,17 +2,120 @@ + + @@ -20,26 +123,38 @@ @@ -147,6 +341,11 @@ :deep(.arco-table .arco-table-cell) { padding: 8px 2px; } + .ms-form-table-no-left-action { + :deep(.arco-table .arco-table-cell) { + padding: 8px 16px; + } + } :deep(.arco-table-cell-align-left) { padding: 8px; } @@ -155,8 +354,18 @@ padding: 8px; } } - :deep(.param-input:not(.arco-input-focus, .arco-select-view-focus)) { + :deep(.ms-table-row-disabled) { + td { + background-color: white !important; + } + * { + color: var(--color-text-4) !important; + } + } + :deep(.ms-form-table-input:not(.arco-input-focus, .arco-select-view-focus)) { &:not(:hover) { + @apply bg-transparent; + border-color: transparent !important; .arco-input::placeholder { @apply invisible; @@ -172,8 +381,8 @@ } } } - :deep(.param-input-number) { - @apply pr-0; + :deep(.ms-form-table-input-number) { + @apply bg-transparent pr-0; .arco-input { @apply text-right; } @@ -193,4 +402,20 @@ :deep(.arco-table-expand-btn) { background: transparent; } + .ms-form-table-popover-title { + @apply font-medium; + + margin-bottom: 4px; + font-size: 12px; + font-weight: 500; + line-height: 16px; + color: var(--color-text-1); + } + .ms-form-table-popover-value { + min-width: 100px; + max-width: 280px; + font-size: 12px; + line-height: 16px; + color: var(--color-text-1); + } diff --git a/frontend/src/components/pure/ms-form-table/locale/en-US.ts b/frontend/src/components/pure/ms-form-table/locale/en-US.ts new file mode 100644 index 0000000000..ff8b4c5632 --- /dev/null +++ b/frontend/src/components/pure/ms-form-table/locale/en-US.ts @@ -0,0 +1 @@ +export default {}; diff --git a/frontend/src/components/pure/ms-form-table/locale/zh-CN.ts b/frontend/src/components/pure/ms-form-table/locale/zh-CN.ts new file mode 100644 index 0000000000..c5a3da9df6 --- /dev/null +++ b/frontend/src/components/pure/ms-form-table/locale/zh-CN.ts @@ -0,0 +1,4 @@ +export default { + 'msFormTable.paramRequired': '必填', + 'msFormTable.paramNotRequired': '非必填', +}; diff --git a/frontend/src/components/pure/ms-table/base-table.vue b/frontend/src/components/pure/ms-table/base-table.vue index 1896d07ede..b783241549 100644 --- a/frontend/src/components/pure/ms-table/base-table.vue +++ b/frontend/src/components/pure/ms-table/base-table.vue @@ -147,6 +147,7 @@ placement="top" content-class="max-w-[400px]" :content="String(record[item.dataIndex as string])" + :disabled="record[item.dataIndex as string] === '' || record[item.dataIndex as string] === undefined || record[item.dataIndex as string] === null" >
diff --git a/frontend/src/components/pure/ms-tag/ms-tag-group.vue b/frontend/src/components/pure/ms-tag/ms-tag-group.vue index 5cc5a3a469..337cffbd96 100644 --- a/frontend/src/components/pure/ms-tag/ms-tag-group.vue +++ b/frontend/src/components/pure/ms-tag/ms-tag-group.vue @@ -1,10 +1,10 @@