工行这里学车报名流程h5
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

263 lines
6.0 KiB

1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
  1. <template>
  2. <view class="content">
  3. <u-navbar title="优享驾培"></u-navbar>
  4. <view class="content">
  5. <view class="topCon">
  6. <view class="tag" @click="$goPage('/pages/payRecords/payRecords')">
  7. <image src="@/static/images/home_img_pay@2x.png" mode=""></image>
  8. </view>
  9. <view class="cardBox">
  10. <view class="card">
  11. <view class="h1">
  12. <view class="h1Icon">
  13. <image src="@/static/images/home_icon_btzuo@3x.png" mode=""></image>
  14. </view>
  15. <view class="txt">专属服务与优惠</view>
  16. <view class="h1Icon">
  17. <image src="@/static/images/home_icon_btyou@3x.png" mode=""></image>
  18. </view>
  19. </view>
  20. <view class="item_Box">
  21. <view class="h2">优质的服务</view>
  22. <view class="text">1.专属优享驾培服务团队优秀教练员施教</view>
  23. <view class="text">2.提供一人一方案培训教学考试服务</view>
  24. </view>
  25. <view class="item_Box">
  26. <view class="h2">优惠的价格</view>
  27. <view class="text">1.为工会会员提供9.5折专享优惠价格</view>
  28. <view class="text">2.工会会员可为家庭成员代报名同享9.5</view>
  29. </view>
  30. </view>
  31. </view>
  32. </view>
  33. <view class="listCon">
  34. <view class="h1">
  35. <view class="h1Icon">
  36. <image src="@/static/images/home_icon_btzuo@3x.png" mode=""></image>
  37. </view>
  38. <view class="txt">优质驾校</view>
  39. <view class="h1Icon">
  40. <image src="@/static/images/home_icon_btyou@3x.png" mode=""></image>
  41. </view>
  42. </view>
  43. <view class="area">
  44. <view class="areaLab">选择区/</view>
  45. <view class="areaChoose" @click="show=true">
  46. <view class="txt">{{ regionName }}</view>
  47. <view class="iconImg">
  48. <image src="@/static/images/home_icon_xiahei@3x.png" mode=""></image>
  49. </view>
  50. </view>
  51. </view>
  52. <list :listData="listData"/>
  53. <view class="" style="padding: 40rpx 0 0 0; ">
  54. <u-loadmore :status="status" icon-type="circle" />
  55. </view>
  56. </view>
  57. </view>
  58. <u-picker mode="selector" v-model="show" :range="region" @confirm="confirmRegion" range-key="regionName"></u-picker>
  59. </view>
  60. </template>
  61. <script>
  62. import list from './comp/list.vue'
  63. import indexApi from '@/api/index.js'
  64. export default {
  65. components: {
  66. list
  67. },
  68. data() {
  69. return {
  70. status: 'loadmore',
  71. queryParams: {
  72. pageIndex: 1,
  73. pageSize: 30,
  74. lat: 30.27419537786047,
  75. trainingScope: '',
  76. lng: 120.20633397715788,
  77. schoolName: ''
  78. },
  79. show: false,
  80. listData: [],
  81. region: [],
  82. regionName: '杭州市'
  83. }
  84. },
  85. onLoad() {
  86. this.listInit()
  87. this.queryRegionByParentCodeFn()
  88. const latLng = this.$u.utils.getLocation()
  89. console.log(latLng)
  90. },
  91. onReachBottom() {
  92. if(this.status=='nomore') return
  93. this.queryTrainingSchoolListFromAppFn()
  94. },
  95. onPullDownRefresh() {
  96. this.listInit()
  97. setTimeout(()=>{
  98. uni.stopPullDownRefresh()
  99. },1500)
  100. },
  101. methods: {
  102. listInit() {
  103. this.status=='loadmore'
  104. this.queryParams.pageIndex = 1
  105. this.listData = []
  106. this.queryTrainingSchoolListFromAppFn()
  107. },
  108. // 选择区域
  109. confirmRegion(i) {
  110. let index = i[0]
  111. let item = this.region[index]
  112. this.queryParams.district = item.regionCode
  113. this.regionName = item.regionName
  114. this.listInit()
  115. },
  116. // 获取区域数据
  117. async queryRegionByParentCodeFn() {
  118. const [nulls, res] = await indexApi.queryRegionByParentCode()
  119. this.region = res.data
  120. },
  121. // 列表
  122. async queryTrainingSchoolListFromAppFn() {
  123. let obj = {}
  124. for(let key in this.queryParams) {
  125. if(this.queryParams[key]) {
  126. obj[key] = this.queryParams[key]
  127. }
  128. }
  129. const [nulls,res] = await indexApi.queryTrainingSchoolListFromApp(obj)
  130. this.queryParams.pageIndex ++
  131. this.listData.push(...res.data)
  132. console.log('驾校列表')
  133. console.log(res.data)
  134. if(res.data.length<this.queryParams.pageSize) this.status = 'nomore'
  135. },
  136. }
  137. }
  138. </script>
  139. <style lang="scss" scoped>
  140. .h1 {
  141. display: flex;
  142. justify-content: center;
  143. height: 96rpx;
  144. align-items: center;
  145. .h1Icon {
  146. width: 36rpx;
  147. height: 20rpx;
  148. }
  149. .txt {
  150. font-size: 32rpx;
  151. color: #333;
  152. padding: 0 12rpx;
  153. }
  154. }
  155. .topCon {
  156. width: 100%;
  157. height: 792rpx;
  158. padding: 0 32rpx;
  159. background: url('../../static/images/home_bg_dingbu@3x.png') no-repeat;
  160. background-size: 100% 100%;
  161. position: relative;
  162. .tag {
  163. position: absolute;
  164. right: 0;
  165. top: 96rpx;
  166. width: 40rpx;
  167. height: 146rpx;
  168. }
  169. .cardBox {
  170. position: absolute;
  171. bottom: 0;
  172. left: 0rpx;
  173. width: 100%;
  174. height: 504rpx;
  175. padding: 0 32rpx;
  176. .card {
  177. background: #FFFFFF;
  178. border-radius: 16rpx;
  179. padding: 0 24rpx 24rpx 24rpx;
  180. .item_Box {
  181. width: 100%;
  182. height: 180rpx;
  183. background: #F2F9FF;
  184. border-radius: 16rpx;
  185. padding: 24rpx 0 0 0;
  186. color: #333;
  187. margin-bottom: 16rpx;
  188. .h2 {
  189. font-size: 32rpx;
  190. position: relative;
  191. padding: 0 0 8rpx 26rpx;
  192. font-weight: 600;
  193. &::before {
  194. position: absolute;
  195. content: '';
  196. left: 0;
  197. top: 8rpx;
  198. width: 6rpx;
  199. height: 28rpx;
  200. background: #1989FA;
  201. border-radius: 0px 6rpx 6rpx 0px;
  202. }
  203. }
  204. .text {
  205. font-size: 28rpx;
  206. padding: 2rpx 26rpx;
  207. }
  208. }
  209. }
  210. }
  211. }
  212. .listCon {
  213. width: 100%;
  214. background: #FFFFFF;
  215. border-radius: 32rpx 32rpx 0px 0px;
  216. padding: 0 32rpx 32rpx 32rpx;
  217. margin-top: 32rpx;
  218. .area {
  219. display: flex;
  220. align-items: center;
  221. font-size: 28rpx;
  222. color: #686B73;
  223. margin-bottom: 40rpx;
  224. .areaLab {
  225. font-size: 28rpx;
  226. color: #686B73;
  227. margin-right: 16rpx;
  228. }
  229. .areaChoose {
  230. height: 56rpx;
  231. background: #F6F7F8;
  232. border-radius: 8rpx;
  233. padding: 8rpx 16rpx;
  234. display: flex;
  235. align-items: center;
  236. .txt {
  237. font-size: 28rpx;
  238. color: #686B73;
  239. }
  240. .iconImg {
  241. width: 24rpx;
  242. height: 24rpx;
  243. margin-left: 8rpx;
  244. }
  245. }
  246. }
  247. }
  248. </style>