From 1c6da1530124177b7d89ecc33878ffb5feaec9c9 Mon Sep 17 00:00:00 2001 From: ibuler Date: Thu, 22 Jul 2021 18:56:04 +0800 Subject: [PATCH 1/4] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=E8=B4=A6?= =?UTF-8?q?=E5=8F=B7=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/AccountListTable/index.vue | 3 + src/components/AutoDataZTree/index.vue | 2 +- .../AssetAccount/AssetAccountList.vue | 132 ++++-------------- src/views/xpack/Vault/VaultList.vue | 20 --- 4 files changed, 30 insertions(+), 127 deletions(-) diff --git a/src/components/AccountListTable/index.vue b/src/components/AccountListTable/index.vue index ac4a028ee..70e9ac3c3 100644 --- a/src/components/AccountListTable/index.vue +++ b/src/components/AccountListTable/index.vue @@ -151,6 +151,9 @@ export default { url: this.exportUrl, mfaVerifyRequired: true }, + searchConfig: { + exclude: ['systemuser', 'asset'] + }, hasSearch: true } } diff --git a/src/components/AutoDataZTree/index.vue b/src/components/AutoDataZTree/index.vue index 567c52753..1c8dd9815 100644 --- a/src/components/AutoDataZTree/index.vue +++ b/src/components/AutoDataZTree/index.vue @@ -40,7 +40,7 @@ export default { autoParam: ['id=key', 'name=n', 'level=lv'], type: 'get', headers: { - 'X-JMS-ORG': JSON.parse(this.$cookie.get('jms_current_org')) ? JSON.parse(this.$cookie.get('jms_current_org')).id : '' + 'X-JMS-ORG': this.$store.getters.currentOrg.id } }, callback: { diff --git a/src/views/accounts/AssetAccount/AssetAccountList.vue b/src/views/accounts/AssetAccount/AssetAccountList.vue index 7485ef532..6d8d14d48 100644 --- a/src/views/accounts/AssetAccount/AssetAccountList.vue +++ b/src/views/accounts/AssetAccount/AssetAccountList.vue @@ -1,48 +1,20 @@ From 0f76f6ad965ce4ee4805e93fe86f418ef24a8ab6 Mon Sep 17 00:00:00 2001 From: ibuler Date: Tue, 27 Jul 2021 14:18:37 +0800 Subject: [PATCH 3/4] =?UTF-8?q?perf:=20=E5=9F=BA=E6=9C=AC=E5=AE=8C?= =?UTF-8?q?=E6=88=90=E5=BA=94=E7=94=A8=E6=AD=A3=E5=A5=BD=E6=94=B9=E9=80=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/AccountListTable/index.vue | 2 +- .../AppAccountListTable/ShowSecretInfo.vue | 81 +++++++++ src/components/AppAccountListTable/const.js | 31 ++++ src/components/AppAccountListTable/index.vue | 167 ++++++++++++++++++ src/i18n/langs/cn.json | 1 + src/i18n/langs/en.json | 1 + src/router/applications.js | 112 +++++++----- .../ApplicationAccountList.vue | 32 ++-- 8 files changed, 363 insertions(+), 64 deletions(-) create mode 100644 src/components/AppAccountListTable/ShowSecretInfo.vue create mode 100644 src/components/AppAccountListTable/const.js create mode 100644 src/components/AppAccountListTable/index.vue diff --git a/src/components/AccountListTable/index.vue b/src/components/AccountListTable/index.vue index 70e9ac3c3..c26fd62bc 100644 --- a/src/components/AccountListTable/index.vue +++ b/src/components/AccountListTable/index.vue @@ -15,7 +15,7 @@ import { connectivityMeta } from './const' import { openTaskPage } from '@/utils/jms' export default { - name: 'Detail', + name: 'AccountListTable', components: { ListTable, UpdateSecretInfo, diff --git a/src/components/AppAccountListTable/ShowSecretInfo.vue b/src/components/AppAccountListTable/ShowSecretInfo.vue new file mode 100644 index 000000000..a5a631bb3 --- /dev/null +++ b/src/components/AppAccountListTable/ShowSecretInfo.vue @@ -0,0 +1,81 @@ + + + + + diff --git a/src/components/AppAccountListTable/const.js b/src/components/AppAccountListTable/const.js new file mode 100644 index 000000000..710f81441 --- /dev/null +++ b/src/components/AppAccountListTable/const.js @@ -0,0 +1,31 @@ +import { ChoicesFormatter } from '@/components/TableFormatters' +import { toSafeLocalDateStr } from '@/utils/common' +import i18n from '@/i18n/i18n' + +export const connectivityMeta = { + label: i18n.t('assets.Reachable'), + formatter: ChoicesFormatter, + formatterArgs: { + iconChoices: { + ok: 'fa-check text-primary', + failed: 'fa-times text-danger', + unknown: 'fa-circle text-warning' + }, + hasTips: true, + getTips: ({ row, cellValue }) => { + const mapper = { + 'ok': i18n.tc('assets.Reachable'), + 'failed': i18n.tc('assets.Unreachable'), + 'unknown': i18n.tc('assets.Unknown') + } + let tips = mapper[cellValue] + if (row['date_verified']) { + const datetime = toSafeLocalDateStr(row['date_verified']) + tips += '
' + datetime + } + return tips + } + }, + width: '90px', + align: 'center' +} diff --git a/src/components/AppAccountListTable/index.vue b/src/components/AppAccountListTable/index.vue new file mode 100644 index 000000000..2aae78a94 --- /dev/null +++ b/src/components/AppAccountListTable/index.vue @@ -0,0 +1,167 @@ + + + + + diff --git a/src/i18n/langs/cn.json b/src/i18n/langs/cn.json index 65fb1065e..7a1fd23c4 100644 --- a/src/i18n/langs/cn.json +++ b/src/i18n/langs/cn.json @@ -29,6 +29,7 @@ }, "applications": { "": "", + "updateAccountMsg": "请更新系统用户的账号信息", "RemoteApp": "远程应用", "Database": "数据库", "Cloud": "云", diff --git a/src/i18n/langs/en.json b/src/i18n/langs/en.json index fa1060caa..d2492ae3f 100644 --- a/src/i18n/langs/en.json +++ b/src/i18n/langs/en.json @@ -28,6 +28,7 @@ }, "applications": { "": "", + "updateAccountMsg": "Please update system user account info", "RemoteApp": "Remote app", "Database": "Database", "Cloud": "Cloud", diff --git a/src/router/applications.js b/src/router/applications.js index d5e88139a..45ea58d36 100644 --- a/src/router/applications.js +++ b/src/router/applications.js @@ -38,57 +38,73 @@ export default [ ] }, { - path: 'database-apps', + path: 'databases', name: 'DatabaseAppList', - component: () => import('@/views/applications/DatabaseApp/DatabaseAppList'), - meta: { title: i18n.t('route.DatabaseApp') } + component: empty, + meta: { title: i18n.t('route.DatabaseApp') }, + children: [ + { + path: '', + name: 'DatabaseAppList', + component: () => import('@/views/applications/DatabaseApp/DatabaseAppList'), + meta: { title: i18n.t('route.DatabaseApp') } + }, + { + path: 'create', + name: 'DatabaseAppCreate', + component: () => import('@/views/applications/DatabaseApp/DatabaseAppCreateUpdate'), + meta: { title: i18n.t('route.DatabaseAppCreate'), activeMenu: '/applications/databases', action: 'create' }, + hidden: true + }, + { + path: ':id/update', + name: 'DatabaseAppUpdate', + component: () => import('@/views/applications/DatabaseApp/DatabaseAppCreateUpdate'), + meta: { title: i18n.t('route.DatabaseAppUpdate'), activeMenu: '/applications/databases', action: 'update' }, + hidden: true + }, + { + path: ':id', + name: 'DatabaseAppDetail', + component: () => import('@/views/applications/DatabaseApp/DatabaseAppDetail/index'), + meta: { title: i18n.t('route.DatabaseAppDetail'), activeMenu: '/applications/databases' }, + hidden: true + } + ] }, { - path: 'database-apps/create', - name: 'DatabaseAppCreate', - component: () => import('@/views/applications/DatabaseApp/DatabaseAppCreateUpdate'), - meta: { title: i18n.t('route.DatabaseAppCreate'), activeMenu: '/applications/database-apps', action: 'create' }, - hidden: true - }, - { - path: 'database-apps/:id/update', - name: 'DatabaseAppUpdate', - component: () => import('@/views/applications/DatabaseApp/DatabaseAppCreateUpdate'), - meta: { title: i18n.t('route.DatabaseAppUpdate'), activeMenu: '/applications/database-apps', action: 'update' }, - hidden: true - }, - { - path: 'database-apps/:id', - name: 'DatabaseAppDetail', - component: () => import('@/views/applications/DatabaseApp/DatabaseAppDetail/index'), - meta: { title: i18n.t('route.DatabaseAppDetail'), activeMenu: '/applications/database-apps' }, - hidden: true - }, - { - path: 'kubernetes-apps', + path: 'kubernetes', name: 'KubernetesAppList', - component: () => import('@/views/applications/KubernetesApp/KubernetesAppList'), - meta: { title: i18n.t('route.KubernetesApp') } - }, - { - path: 'kubernetes-apps/create', - name: 'KubernetesAppCreate', - component: () => import('@/views/applications/KubernetesApp/KubernetesAppCreateUpdate'), - meta: { title: i18n.t('route.KubernetesAppCreate'), activeMenu: '/applications/kubernetes-apps', action: 'create' }, - hidden: true - }, - { - path: 'kubernetes-apps/:id/update', - name: 'KubernetesAppUpdate', - component: () => import('@/views/applications/KubernetesApp/KubernetesAppCreateUpdate'), - meta: { title: i18n.t('route.KubernetesAppUpdate'), activeMenu: '/applications/kubernetes-apps', action: 'update' }, - hidden: true - }, - { - path: 'kubernetes-apps/:id', - name: 'KubernetesAppDetail', - component: () => import('@/views/applications/KubernetesApp/KubernetesAppDetail/index'), - meta: { title: i18n.t('route.KubernetesAppDetail'), activeMenu: '/applications/kubernetes-apps' }, - hidden: true + component: empty, + meta: { title: i18n.t('route.KubernetesApp') }, + children: [ + { + path: '', + name: 'KubernetesAppList', + component: () => import('@/views/applications/KubernetesApp/KubernetesAppList'), + meta: { title: i18n.t('route.KubernetesApp') } + }, + { + path: 'create', + name: 'KubernetesAppCreate', + component: () => import('@/views/applications/KubernetesApp/KubernetesAppCreateUpdate'), + meta: { title: i18n.t('route.KubernetesAppCreate'), activeMenu: '/applications/kubernetes', action: 'create' }, + hidden: true + }, + { + path: ':id/update', + name: 'KubernetesAppUpdate', + component: () => import('@/views/applications/KubernetesApp/KubernetesAppCreateUpdate'), + meta: { title: i18n.t('route.KubernetesAppUpdate'), activeMenu: '/applications/kubernetes', action: 'update' }, + hidden: true + }, + { + path: ':id', + name: 'KubernetesAppDetail', + component: () => import('@/views/applications/KubernetesApp/KubernetesAppDetail/index'), + meta: { title: i18n.t('route.KubernetesAppDetail'), activeMenu: '/applications/kubernetes' }, + hidden: true + } + ] } ] diff --git a/src/views/accounts/ApplicationAccount/ApplicationAccountList.vue b/src/views/accounts/ApplicationAccount/ApplicationAccountList.vue index b3ba722a9..ca2340f1a 100644 --- a/src/views/accounts/ApplicationAccount/ApplicationAccountList.vue +++ b/src/views/accounts/ApplicationAccount/ApplicationAccountList.vue @@ -1,20 +1,20 @@ -