lg_frontend/pages/manager/role.vue

106 lines
2.2 KiB
Vue
Raw Permalink Normal View History

2024-06-24 16:23:39 +00:00
<template>
<div>
<Curd
2024-06-26 00:19:02 +00:00
:columns="columns"
:api-conf="apiConf"
:form-items="formItems"
2024-06-24 16:23:39 +00:00
/>
</div>
</template>
<script>
import base from "~/templates/base";
import Curd from "../../components/smallCommon/Curd.vue";
2024-06-26 00:19:02 +00:00
2024-06-24 16:23:39 +00:00
export default {
name: "role",
extends: base,
components: {
Curd
},
2024-06-26 00:19:02 +00:00
data() {
2024-06-24 16:23:39 +00:00
return {
2024-06-26 00:19:02 +00:00
menus: [],
2024-06-24 16:23:39 +00:00
columns: [
{
dataIndex: 'roleName',
key: 'roleName',
title: '角色名'
}
],
2024-06-26 00:19:02 +00:00
apiConf: {
listApi: {api: '/api/Role/all', method: 'get', noPage: true},
deleteApi: {api: '/api/Role/remove', method: 'delete', paramsType: 'Array'},
editApi: {api: '/api/Role/update', method: 'put', updateKey: 'roleId'},
detailApi: {
api: '/api/Role/get',
method: 'get',
detailHandler({role, menus}) {
return {
roleName: role.roleName,
roleDescription: role.roleDescription,
menuIds: menus.map(item => item.menuId),
id: role.id
}
}
},
addApi: {api: '/api/Role/add', method: 'post',}
}
}
},
computed: {
formItems() {
const self = this
return [
2024-06-24 16:23:39 +00:00
{
type: 'input',
key: 'roleName',
label: '角色名',
isSearch: true,
placeholder: '请输入角色名',
2024-06-26 00:19:02 +00:00
rules: [
{required: true, message: '请输入角色名'}
]
2024-06-24 16:23:39 +00:00
},
{
2024-06-26 00:19:02 +00:00
type: 'input',
2024-06-24 16:23:39 +00:00
key: 'roleDescription',
2024-06-26 00:19:02 +00:00
label: '角色描述'
},
{
type: 'treeSelect',
key: 'menuIds',
label: '菜单',
placeholder: '',
children: self.menus,
props: {
treeCheckable: true,
replaceFields: {
title: 'name',
value: 'id',
key: 'id',
children: 'children'
}
}
2024-06-24 16:23:39 +00:00
}
2024-06-26 00:19:02 +00:00
]
}
},
created() {
this.getMenus()
},
methods: {
getMenus() {
this.$get('/api/Menu/list').then(({data}) => {
this.menus = data
})
2024-06-24 16:23:39 +00:00
}
}
}
</script>
<style scoped lang="less">
</style>