This is an automated email from the ASF dual-hosted git repository.

casion pushed a commit to branch dev-1.4.0
in repository https://gitbox.apache.org/repos/asf/linkis.git


The following commit(s) were added to refs/heads/dev-1.4.0 by this push:
     new 6b2c4ee3d web optimize for 1.4.0 (#4444)
6b2c4ee3d is described below

commit 6b2c4ee3d2af654d8aee9e0602b8be584907081e
Author: Yonghao Mei <[email protected]>
AuthorDate: Wed May 24 19:14:33 2023 +0800

    web optimize for 1.4.0 (#4444)
    
    * bug fix
    
    * modify package.json
    
    * close codequery entrance
    
    * upd license
---
 linkis-web/package.json                            | 35 ++++++++++++----------
 .../release-docs/licenses/LICENSE-autoprefixer.txt | 20 +++++++++++++
 .../release-docs/licenses/LICENSE-postcss.txt      | 20 +++++++++++++
 .../apps/URM/module/functionManagement/index.vue   |  2 +-
 .../src/apps/URM/module/udfManagement/index.vue    |  2 +-
 .../src/apps/linkis/components/variable/index.scss |  1 +
 linkis-web/src/apps/linkis/i18n/common/en.json     | 10 +++----
 linkis-web/src/apps/linkis/i18n/common/zh.json     | 10 +++----
 .../src/apps/linkis/module/ECM/engineConn.vue      |  3 +-
 linkis-web/src/apps/linkis/module/ECM/log.vue      |  6 +++-
 .../apps/linkis/module/datasourceAccess/index.vue  |  1 +
 .../linkis/module/datasourceEnv/EditForm/index.vue |  2 +-
 .../src/apps/linkis/module/datasourceEnv/index.vue | 13 ++++----
 .../apps/linkis/module/datasourceType/index.vue    |  1 +
 .../apps/linkis/module/datasourceTypeKey/index.vue |  2 +-
 .../src/apps/linkis/module/errorCode/index.vue     |  3 +-
 .../apps/linkis/module/gatewayAuthToken/index.vue  |  4 +--
 .../module/globalHistoryManagement/viewHistory.vue |  1 +
 .../apps/linkis/module/ipListManagement/index.vue  |  2 +-
 .../module/resourceManagement/engineConn.vue       |  1 +
 .../apps/linkis/module/resourceManagement/log.vue  |  6 +++-
 .../module/rmExternalResourceProvider/index.vue    | 11 +++----
 .../src/apps/linkis/module/setting/setting.vue     | 11 ++++---
 .../linkis/module/tenantTagManagement/index.vue    | 27 +++++++++--------
 .../src/apps/linkis/module/udfManager/index.vue    |  3 +-
 .../src/apps/linkis/module/udfTree/index.vue       | 15 +++++-----
 linkis-web/src/common/i18n/en.json                 |  1 +
 linkis-web/src/common/i18n/zh.json                 |  1 +
 .../components/consoleComponent/resultSetList.vue  |  6 ++--
 .../src/components/consoleComponent/toolbar.vue    |  7 +++++
 30 files changed, 150 insertions(+), 77 deletions(-)

diff --git a/linkis-web/package.json b/linkis-web/package.json
index 006750ec1..064566871 100644
--- a/linkis-web/package.json
+++ b/linkis-web/package.json
@@ -23,7 +23,7 @@
     },
     "dependencies": {
         "@form-create/iview": "2.5.27",
-        "axios": "^0.21.4",
+        "axios": "0.21.4",
         "babel-polyfill": "6.26.0",
         "core-js": "3.27.2",
         "dexie": "3.2.3",
@@ -33,17 +33,18 @@
         "highlight.js": "10.7.0",
         "iview": "3.5.4",
         "jsencrypt": "3.2.1",
-        "lodash": "^4.17.21",
+        "lodash": "4.17.21",
         "md5": "2.3.0",
         "mitt": "1.2.0",
-        "moment": "^2.29.4",
+        "moment": "2.29.4",
         "monaco-editor": "0.30.1",
         "object-to-formdata": "4.2.2",
-        "path-browserify": "^1.0.1",
-        "qs": "^6.11.0",
+        "path-browserify": "1.0.1",
+        "postcss": "8.4.21",
+        "qs": "6.11.0",
         "reconnecting-websocket": "4.4.0",
         "sql-formatter": "2.3.3",
-        "svgo": "^3.0.2",
+        "svgo": "3.0.2",
         "v-jsoneditor": "1.4.5",
         "vue": "2.6.12",
         "vue-i18n": "8.22.1",
@@ -54,25 +55,29 @@
     },
     "devDependencies": {
         "@intlify/vue-i18n-loader": "1.0.0",
-        "@vue/cli-plugin-babel": "^5.0.8",
-        "@vue/cli-plugin-eslint": "^5.0.8",
-        "@vue/cli-service": "^5.0.8",
+        "@vue/cli-plugin-babel": "5.0.8",
+        "@vue/cli-plugin-eslint": "5.0.8",
+        "@vue/cli-service": "5.0.8",
         "@vue/eslint-config-standard": "4.0.0",
         "archiver": "3.1.1",
+        "autoprefixer": "10.4.14",
         "babel-eslint": "10.1.0",
-        "copy-webpack-plugin": "^9.1.0",
+        "copy-webpack-plugin": "9.1.0",
         "csp-html-webpack-plugin": "5.1.0",
-        "filemanager-webpack-plugin": "^7.0.0",
+        "filemanager-webpack-plugin": "7.0.0",
         "husky": "1.3.1",
-        "lint-staged": "^13.1.1",
+        "lint-staged": "13.1.1",
         "material-design-icons": "3.0.1",
         "monaco-editor-webpack-plugin": "6.0.0",
-        "node-sass": "^8.0.0",
-        "npm-force-resolutions": "^0.0.10",
-        "sass-loader": "^10.4.1",
+        "node-sass": "8.0.0",
+        "npm-force-resolutions": "0.0.10",
+        "sass-loader": "10.4.1",
         "svg-sprite-loader": "6.0.0",
         "vue-cli-plugin-mockjs": "0.1.3",
         "vue-template-compiler": "2.6.12",
         "webpack-virtual-modules": "0.3.2"
+    },
+    "resolutions": {
+        "postcss": "8.4.21"
     }
 }
diff --git a/linkis-web/release-docs/licenses/LICENSE-autoprefixer.txt 
b/linkis-web/release-docs/licenses/LICENSE-autoprefixer.txt
new file mode 100644
index 000000000..1b21e2bc5
--- /dev/null
+++ b/linkis-web/release-docs/licenses/LICENSE-autoprefixer.txt
@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright 2013 Andrey Sitnik <[email protected]>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 
of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/linkis-web/release-docs/licenses/LICENSE-postcss.txt 
b/linkis-web/release-docs/licenses/LICENSE-postcss.txt
new file mode 100644
index 000000000..1b21e2bc5
--- /dev/null
+++ b/linkis-web/release-docs/licenses/LICENSE-postcss.txt
@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright 2013 Andrey Sitnik <[email protected]>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 
of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/linkis-web/src/apps/URM/module/functionManagement/index.vue 
b/linkis-web/src/apps/URM/module/functionManagement/index.vue
index c756513fa..389b1003c 100644
--- a/linkis-web/src/apps/URM/module/functionManagement/index.vue
+++ b/linkis-web/src/apps/URM/module/functionManagement/index.vue
@@ -573,7 +573,7 @@ export default {
       if (!args.row) return
       this.$Modal.confirm({
         title: this.$t('message.linkis.modal.modalTitle'),
-        content: this.$t('message.linkis.modal.modalDelete', {envName: 
args.row.udfName}),
+        content: this.$t('message.linkis.modal.modalDelete', {name: 
args.row.udfName}),
         onOk: ()=>{
           api
             .fetch(`/udf/delete/${args.row.id}`, {}, 'post')
diff --git a/linkis-web/src/apps/URM/module/udfManagement/index.vue 
b/linkis-web/src/apps/URM/module/udfManagement/index.vue
index da73981ae..870b6ddf2 100644
--- a/linkis-web/src/apps/URM/module/udfManagement/index.vue
+++ b/linkis-web/src/apps/URM/module/udfManagement/index.vue
@@ -567,7 +567,7 @@ export default {
       if (!args.row) return
       this.$Modal.confirm({
         title: this.$t('message.linkis.modal.modalTitle'),
-        content: this.$t('message.linkis.modal.modalDelete', {envName: 
args.row.udfName}),
+        content: this.$t('message.linkis.modal.modalDelete', {name: 
args.row.udfName}),
         onOk: ()=>{
           api.fetch(`/udf/delete/${args.row.id}`, {}, 'post')
             .then(() => {
diff --git a/linkis-web/src/apps/linkis/components/variable/index.scss 
b/linkis-web/src/apps/linkis/components/variable/index.scss
index 643948e8b..9140e16a3 100644
--- a/linkis-web/src/apps/linkis/components/variable/index.scss
+++ b/linkis-web/src/apps/linkis/components/variable/index.scss
@@ -50,6 +50,7 @@
             line-height: 24px;
             display: flex;
             align-items: center;
+            position: relative;
             @media only screen and (max-width: 1480px){
                 .we-variable-content-label-group {
                     display: flex !important;
diff --git a/linkis-web/src/apps/linkis/i18n/common/en.json 
b/linkis-web/src/apps/linkis/i18n/common/en.json
index 845b6fe03..aba5ff0c6 100644
--- a/linkis-web/src/apps/linkis/i18n/common/en.json
+++ b/linkis-web/src/apps/linkis/i18n/common/en.json
@@ -194,7 +194,7 @@
       },
       "modal": {
         "modalTitle": "Prompt message ",
-        "modalDelete": "Confirm whether to delete the [{envName} option?",
+        "modalDelete": "Confirm whether to delete the [{name} option?",
         "modalDeleteRecord": "Confirm whether to delete the record?",
         "modalDeleteTask": "Confirm whether to stop the selected task?",
         "modalDeleteInstance": "Determines whether to stop the current 
selected instance?",
@@ -398,7 +398,7 @@
         "addSuccessful": "Successfully Addded",
         "editSuccessful": "Successfully edited",
         "confirmDel": "Confirm Deletion",
-        "isConfirmDel": "Are you sure you want to delete this tag"
+        "isConfirmDel": "Are you sure you want to delete this tag({name})"
       },
       "ipListManagement": {
         "userName": "User Name",
@@ -433,7 +433,7 @@
         "addSuccessful": "Successfully Addded",
         "editSuccessful": "Successfully edited",
         "confirmDel": "Confirm Deletion",
-        "isConfirmDel": "Are you sure you want to delete this tag"
+        "isConfirmDel": "Are you sure you want to delete this tag({name})"
       },
       "codeQuery": {
         "executionCode": "Execution Code",
@@ -468,8 +468,8 @@
           "cancel": "Cancel",
           "modalTitle": "Info",
           "modalFormat": "Confirm deleting the {0} record?",
-          "modalDelete1": "Confirm that the record [{username}] should be 
deleted?",
-          "modalDelete": "Confirm that the record [{envName}] should be 
deleted?",
+          "modalDelete1": "Confirm that the record [{name}] should be 
deleted?",
+          "modalDelete": "Confirm that the record [{name}] should be deleted?",
           "modalDeleteSuccess": "Successfully delete",
           "modalDeleteFail": "Fail to delete",
           "modalAddSuccess": "Successfully added",
diff --git a/linkis-web/src/apps/linkis/i18n/common/zh.json 
b/linkis-web/src/apps/linkis/i18n/common/zh.json
index cc04f4ab6..49950288c 100644
--- a/linkis-web/src/apps/linkis/i18n/common/zh.json
+++ b/linkis-web/src/apps/linkis/i18n/common/zh.json
@@ -194,7 +194,7 @@
           },
         "modal": {
           "modalTitle": "提示信息",
-          "modalDelete": "确认是否删除[{envName}]项?",
+          "modalDelete": "确认是否删除[{name}]项?",
           "modalDeleteRecord": "确认是否删除该记录?",
           "modalDeleteTask": "确认是否停止当前选择任务?",
           "modalDeleteInstance": "确认是否停止当前选择实例?",
@@ -396,7 +396,7 @@
               "userIsExisted": "用户标签已存在",
               "addSuccessful": "添加成功",
               "confirmDel": "确认删除",
-              "isConfirmDel": "确定要删除这条数据吗"
+              "isConfirmDel": "确定要删除这条数据吗({name})"
           },
           "ipListManagement": {
               "userName": "用户名",
@@ -430,7 +430,7 @@
               "userIsExisted": "用户标签已存在",
               "addSuccessful": "添加成功",
               "confirmDel": "确认删除",
-              "isConfirmDel": "确定要删除这条数据吗"
+              "isConfirmDel": "确定要删除这条数据吗({name})"
           },
           "basedataManagement": {
             "add": "新增",
@@ -446,8 +446,8 @@
               "cancel": "取消",
               "modalTitle": "提示信息",
               "modalFormat": "确定删除 {0} 这条记录?",
-              "modalDelete1": "确认是否删除[{username}]该记录?",
-              "modalDelete": "确认是否删除[{envName}]该记录?",
+              "modalDelete1": "确认是否删除[{name}]该记录?",
+              "modalDelete": "确认是否删除[{name}]该记录?",
               "modalDeleteSuccess": "删除成功",
               "modalDeleteFail": "删除失败",
               "modalAddSuccess": "添加成功",
diff --git a/linkis-web/src/apps/linkis/module/ECM/engineConn.vue 
b/linkis-web/src/apps/linkis/module/ECM/engineConn.vue
index d0004694b..5fd9c221c 100644
--- a/linkis-web/src/apps/linkis/module/ECM/engineConn.vue
+++ b/linkis-web/src/apps/linkis/module/ECM/engineConn.vue
@@ -226,7 +226,8 @@ export default {
                     this.$refs.logPanel.getLogs(0, {
                       emInstance: params.row.emInstance,
                       instance: params.row.instance,
-                      applicationName: params.row.applicationName
+                      applicationName: params.row.applicationName,
+                      engineType: params.row.engineType,
                     })
                   }
                 }
diff --git a/linkis-web/src/apps/linkis/module/ECM/log.vue 
b/linkis-web/src/apps/linkis/module/ECM/log.vue
index d7a54586c..c186edaf4 100644
--- a/linkis-web/src/apps/linkis/module/ECM/log.vue
+++ b/linkis-web/src/apps/linkis/module/ECM/log.vue
@@ -20,6 +20,8 @@
     <Tabs @on-click="onClickTabs" :value="tabName">
       <TabPane name="stdout" label="stdout"></TabPane>
       <TabPane name="stderr" label="stderr"></TabPane>
+      <TabPane name="gc" label="gc"></TabPane>
+      <TabPane v-if="['hive', 'spark'].includes(engineType)" name="yarnApp" 
label="yarnApp"></TabPane>
     </Tabs>
     <Button class="backButton" type="primary" 
@click="back">{{$t('message.linkis.back')}}</Button>
     <log :logs="logs" :scriptViewState="scriptViewState"/>
@@ -55,7 +57,8 @@ export default {
       },
       scriptViewState: {
         bottomContentHeight: window.innerHeight - 353
-      }
+      },
+      engineType: '',
     };
   },
   computed: {
@@ -80,6 +83,7 @@ export default {
     async getLogs(fromLine, param) {
       if (param) {
         this.param = param
+        this.engineType = param.engineType
       }
       if (this.param) {
         const params = {
diff --git a/linkis-web/src/apps/linkis/module/datasourceAccess/index.vue 
b/linkis-web/src/apps/linkis/module/datasourceAccess/index.vue
index 8386ba939..33f30de9b 100644
--- a/linkis-web/src/apps/linkis/module/datasourceAccess/index.vue
+++ b/linkis-web/src/apps/linkis/module/datasourceAccess/index.vue
@@ -242,6 +242,7 @@ export default {
                 duration: 3,
                 content: "添加成功"
               })
+              this.load()
             }else{
               this.$Message.success({
                 duration: 3,
diff --git a/linkis-web/src/apps/linkis/module/datasourceEnv/EditForm/index.vue 
b/linkis-web/src/apps/linkis/module/datasourceEnv/EditForm/index.vue
index d54077ffd..ca19bd336 100644
--- a/linkis-web/src/apps/linkis/module/datasourceEnv/EditForm/index.vue
+++ b/linkis-web/src/apps/linkis/module/datasourceEnv/EditForm/index.vue
@@ -247,7 +247,7 @@ export default {
       }
       // radio
       this.rule[4].hidden = !(['hive', 'kafka'].includes(dataSourceTypeName))
-
+      
       // keytab value
       this.rule[6].hidden = !newV.keytab;
       // upload
diff --git a/linkis-web/src/apps/linkis/module/datasourceEnv/index.vue 
b/linkis-web/src/apps/linkis/module/datasourceEnv/index.vue
index c3e291338..553817e8c 100644
--- a/linkis-web/src/apps/linkis/module/datasourceEnv/index.vue
+++ b/linkis-web/src/apps/linkis/module/datasourceEnv/index.vue
@@ -204,7 +204,7 @@ export default {
     init() {
       this.load();
     },
-    load() {
+    async load() {
       let params = {
         searchName: this.searchName,
         currentPage: this.page.pageNow,
@@ -223,7 +223,7 @@ export default {
             let filter = options.filter(optionsItem=>{
               return optionsItem.value === item.datasourceTypeId
             })
-            item.name = filter[0]?.label || '';
+            item.name = filter[0]?.label || ''; 
           })
         })
       })
@@ -287,8 +287,8 @@ export default {
       }
       this.modalEditData.hasKeyTab = false;
     },
-    onModalOk(){
-      this.$refs.editForm.formModel.submit((formData)=>{
+    async onModalOk(){
+      this.$refs.editForm.formModel.submit(async (formData)=>{
         if (!('parameter' in formData)) {
           formData['parameter'] = {}
         }
@@ -313,13 +313,14 @@ export default {
         if('keytab' in formData) delete formData['keytab'];
         if('uris' in formData) delete formData['uris'];
         if(this.modalAddMode=='add') {
-          add(formData).then((data)=>{
+          await add(formData).then((data)=>{
             //window.console.log(data)
             if(data.result) {
               this.$Message.success({
                 duration: 3,
                 content: 
this.$t('message.linkis.basedataManagement.modal.modalAddSuccess')
               })
+              this.load();
             }else{
               this.$Message.success({
                 duration: 3,
@@ -328,7 +329,7 @@ export default {
             }
           })
         }else {
-          edit(formData).then((data)=>{
+          await edit(formData).then((data)=>{
             //window.console.log(data)
             if(data.result) {
               this.$Message.success({
diff --git a/linkis-web/src/apps/linkis/module/datasourceType/index.vue 
b/linkis-web/src/apps/linkis/module/datasourceType/index.vue
index 5a78fd92b..5dbb8bf6f 100644
--- a/linkis-web/src/apps/linkis/module/datasourceType/index.vue
+++ b/linkis-web/src/apps/linkis/module/datasourceType/index.vue
@@ -247,6 +247,7 @@ export default {
                 duration: 3,
                 content: 
this.$t('message.linkis.basedataManagement.modal.modalAddSuccess')
               })
+              this.load()
             }else{
               this.$Message.success({
                 duration: 3,
diff --git a/linkis-web/src/apps/linkis/module/datasourceTypeKey/index.vue 
b/linkis-web/src/apps/linkis/module/datasourceTypeKey/index.vue
index 42823c657..124faa352 100644
--- a/linkis-web/src/apps/linkis/module/datasourceTypeKey/index.vue
+++ b/linkis-web/src/apps/linkis/module/datasourceTypeKey/index.vue
@@ -295,13 +295,13 @@ export default {
                 duration: 3,
                 content: 
this.$t('message.linkis.basedataManagement.modal.modalAddSuccess')
               })
+              this.load()
             }else{
               this.$Message.success({
                 duration: 3,
                 content: 
this.$t('message.linkis.basedataManagement.modal.modalAddFail')
               })
             }
-            this.load()
           })
         }else {
           edit(formData).then((data)=>{
diff --git a/linkis-web/src/apps/linkis/module/errorCode/index.vue 
b/linkis-web/src/apps/linkis/module/errorCode/index.vue
index 332bb3405..cd0439499 100644
--- a/linkis-web/src/apps/linkis/module/errorCode/index.vue
+++ b/linkis-web/src/apps/linkis/module/errorCode/index.vue
@@ -222,13 +222,13 @@ export default {
                 duration: 3,
                 content: 
this.$t('message.linkis.basedataManagement.modal.modalAddSuccess')
               })
+              this.load()
             }else{
               this.$Message.success({
                 duration: 3,
                 content: 
this.$t('message.linkis.basedataManagement.modal.modalAddFail')
               })
             }
-            this.load()
           })
         }else {
           edit(formData).then((data)=>{
@@ -246,7 +246,6 @@ export default {
               })
             }
           })
-          this.load()
         }
         this.modalLoading=false
         this.modalShow = false
diff --git a/linkis-web/src/apps/linkis/module/gatewayAuthToken/index.vue 
b/linkis-web/src/apps/linkis/module/gatewayAuthToken/index.vue
index 19197f9c5..91a3eaaf0 100644
--- a/linkis-web/src/apps/linkis/module/gatewayAuthToken/index.vue
+++ b/linkis-web/src/apps/linkis/module/gatewayAuthToken/index.vue
@@ -234,7 +234,7 @@ export default {
     onTableDelete(row){
       this.$Modal.confirm({
         title: this.$t('message.linkis.basedataManagement.modal.modalTitle'),
-        content: 
this.$t('message.linkis.basedataManagement.modal.modalDelete', {envName: 
row.tokenName}),
+        content: 
this.$t('message.linkis.basedataManagement.modal.modalDelete', {name: 
row.tokenName}),
         onOk: ()=>{
           let params = {
             id: row.id
@@ -268,13 +268,13 @@ export default {
                 duration: 3,
                 content: 
this.$t('message.linkis.basedataManagement.modal.modalAddSuccess')
               })
+              this.load()
             }else{
               this.$Message.success({
                 duration: 3,
                 content: 
this.$t('message.linkis.basedataManagement.modal.modalAddFail')
               })
             }
-            this.load()
           })
         }else {
           edit(formData).then((data)=>{
diff --git 
a/linkis-web/src/apps/linkis/module/globalHistoryManagement/viewHistory.vue 
b/linkis-web/src/apps/linkis/module/globalHistoryManagement/viewHistory.vue
index 069068c74..8742188b9 100644
--- a/linkis-web/src/apps/linkis/module/globalHistoryManagement/viewHistory.vue
+++ b/linkis-web/src/apps/linkis/module/globalHistoryManagement/viewHistory.vue
@@ -286,6 +286,7 @@ export default {
         let jobhistory = await api.fetch(`/jobhistory/${jobId}/get`, 'get')
         const option = jobhistory.task
         this.jobhistoryTask = option
+        this.script.runType = option.runType
         if (!jobhistory.task.logPath) {
           const errCode = jobhistory.task.errCode
             ? `\n${this.$t('message.linkis.errorCode')}:${
diff --git a/linkis-web/src/apps/linkis/module/ipListManagement/index.vue 
b/linkis-web/src/apps/linkis/module/ipListManagement/index.vue
index 770795ce2..e411dc781 100644
--- a/linkis-web/src/apps/linkis/module/ipListManagement/index.vue
+++ b/linkis-web/src/apps/linkis/module/ipListManagement/index.vue
@@ -389,7 +389,7 @@ export default {
     delete(data) {
       this.$Modal.confirm({
         title: this.$t('message.linkis.ipListManagement.confirmDel'),
-        content: this.$t('message.linkis.ipListManagement.isConfirmDel'),
+        content: this.$t('message.linkis.ipListManagement.isConfirmDel', 
{name: `id:${data.id}`}),
         onOk: async () => {
           await this.confirmDelete(data);
           await this.getTableData();
diff --git 
a/linkis-web/src/apps/linkis/module/resourceManagement/engineConn.vue 
b/linkis-web/src/apps/linkis/module/resourceManagement/engineConn.vue
index 8e71ef864..f8da125f7 100644
--- a/linkis-web/src/apps/linkis/module/resourceManagement/engineConn.vue
+++ b/linkis-web/src/apps/linkis/module/resourceManagement/engineConn.vue
@@ -203,6 +203,7 @@ export default {
                       emInstance: params.row.ecmInstance,
                       instance: params.row.serviceInstance,
                       ticketId: params.row.ticketId,
+                      engineType: params.row.engineType,
                       logDirSuffix: params.row.logDirSuffix,
                     })
                   }
diff --git a/linkis-web/src/apps/linkis/module/resourceManagement/log.vue 
b/linkis-web/src/apps/linkis/module/resourceManagement/log.vue
index acf96cbb4..39f79b003 100644
--- a/linkis-web/src/apps/linkis/module/resourceManagement/log.vue
+++ b/linkis-web/src/apps/linkis/module/resourceManagement/log.vue
@@ -20,6 +20,8 @@
     <Tabs @on-click="onClickTabs" :value="tabName">
       <TabPane name="stdout" label="stdout"></TabPane>
       <TabPane name="stderr" label="stderr"></TabPane>
+      <TabPane name="gc" label="gc"></TabPane>
+      <TabPane v-if="['hive', 'spark'].includes(engineType)" name="yarnApp" 
label="yarnApp"></TabPane>
     </Tabs>
     <Button class="backButton" type="primary" 
@click="back">{{$t('message.linkis.back')}}</Button>
     <log :logs="logs" :scriptViewState="scriptViewState"/>
@@ -55,7 +57,8 @@ export default {
       },
       scriptViewState: {
         bottomContentHeight: window.innerHeight - 353
-      }
+      },
+      engineType: '',
     };
   },
   computed: {
@@ -80,6 +83,7 @@ export default {
     async getLogs(fromLine, param) {
       if (param) {
         this.param = param
+        this.engineType = param.engineType
       }
       if (this.param) {
         const params = {
diff --git 
a/linkis-web/src/apps/linkis/module/rmExternalResourceProvider/index.vue 
b/linkis-web/src/apps/linkis/module/rmExternalResourceProvider/index.vue
index 98181836d..9e2f175e9 100644
--- a/linkis-web/src/apps/linkis/module/rmExternalResourceProvider/index.vue
+++ b/linkis-web/src/apps/linkis/module/rmExternalResourceProvider/index.vue
@@ -160,7 +160,7 @@ export default {
     init() {
       window.console.log(this.$route.query.isSkip);
     },
-    load() {
+    async load() {
       let params = {
         searchName: this.searchName,
         currentPage: this.page.pageNow,
@@ -219,18 +219,19 @@ export default {
       })
 
     },
-    onModalOk(){
-      this.$refs.errorCodeForm.formModel.submit((formData)=>{
+    async onModalOk(){
+      this.$refs.errorCodeForm.formModel.submit(async (formData)=>{
         this.modalLoading = true
         formData.config = JSON.stringify(formData.config)
         if(this.modalAddMode=='add') {
-          add(formData).then((data)=>{
+          await add(formData).then((data)=>{
             window.console.log(data)
             if(data.result) {
               this.$Message.success({
                 duration: 3,
                 content: 
this.$t('message.linkis.basedataManagement.modal.modalAddSuccess')
               })
+              this.load()
             }else{
               this.$Message.success({
                 duration: 3,
@@ -239,7 +240,7 @@ export default {
             }
           })
         }else {
-          edit(formData).then((data)=>{
+          await edit(formData).then((data)=>{
             window.console.log(data)
             if(data.result) {
               this.$Message.success({
diff --git a/linkis-web/src/apps/linkis/module/setting/setting.vue 
b/linkis-web/src/apps/linkis/module/setting/setting.vue
index 565503866..3fed0420f 100644
--- a/linkis-web/src/apps/linkis/module/setting/setting.vue
+++ b/linkis-web/src/apps/linkis/module/setting/setting.vue
@@ -330,7 +330,7 @@ export default {
           {
             creator: parameter[0], // Specify a first-level directory(指定一级目录)
             engineType: parameter[1], // Specify the engine (secondary 
directory) if there is only a first-level directory, it will be automatically 
undefined and no parameters will be passed(指定引擎(二级目录)如果只有一级目录则自动为undefined不会传参)
-            version: parameter[2], // The corresponding engine currently only 
supports the corresponding version. For example, spark will pass version-3.2.1. 
If there is only a first-level directory, it will be automatically undefined 
and no parameters will be 
passed.(对应的引擎目前只支持对应的版本,如spark就传version-3.2.1,如果只有一级目录则自动为undefined不会传参)
+            version: parameter[2], // The corresponding engine currently only 
supports the corresponding version. For example, spark will pass version-2.4.3. 
If there is only a first-level directory, it will be automatically undefined 
and no parameters will be 
passed.(对应的引擎目前只支持对应的版本,如spark就传version-2.4.3,如果只有一级目录则自动为undefined不会传参)
           },
           "get"
         )
@@ -565,11 +565,10 @@ export default {
       //Find the data in the menuList of the tab you clicked to 
delete(找到点击删除的tab 在menuList里的数据)
       let menuItem = this.menuList.find((item) => item.categoryName === name);
       //Determine whether the current active tab is the same as the tab 
currently clicked to delete(判断当前的活动tab是否和当前点击删除的tab一样)
-      if (this.currentTabName === name) {
-        let ItemIndex = this.menuList.findIndex(
-          (item) => item.categoryName === this.currentTabName
-        );
-        this.menuList.splice(ItemIndex, 1);
+      const activeIndex = this.menuList.findIndex((item) => item.categoryName 
=== this.currentTabName) + 1;
+      const curIndex = this.menuList.findIndex((item) => item.categoryName === 
name);
+      if (curIndex === activeIndex) {
+        this.menuList.splice(curIndex, 1);
         api
           .fetch(
             "/configuration/deleteCategory",
diff --git a/linkis-web/src/apps/linkis/module/tenantTagManagement/index.vue 
b/linkis-web/src/apps/linkis/module/tenantTagManagement/index.vue
index fccbe7f35..a7aab7740 100644
--- a/linkis-web/src/apps/linkis/module/tenantTagManagement/index.vue
+++ b/linkis-web/src/apps/linkis/module/tenantTagManagement/index.vue
@@ -106,7 +106,7 @@
         <div style="margin-top: 60px">
           <span style="width: 60px">{{ 
$t('message.linkis.tenantTagManagement.yourTagMapping') }}</span>
           <Input class="input" v-model="mapping" style="width: 220px; 
margin-left: 10px" disabled></Input>
-          <Button type="primary" @click="checkUserTag" style="margin-left: 
10px" 
:loading="isRequesting">{{$t('message.linkis.tenantTagManagement.check')}}</Button>
+          <Button v-if="mode !== 'edit'" type="primary" @click="checkUserTag" 
style="margin-left: 10px" 
:loading="isRequesting">{{$t('message.linkis.tenantTagManagement.check')}}</Button>
         </div>
       </div>
       <div slot="footer">
@@ -223,7 +223,7 @@ export default {
         ],
         creator: [
           {required: true, message: 
this.$t('message.linkis.tenantTagManagement.notEmpty'), trigger: 'blur'},
-          {pattern: /^[0-9a-zA-Z_]+$/, message: 
this.$t('message.linkis.tenantTagManagement.contentError1'), type: 'string'}
+          {pattern: /^[0-9a-zA-Z_\*]+$/, message: 
this.$t('message.linkis.tenantTagManagement.contentError'), type: 'string'}
         ],
         tenantValue: [
           {required: true, message: 
this.$t('message.linkis.tenantTagManagement.notEmpty'), trigger: 'blur'},
@@ -313,22 +313,22 @@ export default {
       if(this.isRequesting) return;
       this.$refs.createTenantForm.validate(async (valid) => {
         if(valid) {
-          const {user, creator} = this.modalData;
+          const { user, creator, id } = this.modalData;
           if(this.mode === 'edit' && user === this.editData.user && creator 
=== this.editData.creator) {
             this.tagIsExist = false;
             return;
           }
           try {
-            this.isRequesting = true
-            await api.fetch("/configuration/tenant-mapping/check-user-creator",
-              {
-                user,
-                creator
-              }, "get").then((res) => {
+            this.isRequesting = true;
+            const checkBody = {user, creator};
+            if(this.mode === 'edit') {
+              checkBody.id = id;
+            }
+            await 
api.fetch("/configuration/tenant-mapping/check-user-creator", checkBody, 
"get").then((res) => {
               if (res.exist) {
                 
this.$Message.error(this.$t('message.linkis.tenantTagManagement.userIsExisted'))
               }
-              this.tagIsExist = res.exist;
+              this.tagIsExist = !res.exist;
             })
             this.isRequesting = false
           } catch (err) {
@@ -399,12 +399,13 @@ export default {
         id, user, creator, tenantValue, bussinessUser, desc
       };
       this.showCreateModal = true;
+      this.tagIsExist = false;
       this.mode = 'edit';
     },
     delete(data) {
       this.$Modal.confirm({
         title: this.$t('message.linkis.tenantTagManagement.confirmDel'),
-        content: this.$t('message.linkis.tenantTagManagement.isConfirmDel'),
+        content: this.$t('message.linkis.tenantTagManagement.isConfirmDel', 
{name: `id:${data.id}`}),
         onOk: async () => {
           await this.confirmDelete(data);
           await this.getTableData();
@@ -422,7 +423,9 @@ export default {
       }
     },
     async handleChange() {
-      this.tagIsExist = true;
+      if(this.mode !== 'edit') {
+        this.tagIsExist = true;
+      }
     },
     async changePage(val) {
       this.page.pageNow = val;
diff --git a/linkis-web/src/apps/linkis/module/udfManager/index.vue 
b/linkis-web/src/apps/linkis/module/udfManager/index.vue
index 66319cd16..b1f425acb 100644
--- a/linkis-web/src/apps/linkis/module/udfManager/index.vue
+++ b/linkis-web/src/apps/linkis/module/udfManager/index.vue
@@ -211,13 +211,13 @@ export default {
                 duration: 3,
                 content: 
this.$t('message.linkis.basedataManagement.modal.modalAddSuccess')
               })
+              this.load()
             }else{
               this.$Message.success({
                 duration: 3,
                 content: 
this.$t('message.linkis.basedataManagement.modal.modalAddFail')
               })
             }
-            this.load()
           })
         }else {
           edit(formData).then((data)=>{
@@ -234,7 +234,6 @@ export default {
                 content: 
this.$t('message.linkis.basedataManagement.modal.modalEditFail')
               })
             }
-            this.load()
           })
         }
         this.modalLoading=false
diff --git a/linkis-web/src/apps/linkis/module/udfTree/index.vue 
b/linkis-web/src/apps/linkis/module/udfTree/index.vue
index 0ef454f9c..214ed2fff 100644
--- a/linkis-web/src/apps/linkis/module/udfTree/index.vue
+++ b/linkis-web/src/apps/linkis/module/udfTree/index.vue
@@ -91,7 +91,7 @@
 import mixin from '@/common/service/mixin';
 import ErrorCodeForm from './EditForm/index'
 import {add, del, edit, getList} from "./service";
-import {formatDate} from "iview/src/components/date-picker/util";
+// import {formatDate} from "iview/src/components/date-picker/util";
 export default {
   mixins: [mixin],
   components: {ErrorCodeForm},
@@ -151,7 +151,7 @@ export default {
           align: 'center',
           render: (h,params)=>{
             return h('div',
-              formatDate(new Date(params.row.createTime),'yyyy-MM-dd hh:mm:ss')
+              new Date(params.row.createTime).toLocaleString()
             )
           }
         },
@@ -163,7 +163,7 @@ export default {
           align: 'center',
           render: (h,params)=>{
             return h('div',
-              formatDate(new Date(params.row.updateTime),'yyyy-MM-dd hh:mm:ss')
+              new Date(params.row.updateTime).toLocaleString()
             )
           }
         },
@@ -224,7 +224,7 @@ export default {
 
       this.$Modal.confirm({
         title: this.$t('message.linkis.basedataManagement.modal.modalTitle'),
-        content: 
this.$t('message.linkis.basedataManagement.modal.modalDelete'),
+        content: 
this.$t('message.linkis.basedataManagement.modal.modalDelete', {name: 
row.name}),
         onOk: ()=>{
           let params = {
             id: row.id
@@ -248,16 +248,17 @@ export default {
 
     },
     onModalOk(){
-      this.$refs.errorCodeForm.formModel.submit((formData)=>{
+      this.$refs.errorCodeForm.formModel.submit(async (formData)=>{
         this.modalLoading = true
         if(this.modalAddMode=='add') {
-          add(formData).then((data)=>{
+          await add(formData).then((data)=>{
             window.console.log(data)
             if(data.result) {
               this.$Message.success({
                 duration: 3,
                 content: 
this.$t('message.linkis.basedataManagement.modal.modalAddSuccess')
               })
+              this.load();
             }else{
               this.$Message.success({
                 duration: 3,
@@ -266,7 +267,7 @@ export default {
             }
           })
         }else {
-          edit(formData).then((data)=>{
+          await edit(formData).then((data)=>{
             window.console.log(data)
             if(data.result) {
               this.$Message.success({
diff --git a/linkis-web/src/common/i18n/en.json 
b/linkis-web/src/common/i18n/en.json
index bd0a869d1..db26f2218 100644
--- a/linkis-web/src/common/i18n/en.json
+++ b/linkis-web/src/common/i18n/en.json
@@ -309,6 +309,7 @@
         "resultGroupLineFilter": "Result Group Line Filter",
         "resultGroup": "Result Group",
         "all": "all",
+        "autoFormat": "Auto Format",
         "downloadMode": "Download Mode :",
         "deepAnalysis": "Deep Analysis",
         "success": {
diff --git a/linkis-web/src/common/i18n/zh.json 
b/linkis-web/src/common/i18n/zh.json
index 9491068ee..a38fa3deb 100644
--- a/linkis-web/src/common/i18n/zh.json
+++ b/linkis-web/src/common/i18n/zh.json
@@ -315,6 +315,7 @@
         "resultGroupLineFilter": "对结果集的列进行筛选",
         "resultGroup": "结果集",
         "all": "是否全量",
+        "autoFormat": "自动格式化",
         "downloadMode": "下载方式:",
         "deepAnalysis": "分 析 进 阶",
         "success": {
diff --git a/linkis-web/src/components/consoleComponent/resultSetList.vue 
b/linkis-web/src/components/consoleComponent/resultSetList.vue
index 22f4e24e7..80c8a99d7 100644
--- a/linkis-web/src/components/consoleComponent/resultSetList.vue
+++ b/linkis-web/src/components/consoleComponent/resultSetList.vue
@@ -45,7 +45,7 @@
           v-for="(item, index) in list"
           :class="{current: current-0 === index}"
           :data-index="index"
-          :key="item.path">{{$t('message.common.resultList')}}{{ index+1 
}}</li>
+          :key="item.path">{{$t('message.common.resultList')}}{{ 
+item.name.split('.')[0].substring(1) + 1 }}</li>
       </virtual-list>
     </div>
   </div>
@@ -73,7 +73,9 @@ export default {
   },
   data() {
     return {
-      resultList: this.list,
+      resultList: this.list.sort((a, b) => {
+        return +(a.name.split('.')[0].substring(1)) - 
+(b.name.split('.')[0].substring(1))
+      }),
       show: false,
     };
   },
diff --git a/linkis-web/src/components/consoleComponent/toolbar.vue 
b/linkis-web/src/components/consoleComponent/toolbar.vue
index ccbc4f738..20bcd8e67 100644
--- a/linkis-web/src/components/consoleComponent/toolbar.vue
+++ b/linkis-web/src/components/consoleComponent/toolbar.vue
@@ -150,6 +150,9 @@
               <Row>
                 <Checkbox 
v-model="allDownload">{{$t('message.common.toolbar.all')}}</Checkbox>
               </Row>
+              <Row>
+                <Checkbox 
v-model="autoFormat">{{$t('message.common.toolbar.autoFormat')}}</Checkbox>
+              </Row>
             </div>
             <Row class="confirm">
               <Col span="10">
@@ -267,6 +270,7 @@ export default {
       isIconLabelShow: true,
       iconSize: 14,
       allDownload: false, // whether to download all result sets(是否下载全部结果集)
+      autoFormat: false, // whether to format result sets
       resultsShowType: '2',
       separators: [
         { key: ',', label: this.$t('message.common.separator.comma'), value: 
'1', span: 4, offset: 0},
@@ -369,6 +373,9 @@ export default {
         let separator = encodeURIComponent(separatorItem.key || '');
         url += `&csvSeparator=${separator}`
       }
+      if(this.isAll) {
+        url += `&autoFormat=${this.autoFormat}`
+      }
       // Before downloading, use the heartbeat interface to confirm whether to 
log in(下载之前条用心跳接口确认是否登录)
       await api.fetch('/user/heartbeat', 'get');
       const link = document.createElement('a');


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


Reply via email to