guo 2 anni fa
parent
commit
7f4668b431

+ 192 - 0
common/MD5.js

@@ -0,0 +1,192 @@
+function md5(string) {
+  var x = Array();
+  var k, AA, BB, CC, DD, a, b, c, d;
+  var S11 = 7, S12 = 12, S13 = 17, S14 = 22;
+  var S21 = 5, S22 = 9, S23 = 14, S24 = 20;
+  var S31 = 4, S32 = 11, S33 = 16, S34 = 23;
+  var S41 = 6, S42 = 10, S43 = 15, S44 = 21;
+  string = Utf8Encode(string);
+  x = ConvertToWordArray(string);
+  a = 0x67452301;
+  b = 0xEFCDAB89;
+  c = 0x98BADCFE;
+  d = 0x10325476;
+  for (k = 0; k < x.length; k += 16) {
+    AA = a;
+    BB = b;
+    CC = c;
+    DD = d;
+    a = FF(a, b, c, d, x[k + 0], S11, 0xD76AA478);
+    d = FF(d, a, b, c, x[k + 1], S12, 0xE8C7B756);
+    c = FF(c, d, a, b, x[k + 2], S13, 0x242070DB);
+    b = FF(b, c, d, a, x[k + 3], S14, 0xC1BDCEEE);
+    a = FF(a, b, c, d, x[k + 4], S11, 0xF57C0FAF);
+    d = FF(d, a, b, c, x[k + 5], S12, 0x4787C62A);
+    c = FF(c, d, a, b, x[k + 6], S13, 0xA8304613);
+    b = FF(b, c, d, a, x[k + 7], S14, 0xFD469501);
+    a = FF(a, b, c, d, x[k + 8], S11, 0x698098D8);
+    d = FF(d, a, b, c, x[k + 9], S12, 0x8B44F7AF);
+    c = FF(c, d, a, b, x[k + 10], S13, 0xFFFF5BB1);
+    b = FF(b, c, d, a, x[k + 11], S14, 0x895CD7BE);
+    a = FF(a, b, c, d, x[k + 12], S11, 0x6B901122);
+    d = FF(d, a, b, c, x[k + 13], S12, 0xFD987193);
+    c = FF(c, d, a, b, x[k + 14], S13, 0xA679438E);
+    b = FF(b, c, d, a, x[k + 15], S14, 0x49B40821);
+    a = GG(a, b, c, d, x[k + 1], S21, 0xF61E2562);
+    d = GG(d, a, b, c, x[k + 6], S22, 0xC040B340);
+    c = GG(c, d, a, b, x[k + 11], S23, 0x265E5A51);
+    b = GG(b, c, d, a, x[k + 0], S24, 0xE9B6C7AA);
+    a = GG(a, b, c, d, x[k + 5], S21, 0xD62F105D);
+    d = GG(d, a, b, c, x[k + 10], S22, 0x2441453);
+    c = GG(c, d, a, b, x[k + 15], S23, 0xD8A1E681);
+    b = GG(b, c, d, a, x[k + 4], S24, 0xE7D3FBC8);
+    a = GG(a, b, c, d, x[k + 9], S21, 0x21E1CDE6);
+    d = GG(d, a, b, c, x[k + 14], S22, 0xC33707D6);
+    c = GG(c, d, a, b, x[k + 3], S23, 0xF4D50D87);
+    b = GG(b, c, d, a, x[k + 8], S24, 0x455A14ED);
+    a = GG(a, b, c, d, x[k + 13], S21, 0xA9E3E905);
+    d = GG(d, a, b, c, x[k + 2], S22, 0xFCEFA3F8);
+    c = GG(c, d, a, b, x[k + 7], S23, 0x676F02D9);
+    b = GG(b, c, d, a, x[k + 12], S24, 0x8D2A4C8A);
+    a = HH(a, b, c, d, x[k + 5], S31, 0xFFFA3942);
+    d = HH(d, a, b, c, x[k + 8], S32, 0x8771F681);
+    c = HH(c, d, a, b, x[k + 11], S33, 0x6D9D6122);
+    b = HH(b, c, d, a, x[k + 14], S34, 0xFDE5380C);
+    a = HH(a, b, c, d, x[k + 1], S31, 0xA4BEEA44);
+    d = HH(d, a, b, c, x[k + 4], S32, 0x4BDECFA9);
+    c = HH(c, d, a, b, x[k + 7], S33, 0xF6BB4B60);
+    b = HH(b, c, d, a, x[k + 10], S34, 0xBEBFBC70);
+    a = HH(a, b, c, d, x[k + 13], S31, 0x289B7EC6);
+    d = HH(d, a, b, c, x[k + 0], S32, 0xEAA127FA);
+    c = HH(c, d, a, b, x[k + 3], S33, 0xD4EF3085);
+    b = HH(b, c, d, a, x[k + 6], S34, 0x4881D05);
+    a = HH(a, b, c, d, x[k + 9], S31, 0xD9D4D039);
+    d = HH(d, a, b, c, x[k + 12], S32, 0xE6DB99E5);
+    c = HH(c, d, a, b, x[k + 15], S33, 0x1FA27CF8);
+    b = HH(b, c, d, a, x[k + 2], S34, 0xC4AC5665);
+    a = II(a, b, c, d, x[k + 0], S41, 0xF4292244);
+    d = II(d, a, b, c, x[k + 7], S42, 0x432AFF97);
+    c = II(c, d, a, b, x[k + 14], S43, 0xAB9423A7);
+    b = II(b, c, d, a, x[k + 5], S44, 0xFC93A039);
+    a = II(a, b, c, d, x[k + 12], S41, 0x655B59C3);
+    d = II(d, a, b, c, x[k + 3], S42, 0x8F0CCC92);
+    c = II(c, d, a, b, x[k + 10], S43, 0xFFEFF47D);
+    b = II(b, c, d, a, x[k + 1], S44, 0x85845DD1);
+    a = II(a, b, c, d, x[k + 8], S41, 0x6FA87E4F);
+    d = II(d, a, b, c, x[k + 15], S42, 0xFE2CE6E0);
+    c = II(c, d, a, b, x[k + 6], S43, 0xA3014314);
+    b = II(b, c, d, a, x[k + 13], S44, 0x4E0811A1);
+    a = II(a, b, c, d, x[k + 4], S41, 0xF7537E82);
+    d = II(d, a, b, c, x[k + 11], S42, 0xBD3AF235);
+    c = II(c, d, a, b, x[k + 2], S43, 0x2AD7D2BB);
+    b = II(b, c, d, a, x[k + 9], S44, 0xEB86D391);
+    a = AddUnsigned(a, AA);
+    b = AddUnsigned(b, BB);
+    c = AddUnsigned(c, CC);
+    d = AddUnsigned(d, DD);
+  }
+  var temp = WordToHex(a) + WordToHex(b) + WordToHex(c) + WordToHex(d);
+  return temp.toUpperCase();
+}
+function RotateLeft(lValue, iShiftBits) {
+  return (lValue << iShiftBits) | (lValue >>> (32 - iShiftBits));
+}
+function AddUnsigned(lX, lY) {
+  var lX4, lY4, lX8, lY8, lResult;
+  lX8 = (lX & 0x80000000);
+  lY8 = (lY & 0x80000000);
+  lX4 = (lX & 0x40000000);
+  lY4 = (lY & 0x40000000);
+  lResult = (lX & 0x3FFFFFFF) + (lY & 0x3FFFFFFF);
+  if (lX4 & lY4) {
+    return (lResult ^ 0x80000000 ^ lX8 ^ lY8);
+  }
+  if (lX4 | lY4) {
+    if (lResult & 0x40000000) {
+      return (lResult ^ 0xC0000000 ^ lX8 ^ lY8);
+    } else {
+      return (lResult ^ 0x40000000 ^ lX8 ^ lY8);
+    }
+  } else {
+    return (lResult ^ lX8 ^ lY8);
+  }
+}
+function F(x, y, z) {
+  return (x & y) | ((~x) & z);
+}
+function G(x, y, z) {
+  return (x & z) | (y & (~z));
+}
+function H(x, y, z) {
+  return (x ^ y ^ z);
+}
+function I(x, y, z) {
+  return (y ^ (x | (~z)));
+}
+function FF(a, b, c, d, x, s, ac) {
+  a = AddUnsigned(a, AddUnsigned(AddUnsigned(F(b, c, d), x), ac));
+  return AddUnsigned(RotateLeft(a, s), b);
+}
+function GG(a, b, c, d, x, s, ac) {
+  a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), x), ac));
+  return AddUnsigned(RotateLeft(a, s), b);
+}
+function HH(a, b, c, d, x, s, ac) {
+  a = AddUnsigned(a, AddUnsigned(AddUnsigned(H(b, c, d), x), ac));
+  return AddUnsigned(RotateLeft(a, s), b);
+}
+function II(a, b, c, d, x, s, ac) {
+  a = AddUnsigned(a, AddUnsigned(AddUnsigned(I(b, c, d), x), ac));
+  return AddUnsigned(RotateLeft(a, s), b);
+}
+function ConvertToWordArray(string) {
+  var lWordCount;
+  var lMessageLength = string.length;
+  var lNumberOfWords_temp1 = lMessageLength + 8;
+  var lNumberOfWords_temp2 = (lNumberOfWords_temp1 - (lNumberOfWords_temp1 % 64)) / 64;
+  var lNumberOfWords = (lNumberOfWords_temp2 + 1) * 16;
+  var lWordArray = Array(lNumberOfWords - 1);
+  var lBytePosition = 0;
+  var lByteCount = 0;
+  while (lByteCount < lMessageLength) {
+    lWordCount = (lByteCount - (lByteCount % 4)) / 4;
+    lBytePosition = (lByteCount % 4) * 8;
+    lWordArray[lWordCount] = (lWordArray[lWordCount] | (string.charCodeAt(lByteCount) << lBytePosition));
+    lByteCount++;
+  }
+  lWordCount = (lByteCount - (lByteCount % 4)) / 4;
+  lBytePosition = (lByteCount % 4) * 8;
+  lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80 << lBytePosition);
+  lWordArray[lNumberOfWords - 2] = lMessageLength << 3;
+  lWordArray[lNumberOfWords - 1] = lMessageLength >>> 29;
+  return lWordArray;
+}
+function WordToHex(lValue) {
+  var WordToHexValue = "", WordToHexValue_temp = "", lByte, lCount;
+  for (lCount = 0; lCount <= 3; lCount++) {
+    lByte = (lValue >>> (lCount * 8)) & 255;
+    WordToHexValue_temp = "0" + lByte.toString(16);
+    WordToHexValue = WordToHexValue + WordToHexValue_temp.substr(WordToHexValue_temp.length - 2, 2);
+  }
+  return WordToHexValue;
+}
+function Utf8Encode(string) {
+  var utftext = "";
+  for (var n = 0; n < string.length; n++) {
+    var c = string.charCodeAt(n);
+    if (c < 128) {
+      utftext += String.fromCharCode(c);
+    } else if ((c > 127) && (c < 2048)) {
+      utftext += String.fromCharCode((c >> 6) | 192);
+      utftext += String.fromCharCode((c & 63) | 128);
+    } else {
+      utftext += String.fromCharCode((c >> 12) | 224);
+      utftext += String.fromCharCode(((c >> 6) & 63) | 128);
+      utftext += String.fromCharCode((c & 63) | 128);
+    }
+  }
+  return utftext;
+}
+export default {
+  md5: md5
+}

+ 22 - 0
common/common.js

@@ -0,0 +1,22 @@
+
+const isUserId = function() {
+	var userId=uni.getStorageSync("logodata").uid;
+	//console.log("userId---"+userId)
+	if(!userId){
+		   uni.navigateTo({
+			  url:'../login/login'
+		   })
+	 }
+}
+/* const uid =function() {
+	var userId=uni.getStorageSync("logodata").uid;
+	return
+} */
+
+export default {
+    commonData:{
+        companyType:1,
+    },
+    isUserId,
+	
+}

+ 120 - 0
common/request.js

@@ -0,0 +1,120 @@
+
+const baseUrl = 'http://api.dms.66km.com.cn/'
+const burl2='http://api.dms.66km.com.cn/' 
+import md5 from './MD5.js'
+
+
+
+
+const http = (url = '', date = {}, type = 'POST', header = {
+}) => {
+    return new Promise((resolve, reject) => {
+		header={};
+		// const logodata = uni.getStorageSync("logodata");
+		// if(logodata){
+		// 	header['token']=logodata.token;
+		// 	header['uid']=logodata.uid; 
+		// }else{
+		// 	header['token']='';
+		// 	header['uid']=''; 
+		// }
+		
+		//header['token']='98A9FED8814B457288166BDF623F33D1';
+		//header['uid']='795957B6-8F4B-4E7F-96FE-1F26E5BA21A1'; 
+		header['Content-Type']='application/x-www-form-urlencoded';
+		//console.log(header)
+        uni.request({
+            method: type,
+            url: baseUrl + url,
+            data: date,
+            header: header,
+            dataType: 'json',         
+        }).then((response) => {
+           /* setTimeout(function() {
+                uni.hideLoading();
+            }, 200); */
+            let [error, res] = response;
+			
+			
+			if(res.data.code==1){
+				 uni.showToast({
+				     title: res.data.msg,
+				 	 icon:'none',
+				     duration: 3000,
+				 });
+				//  uni.clearStorageSync()
+				
+			}else if(res.data.code==409){
+				 // getToken(url,date,type,header)
+			}
+            resolve(res.data);
+        }).catch(error => {
+            let [err, res] = error;
+            reject(err)
+        }) 
+    });
+}
+
+function getToken(url,date,type,header){
+	var header={};
+    //var userId=uni.getStorageSync("devData").userId;
+	//var devData=uni.getStorageSync("devData")
+	header['Content-Type']='application/x-www-form-urlencoded';
+	uni.request({
+	    method: "POST",
+	    url: burl2 + '/sys/getTokenByUserID',
+	    data: {
+			userId:userId
+		},
+	    header: header,
+	    dataType: 'json',         
+	}).then((response) => {
+	    let [error, res] = response;
+		var accessToken=res.data.data.accessToken.accessToken;
+		devData.accessToken=accessToken;
+		uni.setStorage({
+			   key: 'devData',
+			   data:devData,
+			   success: function () {
+				   refresh(url,date,type,header) //刷新接口
+			   }
+		 });
+		  // console.log(accessToken)
+	}).catch(error => {
+	   
+	}) 
+}
+
+function refresh(url,date,type,header){
+	uni.request({
+	    method: type,
+	    url: burl2 + url,
+	    data: date,
+	    header: header,
+	    dataType: 'json',         
+	}).then((response) => {
+	   setTimeout(function() {
+	        uni.hideLoading();
+	    }, 200); 
+	    let [error, res] = response;
+	  
+		if(res.data.code==403){
+			uni.showToast({
+			     title: res.data.msg,
+			 	 icon:'none',
+			     duration: 3000,
+			 });
+			 uni.navigateTo({
+				url:'../login/login'
+			}) 
+		}
+	    resolve(res.data);
+	}).catch(error => {
+	    let [err, res] = error;
+	    reject(err)
+	})
+}
+
+export default {
+	http,baseUrl
+}

+ 16 - 1
main.js

@@ -1,5 +1,12 @@
 import App from './App'
 
+import request from 'common/request.js'
+import common from 'common/common.js'
+
+Vue.prototype.$http = request.http
+Vue.prototype.$request =request
+Vue.prototype.$common =common
+
 // #ifndef VUE3
 import Vue from 'vue'
 Vue.config.productionTip = false
@@ -18,4 +25,12 @@ export function createApp() {
     app
   }
 }
-// #endif
+// #endif
+
+// Vue全局处理undefined和null转为空白字符串
+Vue.prototype.$praseStrEmpty = function(str) {
+    if (typeof str === 'undefined' || str === null) {
+        return "";
+    }
+    return str;
+}

+ 50 - 0
pages.json

@@ -81,6 +81,56 @@
             }
             
         }
+        ,{
+            "path" : "pages/mobile/SelectCarModel",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "选择品牌",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/mobile/SelectCarTwo",
+            "style" :                                                                                    
+            {
+            
+                "navigationStyle": "custom"
+            }
+            
+        }
+        ,{
+            "path" : "pages/mobile/SelectCarThree",
+            "style" :                                                                                    
+            {
+                "navigationStyle": "custom"
+            }
+            
+        }
+        ,{
+            "path" : "pages/mobile/SelectCarFour",
+            "style" :                                                                                    
+            {
+                "navigationStyle": "custom"
+            }
+            
+        }
+        ,{
+            "path" : "pages/mobile/SelectCarFive",
+            "style" :                                                                                    
+            {
+                "navigationStyle": "custom"
+            }
+            
+        }
+        ,{
+            "path" : "pages/mobile/SelectCarSix",
+            "style" :                                                                                    
+            {
+                "navigationStyle": "custom"
+            }
+            
+        }
     ],
 	"globalStyle": {
 		"navigationBarTextStyle": "black",

+ 2 - 1
pages/index/index.vue

@@ -28,7 +28,8 @@
             }  else{
             			  console.log("移动端")
             			  uni.navigateTo({
-            			  	url:'../mobile/index'
+            			  	url:'../mobile/OemSearch'
+							// url:'../mobile/index'
             			  })
             }
 		},

+ 40 - 14
pages/mobile/CarModelList.vue

@@ -2,56 +2,56 @@
 	<view class="box">
 		<view class="mainBox">
 			
-			<view @click="goSonGroup()" class="workBox2" v-for="(item,index) in itemList" :key="index">
+			<view @click="goSonGroup(item)" class="workBox2" v-for="(item,index) in itemList" :key="index">
 				<view class="leftBox">
 					<view class="oneBox">
 						<view class="comtent2">
 							<view class="left2">名称:</view>
-							<view class="right2">1201D0</view>
+							<view class="right2">{{item.caption}}</view>
 						</view>
 						<view class="comtent2">
-							<view class="left2">车型:</view>z
-							<view class="right2">12</view>
+							<view class="left2">车型:</view>
+							<view class="right2">{{item.vin_11}}</view>
 						</view>
 					</view>
 					
 					<view class="oneBox">
 						<view class="comtent2">
 							<view class="left2">年份:</view>
-							<view class="right2">1201D0</view>
+							<view class="right2">{{item.year}}</view>
 						</view>
 						<view class="comtent2">
 							<view class="left2" style="width: 28%;">发动机:</view>
-							<view class="right2">12</view>
+							<view class="right2">{{item.engine_prefix}}</view>
 						</view>
 					</view>
 					
 					<view class="oneBox">
 						<view class="comtent2">
 							<view class="left2" style="width: 28%;">变数箱:</view>
-							<view class="right2">1201D0</view>
+							<view class="right2">{{item.trans}}</view>
 						</view>
 						<view class="comtent2">
 							<view class="left2">地区:</view>
-							<view class="right2">12</view>
+							<view class="right2">{{item.area}}</view>
 						</view>
 					</view>
 					
 					<view class="oneBox">
 						<view class="comtent2">
 							<view class="left2">配置:</view>
-							<view class="right2">1201D0</view>
+							<view class="right2">{{item.equips}}</view>
 						</view>
 						<view class="comtent2">
 							<view class="left2">级别:</view>
-							<view class="right2">12</view>
+							<view class="right2">{{item.grade}}</view>
 						</view>
 					</view>
 					
 					<view class="oneBox">
 						<view class="comtent2">
 							<view class="left2" style="width: 35%;">模型代码:</view>
-							<view class="right2">1201D0</view>
+							<view class="right2">{{item.model_code}}</view>
 						</view>
 						
 					</view>
@@ -67,13 +67,38 @@
 	export default {
 		data() {
 			return {
-				itemList:[1,2,3,4]
+				epc_id:'',
+				partnum:'',
+				itemData:{},
+				itemList:[]
 			}
 		},
+		onLoad(opt) {
+			this.epc_id = opt.epc_id;
+			this.partnum = opt.partnum;
+			this.getItemData();
+		},
 		methods: {
-			goSonGroup(id) {
+			// 配件车型
+			getItemData() {
+				uni.showLoading({
+					title: '加载中'
+				});
+				this.$http('advancedEpc/findApplicableModelsPc', {
+					epc_id:this.epc_id,
+					partnum:this.partnum
+				}, 'GET').then(res => {
+					uni.hideLoading();
+					
+					this.itemData = res.data.result;
+					this.itemList = res.data.result.list;
+			
+				});
+			},
+			goSonGroup(item) {
 				uni.navigateTo({
-					url: 'SonGroup?id=' + id
+					
+					url: 'SonGroup?epc_id=' + this.epc_id + '&token=' + item.token + '&param=' + item.param+ '&access_time=' + this.itemData.access_time
 				})
 			},
 		}
@@ -127,5 +152,6 @@
 	.right2 {
 		width: 80%;
 		color: #333333;
+		
 	}
 </style>

+ 90 - 53
pages/mobile/OemSearch.vue

@@ -1,6 +1,6 @@
 <template>
 	<view class="box">
-		<view class="brand">当前品牌:奥迪</view>
+		<view class="brand">当前品牌:{{brand}}</view>
 
 		<view class="tab">
 			<view class="tabLine" :class="{tabActive:tabIndex==0}" @click="tabClick(0)">品牌下搜索</view>
@@ -13,7 +13,7 @@
 		</view>
 
 
-		<view class="history" v-if="searchValue.length==0">
+		<!-- <view class="history" v-if="searchValue.length==0">
 			<view class="historyTop">
 				<view class="historyTopTxt">历史搜索</view>
 				<image src="../../static/img/icon_delete.png" mode="" class="historyDelImg"></image>
@@ -22,18 +22,16 @@
 				<view class="historyLIne" @click="gogroup">前刹车片</view>
 			</view>
 
+		</view> -->
 
 
+		<view class="commentBox" v-for="(item,index) in itemData.list" :key="index">
+
+			<view class="name">{{item.caption}}</view>
+			<view class="comment">{{item.description}}</view>
+			<view @click="goCarModelList(item.partnum)" class="code">{{item.extened}}</view>
 		</view>
 
-
-		<view v-if="searchValue.length!=0" class="commentBox" v-for="(item,index) in itemList" :key="index">
-
-			<view class="name">节气门总成</view>
-			<view class="comment">这是备注,没有就不显示该行</view>
-			<view @click="goCarModelList()" class="code">1678-RRT-001</view>
-		</view>
-		
 
 	</view>
 </template>
@@ -49,15 +47,23 @@
 			return {
 				tabIndex: 0,
 				searchValue: '',
-				historyList: [1, 2, 3, 4, 5],
-				itemList:[1,2,3,4]
+				historyList: [1, 2, 3, 4, 5],
+				itemData: {},
+				brandList: [],
+				brand:'本田',
+				epc_id:'1014',
+				
 			}
+		},
+		onLoad() {
+			this.getBrandData();
+			this.getItemData();
 		},
-		methods: {
-			goCarModelList(id) {
-				uni.navigateTo({
-					url: 'CarModelList?id=' + id
-				})
+		methods: {
+			goCarModelList(partnum) {
+				uni.navigateTo({
+					url: 'CarModelList?epc_id=' + this.epc_id + '&partnum=' + partnum
+				})
 			},
 			tabClick(num) {
 				this.tabIndex = num;
@@ -65,8 +71,41 @@
 			search(val) {
 				// console.log(val);
 				this.searchValue = val
-
+				this.getItemData();
 			},
+			getBrandData() {
+				uni.showLoading({
+					title: '加载中'
+				});
+				this.$http('advancedEpc/getBrandsPc', {
+					
+				}, 'GET').then(res => {
+					uni.hideLoading();
+
+					this.brandList = res.data.result.list;
+					console.log(this.brandList);
+
+
+				});
+			},
+			// 配件查询
+			getItemData() {
+				uni.showLoading({
+					title: '加载中'
+				});
+				this.$http('advancedEpc/findPartsPc', {
+					epc_id:this.epc_id,
+					keyword:this.searchValue
+				}, 'GET').then(res => {
+					uni.hideLoading();
+			
+					this.itemData = res.data.result;
+					
+					
+			
+				});
+			},
+			
 		}
 	}
 </script>
@@ -150,8 +189,8 @@
 	}
 
 	.historyLIneBox {
-		display: inline-flex;
-		
+		display: inline-flex;
+
 		flex-wrap: wrap;
 	}
 
@@ -163,38 +202,36 @@
 		border-radius: 32rpx;
 		line-height: 64rpx;
 		padding: 0 24rpx;
-		margin-top: 20rpx;
+		margin-top: 20rpx;
 		margin-right: 24rpx;
-	}
-	
-	.commentBox {
-	
-		padding: 20rpx 24rpx;
-		border-bottom: 1rpx solid #EEEEEE;
-	}
-	
-	
-	
-	.name {
-		color: #333333;
-		font-size: 26rpx;
-		font-weight: bold;
-		padding-top: 16rpx;
-		padding-bottom: 10rpx;
-	}
-	
-	.comment {
-		color: #999999;
-		font-size: 24rpx;
-		padding-bottom: 14rpx;
-	}
-	
-	
-	
-	.code {
-		color: #3F90F7;
-		font-size: 24rpx;
-	}
-	
-	
+	}
+
+	.commentBox {
+
+		padding: 20rpx 24rpx;
+		border-bottom: 1rpx solid #EEEEEE;
+	}
+
+
+
+	.name {
+		color: #333333;
+		font-size: 26rpx;
+		font-weight: bold;
+		padding-top: 16rpx;
+		padding-bottom: 10rpx;
+	}
+
+	.comment {
+		color: #999999;
+		font-size: 24rpx;
+		padding-bottom: 14rpx;
+	}
+
+
+
+	.code {
+		color: #3F90F7;
+		font-size: 24rpx;
+	}
 </style>

+ 162 - 0
pages/mobile/SelectCarFive.vue

@@ -0,0 +1,162 @@
+<template>
+	<view class="box">
+		<!-- 自定义导航 -->
+		<view class="zdyNavBox">
+			<view class="status_bar" :style="{height: iStatusBarHeight + 'px'}"></view>
+			<view class="zdyNav">
+				<view class="zdyNavLeft">
+					<image src="../../static/img/nav_icon_back.png" mode="aspectFit" class="backImg" @click="goback">
+					</image>
+
+				</view>
+				<view class="zdyNavTitle">车型件</view>
+				<view class="zdyNavRight" @click="goOemSearch">OEM搜索</view>
+				<!-- <view style="width: 10rpx;"></view> -->
+			</view>
+		</view>
+		<view class="status_bar" :style="{height: iStatusBarHeight + 'px'}"></view>
+		<view style="height: 44px;"></view>
+
+		<view class="top">{{title}}</view>
+
+		<view class="cangTitle">总组</view>
+		<view @click="goSelectCarSix()" class="cangBox" v-for="(item,index) in cangList" :key="index">
+			<view class="xing">发动机</view>
+
+			<image src="../../static/img/rightArrow.png" mode="" style="width: 12rpx; height: 20rpx"></image>
+
+
+		</view>
+
+
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				title: '大众 > 迈腾 > 2022 > 市场一',
+				iStatusBarHeight: '',
+				cangList: [1, 3, 4],
+
+			}
+		},
+		onLoad() {
+			this.iStatusBarHeight = uni.getSystemInfoSync().statusBarHeight;
+
+		},
+		methods: {
+			goSelectCarSix(){
+				uni.navigateTo({
+					url: 'SelectCarSix'
+				})
+			},
+			goOemSearch() {
+				uni.navigateTo({
+					url: 'OemSearch'
+				})
+			},
+			goback() {
+				console.log('返回');
+				uni.navigateBack({})
+			},
+		}
+	}
+</script>
+
+<style>
+	.box {
+		min-height: 100vh;
+		background: #ffffff;
+	}
+
+	.zdyNavBox {
+		width: 100vw;
+		background: #FFFFFF;
+		position: fixed;
+		top: 0;
+		left: 0;
+		z-index: 9999999;
+
+
+	}
+
+	.zdyNav {
+		height: 44px;
+		display: flex;
+		justify-content: space-between;
+
+		align-items: center;
+
+	}
+
+	.backImg {
+		width: 44rpx;
+		height: 44rpx;
+		margin-left: 10rpx;
+		margin-right: 20rpx;
+	}
+
+	.homeImg {
+		width: 44rpx;
+		height: 44rpx;
+
+	}
+
+	.zdyNavLeft {
+		display: flex;
+		align-items: center;
+	}
+
+	.zdyNavTitle {
+
+		height: 44px;
+		background: #FFFFFF;
+		text-align: center;
+		font-size: 34rpx;
+		line-height: 44px;
+	}
+
+	.zdyNavRight {
+		height: 44px;
+		background: #FFFFFF;
+		text-align: center;
+		font-size: 28rpx;
+		line-height: 44px;
+		color: #3F90F7;
+		margin-right: 24rpx;
+	}
+
+	.top {
+		color: #FFFFFF;
+		font-size: 28rpx;
+		padding: 24rpx;
+
+		background: linear-gradient(110deg, #48B9F9 0%, #3F90F7 100%);
+	}
+
+	.cangBox {
+		background: #FFFFFF;
+		padding: 24rpx;
+		border-bottom: 1rpx solid #eeeeee;
+		display: flex;
+		justify-content: space-between;
+		align-items: center;
+	}
+
+	
+	.cangTitle {
+		padding: 24rpx 0;
+		color: #333333;
+		font-size: 28rpx;
+		font-weight: bold;
+		text-align: center;
+		border-bottom: 1rpx solid #eeeeee;
+	}
+
+	.xing {
+		font-size: 28rpx;
+		color: #333333;
+	}
+</style>

+ 165 - 0
pages/mobile/SelectCarFour.vue

@@ -0,0 +1,165 @@
+<template>
+	<view class="box">
+		<!-- 自定义导航 -->
+		<view class="zdyNavBox">
+			<view class="status_bar" :style="{height: iStatusBarHeight + 'px'}"></view>
+			<view class="zdyNav">
+				<view class="zdyNavLeft">
+					<image src="../../static/img/nav_icon_back.png" mode="aspectFit" class="backImg" @click="goback">
+					</image>
+
+				</view>
+				<view class="zdyNavTitle">选择车辆配置</view>
+				<view class="zdyNavRight" @click="goOemSearch">OEM搜索</view>
+				<!-- <view style="width: 10rpx;"></view> -->
+			</view>
+		</view>
+		<view class="status_bar" :style="{height: iStatusBarHeight + 'px'}"></view>
+		<view style="height: 44px;"></view>
+
+		<view class="top">{{title}}</view>
+
+		<view @click="goSelectCarFive()" class="cangBox" v-for="(item,index) in cangList" :key="index">
+			<view class="leftBox">
+				<view class="cangTitle">这是市场</view>
+				<view v-for="(item,index) in xingList" :key="index">
+					<view class="xing">限制 I:这是限制这是限制</view>
+				</view>
+			</view>
+
+			<image src="../../static/img/rightArrow.png" mode="" style="width: 12rpx; height: 20rpx"></image>
+
+
+		</view>
+
+
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				title: '大众 > 迈腾 > 2022',
+				iStatusBarHeight: '',
+				cangList: [1, 3, 4],
+				xingList: [1, 2, 3, 4, 5],
+			}
+		},
+		onLoad() {
+			this.iStatusBarHeight = uni.getSystemInfoSync().statusBarHeight;
+
+		},
+		methods: {
+			goSelectCarFive(){
+				uni.navigateTo({
+					url: 'SelectCarFive'
+				})
+			},
+			goOemSearch() {
+				uni.navigateTo({
+					url: 'OemSearch'
+				})
+			},
+			goback() {
+				console.log('返回');
+				uni.navigateBack({})
+			},
+		}
+	}
+</script>
+
+<style>
+	.box {
+		min-height: 100vh;
+		background: #ffffff;
+	}
+
+	.zdyNavBox {
+		width: 100vw;
+		background: #FFFFFF;
+		position: fixed;
+		top: 0;
+		left: 0;
+		z-index: 9999999;
+
+
+	}
+
+	.zdyNav {
+		height: 44px;
+		display: flex;
+		justify-content: space-between;
+
+		align-items: center;
+
+	}
+
+	.backImg {
+		width: 44rpx;
+		height: 44rpx;
+		margin-left: 10rpx;
+		margin-right: 20rpx;
+	}
+
+	.homeImg {
+		width: 44rpx;
+		height: 44rpx;
+
+	}
+
+	.zdyNavLeft {
+		display: flex;
+		align-items: center;
+	}
+
+	.zdyNavTitle {
+
+		height: 44px;
+		background: #FFFFFF;
+		text-align: center;
+		font-size: 34rpx;
+		line-height: 44px;
+	}
+
+	.zdyNavRight {
+		height: 44px;
+		background: #FFFFFF;
+		text-align: center;
+		font-size: 28rpx;
+		line-height: 44px;
+		color: #3F90F7;
+		margin-right: 24rpx;
+	}
+
+	.top {
+		color: #FFFFFF;
+		font-size: 28rpx;
+		padding: 24rpx;
+
+		background: linear-gradient(110deg, #48B9F9 0%, #3F90F7 100%);
+	}
+
+	.cangBox {
+		background: #FFFFFF;
+		padding: 24rpx;
+		border-bottom: 1rpx solid #eeeeee;
+		display: flex;
+		justify-content: space-between;
+		align-items: center;
+	}
+	.leftBox{
+		width: 97%;
+	}
+	.cangTitle {
+		padding-bottom: 10rpx;
+		color: #333333;
+		font-size: 26rpx;
+		font-weight: bold;
+	}
+
+	.xing {
+		font-size: 24rpx;
+		color: #999999;
+	}
+</style>

+ 446 - 0
pages/mobile/SelectCarModel.vue

@@ -0,0 +1,446 @@
+<template>
+	<view class="box">
+		
+		
+			 <scroll-view  class="scroll-view" :scroll-into-view="toView" scroll-y="true" >
+				<view class="brand-select">
+					<template v-for="item in carModelList">
+					  <view :id="item['首字母']" v-if="item['首字母']!='热门'">
+						<view class="brand-select-title" :id="item['首字母']+'-model'">
+						  <h5 :class="{'brand-select-titleselect':item['首字母']==toView}">{{item['首字母']}}</h5>
+						</view>
+					   
+							<view class="brand-select-wrapper">
+								<a class="brand-select-item" v-for="item2 in item['品牌列表']" @click="selectBrand(item2)" :id="item2.brand">
+								  <img :src="item2.logo" class="brand-select-item-icon">
+								  <span>{{item2.brand||item2.name}}</span>
+								</a>
+							</view>
+					   
+					  </view>
+					  <view :id="'rm'" v-if="item['首字母']=='热门'">
+						<view class="brand-select-title" :id="item['首字母']+'-model'">
+						  <h5 :class="{'brand-select-titleselect':item['首字母']==toView}">{{item['首字母']}}</h5>
+						</view>
+   
+							<view class="brand-select-wrapper">
+								<a class="brand-select-item" v-for="item2 in item['品牌列表']" @click="selectBrand(item2)" :id="item2.brand">
+								  <img :src="item2.logo" class="brand-select-item-icon">
+								  <span>{{item2.brand||item2.name}}</span>
+								</a>
+							</view>
+					   
+					  </view>
+					</template>
+				 </view>
+	        </scroll-view >
+			
+		
+		
+	</view>
+</template>
+
+	
+<script>
+
+export default {
+	 components: {  
+	       
+	 },
+	data() {
+		return {
+			carList:'',
+			carModelList:'',
+			toView:'',
+			type:'right',
+			brand:'',
+			carSeriesList:'',
+			selectedCarBrand:'',
+			manufactor:'',
+			carSeries:'',
+			displacementList:'',
+			displacementListShow:false,
+			selectedCarSeries:'',
+			displacement:'',
+			carGroupList:'',
+			carGroupListShow:false,
+			type:'',
+			delId:'',
+			
+		}
+	},
+	onLoad(opt) {
+	  this.iStatusBarHeight = uni.getSystemInfoSync().statusBarHeight;
+	  if(opt.type==2){
+		  this.type=2
+	  }
+	  if(opt.add){
+		  this.addNum=opt.add
+	  }
+	  this.delId=opt.delId;
+      // this.queryCarModelGroupPackage();
+	},
+	methods: {
+		
+		
+		selectBrand(item){
+			console.log(item)
+			this.selectedCarBrand=item;
+			this.$refs.popup.open("right")
+			this.popupShow=true;
+			this.brand=item.brand
+			this.getbrand()
+		},
+		selectCarFactory(manufactor,item){
+			this.manufactor=manufactor;
+			this.carSeries=item;
+			//this.selectedCarSeries=item
+			this.displacementListShow=true;
+			this.getdisplacementList()
+		},
+		selectDisplacement(item){
+			this.displacement=item;
+			this.carGroupListShow=true;
+			this.getmodelList();
+		},
+		getmodelList(){
+			uni.showLoading({
+				title: '加载中'
+			})
+			this.$http('worldKeepCar/worldHome/queryCarModelGroupPackage', {
+			  brand:this.brand,
+			  manufactor:this.manufactor,
+			  carSeries:this.carSeries,
+			  displacement:this.displacement
+			 },'GET').then(res => {
+				uni.hideLoading();
+				this.carGroupList=res.data.carGroupList
+			})
+		},
+		getdisplacementList(){
+			uni.showLoading({
+				title: '加载中'
+			})
+			this.$http('worldKeepCar/worldHome/queryCarModelGroupPackage', {
+			  brand:this.brand,
+			  manufactor:this.manufactor,
+			  carSeries:this.carSeries
+			 },'GET').then(res => {
+				uni.hideLoading();
+				this.displacementList=res.data.displacementList
+			})
+		},
+		queryCarModelGroupPackage(){
+			uni.showLoading({
+				title: '加载中'
+			})
+			this.$http('worldKeepCar/worldHome/queryCarModelGroupPackage', {
+			  
+			 },'GET').then(res => {
+				uni.hideLoading();
+				this.carModelList=res.data.brands
+			})
+		},
+		bindToView(item){
+			console.log(item)
+			if(item['首字母']=='热门'){
+					this.toView ='rm'
+			}else{
+					this.toView = item['首字母']
+			}
+		
+			console.log(this.toView)
+			//this.scrollTop = 0
+		
+		},
+       /* login(){
+			uni.navigateTo({
+				url:'../login/login'
+			})
+		} */
+		close(){
+			this.$refs.popup.close()
+		},
+		getbrand(){
+			uni.showLoading({
+				title: '加载中'
+			})
+			this.$http('worldKeepCar/worldHome/queryCarModelGroupPackage', {
+			  brand:this.brand
+			 },'GET').then(res => {
+				uni.hideLoading();
+				this.carSeriesList=res.data.carSeriesList
+			})
+		}
+	}
+}
+</script>
+
+<style scoped lang="scss">
+	.box{
+		min-height: 100vh;
+		background:#F4F5F7 ;
+	}
+	
+	.baiheibackImg{
+		width: 70rpx;
+		height: 44rpx;
+	}
+	.gaunbiIMg{
+		width: 20px;
+		height: 20px;
+		padding: 12px;
+	}
+	
+	.sltpImg{
+		width: 704rpx;
+		height: 353rpx;
+	}
+	
+	.sltp{
+		padding-top: 20rpx;
+	}
+	
+	.nodataImg{
+	  width: 400rpx;
+	  padding-top: 100rpx;
+	}
+	.noTxt{
+		font-size: 36rpx;
+		color: #999999;
+		padding-top: 50rpx;
+	}
+	.nodataBox{
+		text-align: center;
+	}
+	.addBtn{
+		width: 690rpx;
+		height: 74rpx;
+		background: linear-gradient(124deg, #FF8700 0%, #FF4F00 100%);
+		border-radius: 37rpx;
+		line-height: 74rpx;
+		text-align: center;
+		color: #FFFFFF;
+		font-size: 30rpx;
+		position: fixed;
+		bottom: 23rpx;
+		left: 30rpx;
+	}
+	.carlistBox{
+		padding-bottom: 120rpx;
+	}
+	.tab{
+		background: #FFFFFF;
+		display: flex;
+		justify-content: space-around;
+		line-height: 93rpx;
+		color: #3C3C3C;
+		font-size: 30rpx;
+		border-bottom: 1px solid #F4F5F7;
+	}
+	.activeTab{
+		color: #FF4F00;text-decoration: underline
+	}
+	/* .brand-select-title{
+		height: 80px;
+		background:rgba(247,247,247,1);
+		position: relative;
+	} */
+	.brand-select{
+	  .brand-select-title{
+	    height: 80rpx;
+	    background:rgba(247,247,247,1);
+	    position: relative;
+	    h5{
+	      position: absolute;
+	      height:40rpx;
+	      font-size:28rpx;
+	      font-weight:500;
+	      color:rgba(102,102,102,1);
+	      line-height:40rpx;
+	      top: 20rpx;
+	      left: 30rpx;
+	    }
+	  }
+	  .brand-select-wrapper{
+	    display: flex;
+	    flex-wrap: wrap;
+	    background:rgba(255,255,255,1);
+		width: 100vw;
+	    .brand-select-item{
+	      display: block;
+	      width: 80rpx;
+	      height: 100rpx;
+	      padding: 30rpx;
+	      img{
+	        display: inline-block;
+	        margin-left: 10rpx;
+	        width: 60rpx;
+	        height: 60rpx;
+	      }
+	      span{
+	        display: inline-block;
+	        text-align: center;
+	        height:33rpx;
+	        width: 90rpx;
+	        font-size:24rpx;
+	        font-weight:400;
+	        color:rgba(51,51,51,1);
+	        line-height:33rpx;
+	      }
+	    }
+	
+	  }
+	}
+	.fast-navigation{
+	  position: fixed;
+	  text-align: center;
+	  right: 16rpx;
+	  top: 360rpx;
+	  width: 23rpx;
+	  font-size:24rpx;
+	  font-weight:500;
+	  line-height:35rpx;
+	  color: rgb(153, 153, 153);
+	  a{
+	    display: block;
+	  }
+	  .select{
+	    color: #FF4F00;
+	  }
+	}
+	.scroll-view{
+		height: calc(100vh - 93rpx);
+	}
+	.popup-height {
+	
+		width: 200px;
+	}
+	.popup-content{
+		width: 590rpx;
+		background: #FFFFFF;
+		height: 100vh;
+	}
+	.carModel-nav-title{
+	  height:100rpx;
+	  background: linear-gradient(134deg, #FF8635 0%, #FF4828 100%);
+	  line-height: 100rpx;
+	  display: flex;
+	  z-index: 500;
+	  &.cell-logo{
+	    position: sticky;
+	    top: 0;
+	   background: linear-gradient(134deg, #FF8635 0%, #FF4828 100%);
+	  }
+	  .carModel-nav-title-box{
+	    width: 100%;
+	    display: flex;
+	  }
+	  .carModel-nav-title-img{
+	    margin: 20rpx;
+	    width: 60rpx;
+	    height: 60rpx;
+	  }
+	  .carModel-nav-title-msg{
+	    font-size:30rpx;
+	    font-weight:400;
+	    color:rgba(255,255,255,1);
+	    display: block;
+	    padding-right: 20rpx;
+	  }
+	}
+	.cell-item-title{
+	  height:60rpx;
+	  background:rgba(250,250,250,1);
+	  font-size:28rpx;
+	  font-weight:400;
+	  color:rgba(102,102,102,1);
+	  line-height:60rpx;
+	  padding-left: 26rpx;
+	}
+	.span-cell{
+	  position: relative;
+	  display: -webkit-box;
+	  display: -webkit-flex;
+	  display: flex;
+	  box-sizing: border-box;
+	  width: 100%;
+	  padding: 6rpx 30rpx;
+	  overflow: hidden;
+	  color: #323233;
+	  font-size: 3.73333vw;
+	  line-height: 82rpx;
+	  height: 82rpx;
+	  background-color: #fff;
+	  border-bottom: 1px solid #ebedf0;
+	
+	}
+	.carModel-nav-title{
+	  height:100rpx;
+	 background: linear-gradient(134deg, #FF8635 0%, #FF4828 100%);
+	 line-height: 100rpx;
+	  display: flex;
+	  z-index: 500;
+	  &.cell-logo{
+	    position: sticky;
+	    top: 0;
+	    background: linear-gradient(134deg, #FF8635 0%, #FF4828 100%);
+	  }
+	  .carModel-nav-title-box{
+	    width: 100%;
+	    display: flex;
+	  }
+	  .carModel-nav-title-img{
+	    margin: 20rpx;
+	    width: 60rpx;
+	    height: 60rpx;
+	  }
+	  .carModel-nav-title-msg{
+	    font-size:30rpx;
+	    font-weight:400;
+	    color:rgba(255,255,255,1);
+	    display: block;
+	    padding-right: 20px;
+	  }
+	}
+	.displacementListLine{
+		min-height: 50rpx;
+		padding: 20rpx 20rpx 20rpx 30rpx;
+		font-size:28rpx;
+		font-weight:600;
+		color:rgba(51,51,51,1);
+		line-height:50rpx;
+		border-top: 2rpx solid rgb(238, 238, 238);
+		background-color: rgb(255, 255, 255);
+	}
+	.displacementListBox{
+		position: fixed;
+		top: 0;
+		left: 0;
+		width: 100vw;
+		height: 100vh;
+		background:#F4F5F7 ;
+		z-index: 11111;
+		/*  #ifdef H5 */
+		top:44px;
+		/*  #endif  */
+	}
+	.carGroupListBox{
+		position: fixed;
+		top: 0;
+		left: 0;
+		width: 100vw;
+		height: 100vh;
+		background:#F4F5F7 ;
+		z-index: 11111;
+		/*  #ifdef H5 */
+		top:44px;
+		/*  #endif  */
+	}
+	.brandList{
+		height: calc(100vh - 250rpx);
+	}
+	.brand-select-titleselect{
+		    color: #FF4F00 !important;
+	}
+</style>

+ 268 - 0
pages/mobile/SelectCarSix.vue

@@ -0,0 +1,268 @@
+<template>
+	<view class="box">
+		<!-- 自定义导航 -->
+		<view class="zdyNavBox">
+			<view class="status_bar" :style="{height: iStatusBarHeight + 'px'}"></view>
+			<view class="zdyNav">
+				<view class="zdyNavLeft">
+					<image src="../../static/img/nav_icon_back.png" mode="aspectFit" class="backImg" @click="goback">
+					</image>
+
+				</view>
+				<view class="zdyNavTitle">车型件</view>
+				<view class="zdyNavRight" @click="goOemSearch">OEM搜索</view>
+				<!-- <view style="width: 10rpx;"></view> -->
+			</view>
+		</view>
+		<view class="status_bar" :style="{height: iStatusBarHeight + 'px'}"></view>
+		<view style="height: 44px;"></view>
+
+		<view class="top">{{title}}</view>
+
+
+		<view class="mainBox">
+			<view class="maintitle">总组
+				<view class="backBox" @click="blueBack">
+					<image src="../../static/img/icon_arrow_blue_l@2x.png" mode="" class="blueBackImg"></image>
+					<view class="backTxt">返回总组</view>
+				</view>
+			</view>
+			<!-- 搜索 -->
+			<view class="searchBoxBg">
+				<searchBox placeholder="快速查找子组" @search='search($event)'></searchBox>
+			</view>
+
+			<view @click="gomodelThree()" class="mainLine" v-for="(item,index) in cangList">
+				<view class="lineLeft">
+					<image class="lineIMg" src="http://dmsimg.66km.com/thFiles/7C057545-E11E-40F5-AD3C-637EF653B417.jpg"
+						mode="aspectFit"></image>
+				</view>
+				<view class="lineRIght">
+					<view class="lineName">电气设备,排气和加热</view>
+					<view class="lineBm">UH908980</view>
+					<view class="linejs">这是备注,没有就不显示该行,长了有就不显示该有就不显示该长了有就不显示该</view>
+				</view>
+
+
+			</view>
+		</view>
+
+
+	</view>
+</template>
+
+<script>
+	import searchBox from '@/components/searchBox/searchBox.vue'
+	export default {
+		components: {
+			searchBox
+		},
+		data() {
+			return {
+				title: '大众 > 迈腾 > 2022 > 市场一',
+				iStatusBarHeight: '',
+				cangList: [1,2,3,4,5,6,7,8],
+				sonTitle: '发动机',
+				searchValue: '',
+			}
+		},
+		onLoad() {
+			this.iStatusBarHeight = uni.getSystemInfoSync().statusBarHeight;
+
+		},
+		methods: {
+			search(val) {
+				// console.log(val);
+				this.searchValue = val
+			
+			},
+			gomodelThree() {
+				uni.navigateTo({
+					url: 'modelThree'
+				})
+			},
+			goOemSearch() {
+				uni.navigateTo({
+					url: 'OemSearch'
+				})
+			},
+			blueBack(){
+				uni.navigateBack({})
+			},
+			goback() {
+				console.log('返回');
+				uni.navigateBack({})
+			},
+		}
+	}
+</script>
+
+<style>
+	.box {
+		min-height: 100vh;
+		background: #ffffff;
+	}
+
+	.zdyNavBox {
+		width: 100vw;
+		background: #FFFFFF;
+		position: fixed;
+		top: 0;
+		left: 0;
+		z-index: 9999999;
+
+
+	}
+
+	.zdyNav {
+		height: 44px;
+		display: flex;
+		justify-content: space-between;
+
+		align-items: center;
+
+	}
+
+	.backImg {
+		width: 44rpx;
+		height: 44rpx;
+		margin-left: 10rpx;
+		margin-right: 20rpx;
+	}
+
+	.homeImg {
+		width: 44rpx;
+		height: 44rpx;
+
+	}
+
+	.zdyNavLeft {
+		display: flex;
+		align-items: center;
+	}
+
+	.zdyNavTitle {
+
+		height: 44px;
+		background: #FFFFFF;
+		text-align: center;
+		font-size: 34rpx;
+		line-height: 44px;
+	}
+
+	.zdyNavRight {
+		height: 44px;
+		background: #FFFFFF;
+		text-align: center;
+		font-size: 28rpx;
+		line-height: 44px;
+		color: #3F90F7;
+		margin-right: 24rpx;
+	}
+
+	.top {
+		color: #FFFFFF;
+		font-size: 28rpx;
+		padding: 24rpx;
+
+		background: linear-gradient(110deg, #48B9F9 0%, #3F90F7 100%);
+	}
+
+	.mainBox {
+		background: #FFFFFF;
+	}
+
+	.maintitle {
+		font-size: 28rpx;
+		font-family: PingFangSC-Medium, PingFang SC;
+		font-weight: 500;
+		color: #333333;
+		text-align: center;
+		line-height: 88rpx;
+		border-bottom: 1px solid #EEEEEE;
+		position: relative;
+	}
+
+	.blueBackImg {
+		width: 25rpx;
+		height: 24rpx;
+		margin-top: 4rpx;
+	}
+
+	.backBox {
+		display: flex;
+		position: absolute;
+		left: 23rpx;
+		top: 28rpx;
+	}
+
+	.backTxt {
+		color: #3F90F7;
+		font-weight: 400;
+		font-size: 24rpx;
+		line-height: 33rpx;
+	}
+
+	.mainLineJt {
+		width: 25rpx;
+		height: 24rpx;
+		margin-top: 8rpx;
+	}
+
+	.mainLine {
+		display: flex;
+
+		border-bottom: 1px solid #EEEEEE;
+		padding: 29rpx 24rpx;
+	}
+
+	.lineName {
+		font-size: 26rpx;
+		font-family: PingFangSC-Regular, PingFang SC;
+		font-weight: 500;
+		color: #333333;
+		line-height: 40rpx;
+		width: 570rpx;
+		word-wrap: break-word;
+		/*强制换行*/
+		overflow: hidden;
+		/*超出隐藏*/
+		text-overflow: ellipsis;
+		/*隐藏后添加省略号*/
+		white-space: nowrap;
+		/*强制不换行*/
+	}
+
+	.lineIMg {
+		width: 110rpx;
+		height: 110rpx;
+	}
+
+	.lineRIght {
+		padding-left: 20rpx;
+	}
+
+	.lineBm {
+		font-size: 24rpx;
+		font-family: PingFangSC-Regular, PingFang SC;
+		font-weight: 400;
+		color: #999999;
+		padding: 10rpx 0;
+	}
+
+	.linejs {
+		font-size: 24rpx;
+		font-family: PingFangSC-Regular, PingFang SC;
+		font-weight: 400;
+		color: #999999;
+		width: 570rpx;
+		word-wrap: break-word;
+		/*强制换行*/
+		overflow: hidden;
+		/*超出隐藏*/
+		text-overflow: ellipsis;
+		/*隐藏后添加省略号*/
+		white-space: nowrap;
+		/*强制不换行*/
+	}
+</style>

+ 143 - 0
pages/mobile/SelectCarThree.vue

@@ -0,0 +1,143 @@
+<template>
+	<view class="box">
+		<!-- 自定义导航 -->
+		<view class="zdyNavBox">
+			<view class="status_bar" :style="{height: iStatusBarHeight + 'px'}"></view>
+			<view class="zdyNav">
+				<view class="zdyNavLeft">
+					<image src="../../static/img/nav_icon_back.png" mode="aspectFit" class="backImg" @click="goback">
+					</image>
+
+				</view>
+				<view class="zdyNavTitle">选择年份</view>
+				<view class="zdyNavRight" @click="goOemSearch">OEM搜索</view>
+				<!-- <view style="width: 10rpx;"></view> -->
+			</view>
+		</view>
+		<view class="status_bar" :style="{height: iStatusBarHeight + 'px'}"></view>
+		<view style="height: 44px;"></view>
+
+		<view class="top">{{title}}</view>
+		
+		<view @click="goSelectCarFour()" class="xingBox" v-for="(item,index) in nianList" :key="index">
+			<view class="xing">2022</view>
+			<image src="../../static/img/rightArrow.png" mode="" style="width: 12rpx; height: 20rpx"></image>
+		</view>
+
+
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				title: '大众 > 迈腾 >',
+				iStatusBarHeight: '',
+				
+				nianList: [1, 2, 3, 4, 5],
+			}
+		},
+		onLoad() {
+			this.iStatusBarHeight = uni.getSystemInfoSync().statusBarHeight;
+
+		},
+		methods: {
+			goSelectCarFour(){
+				uni.navigateTo({
+					url: 'SelectCarFour'
+				})
+			},
+			goOemSearch() {
+				uni.navigateTo({
+					url: 'OemSearch'
+				})
+			},
+			goback() {
+				console.log('返回');
+				uni.navigateBack({})
+			},
+		}
+	}
+</script>
+
+<style>
+	.box {
+		min-height: 100vh;
+		background: #ffffff;
+	}
+
+	.zdyNavBox {
+		width: 100vw;
+		background: #FFFFFF;
+		position: fixed;
+		top: 0;
+		left: 0;
+		z-index: 9999999;
+
+
+	}
+
+	.zdyNav {
+		height: 44px;
+		display: flex;
+		justify-content: space-between;
+
+		align-items: center;
+
+	}
+
+	.backImg {
+		width: 44rpx;
+		height: 44rpx;
+		margin-left: 10rpx;
+		margin-right: 20rpx;
+	}
+
+	.homeImg {
+		width: 44rpx;
+		height: 44rpx;
+
+	}
+
+	.zdyNavLeft {
+		display: flex;
+		align-items: center;
+	}
+
+	.zdyNavTitle {
+
+		height: 44px;
+		background: #FFFFFF;
+		text-align: center;
+		font-size: 34rpx;
+		line-height: 44px;
+	}
+
+	.zdyNavRight {
+		height: 44px;
+		background: #FFFFFF;
+		text-align: center;
+		font-size: 28rpx;
+		line-height: 44px;
+		color: #3F90F7;
+		margin-right: 24rpx;
+	}
+
+	.top {
+		color: #FFFFFF;
+		font-size: 28rpx;
+		padding: 24rpx;
+
+		background: linear-gradient(110deg, #48B9F9 0%, #3F90F7 100%);
+	}
+	
+	.xingBox{
+		font-size: 28rpx;
+		display: flex;
+		justify-content: space-between;
+		align-items: center;
+		padding: 24rpx;
+		border-bottom: 1rpx solid #eeeeee;
+	}
+</style>

+ 168 - 0
pages/mobile/SelectCarTwo.vue

@@ -0,0 +1,168 @@
+<template>
+	<view class="box">
+		<!-- 自定义导航 -->
+		<view class="zdyNavBox">
+			<view class="status_bar" :style="{height: iStatusBarHeight + 'px'}"></view>
+			<view class="zdyNav">
+				<view class="zdyNavLeft">
+					<image src="../../static/img/nav_icon_back.png" mode="aspectFit" class="backImg" @click="goback">
+					</image>
+
+				</view>
+				<view class="zdyNavTitle">{{title}}</view>
+				<view class="zdyNavRight" @click="goOemSearch">OEM搜索</view>
+				<!-- <view style="width: 10rpx;"></view> -->
+			</view>
+		</view>
+		<view class="status_bar" :style="{height: iStatusBarHeight + 'px'}"></view>
+		<view style="height: 44px;"></view>
+
+		<!-- 搜索 -->
+		<view class="searchBoxBg">
+			<searchBox placeholder="搜索车型" @search='search($event)'></searchBox>
+		</view>
+		
+		<view class="cangBox" v-for="(item,index) in cangList" :key="index">
+			<view class="cangTitle">一汽大众</view>
+			<view @click="goSelectCarThree()" class="xingBox" v-for="(item,index) in xingList" :key="index">
+				<view class="xing">迈腾</view>
+				<image src="../../static/img/rightArrow.png" mode="" style="width: 12rpx; height: 20rpx"></image>
+			</view>
+		</view>
+
+
+	</view>
+</template>
+
+<script>
+	import searchBox from '@/components/searchBox/searchBox.vue'
+	export default {
+		components: {
+			searchBox
+		},
+		data() {
+			return {
+				title: '大众',
+				iStatusBarHeight: '',
+				searchValue: '',
+				cangList: [1, 2],
+				xingList: [1, 2, 3, 4, 5],
+			}
+		},
+		onLoad() {
+			this.iStatusBarHeight = uni.getSystemInfoSync().statusBarHeight;
+
+		},
+		methods: {
+			search(val) {
+				// console.log(val);
+				this.searchValue = val
+			
+			},
+			goSelectCarThree(){
+				uni.navigateTo({
+					url: 'SelectCarThree'
+				})
+			},
+			
+			goOemSearch() {
+				uni.navigateTo({
+					url: 'OemSearch'
+				})
+			},
+			goback() {
+				console.log('返回');
+				uni.navigateBack({})
+			},
+		}
+	}
+</script>
+
+<style>
+	.box {
+		min-height: 100vh;
+		background: #ffffff;
+	}
+
+	.zdyNavBox {
+		width: 100vw;
+		background: #FFFFFF;
+		position: fixed;
+		top: 0;
+		left: 0;
+		z-index: 9999999;
+
+
+	}
+
+	.zdyNav {
+		height: 44px;
+		display: flex;
+		justify-content: space-between;
+
+		align-items: center;
+
+	}
+
+	.backImg {
+		width: 44rpx;
+		height: 44rpx;
+		margin-left: 10rpx;
+		margin-right: 20rpx;
+	}
+
+	.homeImg {
+		width: 44rpx;
+		height: 44rpx;
+
+	}
+
+	.zdyNavLeft {
+		display: flex;
+		align-items: center;
+	}
+
+	.zdyNavTitle {
+
+		height: 44px;
+		background: #FFFFFF;
+		text-align: center;
+		font-size: 34rpx;
+		line-height: 44px;
+	}
+
+	.zdyNavRight {
+		height: 44px;
+		background: #FFFFFF;
+		text-align: center;
+		font-size: 28rpx;
+		line-height: 44px;
+		color: #3F90F7;
+		margin-right: 24rpx;
+	}
+
+	.top {
+		color: #FFFFFF;
+		font-size: 28rpx;
+		padding: 24rpx;
+
+		background: linear-gradient(110deg, #48B9F9 0%, #3F90F7 100%);
+	}
+	.cangBox{
+		background: #FFFFFF;
+	}
+	.cangTitle{
+		padding: 10rpx 24rpx;
+		background: #F4F5F7;
+		color: #333333;
+		font-size: 28rpx;
+	}
+	.xingBox{
+		font-size: 28rpx;
+		display: flex;
+		justify-content: space-between;
+		align-items: center;
+		padding: 24rpx;
+		border-bottom: 1rpx solid #eeeeee;
+	}
+</style>

+ 42 - 9
pages/mobile/SonGroup.vue

@@ -4,10 +4,10 @@
 
 			<view class="workBox2" v-for="(item,index) in itemList" :key="index">
 				<view class="leftBox">
-					<view class="name">节气门总成节气门总成节气门总成节气门总成节气门总成节气门总成节气门总成节气门总成节气门总成节气门总成</view>
-					<view @click="goModelThree()" class="code">1678-RRT-001</view>
-					<view class="comment">子组名称</view>
-					<view class="comment">总组名称</view>
+					<view class="name">{{item.name}}</view>
+					<view @click="goModelThree(item)" class="code">{{item.partnum}}</view>
+					<view class="comment">{{item.caption}}</view>
+					<view class="comment">{{item.group}}</view>
 				</view>
 				<image src="../../static/img/rightArrow.png" mode="" style="width: 12rpx; height: 20rpx"></image>
 			</view>
@@ -18,14 +18,47 @@
 <script>
 	export default {
 		data() {
-			return {
-				itemList: [1, 2, 3, 4]
+			return {
+				epc_id:'',
+				token:'',
+				param:'',
+				access_time:'',
+				itemData:{},
+				itemList: []
 			}
+		},
+		onLoad(opt) {
+			this.epc_id = opt.epc_id;
+			this.token = opt.token;
+			this.param = opt.param;
+			this.access_time = opt.access_time;
+			this.getItemData();
 		},
-		methods: {
-			goModelThree() {
+		methods: {
+			// 配件组别
+			getItemData() {
+				uni.showLoading({
+					title: '加载中'
+				});
+				this.$http('advancedEpc/findInModelPc', {
+					epc_id:this.epc_id,
+					token:this.token,
+					param:this.param,
+					access_time:this.access_time,
+				}, 'GET').then(res => {
+					uni.hideLoading();
+					
+					this.itemData = res.data.result;
+					this.itemList = res.data.result.list;
+					
+			
+				});
+			},
+			goModelThree(item) {
+				// console.log('num==',item);
 				uni.navigateTo({
-					url: 'modelThree'
+					url: 'modelThree?epc_id=' + this.epc_id + '&token=' + item.token + '&param=' + item.param+ '&access_time=' + this.itemData.access_time
+				
 				})
 			}
 		}

+ 104 - 15
pages/mobile/modelThree.vue

@@ -1,9 +1,9 @@
 <template>
 	<view class="content">
 		<view class="top">
-			<image class="topIMg" src="http://dmsimg.66km.com/thFiles/7C057545-E11E-40F5-AD3C-637EF653B417.jpg" mode="">
+			<image class="topIMg" :src=groupData[tabIndex-1].image_url mode="">
 			</image>
-			<image @click="previewImage('http://dmsimg.66km.com/thFiles/7C057545-E11E-40F5-AD3C-637EF653B417.jpg')"
+			<image @click="previewImage(groupData[tabIndex-1].image_url)"
 				src="../../static/img/icon_fangda@2x.png" mode="" class="enlarge"></image>
 		</view>
 		<view style="height: 20rpx;background: #F4F5F7;"></view>
@@ -11,26 +11,26 @@
 			<view class="mainTop">
 				<view class="arrowBox">
 					<image src="../../static/img/icon_arrow_blue_l@2x.png" mode="" class="arrow"></image>
-					<view class="title">上一组</view>
+					<view class="title" @click="upGroup">上一组</view>
 				</view>
-				<view class="page">1/20</view>
+				<view class="page">{{tabIndex}}/{{groupData.length}}</view>
 				<view class="arrowBox">
-					<view class="title">下一组</view>
+					<view class="title" @click="downGroup">下一组</view>
 					<image src="../../static/img/icon_arrow_blue_r@2x.png" mode="" class="arrow"></image>
 				</view>
 			</view>
 
 			<view class="commentBox" v-for="(item,index) in itemList" :key="index">
 				<view class="line">
-					<view class="wei">位置1</view>
-					<view class="yong">用量1</view>
+					<view class="wei">{{item.refernum}}</view>
+					<view class="yong">{{item.qty}}</view>
 				</view>
-				<view class="name">节气门总成</view>
-				<view class="comment">这是备注,没有就不显示该行</view>
+				<view class="name">{{item.description}}</view>
+				<view class="comment">{{item.remark}}</view>
 				<view class="forLine">
-					<view @click="goOemDetail()" class="code">1678-RRT-001</view>
+					<view @click="goOemDetail()" class="code">{{item.extened}}</view>
 					<view class="price">4S店价:
-						<span class="orangePrice">¥ 99.98</span>
+						<span class="orangePrice">¥ {{item.price}}</span>
 					</view>
 				</view>
 			</view>
@@ -43,13 +43,102 @@
 		data() {
 			return {
 				title: 'Hello',
-				itemList: [1, 2, 3, 4],
+				vin: '',
+				epc_id: '',
+				token: '',
+				param: '',
+				access_time: '',
+				groupData: [],
+				itemList: [],
+				imgUrl:'',
+				tabIndex:1,
+				son_vin: '',
+				son_epc_id: '',
+				son_token: '',
+				son_param: '',
+				son_access_time: '',
 			}
 		},
-		onLoad() {
-
+		onLoad(opt) {
+			// console.log('opt++',opt);
+			this.vin = opt.vin;
+			this.epc_id = opt.epc_id;
+			this.token = opt.token;
+			this.param = opt.param;
+			this.access_time = opt.access_time;
+			
+			this.getGroupData();
 		},
-		methods: {
+		methods: {
+			upGroup() {
+				this.tabIndex -= 1;
+				if (this.tabIndex <= 0) {
+					this.tabIndex = 1
+				}
+				
+				this.son_param = this.groupData[this.tabIndex-1].param;
+				this.son_token = this.groupData[this.tabIndex-1].token;
+				this.son_access_time = this.groupData[this.tabIndex-1].access_time;
+				
+				this.getItemData();
+			},
+			downGroup(){
+				this.tabIndex += 1;
+				if (this.tabIndex >= this.groupData.length) {
+					this.tabIndex = this.groupData.length
+				}
+				
+				this.son_param = this.groupData[this.tabIndex-1].param;
+				this.son_token = this.groupData[this.tabIndex-1].token;
+				this.son_access_time = this.groupData[this.tabIndex-1].access_time;
+				
+				this.getItemData();
+			},
+			// 车型子组列表
+			getGroupData() {
+				var that = this
+				uni.showLoading({
+					title: '加载中'
+				});
+				this.$http('/advancedEpc/getSubgroupPc', {
+					vin: this.vin,
+					epc_id: this.epc_id,
+					token: this.token,
+					param: this.param,
+					access_time: this.access_time,
+				}, 'GET').then(res => {
+					uni.hideLoading();
+					
+					this.groupData = res.data.result.list;
+					
+					this.son_epc_id = res.data.result.epc_id;
+					this.son_param = this.groupData[0].param;
+					this.son_token = this.groupData[0].token;
+					this.son_access_time = res.data.result.access_time;
+					
+					that.getItemData();
+				});
+			},
+			// 子组配件列表
+			getItemData() {
+				
+				uni.showLoading({
+					title: '加载中'
+				});
+				this.$http('/advancedEpc/getPartsPc', {
+					vin: this.son_vin,
+					epc_id: this.son_epc_id,
+					token: this.son_token,
+					param: this.son_param,
+					access_time: this.son_access_time,
+				}, 'GET').then(res => {
+					uni.hideLoading();
+					
+					this.itemList = res.data.result.list.rows;
+					// this.imgUrl = res.data.result.list.image_info[0].pic_url;
+					console.log('itemList++',this.itemList);
+				});
+			},
 			goOemDetail(id) {
 				uni.navigateTo({
 					url: 'OemDetail?id=' + id