From 96932a76a0e793b16d4ef41217c11285e1964d37 Mon Sep 17 00:00:00 2001 From: dengbf Date: Fri, 4 Jul 2025 11:53:06 +0800 Subject: [PATCH 01/29] =?UTF-8?q?-=20[=E4=BF=AE=E5=A4=8D]=20=E6=89=B9?= =?UTF-8?q?=E9=87=8F=E4=BD=9C=E4=B8=9A=E6=9D=83=E9=99=90=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pages/deploy/job/add-batch-job-dialog.vue | 41 +++++++++++++++---- src/views/pages/deploy/job/job-manage.vue | 2 +- 2 files changed, 35 insertions(+), 8 deletions(-) diff --git a/src/views/pages/deploy/job/add-batch-job-dialog.vue b/src/views/pages/deploy/job/add-batch-job-dialog.vue index ede76ae3..ddc13c28 100644 --- a/src/views/pages/deploy/job/add-batch-job-dialog.vue +++ b/src/views/pages/deploy/job/add-batch-job-dialog.vue @@ -64,13 +64,10 @@ export default { { value: 'custom', text: this.$t('term.deploy.directcreation') }, { value: 'pipeline', text: this.$t('term.deploy.superpipeline') } ], - value: 'custom', + value: 'pipeline', validateList: ['required'], onChange: val => { - this.createMethod = val; - this.$set(this.formConfig.name, 'isHidden', !(val === 'custom')); - this.$set(this.formConfig.pipelineId, 'isHidden', val === 'custom'); - this.handlePipelineId('appsystem'); + this.changeCreateMethod(val); } }, name: { @@ -135,7 +132,9 @@ export default { created() { }, beforeMount() {}, - mounted() {}, + mounted() { + this.init(); + }, beforeUpdate() {}, updated() {}, activated() {}, @@ -143,6 +142,24 @@ export default { beforeDestroy() {}, destroyed() {}, methods: { + init() { + this.formConfig.createMethod.dataList.forEach(item => { + if (item.value === 'custom') { + if (this.$AuthUtils.hasRole(['BATCHDEPLOY_MODIFY'])) { + this.$set(item, 'disabled', false); + } else { + this.$set(item, 'disabled', true); + } + } + }); + this.changeCreateMethod('pipeline'); + }, + changeCreateMethod(val) { + this.createMethod = val; + this.$set(this.formConfig.name, 'isHidden', !(val === 'custom')); + this.$set(this.formConfig.pipelineId, 'isHidden', val === 'custom'); + this.handlePipelineId('appsystem'); + }, nextStep() { const dialogForm = this.$refs['dialogForm']; if ((dialogForm && !dialogForm.valid())) { @@ -159,7 +176,17 @@ export default { const dialogForm = this.$refs['dialogForm']; const pipelineForm = this.$refs['pipelineForm']; const pipelineFormConfig = this.$refs['pipelineFormConfig']; - if ((dialogForm && !dialogForm.valid()) || (pipelineForm && !pipelineForm.validateForm() && (pipelineFormConfig && !pipelineFormConfig.valid()))) { + let isValid = true; + if (dialogForm && !dialogForm.valid()) { + isValid = false; + } + if (pipelineForm && !pipelineForm.validateForm()) { + isValid = false; + } + if (pipelineFormConfig && !pipelineFormConfig.valid()) { + isValid = false; + } + if (!isValid) { return false; } let data = { diff --git a/src/views/pages/deploy/job/job-manage.vue b/src/views/pages/deploy/job/job-manage.vue index 0a54f526..fcf76a36 100644 --- a/src/views/pages/deploy/job/job-manage.vue +++ b/src/views/pages/deploy/job/job-manage.vue @@ -63,7 +63,7 @@ - {{ $t('term.deploy.batchjob') }} + {{ $t('term.deploy.batchjob') }} {{ $t('term.autoexec.resourcelock') }} -- Gitee From bb5ddc727921329af2806b9072f04e98038ef8eb Mon Sep 17 00:00:00 2001 From: dengbf Date: Fri, 4 Jul 2025 12:01:17 +0800 Subject: [PATCH 02/29] =?UTF-8?q?-=20[=E4=BF=AE=E5=A4=8D]=20=E6=89=B9?= =?UTF-8?q?=E9=87=8F=E4=BD=9C=E4=B8=9A=E6=9D=83=E9=99=90=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/resources/assets/languages/term/en.json | 3 ++- src/resources/assets/languages/term/zh.json | 3 ++- src/views/pages/deploy/job/add-batch-job-dialog.vue | 2 ++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/resources/assets/languages/term/en.json b/src/resources/assets/languages/term/en.json index 1f4d07ac..482d9922 100644 --- a/src/resources/assets/languages/term/en.json +++ b/src/resources/assets/languages/term/en.json @@ -2162,7 +2162,8 @@ "testrunnerdesc": "If not specified, actuators will be automatically assigned based on IP matching of actuator groups according to network segments", "jobcount": "Number of published assignments", "jobrecord": "Publish homework records", - "notapplyallexecuteauth": "You do not have the execution permission for the current application" + "notapplyallexecuteauth": "You do not have the execution permission for the current application", + "batchdeployauthtip": "The current user lacks the 'Batch Publishing Management Permission' permission. Please contact the administrator" }, "inspect": { "alarmprompt": "Alarm Prompt", diff --git a/src/resources/assets/languages/term/zh.json b/src/resources/assets/languages/term/zh.json index 7e901aa7..aef780e3 100644 --- a/src/resources/assets/languages/term/zh.json +++ b/src/resources/assets/languages/term/zh.json @@ -2159,7 +2159,8 @@ "testrunnerdesc": "如果不指定则会通过ip根据网段匹配执行器组自动分配执行器", "jobcount": "发布作业数", "jobrecord": "发布作业记录", - "notapplyallexecuteauth": "您没有当前应用的执行权限" + "notapplyallexecuteauth": "您没有当前应用的执行权限", + "batchdeployauthtip": "当前用户缺少“批量发布管理权限”权限,请联系管理员" }, "inspect": { "alarmprompt": "告警提示", diff --git a/src/views/pages/deploy/job/add-batch-job-dialog.vue b/src/views/pages/deploy/job/add-batch-job-dialog.vue index ddc13c28..0083f727 100644 --- a/src/views/pages/deploy/job/add-batch-job-dialog.vue +++ b/src/views/pages/deploy/job/add-batch-job-dialog.vue @@ -147,8 +147,10 @@ export default { if (item.value === 'custom') { if (this.$AuthUtils.hasRole(['BATCHDEPLOY_MODIFY'])) { this.$set(item, 'disabled', false); + this.$set(item, 'description', ''); } else { this.$set(item, 'disabled', true); + this.$set(item, 'description', this.$t('term.deploy.batchdeployauthtip')); } } }); -- Gitee From 3c80454d4627535f6d5f0742edb645cb5a9d5059 Mon Sep 17 00:00:00 2001 From: dengbf Date: Fri, 4 Jul 2025 17:20:08 +0800 Subject: [PATCH 03/29] commit --- src/views/pages/deploy/job/add-batch-job-dialog.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/pages/deploy/job/add-batch-job-dialog.vue b/src/views/pages/deploy/job/add-batch-job-dialog.vue index 0083f727..2840677b 100644 --- a/src/views/pages/deploy/job/add-batch-job-dialog.vue +++ b/src/views/pages/deploy/job/add-batch-job-dialog.vue @@ -145,7 +145,7 @@ export default { init() { this.formConfig.createMethod.dataList.forEach(item => { if (item.value === 'custom') { - if (this.$AuthUtils.hasRole(['BATCHDEPLOY_MODIFY'])) { + if (this.$AuthUtils.hasRole('BATCHDEPLOY_MODIFY')) { this.$set(item, 'disabled', false); this.$set(item, 'description', ''); } else { -- Gitee From 98dc66e800b296d28aa82e7d39a2b2e31d8a28dd Mon Sep 17 00:00:00 2001 From: dengbf Date: Wed, 6 Aug 2025 17:26:25 +0800 Subject: [PATCH 04/29] =?UTF-8?q?-=20[=E5=85=B3=E8=81=94]=20#[148194798387?= =?UTF-8?q?2000]=E5=AE=9A=E6=97=B6=E4=BD=9C=E4=B8=9A-=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E7=9A=84config=E7=BC=BA=E5=B0=91=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E6=97=B6=EF=BC=8C=E5=AE=9A=E6=97=B6=E4=BD=9C=E4=B8=9A?= =?UTF-8?q?=E5=B7=A5=E5=85=B7=E5=8F=82=E6=95=B0=E9=85=8D=E7=BD=AE=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E5=8F=96=E7=BB=84=E5=90=88=E5=B7=A5=E5=85=B7=E7=9A=84?= =?UTF-8?q?=E5=80=BC=20http://192.168.0.96:8090/demo/rdm.html#/bug-detail/?= =?UTF-8?q?939050947543040/939050947543057/1481947983872000?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pages/autoexec/detail/runner-detail.vue | 55 +++++++++++++------ 1 file changed, 39 insertions(+), 16 deletions(-) diff --git a/src/views/pages/autoexec/detail/runner-detail.vue b/src/views/pages/autoexec/detail/runner-detail.vue index e01e2e21..01b02d75 100644 --- a/src/views/pages/autoexec/detail/runner-detail.vue +++ b/src/views/pages/autoexec/detail/runner-detail.vue @@ -734,26 +734,49 @@ export default { }, setJobParams(obj) { let config = this.$utils.deepClone(obj); - let {name = '', param = {}, roundCount = 64, parallelCount = 32, parallelPolicy = 'parallel', scenarioId = null, executeConfig = {}, runnerGroupTag = null, runnerGroup = null} = config || {}; + let {name = '', param = {}} = config || {}; this.nameForm.itemList.name.value = name; this.paramValue = param; - this.scenarioId = scenarioId; - this.roundCount = roundCount; - this.parallelCount = parallelCount; - this.parallelPolicy = parallelPolicy; - this.executeConfig = executeConfig; - this.runnerGroupTag = runnerGroupTag || { - mappingMode: 'constant', - value: null - }; - this.runnerGroup = runnerGroup || { mappingMode: 'constant', - value: '-1'}; - if (this.$utils.isEmpty(runnerGroupTag) && !this.$utils.isEmpty(executeConfig.runnerGroupTag)) { - this.runnerGroupTag = executeConfig.runnerGroupTag; + //需要赋值的key + const keyList = ['roundCount', 'parallelCount', 'parallelPolicy', 'scenarioId', 'executeConfig', 'runnerGroupTag', 'runnerGroup']; + Object.keys(config).forEach((key) => { + if (keyList.indexOf(key) > -1 && this.hasOwnProperty(key)) { + this[key] = config[key]; + } + }); + if (this.$utils.isEmpty(this.roundCount)) { + this.roundCount = 64; + } + if (this.$utils.isEmpty(this.parallelCount)) { + this.parallelCount = 32; + } + if (this.$utils.isEmpty(this.parallelPolicy)) { + this.parallelPolicy = 'parallel'; } - if (this.$utils.isEmpty(runnerGroup) && !this.$utils.isEmpty(executeConfig.runnerGroup)) { - this.runnerGroup = executeConfig.runnerGroup; + if (this.$utils.isEmpty(this.executeConfig)) { + this.executeConfig = {}; + } + if (this.$utils.isEmpty(this.runnerGroupTag)) { + if (!this.$utils.isEmpty(this.executeConfig.runnerGroupTag)) { + this.runnerGroupTag = this.executeConfig.runnerGroupTag; + } else { + this.runnerGroupTag = { + mappingMode: 'constant', + value: null + }; + } + } + if (this.$utils.isEmpty(this.runnerGroup)) { + if (!this.$utils.isEmpty(this.executeConfig.runnerGroup)) { + this.runnerGroup = this.executeConfig.runnerGroup; + } else { + this.runnerGroup = { + mappingMode: 'constant', + value: '-1' + }; + } } + for (let key in this.executeForm.itemList) { // 链接协议和执行用户 let item = this.executeForm.itemList[key]; -- Gitee From 021024194d88ef57568e12c14e4edd7f16429b15 Mon Sep 17 00:00:00 2001 From: lvzk Date: Thu, 7 Aug 2025 02:23:38 +0000 Subject: [PATCH 05/29] update README.md. Signed-off-by: lvzk --- README.md | 40 +++++++++++++++++++++++----------------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 2b1416b1..6547eb00 100755 --- a/README.md +++ b/README.md @@ -11,46 +11,52 @@ vue/cli 5.x,webpack 5.x npm install -g @vue/cli ``` -# 初始化依赖 +#设置淘宝镜像源 ``` -npm install --registry=https://registry.npm.taobao.org +npm config set registry https://registry.npmmirror.com/ ``` -> 如果启动时发现大量不明报错,可能原因是npm install阶段加载的依赖包不完整导致,可以对npm进行降级再次install,目前测试v18的npm可以正常install。或者通过cnpm install加载依赖包也可以。cnpm版本也不能太高,建议使用v8.2.0。建议使用nvm管理多版本的node,使用v18.x版本的node会比较稳定。 +# 初始化依赖 ``` -sudo npm install -g cnpm@8.2.0 --registry=https://registry.npm.taobao.org - -cnpm install +npm install ``` +> 如果启动时发现大量不明报错,可能原因是npm install阶段加载的依赖包不完整导致,可以对npm进行降级再次install,目前测试v18的npm可以正常install。建议使用nvm管理多版本的node,使用v18.x版本的node会比较稳定。 + + # 构建打包项目代码 ``` -cnpm run build +npm run build ``` # 本地开发环境运行项目 >需修改apiconfig.json配置文件,将tenantName的值修改为在用的租户(如果使用的是官方提供的用例数据,则租户就是demo),urlPrefix改成neatlogic后端tomcat服务的http://ip:port -## 通过cnpm启动项目 +## 通过npm启动项目 ``` -cnpm run serve +npm run serve ``` ## 自动纠正文件里不符合eslint的语法 ``` -cnpm run lint +npm run lint ``` ## 设置自动eslintrc https://www.cnblogs.com/weilai-info/p/10988829.html +# ⭐️ ⭐️ ⭐️ 温馨提示 +```js + 📌" 本项目支持pnpm。研发环境建议使用pnpm效率更高,生产出包使用npm。pnpm需自行科普使用" +``` + -## 设置vscode的个人配置 +# 设置vscode的个人配置 为了统一代码风格,多人开发时不会出现格式错乱,进行二开时请使用相同的代码风格配置。 -#### 安装插件 +## 安装插件 EsLint、vetur、Prettier - Code formatter、i18nhelper(自动进行i18n键值替换和多语言翻译) -#### 设置>命令面板>输入“setting”>选择“首选项:打开设置”>打开 settings.json +### 设置>命令面板>输入“setting”>选择“首选项:打开设置”>打开 settings.json ``` { "gitlens.views.repositories.files.layout": "list", @@ -132,15 +138,15 @@ EsLint、vetur、Prettier - Code formatter、i18nhelper(自动进行i18n键值 ``` -## FAQ常见问题 -### npm ERR! request to https://registry.npm.taobao.org/cnpm failed, reason: certificate has expired +# FAQ常见问题 +## npm ERR! request to https://registry.npm.taobao.org/cnpm failed, reason: certificate has expired ``` npm config set strict-ssl false ``` # 其他 ## 更新某个依赖 ``` -cnpm update 依赖包名字 +npm update 依赖包名字 -eg:cnpm update neatlogic-ui +eg:npm update neatlogic-ui ``` \ No newline at end of file -- Gitee From 39ab5a1907ba43d54a8a2f58e287285993664768 Mon Sep 17 00:00:00 2001 From: lvzk Date: Thu, 7 Aug 2025 02:24:24 +0000 Subject: [PATCH 06/29] update README.md. Signed-off-by: lvzk --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6547eb00..26f494e2 100755 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ vue/cli 5.x,webpack 5.x npm install -g @vue/cli ``` -#设置淘宝镜像源 +# 设置淘宝镜像源 ``` npm config set registry https://registry.npmmirror.com/ ``` -- Gitee From 49f9e1ca87bf9e36169c0600c6aa23be7fe306c5 Mon Sep 17 00:00:00 2001 From: lvzk Date: Thu, 7 Aug 2025 02:26:05 +0000 Subject: [PATCH 07/29] update README.md. Signed-off-by: lvzk --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 26f494e2..61954d64 100755 --- a/README.md +++ b/README.md @@ -45,9 +45,9 @@ npm run lint ## 设置自动eslintrc https://www.cnblogs.com/weilai-info/p/10988829.html -# ⭐️ ⭐️ ⭐️ 温馨提示 +# 支持pnpm ```js - 📌" 本项目支持pnpm。研发环境建议使用pnpm效率更高,生产出包使用npm。pnpm需自行科普使用" + 📌" 研发环境建议使用pnpm效率更高,生产出包使用npm。pnpm需自行科普使用" ``` -- Gitee From 60b49d478835c93bd3630e01a2a0a0d095c1d9bb Mon Sep 17 00:00:00 2001 From: yaojn Date: Thu, 7 Aug 2025 15:51:51 +0800 Subject: [PATCH 08/29] =?UTF-8?q?-=20[=E5=8A=9F=E8=83=BD]=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E8=87=AA=E5=AE=9A=E4=B9=89=E5=B7=A5=E5=85=B7=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E4=BA=A4=E4=BA=92=E4=BC=98=E5=8C=96=20=20=20=20-=20[?= =?UTF-8?q?=E5=85=B3=E8=81=94]#[1482019001827328]=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E5=B7=A5=E5=85=B7=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E4=BA=A4=E4=BA=92=E4=BC=98=E5=8C=96=20http://192.168.0.96:8090?= =?UTF-8?q?/demo/rdm.html#/story-detail/939050947543040/939050947543042/14?= =?UTF-8?q?82019001827328?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/pages/autoexec/detail/script-detail.vue | 1 + .../autoexec/detail/scriptDetail/common/data-dialog.vue | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/views/pages/autoexec/detail/script-detail.vue b/src/views/pages/autoexec/detail/script-detail.vue index e633d28a..8585492a 100644 --- a/src/views/pages/autoexec/detail/script-detail.vue +++ b/src/views/pages/autoexec/detail/script-detail.vue @@ -99,6 +99,7 @@ :type="typeDialog" :tipText="tipText" :versionId="versionId" + :scriptId="scriptId" @saveData="saveUpdate" > { if (res.Status == 'OK') { this.$Message.success(this.$t('message.deletesuccess')); + this.$skipHistory(); this.$router.push({ - path: '/script-manage', + path: '/script-detail', query: { - status: this.versionStatus + scriptId: this.scriptId, + status: 'passed' } }); } -- Gitee From 4fdeb3594f510eb62cada881ac864b2bcfcf555d Mon Sep 17 00:00:00 2001 From: dengbf Date: Fri, 8 Aug 2025 10:16:25 +0800 Subject: [PATCH 09/29] =?UTF-8?q?-=20[=E5=85=B3=E8=81=94]=20#[148270979530?= =?UTF-8?q?7520]=E5=AE=9A=E6=97=B6=E4=BD=9C=E4=B8=9A-=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=BC=95=E7=94=A8=E7=9A=84=E7=BB=84=E5=90=88=E5=B7=A5=E5=85=B7?= =?UTF-8?q?=EF=BC=8C=E5=8F=82=E6=95=B0=E9=85=8D=E7=BD=AE=E6=B2=A1=E6=9C=89?= =?UTF-8?q?=E5=85=A8=E9=83=A8=E6=9B=B4=E6=96=B0=20http://192.168.0.96:8090?= =?UTF-8?q?/demo/rdm.html#/bug-detail/939050947543040/939050947543057/1482?= =?UTF-8?q?709795307520?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/pages/autoexec/detail/time-job-detail.vue | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/views/pages/autoexec/detail/time-job-detail.vue b/src/views/pages/autoexec/detail/time-job-detail.vue index fd4d10f8..8e6a2aa2 100644 --- a/src/views/pages/autoexec/detail/time-job-detail.vue +++ b/src/views/pages/autoexec/detail/time-job-detail.vue @@ -116,7 +116,8 @@ export default { dynamicUrl: '/api/rest/autoexec/combop/executable/list', valueName: 'id', //option渲染值 textName: 'name', //text渲染值 - rootName: 'tbodyList' + rootName: 'tbodyList', + onChange: this.changeAutoexecCombopId }, isActive: { type: 'radio', @@ -281,6 +282,9 @@ export default { }).finally(() => { this.isLoading = false; }); + }, + changeAutoexecCombopId(val) { + this.config = null; } }, filter: {}, -- Gitee From 7473879484766f4b73c0a59ee7188d861ee12d22 Mon Sep 17 00:00:00 2001 From: yaojn Date: Fri, 8 Aug 2025 14:59:43 +0800 Subject: [PATCH 10/29] =?UTF-8?q?-=20[=E4=BF=AE=E5=A4=8D]=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E7=AE=A1=E7=90=86-=E6=9F=A5=E7=9C=8B=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E8=B0=83=E7=94=A8=E8=AE=B0=E5=BD=95=E7=9A=84=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E6=97=B6=EF=BC=8C=E5=BC=82=E5=B8=B8=E6=96=87=E6=9C=AC?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E6=8D=A2=E8=A1=8C=20=20=20=20-=20[=E5=85=B3?= =?UTF-8?q?=E8=81=94]#[1483262235475968]=E6=8E=A5=E5=8F=A3=E7=AE=A1?= =?UTF-8?q?=E7=90=86-=E6=9F=A5=E7=9C=8B=E6=8E=A5=E5=8F=A3=E8=B0=83?= =?UTF-8?q?=E7=94=A8=E8=AE=B0=E5=BD=95=E7=9A=84=E5=BC=82=E5=B8=B8=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E5=BC=82=E5=B8=B8=E6=96=87=E6=9C=AC=E6=B2=A1=E6=9C=89?= =?UTF-8?q?=E6=8D=A2=E8=A1=8C=20http://192.168.0.96:8090/demo/rdm.html#/bu?= =?UTF-8?q?g-detail/939050947543040/939050947543057/1483262235475968?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/pages/framework/api/api-manage-call-record.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/views/pages/framework/api/api-manage-call-record.vue b/src/views/pages/framework/api/api-manage-call-record.vue index 40e295b4..da41f2ec 100644 --- a/src/views/pages/framework/api/api-manage-call-record.vue +++ b/src/views/pages/framework/api/api-manage-call-record.vue @@ -64,9 +64,9 @@ - +