index.vue 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. <template>
  2. <view class="">
  3. <view class="choose-tab">
  4. <view class="tab-list">
  5. <view class="tab" v-for="(item,index) in tabList" :key="index" @click="handleTab(item,index)">
  6. {{item.label}}
  7. </view>
  8. </view>
  9. <view class="box" v-show="show">
  10. <view class="item " v-for="(item,index) in list" :key="index" @click="choose(item)">
  11. {{item.label}}
  12. </view>
  13. </view>
  14. </view>
  15. <view class="choose-modal" v-show="show" @click="show = false">
  16. </view>
  17. </view>
  18. </template>
  19. <script>
  20. export default {
  21. data() {
  22. return {
  23. show:false,
  24. list:[],
  25. tabList: [{
  26. id: 1,
  27. label: '区域',
  28. list: [
  29. {
  30. label: '观山湖'
  31. },
  32. {
  33. label: '白云区'
  34. },
  35. {
  36. label: '花果山区'
  37. }
  38. ]
  39. },
  40. {
  41. id: 1,
  42. label: '全部分类',
  43. list: [{
  44. label: '甜点饮品'
  45. },
  46. {
  47. label: '特色美食'
  48. },
  49. {
  50. label: '风味小吃'
  51. }
  52. ]
  53. },
  54. {
  55. id: 1,
  56. label: '智能排序',
  57. list: [
  58. {
  59. label: '距离优先'
  60. },
  61. {
  62. label: '销量优先'
  63. },
  64. {
  65. label: '低价优先'
  66. }
  67. ]
  68. },
  69. {
  70. id: 1,
  71. label: '附近',
  72. list: [
  73. {
  74. label: '500m'
  75. },
  76. {
  77. label: '1KM'
  78. },
  79. {
  80. label: '2KM'
  81. }
  82. ]
  83. },
  84. ]
  85. }
  86. },
  87. methods: {
  88. handleTab(item) {
  89. this.list = item.list
  90. this.$nextTick(()=>{
  91. this.show = true
  92. })
  93. },
  94. choose(item){
  95. this.show = false
  96. },
  97. },
  98. }
  99. </script>
  100. <style lang="less" scoped>
  101. .choose-modal {
  102. position: fixed;
  103. top: 0;
  104. left: 0;
  105. width: 100%;
  106. height: 100%;
  107. background: rgba(0, 0, 0, .4);
  108. z-index: 99;
  109. }
  110. .choose-tab {
  111. position: fixed;
  112. top: 0;
  113. left: 0;
  114. width: 100%;
  115. z-index: 100;
  116. .tab-list{
  117. display: flex;
  118. align-items: center;
  119. padding: 22rpx;
  120. background: #fff;
  121. .tab {
  122. background: #F0F0F0;
  123. border-radius: 8rpx 8rpx 8rpx 8rpx;
  124. height: 40rpx;
  125. line-height: 40rpx;
  126. color: #222222;
  127. font-size: 24rpx;
  128. padding: 0 20rpx;
  129. margin-right: 16rpx;
  130. }
  131. }
  132. .box{
  133. background: #fff;
  134. border-radius: 0rpx 0rpx 16rpx 16rpx;
  135. padding: 14rpx 0;
  136. .item{
  137. font-size: 24rpx;
  138. color: #222222;
  139. padding: 14rpx 24rpx;
  140. }
  141. }
  142. }
  143. </style>