菜单角色修改

This commit is contained in:
ludj
2022-12-15 17:04:42 +08:00
parent c00558fce3
commit 88324f26fd
28 changed files with 964 additions and 65 deletions

View File

@@ -55,8 +55,8 @@
</el-input>
</el-popover>
</el-form-item>
<el-form-item v-show="form.type.toString() !== '2' && form.type.toString() !== '1'" label="外链菜单" prop="i_frame">
<el-radio-group v-model="form.i_frame" size="mini">
<el-form-item v-show="form.type.toString() !== '2' && form.type.toString() !== '1'" label="外链菜单" prop="iframe">
<el-radio-group v-model="form.iframe" size="mini">
<el-radio-button label="1">是</el-radio-button>
<el-radio-button label="0">否</el-radio-button>
</el-radio-group>
@@ -84,7 +84,7 @@
<el-input v-model="form.title" placeholder="按钮名称" style="width: 190px;" />
</el-form-item>
<el-form-item v-show="form.type.toString() !== '1' " label="权限标识" prop="permission">
<el-input v-model="form.permission" :disabled="form.i_frame=='1'" placeholder="权限标识" style="width: 190px;" />
<el-input v-model="form.permission" :disabled="form.iframe=='1'" placeholder="权限标识" style="width: 190px;" />
</el-form-item>
<el-form-item v-if="form.type.toString() !== '1' && form.type.toString() !== '2'" label="路由地址" prop="path">
<el-input v-model="form.path" placeholder="路由地址" style="width: 190px;" />
@@ -98,10 +98,10 @@
style="width: 190px;"
/>
</el-form-item>
<el-form-item v-show="!form.i_frame && form.type.toString() === '3' " label="组件名称" prop="componentName">
<el-form-item v-show="!form.iframe && form.type.toString() === '3' " label="组件名称" prop="componentName">
<el-input v-model="form.componentName" style="width: 190px;" placeholder="匹配组件内Name字段" />
</el-form-item>
<el-form-item v-show="!form.i_frame && (form.type.toString() === '2' ||form.type.toString() === '3' ) " label="组件路径" prop="component">
<el-form-item v-show="!form.iframe && (form.type.toString() === '2' ||form.type.toString() === '3' ) " label="组件路径" prop="component">
<el-input v-model="form.component" style="width: 190px;" placeholder="组件路径" />
</el-form-item>
<el-form-item label="上级类目" prop="pid">
@@ -130,7 +130,7 @@
:auto-load-root-options="false"
:data="crud.data"
:tree-props="{children: 'children', hasChildren: 'hasChildren'}"
row-key="menu_id"
row-key="menuId"
@select="crud.selectChange"
@select-all="crud.selectAllChange"
@@ -151,7 +151,7 @@
</el-table-column>
<el-table-column prop="permission" label="权限标识" :min-width="flexWidth('permission',crud.data,'权限标识')" />
<el-table-column prop="component" label="组件路径" min-width="120" />
<el-table-column prop="i_frame" label="外链" :formatter="crud.formatIsOrNot" :min-width="flexWidth('i_frame',crud.data,'外链')" />
<el-table-column prop="iframe" label="外链" :formatter="crud.formatIsOrNot" :min-width="flexWidth('iframe',crud.data,'外链')" />
<el-table-column prop="cache" label="缓存" :formatter="crud.formatIsOrNot" :min-width="flexWidth('cache',crud.data,'缓存')" />
<el-table-column prop="hidden" label="可见" :formatter="crud.formatIsOrNot" :min-width="flexWidth('hidden',crud.data,'可见')" />
@@ -189,7 +189,7 @@ import DateRangePicker from '@/components/DateRangePicker'
// crud交由presenter持有
const defaultForm = {
menu_id: null,
menuId: null,
title: null,
menuSort: 999,
path: null,
@@ -197,7 +197,7 @@ const defaultForm = {
category: null,
component: null,
componentName: null,
i_frame: 0,
iframe: 0,
roles: [],
pid: 0,
icon: null,
@@ -210,7 +210,7 @@ export default {
name: 'Menu',
components: { Treeselect, IconSelect, crudOperation, rrOperation, udOperation, DateRangePicker },
cruds() {
return CRUD({ title: '菜单', idField: 'menu_id', url: 'api/menus', crudMethod: { ...crudMenu }})
return CRUD({ title: '菜单', idField: 'menuId', url: 'api/sysMenu', crudMethod: { ...crudMenu }})
},
mixins: [presenter(), header(), form(defaultForm), crud()],
data() {
@@ -223,7 +223,7 @@ export default {
},
normalizer(node) {
return {
id: node.menu_id,
id: node.menuId,
label: node.title,
children: node.children
}
@@ -242,37 +242,37 @@ export default {
// 新增与编辑前做的操作
[CRUD.HOOK.afterToCU](crud, form) {
this.menus = []
if (form.menu_id) { // 修改
if (form.menuId) { // 修改
if (!form.pid) { // 一级菜单一级的父级菜单的pid为0.
form.pid = 0
}
this.getSupDepts(form.menu_id)
this.getSupDepts(form.menuId)
} else { // 新增
this.menus.push({ menu_id: 0, title: '顶级类目', children: null })
this.menus.push({ menuId: 0, title: '顶级类目', children: null })
}
},
getMenus(tree, treeNode, resolve) {
const params = { pid: tree.menu_id }
const params = { pid: tree.menuId }
setTimeout(() => {
crudMenu.getMenus(params).then(res => {
resolve(res.content)
})
}, 100)
},
getSupDepts(menu_id) {
crudMenu.getMenuSuperior(menu_id).then(res => {
getSupDepts(menuId) {
crudMenu.getMenuSuperior(menuId).then(res => {
const children = res.map(function(obj) {
if (!obj.leaf && !obj.children) {
obj.children = null
}
return obj
})
this.menus = [{ menu_id: 0, title: '顶级类目', children: children }]
this.menus = [{ menuId: 0, title: '顶级类目', children: children }]
})
},
loadMenus({ action, parentNode, callback }) {
if (action === LOAD_CHILDREN_OPTIONS) {
crudMenu.getMenusTree(parentNode.menu_id).then(res => {
crudMenu.getMenusTree(parentNode.menuId).then(res => {
parentNode.children = res.map(function(obj) {
if (!obj.leaf) {
obj.children = null