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