parkingInformation.vue 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. <template>
  2. <view class="parking-information">
  3. <view class="parking-information-slider">
  4. <image src="../../static/img/parking-info-bg.png" mode=""></image>
  5. </view>
  6. <view class="parking-information-content">
  7. <view class="parking-information-content-title">
  8. <view class="pict-left">
  9. <view class="title">{{ roadInfo.areaName }}</view>
  10. <view class="subtitle">{{ roadInfo.roadName }}</view>
  11. </view>
  12. <view class="pict-right" @click="navigation(roadInfo.latitude, roadInfo.longitude, roadInfo.areaName)">
  13. <image src="../../static/img/distance-icon.png" mode=""></image>
  14. <view class="m">{{ roadInfo.distance | kmUnit }}</view>
  15. </view>
  16. </view>
  17. <view class="parking-information-content-time">
  18. <view
  19. >服务时间:<text>{{ roadInfo.workBeginTime }}-{{ roadInfo.workEndTime }}</text></view
  20. >
  21. <view
  22. >包月费用:<text>{{ roadInfo.monthAmount }}</text
  23. >元</view
  24. >
  25. </view>
  26. <view class="parking-information-content-cars">
  27. <view class="picc-tag">
  28. <view>{{ roadInfo.spaceTotal }}</view>
  29. <view>共有车位</view>
  30. </view>
  31. <view class="picc-tag">
  32. <view>{{ roadInfo.spaceIdle }}</view>
  33. <view>空闲车位</view>
  34. </view>
  35. </view>
  36. <view class="parking-information-content-price" @click="lookParkingRule(roadInfo)">
  37. <text>点击查看停车规则</text>
  38. <u-icon name="arrow-right"></u-icon>
  39. </view>
  40. <u-button class="parking-information-content-button" @click="createMonth(roadInfo)">办理包月</u-button>
  41. </view>
  42. <u-select v-model="mapSelect" :list="mapSelectList" @confirm="mapSelectConfirm"></u-select>
  43. </view>
  44. </template>
  45. <script>
  46. export default {
  47. data() {
  48. return {
  49. roadInfo: [],
  50. latitude: '',
  51. longitude: '',
  52. mapSelect: false,
  53. mapSelectList: [
  54. {
  55. value: '1',
  56. label: '腾讯地图'
  57. },
  58. {
  59. value: '2',
  60. label: '百度地图'
  61. },
  62. {
  63. value: '3',
  64. label: '高德地图'
  65. }
  66. ],
  67. // 选中位置经纬度
  68. currentPositionHover: {}
  69. };
  70. },
  71. onLoad(page) {
  72. this.roadInfo = JSON.parse(page.roadInfo);
  73. const { latitude, longitude, roadInfo } = page;
  74. this.latitude = latitude;
  75. this.longitude = longitude;
  76. this.roadInfo = JSON.parse(roadInfo);
  77. console.log('this.roadInfo', this.roadInfo);
  78. },
  79. methods: {
  80. /**
  81. * 跳转停车标准页面
  82. * {roadNo} 路段编码
  83. * */
  84. lookParkingRule(item) {
  85. this.$u.route({
  86. url: 'pages/chargeStandard/chargeStandard',
  87. params: {
  88. roadNo: item.roadNo
  89. }
  90. });
  91. },
  92. createMonth(item) {
  93. this.$u.route({
  94. url: 'pages/handleMonthly/handleMonthly',
  95. params: {
  96. roadNo: item.roadNo
  97. }
  98. });
  99. },
  100. /**
  101. * 导航
  102. * */
  103. navigation(latitude, longitude, areaName) {
  104. this.currentPositionHover = {
  105. latitude,
  106. longitude,
  107. areaName
  108. };
  109. this.mapSelect = true;
  110. },
  111. // 多地图选择
  112. mapSelectConfirm(item) {
  113. const name = item[0].label;
  114. switch (name) {
  115. case '腾讯地图':
  116. // uni.navigateTo({
  117. // url:
  118. // '/pages/parkingLists/map_web_view/map_web_view?url=https://3gimg.qq.com/lightmap/v1/marker/?marker=coord:' +
  119. // this.currentPositionHover.latitude +
  120. // ',' +
  121. // this.currentPositionHover.longitude +
  122. // '&referer=myApp&key=BOGBZ-2BZ33-O4L32-Y3QJR-PGN66-RFFEL'
  123. // });
  124. location.href = `https://apis.map.qq.com/uri/v1/routeplan?type=drive&from=我的位置&fromcoord=${this.latitude},${this.longitude}&to=${this.currentPositionHover.areaName}&tocoord=${this.currentPositionHover.latitude},${this.currentPositionHover.longitude}&policy=1&referer=BOGBZ-2BZ33-O4L32-Y3QJR-PGN66-RFFEL`;
  125. break;
  126. case '百度地图':
  127. location.href = `http://api.map.baidu.com/marker?location=
  128. ${this.currentPositionHover.latitude},${this.currentPositionHover.longitude}&title=目的地&content=${this.currentPositionHover.areaName}
  129. &output=html&src=webapp.baidu.openAPIdemo`;
  130. break;
  131. case '高德地图':
  132. console.log(this.longitude);
  133. // const gdurl = `https://uri.amap.com/navigation?from=${this.currentPosition.longitude},${this.currentPosition.latitude},起点&to=${this.currentPositionHover.longitude},${this.currentPositionHover.latitude},终点&mode=car&policy=1&src=mypage&coordinate=gaode&callnative=0`;
  134. // window.location.href = gdurl;
  135. location.href = `https://uri.amap.com/navigation?from=${this.longitude},${this.latitude},我的位置&to=${this.currentPositionHover.longitude},${this.currentPositionHover.latitude},${this.currentPositionHover.areaName}&mode=car&policy=1&src=mypage&coordinate=gaode&callnative=0`;
  136. break;
  137. }
  138. }
  139. }
  140. };
  141. </script>
  142. <style lang="scss" scoped>
  143. @import './parkingInformation';
  144. </style>