chooseSeat.vue 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. <template>
  2. <view class="movie">
  3. <anil-seat
  4. ref="anilSeat"
  5. :title="info.movieName"
  6. :info="info.showTime.substring(5)+' '+ info.version"
  7. :day="info.showTime"
  8. :room-name="info.hall"
  9. :seat-data="seatData"
  10. :max="6"
  11. @confirm="onConfirmSeat">
  12. </anil-seat>
  13. </view>
  14. </template>
  15. <script>
  16. import {
  17. seatData
  18. } from '@/utils/seat-data.js';
  19. import {getSeat} from '@/api/movie'
  20. export default {
  21. data() {
  22. return {
  23. info:{
  24. movieName:'',
  25. showTime:'',
  26. version:'',
  27. hall:'',
  28. },
  29. list:[],
  30. query:{
  31. sessionId:'',
  32. cinemaId:'',
  33. movieId:'',
  34. }
  35. }
  36. },
  37. methods: {
  38. onConfirmSeat (items) {
  39. console.log(items)
  40. let seatArr = items.map(item=>{
  41. return item.SeatName
  42. })
  43. let seatIdArr = items.map(item=>{
  44. return item.SeatCode
  45. })
  46. let originPriceArr = items.map(item=>{
  47. return item.originPrice
  48. })
  49. let priceArr = items.map(item=>{
  50. return item.Price
  51. })
  52. console.log(originPriceArr,priceArr);
  53. let that = this
  54. uni.navigateTo({
  55. url:`/pay/pay1`,
  56. success: function(res) {
  57. let info = {
  58. sessionId:that.query.sessionId,
  59. cityId:uni.getStorageSync('movieCityId'),
  60. cinemaId:that.query.cinemaId,
  61. movieId:that.query.movieId,
  62. movieCode:that.query.movieCode,
  63. cityName:uni.getStorageSync('city'),
  64. cinemaName:that.info.cinemaName,
  65. cinemaCode:that.info.cinemaCode,
  66. hallName:that.info.hall,
  67. movieName:that.info.movieName,
  68. seatNames:seatArr.toString(),
  69. cinemaAddress:that.info.cinemaAddress,
  70. sessionBeginTime:that.info.sessionBeginTime,
  71. sessionEndTime:that.info.sessionEndTime,
  72. originalSeatIds:seatIdArr.toString(),
  73. postImageUrl:that.info.postImageUrl,
  74. originPrice:originPriceArr,
  75. price:priceArr,
  76. // originPrice:Array.from(new Set(originPriceArr)),
  77. // price:Array.from(new Set(priceArr)),
  78. }
  79. // 通过eventChannel向被打开页面传送数据
  80. res.eventChannel.emit('pay', info)
  81. }
  82. })
  83. },
  84. getSeat(){
  85. getSeat(this.query).then(res=>{
  86. if(res.state == 'Success'){
  87. res.content.data.seatSection.seatRows.map(item=>{
  88. item.columns.map(i=>{
  89. if(i.colId){
  90. let price = res.content.data.sellPrice
  91. let originPrice = res.content.data.originPrice
  92. if(res.content.data.areaPriceList.length){
  93. res.content.data.areaPriceList.map(pItem=>{
  94. if(pItem.areaId == i.areaId){
  95. price = pItem.price
  96. originPrice = pItem.originPrice
  97. }
  98. })
  99. }
  100. let obj = {
  101. "YCoord": item.rowsNum,
  102. "XCoord": i.colNum,
  103. "SeatCode": i.originSeatID,
  104. "RowNum": item.rowsNum,
  105. "ColumnNum": i.colNum,
  106. "SeatName":i.seatName,
  107. "areaId":i.areaId,
  108. "originPrice": originPrice,
  109. "Price": price
  110. }
  111. if(i.type == 2){
  112. obj.flag = 1
  113. }else if(i.type == 3){
  114. obj.flag = 2
  115. }
  116. if(i.state == 0){//非座位
  117. obj.Status = -1
  118. }else if(i.state == 1||i.state == 10||i.state == 11){//可选
  119. obj.Status = 0
  120. }else if(i.state == 2 || i.state == 3){//不可选
  121. obj.Status = 2
  122. }
  123. this.list.push(obj)
  124. }
  125. })
  126. })
  127. this.$nextTick(()=>{
  128. console.log(222222,this.list);
  129. this.$refs['anilSeat'].initData(this.list)
  130. })
  131. this.info = {
  132. movieCode:res.content.data.movieCode,
  133. postImageUrl:res.content.data.postImageUrl,
  134. sessionBeginTime:res.content.data.showTime,
  135. sessionEndTime:res.content.data.endTime,
  136. cinemaAddress:res.content.data.cinemaAddress,
  137. cinemaName:res.content.data.cinemaName,
  138. cinemaCode:res.content.data.cinemaCode,
  139. movieName:res.content.data.movieName,
  140. showTime: uni.$u.timeFormat(new Date(res.content.data.showTime).getTime(), 'yyyy-mm-dd hh:MM'),
  141. version:res.content.data.version,
  142. hall:res.content.data.hall,
  143. }
  144. }
  145. })
  146. }
  147. },
  148. onLoad(options) {
  149. this.query.sessionId = options.sessionId
  150. this.query.cinemaId = options.cinemaId
  151. this.query.movieId = options.movieId
  152. this.getSeat()
  153. console.log(1111,this.list);
  154. // 座位图初始化 - seatData座位数据
  155. }
  156. }
  157. </script>
  158. <style lang="scss" scoped>
  159. .movie{
  160. }
  161. </style>