index.vue 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. <template>
  2. <div class="af-container">
  3. <!--头部-->
  4. <div class="header">
  5. <div class="store-name">
  6. <p>
  7. <img src="./image/icon_music@2x.png" alt="">
  8. <span>星桥店</span>
  9. </p>
  10. </div>
  11. <div class="open-time">
  12. <p>
  13. <img src="./image/icon_time@2x.png" alt="">
  14. <span>11:00-01:00开放预订</span>
  15. </p>
  16. </div>
  17. </div>
  18. <!--预约日期-->
  19. <van-tabs
  20. class="af-van-tab"
  21. :background="'transparent'"
  22. :ellipsis="false"
  23. :sticky="true"
  24. v-model="active"
  25. @change="handleChange"
  26. ref="afTabs">
  27. <van-tab
  28. v-for="(item, index) in placeList"
  29. :key="index">
  30. <template #title>
  31. <p class="week">{{ item.week }}</p>
  32. <p class="date">{{ item.date }}</p>
  33. </template>
  34. <div class="place-list" v-for="i in 10" :key="i">
  35. <div class="left">
  36. <p class="name">12人卡座(舞台中间)</p>
  37. <p class="des">卡座台费2800元</p>
  38. </div>
  39. <div class="right" v-if="false">
  40. <p class="price">¥ 1000</p>
  41. <p class="btn-wrap">
  42. <span class="btn">立即预订</span>
  43. <van-icon name="arrow" size="12px"/>
  44. </p>
  45. </div>
  46. <!--座位被定完-->
  47. <div class="sell-out">
  48. <img src="./image/sell_out@2x.png" alt="">
  49. <div>
  50. <p class="price disabled">¥ 1000</p>
  51. <p class="sell-des">已订满</p>
  52. </div>
  53. </div>
  54. </div>
  55. </van-tab>
  56. </van-tabs>
  57. <!--选择-->
  58. <van-popup
  59. v-model="showPopup"
  60. position="bottom"
  61. style="background: transparent;height: 90%;">
  62. <div class="af-popup-main">
  63. <van-icon
  64. class="af-van-icon"
  65. name="clear"
  66. size="28"/>
  67. <div class="af-popup-header">
  68. <div class="date-wrap">
  69. <p class="date">04月27日(今日)</p>
  70. <p class="title">AF HOUSE 音乐空间</p>
  71. </div>
  72. <p class="outlet-name">星桥店</p>
  73. <p class="place-name">12人卡座(舞台中间)</p>
  74. </div>
  75. <div class="af-popup-body">
  76. <p class="tip">
  77. <span>最晚到店时间</span>
  78. <span>(最晚为您保留15分钟,可提前入场)</span>
  79. </p>
  80. <div class="width-335">
  81. <p class="time">21:15</p>
  82. <p class="people-label">到店人数</p>
  83. <div class="people-options">
  84. <span
  85. v-for="i in 12"
  86. :key="i">{{ i }}人</span>
  87. </div>
  88. <van-field
  89. class="af-van-cell"
  90. v-model="tel"
  91. type="tel"
  92. label="联系方式"/>
  93. <div class="name-wrap">
  94. <van-field
  95. class="af-van-cell"
  96. v-model="name"
  97. label="您的称呼"/>
  98. <p class="gender">
  99. <span
  100. v-for="(item, index) in ['先生', '女士']"
  101. :key="index">{{ item }}</span>
  102. </p>
  103. </div>
  104. <p class="explain">可抵扣到店消费,支付后需等待商家确认</p>
  105. <p class="explain">预定不成功自动退款,</p>
  106. <p class="explain">
  107. <span
  108. style="color: #D32323;"
  109. v-for="(str, index) in '预定到店时间已不足8小时'"
  110. :key="'a' + index">{{ str }}</span>
  111. <span
  112. v-for="(str, index) in ',下单后不可退订,不可转让'"
  113. :key="'b' + index">{{ str }}</span>
  114. </p>
  115. <div class="payment-type">
  116. <p class="active">
  117. <img
  118. class="icon"
  119. src="./image/ic_select@2x.png"
  120. alt="">
  121. <img
  122. class="alipay"
  123. src="./image/ic_Alipay_sel@2x.png"
  124. alt="" v-if="true">
  125. <img
  126. class="alipay"
  127. src="./image/ic_Alipay_nor@2x.png"
  128. alt="" v-else>
  129. <span>支付宝支付</span>
  130. </p>
  131. <p>
  132. <img
  133. class="icon"
  134. src="./image/ic_select@2x.png"
  135. alt="">
  136. <img
  137. class="wechat"
  138. src="./image/ic_WeChat_sel@2x.png"
  139. alt=""
  140. v-if="true">
  141. <img
  142. class="wechat"
  143. src="./image/ic_WeChat_nor@2x.png"
  144. alt=""
  145. v-else>
  146. <span>微信支付</span>
  147. </p>
  148. </div>
  149. </div>
  150. </div>
  151. <div class="af-popup-footer">
  152. <p class="count">
  153. <span>预付:</span>
  154. <span>¥1000</span>
  155. </p>
  156. <p class="btn">确认支付</p>
  157. </div>
  158. </div>
  159. </van-popup>
  160. </div>
  161. </template>
  162. <script>
  163. import { Tabs, Tab, Icon, Popup, Field } from 'vant'
  164. export default {
  165. name: 'index',
  166. components: {
  167. 'van-tabs': Tabs,
  168. 'van-tab': Tab,
  169. 'van-icon': Icon,
  170. 'van-popup': Popup,
  171. 'van-field': Field
  172. },
  173. data () {
  174. return {
  175. placeList: [
  176. {
  177. id: 1,
  178. week: '今日',
  179. date: '04/27'
  180. },
  181. {
  182. id: 2,
  183. week: '周三',
  184. date: '04/28'
  185. },
  186. {
  187. id: 3,
  188. week: '周四',
  189. date: '04/29'
  190. },
  191. {
  192. id: 4,
  193. week: '周五',
  194. date: '04/30'
  195. },
  196. {
  197. id: 2,
  198. week: '周三',
  199. date: '04/28'
  200. },
  201. {
  202. id: 3,
  203. week: '周四',
  204. date: '04/29'
  205. },
  206. {
  207. id: 4,
  208. week: '周五',
  209. date: '04/30'
  210. }
  211. ],
  212. active: 0,
  213. listData: [],
  214. showPopup: false,
  215. tel: '13429176706',
  216. name: ''
  217. }
  218. },
  219. async mounted () {
  220. await this.$nextTick()
  221. },
  222. methods: {
  223. handleChange () {}
  224. }
  225. }
  226. </script>
  227. <style lang="scss" scoped>
  228. @import "./style/index";
  229. </style>