filters.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. import Vue from "vue";
  2. import {
  3. TEMPLATE_CLASSIFY,
  4. TEMPLATE_TYPE,
  5. EXAM_TASK_STATUS,
  6. AUDITING_STATUS,
  7. AUDITING_RESULT,
  8. PRINT_PLAN_STATUS,
  9. PRINT_TASK_STATUS,
  10. DATA_TASK_STATUS,
  11. DATA_TASK_TYPE,
  12. DATA_TASK_RESULT,
  13. ORG_TYPE,
  14. CARD_SOURCE_TYPE,
  15. MARK_TASK_SYNC_STATUS,
  16. STMMS_SYNC_TYPE,
  17. SYNC_PRINT_STATUS,
  18. PRINT_PDF_TYPE,
  19. EXAM_TYPE,
  20. CARD_TYPE,
  21. PUSH_CARD_TYPE,
  22. CARD_CREATE_METHOD_TYPE,
  23. FLOW_APPROVE_OPERATION_TYPE,
  24. ANALYSIS_BATCH_STATUS,
  25. EXAM_NUMBER_STYLE,
  26. FLOW_TYPE,
  27. MARK_MODE_TYPE,
  28. STUDENT_STATUS,
  29. EVALUATION_MODE,
  30. COURSE_TYPE,
  31. } from "../constants/enumerate";
  32. import { formatDate } from "../plugins/utils";
  33. const DEFAULT_FIELD = "--";
  34. Vue.filter("defaultFieldFilter", function (val) {
  35. return val || val === 0 ? val : DEFAULT_FIELD;
  36. });
  37. Vue.filter("enableFilter", function (val) {
  38. return val ? "启用" : "禁用";
  39. });
  40. Vue.filter("templateClassifyFilter", function (val) {
  41. return TEMPLATE_CLASSIFY[val] || DEFAULT_FIELD;
  42. });
  43. Vue.filter("templateTypeFilter", function (val) {
  44. return TEMPLATE_TYPE[val] || DEFAULT_FIELD;
  45. });
  46. Vue.filter("orgsFilter", function (val) {
  47. return val.map((item) => item.name).join();
  48. });
  49. Vue.filter("rolesFilter", function (val) {
  50. return val.map((item) => item.name).join();
  51. });
  52. Vue.filter("coursesFilter", function (val) {
  53. return val.map((item) => `${item.name}(${item.code})`).join(",");
  54. });
  55. Vue.filter("examTaskStatusFilter", function (val) {
  56. return EXAM_TASK_STATUS[val] || DEFAULT_FIELD;
  57. });
  58. Vue.filter("auditStatusFilter", function (val) {
  59. return AUDITING_STATUS[val] || DEFAULT_FIELD;
  60. });
  61. Vue.filter("reviewStatusFilter", function (val) {
  62. return AUDITING_RESULT[val] || DEFAULT_FIELD;
  63. });
  64. Vue.filter("printPlanStatusFilter", function (val) {
  65. return PRINT_PLAN_STATUS[val] || DEFAULT_FIELD;
  66. });
  67. Vue.filter("printTaskStatusFilter", function (val) {
  68. return PRINT_TASK_STATUS[val] || DEFAULT_FIELD;
  69. });
  70. Vue.filter("dataTaskTypeFilter", function (val) {
  71. return DATA_TASK_TYPE[val] || DEFAULT_FIELD;
  72. });
  73. Vue.filter("dataTaskStatusFilter", function (val) {
  74. return DATA_TASK_STATUS[val] || DEFAULT_FIELD;
  75. });
  76. Vue.filter("dataTaskResultFilter", function (val) {
  77. return DATA_TASK_RESULT[val] || DEFAULT_FIELD;
  78. });
  79. Vue.filter("orgTypeFilter", function (val) {
  80. return ORG_TYPE[val] || DEFAULT_FIELD;
  81. });
  82. Vue.filter("cardSourceTypeFilter", function (val) {
  83. return CARD_SOURCE_TYPE[val] || DEFAULT_FIELD;
  84. });
  85. Vue.filter("timestampFilter", function (val) {
  86. return val
  87. ? formatDate("YYYY-MM-DD HH:mm:ss", new Date(val * 1))
  88. : DEFAULT_FIELD;
  89. });
  90. Vue.filter("flowTaskNameFilter", function (val) {
  91. return val ? val.replace(/\(.+?\)/g, "") : DEFAULT_FIELD;
  92. });
  93. Vue.filter("markTaskSyncStatusFilter", function (val) {
  94. return MARK_TASK_SYNC_STATUS[val] || "失败";
  95. });
  96. Vue.filter("stmmsSyncTypeFilter", function (val) {
  97. return STMMS_SYNC_TYPE[val] || DEFAULT_FIELD;
  98. });
  99. Vue.filter("syncPrintStatusFilter", function (val) {
  100. return SYNC_PRINT_STATUS[val] || DEFAULT_FIELD;
  101. });
  102. Vue.filter("printPdfTypeFilter", function (val) {
  103. return PRINT_PDF_TYPE[val] || DEFAULT_FIELD;
  104. });
  105. Vue.filter("examTypeFilter", function (val) {
  106. return EXAM_TYPE[val] || DEFAULT_FIELD;
  107. });
  108. Vue.filter("cardTypeFilter", function (val) {
  109. return CARD_TYPE[val] || DEFAULT_FIELD;
  110. });
  111. Vue.filter("pushCardTypeFilter", function (val) {
  112. return PUSH_CARD_TYPE[val] || DEFAULT_FIELD;
  113. });
  114. Vue.filter("cardCreateMethodTypeFilter", function (val) {
  115. return CARD_CREATE_METHOD_TYPE[val] || DEFAULT_FIELD;
  116. });
  117. Vue.filter("flowApproveOperationTypeFilter", function (val) {
  118. return FLOW_APPROVE_OPERATION_TYPE[val] || "";
  119. });
  120. Vue.filter("flowTypeFilter", function (val) {
  121. return FLOW_TYPE[val] || "";
  122. });
  123. Vue.filter("analysisBatchStatusFilter", function (val) {
  124. return ANALYSIS_BATCH_STATUS[val] || DEFAULT_FIELD;
  125. });
  126. Vue.filter("examNumberStyleFilter", function (val) {
  127. return EXAM_NUMBER_STYLE[val] || DEFAULT_FIELD;
  128. });
  129. Vue.filter("markModeTypeFilter", function (val) {
  130. return MARK_MODE_TYPE[val] || DEFAULT_FIELD;
  131. });
  132. Vue.filter("studentStatusFilter", function (val) {
  133. return STUDENT_STATUS[val] || DEFAULT_FIELD;
  134. });
  135. Vue.filter("evaluationModeFilter", function (val) {
  136. return EVALUATION_MODE[val] || DEFAULT_FIELD;
  137. });
  138. Vue.filter("courseTypeFilter", function (val) {
  139. return COURSE_TYPE[val] || DEFAULT_FIELD;
  140. });