var filters = { /** * 字符串截取 * @string value 需要截取的字符串 * @Number start 截取起始位置 * @Number end 截取结束位置 */ tosubStr: function (value, start, end) { if (value) { return value.slice(start, end); } else { return '' } }, pdNumFun: function (value) { if (value.indexOf("-") != -1) { //没有则返回-1 return true; } else { return false; } }, /** * 判断str中是否包含value值 * @param str * @param value */ indexOfFun: function (str, value) { if (str) { if (str.indexOf(value) != -1) { //没有则返回-1 return true; } else { return false; } } else { return false; } }, /** * 用于字典解析 * @param arr 目标数组 * @param value 当前的到的值 * @param targetCode 需要匹配的字段名 * @param returnCode 返回的字段名 */ codeAnalysis: function (arr, value, targetCode, returnCode) { var returnStr = '' arr.forEach(function (item) { if (value == item[targetCode]) { returnStr = item[returnCode] } }) return returnStr }, //二维数组转字符串 arrToSting: function (value) { var getNameArr = [] if (value && value.length) { for (var i = 0; i < value.length; i++) { getNameArr.push(value[i].name) } } return getNameArr.join(',') }, //一维数组转字符串 arrToStingOne: function (value) { return value.join(',') }, //字符串替换,将oldstr全部变为newStr changeStr: function (value, oldstr, newStr) { return value.replace(oldstr, newStr) }, /** * 字符串变数组取对应下标值 * @string value 需要截取的字符串 * @string str 分隔的字符串 * @Number Num 下标 */ tosplit: function (value, str, Num) { if (value) { return value.split(str)[Num]; } else { return '' } }, getFileType: function (fileUrl) { var value = fileUrl.split('.')[1]; if (value == 'doc' || value == 'docx') { return '6' } else if (value == 'xlsx' || value == 'xls') { return '7' } else if (value == 'pdf') { return '2' } else if (value == 'png' || value == 'jpg' || value == 'jpeg') { return '3' } else { return '1' } }, /** * 找到字典对应text,用于详情显示 * @param {*} v_data 数组 * @param {*} value 数据库返回的值 * @param {*} codeName 用于匹配数组中的字段名 * @param {*} textCode 返回的字段名 */ getDicName: function (v_data, value, codeName, textCode) { var n = ''; if (v_data) { for (var i = 0; i < v_data.length; i++) { if (v_data[i][codeName] == value) { n = v_data[i][textCode]; } } return n; } }, //保留两位小数 toFixed: function (value, num) { return value.toFixed(num) }, /** * 计算百分比 * @param {Number} value 当前值,获取当前占比 * @param {Number} total 总值 */ getPersent: function (value, total) { if(total<=0){ return 50 }else{ return (value / total)*100; //包含返回true } }, // 过磅状态 status: function (value) { value = Number(value) switch (value) { case 0: return '待过磅' break; case 1: return '已过磅' break; case 2: return '一次过磅' break; case 3: return '已作废' break; } }, /** * 判断数组是否包含某个字符串 {{filters.hasPromision('quotePrice',mobileButtonCodeList)}} * @param arr 数组 mobileButtonCodeList:wx.getStorageSync('mobileButtonCodeList') * @param str 字符串 */ hasPromision:function (str, arr) { //var getArr = arr.split(',') return arr.indexOf(str)!=-1 //return arr.includes(str) }, //判断数字包含的小数位数,最多保存两位小数点 numberFormat: function (value, num) { // 将数字转换为字符串 //var str = value.toString(); var str = value + "" // 判断是否有小数点 if (value && str.indexOf('.') != -1) { // 返回小数位数 //return str.length - str.indexOf('.') - 1; if (str.length - str.indexOf('.') - 1 > 1) { return value.toFixed(num) } else { return value } } else { return value } }, // 过磅状态 dataStatus: function (value) { //0-待审核 1-审核通过2-过磅中 3-过磅完成4-审核拒绝5-人工结束 value = Number(value) switch (value) { case 0: return '待审核' break; case 1: return '审核通过' break; case 2: return '过磅中' break; case 3: return '过磅完成' break; case 4: return '审核拒绝' break; case 5: return '人工结束' break; } }, reservationType: function (value) { value = Number(value) switch (value) { case 2: return '装货' break; case 3: return '卸货' break; } }, weighingType: function (value) { value = Number(value) switch (value) { case 1: return '一次过磅' break; case 2: return '二次过磅' break; } }, coutNum:function(value){ return Number(value)/100 }, /** * 判断某个字符串是否包含某个字符串 * @param {*} value 原始字符串 * @param {*} str 匹配字符串 */ isContainStr: function (value, str) { if (value) { return value.indexOf(str) != -1; //包含返回true } else { return false; //包含返回true } }, /** * 计算百分比 * @param {Number} value 当前值,获取当前占比 * @param {Number} total 总值 */ getPersent: function (value, total) { if(total<=0){ return 50 }else{ return (value / total)*100; //包含返回true } }, } module.exports = { tosubStr: filters.tosubStr, arrToSting: filters.arrToSting, arrToStingOne: filters.arrToStingOne, pdNumFun: filters.pdNumFun, indexOfFun: filters.indexOfFun, changeStr: filters.changeStr, tosplit: filters.tosplit, //字符串转数组取对应下标值 codeAnalysis: filters.codeAnalysis, //字典解析,用于详情显示 getFileType: filters.getFileType, getDicName: filters.getDicName, toFixed: filters.toFixed, getPersent: filters.getPersent, status:filters.status, hasPromision:filters.hasPromision,//判断数组是否包含某个值 numberFormat:filters.numberFormat, //判断数字包含的小数位数,最多保存两位小数点 dataStatus:filters.dataStatus, //预约记录状态 reservationType:filters.reservationType, //出入库类型 weighingType:filters.weighingType, //过磅次数 coutNum:filters.coutNum, isContainStr: filters.isContainStr, //判断某个字符串是否包含某个字符串 getPersent: filters.getPersent } // 引用方式 {{ filters.toFix(price) }}