vueFilters.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. import Vue from 'vue'
  2. import * as constant from '../constant'
  3. // 乐团状态
  4. Vue.filter('bandStatus', value => {
  5. let templateStatus = {
  6. APPLY: '报名中',
  7. PAY: '缴费中',
  8. PREPARE: '筹备中',
  9. UNDERWAY: '进行中',
  10. CANCELED: '取消'
  11. }
  12. return templateStatus[value]
  13. })
  14. // 课程类型
  15. Vue.filter('coursesType', val => constant.courseType[val])
  16. // 合并数组
  17. Vue.filter('joinArray', (value, type) => {
  18. if (!type) {
  19. type = ' '
  20. }
  21. if (typeof value == 'object' && value != null) {
  22. return value.join(type)
  23. } else {
  24. return value
  25. }
  26. })
  27. // 数据类型
  28. Vue.filter('dataStatusCN', value => {
  29. let templateStatus = {
  30. '到课': '',
  31. '请假': 'truant',
  32. '旷课': 'leave'
  33. }
  34. return templateStatus[value]
  35. })
  36. // 考勤类型
  37. Vue.filter('clockingIn', value => {
  38. let templateStatus = {
  39. NORMAL: "正常",
  40. TRUANT: "旷课",
  41. LEAVE: "请假",
  42. QUIT_SCHOOL: "休学",
  43. DROP_OUT: "退学"
  44. }
  45. return templateStatus[value]
  46. })
  47. // 课程类型
  48. Vue.filter('teachModeStatus', value => {
  49. let templateStatus = {
  50. ONLINE: "线上课",
  51. OFFLINE: "线下课"
  52. }
  53. return templateStatus[value]
  54. })
  55. // 消耗类型
  56. Vue.filter('periodRecordStatus', value => {
  57. let templateStatus = {
  58. NOT_START: "未开始",
  59. APPLYING: "报名中",
  60. NORMAL: "正常",
  61. LOCK: "锁定",
  62. FINISH: "结束",
  63. CANCEL: "取消"
  64. }
  65. return templateStatus[value]
  66. })
  67. // 计算分钟数
  68. Vue.filter('calcMinute', (minute) => {
  69. if (minute <= 0) {
  70. return '0分钟'
  71. }
  72. let minutes = minute % 60 // 算出分钟
  73. let hours = 0 // 小时
  74. if (minute >= 60) {
  75. hours = (minute - minutes) / 60
  76. }
  77. let text = ''
  78. if (hours) {
  79. text = hours + '小时'
  80. }
  81. if (minutes) {
  82. text += minutes + '分钟'
  83. }
  84. return text
  85. })
  86. Vue.filter('formatDate', value => {
  87. let d = new Date(value.replace(/-/ig, '/'))
  88. let hour = d.getHours() >= 10 ? d.getHours() : '0' + d.getHours()
  89. let minute = d.getMinutes() >= 10 ? d.getMinutes() : '0' + d.getMinutes()
  90. return hour + ':' + minute
  91. })
  92. Vue.filter('formatTimer', (value) => {
  93. if (value) {
  94. return value.split(' ')[0]
  95. } else {
  96. return value
  97. }
  98. })
  99. // 格式化单位
  100. Vue.filter('formatUnit', value => {
  101. const template = {
  102. 1: '元',
  103. 2: '%'
  104. }
  105. return template[value]
  106. })