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.
 
 
 
 

84 lines
3.2 KiB

export const addFormRule = {
// 精网号:6-10位纯数字
jwcode: [
{ required: true, message: '请输入精网号', trigger: 'blur' },
{ pattern: /^\d{6,10}$/, message: '请检查精网号格式', trigger: 'blur' }
],
// 客户姓名:必填
name: [
{ required: true, message: '请输入客户姓名', trigger: 'blur' }
],
// 所属地区:必填
market: [
{ required: true, message: '请选择所属地区', trigger: 'blur' }
],
// 活动名称:必填 + 长度小于30
activity: [
{ required: true, message: '请输入活动名称', trigger: 'blur' },
],
// 产品名称:必填
goodsName: [
{ required: true, message: '请选择产品名称', trigger: 'change' }
],
// 产品数量:0-100纯数字
goodNum: [
{ required: true, message: '请输入产品数量', trigger: 'blur' },
],
// 付款币种:必填
paymentCurrency: [
{ required: true, message: '请选择付款币种', trigger: 'change' }
],
// 付款金额:小于8位纯数字 + 不为0
paymentAmount: [
{ required: true, message: '请输入付款金额', trigger: 'blur' },
{
validator: (rule, value, callback) => {
// 匹配非负数字(支持整数或最多2位小数)
const reg = /^\d+(\.\d{1,2})?$/;
if (!reg.test(value)) {
callback(new Error('请输入有效的金额(最多2位小数)'));
} else {
const num = Number(value);
if (num === 0) {
callback(new Error('付款金额不能为0'));
} else if (num > 9999999) { // 限制最大值为9999999(7位整数)
callback(new Error('付款金额不能超过9999999'));
} else {
callback();
}
}
},
trigger: 'blur'
}
],
// 支付方式:必填
payType: [
{ required: true, message: '请选择支付方式', trigger: 'change' }
],
// 到账地区:必填
receivedMarket: [
{ required: true, message: '请选择到账地区', trigger: 'change' }
],
// 付款时间:必填
payTime: [
{ required: true, message: '请选择付款时间', trigger: 'change' }
]
};
export const editFormRule = {
// 到账金额:正数,整数部分最多6位,小数部分最多2位(支持纯小数如 0.1、0.99)
receivedAmount: [
{
pattern: /^(0\.\d{1,2}|[1-9]\d{0,5}(\.\d{1,2})?)$/, // 修正:添加 / 包裹正则
message: '请检查到账金额格式',
trigger: 'blur'
}
],
// 手续费:正数,整数部分最多6位,小数部分最多2位(不支持纯0开头的小数如 0.1,需从1开始)
handlingCharge: [
{
pattern: /^\d{1,6}(\.\d{1,2})?$/, // 注意:此正则允许 0 开头(如 0123 不符合整数规范)
message: '整数部分最多6位,小数部分最多2位',
trigger: 'blur'
}
],
};