import { formatString } from "@/core/utils/utils" export default function (key: string, arr?: Array) { let rule = undefined if (arr) { let ruleFormat = rulesFormat[key] if (ruleFormat) { ruleFormat = formatString(ruleFormat, ...arr) //console.log("===>", ruleFormat) rule = JSON.parse(ruleFormat) } } //rulesFormat里没有找到再从rules找一下 if (!rule) { rule = rules[key] } return rule } export const RULE_KEYS = { REQUIRED: "VB_REQUIRED", NUMBER: "VB_NUMBER", INT: "VB_INT", FLOAT: "VB_FLOAT", HEX: "VB_HEX", URL: "VB_URL", EMAIL: "VB_EMAIL", DATE: "VB_DATE", DATETIME: "VB_DATETIME", REQUIRED_NUMBER: "VB_REQUIRED_NUMBER", REQUIRED_INT: "VB_REQUIRED_INT", REQUIRED_FLOAT: "VB_REQUIRED_FLOAT", REQUIRED_HEX: "VB_REQUIRED_HEX", REQUIRED_URL: "VB_REQUIRED_URL", REQUIRED_EMAIL: "VB_REQUIRED_EMAIL", REQUIRED_DATE: "VB_REQUIRED_DATE", REQUIRED_DATETIME: "VB_REQUIRED_DATETIME", MIN: "VB_MIN", MAX: "VB_MAX", MIN_MAX: "VB_MIN_MAX", N_MIN: "VB_N_MIN", N_MAX: "VB_N_MAX", N_MIN_MAX: "VB_N_MIN_MAX", PATTERN: "VB_PATTERN", } export const rules = { VB_REQUIRED: { required: true, message: "必填", trigger: "blur" }, VB_NUMBER: { type: "number", message: "请填写数字", trigger: ["blur"] }, VB_INT: { type: "integer", message: "请填写整数", trigger: ["blur"] }, VB_FLOAT: { type: "float", message: "请填写浮点数", trigger: ["blur"] }, VB_HEX: { type: "hex", message: "请填写16进制数字", trigger: ["blur"] }, VB_URL: { type: "url", message: "请填写正确的URL地址", trigger: ["blur"] }, VB_EMAIL: { type: "email", message: "请填写正确的电子邮箱", trigger: ["blur"] }, VB_DATE: { type: "date", message: "请选择日期", trigger: ["blur"] }, VB_DATETIME: { type: "date", message: "请选择时间", trigger: ["blur"] }, VB_REQUIRED_NUMBER: { type: "number", required: true, message: "请填写数字", trigger: ["blur"] }, VB_REQUIRED_INT: { type: "integer", required: true, message: "请填写整数", trigger: ["blur"] }, VB_REQUIRED_FLOAT: { type: "float", required: true, message: "请填写浮点数", trigger: ["blur"] }, VB_REQUIRED_HEX: { type: "hex", required: true, message: "请填写16进制数字", trigger: ["blur"] }, VB_REQUIRED_URL: [ { type: "string", required: true, message: "请填写URL地址", trigger: "blur" }, { type: "url", message: "请填写正确的URL地址", trigger: ["blur"] }, ], VB_REQUIRED_EMAIL: [ { type: "string", required: true, message: "请填写电子邮箱", trigger: "blur" }, { type: "email", message: "请填写正确的电子邮箱", trigger: ["blur"] }, ], VB_REQUIRED_DATE: { type: "date", required: true, message: "请选择日期", trigger: ["blur"] }, VB_REQUIRED_DATETIME: { type: "date", required: true, message: "请选择时间", trigger: ["blur"] }, } export const rulesFormat = { VB_REQUIRED: '{ "required": true, "message": "请填写{0}", "trigger": ["blur"] }', VB_MIN: '{"type": "string","min": {0}, "message": "至少{0}个字符", "trigger": ["blur"] }', VB_MAX: '{"type": "string","max": {0}, "message": "最多{0}个字符", "trigger": ["blur" ]}', VB_MIN_MAX: '{"type": "string","min": {0}, "max": {1}, "message": "长度在 {0} 到 {1} 个字符", "trigger": ["blur"]}', VB_N_MIN: '{"type": "number","min": {0}, "message": "最小{0}", "trigger": ["blur"] }', VB_N_MAX: '{"type": "number","max": {0}, "message": "最大{0}", "trigger": ["blur" ]}', VB_N_MIN_MAX: '{"type": "number","min": {0}, "max": {1}, "message": "请填写 {0} 到 {1} 的数字", "trigger": ["blur"]}', VB_PATTERN: '{"pattern": {0}, "message": "{1}", "trigger": ["blur"]}', }