refactor: ♻️ 修改菜单时,禁止顶级菜单选用自己
修改菜单时,禁止顶级菜单选用自己
This commit is contained in:
@@ -34,7 +34,6 @@
|
||||
:data="menuTableData"
|
||||
highlight-current-row
|
||||
row-key="id"
|
||||
:expand-row-keys="['1']"
|
||||
:tree-props="{
|
||||
children: 'children',
|
||||
hasChildren: 'hasChildren',
|
||||
@@ -369,13 +368,13 @@ const initialMenuFormData = ref<MenuForm>({
|
||||
const formData = ref({ ...initialMenuFormData.value });
|
||||
// 表单验证规则
|
||||
const rules = reactive({
|
||||
parentId: [{ required: true, message: "请选择顶级菜单", trigger: "blur" }],
|
||||
parentId: [{ required: true, message: "请选择父级菜单", trigger: "blur" }],
|
||||
name: [{ required: true, message: "请输入菜单名称", trigger: "blur" }],
|
||||
type: [{ required: true, message: "请选择菜单类型", trigger: "blur" }],
|
||||
routeName: [{ required: true, message: "请输入路由名称", trigger: "blur" }],
|
||||
routePath: [{ required: true, message: "请输入路由路径", trigger: "blur" }],
|
||||
component: [{ required: true, message: "请输入组件路径", trigger: "blur" }],
|
||||
visible: [{ required: true, message: "请输入路由路径", trigger: "blur" }],
|
||||
visible: [{ required: true, message: "请选择显示状态", trigger: "change" }],
|
||||
});
|
||||
|
||||
// 选择表格的行菜单ID
|
||||
@@ -425,7 +424,7 @@ function handleOpenDialog(parentId?: string, menuId?: string) {
|
||||
});
|
||||
} else {
|
||||
dialog.title = "新增菜单";
|
||||
formData.value.parentId = parentId;
|
||||
formData.value.parentId = parentId?.toString();
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -455,6 +454,11 @@ function handleSubmit() {
|
||||
if (isValid) {
|
||||
const menuId = formData.value.id;
|
||||
if (menuId) {
|
||||
//修改时父级菜单不能为当前菜单
|
||||
if (formData.value.parentId == menuId) {
|
||||
ElMessage.error("父级菜单不能为当前菜单");
|
||||
return;
|
||||
}
|
||||
MenuAPI.update(menuId, formData.value).then(() => {
|
||||
ElMessage.success("修改成功");
|
||||
handleCloseDialog();
|
||||
|
||||
Reference in New Issue
Block a user