carGroup.vue 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. <template>
  2. <view class="content">
  3. <homenav :iStatusBarHeight="iStatusBarHeight" :title="'车型选择'"></homenav>
  4. <view class="top">
  5. <image :src="optdata.logo" mode="" class="logoImg"></image>
  6. <view class="topname">
  7. {{optdata.brand}}-{{optdata.manufactor}}-{{optdata.carSeries}}-{{optdata.displacement}}
  8. </view>
  9. </view>
  10. <view class="ts">
  11. <image src="../../static/img/icon_xuanze.png" mode="" class="tsImg"></image>
  12. <view class="tsTxt">请选择车型</view>
  13. </view>
  14. <view class="linebox">
  15. <view class="line" v-for="(item,index) in carGroupList" @click="goItem(item)">
  16. {{item.title}}
  17. </view>
  18. </view>
  19. <uni-popup ref="popup" type="bottom" background-color="#fff">
  20. <view class="popupTitle">请选择发动机</view>
  21. <view style="popupLineBox">
  22. <view @click="ckengin(item)" class="popupLine" v-for="(item,index) in engineList">{{item.engineModel}}</view>
  23. </view>
  24. </uni-popup>
  25. </view>
  26. </template>
  27. <script>
  28. import homenav from "../../components/homenav/nav.vue"
  29. export default {
  30. components: {
  31. homenav
  32. },
  33. data() {
  34. return {
  35. brand:'',
  36. manufactor:'',
  37. carSeries:'',
  38. logo:'',
  39. optdata:'',
  40. carGroupList:[],
  41. iStatusBarHeight:'',
  42. type:'',
  43. engineList:'',
  44. }
  45. },
  46. onLoad(opt) {
  47. this.iStatusBarHeight = uni.getSystemInfoSync().statusBarHeight;
  48. this.optdata=opt;
  49. this.type=opt.type
  50. this.getmodelList();
  51. },
  52. methods: {
  53. goItem(e){
  54. if(this.type==1){
  55. this.optdata.value=e.value
  56. this.queryEnginemodel(e)
  57. }else if(this.type==2){
  58. uni.navigateTo({
  59. url:'/pages/index/gearboxOil?nLevelID='+this.optdata.nLevelID+'&logo='+this.optdata.logo+'&value='+e.value+'&id='+e.id+'&isVin='+this.optdata.isVin+'&vin='+this.optdata.vin
  60. })
  61. }else{
  62. uni.navigateTo({
  63. url:'/pages/index/byItem?nLevelID='+e.carModelInfo.nLevelID+'&logo='+this.optdata.logo+'&manufactor='+this.optdata.manufactor+'&carSeries='+this.optdata.carSeries+'&brand='+this.optdata.brand+'&value='+e.value+'&id='+e.id
  64. })
  65. }
  66. },
  67. queryEnginemodel(e){
  68. this.$http('matchingByOpen/queryEnginemodel', {
  69. ids:this.optdata.id,
  70. },'POST').then(res => {
  71. this.engineList=res.data
  72. if(this.engineList.length>1){
  73. his.$refs.popup.open()
  74. }else{
  75. uni.navigateTo({
  76. url:'/pages/index/engineOil?nLevelID='+this.optdata.nLevelID+'&logo='+this.optdata.logo+'&value='+this.optdata.value+'&id='+e.id+'&isVin='+this.optdata.isVin+'&vin='+this.optdata.vin
  77. })
  78. }
  79. })
  80. },
  81. ckengin(item){
  82. console.log(item)
  83. uni.navigateTo({
  84. url:'/pages/index/engineOil?nLevelID='+this.optdata.nLevelID+'&logo='+this.optdata.logo+'&value='+this.optdata.value+'&id='+item.ids+'&isVin='+this.optdata.isVin+'&vin='+this.optdata.vin
  85. })
  86. },
  87. getmodelList(){
  88. uni.showLoading({ title: '加载中'});
  89. this.$http('matchingByOpen/queryCarModelGroupPackage', {
  90. brand:this.optdata.brand,
  91. manufactor:this.optdata.manufactor,
  92. carSeries:this.optdata.carSeries,
  93. displacement:this.optdata.displacement
  94. },'post').then(res => {
  95. uni.hideLoading();
  96. this.carGroupList=res.data.carGroupList
  97. })
  98. },
  99. }
  100. }
  101. </script>
  102. <style scoped>
  103. .content{
  104. background: #F4F5F7;min-height: 100vh;
  105. }
  106. .top{
  107. display: flex;background: #ffffff;
  108. padding: 34rpx 24rpx;
  109. }
  110. .logoImg{
  111. width: 46rpx;
  112. height: 46rpx;
  113. }
  114. .topname{
  115. font-weight: 500;font-size: 28rpx;line-height: 46rpx;
  116. color: #1A1A1A;padding-left: 20rpx;
  117. }
  118. .tsImg{
  119. width: 27rpx;height: 28rpx;
  120. }
  121. .tsTxt{
  122. font-weight: 500;padding-left: 16rpx;
  123. color: #FFBF35;
  124. font-size: 28rpx;line-height: 28rpx;
  125. }
  126. .ts{
  127. padding: 36rpx 24rpx;display: flex;
  128. }
  129. .linebox{
  130. background: #ffffff;
  131. padding: 0 24rpx;
  132. }
  133. .line{
  134. border-bottom: 1rpx solid #EEEEEE;
  135. font-weight: 400;
  136. color: #333333;font-size: 26rpx;
  137. padding: 30rpx 0;
  138. }
  139. .picker-view {
  140. width: 750rpx;
  141. height: 600rpx;
  142. margin-top: 20rpx;
  143. }
  144. .popupLine {
  145. line-height: 100rpx;
  146. text-align: center;
  147. font-size: 28rpx;
  148. display: block;
  149. }
  150. .popupLineBox{
  151. padding-bottom: env(safe-area-inset-bottom);
  152. }
  153. .popupTitle{
  154. line-height: 100rpx;
  155. text-align: center;
  156. font-size: 30rpx;
  157. color: #999999;
  158. }
  159. </style>