foreign-admin-ui/src/views/system/menuManagement/rules.ts

37 lines
2.0 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import type { FormRules } from 'element-plus'
export const rules = (menuForm: any, iconOptions: any[]): FormRules => {
return {
// 1. 菜单名称:必填 + 长度限制
name: [
{ required: true, message: '请输入菜单名称', trigger: 'blur' },
{ min: 2, max: 20, message: '菜单名称长度在 2 到 20 个字符之间', trigger: 'blur' }
],
// 2. 父级菜单必填默认0无需手动填
parentName: [{ required: true, message: '请选择父级菜单', trigger: 'change' }
],
// 3. 路由路径:必填 + 格式校验(以/开头,仅包含字母/数字/下划线/斜杠)
path: [
{ required: true, message: '请输入路由路径', trigger: 'blur' },
{ pattern: /^\/[a-zA-Z0-9_\/]+$/, message: '路由路径必须以/开头,仅包含字母、数字、下划线和斜杠', trigger: 'blur' }
],
// 4. 后端路由:必填 + 格式校验(以/开头,仅包含字母/数字/下划线/斜杠)
api: [
{ required: true, pattern: /^\/[a-zA-Z0-9_\/]+$/, message: '后端路由必须以/开头,仅包含字母、数字、下划线和斜杠', trigger: 'blur' }
],
// 5. 图标名称:可选,但填了就必须是指定范围(匹配你提供的图标列表)
icon: [
{required: true, message: '请选择图标名称', trigger: 'blur'}
],
// 6. 排序:必填 + 数字 + 最小值0
sort: [
{ required: true, message: '请输入排序值', trigger: 'blur' },
{ type: 'number', min: 0, message: '排序值必须是大于等于0的数字', trigger: 'blur' }
],
// 7. 菜单类型必填单选框默认1无需手动选
type: [
{ required: true, message: '请选择菜单类型', trigger: 'change' },
{ type: 'number', enum: [1, 2], message: '菜单类型只能是1菜单或2按钮', trigger: 'change' }
]
}
}