filter.js 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. /**
  2. * 公共方法的封装
  3. */
  4. import Vue from 'vue'
  5. // 性别
  6. Vue.filter("filterSex", function(val) {
  7. if(val == 1){
  8. return '男';
  9. }else if(val == 2){
  10. return '女';
  11. }else {
  12. return '未知';
  13. }
  14. });
  15. // 链接加时间戳
  16. Vue.filter("timestamp", function(link) {
  17. return link + '?t=' + new Date().getTime();
  18. });
  19. // 保留两位小数,自动补充零
  20. Vue.filter("filterToFixed", function(val) {
  21. var value=Math.round(parseFloat(val)*100)/100;
  22. if(!value){return '0'}
  23. var xsd=value.toString().split(".");
  24. if(xsd.length==1){
  25. value=value.toString()+".00";
  26. return value;
  27. }
  28. if(xsd.length>1){
  29. if(xsd[1].length<2){
  30. value=value.toString()+"0";
  31. }
  32. return value;
  33. }
  34. })
  35. // 订单状态
  36. Vue.filter("filterOrderState", function(val) {
  37. let orderList = ['待支付', '','超时取消', '待使用', '退款中', '己退款', '退款失败', '己使用', '己超期','己关闭']
  38. return orderList[val]
  39. });
  40. // 申请状态
  41. Vue.filter("filterApplyState", function(val) {
  42. let orderList = ['待审核', '审核成功','审核失败','已撤回']
  43. return orderList[val]
  44. });
  45. // 个人二维码状态
  46. Vue.filter("filterSingleState", function(val) {
  47. let list = ['未使用', '已使用','过期']
  48. return list[val]
  49. });
  50. // 退款状态
  51. Vue.filter("filterRefundState", function(val) {
  52. console.log('filterRefundState',val);
  53. if(!val){
  54. return false
  55. }
  56. let list = ['申请中', '退款成功','退款失败', '退款中']
  57. return list[val]
  58. });
  59. // 支付状态
  60. Vue.filter("filterPayState", function(val) {
  61. let orderList = ['未支付', '已支付','支付中', '支付失败', '支付退款']
  62. return orderList[val]
  63. });
  64. // 结账方式
  65. Vue.filter("filterPayType", function(val) {
  66. let payTypeList = ['', '微信', '余额', '积分','农商行支付'];
  67. return payTypeList[val]
  68. });
  69. // 物流状态
  70. Vue.filter("filterDilevery", function(val) {
  71. let dileveryList = ['下单', '揽件', '运输中', '派件中', '签收', '退回', '拒签']
  72. return dileveryList[val]
  73. });
  74. // 退款状态
  75. Vue.filter("filterRefundState", function(val) {
  76. let rundStateList = ['申请中', '退款成功', '退款失败', '退款中']
  77. return rundStateList[val]
  78. });
  79. // 评分文字
  80. Vue.filter("rateText", function(val) {
  81. let rateList = ['很差', '差', '一般', '很好', '非常好']
  82. return rateList[val-1]
  83. });
  84. // 支持的物流方式
  85. Vue.filter("filterLogisticsType", function(val) {
  86. let logisticsType = ['邮寄', '自提', '同城配送']
  87. return logisticsType[val]
  88. });
  89. // js手机号码中间4位变星星
  90. Vue.filter("hidePhoneNumber", function(val) {
  91. return val?val.replace(/^(\d{3})\d{4}(\d{4})$/, "$1****$2"):'';
  92. });
  93. // 保质期转换
  94. Vue.filter("filterPeriod", function(day) {
  95. if (!day) return;
  96.   const unitObj = {
  97.     年: 365,
  98.     月: 30,
  99.     日: 1
  100.   };
  101.   for (const key in unitObj) {
  102.     if (day % unitObj[key] === 0) {
  103.       return `${day / unitObj[key]}${key}`;
  104.     }
  105.   }
  106. });
  107. // 身份证加密显示
  108. Vue.filter('maskID', function(value) {
  109. if (value.length != 18) {
  110. // 如果身份证号码不是18位,直接返回原始值
  111. return value;
  112. }
  113. const front = value.slice(0, 6); // 取身份证号码前6位
  114. const tail = value.slice(-4); // 取身份证号码后4位
  115. const masked = '*'.repeat(value.length - 10); // 中间部分用星号替代
  116. return front + masked + tail;
  117. });
  118. // 判断如果是今天就返回今天,如果是明天就返回明天如果都不是就返回星期几
  119. Vue.filter('checkDate', function(date) {
  120. let today = new Date(); // 获取今天的日期
  121. date = new Date(date);
  122. if (date.getFullYear() === today.getFullYear() &&
  123. date.getMonth() === today.getMonth() &&
  124. date.getDate() === today.getDate()) {
  125. return "今天";
  126. } else if (date.getFullYear() === today.getFullYear() &&
  127. date.getMonth() === today.getMonth() &&
  128. date.getDate() === today.getDate() + 1) {
  129. return "明天";
  130. } else {
  131. let days = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
  132. let diffDays = Math.floor((date.getTime() - today.getTime()) / (1000 * 3600 * 24));
  133. if (diffDays > 7) {
  134. // return date.toLocaleDateString("zh-CN");
  135. return `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`
  136. } else {
  137. return days[date.getDay()];
  138. }
  139. }
  140. });
  141. // 判断如果是今天就返回今天,如果是明天就返回明天如果都不是就返回星期几
  142. Vue.filter('checkWeekDate', function(date) {
  143. let today = new Date(); // 获取今天的日期
  144. date = new Date(date);
  145. if (date.getFullYear() === today.getFullYear() &&
  146. date.getMonth() === today.getMonth() &&
  147. date.getDate() === today.getDate()) {
  148. return "今天";
  149. } else if (date.getFullYear() === today.getFullYear() &&
  150. date.getMonth() === today.getMonth() &&
  151. date.getDate() === today.getDate() + 1) {
  152. return "明天";
  153. } else {
  154. let days = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
  155. let diffDays = Math.floor((date.getTime() - today.getTime()) / (1000 * 3600 * 24));
  156. return days[date.getDay()];
  157. }
  158. });