zhangwei
2025-08-05 b94b71d44d62802bb8093f64a202d0176fdade50
src/views/system/dept/utils/rule.ts
@@ -4,8 +4,207 @@
/** 自定义表单规则校验 */
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 === "") {
@@ -18,20 +217,6 @@
      },
      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"
    }
  ]
});