vueFilters.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. import Vue from 'vue'
  2. // 乐团状态
  3. Vue.filter('bandStatus', value => {
  4. let templateStatus = {
  5. APPLY: '报名中',
  6. PAY: '缴费中',
  7. PREPARE: '筹备中',
  8. UNDERWAY: '进行中',
  9. CANCELED: '取消'
  10. }
  11. return templateStatus[value]
  12. })
  13. // 课程类型
  14. Vue.filter('coursesType', (value) => {
  15. let template = {
  16. NORMAL: '声部课',
  17. SINGLE: '声部课',
  18. MIX: "合奏课",
  19. HIGH: "基础技能课",
  20. VIP: "VIP课",
  21. DEMO: "试听课",
  22. COMPREHENSIVE: '综合课',
  23. ENLIGHTENMENT: '启蒙课',
  24. TRAINING: '集训课',
  25. TRAINING_SINGLE: '集训声部课',
  26. TRAINING_MIX: '集训合奏课',
  27. CLASSROOM: '课堂课',
  28. PRACTICE: '网管课',
  29. COMM: '对外课',
  30. MUSIC: '乐团课',
  31. HIGH_ONLINE: '线上基础技能课',
  32. MUSIC_NETWORK: '乐团网管课'
  33. }
  34. return template[value]
  35. })
  36. // 合并数组
  37. Vue.filter('joinArray', (value, type) => {
  38. if (!type) {
  39. type = ' '
  40. }
  41. if (typeof value == 'object' && value != null) {
  42. return value.join(type)
  43. } else {
  44. return value
  45. }
  46. })
  47. // 数据类型
  48. Vue.filter('dataStatusCN', value => {
  49. let templateStatus = {
  50. '到课': '',
  51. '请假': 'truant',
  52. '旷课': 'leave'
  53. }
  54. return templateStatus[value]
  55. })
  56. // 考勤类型
  57. Vue.filter('clockingIn', value => {
  58. let templateStatus = {
  59. NORMAL: "正常",
  60. TRUANT: "旷课",
  61. LEAVE: "请假",
  62. QUIT_SCHOOL: "休学",
  63. DROP_OUT: "退学"
  64. }
  65. return templateStatus[value]
  66. })
  67. // 课程类型
  68. Vue.filter('teachModeStatus', value => {
  69. let templateStatus = {
  70. ONLINE: "线上课",
  71. OFFLINE: "线下课"
  72. }
  73. return templateStatus[value]
  74. })
  75. // 消耗类型
  76. Vue.filter('periodRecordStatus', value => {
  77. let templateStatus = {
  78. NOT_START: "未开始",
  79. APPLYING: "报名中",
  80. NORMAL: "正常",
  81. LOCK: "锁定",
  82. FINISH: "结束",
  83. CANCEL: "取消"
  84. }
  85. return templateStatus[value]
  86. })
  87. // 计算分钟数
  88. Vue.filter('calcMinute', (minute) => {
  89. if (minute <= 0) {
  90. return '0分钟'
  91. }
  92. let minutes = minute % 60 // 算出分钟
  93. let hours = 0 // 小时
  94. if (minute >= 60) {
  95. hours = (minute - minutes) / 60
  96. }
  97. let text = ''
  98. if (hours) {
  99. text = hours + '小时'
  100. }
  101. if (minutes) {
  102. text += minutes + '分钟'
  103. }
  104. return text
  105. })
  106. Vue.filter('formatDate', value => {
  107. let d = new Date(value.replace(/-/ig, '/'))
  108. let hour = d.getHours() >= 10 ? d.getHours() : '0' + d.getHours()
  109. let minute = d.getMinutes() >= 10 ? d.getMinutes() : '0' + d.getMinutes()
  110. return hour + ':' + minute
  111. })
  112. Vue.filter('formatTimer', (value) => {
  113. if (value) {
  114. return value.split(' ')[0]
  115. } else {
  116. return value
  117. }
  118. })