index.js 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. import {
  2. COMMON_SELECT
  3. } from '@/utils/select_data'
  4. /**
  5. * Show plural label if time is plural number
  6. * @param {number} time
  7. * @param {string} label
  8. * @return {string}
  9. */
  10. function pluralize(time, label) {
  11. if (time === 1) {
  12. return time + label
  13. }
  14. return time + label + 's'
  15. }
  16. /**
  17. * @param {number} time
  18. */
  19. export function timeAgo(time) {
  20. const between = Date.now() / 1000 - Number(time)
  21. if (between < 3600) {
  22. return pluralize(~~(between / 60), ' minute')
  23. } else if (between < 86400) {
  24. return pluralize(~~(between / 3600), ' hour')
  25. } else {
  26. return pluralize(~~(between / 86400), ' day')
  27. }
  28. }
  29. /**
  30. * Number formatting
  31. * like 10000 => 10k
  32. * @param {number} num
  33. * @param {number} digits
  34. */
  35. export function numberFormatter(num, digits) {
  36. const si = [
  37. { value: 1E18, symbol: 'E' },
  38. { value: 1E15, symbol: 'P' },
  39. { value: 1E12, symbol: 'T' },
  40. { value: 1E9, symbol: 'G' },
  41. { value: 1E6, symbol: 'M' },
  42. { value: 1E3, symbol: 'k' }
  43. ]
  44. for (let i = 0; i < si.length; i++) {
  45. if (num >= si[i].value) {
  46. return (num / si[i].value).toFixed(digits).replace(/\.0+$|(\.[0-9]*[1-9])0+$/, '$1') + si[i].symbol
  47. }
  48. }
  49. return num.toString()
  50. }
  51. /**
  52. * 10000 => "10,000"
  53. * @param {number} num
  54. */
  55. export function toThousandFilter(num) {
  56. return (+num || 0).toString().replace(/^-?\d+/g, m => m.replace(/(?=(?!\b)(\d{3})+$)/g, ','))
  57. }
  58. /**
  59. * Upper case first char
  60. * @param {String} string
  61. */
  62. export function uppercaseFirst(string) {
  63. return string.charAt(0).toUpperCase() + string.slice(1)
  64. }
  65. /**
  66. * 截取到“日”的日期
  67. * yyyy-MM-dd HH:mm:ss => yyyy-MM-dd
  68. * @param {String} date
  69. */
  70. export function dateToDayFilter(date) {
  71. if(!date) {return ''}
  72. return date.slice(0, 10)
  73. }
  74. /**
  75. * 截取到“分”的日期
  76. * yyyy-MM-dd HH:mm:ss => yyyy-MM-dd HH:mm
  77. * @param {String} date
  78. */
  79. export function dateToMinFilter(date) {
  80. if(!date) {return ''}
  81. return date.slice(0, 16)
  82. }
  83. /**
  84. * 转换成“年月”的日期
  85. * yyyy-MM-dd HH:mm:ss => yyyy年MM月
  86. */
  87. export function dateToYearMonthFilter(date) {
  88. if(!date) {return ''}
  89. return date.slice(0, 4) + '年' + date.slice(5, 7) + '月'
  90. }
  91. /**
  92. * 密码
  93. */
  94. export function passwordFilter(value) {
  95. if(value === null || value === '') return ''
  96. let password = '********';
  97. // for (let i = 0; i < value.length; i++) {
  98. // password += '*'
  99. // }
  100. return password;
  101. }
  102. /**
  103. * 会员的当前状态
  104. */
  105. export function MEMBER_CURRENT_STATUS_FILTER(value) {
  106. let obj = COMMON_SELECT.MEMBER_CURRENT_STATUS.find(o => o.value === value);
  107. return obj ? obj.label : ''
  108. }
  109. /**
  110. * 会员的类型
  111. */
  112. export function MEMBER_CURRENT_TYPE_FILTER(value) {
  113. let obj = COMMON_SELECT.MEMBER_CURRENT_TYPE.find(o => o.value === value);
  114. return obj ? obj.label : ''
  115. }
  116. /**
  117. * 订单状态
  118. */
  119. export function ORDER_CURRENT_STATUS_FILTER(value) {
  120. let obj = COMMON_SELECT.ORDER_CURRENT_STATUS.find(o => o.value === value);
  121. return obj ? obj.label : ''
  122. }
  123. /**
  124. * 物流状态
  125. */
  126. export function EXPRESS_CURRENT_STATE_FILTER(value) {
  127. let obj = COMMON_SELECT.EXPRESS_CURRENT_STATE.find(o => o.value === value);
  128. return obj ? obj.label : ''
  129. }
  130. /**
  131. * 维护订单状态
  132. */
  133. export function ORDER_REFUND_CURRENT_STATUS_FILTER(value) {
  134. let obj = COMMON_SELECT.ORDER_REFUND_CURRENT_STATUS.find(o => o.value === value);
  135. return obj ? obj.label : ''
  136. }
  137. /**
  138. * 结算状态
  139. */
  140. export function SETTLEMENT_CURRENT_STATUS_FILTER(value) {
  141. let obj = COMMON_SELECT.SETTLEMENT_CURRENT_STATUS.find(o => o.value === value);
  142. return obj ? obj.label : ''
  143. }
  144. /**
  145. * 退款方式
  146. */
  147. export function REFUND_CURRENT_TYPE_FILTER(value) {
  148. let obj = COMMON_SELECT.REFUND_CURRENT_TYPE.find(o => o.value === value);
  149. return obj ? obj.label : ''
  150. }
  151. /**
  152. * 券标志
  153. */
  154. export function COUPON_CURRENT_FLAG_FILTER(value) {
  155. let obj = COMMON_SELECT.COUPON_CURRENT_FLAG.find(o => o.value === value);
  156. return obj ? obj.label : ''
  157. }
  158. /**
  159. * 秒杀活动状态
  160. */
  161. export function SEC_KILL_CURRENT_STATUS_FILTER(value) {
  162. let obj = COMMON_SELECT.SEC_KILL_CURRENT_STATUS.find(o => o.value === value);
  163. return obj ? obj.label : ''
  164. }
  165. /**
  166. * 消息类型
  167. */
  168. export function NOTICE_CURRENT_TYPE_FILTER(value) {
  169. let obj = COMMON_SELECT.NOTICE_CURRENT_TYPE.find(o => o.value === value);
  170. return obj ? obj.label : ''
  171. }
  172. /**
  173. * 线下销售状态
  174. */
  175. export function OFFLINE_STATUS_FILTER(value) {
  176. let obj = COMMON_SELECT.OFFLINE_STATUS.find(o => o.value == value);
  177. return obj ? obj.label : ''
  178. }
  179. /**
  180. * 线下销售类型
  181. */
  182. export function OFFLINE_TYPE_FILTER(value) {
  183. let obj = COMMON_SELECT.OFFLINE_TYPE.find(o => o.value === value);
  184. return obj ? obj.label : ''
  185. }
  186. /**
  187. * 优惠码状态
  188. */
  189. export function DISCODE_STATUS_FILTER(value) {
  190. let obj = COMMON_SELECT.DISCODE_STATUS.find(o => o.value === value);
  191. return obj ? obj.label : ''
  192. }