进件代码调整,增加进件列表页面和筛选
This commit is contained in:
288
entryManager/add/data.js
Normal file
288
entryManager/add/data.js
Normal file
@@ -0,0 +1,288 @@
|
||||
export const rules = {
|
||||
merchantBaseInfo: {
|
||||
userType: {
|
||||
required: true,
|
||||
errorMsg: '请选择商户类型',
|
||||
},
|
||||
shortName: {
|
||||
required: true,
|
||||
errorMsg: '请填写商户简称',
|
||||
},
|
||||
mccCode: {
|
||||
required: true,
|
||||
errorMsg: '请选择行业类目',
|
||||
},
|
||||
alipayAccount: {
|
||||
required: true,
|
||||
errorMsg: '请填写支付宝账号',
|
||||
}
|
||||
},
|
||||
legalPersonInfo: {
|
||||
'idCardHandPic.url': {
|
||||
required: true,
|
||||
errorMsg: '请上传身份证手持图片',
|
||||
},
|
||||
'idCardFrontPic.url': {
|
||||
required: true,
|
||||
errorMsg: '请上传身份证正面图片',
|
||||
},
|
||||
'idCardBackPic.url': {
|
||||
required: true,
|
||||
errorMsg: '请上传身份证反面图片',
|
||||
},
|
||||
legalPersonName: {
|
||||
required: true,
|
||||
errorMsg: '请填写法人姓名',
|
||||
},
|
||||
legalPersonId: {
|
||||
required: true,
|
||||
errorMsg: '请填写法人身份证号',
|
||||
},
|
||||
legalIdPersonStartDate: {
|
||||
required: true,
|
||||
errorMsg: '请填写法人身份证开始日期',
|
||||
},
|
||||
legalPersonIdEndDate: {
|
||||
required: true,
|
||||
errorMsg: '请填写法人身份证到期日期',
|
||||
},
|
||||
legalPersonPhone: {
|
||||
required: true,
|
||||
errorMsg: '请填写法人电话',
|
||||
},
|
||||
legalPersonEmail: {
|
||||
required: true,
|
||||
errorMsg: '请填写法人邮箱',
|
||||
},
|
||||
legalGender: {
|
||||
required: true,
|
||||
errorMsg: '请填写法人性别',
|
||||
},
|
||||
legalAddress: {
|
||||
required: true,
|
||||
errorMsg: '请填写法人地址',
|
||||
},
|
||||
|
||||
},
|
||||
businessLicenceInfo:{
|
||||
'licensePic.url':{
|
||||
required: true,
|
||||
errorMsg:'请上传营业执照照片'
|
||||
},
|
||||
licenceName:{
|
||||
required: true,
|
||||
errorMsg:'请输入营业执照全称'
|
||||
},
|
||||
licenceNo:{
|
||||
required: true,
|
||||
errorMsg:'请输入营业执照号码'
|
||||
},
|
||||
licenceStartDate:{
|
||||
required: true,
|
||||
errorMsg:'请选择营业执照开始日期'
|
||||
},
|
||||
registeredAddress:{
|
||||
required: true,
|
||||
errorMsg:'请填写营业执照注册地址'
|
||||
}
|
||||
},
|
||||
storeInfo: {
|
||||
mercProvCode: {
|
||||
required: true,
|
||||
errorMsg: '请选择归属地',
|
||||
},
|
||||
mercCityCode: {
|
||||
required: true,
|
||||
errorMsg: '请选择归属地',
|
||||
},
|
||||
mercAreaCode: {
|
||||
required: true,
|
||||
errorMsg: '请选择归属地',
|
||||
},
|
||||
mercProv: {
|
||||
required: true,
|
||||
errorMsg: '请选择归属地',
|
||||
},
|
||||
mercCity: {
|
||||
required: true,
|
||||
errorMsg: '请选择归属地',
|
||||
},
|
||||
mercArea: {
|
||||
required: true,
|
||||
errorMsg: '请选择归属地',
|
||||
},
|
||||
businessAddress: {
|
||||
required: true,
|
||||
errorMsg: '请填写营业地址',
|
||||
},
|
||||
'insidePic.url': {
|
||||
required: true,
|
||||
errorMsg: '请上传经营场所内设照片',
|
||||
},
|
||||
'doorPic.url': {
|
||||
required: true,
|
||||
errorMsg: '请上传门头照',
|
||||
},
|
||||
'cashierDeskPic.url': {
|
||||
required: true,
|
||||
errorMsg: '请上传收银台照片',
|
||||
}
|
||||
},
|
||||
settlementInfo: {
|
||||
settlementType: {
|
||||
required: true,
|
||||
errorMsg: '请选择结算类型',
|
||||
},
|
||||
settlementCardType: {
|
||||
required: true,
|
||||
errorMsg: '请选择结算卡类型',
|
||||
},
|
||||
'bankCardFrontPic.url': {
|
||||
required: true,
|
||||
errorMsg: '请上传银行卡正面照片',
|
||||
},
|
||||
openAccProvinceId: {
|
||||
required: true,
|
||||
errorMsg: '请选择地区',
|
||||
},
|
||||
openAccCityId: {
|
||||
required: true,
|
||||
errorMsg: '请选择地区',
|
||||
},
|
||||
openAccAreaId: {
|
||||
required: true,
|
||||
errorMsg: '请选择地区',
|
||||
},
|
||||
openAccProvince: {
|
||||
required: true,
|
||||
errorMsg: '请选择地区',
|
||||
},
|
||||
openAccCity: {
|
||||
required: true,
|
||||
errorMsg: '请选择地区',
|
||||
},
|
||||
openAccArea: {
|
||||
required: true,
|
||||
errorMsg: '请选择地区',
|
||||
},
|
||||
bankType: {
|
||||
required: true,
|
||||
errorMsg: '请选择银行',
|
||||
},
|
||||
bankInstId: {
|
||||
required: true,
|
||||
errorMsg: '请选择银行',
|
||||
},
|
||||
bankName: {
|
||||
required: true,
|
||||
errorMsg: '请选择银行',
|
||||
},
|
||||
settlementCardNo: {
|
||||
required: true,
|
||||
errorMsg: '请填写结算账户卡号',
|
||||
},
|
||||
settlementName: {
|
||||
required: true,
|
||||
errorMsg: '请填写结算账户户名',
|
||||
},
|
||||
bankMobile: {
|
||||
required: true,
|
||||
errorMsg: '请填写结算银行预留手机号',
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export function isEmptyValue(val) {
|
||||
if (val === '' || val === undefined || val === null) {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
/**
|
||||
* 解析属性路径,返回数组格式的路径片段
|
||||
* @param {string} str - 属性路径(如 'userType' 或 'idCardHandPic.url')
|
||||
* @returns {Array<string>} 属性路径片段数组(如 ['userType'] 或 ['idCardHandPic', 'url'])
|
||||
*/
|
||||
export function returnKey(str) {
|
||||
// 无论是否包含'.',都返回数组,方便后续统一处理
|
||||
return str.includes('.') ? str.split('.') : [str];
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据属性路径数组,安全获取对象的嵌套属性值
|
||||
* @param {Object} obj - 目标对象(如 form.legalPersonInfo)
|
||||
* @param {Array<string>} keyPath - 属性路径数组(如 ['idCardHandPic', 'url'])
|
||||
* @returns {*} 嵌套属性的值(若路径不存在,返回 undefined)
|
||||
*/
|
||||
export function getNestedValue(obj, keyPath) {
|
||||
// 边界处理:obj不是对象,直接返回undefined
|
||||
if (typeof obj !== 'object' || obj === null) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
// 逐层遍历属性路径,获取最终值
|
||||
return keyPath.reduce((currentObj, key) => {
|
||||
// 中间层级不存在,直接返回undefined,避免报错
|
||||
if (currentObj === undefined || currentObj === null) {
|
||||
return undefined;
|
||||
}
|
||||
return currentObj[key];
|
||||
}, obj);
|
||||
}
|
||||
|
||||
export function verifyValue(val, ruleItem) {
|
||||
const isEmpty = isEmptyValue(val)
|
||||
let result = {
|
||||
ispas: true,
|
||||
errorMsg: ''
|
||||
}
|
||||
if (ruleItem.required) {
|
||||
|
||||
if (isEmpty) {
|
||||
result.ispas = false
|
||||
result.errorMsg = ruleItem.errorMsg
|
||||
return result
|
||||
}
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
export function verifyData(data, rule) {
|
||||
// 边界处理:data不是对象,直接返回校验失败(若有必填规则)
|
||||
if (typeof data !== 'object' || data === null) {
|
||||
// 遍历规则,返回第一个必填项的错误信息
|
||||
for (let ruleKey in rule) {
|
||||
const ruleItem = rule[ruleKey];
|
||||
if (ruleItem.required) {
|
||||
return {
|
||||
ispas: false,
|
||||
errorMsg: ruleItem.errorMsg || '数据格式错误,无法校验'
|
||||
};
|
||||
}
|
||||
}
|
||||
return {
|
||||
ispas: true,
|
||||
errorMsg: ''
|
||||
};
|
||||
}
|
||||
|
||||
for (let ruleKey in rule) {
|
||||
const ruleItem = rule[ruleKey];
|
||||
// 1. 获取属性路径数组(如 ['idCardHandPic', 'url'])
|
||||
const keyPath = returnKey(ruleKey);
|
||||
// 2. 安全获取嵌套属性值(核心:支持深层级属性)
|
||||
const targetValue = getNestedValue(data, keyPath);
|
||||
// 3. 校验属性值
|
||||
const result = verifyValue(targetValue, ruleItem);
|
||||
|
||||
// 4. 校验失败,直接返回结果
|
||||
if (!result.ispas) {
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
ispas: true,
|
||||
errorMsg: ''
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user