[Update] 修改授权列表组件页面

This commit is contained in:
jym503558564
2020-04-08 15:58:32 +08:00
parent 6ca064109b
commit df0ce46290
6 changed files with 62 additions and 137 deletions

View File

@@ -0,0 +1,23 @@
<template>
<span>{{ getCellValueLength }}</span>
</template>
<script>
import BaseFormatter from './base'
export default {
name: 'LengthFormatter',
extends: BaseFormatter,
computed: {
getCellValueLength() {
if (this.cellValue instanceof Array) {
return this.cellValue.length
}
return this.cellValue
}
}
}
</script>
<style scoped>
</style>

View File

@@ -19,7 +19,7 @@ export default {
default: () => ({}) default: () => ({})
}, },
cellValue: { cellValue: {
type: [String, Boolean, Number, Object], type: [String, Boolean, Number, Object, Array],
default: null default: null
}, },
tableData: { tableData: {

View File

@@ -2,4 +2,5 @@ export { default as DetailFormatter } from './DetailFormatter'
export { default as DisplayFormatter } from './DisplayFormatter' export { default as DisplayFormatter } from './DisplayFormatter'
export { default as BooleanFormatter } from './ChoicesFormatter' export { default as BooleanFormatter } from './ChoicesFormatter'
export { default as ActionsFormatter } from './ActionsFormatter' export { default as ActionsFormatter } from './ActionsFormatter'
export { default as LengthFormatter } from './LengthFormatter'

View File

@@ -4,7 +4,7 @@
<script> <script>
import { GenericListPage } from '@/layout/components' import { GenericListPage } from '@/layout/components'
import { DetailFormatter, ActionsFormatter, BooleanFormatter } from '@/components/ListTable/formatters/index' import { LengthFormatter } from '@/components/ListTable/formatters/index'
export default { export default {
components: { components: {
@@ -14,59 +14,23 @@ export default {
return { return {
tableConfig: { tableConfig: {
url: '/api/v1/perms/asset-permissions/', url: '/api/v1/perms/asset-permissions/',
columns: [ columns: ['name', 'users', 'user_groups', 'assets', 'nodes', 'system_users', 'is_active', 'actions'],
{ columnsMeta: {
prop: 'name', users: {
label: this.$t('common.name'), formatter: LengthFormatter
formatter: DetailFormatter,
sortable: true,
route: 'AssetPermissionDetail'
}, },
{ user_groups: {
prop: 'users.length', formatter: LengthFormatter
label: this.$t('perms.user')
}, },
{ assets: {
prop: 'user_groups.length', formatter: LengthFormatter
label: this.$t('perms.userGroup')
}, },
{ nodes: {
prop: 'assets.length', formatter: LengthFormatter
label: this.$t('perms.asset')
}, },
{ system_users: {
prop: 'nodes.length', formatter: LengthFormatter
label: this.$t('perms.node')
},
{
prop: 'system_users.length',
label: this.$t('perms.systemUser')
},
{
prop: 'is_active',
label: this.$t('perms.validity'),
formatter: BooleanFormatter,
align: 'center',
width: '80px'
},
{
prop: 'id',
label: this.$tc('Action'),
align: 'center',
formatter: ActionsFormatter,
width: '200px',
actions: {
performDelete: ({ row, col }) => {
const id = row.id
const url = `/api/v1/perms/asset-permissions/${id}/`
return this.$axios.delete(url)
}
}
} }
],
tableActions: {
hasEdit: true,
editRoute: '404'
} }
}, },
headerActions: { headerActions: {

View File

@@ -4,8 +4,7 @@
<script> <script>
import { GenericListPage } from '@/layout/components' import { GenericListPage } from '@/layout/components'
import { DetailFormatter, ActionsFormatter, BooleanFormatter } from '@/components/ListTable/formatters/index' import { LengthFormatter } from '@/components/ListTable/formatters/index'
export default { export default {
components: { components: {
GenericListPage GenericListPage
@@ -14,52 +13,21 @@ export default {
return { return {
tableConfig: { tableConfig: {
url: '/api/v1/perms/database-app-permissions/', url: '/api/v1/perms/database-app-permissions/',
columns: [ columns: ['name', 'users', 'user_groups', 'database_apps', 'system_users', 'is_valid', 'actions'],
{ columnsMeta: {
prop: 'name', users: {
label: this.$t('perms.name'), formatter: LengthFormatter
formatter: DetailFormatter,
sortable: true,
route: 'DatabaseAppPermissionDetail'
}, },
{ user_groups: {
prop: 'users.length', formatter: LengthFormatter
label: this.$t('perms.user')
}, },
{ database_apps: {
prop: 'user_groups.length', formatter: LengthFormatter
label: this.$t('perms.userGroup')
}, },
{ system_users: {
prop: 'database_apps.length', formatter: LengthFormatter
label: this.$t('perms.DatabaseApp')
},
{
prop: 'system_users.length',
label: this.$t('perms.systemUser')
},
{
prop: 'is_valid',
label: this.$t('perms.validity'),
formatter: BooleanFormatter,
align: 'center',
width: '80px'
},
{
prop: 'id',
label: this.$tc('Action'),
align: 'center',
formatter: ActionsFormatter,
width: '200px',
actions: {
performDelete: ({ row, col }) => {
const id = row.id
const url = `/api/v1/perms/database-app-permissions/${id}/`
return this.$axios.delete(url)
}
}
} }
] }
}, },
headerActions: { headerActions: {
hasBulkDelete: false, hasBulkDelete: false,

View File

@@ -4,7 +4,7 @@
<script> <script>
import { GenericListPage } from '@/layout/components' import { GenericListPage } from '@/layout/components'
import { DetailFormatter, ActionsFormatter, BooleanFormatter } from '@/components/ListTable/formatters/index' import { LengthFormatter } from '@/components/ListTable/formatters/index'
export default { export default {
components: { components: {
@@ -14,52 +14,21 @@ export default {
return { return {
tableConfig: { tableConfig: {
url: '/api/v1/perms/remote-app-permissions/', url: '/api/v1/perms/remote-app-permissions/',
columns: [ columns: ['name', 'users', 'user_groups', 'remote_apps', 'system_users', 'is_valid', 'actions'],
{ columnsMeta: {
prop: 'name', users: {
label: this.$t('perms.name'), formatter: LengthFormatter
formatter: DetailFormatter,
sortable: true,
route: 'RemoteAppPermissionDetail'
}, },
{ user_groups: {
prop: 'users.length', formatter: LengthFormatter
label: this.$t('perms.user')
}, },
{ remote_apps: {
prop: 'user_groups.length', formatter: LengthFormatter
label: this.$t('perms.userGroup')
}, },
{ system_users: {
prop: 'remote_apps.length', formatter: LengthFormatter
label: this.$t('perms.RemoteApp')
},
{
prop: 'system_users.length',
label: this.$t('perms.systemUser')
},
{
prop: 'is_valid',
label: this.$t('perms.validity'),
formatter: BooleanFormatter,
align: 'center',
width: '80px'
},
{
prop: 'id',
label: this.$tc('Action'),
align: 'center',
formatter: ActionsFormatter,
width: '200px',
actions: {
performDelete: ({ row, col }) => {
const id = row.id
const url = `/api/v1/perms/database-app-permissions/${id}/`
return this.$axios.delete(url)
}
}
} }
] }
}, },
headerActions: { headerActions: {
hasBulkDelete: false, hasBulkDelete: false,