- 校验规则改为 computed:仅根模块强制 path/customId,子模块两者皆可空 - 占位文案按 openingIsChild 切换,提示「作按钮权限时可留空」 - 提交前 path 做 trim,空值传 undefined(后端归一并放开 nullable)
This commit is contained in:
@@ -27,14 +27,14 @@
|
|||||||
<Input placeholder="请输入模块名称" v-model="form.name" />
|
<Input placeholder="请输入模块名称" v-model="form.name" />
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<FormItem label="模块路径:" prop="path">
|
<FormItem label="模块路径:" prop="path">
|
||||||
<Input placeholder="请输入模块路径" v-model="form.path" />
|
<Input :placeholder="openingIsChild ? '选填;作按钮权限时可留空' : '请输入模块路径'" v-model="form.path" />
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<FormItem label="模块图标:" prop="icon">
|
<FormItem label="模块图标:" prop="icon">
|
||||||
<Input placeholder="选填,YschIcons 图标名(如 notice-list);留空则不下发图标"
|
<Input placeholder="选填,YschIcons 图标名(如 notice-list);留空则不下发图标"
|
||||||
v-model="form.icon" clearable />
|
v-model="form.icon" clearable />
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<FormItem label="自定义ID:" prop="customId">
|
<FormItem label="自定义ID:" prop="customId">
|
||||||
<InputNumber :style="{ width: '100%' }" placeholder="请输入自定义ID" v-model="form.customId" />
|
<InputNumber :style="{ width: '100%' }" :placeholder="openingIsChild ? '选填;作按钮权限时可留空' : '请输入自定义ID'" v-model="form.customId" />
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<FormItem label="排序号:" prop="sortNo">
|
<FormItem label="排序号:" prop="sortNo">
|
||||||
<InputNumber :style="{ width: '100%' }" placeholder="请输入排序号" v-model="form.sortNo" />
|
<InputNumber :style="{ width: '100%' }" placeholder="请输入排序号" v-model="form.sortNo" />
|
||||||
@@ -153,13 +153,16 @@ const form = ref<{
|
|||||||
sortNo: null,
|
sortNo: null,
|
||||||
});
|
});
|
||||||
|
|
||||||
const ruleValidate = ref({
|
const openingIsChild = ref(false);
|
||||||
|
|
||||||
|
/* 子模块双定位:树节点(带路径/编码)或纯按钮权限(两者皆可空)→ 仅根模块必填 */
|
||||||
|
const ruleValidate = computed(() => ({
|
||||||
name: [{ required: true, message: "请输入模块名称", trigger: "blur" }],
|
name: [{ required: true, message: "请输入模块名称", trigger: "blur" }],
|
||||||
|
...(openingIsChild.value ? {} : {
|
||||||
path: [{ required: true, message: "请输入模块路径", trigger: "blur" }],
|
path: [{ required: true, message: "请输入模块路径", trigger: "blur" }],
|
||||||
customId: [{ required: true, type: "number", message: "请输入自定义ID", trigger: "change" }],
|
customId: [{ required: true, type: "number", message: "请输入自定义ID", trigger: "change" }],
|
||||||
});
|
}),
|
||||||
|
}));
|
||||||
const openingIsChild = ref(false);
|
|
||||||
const modalTitle = computed(() => {
|
const modalTitle = computed(() => {
|
||||||
if (currentId.value != null) return '编辑模块';
|
if (currentId.value != null) return '编辑模块';
|
||||||
return openingIsChild.value ? '新增子模块' : '新增模块';
|
return openingIsChild.value ? '新增子模块' : '新增模块';
|
||||||
@@ -258,7 +261,7 @@ async function onRawSave() {
|
|||||||
data: {
|
data: {
|
||||||
appId: appId.value,
|
appId: appId.value,
|
||||||
name: form.value.name,
|
name: form.value.name,
|
||||||
path: form.value.path,
|
path: form.value.path?.trim() || undefined,
|
||||||
icon: form.value.icon?.trim() || undefined,
|
icon: form.value.icon?.trim() || undefined,
|
||||||
customId: form.value.customId == null ? '' : String(form.value.customId),
|
customId: form.value.customId == null ? '' : String(form.value.customId),
|
||||||
parentId: form.value.parentId ?? undefined,
|
parentId: form.value.parentId ?? undefined,
|
||||||
@@ -272,8 +275,8 @@ async function onRawSave() {
|
|||||||
id: currentId.value,
|
id: currentId.value,
|
||||||
appId: appId.value,
|
appId: appId.value,
|
||||||
name: form.value.name,
|
name: form.value.name,
|
||||||
path: form.value.path,
|
path: form.value.path?.trim() || undefined,
|
||||||
// 后端 edit 逐字段整体赋值,字段缺省即置空 → 清空图标能生效
|
// 后端 edit 逐字段整体赋值,字段缺省即置空 → 清空图标/路径能生效
|
||||||
icon: form.value.icon?.trim() || undefined,
|
icon: form.value.icon?.trim() || undefined,
|
||||||
customId: form.value.customId == null ? '' : String(form.value.customId),
|
customId: form.value.customId == null ? '' : String(form.value.customId),
|
||||||
parentId: form.value.parentId ?? undefined,
|
parentId: form.value.parentId ?? undefined,
|
||||||
|
|||||||
Reference in New Issue
Block a user