You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

83 lines
3.2 KiB

3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
  1. export const addFormRule = {
  2. // 精网号:6-10位纯数字
  3. jwcode: [
  4. { required: true, message: '请输入精网号', trigger: 'blur' },
  5. { pattern: /^\d{6,10}$/, message: '请检查精网号格式', trigger: 'blur' }
  6. ],
  7. // 客户姓名:必填
  8. name: [
  9. { required: true, message: '请输入客户姓名', trigger: 'blur' }
  10. ],
  11. // 所属地区:必填
  12. market: [
  13. { required: true, message: '请选择所属地区', trigger: 'blur' }
  14. ],
  15. // 活动名称:必填 + 长度小于30
  16. activity: [
  17. { required: true, message: '请输入活动名称', trigger: 'blur' },
  18. ],
  19. // 产品名称:必填
  20. goodsName: [
  21. { required: true, message: '请选择产品名称', trigger: 'change' }
  22. ],
  23. // 产品数量:0-100纯数字
  24. goodNum: [
  25. { required: true, message: '请输入产品数量', trigger: 'blur' },
  26. ],
  27. // 付款币种:必填
  28. paymentCurrency: [
  29. { required: true, message: '请选择付款币种', trigger: 'change' }
  30. ],
  31. // 付款金额:小于8位纯数字 + 不为0
  32. paymentAmount: [
  33. { required: true, message: '请输入付款金额', trigger: 'blur' },
  34. {
  35. validator: (rule, value, callback) => {
  36. // 匹配非负数字(支持整数或最多2位小数)
  37. const reg = /^\d+(\.\d{1,2})?$/;
  38. if (!reg.test(value)) {
  39. callback(new Error('请输入有效的金额(最多2位小数)'));
  40. } else {
  41. const num = Number(value);
  42. if (num === 0) {
  43. callback(new Error('付款金额不能为0'));
  44. } else if (num > 9999999) { // 限制最大值为9999999(7位整数)
  45. callback(new Error('付款金额不能超过9999999'));
  46. } else {
  47. callback();
  48. }
  49. }
  50. },
  51. trigger: 'blur'
  52. }
  53. ],
  54. // 支付方式:必填
  55. payType: [
  56. { required: true, message: '请选择支付方式', trigger: 'change' }
  57. ],
  58. // 到账地区:必填
  59. receivedMarket: [
  60. { required: true, message: '请选择到账地区', trigger: 'change' }
  61. ],
  62. // 付款时间:必填
  63. payTime: [
  64. { required: true, message: '请选择付款时间', trigger: 'change' }
  65. ]
  66. };
  67. export const editFormRule = {
  68. // 到账金额:正数,整数部分最多6位,小数部分最多2位(支持纯小数如 0.1、0.99)
  69. receivedAmount: [
  70. {
  71. pattern: /^(0\.\d{1,2}|[1-9]\d{0,5}(\.\d{1,2})?)$/, // 修正:添加 / 包裹正则
  72. message: '请检查到账金额格式',
  73. trigger: 'blur'
  74. }
  75. ],
  76. // 手续费:正数,整数部分最多6位,小数部分最多2位(不支持纯0开头的小数如 0.1,需从1开始)
  77. handlingCharge: [
  78. {
  79. pattern: /^\d{1,6}(\.\d{1,2})?$/, // 注意:此正则允许 0 开头(如 0123 不符合整数规范)
  80. message: '整数部分最多6位,小数部分最多2位',
  81. trigger: 'blur'
  82. }
  83. ],
  84. };