filter.wxs 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297
  1. var filters = {
  2. /**
  3. * 字符串截取
  4. * @string value 需要截取的字符串
  5. * @Number start 截取起始位置
  6. * @Number end 截取结束位置
  7. */
  8. tosubStr: function (value, start, end) {
  9. if (value) {
  10. return value.slice(start, end);
  11. } else {
  12. return ''
  13. }
  14. },
  15. pdNumFun: function (value) {
  16. if (value.indexOf("-") != -1) { //没有则返回-1
  17. return true;
  18. } else {
  19. return false;
  20. }
  21. },
  22. /**
  23. * 判断str中是否包含value值
  24. * @param str
  25. * @param value
  26. */
  27. indexOfFun: function (str, value) {
  28. if (str) {
  29. if (str.indexOf(value) != -1) { //没有则返回-1
  30. return true;
  31. } else {
  32. return false;
  33. }
  34. } else {
  35. return false;
  36. }
  37. },
  38. /**
  39. * 用于字典解析
  40. * @param arr 目标数组
  41. * @param value 当前的到的值
  42. * @param targetCode 需要匹配的字段名
  43. * @param returnCode 返回的字段名
  44. */
  45. codeAnalysis: function (arr, value, targetCode, returnCode) {
  46. var returnStr = ''
  47. arr.forEach(function (item) {
  48. if (value == item[targetCode]) {
  49. returnStr = item[returnCode]
  50. }
  51. })
  52. return returnStr
  53. },
  54. //二维数组转字符串
  55. arrToSting: function (value) {
  56. var getNameArr = []
  57. if (value && value.length) {
  58. for (var i = 0; i < value.length; i++) {
  59. getNameArr.push(value[i].name)
  60. }
  61. }
  62. return getNameArr.join(',')
  63. },
  64. //一维数组转字符串
  65. arrToStingOne: function (value) {
  66. return value.join(',')
  67. },
  68. //字符串替换,将oldstr全部变为newStr
  69. changeStr: function (value, oldstr, newStr) {
  70. return value.replace(oldstr, newStr)
  71. },
  72. /**
  73. * 字符串变数组取对应下标值
  74. * @string value 需要截取的字符串
  75. * @string str 分隔的字符串
  76. * @Number Num 下标
  77. */
  78. tosplit: function (value, str, Num) {
  79. if (value) {
  80. return value.split(str)[Num];
  81. } else {
  82. return ''
  83. }
  84. },
  85. getFileType: function (fileUrl) {
  86. var value = fileUrl.split('.')[1];
  87. if (value == 'doc' || value == 'docx') {
  88. return '6'
  89. } else if (value == 'xlsx' || value == 'xls') {
  90. return '7'
  91. } else if (value == 'pdf') {
  92. return '2'
  93. } else if (value == 'png' || value == 'jpg' || value == 'jpeg') {
  94. return '3'
  95. } else {
  96. return '1'
  97. }
  98. },
  99. /**
  100. * 找到字典对应text,用于详情显示
  101. * @param {*} v_data 数组
  102. * @param {*} value 数据库返回的值
  103. * @param {*} codeName 用于匹配数组中的字段名
  104. * @param {*} textCode 返回的字段名
  105. */
  106. getDicName: function (v_data, value, codeName, textCode) {
  107. var n = '';
  108. if (v_data) {
  109. for (var i = 0; i < v_data.length; i++) {
  110. if (v_data[i][codeName] == value) {
  111. n = v_data[i][textCode];
  112. }
  113. }
  114. return n;
  115. }
  116. },
  117. //保留两位小数
  118. toFixed: function (value, num) {
  119. return value.toFixed(num)
  120. },
  121. /**
  122. * 计算百分比
  123. * @param {Number} value 当前值,获取当前占比
  124. * @param {Number} total 总值
  125. */
  126. getPersent: function (value, total) {
  127. if(total<=0){
  128. return 50
  129. }else{
  130. return (value / total)*100; //包含返回true
  131. }
  132. },
  133. // 过磅状态
  134. status: function (value) {
  135. value = Number(value)
  136. switch (value) {
  137. case 0:
  138. return '待过磅'
  139. break;
  140. case 1:
  141. return '已过磅'
  142. break;
  143. case 2:
  144. return '一次过磅'
  145. break;
  146. case 3:
  147. return '已作废'
  148. break;
  149. }
  150. },
  151. /**
  152. * 判断数组是否包含某个字符串 {{filters.hasPromision('quotePrice',mobileButtonCodeList)}}
  153. * @param arr 数组 mobileButtonCodeList:wx.getStorageSync('mobileButtonCodeList')
  154. * @param str 字符串
  155. */
  156. hasPromision:function (str, arr) {
  157. //var getArr = arr.split(',')
  158. return arr.indexOf(str)!=-1
  159. //return arr.includes(str)
  160. },
  161. //判断数字包含的小数位数,最多保存两位小数点
  162. numberFormat: function (value, num) {
  163. // 将数字转换为字符串
  164. //var str = value.toString();
  165. var str = value + ""
  166. // 判断是否有小数点
  167. if (value && str.indexOf('.') != -1) {
  168. // 返回小数位数
  169. //return str.length - str.indexOf('.') - 1;
  170. if (str.length - str.indexOf('.') - 1 > 1) {
  171. return value.toFixed(num)
  172. } else {
  173. return value
  174. }
  175. } else {
  176. return value
  177. }
  178. },
  179. // 过磅状态
  180. dataStatus: function (value) { //0-待审核 1-审核通过2-过磅中 3-过磅完成4-审核拒绝5-人工结束
  181. value = Number(value)
  182. switch (value) {
  183. case 0:
  184. return '待审核'
  185. break;
  186. case 1:
  187. return '审核通过'
  188. break;
  189. case 2:
  190. return '过磅中'
  191. break;
  192. case 3:
  193. return '过磅完成'
  194. break;
  195. case 4:
  196. return '审核拒绝'
  197. break;
  198. case 5:
  199. return '人工结束'
  200. break;
  201. }
  202. },
  203. reservationType: function (value) {
  204. value = Number(value)
  205. switch (value) {
  206. case 2:
  207. return '装货'
  208. break;
  209. case 3:
  210. return '卸货'
  211. break;
  212. }
  213. },
  214. weighingType: function (value) {
  215. value = Number(value)
  216. switch (value) {
  217. case 1:
  218. return '一次过磅'
  219. break;
  220. case 2:
  221. return '二次过磅'
  222. break;
  223. }
  224. },
  225. coutNum:function(value){
  226. return Number(value)/100
  227. },
  228. /**
  229. * 判断某个字符串是否包含某个字符串
  230. * @param {*} value 原始字符串
  231. * @param {*} str 匹配字符串
  232. */
  233. isContainStr: function (value, str) {
  234. if (value) {
  235. return value.indexOf(str) != -1; //包含返回true
  236. } else {
  237. return false; //包含返回true
  238. }
  239. },
  240. /**
  241. * 计算百分比
  242. * @param {Number} value 当前值,获取当前占比
  243. * @param {Number} total 总值
  244. */
  245. getPersent: function (value, total) {
  246. if(total<=0){
  247. return 50
  248. }else{
  249. return (value / total)*100; //包含返回true
  250. }
  251. },
  252. }
  253. module.exports = {
  254. tosubStr: filters.tosubStr,
  255. arrToSting: filters.arrToSting,
  256. arrToStingOne: filters.arrToStingOne,
  257. pdNumFun: filters.pdNumFun,
  258. indexOfFun: filters.indexOfFun,
  259. changeStr: filters.changeStr,
  260. tosplit: filters.tosplit, //字符串转数组取对应下标值
  261. codeAnalysis: filters.codeAnalysis, //字典解析,用于详情显示
  262. getFileType: filters.getFileType,
  263. getDicName: filters.getDicName,
  264. toFixed: filters.toFixed,
  265. getPersent: filters.getPersent,
  266. status:filters.status,
  267. hasPromision:filters.hasPromision,//判断数组是否包含某个值
  268. numberFormat:filters.numberFormat, //判断数字包含的小数位数,最多保存两位小数点
  269. dataStatus:filters.dataStatus, //预约记录状态
  270. reservationType:filters.reservationType, //出入库类型
  271. weighingType:filters.weighingType, //过磅次数
  272. coutNum:filters.coutNum,
  273. isContainStr: filters.isContainStr, //判断某个字符串是否包含某个字符串
  274. getPersent: filters.getPersent
  275. }
  276. // 引用方式<wxs module="filters" src="../../utils/filter.wxs"></wxs> {{ filters.toFix(price) }}