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 @@