720 lines
20 KiB
JavaScript
720 lines
20 KiB
JavaScript
import utils from '@/utils/encode';
|
||
import login from '../api/login.js';
|
||
import station from '@/api/station.js';
|
||
import QQMapWX from './qqmap-wx-jssdk.min.js';
|
||
import oilIdentityApi from '@/api/login.js'
|
||
class Anticorrosive {
|
||
//需要的基本数据定义
|
||
reqData = null
|
||
data = null;
|
||
configure = null;
|
||
pageKeys = ['outputField', 'field', 'type', 'defaultValue'];
|
||
constructor(data, configure) {
|
||
// 初始化数据 => 校验数据
|
||
this.data = data;
|
||
this.configure = configure;
|
||
return this.chenk();
|
||
}
|
||
|
||
// 递归 生成数据结构
|
||
generate(data, configure) {
|
||
// 通过传入的源数据生成相应的数据结构
|
||
let reqData = data instanceof Array ? [] : {};
|
||
//递归配置参数直到数据类型为基本类型 创建相应的数据(深拷贝)
|
||
for (const fields of configure) {
|
||
this.pageKeys.forEach(item => {
|
||
let fieldsKeys = Object.keys(fields);
|
||
if (!fieldsKeys.includes(item)) throw new Error(`必填字段 :${item} 不能为空`);
|
||
})
|
||
let field = data[fields.field] === undefined ? fields.defaultValue ? fields.defaultValue : null : data[
|
||
fields.field]; //如果为undefined直接为null;
|
||
let isChildField = fields?.childField ? true : false; //判断是否有子配置项
|
||
let isType = fields.type === typeof field; //判断数据类型是否匹配
|
||
// console.log(field,fields.type,typeof field,'isType')
|
||
//检测是field类型 基本类型/引用类型
|
||
if (field instanceof Function) { //引用类型且为Function
|
||
console.warn("Function类型无法配置");
|
||
reqData[fields.outputField] = field
|
||
} else if (field instanceof Set) { //引用类型且为Set
|
||
console.warn("Set类型无法配置");
|
||
reqData[fields.outputField] = field
|
||
} else if (field instanceof Map) { //引用类型且为Map
|
||
console.warn("Map类型无法配置");
|
||
reqData[fields.outputField] = field
|
||
} else if (field instanceof Array) { //引用类型且为数组 递归
|
||
if (!isType) console.warn(`数据源与数据类型不匹配:${fields.field}`);
|
||
reqData[fields.outputField] = [];
|
||
reqData[fields.outputField] = isChildField ? field.map(element => this.generate(element, fields
|
||
.childField)) : field;
|
||
} else if (field instanceof Object) { //引用类型 递归
|
||
if (!isType) console.warn(`数据源与数据类型不匹配:${fields.field}`);
|
||
reqData[fields.outputField] = isChildField ? this.generate(field, fields.childField) : field;
|
||
} else {
|
||
// null 和基本类型
|
||
reqData[fields.outputField] = this.voluation(field, fields);
|
||
}
|
||
}
|
||
return reqData
|
||
}
|
||
// 数据校验
|
||
chenk() {
|
||
let testingType = true;
|
||
if (this.data == undefined || this.data.constructor == Function || this.data.constructor == Set || this.data
|
||
.constructor == Map || !(this.data instanceof Object)) {
|
||
testingType = false
|
||
}
|
||
if (this.configure == undefined || this.configure.constructor == Function || this.configure.constructor ==
|
||
Set || this.configure.constructor == Map || !(this.configure instanceof Object)) {
|
||
testingType = false
|
||
}
|
||
if (testingType) {
|
||
// 校验通过 => 生成数据
|
||
return this.generate(this.data, this.configure)
|
||
} else {
|
||
return this.data
|
||
}
|
||
}
|
||
voluation(data, configure) {
|
||
if (!(typeof configure.defaultValue === configure.type)) throw new Error(
|
||
`定义的数据类型与默认值数据类型不匹配:${configure.field}`);
|
||
let value = null;
|
||
let isData = data === null;
|
||
if (isData) return configure.defaultValue; //如果data为null直接返回默认值
|
||
switch (configure.type) {
|
||
case 'number':
|
||
value = isNaN(Number(data)) ? configure.defaultValue : Number(data);
|
||
break;
|
||
case 'string':
|
||
value = String(data)
|
||
break;
|
||
case 'boolean':
|
||
value = Boolean(data)
|
||
break;
|
||
}
|
||
if (configure?.customHandler) { //是否有自定义处理程序
|
||
let customHandlerValue = configure.customHandler(value);
|
||
value = customHandlerValue !== undefined ? customHandlerValue : value
|
||
}
|
||
return value
|
||
}
|
||
}
|
||
|
||
export default {
|
||
Anticorrosive,
|
||
getPhone(e){
|
||
return new Promise((re,rj)=>{
|
||
const data1 = {
|
||
...e.detail,
|
||
sessionKey: uni.getStorageSync('sessionKey'),
|
||
unionId: uni.getStorageSync('unionid'),
|
||
openId: uni.getStorageSync('openid'),
|
||
appId: 'wxed3e2914d6aa4d52'
|
||
};
|
||
oilIdentityApi.ackPhone(data1).then(resj => {
|
||
re(resj.data)
|
||
});
|
||
})
|
||
},
|
||
async WXlogin(e) {
|
||
return new Promise((re, rj) => {
|
||
uni.login({
|
||
provider: 'weixin',
|
||
success: async (loginRes) => {
|
||
const code = loginRes.code
|
||
oilIdentityApi.sendCode(loginRes.code).then(res => {
|
||
if (res.code === 20000) {
|
||
uni.setStorageSync('sessionKey', res.data.sessionKey);
|
||
uni.setStorageSync('openid', res.data.openId);
|
||
uni.setStorageSync('unionid', res.data.unionId);
|
||
const data1 = {
|
||
...e.detail,
|
||
sessionKey: uni.getStorageSync('sessionKey'),
|
||
unionId: uni.getStorageSync('unionid'),
|
||
openId: uni.getStorageSync('openid'),
|
||
appId: 'wxed3e2914d6aa4d52'
|
||
}
|
||
oilIdentityApi.getPhone(data1).then(resj => {
|
||
re(resj.data.phoneNumber)
|
||
});
|
||
} else if (res.code == 1002) {
|
||
uni.showModal({
|
||
title: '微信登录失败提醒',
|
||
content: `${res.msg}如有疑问,请联系客服处理`
|
||
})
|
||
|
||
}
|
||
}).catch(err => {
|
||
uni.showToast({
|
||
title: '登陆失败',
|
||
icon: 'none'
|
||
})
|
||
|
||
})
|
||
|
||
},
|
||
fail: err => {},
|
||
})
|
||
})
|
||
},
|
||
difTags(res) {
|
||
res.data.forEach((item, index) => {
|
||
item['tags'] = ['maxCurrent', 'createSource'].map((tag, tagIndex) => {
|
||
let result = {}
|
||
switch (tag) {
|
||
case 'maxCurrent':
|
||
result = {
|
||
label: `最大${item[tag]}A`,
|
||
color: '#6EA29BCC'
|
||
}
|
||
break;
|
||
case 'createSource':
|
||
let source = this.difSource(item[tag]);
|
||
result = {
|
||
...source
|
||
}
|
||
break;
|
||
}
|
||
return result
|
||
});
|
||
if (index == 0) item['tags'].unshift({
|
||
label: '距离最近',
|
||
color: '#36658DFF'
|
||
})
|
||
})
|
||
},
|
||
difSource(e) {
|
||
switch (e) {
|
||
case 'XXCD':
|
||
return {
|
||
label: '星星充电',
|
||
color: '#E48011CC'
|
||
}
|
||
case 'QT':
|
||
return {
|
||
label: '其他',
|
||
color: '#121836CC'
|
||
}
|
||
case 'KD':
|
||
return {
|
||
label: '快电',
|
||
color: '#FF5F0FCC'
|
||
}
|
||
case 'TLD':
|
||
return {
|
||
label: '特来电',
|
||
color: '#7AA0F4CC'
|
||
}
|
||
case 'YKC':
|
||
return {
|
||
label: '云快充',
|
||
color: '#00A7EBCC'
|
||
}
|
||
case 'ZGGD':
|
||
return {
|
||
label: '中国国电',
|
||
color: '#27AB3BCC'
|
||
}
|
||
}
|
||
},
|
||
userLocationChenk(){
|
||
return new Promise((re,rj)=>{
|
||
wx.getSetting({
|
||
success(res) {
|
||
if (typeof(res.authSetting['scope.userLocation']) != 'undefined' && !res.authSetting[
|
||
'scope.userLocation']) {
|
||
// 用户没有授权
|
||
uni.showModal({
|
||
title: '提示',
|
||
content: '您暂无授权定位权限,将无法使用附近电站站功能,是否去开启授权',
|
||
success(res) {
|
||
if (res.confirm) {
|
||
wx.openSetting({
|
||
success(res) {
|
||
if (res.authSetting['scope.userLocation']) {
|
||
re()
|
||
// 授权成功,重新定位
|
||
} else {
|
||
// 没有允许定位权限
|
||
wx.showToast({
|
||
title: '您拒绝了定位权限,将无法使用附近电站站功能',
|
||
icon: 'none'
|
||
});
|
||
rj('拒绝了定位权限')
|
||
}
|
||
},
|
||
fail() {
|
||
rj('openSetting调用失败')
|
||
}
|
||
})
|
||
}else{
|
||
rj('取消授权')
|
||
}
|
||
}
|
||
})
|
||
}else{
|
||
re()
|
||
}
|
||
},
|
||
fail(err){
|
||
rj(err)
|
||
}
|
||
})
|
||
})
|
||
},
|
||
ReverseAddress(latitude,longitude){
|
||
const qqmapsdk = new QQMapWX({
|
||
key: 'NYEBZ-YURY3-XTU3N-YBR54-PKW6E-ROB2F'
|
||
});
|
||
return new Promise((re,rj)=>{
|
||
qqmapsdk.reverseGeocoder({
|
||
location: {
|
||
latitude:latitude,
|
||
longitude: longitude
|
||
},
|
||
success(addressRes){
|
||
re(addressRes)
|
||
},
|
||
fail(err){
|
||
rj(err)
|
||
}
|
||
})
|
||
})
|
||
|
||
|
||
},
|
||
getLocation() {
|
||
return new Promise((re, rj) => {
|
||
uni.getLocation({
|
||
type: 'wgs84',
|
||
geocode: true,
|
||
success: function(res) {
|
||
const qqmapsdk = new QQMapWX({
|
||
key: 'NYEBZ-YURY3-XTU3N-YBR54-PKW6E-ROB2F'
|
||
});
|
||
qqmapsdk.reverseGeocoder({
|
||
location: {
|
||
latitude: res.latitude,
|
||
longitude: res.longitude
|
||
},
|
||
success(addressRes){
|
||
var address = addressRes.result.formatted_addresses.recommend;
|
||
let location = {
|
||
...res,
|
||
address
|
||
}
|
||
uni.setStorageSync('location',location );
|
||
re(location)
|
||
},
|
||
fail(err){
|
||
rj(err)
|
||
}
|
||
})
|
||
|
||
},
|
||
fail(err) {
|
||
rj(err)
|
||
}
|
||
})
|
||
})
|
||
|
||
},
|
||
routingParameterGeneration(parameter){
|
||
if(parameter==null||parameter==undefined) return;
|
||
const parameterType = typeof parameter;
|
||
if( parameterType== 'string'){
|
||
let obj = {};
|
||
let splitParameter = parameter.split('?');
|
||
if(splitParameter.length<=1){
|
||
console.warn("暂无路径参数");
|
||
return
|
||
}
|
||
splitParameter[1].split('&').forEach(item=>{
|
||
if(item.indexOf('=')!==-1){
|
||
let splitItem = item.split('=')
|
||
obj[splitItem[0]] = splitItem[1]
|
||
}else{
|
||
console.warn("error");
|
||
console.log(item)
|
||
}
|
||
})
|
||
return obj
|
||
}else if(parameterType == 'object'){
|
||
let stringParameter = '?'
|
||
let parameterEntries = Object.entries(parameter);
|
||
parameterEntries.forEach((key,index)=>{
|
||
let itemString = `${key[0]}=${key[1]}${ parameterEntries.length-1==index?'':'&' }`;
|
||
stringParameter += itemString
|
||
})
|
||
return stringParameter
|
||
}
|
||
},
|
||
scanCode() {
|
||
return new Promise((re, rj) => {
|
||
uni.scanCode({
|
||
onlyFromCamera: true,
|
||
success: (res) => {
|
||
re(res)
|
||
},
|
||
fail(err) {
|
||
rj(err)
|
||
}
|
||
});
|
||
})
|
||
},
|
||
loginOut() {
|
||
return new Promise((re, rj) => {
|
||
login.logoutAuthSystem('MALL_COMS_MINI').then(res => {
|
||
if (res.code == 20000) {
|
||
re(res)
|
||
} else {
|
||
rj(res)
|
||
}
|
||
}).catch(err => {
|
||
rj(err)
|
||
})
|
||
})
|
||
},
|
||
getCode(data) {
|
||
return new Promise((re, rj) => {
|
||
login.sendSmsForEleccomDriverMini(data).then(res => {
|
||
if (res.code == 20000) {
|
||
re(res)
|
||
} else {
|
||
rj(res)
|
||
}
|
||
}).catch(err => {
|
||
rj(err)
|
||
})
|
||
})
|
||
},
|
||
bindLoginByPhoneOilOmsWebMini(data) {
|
||
return new Promise((re, rj) => {
|
||
login.bindLoginByPhoneOilOmsWebMini({
|
||
...data,
|
||
sessionKey: uni.getStorageSync('sessionKey'),
|
||
unionId: uni.getStorageSync('unionid'),
|
||
openId: uni.getStorageSync('openid'),
|
||
}).then(res => {
|
||
if (res.code == 20000) {
|
||
re(res)
|
||
} else {
|
||
rj(res.code)
|
||
}
|
||
}).catch(err => {
|
||
rj(err)
|
||
})
|
||
})
|
||
},
|
||
sendCode(code) {
|
||
return new Promise((re, rj) => {
|
||
login.sendCode(code).then(res => {
|
||
uni.setStorageSync('openid', res.data.openId);
|
||
uni.setStorageSync('unionid', res.data.unionId);
|
||
uni.setStorageSync('sessionKey', res.data.sessionKey)
|
||
re(res)
|
||
}).catch(err => {
|
||
rj(err)
|
||
})
|
||
})
|
||
},
|
||
autoLogin(codeData) {
|
||
return new Promise((re, rj) => {
|
||
login.loginOilOmsWebMini(codeData).then(res => {
|
||
if (res.code == 20000) {
|
||
re(res)
|
||
} else {
|
||
rj(res.code)
|
||
}
|
||
}).catch(err => {
|
||
rj(err)
|
||
})
|
||
})
|
||
},
|
||
weixinLogin() {
|
||
return new Promise((re, rj) => {
|
||
uni.login({
|
||
provider: 'weixin',
|
||
success: (loginRes) => {
|
||
re(loginRes)
|
||
},
|
||
fail: err => {
|
||
rj(err)
|
||
},
|
||
})
|
||
})
|
||
},
|
||
async getCards() {
|
||
await station.getAccountList().then(res => {
|
||
if (res.code == 20000) {
|
||
res.data.forEach(item => {
|
||
item['isEye'] = false
|
||
})
|
||
uni.setStorageSync('cards', res.data);
|
||
}
|
||
})
|
||
},
|
||
async loginSuccess(res) {
|
||
let resData = res.data
|
||
if (resData.authTokenDTO.loginFlag) {
|
||
uni.setStorageSync('Authorization', resData.authTokenDTO.accessToken)
|
||
uni.setStorageSync('accountStatus', resData.isCompanyAccount)
|
||
let user = resData.authTokenDTO.loginUser
|
||
uni.setStorageSync('user', user);
|
||
// await this.getCards();
|
||
setTimeout(() => {
|
||
uni.showToast({
|
||
title: res.msg,
|
||
icon: 'none',
|
||
complete: (err) => {}
|
||
})
|
||
}, 500);
|
||
uni.switchTab({
|
||
url: '/pages/home/index',
|
||
})
|
||
// uni.reLaunch({
|
||
// url: '/pages/index/index',
|
||
// fail() {
|
||
// console.log('跳转失败')
|
||
// }
|
||
// })
|
||
}
|
||
},
|
||
|
||
//调起上传图片
|
||
chooseImage(clickfn) {
|
||
const JSESSIONID = utils.uuid()
|
||
let chooseImageUrl = ''
|
||
uni.chooseImage({
|
||
success: (chooseImageRes) => {
|
||
uni.showLoading({
|
||
title: '加载中'
|
||
})
|
||
const tempFilePaths = chooseImageRes.tempFilePaths;
|
||
uni.uploadFile({
|
||
url: 'https://www.xingoil.com/adminapi/oil-oss/obejct/uploadFile',
|
||
filePath: tempFilePaths[0],
|
||
name: 'file',
|
||
formData: {
|
||
ossKey: 'xingyou',
|
||
pathKey: 'publicxingyou',
|
||
encrypt: 'PUBLIC',
|
||
},
|
||
header: {
|
||
"Content-Type": "multipart/form-data",
|
||
"Authorization": uni.getStorageSync('Authorization'),
|
||
'dataSources': 'MP',
|
||
"imei": uni.getStorageSync('unionid'),
|
||
"openId": uni.getStorageSync('openid'),
|
||
'JSESSIONID': JSESSIONID,
|
||
'token': utils.md5Salt(JSESSIONID)
|
||
},
|
||
success: (uploadFileRes) => {
|
||
uni.hideLoading()
|
||
chooseImageUrl = JSON.parse(uploadFileRes.data).data.publicUrl
|
||
clickfn(chooseImageUrl)
|
||
},
|
||
fail: () => {
|
||
uni.hideLoading()
|
||
}
|
||
});
|
||
},
|
||
fail: () => {
|
||
uni.hideLoading()
|
||
}
|
||
});
|
||
},
|
||
getnum(num, size = 2) {
|
||
if (String(num).indexOf('.') == -1 || String(num).split('.')[1].length < 2) return Number(num).toFixed(size);
|
||
var s = num.toString();
|
||
var result = s.substring(0, s.indexOf(".") + 1 + size);
|
||
return result
|
||
},
|
||
//数据转为两位小数
|
||
numberSetting(obj, key, nm = 2) {
|
||
if (arguments.length < 2) throw new Error('请检查函数配置参数,最少传递两个必填参数');
|
||
if (!Array.isArray(key)) throw new Error('参数2必须为Array');
|
||
// if (obj.constructor.toString().indexOf('Object') == -1) throw new Error('参数1必须为Object');
|
||
if (Array.isArray(obj)) {
|
||
obj.forEach((item, index) => {
|
||
if (Array.isArray(item)) {
|
||
this.numberSetting(item, key, nm)
|
||
}
|
||
let keyArray = Object.keys(item)
|
||
keyArray.forEach(i => {
|
||
if (key.includes(i)) {
|
||
item[i] = isNaN(Number(item[i])) ? 0.00 : Number(item[i]).toFixed(nm)
|
||
}
|
||
})
|
||
})
|
||
} else {
|
||
Object.keys(obj).forEach(keys => {
|
||
if (key.includes(keys)) {
|
||
// if (isNaN(Number(obj[keys]))) throw new Error(keys + '值不是数字')
|
||
// obj[keys] = Number(obj[keys]).toFixed(nm);
|
||
obj[keys] = isNaN(Number(obj[keys])) ? 0.00 : Number(obj[keys]).toFixed(nm)
|
||
}
|
||
})
|
||
}
|
||
|
||
},
|
||
/*
|
||
校验数据规范
|
||
data:校验源数据,
|
||
options:校验配置,
|
||
correct:是否修正
|
||
*/
|
||
checkData(data, options, correct = false) {
|
||
// 校验对象
|
||
let checkData = {
|
||
typeFn(data, type) {
|
||
return typeof data == type
|
||
},
|
||
correctFn(item) {
|
||
console.log('校验失败', item)
|
||
//查看是否修正
|
||
if (correct) {
|
||
//修正
|
||
switch (item.type) {
|
||
case 'number':
|
||
data[item.field] = data[item.field] == null ? item.defaultValue : data[item.field] ===
|
||
'' || isNaN(Number(data[item.field])) ? item.defaultValue : Number(data[item.field])
|
||
break;
|
||
case 'string':
|
||
data[item.field] = data[item.field] == null ? item.defaultValue : String(data[item
|
||
.field])
|
||
break;
|
||
case 'null':
|
||
data[item.field] = null
|
||
break;
|
||
}
|
||
} else {
|
||
//无需直接退出
|
||
wx.exitMiniProgram({
|
||
success: function() {
|
||
console.log('拜拜')
|
||
}
|
||
})
|
||
// throw new Error('错误!!!');
|
||
}
|
||
},
|
||
}
|
||
//参数校验
|
||
if (arguments.length < 2) throw new Error('请检查函数配置参数,最少传递两个必填参数');
|
||
if (!Array.isArray(options)) throw new Error('参数2必须为Array');
|
||
//获取对象的key
|
||
let dataKeys = Object.keys(data);
|
||
//开始通过 options 校验
|
||
options.forEach(item => {
|
||
//判断是否有该字段
|
||
if (typeof data[item.field] !== 'undefined') {
|
||
//校验数据类型
|
||
if (!checkData.typeFn(data[item.field], item.type)) {
|
||
//类型校验失败
|
||
checkData.correctFn(item);
|
||
}
|
||
} else {
|
||
console.log(`%c ${item.field} ← 错误值,请检查源数据中该字段`, 'font-size:50px;color:red');
|
||
checkData.correctFn(item);
|
||
}
|
||
})
|
||
},
|
||
//表单校验
|
||
checkFn(obj, whiteList, configure = {}) {
|
||
//校验状态 con
|
||
let con = {
|
||
result: true,
|
||
field: '',
|
||
WrongText: '',
|
||
errCheckField: ''
|
||
}
|
||
//校验参数
|
||
if (arguments.length < 1) throw new Error('请检查函数配置参数,最少传递1个必填参数');
|
||
if (obj.constructor.toString().indexOf('Object') == -1) throw new Error('参数1必须为Object');
|
||
if (whiteList && !Array.isArray(whiteList)) throw new Error('参数2必须为Array');
|
||
let configurationTable = Object.keys(configure)
|
||
// console.log(configurationTable, obj, '需要校验的字段数组')
|
||
// 循环需要校验的对象
|
||
Object.keys(obj).forEach(keys => {
|
||
// console.log(keys, '当前循环的校验对象')
|
||
//如果循环的当前字段在白名单内跳过
|
||
// console.log(whiteList, '白名单')
|
||
if (whiteList.includes(keys)) return
|
||
//校验状态改变跳过
|
||
// console.log(con.result, '校验状态')
|
||
if (!con.result) return
|
||
if (configurationTable.includes(keys)) {
|
||
//当前需要匹配的字段 obj[keys] configure[keys]
|
||
//循环配置参数 拿到校验配置
|
||
// console.log('key:', keys, '源对象:', obj[keys], '校验配置', configure[keys], '匹配到的需要校验的数据')
|
||
Object.keys(configure[keys]).forEach(pages => {
|
||
if (!con.result) return
|
||
// console.log('字段:', keys, '开始校验', pages, )
|
||
// configure[keys][pages]
|
||
switch (pages) {
|
||
case 'type':
|
||
con.result = typeof obj[keys] == configure[keys][pages]
|
||
if (!con.result) {
|
||
con.field = keys
|
||
con.WrongText = configure[keys].WrongText ? configure[keys].WrongText :
|
||
'字段:' + con.field + '校验出错'
|
||
con.errCheckField = pages
|
||
}
|
||
break;
|
||
case 'length':
|
||
con.result = obj[keys].toString().length == configure[keys][pages]
|
||
if (!con.result) {
|
||
con.field = keys
|
||
con.WrongText = configure[keys].WrongText ? configure[keys].WrongText :
|
||
'字段:' + con.field + '校验出错'
|
||
con.errCheckField = pages
|
||
}
|
||
break;
|
||
case 'minLength':
|
||
con.result = obj[keys].toString().length >= configure[keys][pages]
|
||
if (!con.result) {
|
||
con.field = keys
|
||
con.WrongText = configure[keys].WrongText ? configure[keys].WrongText :
|
||
'字段:' + con.field + '校验出错'
|
||
con.errCheckField = pages
|
||
}
|
||
break;
|
||
case 'maxLength':
|
||
con.result = obj[keys].toString().length <= configure[keys][pages]
|
||
if (!con.result) {
|
||
con.field = keys
|
||
con.WrongText = configure[keys].WrongText ? configure[keys].WrongText :
|
||
'字段:' + con.field + '校验出错'
|
||
con.errCheckField = pages
|
||
}
|
||
break;
|
||
case 'custom':
|
||
con.result = configure[keys][pages].test(obj[keys])
|
||
if (!con.result) {
|
||
con.field = keys
|
||
con.WrongText = configure[keys].WrongText ? configure[keys].WrongText :
|
||
'字段:' + con.field + '校验出错'
|
||
con.errCheckField = pages
|
||
}
|
||
// console.log('自定义类型校验', configure[keys][pages], '值', obj[keys])
|
||
break;
|
||
case 'tacitly':
|
||
con.result = Boolean(obj[keys])
|
||
if (!con.result) {
|
||
con.field = keys
|
||
con.WrongText = configure[keys].WrongText ? configure[keys].WrongText :
|
||
'字段:' + con.field + ',' + pages + '校验出错'
|
||
con.errCheckField = pages
|
||
}
|
||
// console.log('自定义类型校验', configure[keys][pages], '值', obj[keys])
|
||
break;
|
||
default:
|
||
// console.log(pages, '其他')
|
||
break;
|
||
}
|
||
})
|
||
}
|
||
});
|
||
// console.log(con, '校验结果')
|
||
return con
|
||
}
|
||
} |