select-shop.vue 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. <template>
  2. <view class="select-site-box iPhone-bottom flex-common-css box-border-box">
  3. <Nav title='选择站点'></Nav>
  4. <scroll-view class="scroll-view-css box-border-box p-24" scroll-y="true">
  5. <view class="list-item" :class="id == item.id?'s-b':''"
  6. v-for="(item,i) in list" :key="i" @click="selectFun(item)">
  7. <image v-if="true" class="jlzj-box" src="@/static/img/buy/jlzj.png" mode=""></image>
  8. <view class="display-flex mr-18">
  9. <view class="list-item-s">
  10. <image v-if="id == item.id" src="@/static/img/common/y-select.png" mode=""></image>
  11. <image v-else src="@/static/img/common/n-select.png" mode=""></image>
  12. </view>
  13. <image class="img-1" :src="item.logo" mode="scaleToFill"></image>
  14. <view class="w292">
  15. <view class="fs-32 fw-600 fc-0">{{item.name}}</view>
  16. <view class="fs-26 fw-400 fc-9">{{item.city_name}}{{item.address}}</view>
  17. </view>
  18. </view>
  19. <view class="box-right text-align-center" >
  20. <view class="">
  21. <view class="fs-28 mb-12">去下单</view>
  22. <view class="fs-26 fc-9">距您你{{item.distance}}km</view>
  23. </view>
  24. </view>
  25. </view>
  26. </scroll-view>
  27. </view>
  28. </template>
  29. <script>
  30. import {laundrySite} from '@/api/laundry.js';
  31. import tools from "@/service/tools";
  32. export default {
  33. data(){
  34. return{
  35. id:'',
  36. list:[],
  37. }
  38. },
  39. onLoad(e) {
  40. if(e.id){
  41. this.id = Number(e.id);
  42. }
  43. this.getList();
  44. },
  45. methods:{
  46. getList(){
  47. let obj = {
  48. school_id:uni.getStorageSync('school_id'),
  49. lon:uni.getStorageSync('lon'),
  50. lat:uni.getStorageSync('lat'),
  51. }
  52. laundrySite(obj).then((res)=>{
  53. if(res.code === 1){
  54. this.list = res.data;
  55. }
  56. })
  57. },
  58. selectFun(item){
  59. let obj = JSON.stringify(item);
  60. this.id = item.id;
  61. uni.reLaunch({
  62. url:'/pages-buy/dry-clean?data=' + encodeURIComponent(obj)
  63. })
  64. },
  65. },
  66. }
  67. </script>
  68. <style scoped lang="scss">
  69. .select-site-box{
  70. .box-right{
  71. border-left: 2rpx solid #eee;
  72. display: flex;
  73. align-items: center;
  74. box-sizing: border-box;
  75. padding-left: 42rpx;
  76. }
  77. .w292{
  78. width: 292rpx;
  79. }
  80. .list-item{
  81. width: 100%;
  82. min-height: 162rpx;
  83. background: #FFFFFF;
  84. border-radius: 20rpx 20rpx 20rpx 20rpx;
  85. margin-bottom: 20rpx;
  86. box-sizing: border-box;
  87. padding: 24rpx 32rpx 20rpx 80rpx;
  88. position: relative;
  89. display: flex;
  90. .jlzj-box{
  91. width: 118rpx;
  92. height: 44rpx;
  93. position: absolute;
  94. right: 0rpx;
  95. top: -1rpx;
  96. }
  97. .img-1{
  98. width: 80rpx;
  99. height: 80rpx;
  100. border-radius: 8rpx;
  101. margin-right: 20rpx;
  102. }
  103. .w-490{
  104. width: 490rpx;
  105. }
  106. .list-item-s{
  107. position: absolute;
  108. left: 24rpx;
  109. top: 45%;
  110. image{
  111. width: 32rpx;
  112. height: 32rpx;
  113. }
  114. }
  115. }
  116. .s-b{
  117. border: 2rpx solid #41ABF5;
  118. }
  119. }
  120. </style>