TicketInfo.vue 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <template>
  2. <el-form
  3. inline
  4. class="dialog-info"
  5. label-width="90px"
  6. >
  7. <el-form-item label="销售价格">
  8. {{ data.price }} 元
  9. </el-form-item>
  10. <el-form-item label="游玩天数">
  11. {{ data.useDays }}
  12. </el-form-item>
  13. <el-form-item label="可售日期">
  14. {{ data.saleDateStart | formatDate }} - {{ data.saleDateEnd | formatDate }}
  15. </el-form-item>
  16. <el-form-item label="可用日期">
  17. {{ data.useDateStart | formatDate }} - {{ data.useDateEnd | formatDate }}
  18. </el-form-item>
  19. <el-form-item label="核销规则">
  20. {{ checkRules }}
  21. </el-form-item>
  22. <el-form-item label="核销凭证">
  23. {{ checkTypes }}
  24. </el-form-item>
  25. <div
  26. class="block-wrap">
  27. <div class="block-title">
  28. 适用景点及检票次数
  29. </div>
  30. <ul class="pill-wrap">
  31. <li
  32. class="pill"
  33. v-for="(item,index) in ticketTypeScenicList"
  34. :key="index">
  35. <span>{{ item.scenicName }}</span>
  36. <span>{{ item.checkLimitTimes !== -1 ? `${item.checkLimitTimes}次` : '不限次' }} </span>
  37. </li>
  38. </ul>
  39. </div>
  40. </el-form>
  41. </template>
  42. <script>
  43. import { checkTypeDic, checkRuleDic } from '@/const'
  44. const matchItem = (value, dic) => {
  45. const item = dic.find(item => `${item.value}` === `${value}`)
  46. if (item) {
  47. return item.label
  48. }
  49. return ''
  50. }
  51. export default {
  52. props: {
  53. data: {
  54. type: Object,
  55. default: () => {}
  56. }
  57. },
  58. data () {
  59. return {
  60. checkRules: [],
  61. checkTypes: [],
  62. ticketTypeScenicList: []
  63. }
  64. },
  65. filters: {
  66. complicatedCheckType (arr) {
  67. switch (arr[0]) {
  68. case 1:
  69. switch (arr[1]) {
  70. case 1:
  71. return `单人按次 单独限制`
  72. case 2:
  73. return `单人按次 批量限制 共可检${arr[3]}次`
  74. default:
  75. return ''
  76. }
  77. case 2:
  78. switch (arr[2]) {
  79. case 0:
  80. return `按有效期 截止到票种有效期`
  81. default:
  82. return `按有效期 ${arr[2]}天`
  83. }
  84. default:
  85. return ''
  86. }
  87. }
  88. },
  89. watch: {
  90. data: {
  91. handler (val) {
  92. this.checkRules = val.checkRule ? val.checkRule.split(',').map(item => matchItem(item, checkRuleDic)).join('&') : ''
  93. this.checkTypes = val.checkType ? val.checkType.split(',').map(item => matchItem(item, checkTypeDic)).join('&') : ''
  94. this.ticketTypeScenicList = val.ticketTypeScenicList || []
  95. },
  96. immediate: true
  97. }
  98. }
  99. }
  100. </script>