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