carGroup.vue 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  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. }
  62. else if(this.type==4){
  63. uni.navigateTo({
  64. url:'/pages/index/wiper?nLevelID='+this.optdata.nLevelID+'&logo='+this.optdata.logo+'&value='+e.value+'&id='+e.id+'&isVin='+this.optdata.isVin+'&vin='+this.optdata.vin
  65. })
  66. }
  67. else{
  68. uni.navigateTo({
  69. 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
  70. })
  71. }
  72. },
  73. queryEnginemodel(e){
  74. this.$http('matchingByOpen/queryEnginemodel', {
  75. ids:this.optdata.id,
  76. },'POST').then(res => {
  77. this.engineList=res.data
  78. if(this.engineList.length>1){
  79. his.$refs.popup.open()
  80. }else{
  81. uni.navigateTo({
  82. 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
  83. })
  84. }
  85. })
  86. },
  87. ckengin(item){
  88. console.log(item)
  89. uni.navigateTo({
  90. 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
  91. })
  92. },
  93. getmodelList(){
  94. uni.showLoading({ title: '加载中'});
  95. this.$http('matchingByOpen/queryCarModelGroupPackage', {
  96. brand:this.optdata.brand,
  97. manufactor:this.optdata.manufactor,
  98. carSeries:this.optdata.carSeries,
  99. displacement:this.optdata.displacement
  100. },'post').then(res => {
  101. uni.hideLoading();
  102. this.carGroupList=res.data.carGroupList
  103. })
  104. },
  105. }
  106. }
  107. </script>
  108. <style scoped>
  109. .content{
  110. background: #F4F5F7;min-height: 100vh;
  111. }
  112. .top{
  113. display: flex;background: #ffffff;
  114. padding: 34rpx 24rpx;
  115. }
  116. .logoImg{
  117. width: 46rpx;
  118. height: 46rpx;
  119. }
  120. .topname{
  121. font-weight: 500;font-size: 28rpx;line-height: 46rpx;
  122. color: #1A1A1A;padding-left: 20rpx;
  123. }
  124. .tsImg{
  125. width: 27rpx;height: 28rpx;
  126. }
  127. .tsTxt{
  128. font-weight: 500;padding-left: 16rpx;
  129. color: #FFBF35;
  130. font-size: 28rpx;line-height: 28rpx;
  131. }
  132. .ts{
  133. padding: 36rpx 24rpx;display: flex;
  134. }
  135. .linebox{
  136. background: #ffffff;
  137. padding: 0 24rpx;
  138. }
  139. .line{
  140. border-bottom: 1rpx solid #EEEEEE;
  141. font-weight: 400;
  142. color: #333333;font-size: 26rpx;
  143. padding: 30rpx 0;
  144. }
  145. .picker-view {
  146. width: 750rpx;
  147. height: 600rpx;
  148. margin-top: 20rpx;
  149. }
  150. .popupLine {
  151. line-height: 100rpx;
  152. text-align: center;
  153. font-size: 28rpx;
  154. display: block;
  155. }
  156. .popupLineBox{
  157. padding-bottom: env(safe-area-inset-bottom);
  158. }
  159. .popupTitle{
  160. line-height: 100rpx;
  161. text-align: center;
  162. font-size: 30rpx;
  163. color: #999999;
  164. }
  165. </style>