From 09f5f22f9db666f4574bc66db448b5b1733f014d Mon Sep 17 00:00:00 2001 From: Linhao-Qian <17768709606@163.com> Date: Mon, 9 Sep 2024 02:47:47 -0700 Subject: [PATCH] [linkis-web-next]: Modules refactoring & Bug fixing (#5151) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [linkis-web-next]: globalHistoryManagement部分逻辑与样式完善 * GlobalHistoryManagement and SideBar modules refactoring & previous bug fixing * [Linkis-web-next]: parameterConfig Module Refactor * [Linkis-web-next]: Add code comments to ParameterConfig Module * [linkis-web-next]: Refactored Navbar & Login Page * [linkis-web-next]: 1. TaskResults & TaskDetails Refactoring; 2. Code Improvement & Bug Fixing; * [linkis-web-next]: Refactored GlobalVariables Module * [linkis-web-next]: Add license to newly created file * [linkis-web-next]: Microservice Management Module Refactoring * [linkis-web-next]: Resource Management Module Refactoring * [linkis-web-next]: ECM Management Module Refactoring --- linkis-web-next/public/log/noLog.svg | 1 - .../{dateReport.svg => globalVariable.svg} | 0 .../src/components/sidebar/index.vue | 10 +- linkis-web-next/src/locales/en.ts | 22 +- linkis-web-next/src/locales/zh.ts | 22 +- .../src/pages/ECMManagement/index.vue | 288 ++++++++++++++++++ .../src/pages/ECMManagement/modal.vue | 173 +++++++++++ .../globalHistoryManagement/drawer/index.vue | 33 +- .../drawer/taskDetails.vue | 253 +++++++++++++++ .../drawer/taskLogs.vue | 154 +++++----- .../drawer/taskResults.vue | 184 +++++++++++ .../pages/globalHistoryManagement/filter.vue | 46 +-- .../pages/globalHistoryManagement/index.vue | 1 - .../src/pages/globalVariables/index.vue | 149 +++++++++ .../pages/microServiceManagement/index.vue | 208 +++++++++++++ .../pages/microServiceManagement/modal.vue | 149 +++++++++ .../src/pages/parameterConfig/card.vue | 11 +- .../src/pages/parameterConfig/drawer.vue | 84 ++--- .../src/pages/parameterConfig/index.vue | 16 +- .../src/pages/parameterConfig/modal.vue | 120 ++++---- .../pages/resource/history/drawer/index.vue | 153 ++++++++++ .../src/pages/resource/history/drawer/log.vue | 253 +++++++++++++++ .../src/pages/resource/history/index.less | 17 -- .../src/pages/resource/history/index.vue | 237 +++++++++++++- linkis-web-next/src/pages/resource/index.less | 17 -- linkis-web-next/src/pages/resource/index.vue | 22 +- .../src/pages/resource/manage/index.less | 17 -- .../src/pages/resource/manage/index.vue | 237 +++++++++++++- linkis-web-next/src/router/index.ts | 41 ++- 29 files changed, 2619 insertions(+), 299 deletions(-) rename linkis-web-next/public/sidebar/{dateReport.svg => globalVariable.svg} (100%) create mode 100644 linkis-web-next/src/pages/ECMManagement/index.vue create mode 100644 linkis-web-next/src/pages/ECMManagement/modal.vue create mode 100644 linkis-web-next/src/pages/globalHistoryManagement/drawer/taskDetails.vue create mode 100644 linkis-web-next/src/pages/globalHistoryManagement/drawer/taskResults.vue create mode 100644 linkis-web-next/src/pages/globalVariables/index.vue create mode 100644 linkis-web-next/src/pages/microServiceManagement/index.vue create mode 100644 linkis-web-next/src/pages/microServiceManagement/modal.vue create mode 100644 linkis-web-next/src/pages/resource/history/drawer/index.vue create mode 100644 linkis-web-next/src/pages/resource/history/drawer/log.vue delete mode 100644 linkis-web-next/src/pages/resource/history/index.less delete mode 100644 linkis-web-next/src/pages/resource/index.less delete mode 100644 linkis-web-next/src/pages/resource/manage/index.less diff --git a/linkis-web-next/public/log/noLog.svg b/linkis-web-next/public/log/noLog.svg index bfa8899949..2c58b8f333 100644 --- a/linkis-web-next/public/log/noLog.svg +++ b/linkis-web-next/public/log/noLog.svg @@ -16,7 +16,6 @@ * limitations under the License. --> - 资源 10@2x diff --git a/linkis-web-next/public/sidebar/dateReport.svg b/linkis-web-next/public/sidebar/globalVariable.svg similarity index 100% rename from linkis-web-next/public/sidebar/dateReport.svg rename to linkis-web-next/public/sidebar/globalVariable.svg diff --git a/linkis-web-next/src/components/sidebar/index.vue b/linkis-web-next/src/components/sidebar/index.vue index ffccf5080f..763f78625a 100644 --- a/linkis-web-next/src/components/sidebar/index.vue +++ b/linkis-web-next/src/components/sidebar/index.vue @@ -97,19 +97,19 @@ const menuItemsConfig = [ path: '/console/parameterConfig', }, { - title: 'message.linkis.sideNavList.function.children.dateReport', - icon: '/sidebar/dateReport.svg', - path: '/x', + title: 'message.linkis.sideNavList.function.children.globalVariable', + icon: '/sidebar/globalVariable.svg', + path: '/console/globalVariables', }, { title: 'message.linkis.sideNavList.function.children.ECMManage', icon: '/sidebar/ECMManage.svg', - path: '/xx', + path: '/console/ECMManagement', }, { title: 'message.linkis.sideNavList.function.children.microserviceManage', icon: '/sidebar/microserviceManage.svg', - path: '/xxx', + path: '/console/microServiceManagement', }, { title: 'message.linkis.sideNavList.function.children.dataSourceManage', diff --git a/linkis-web-next/src/locales/en.ts b/linkis-web-next/src/locales/en.ts index 1d10100c49..94b6df48e7 100644 --- a/linkis-web-next/src/locales/en.ts +++ b/linkis-web-next/src/locales/en.ts @@ -52,11 +52,11 @@ export default { exceptionTips: 'Background interface exception, please contact development processing!', separator: { - comma: 'Comma(,)', - tab: 'Tab(\\t)', - semicolon: 'Semicolon(;)', - space: 'Space()', - vertical: 'Vertical bar(|)', + comma: 'Comma', + tab: 'Tab', + semicolon: 'Semicolon', + space: 'Space', + vertical: 'Vertical bar', }, tabs: { progress: 'Progress', @@ -358,6 +358,7 @@ export default { resultGroupLineFilter: 'Result Group Line Filter', resultGroup: 'Result Group', all: 'all', + allDownLoad: 'All Result Sets', autoFormat: 'Auto Format', downloadMode: 'Download Mode :', deepAnalysis: 'Deep Analysis', @@ -440,6 +441,9 @@ export default { ConfirmEdit: 'Done', serviceRegistryCenter: 'Service Registry Center', addTags: 'Add Tags', + labelEmptyError: 'Label cannot be empty', + labelNoSpecialSymbol: 'Spance and Chinese characters are not allowed', + labelLengthLimit: 'Label length should not exceed 16', unfold: 'Unfold', fold: 'Fold', jumpPage: 'Please check in the jump page...', @@ -512,6 +516,8 @@ export default { tenant: 'Tenant', inputTenant: 'Please Input Tenant', globalSettings: 'GlobalSettings', + downloadLogs: 'Download Logs', + downloadLogsConfirm: 'Are you sure to download logs?', resultSet: { prefixText: 'Because your result set is large, for a better experience, ', @@ -544,6 +550,7 @@ export default { executionCode: 'Execution Code', status: 'Status', label: 'Label', + editLabel: 'Edit Label', engineVersion: 'Engine Version', engineVersionCannotBeNull: 'Engine Version Cannot Be Null', addApplicationRules: @@ -592,8 +599,7 @@ export default { resource: 'Resource Management', resourceEngineConnList: 'History Engine', setting: 'Settings', - dateReport: 'Global Variables', - globalValiable: 'Frequently Asked', + globalVariable: 'Global Variables', microserviceManage: 'Microservice Management', ECMManage: 'ECM Management', udfFunctionTitle: 'UDF Function', @@ -738,7 +744,7 @@ export default { advancedSetting: 'Advanced Settings', dataDev: 'Data Development', }, - globalValiable: 'Global Variables', + globalVariable: 'Global Variables', rules: { first: { required: 'The key of variable {text} is empty', diff --git a/linkis-web-next/src/locales/zh.ts b/linkis-web-next/src/locales/zh.ts index 81f568e6bd..8b741b6967 100644 --- a/linkis-web-next/src/locales/zh.ts +++ b/linkis-web-next/src/locales/zh.ts @@ -51,11 +51,11 @@ export default { feedback: '反馈', exceptionTips: '后台接口异常,请联系开发处理!', separator: { - comma: '逗号(,)', - tab: 'tab键(\\t)', - semicolon: '分号(;)', - space: '空格()', - vertical: '竖线(|)', + comma: '逗号', + tab: 'tab键', + semicolon: '分号', + space: '空格', + vertical: '竖线', }, tabs: { progress: '进度', @@ -339,6 +339,7 @@ export default { resultGroupLineFilter: '对结果集的列进行筛选', resultGroup: '结果集', all: '是否全量', + allDownLoad: '所有结果集', autoFormat: '自动格式化', downloadMode: '下载方式:', deepAnalysis: '分 析 进 阶', @@ -418,6 +419,9 @@ export default { description: '描述', noDescription: '暂无描述', addTags: '添加标签', + labelEmptyError: '标签不能为空', + labelNoSpecialSymbol: '不得存在空格和中文', + labelLengthLimit: '标签内容长度不超过16', find: '查询', initiator: '创建者', inputOwnerHint: '请输入创建者', @@ -489,6 +493,8 @@ export default { tenant: '租户标签', inputTenant: '请输入租户标签', globalSettings: '全局配置', + downloadLogs: '下载日志', + downloadLogsConfirm: '确认要下载日志吗?', resultSet: { prefixText: '因为您的结果集较大,为了更好的体验,', linkText: '点击查看结果集', @@ -519,6 +525,7 @@ export default { status: '状态', costTime: '已耗时', label: '标签', + editLabel: '编辑标签', engineVersion: '引擎版本', engineVersionCannotBeNull: '引擎版本不能为空', addApplicationRules: '应用名称不能有特殊符号和空格', @@ -564,8 +571,7 @@ export default { resource: '资源管理', resourceEngineConnList: '历史引擎', setting: '参数配置', - dateReport: '全局变量', - globalValiable: '常见问题', + globalVariable: '全局变量', ECMManage: 'ECM管理', microserviceManage: '微服务管理', udfFunctionTitle: 'UDF函数', @@ -708,7 +714,7 @@ export default { advancedSetting: '高级设置', dataDev: '数据开发', }, - globalValiable: '全局变量', + globalVariable: '全局变量', rules: { first: { required: '变量 {text} 的key为空', diff --git a/linkis-web-next/src/pages/ECMManagement/index.vue b/linkis-web-next/src/pages/ECMManagement/index.vue new file mode 100644 index 0000000000..71b045395e --- /dev/null +++ b/linkis-web-next/src/pages/ECMManagement/index.vue @@ -0,0 +1,288 @@ + + +
+ + {{ t('message.linkis.find') }} + +
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/linkis-web-next/src/pages/ECMManagement/modal.vue b/linkis-web-next/src/pages/ECMManagement/modal.vue new file mode 100644 index 0000000000..4b50443928 --- /dev/null +++ b/linkis-web-next/src/pages/ECMManagement/modal.vue @@ -0,0 +1,173 @@ + + + + + + + \ No newline at end of file diff --git a/linkis-web-next/src/pages/globalHistoryManagement/drawer/index.vue b/linkis-web-next/src/pages/globalHistoryManagement/drawer/index.vue index ef49880ce0..bb62578772 100644 --- a/linkis-web-next/src/pages/globalHistoryManagement/drawer/index.vue +++ b/linkis-web-next/src/pages/globalHistoryManagement/drawer/index.vue @@ -44,18 +44,15 @@ @@ -64,6 +61,8 @@ import { ref } from 'vue'; import { useI18n } from 'vue-i18n'; import TaskLogs from './taskLogs.vue'; +import TaskDetails from './taskDetails.vue'; +import TaskResults from './taskResults.vue'; import api from '@/service/api'; const { t } = useI18n(); @@ -84,15 +83,33 @@ const activeDrawerTabPane = ref(TAB_PANE_VALUE.TASK_LOG); const show = ref(false); const tableRawData = ref>(); const drawerHeight = ref(520); -const drawerRef = ref(); -const task = ref(); +const drawerRef = ref(); +const task = ref(); +const params = ref(); const isFullScreen = ref(false); +const formatDate = (date: Date) => { + const year = date.getFullYear(); + const month = (date.getMonth() + 1).toString().padStart(2, '0'); + const day = date.getDate().toString().padStart(2, '0'); + const hours = date.getHours().toString().padStart(2, '0'); + const minutes = date.getMinutes().toString().padStart(2, '0'); + const seconds = date.getSeconds().toString().padStart(2, '0'); + return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; +} + const open = async (rawData: Record) => { tableRawData.value = rawData; try { const jobhistory = await api.fetch(`/jobhistory/${tableRawData.value.taskID}/get`, 'get') task.value = jobhistory.task; + let url = '/linkisManager/ecinfo/ecrHistoryList?'; + const endDate = new Date(); + const startDate = new Date(); + startDate.setMonth(startDate.getMonth() - 3); + url += `instance=${task.value.engineInstance}&startDate=${formatDate(startDate)}&endDate=${formatDate(endDate)}`; + const rst = await api.fetch(url,'get'); + params.value = rst.engineList[0]; } catch (errorMsg) { window.console.error(errorMsg) } diff --git a/linkis-web-next/src/pages/globalHistoryManagement/drawer/taskDetails.vue b/linkis-web-next/src/pages/globalHistoryManagement/drawer/taskDetails.vue new file mode 100644 index 0000000000..88e5ce408d --- /dev/null +++ b/linkis-web-next/src/pages/globalHistoryManagement/drawer/taskDetails.vue @@ -0,0 +1,253 @@ + + + + + + + \ No newline at end of file diff --git a/linkis-web-next/src/pages/globalHistoryManagement/drawer/taskLogs.vue b/linkis-web-next/src/pages/globalHistoryManagement/drawer/taskLogs.vue index d6de0d2f1b..f1b9956620 100644 --- a/linkis-web-next/src/pages/globalHistoryManagement/drawer/taskLogs.vue +++ b/linkis-web-next/src/pages/globalHistoryManagement/drawer/taskLogs.vue @@ -19,7 +19,7 @@
@@ -33,25 +33,24 @@ " :value="tab.value" :style="`color:${tab.color}`" - > - -
- -
{{ $t('message.linkis.noLog') }}
-
- + /> + +
+ +
{{ t('message.linkis.noLog') }}
+
@@ -224,19 +231,13 @@ watch( .task-log-tabs { background-color: #f7f7f8; padding-left: 10px; - .no-log { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - gap: 30px; - color: #b7b7bc; - font-size: 14px; - } } :deep(.fes-tabs-tab-active) { background-color: #fff; } + :deep(.fes-tabs-tab-pane-wrapper) { + display: none; + } .search-input { margin-top: 4px; width: 140px; @@ -247,5 +248,14 @@ watch( :deep(.fes-input-inner) { height: 24px; } + .no-log { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + gap: 30px; + color: #b7b7bc; + font-size: 14px; + } } \ No newline at end of file diff --git a/linkis-web-next/src/pages/globalHistoryManagement/drawer/taskResults.vue b/linkis-web-next/src/pages/globalHistoryManagement/drawer/taskResults.vue new file mode 100644 index 0000000000..a1392cde53 --- /dev/null +++ b/linkis-web-next/src/pages/globalHistoryManagement/drawer/taskResults.vue @@ -0,0 +1,184 @@ + + + + + + + \ No newline at end of file diff --git a/linkis-web-next/src/pages/globalHistoryManagement/filter.vue b/linkis-web-next/src/pages/globalHistoryManagement/filter.vue index 35dfb56af7..a7dcd5dfe0 100644 --- a/linkis-web-next/src/pages/globalHistoryManagement/filter.vue +++ b/linkis-web-next/src/pages/globalHistoryManagement/filter.vue @@ -16,12 +16,12 @@ --> @@ -133,7 +133,7 @@ + + \ No newline at end of file diff --git a/linkis-web-next/src/pages/microServiceManagement/index.vue b/linkis-web-next/src/pages/microServiceManagement/index.vue new file mode 100644 index 0000000000..15ad4455c2 --- /dev/null +++ b/linkis-web-next/src/pages/microServiceManagement/index.vue @@ -0,0 +1,208 @@ + + + + + + + \ No newline at end of file diff --git a/linkis-web-next/src/pages/microServiceManagement/modal.vue b/linkis-web-next/src/pages/microServiceManagement/modal.vue new file mode 100644 index 0000000000..7b308e7b78 --- /dev/null +++ b/linkis-web-next/src/pages/microServiceManagement/modal.vue @@ -0,0 +1,149 @@ + + + + + + + \ No newline at end of file diff --git a/linkis-web-next/src/pages/parameterConfig/card.vue b/linkis-web-next/src/pages/parameterConfig/card.vue index 369d5a2769..c969b5f9b3 100644 --- a/linkis-web-next/src/pages/parameterConfig/card.vue +++ b/linkis-web-next/src/pages/parameterConfig/card.vue @@ -130,16 +130,23 @@ import { ref } from 'vue'; import { useI18n } from 'vue-i18n'; const { t } = useI18n(); +type DataList = Array<{ + name: string; + description: string; + value: string | number; + settings: any; +}>; + const props = defineProps<{ name: string; description: string; - dataList: any; + dataList: DataList; creator: string; engineType: string; }>(); const isEditing = ref(false); const listData = ref([...props.dataList]); -const listDataBeforeEditing = ref([]); +const listDataBeforeEditing = ref([]); const isDisabled = ref(false); const options = { diff --git a/linkis-web-next/src/pages/parameterConfig/drawer.vue b/linkis-web-next/src/pages/parameterConfig/drawer.vue index ee0f391a85..25e6a4d78a 100644 --- a/linkis-web-next/src/pages/parameterConfig/drawer.vue +++ b/linkis-web-next/src/pages/parameterConfig/drawer.vue @@ -227,6 +227,8 @@ const handleDeleteCreator = (row: any) => { FModal.confirm({ title: t('message.common.userMenu.title'), content: t('message.linkis.confirmToDeleteCreator'), + okText: t('message.linkis.submit'), + cancelText: t('message.linkis.cancel'), closable: true, onOk: async () => { await api.fetch("/configuration/deleteCategory", { categoryId: row.categoryId }, "post") @@ -272,7 +274,7 @@ const tableColumns = [ formatter: ({ row }: { row: { updateTime: number } }) => dayjs(row.updateTime).format('YYYY-MM-DD HH:mm:ss'), }, { - // 在“操作”两个字前添加空格,使其能与“查看”上下对齐 + // 在“操作”两个字前添加空格,使其能与“编辑”上下对齐 label: `\u00A0\u00A0\u00A0\u00A0${t('message.linkis.columns.control.title')}`, width: 140, action: [ @@ -350,6 +352,8 @@ const confirmEditing = () => { title: t('message.common.userMenu.title'), content: t('message.linkis.confirmToModifyCreator'), closable: true, + okText: t('message.linkis.submit'), + cancelText: t('message.linkis.cancel'), onOk: async () => { if (isAddingApplicationAndEngine.value) { // 添加新应用时,先创建应用 @@ -373,20 +377,19 @@ const confirmEditing = () => { await refresh(); return; } - // 获取categoryId后,依次创建引擎列表中的各个引擎 - for (const cate of tmpData.value.childCategory) { - try { - await api.fetch("/configuration/createSecondCategory", { - categoryId, - engineType: cate.engineType, - version: cate.version, - description: cate.description, - }, "post") + // 获取categoryId后,创建引擎列表中的各个引擎 + await Promise.all(tmpData.value.childCategory.map((cate: any) => { + return api.fetch("/configuration/createSecondCategory", { + categoryId, + engineType: cate.engineType, + version: cate.version, + description: cate.description, + }, "post").then(() => { FMessage.success(cate.engineType + cate.version + t('message.linkis.successfullyAddEngine')); - } catch (error) { + }).catch(() => { FMessage.error(cate.engineType + cate.version + t('message.linkis.failedToAddEngine')); - } - } + }); + })) } if (isEditingApplicationAndEngine.value) { // 编辑应用时,先判断是否需要更改应用描述 @@ -423,49 +426,46 @@ const confirmEditing = () => { } } }) - // 经过上述操作,原始列表tmpDataBeforeEditing.value.childCategory中只会保留需要被删除的引擎,将这些引擎遍历删除 - for (const cateToDelete of tmpDataBeforeEditing.value.childCategory) { - try { - await api.fetch("/configuration/deleteCategory", { categoryId: cateToDelete.categoryId }, "post") + // 经过上述操作,原始列表tmpDataBeforeEditing.value.childCategory中只会保留需要被删除的引擎,将这些引擎删除 + await Promise.all(tmpDataBeforeEditing.value.childCategory.map((cateToDelete: any) => { + return api.fetch("/configuration/deleteCategory", { categoryId: cateToDelete.categoryId }, "post").then(() => { FMessage.success( cateToDelete.engineType + cateToDelete.version + t('message.linkis.basedataManagement.engineConfigurationTemplate.delSuccess') ); - } catch (error) { + }).catch(() => { FMessage.error( cateToDelete.engineType + cateToDelete.version + t('message.linkis.basedataManagement.engineConfigurationTemplate.delFail') ); - } - } + }); + })) // 遍历添加addList中的引擎 - for (const cateToAdd of addList) { - try { - await api.fetch("/configuration/createSecondCategory", { - categoryId: tmpData.value.categoryId, - engineType: cateToAdd.engineType, - version: cateToAdd.version, - description: cateToAdd.description, - }, "post") + await Promise.all(addList.map((cateToAdd: any) => { + return api.fetch("/configuration/createSecondCategory", { + categoryId: tmpData.value.categoryId, + engineType: cateToAdd.engineType, + version: cateToAdd.version, + description: cateToAdd.description, + }, "post").then(() => { FMessage.success(cateToAdd.engineType + cateToAdd.version + t('message.linkis.successfullyAddEngine')); - } catch (error) { + }).catch(() => { FMessage.error(cateToAdd.engineType + cateToAdd.version + t('message.linkis.failedToAddEngine')); - } - } + }); + })) // 遍历修改modifyList中的引擎 - for (const cateToModify of modifyList) { - try { - await api.fetch("configuration/updateCategoryInfo", { - categoryId: cateToModify.categoryId, - description: cateToModify.description - }, "post") + await Promise.all(modifyList.map((cateToModify: any) => { + return api.fetch("configuration/updateCategoryInfo", { + categoryId: cateToModify.categoryId, + description: cateToModify.description + }, "post").then(() => { FMessage.success(cateToModify.engineType + cateToModify.version + t('message.linkis.successfullyUpdateEngine')); - } catch (error) { + }).catch(() => { FMessage.error(cateToModify.engineType + cateToModify.version + t('message.linkis.failedToUpdateEngine')); - } - } + }); + })) } // 完成编辑操作后刷新页面 await refresh(); @@ -487,13 +487,13 @@ const handleInitialization = async () => { // Get settings directory(获取设置目录) const cateRes = await api.fetch("/configuration/getCategory", "get"); menuList.value = cateRes.Category.filter((menu: any) => menu.categoryName !== 'GlobalSettings') || []; - handleChangePagination(currentPage.value, pageSize.value) + handleChangePagination(currentPage.value, pageSize.value); // Get all engine types(获取所有引擎类型) const engineTypeRes = await api.fetch("/configuration/engineType", "get"); engineTypes.value = engineTypeRes.engineType.map((type: string) => ({ name: type, value: type })); // Get all engine type versions(获取所有引擎版本) engineTypeRes.engineType.forEach(async (type: string) => { - const engineTypeVersionRes = await api.fetch(`/engineplugin/getTypeVersionList/${type}`, {}, "get") + const engineTypeVersionRes = await api.fetch(`/engineplugin/getTypeVersionList/${type}`, {}, "get"); engineTypeVersions.value[type] = (engineTypeVersionRes.queryList || []).map((item: string) => { if (/^v/.test(item)) { const version = item.replace(/v/, ''); diff --git a/linkis-web-next/src/pages/parameterConfig/index.vue b/linkis-web-next/src/pages/parameterConfig/index.vue index fd7b7bca49..ea25ceb189 100644 --- a/linkis-web-next/src/pages/parameterConfig/index.vue +++ b/linkis-web-next/src/pages/parameterConfig/index.vue @@ -16,7 +16,7 @@ -->