diff --git a/src/components/AccountListTable/index.vue b/src/components/AccountListTable/index.vue index ac4a028ee..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, @@ -151,6 +151,9 @@ export default { url: this.exportUrl, mfaVerifyRequired: true }, + searchConfig: { + exclude: ['systemuser', 'asset'] + }, hasSearch: true } } 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/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/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/styles/ztree.css b/src/styles/ztree.css index 7c432bbfd..50bb26aad 100644 --- a/src/styles/ztree.css +++ b/src/styles/ztree.css @@ -323,6 +323,31 @@ website: http://code.google.com/p/jquerytree/ display: inline-block; color: #676a6c; } +.ztree li span.button.chrome_ico_docu::before { + content: "\f268"; + font-family: FontAwesome; + padding-top: 10px; + padding-left: 2px; + display: inline-block; + color: #676a6c; +} +.ztree li span.button.database_ico_docu::before { + content: "\f1c0"; + font-family: FontAwesome; + padding-top: 10px; + padding-left: 2px; + display: inline-block; + color: #676a6c; +} +.ztree li span.button.cloud_ico_docu::before { + content: "\f0c2"; + font-family: FontAwesome; + padding-top: 10px; + padding-left: 2px; + display: inline-block; + color: #676a6c; +} + .ztree li span.button.windows_ico_docu::before { content: "\f17a"; font-family: FontAwesome; diff --git a/src/views/accounts/ApplicationAccount/ApplicationAccountList.vue b/src/views/accounts/ApplicationAccount/ApplicationAccountList.vue index d7668f557..ca2340f1a 100644 --- a/src/views/accounts/ApplicationAccount/ApplicationAccountList.vue +++ b/src/views/accounts/ApplicationAccount/ApplicationAccountList.vue @@ -1,401 +1,108 @@ 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 @@ - diff --git a/src/views/xpack/Vault/VaultList.vue b/src/views/xpack/Vault/VaultList.vue index 37b1bfbaa..71dbb73d0 100644 --- a/src/views/xpack/Vault/VaultList.vue +++ b/src/views/xpack/Vault/VaultList.vue @@ -51,26 +51,6 @@ export default { hasCreate: true, hasClone: false, url: '/api/v1/assets/accounts/' - // handleImport: function({ selectedRows }) { - // this.selectedRows = selectedRows - // this.dialogStatus = 'import' - // if (!this.needMFAVerify) { - // this.showMFADialog = false - // this.showImportDialog = true - // } else { - // this.showMFADialog = true - // } - // }.bind(this), - // handleExport: function({ selectedRows }) { - // this.selectedRows = selectedRows - // this.dialogStatus = 'export' - // if (!this.needMFAVerify) { - // this.showMFADialog = false - // this.showExportDialog = true - // } else { - // this.showMFADialog = true - // } - // }.bind(this) }, treeSetting: { showMenu: false,