group.vue 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. <template>
  2. <SaleLayout>
  3. <QuickType></QuickType>
  4. <!-- 票种列表 -->
  5. <TickList
  6. ref="ticketList"
  7. type-id="2"
  8. slot="left"
  9. v-model="currentTicket"
  10. ></TickList>
  11. <div slot="right">
  12. <div>
  13. <!-- 昭苏团体票打折定制 -->
  14. <FormInfoZhaosu
  15. v-if="['昭苏'].includes(scenicName)"
  16. ref="formInfo"
  17. style="margin-bottom:10px"
  18. :current-ticket="currentTicket"
  19. :order-items="orderItems"></FormInfoZhaosu>
  20. <!-- 其他景区保持原样 -->
  21. <FormInfo
  22. v-else
  23. ref="formInfo"
  24. style="margin-bottom:10px"
  25. :current-ticket="currentTicket"
  26. :order-items="orderItems"></FormInfo>
  27. </div>
  28. <div>
  29. <!-- 昭苏团体票打折定制 -->
  30. <OrderInfoZhaosu
  31. v-if="['昭苏'].includes(scenicName)"
  32. style="margin-bottom:10px"
  33. @clear="handleClear"
  34. ref="orderInfo"
  35. :current-ticket="currentTicket"
  36. v-model="orderItems"></OrderInfoZhaosu>
  37. <OrderInfoMingtou
  38. v-else-if="['铭投山庄','大陈岛景区'].includes(scenicName)"
  39. style="margin-bottom:10px"
  40. @clear="handleClear"
  41. ref="orderInfo"
  42. v-model="orderItems"></OrderInfoMingtou>
  43. <OrderInfo
  44. v-else
  45. style="margin-bottom:10px"
  46. @clear="handleClear"
  47. ref="orderInfo"
  48. v-model="orderItems"></OrderInfo>
  49. </div>
  50. <!-- 售票记录 -->
  51. <OrderRecord ref="orderRecord"></OrderRecord>
  52. </div>
  53. </SaleLayout>
  54. </template>
  55. <script>
  56. import SaleLayout from '@/layout/SaleLayout'
  57. import TickList from './common/TicketList'
  58. import QuickType from './common/QuickType'
  59. import FormInfo from './group/FormInfo'
  60. import FormInfoZhaosu from './group/FormInfoZhaosu'
  61. import OrderInfo from './group/OrderInfo'
  62. import OrderInfoZhaosu from './group/OrderInfoZhaosu'
  63. import OrderInfoMingtou from './group/OrderInfoMingtou.vue'
  64. import OrderRecord from './common/OrderRecord'
  65. import handleKeyBind from './common/keyBind'
  66. export default {
  67. data () {
  68. return {
  69. currentTicket: null,
  70. orderItems: []
  71. }
  72. },
  73. components: {
  74. SaleLayout,
  75. TickList,
  76. FormInfo,
  77. FormInfoZhaosu,
  78. QuickType,
  79. OrderInfo,
  80. OrderInfoZhaosu,
  81. OrderInfoMingtou,
  82. OrderRecord
  83. },
  84. computed: {
  85. scenicName () {
  86. return this.$localStore.get('scenicName') || this.$store.state.user.scenicName
  87. }
  88. },
  89. mounted () {
  90. this.keyBind = e => {
  91. handleKeyBind(e, this)
  92. }
  93. document.addEventListener('keydown', this.keyBind, true)
  94. },
  95. methods: {
  96. handleClear () {
  97. this.orderItems = []
  98. this.$refs.formInfo.$refs.form.clearValidate()
  99. }
  100. },
  101. beforeDestroy () {
  102. // 离开时,卸载事件
  103. document.removeEventListener('keydown', this.keyBind, true)
  104. }
  105. }
  106. </script>