vueFilter.js 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847
  1. import Vue from "vue";
  2. import dayjs from "dayjs";
  3. import numeral from "numeral";
  4. import * as constant from "../constant";
  5. // 合并数组
  6. Vue.filter("joinArray", (value, type) => {
  7. if (!type) {
  8. type = " ";
  9. }
  10. if (typeof value == "object" && value != null) {
  11. return value.join(type);
  12. } else {
  13. return value;
  14. }
  15. });
  16. // 合作单位
  17. Vue.filter("branchType", value => {
  18. let template = {
  19. OWN: "自有",
  20. COOPERATION: "合作",
  21. LEASE: "租赁"
  22. };
  23. return template[value];
  24. });
  25. // 商品类型
  26. Vue.filter("shopType", value => {
  27. let template = {
  28. INSTRUMENT: "乐器",
  29. ACCESSORIES: "辅件",
  30. TEACHING: "教材",
  31. STAFF: "教谱",
  32. OTHER: "其它"
  33. };
  34. return template[value];
  35. });
  36. // 乐团学员状态
  37. Vue.filter("musicGroupStudentType", value => {
  38. let template = {
  39. NORMAL: "在读",
  40. LEAVE: "请假",
  41. QUIT: "退团",
  42. APPLY: "报名"
  43. };
  44. return template[value];
  45. });
  46. // 乐团学员状态
  47. Vue.filter("instrumentType", value => {
  48. let template = {
  49. GROUP: "团购",
  50. OWNED: "自备",
  51. LEASE: "租赁"
  52. };
  53. return template[value];
  54. });
  55. // 课程类型
  56. Vue.filter("coursesType", value => {
  57. let template = {
  58. NORMAL: "声部课",
  59. SINGLE: "声部课",
  60. MIX: "合奏课",
  61. HIGH: "基础技能课",
  62. VIP: "VIP课",
  63. DEMO: "试听课",
  64. COMPREHENSIVE: "综合课",
  65. // PRACTICE: '练习课',
  66. ENLIGHTENMENT: "启蒙课",
  67. TRAINING: "集训课",
  68. TRAINING_SINGLE: "集训声部课",
  69. TRAINING_MIX: "集训合奏课",
  70. CLASSROOM: "课堂课",
  71. PRACTICE: "网管课",
  72. COMM: "对外课",
  73. MUSIC: "乐团课",
  74. HIGH_ONLINE: "线上基础技能课",
  75. MUSIC_NETWORK: "乐团网管课"
  76. };
  77. return template[value];
  78. });
  79. // 课程状态
  80. Vue.filter("coursesStatus", value => {
  81. let template = {
  82. NOT_START: "未开始",
  83. UNDERWAY: "进行中",
  84. OVER: "已结束"
  85. };
  86. return template[value];
  87. });
  88. // 考勤类型
  89. Vue.filter("clockingIn", value => {
  90. let templateStatus = {
  91. NORMAL: "正常",
  92. TRUANT: "旷课",
  93. LEAVE: "请假",
  94. QUIT_SCHOOL: "休学",
  95. DROP_OUT: "退学",
  96. LATE: "迟到"
  97. };
  98. return templateStatus[value];
  99. });
  100. // 学员状态
  101. Vue.filter("studentTeamStatus", value => {
  102. let templateStatus = {
  103. NORMAL: "在读",
  104. QUIT: "退团",
  105. QUIT_SCHOOL: "休学",
  106. APPLY: "报名"
  107. };
  108. return templateStatus[value];
  109. });
  110. // 时间处理
  111. Vue.filter("dayjsFormat", (value, format = "YYYY-MM-DD") => {
  112. if (value) {
  113. return dayjs(value).format(format);
  114. } else {
  115. return value;
  116. }
  117. });
  118. Vue.filter("dayjsFormatWeek", value => {
  119. if (value) {
  120. return dayjs(value).format("YYYY-MM");
  121. } else {
  122. return value;
  123. }
  124. });
  125. // courseViewType
  126. Vue.filter("dayjsFormatMinute", value => {
  127. if (value) {
  128. return dayjs(value).format("HH:mm");
  129. } else {
  130. return value;
  131. }
  132. });
  133. Vue.filter("formatTimer", value => {
  134. if (value) {
  135. return value.split(" ")[0];
  136. } else {
  137. return value;
  138. }
  139. });
  140. Vue.filter("formatSecondTimer", value => {
  141. if (value) {
  142. return dayjs(value).format("HH:mm:ss");
  143. } else {
  144. return value;
  145. }
  146. });
  147. Vue.filter("timerForMinFormat", value => {
  148. if (value) {
  149. return value.substring(0, 5);
  150. } else {
  151. return value;
  152. }
  153. });
  154. Vue.filter("dateForMinFormat", value => {
  155. if (value) {
  156. return value.substring(0, 16);
  157. } else {
  158. return value;
  159. }
  160. });
  161. // 乐团状态
  162. Vue.filter("musicGroupType", value => {
  163. // let template = {
  164. // APPLY: "报名中",
  165. // PAY: "缴费中",
  166. // PREPARE: "筹备中",
  167. // PROGRESS: "进行中",
  168. // CANCELED: '取消',
  169. // PAUSE: '暂停',
  170. // AUDIT: '审核中',
  171. // DRAFT: '编辑中',
  172. // AUDIT_FAILED: '审核失败'
  173. // }
  174. return constant.musicGroupType[value];
  175. });
  176. Vue.filter("paymentPatternTypeFormat", val => constant.paymentPatternType[val]);
  177. // 支付用户类型
  178. Vue.filter("payUserTypeFormat", val => constant.payUserType[val]);
  179. // 支付缴费方式
  180. Vue.filter("userPaymentTypeFormat", val => constant.userPaymentType[val]);
  181. // 课程类型格式化
  182. Vue.filter("courseTypeFormat", val => constant.courseType[val]);
  183. // 格式化签到签退记录 updateAttendanceEnum
  184. Vue.filter("updateAttendanceEnum", val => constant.updateAttendanceEnum[val]);
  185. Vue.filter("clientTypeFilter", val => constant.clientTypeFilter[val]);
  186. // 机构状态
  187. Vue.filter("organState", val => constant.organState[val]);
  188. // 机构缴费状态
  189. Vue.filter("organPayState", val => constant.organPayState[val]);
  190. // 教学伴奏
  191. Vue.filter("clientType", val => constant.clientStatus[val]);
  192. // 会员周期
  193. Vue.filter('memberEnumType',val=> {
  194. let template = {
  195. "DAY": '天',
  196. ...constant.memberEnum
  197. }
  198. // constant.memberEnum[val]
  199. return template[val]
  200. })
  201. // 优惠券类型
  202. Vue.filter("coupontypeDetailType", val => constant.coupontypeDetail[val]);
  203. // 学员回访状态 feedbackType
  204. Vue.filter("feedbackTypeFilter", val => constant.feedbackType[val]);
  205. Vue.filter("feedbackTypeDescFilter", val => constant.feedbackTypeDesc[val]);
  206. // 时间处理
  207. Vue.filter("timer", value => {
  208. if (value) {
  209. let tempDate = new Date(value);
  210. let month =
  211. tempDate.getHours() >= 10
  212. ? tempDate.getHours()
  213. : "0" + tempDate.getHours();
  214. let days =
  215. tempDate.getMinutes() >= 10
  216. ? tempDate.getMinutes()
  217. : "0" + tempDate.getMinutes();
  218. return month + ":" + days;
  219. } else {
  220. return value;
  221. }
  222. });
  223. // 格式化成星期
  224. Vue.filter("formatWeek", date => {
  225. let nd = new Date(date);
  226. let temp = [
  227. "星期天",
  228. "星期一",
  229. "星期二",
  230. "星期三",
  231. "星期四",
  232. "星期五",
  233. "星期六"
  234. ];
  235. return temp[nd.getDay()];
  236. });
  237. // 职位
  238. Vue.filter("jobType", value => {
  239. let template = {
  240. ADVISER: "指导老师",
  241. ACADEMIC: "乐团主管",
  242. TEACHING: "乐队指导"
  243. };
  244. return template[value];
  245. });
  246. // 工作类型
  247. Vue.filter("jobNature", value => {
  248. return constant.jobNature[value];
  249. });
  250. // 发券方式
  251. Vue.filter("issueType", value => {
  252. return constant.issue[value];
  253. });
  254. // 考勤状态
  255. Vue.filter("attendanceType", value => {
  256. let template = {
  257. 0: "异常",
  258. 1: "正常",
  259. 3: "未签到"
  260. };
  261. return template[value];
  262. });
  263. // 考情签退
  264. Vue.filter("attendanceOutType", value => {
  265. let template = {
  266. 0: "异常",
  267. 1: "正常",
  268. 3: "未签退"
  269. };
  270. return template[value];
  271. });
  272. // 上课类型
  273. Vue.filter("workType", value => {
  274. return constant.workType[value];
  275. });
  276. // 交易类型
  277. Vue.filter("orderType", value => constant.orderType[value]);
  278. //
  279. Vue.filter("paymentChannelType", value => {
  280. let template = {
  281. PER: "个人",
  282. COM: "公司"
  283. };
  284. return template[value];
  285. });
  286. // 交易状态
  287. Vue.filter("dealStatus", value => {
  288. let template = {
  289. ING: "交易中",
  290. SUCCESS: "成功交易",
  291. FAILED: "交易失败",
  292. CLOSE: "交易关闭"
  293. };
  294. return template[value];
  295. });
  296. // 交易状态
  297. Vue.filter("returnStatus", value => {
  298. let template = {
  299. ING: "审核中",
  300. REJECT: "拒绝",
  301. WAIT_PAYMENT: "待支付",
  302. DONE: "完成"
  303. };
  304. return template[value];
  305. });
  306. // 缴费状态
  307. Vue.filter("payTypeStatus", val => {
  308. return constant.payStatus[val];
  309. });
  310. // 性别
  311. Vue.filter("sex", value => {
  312. let template = ["女", "男"];
  313. return template[value];
  314. });
  315. // 服从调剂 isAllowAdjust
  316. Vue.filter("isAllowAdjust", value => {
  317. let template = ["否", "是"];
  318. return template[value];
  319. });
  320. // 学员缴费状态 paymentStatus
  321. Vue.filter("paymentStatus", value => {
  322. let template = ["未开启缴费", "开启缴费", "已缴费"];
  323. return template[value];
  324. });
  325. // 乐团状态
  326. // Vue.filter('teamStatus', value => {
  327. // let template = {
  328. // PRE_APPLY: "预报名中",
  329. // APPLY: "报名中",
  330. // PAY: "缴费中",
  331. // PREPARE: "筹备中",
  332. // PROGRESS: "进行中",
  333. // PRE_BUILD_FEE: '创建缴费中',
  334. // CANCELED: '取消',
  335. // PAUSE: '暂停',
  336. // AUDIT: '乐团审核中',
  337. // DRAFT: '编辑中',
  338. // AUDIT_FAILED: '审核失败',
  339. // FEE_AUDIT: '费用审核中',
  340. // CLOSE: '已关闭',
  341. // }
  342. // return template[value]
  343. // })
  344. // 学生状态
  345. /**studentStatus */
  346. Vue.filter("studentStatus", value => {
  347. let template = ["在读", "已退课", "退课中", "休学"];
  348. return template[value];
  349. });
  350. // 学生点名
  351. Vue.filter("studentRecord", value => {
  352. let template = {
  353. NORMAL: "正常",
  354. TRUANT: "旷课",
  355. LEAVE: "请假",
  356. DROP_OUT: "退学",
  357. LATE: "迟到",
  358. "": "未签到"
  359. };
  360. return template[value];
  361. });
  362. // 是否
  363. Vue.filter("yesOrNo", value => {
  364. let template = ["否", "是"];
  365. return template[value];
  366. });
  367. // 学员缴费状态
  368. Vue.filter("studentPay", value => {
  369. let template = {
  370. PAID_COMPLETED: "完成缴费",
  371. NON_PAYMENT: "未缴费",
  372. PROCESSING: "缴费中"
  373. };
  374. return template[value];
  375. });
  376. // 学员点名详情
  377. Vue.filter("studentSign", value => {
  378. let template = {
  379. NORMAL: "正常",
  380. TRUANT: "旷课",
  381. LEAVE: "请假",
  382. DROP_OUT: "退学",
  383. LATE: "迟到"
  384. };
  385. return template[value];
  386. });
  387. // 班级类型
  388. Vue.filter("classType", value => {
  389. let template = {
  390. NORMAL: "声部班",
  391. MIX: "合奏班",
  392. HIGH: "基础技能班",
  393. VIP: "VIP",
  394. DEMO: "试听",
  395. SNAP: "临时班",
  396. PRACTICE: "网管课",
  397. HIGH_ONLINE: "线上基础技能课",
  398. MUSIC_NETWORK: "乐团网管课"
  399. };
  400. return template[value];
  401. });
  402. Vue.filter("teachMode", value => {
  403. return constant.teachMode[value];
  404. });
  405. // 老师状态
  406. Vue.filter("teacherStatus", value => {
  407. let template = {
  408. "0": "正常",
  409. "1": "冻结",
  410. "9": "锁定"
  411. };
  412. return template[value];
  413. });
  414. // vip课状态
  415. Vue.filter("vipCourseStatus", value => {
  416. let template = {
  417. 0: "未开始",
  418. 1: "报名中",
  419. 5: "报名结束",
  420. 2: "进行中",
  421. 4: "已结束",
  422. 3: "取消",
  423. 6: "暂停"
  424. };
  425. return template[value];
  426. });
  427. // 账号类型
  428. Vue.filter("accountTypeFormat", value => {
  429. let template = {
  430. 0: "对内",
  431. 1: "对外"
  432. };
  433. return template[value];
  434. });
  435. // 扣减库存
  436. Vue.filter("stockTypeFormat", value => {
  437. let template = {
  438. INTERNAL: "内部",
  439. EXTERNAL: "外部",
  440. ALL: "内部,外部"
  441. };
  442. return template[value];
  443. });
  444. // 交易状态
  445. Vue.filter("paymentChannelStatus", value => {
  446. let template = {
  447. YQPAY: "双乾",
  448. BALANCE: "余额",
  449. ADAPAY: "汇付"
  450. };
  451. return template[value];
  452. });
  453. // edition
  454. Vue.filter("editionFilter", value => {
  455. let template = {
  456. "ios-teacher": "苹果-老师端",
  457. "ios-student": "苹果-学生端",
  458. "ios-education": "苹果-管理端",
  459. "android-teacher": "安卓-老师端",
  460. "android-student": "安卓-学生端",
  461. "android-education": "安卓-管理端"
  462. };
  463. return template[value];
  464. });
  465. // payStatus 订单支付状态
  466. Vue.filter("payStatus", value => {
  467. let template = {
  468. WAIT_PAY: "等待支付",
  469. ING: "交易中",
  470. SUCCESS: "成功交易",
  471. FAILED: "交易失败",
  472. CLOSE: "交易关闭"
  473. };
  474. return template[value];
  475. });
  476. // payType 交易类型
  477. Vue.filter("payType", value => {
  478. let template = {
  479. RECHARGE: "充值",
  480. WITHDRAW: "提现",
  481. PAY_FEE: "缴费",
  482. SPORADIC: "零星收费",
  483. FILL_ACCOUNT: "人工补账",
  484. REFUNDS: "退费",
  485. REWARDS: "奖励",
  486. WAGE: "工资"
  487. };
  488. return template[value];
  489. });
  490. // 课程组状态 FINISH
  491. Vue.filter("courseGroup", value => {
  492. let template = {
  493. NORMAL: "正常",
  494. LOCK: "锁定",
  495. FINISH: "结束",
  496. CANCEL: "取消"
  497. };
  498. return template[value];
  499. });
  500. // 网管课程组
  501. Vue.filter("comCourseGroup", value => {
  502. let template = {
  503. NOT_START: "未开始",
  504. LOCK: "锁定",
  505. APPLYING: "报名中",
  506. NORMAL: "进行中",
  507. FINISH: "结束",
  508. CANCEL: "关闭"
  509. };
  510. return template[value];
  511. });
  512. //网管课类型
  513. Vue.filter("comType", value => {
  514. let template = {
  515. FREE: "免费",
  516. CHARGE: "收费",
  517. TRIAL: "试听课",
  518. CARE_PACKAGE: "关心包",
  519. COME_ON_PACKAGE: "加油包"
  520. };
  521. return template[value];
  522. });
  523. // 首充续费
  524. Vue.filter("firstOrRenewFilter", value => {
  525. let template = {
  526. "0": "续费",
  527. "1": "首次"
  528. };
  529. return template[value];
  530. });
  531. // 老师时间
  532. Vue.filter("transTypeFilter", value => {
  533. let template = {
  534. RECHARGE: "充值",
  535. CONSUME: "建课",
  536. RETURN: "退课",
  537. MANUAL_ADD: "系统充值",
  538. MANUAL_SUB: "系统扣除"
  539. };
  540. return template[value];
  541. });
  542. // paymentType
  543. Vue.filter("paymentType", value => {
  544. let template = {
  545. OFFLINE: "线下",
  546. ONLINE: "线上",
  547. ALL: "全部"
  548. };
  549. return template[value];
  550. });
  551. Vue.filter("paymentListStatus", value => {
  552. let template = {
  553. 0: "未开始",
  554. 1: "已开启",
  555. 2: "已结束"
  556. };
  557. return template[value];
  558. });
  559. // paymentStatus
  560. Vue.filter("paymentStatusDetall", value => {
  561. let template = {
  562. PAID_COMPLETED: "已缴费",
  563. PROCESSING: "缴费中",
  564. NON_PAYMENT: "未缴费"
  565. };
  566. return template[value];
  567. });
  568. Vue.filter("replacementInsFilter", value => {
  569. let template = {
  570. 2: "已缴费",
  571. 1: "缴费中",
  572. 0: "未缴费"
  573. };
  574. return template[value];
  575. });
  576. // 课时申诉
  577. Vue.filter("complaintsStatusEnum", value => {
  578. let template = {
  579. 0: "已拒绝",
  580. 1: "已通过",
  581. 2: "待处理",
  582. 3: "已撤销"
  583. };
  584. return template[value];
  585. });
  586. // 人事状态 isProbationPeriod
  587. Vue.filter("isProbationPeriod", value => {
  588. let template = {
  589. 0: "正式",
  590. 1: "试用",
  591. 2: "离职"
  592. };
  593. return template[value];
  594. });
  595. Vue.filter("visiterType", value => {
  596. let template = {
  597. TEACHER: "指导老师",
  598. EDU_TEACHER: "乐团主管"
  599. };
  600. return template[value];
  601. });
  602. // 人力资源人员状态
  603. Vue.filter("hrStatus", value => {
  604. let template = {
  605. NOT_EMPLOYED: "未录用",
  606. INTERVIEWING: "面试中",
  607. RESERVE: "储备",
  608. PART_TIME: "兼职",
  609. FULL_TIME: "全职",
  610. DIMISSION: "离职",
  611. BLACK_LIST: "黑名单"
  612. };
  613. return template[value];
  614. });
  615. // 费用类型
  616. Vue.filter("feeType", value => {
  617. return constant.feeType[value];
  618. });
  619. // 费用项目
  620. Vue.filter("feeProject", value => {
  621. return constant.feeProject[value];
  622. });
  623. // 销售类型
  624. Vue.filter("saleType", value => {
  625. return constant.saleType[value];
  626. });
  627. // 退费类型 backType
  628. Vue.filter("backType", value => {
  629. return constant.backType[value];
  630. });
  631. // 缴费状态
  632. Vue.filter("teamPayStatus", value => {
  633. const tpl = {
  634. 0: "按月",
  635. 1: "按学期",
  636. 2: "一次性"
  637. };
  638. return tpl[value];
  639. });
  640. Vue.filter("numberFormat", value => {
  641. return numeral(value).format("0,0");
  642. });
  643. // 金额格式化
  644. Vue.filter("moneyFormat", (value, unit = false) => {
  645. if (unit) {
  646. return numeral(value).format("0,0.00") + "元";
  647. } else {
  648. return numeral(value).format("0,0.00");
  649. }
  650. });
  651. Vue.filter("hasMoneyFormat", value => {
  652. if (value) {
  653. return numeral(value).format("0,0.00") + "元";
  654. } else {
  655. return "--";
  656. }
  657. });
  658. Vue.filter("stockTypeStatus", value => {
  659. const template = {
  660. INTERNAL: "内部",
  661. EXTERNAL: "外部",
  662. ALL: "全部"
  663. };
  664. return template[value];
  665. });
  666. // 确认收货类型
  667. Vue.filter("receiveFormat", value => {
  668. let template = {
  669. NO_RECEIVE: "未确认",
  670. MANUAL_RECEIVE: "手动确认",
  671. AUTO_RECEIVE: "自动确认"
  672. };
  673. return template[value];
  674. });
  675. // 缴费方式
  676. Vue.filter("payOrderType", value => {
  677. return constant.payOrderType[value];
  678. });
  679. // 审核状态 auditType
  680. Vue.filter("auditType", value => {
  681. return constant.auditType[value];
  682. });
  683. // 审核申请类型 auditPaymentType
  684. Vue.filter("auditPaymentType", value => {
  685. return constant.auditPaymentType[value];
  686. });
  687. // 销售收入和服务收入
  688. Vue.filter("orderServer", value => {
  689. return constant.orderServerType[value];
  690. });
  691. // 订单审核状态 orderAuditType
  692. Vue.filter("orderAuditType", value => {
  693. constant.orderAuditType[""] = "审核通过";
  694. return constant.orderAuditType[value];
  695. });
  696. Vue.filter("songUseTypeFormat", value => {
  697. return constant.songUseType[value];
  698. });
  699. Vue.filter("rewardModeTypeFormat", value => {
  700. return constant.rewardModeType[value];
  701. });
  702. // 系统日志类型
  703. Vue.filter("journalTypeFormat", value => {
  704. return constant.journalType[value];
  705. });
  706. // 日程安排 inspectionItem
  707. Vue.filter("inspectionItemFormat", value => {
  708. return constant.inspectionItem[value];
  709. });
  710. // 学员列表关心包,加油包
  711. Vue.filter("studentPackage", value => {
  712. return constant.packageStatus[value];
  713. });
  714. // 分部 学年制
  715. Vue.filter("gradeTypeFormat", value => {
  716. return constant.gradeType[value];
  717. });
  718. // 老师状态
  719. Vue.filter("ProbationPeriod", value => {
  720. return constant.ProbationPeriodStatus[value];
  721. });
  722. // 下载列表 类型
  723. // downListType
  724. Vue.filter("downListType", value => {
  725. return constant.downListType[value];
  726. });
  727. // 退团状态
  728. Vue.filter("withdrawalStatus", value => {
  729. return constant.withdrawalStatus[value];
  730. });
  731. //
  732. Vue.filter("conclusionStatus", value => {
  733. return constant.conclusion[value];
  734. });
  735. Vue.filter("courseViewType", value => {
  736. return constant.courseViewType[value];
  737. });
  738. Vue.filter("couponTypeFilter", value => {
  739. return constant.couponType[value];
  740. });
  741. // couponType
  742. Vue.filter("tenantStatus", value => {
  743. return constant.tenantStatus[value];
  744. });
  745. Vue.filter("cloudGroupActive", value => {
  746. let template = {
  747. 1: "天数",
  748. 2: "月度",
  749. 3: "季度",
  750. 4: "半年",
  751. 5: "年度"
  752. };
  753. return template[value];
  754. });
  755. Vue.filter("chargingStatus", value => {
  756. return constant.chargingStatus[value];
  757. });
  758. Vue.filter("usageStatus", value => {
  759. let obj = {
  760. 0: "未使用",
  761. 1: "已使用",
  762. 2: "已过期"
  763. };
  764. return obj[value];
  765. });
  766. Vue.filter("liveState", value => {
  767. let obj = {
  768. 0: "未开始",
  769. 1: "直播中",
  770. 2: "已结束"
  771. };
  772. return obj[value];
  773. });