Browse Source

2026-04-13

系统菜单设置页面在【添加】对话框中:
1、“上级菜单”移到最上面;
2、根据用户选的上级菜单的menuId作为parentId去查最大的menuId+1,赋值给目录编码;
3、“目录编码”不允许有其它字符,必须是纯数字组成;
master
fengyuan_yang 4 days ago
parent
commit
321b01f949
  1. 29
      src/views/modules/sys/menu-add-or-update.vue

29
src/views/modules/sys/menu-add-or-update.vue

@ -11,12 +11,6 @@
<el-radio v-for="(type, index) in dataForm.typeList" :label="index" :key="index">{{ type }}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="目录编号" prop="menuId">
<el-input :readonly="dataForm.id?true:false" style="width: 349px;" v-model="dataForm.menuId"></el-input>
</el-form-item>
<el-form-item label="目录名称" prop="name">
<el-input style="width: 349px;" v-model="dataForm.name"></el-input>
</el-form-item>
<el-form-item :label="buttons.parentName ||'上级菜单'" prop="parentName">
<el-popover
ref="menuListPopover"
@ -37,6 +31,12 @@
</el-popover>
<el-input style="width: 349px;" v-model="dataForm.parentName" v-popover:menuListPopover :readonly="true" class="menu-list__input"></el-input>
</el-form-item>
<el-form-item label="目录编号" prop="menuId">
<el-input :readonly="dataForm.id?true:false" style="width: 349px;" v-model="dataForm.menuId" oninput="value=value.replace(/[^\d]/g, '')"></el-input>
</el-form-item>
<el-form-item label="目录名称" prop="name">
<el-input style="width: 349px;" v-model="dataForm.name"></el-input>
</el-form-item>
<el-form-item v-if="dataForm.type === 1" :label="buttons.route || '菜单路由'" prop="url">
<el-input style="width: 349px;" v-model="dataForm.url" placeholder="菜单路由"></el-input>
</el-form-item>
@ -119,6 +119,10 @@
typeName:'名称'
},
dataRule: {
menuId: [
{ required: true, message: '目录编号不能为空', trigger: 'blur' },
{ pattern: /^\d+$/, message: '目录编号必须是纯数字', trigger: 'blur' }
],
name: [
{ required: true, message: '菜单名称不能为空', trigger: 'blur' }
],
@ -154,6 +158,7 @@
code:'编号'
},
menuList: [],
flatMenuList: [],
menuListTreeProps: {
label: 'name',
children: 'children'
@ -172,6 +177,7 @@
method: 'get',
params: this.$http.adornParams()
}).then(({data}) => {
this.flatMenuList = data.menuList || []
this.menuList = treeDataTranslate(data.menuList, 'menuId')
}).then(() => {
this.visible = true
@ -224,6 +230,17 @@
this.dataForm.parentId = data.menuId
this.dataForm.parentName = data.name
this.treeVisible = false
// menuIdparentIdmenuId+1
if (!this.dataForm.id) {
let children = this.flatMenuList.filter(item => item.parentId === data.menuId)
if (children.length > 0) {
let maxId = Math.max(...children.map(item => Number(item.menuId)))
this.dataForm.menuId = String(maxId + 1)
} else {
this.dataForm.menuId = String(data.menuId) + '01'
}
}
},
//
menuListTreeSetCurrentNode () {

Loading…
Cancel
Save