| | |
| | | |
| | | /** 自定义表单规则校验 */ |
| | | export const formRules = reactive(<FormRules>{ |
| | | name: [{ required: true, message: "部门名称为必填项", trigger: "blur" }], |
| | | phone: [ |
| | | // 项目编号(必填) |
| | | projectCode: [ |
| | | { required: true, message: "请输入项目编号", trigger: "blur" }, |
| | | { max: 50, message: "项目编号长度不能超过50个字符", trigger: "blur" } |
| | | ], |
| | | // 项目名称(必填) |
| | | projectName: [ |
| | | { required: true, message: "请输入项目名称", trigger: "blur" }, |
| | | { max: 200, message: "项目名称长度不能超过200个字符", trigger: "blur" } |
| | | ], |
| | | // 行业品目(可选,但选择时需校验) |
| | | hangyepinmu: [ |
| | | { required: true, message: "请选择行业品目", trigger: "blur" }, |
| | | { type: "string", message: "行业品目格式不正确", trigger: "change" } |
| | | ], |
| | | // 采购方式(可选,但选择时需校验) |
| | | caigoufangshi: [ |
| | | { required: true, message: "请选择采购方式", trigger: "blur" }, |
| | | { type: "string", message: "采购方式格式不正确", trigger: "change" } |
| | | ], |
| | | // 采购预算(可选,需为数字) |
| | | caigouyusuan: [ |
| | | { required: true, message: "请输入采购预算", trigger: "blur" }, |
| | | { type: "number", message: "采购预算必须为数字", trigger: "blur" }, |
| | | { min: 0, message: "采购预算不能为负数", trigger: "blur" } |
| | | ], |
| | | // 定标规则(可选) |
| | | dingbiaoguize: [ |
| | | { required: true, message: "请选择定标规则", trigger: "blur" }, |
| | | { type: "string", message: "定标规则格式不正确", trigger: "change" } |
| | | ], |
| | | // 报名费(可选,需为数字) |
| | | baomingfei: [ |
| | | { required: true, message: "请输入报名费", trigger: "blur" }, |
| | | { type: "number", message: "报名费必须为数字", trigger: "blur" }, |
| | | { min: 0, message: "报名费不能为负数", trigger: "blur" } |
| | | ], |
| | | // 投标保证金(可选,需为数字) |
| | | toubiaobaozhengjin: [ |
| | | { required: true, message: "请输入投标保证金费", trigger: "blur" }, |
| | | { type: "number", message: "投标保证金必须为数字", trigger: "blur" }, |
| | | { min: 0, message: "投标保证金不能为负数", trigger: "blur" } |
| | | ], |
| | | // 联合体投标(可选,需为布尔值) |
| | | lianhetitoubiao: [ |
| | | { required: true, message: "请选择联合体投标", trigger: "blur" } |
| | | // { type: "boolean", message: "联合体投标必须为布尔值", trigger: "change" } |
| | | ], |
| | | // 开标方式(可选) |
| | | kaibiaofangshi: [ |
| | | { required: true, message: "请选择开标方式", trigger: "blur" } |
| | | // { type: "string", message: "开标方式格式不正确", trigger: "change" } |
| | | ], |
| | | // 是否分包(可选,需为布尔值) |
| | | shifoufenbao: [ |
| | | { required: true } |
| | | // { type: "boolean", message: "是否分包必须为布尔值", trigger: "change" } |
| | | ], |
| | | // 是否推送宣传(可选,需为布尔值) |
| | | shifoutuisongxuanchuan: [ |
| | | { required: true } |
| | | // { type: "boolean", message: "是否推送宣传必须为布尔值", trigger: "change" } |
| | | ], |
| | | // 采购人名称(可选) |
| | | caigourenmingcheng: [ |
| | | { required: true, message: "请输入采购人名称", trigger: "blur" }, |
| | | { max: 100, message: "采购人名称长度不能超过100个字符", trigger: "blur" } |
| | | ], |
| | | // 行政区域(可选,需为数组) |
| | | xingzhengquyu: [ |
| | | { required: true, message: "请选择行政区域", trigger: "blur" }, |
| | | { type: "array", message: "行政区域必须为数组格式", trigger: "change" } |
| | | ], |
| | | // 行政区域名称(可选) |
| | | xingzhengquyuName: [ |
| | | { required: false }, |
| | | { max: 100, message: "行政区域名称长度不能超过100个字符", trigger: "blur" } |
| | | ], |
| | | // 机构代码(可选,验证格式) |
| | | jigoudaima: [ |
| | | { required: true, message: "请输入机构代码", trigger: "blur" }, |
| | | { |
| | | pattern: /^[A-Z0-9]{8}-[A-Z0-9]{1}$/, |
| | | message: "机构代码格式不正确", |
| | | trigger: "blur" |
| | | } |
| | | ], |
| | | // 代码类型(可选) |
| | | daimaleixing: [ |
| | | { required: true, message: "请选择代码类型", trigger: "blur" }, |
| | | { type: "string", message: "代码类型格式不正确", trigger: "change" } |
| | | ], |
| | | // 联系人(可选) |
| | | lianxiren: [ |
| | | { required: true, message: "请输入联系人", trigger: "blur" }, |
| | | { max: 50, message: "联系人姓名长度不能超过50个字符", trigger: "blur" } |
| | | ], |
| | | // 联系电话(可选,验证手机号格式) |
| | | lianxidianhua: [ |
| | | { required: true, message: "请输入联系人电话", trigger: "blur" }, |
| | | { |
| | | pattern: /^1[3-9]\d{9}$/, |
| | | message: "请输入正确的手机号码", |
| | | trigger: "blur" |
| | | } |
| | | ], |
| | | // 通信地址(可选) |
| | | tongxindizhi: [ |
| | | { required: true, message: "请输入通信地址", trigger: "blur" }, |
| | | { max: 200, message: "通信地址长度不能超过200个字符", trigger: "blur" } |
| | | ], |
| | | // 电子邮件(可选,验证邮箱格式) |
| | | dianziyoujian: [ |
| | | { required: true, message: "请输入电子邮件", trigger: "blur" }, |
| | | { type: "email", message: "请输入正确的邮箱地址", trigger: "blur" } |
| | | ], |
| | | // 项目经办人(可选) |
| | | xiangmujingbanren: [ |
| | | { required: true, message: "请输入项目经办人", trigger: "blur" }, |
| | | { max: 50, message: "项目经办人姓名长度不能超过50个字符", trigger: "blur" } |
| | | ], |
| | | // 职务(可选) |
| | | zhiwu: [ |
| | | { required: true, message: "请输入职务", trigger: "blur" }, |
| | | { max: 50, message: "职务名称长度不能超过50个字符", trigger: "blur" } |
| | | ], |
| | | // 经办人电话(可选,验证手机号格式) |
| | | jingbanrendianhua: [ |
| | | { required: true, message: "请输入经办人电话", trigger: "blur" }, |
| | | { |
| | | pattern: /^1[3-9]\d{9}$/, |
| | | message: "请输入正确的手机号码", |
| | | trigger: "blur" |
| | | } |
| | | ], |
| | | // 代理机构名称(可选) |
| | | dailijigoumingcheng: [ |
| | | { required: true, message: "请输入代理机构名称", trigger: "blur" }, |
| | | { max: 100, message: "代理机构名称长度不能超过100个字符", trigger: "blur" } |
| | | ], |
| | | // 代理机构联系人(可选) |
| | | dailiLianxiren: [ |
| | | { required: true, message: "请输入联系人", trigger: "blur" }, |
| | | { |
| | | max: 50, |
| | | message: "联系人姓名长度不能超过50个字符", |
| | | trigger: "blur" |
| | | } |
| | | ], |
| | | // 代理机构联系电话(可选,验证手机号格式) |
| | | dailiLianxidianhua: [ |
| | | { required: true, message: "请输入联系电话", trigger: "blur" }, |
| | | { |
| | | pattern: /^1[3-9]\d{9}$/, |
| | | message: "请输入正确的手机号码", |
| | | trigger: "blur" |
| | | } |
| | | ], |
| | | // 代理机构电子邮件(可选,验证邮箱格式) |
| | | dailiDianziyoujian: [ |
| | | { required: true, message: "请输入电子邮件", trigger: "blur" }, |
| | | { type: "email", message: "请输入正确的邮箱地址", trigger: "blur" }, |
| | | { |
| | | validator: (rule, value, callback) => { |
| | | if (value === "") { |
| | | callback(); |
| | | } else if (!isEmail(value)) { |
| | | callback(new Error("请输入正确的邮箱格式")); |
| | | } else { |
| | | callback(); |
| | | } |
| | | }, |
| | | trigger: "blur" |
| | | } |
| | | ], |
| | | // 代理机构通信地址(可选) |
| | | dailiTongxindizhi: [ |
| | | { required: true, message: "请输入通信地址", trigger: "blur" }, |
| | | { |
| | | max: 200, |
| | | message: "通信地址长度不能超过200个字符", |
| | | trigger: "blur" |
| | | } |
| | | ], |
| | | // 代理机构项目经理(可选) |
| | | dailiXiangmujingli: [ |
| | | { required: true, message: "请输入项目经理", trigger: "blur" }, |
| | | { |
| | | max: 50, |
| | | message: "项目经理姓名长度不能超过50个字符", |
| | | trigger: "blur" |
| | | } |
| | | ], |
| | | // 代理机构项目经理联系电话(可选,验证手机号格式) |
| | | dailijingliLianxidianhua: [ |
| | | { required: true, message: "请输入联系电话", trigger: "blur" }, |
| | | { |
| | | pattern: /^1[3-9]\d{9}$/, |
| | | message: "请输入正确的手机号码", |
| | | trigger: "blur" |
| | | }, |
| | | { |
| | | validator: (rule, value, callback) => { |
| | | if (value === "") { |
| | |
| | | }, |
| | | trigger: "blur" |
| | | // trigger: "click" // 如果想在点击确定按钮时触发这个校验,trigger 设置成 click 即可 |
| | | } |
| | | ], |
| | | email: [ |
| | | { |
| | | validator: (rule, value, callback) => { |
| | | if (value === "") { |
| | | callback(); |
| | | } else if (!isEmail(value)) { |
| | | callback(new Error("请输入正确的邮箱格式")); |
| | | } else { |
| | | callback(); |
| | | } |
| | | }, |
| | | trigger: "blur" |
| | | } |
| | | ] |
| | | }); |