Browse Source

debugger search page

liguorui 6 years ago
parent
commit
4bafd773af

+ 3 - 2
app.json

@@ -1,12 +1,13 @@
 {
   "pages":[
-    "pages/buy/buy",
     "pages/index/index",
+    "pages/buy/buy",
     "pages/logs/logs",
     "pages/search/search",
     "pages/searchresult/searchresult",
     "pages/shop/shop",
-    "pages/sell/sell"
+    "pages/sell/sell",
+    "pages/cardetail/cardetail"
   ],
   "window":{
     "navigationBarBackgroundColor": "#fede18",

+ 3 - 1
common/pathmap.js

@@ -12,5 +12,7 @@ export default{
   "storeinfo":"/api/store_info",
   "searchcar":"/api/cars",
   "wheres":"/api/wheres",      //筛选条件获取
-  "series":"/api/car_series"  //获取车系信息
+  "series":"/api/car_series",  //获取车系信息
+  "brandrecommend":"/api/home_brand",    //推荐品牌
+  "cardetail":"/api/car_detail"           //获取车辆详情
 }

BIN
img/address.png


BIN
img/phone.png


+ 9 - 2
module/caritem/caritem.wxml

@@ -1,8 +1,15 @@
 <template name="caritem">
   <view class="caritem_b">
-    <view class="caritem_img" style="background-image:url({{car.img}})"/>
+    <navigator 
+      class="caritem_img" 
+      style="background-image:url({{car.img}})"
+      url="../cardetail/cardetail?id={{car.id}}"
+    />
     <view class="caritem_info">
-      <view class="caritem_t">{{car.title}}</view>
+      <navigator 
+        class="caritem_t"
+        url="../cardetail/cardetail?id={{car.id}}"
+      >{{car.title}}</navigator>
       <view class="caritem_time">
         {{car.licensetime}}年上牌|{{car.mileage}}万公里
         <navigator 

+ 134 - 0
pages/buy/brandlist.wxml

@@ -0,0 +1,134 @@
+<!--筛选品牌模块-->
+<scroll-view
+  class="brandw_c"
+  style="{{selectbar=='brand'?'left:0rpx;':''}}"
+  scroll-into-view ="{{scrolltoinit}}"
+  bindscroll="brandScroll"
+  scroll-y=true
+>
+  <view      
+    style="height:{{headerheight}}rpx;"
+  ></view>
+  <view 
+    class="brandw_title"
+    style="height:{{headerheight}}rpx;"
+  >
+    <image 
+      class="brandw_back" 
+      src="../../img/back.png"
+      bindtap="filterBack"
+    />
+    <view class="brandw_title_w">品牌</view>
+  </view>
+  <view class="brandw_list">
+    <view class="brandw_t_line">热门品牌</view>
+    <view class="brandw_hotlist">
+      <view class="brandw_hotlist_item">
+        <view class="brandw_hotitem_img" style="background-image:url(../../img/brand.png)"></view>
+        <view class="brandw_hotitem_name">11111</view>
+      </view>
+      <view class="brandw_hotlist_item">
+        <view class="brandw_hotitem_img" style="background-image:url(../../img/brand.png)"></view>
+        <view class="brandw_hotitem_name">11111</view>
+      </view>
+      <view class="brandw_hotlist_item">
+        <view class="brandw_hotitem_img" style="background-image:url(../../img/brand.png)"></view>
+        <view class="brandw_hotitem_name">11111</view>
+      </view>
+      <view class="brandw_hotlist_item">
+        <view class="brandw_hotitem_img" style="background-image:url(../../img/brand.png)"></view>
+        <view class="brandw_hotitem_name">11111</view>
+      </view>
+      <view class="brandw_hotlist_item">
+        <view class="brandw_hotitem_img" style="background-image:url(../../img/brand.png)"></view>
+        <view class="brandw_hotitem_name">11111</view>
+      </view>
+      <view class="brandw_hotlist_item">
+        <view class="brandw_hotitem_img" style="background-image:url(../../img/brand.png)"></view>
+        <view class="brandw_hotitem_name">11111</view>
+      </view>
+      <view class="brandw_hotlist_item">
+        <view class="brandw_hotitem_img" style="background-image:url(../../img/brand.png)"></view>
+        <view class="brandw_hotitem_name">11111</view>
+      </view>
+      <view class="brandw_hotlist_item">
+        <view class="brandw_hotitem_img" style="background-image:url(../../img/brand.png)"></view>
+        <view class="brandw_hotitem_name">11111</view>
+      </view>
+      <view class="brandw_hotlist_item">
+        <view class="brandw_hotitem_img" style="background-image:url(../../img/brand.png)"></view>
+        <view class="brandw_hotitem_name">11111</view>
+      </view>
+      <view class="brandw_hotlist_item">
+        <view class="brandw_hotitem_img" style="background-image:url(../../img/brand.png)"></view>
+        <view class="brandw_hotitem_name">11111</view>
+      </view>
+    </view>
+
+    <view class="brandw_t_line">不限品牌</view>
+    <block wx:for="{{wheres.brandlist}}" wx:key="initial">
+      <view class="brandw_binitial" id="{{item.initial}}">
+        {{item.initial}}
+      </view>
+      <block wx:for="{{item.list}}" wx:for-item="branditem" wx:key="brand_id">
+        <view 
+          class="brandw_bitem"
+          bindtap="getBrandDetail"
+          data-brand="{{branditem}}"
+        >
+          <view
+            class="brandw_bimg"
+            style="background-image:url(../../img/brand.png)"
+          />
+          <view class="brandw_bname">{{branditem.brand_name}}</view>
+        </view>
+      </block>
+    </block>
+    <scroll-view
+      class="brand_serieslist"
+      scroll-y=true
+      style="height: {{windowh-headerheight}}rpx; {{serieslist?'right:0rpx;':''}}"
+    >
+      <view class="series_lelong">
+          <view
+            class="series_lelong_bimg"
+            style="background-image:url(../../img/brand.png)"
+          />
+
+            <!-- serieslist.belong.img -->
+          <view class="series_lelong_name">{{serieslist.belong.brand_name}}</view>
+        </view>  
+      <view class="car_series_t">选择车系</view>
+      <block
+        wx:for="{{serieslist.list}}"
+        wx:key="car_series_id"
+      >
+        <view 
+          class="brand_series_i"
+          bindtap="selectSeries"
+          data-series = "{{item}}"
+          >
+          <view
+            class="brand_series_bimg"
+            style="background-image:url(../../img/brand.png)"
+          />
+          <view class="brand_series_name">{{item.car_series_name}}</view>
+        </view>          
+      </block>
+    </scroll-view>
+    <view 
+      class="brand_initail_c"
+      style="display: {{selectbar=='brand'?'block':'none'}}"
+    >
+      <view 
+        class="brand_initail_i {{scrollinit==item.initial?'brand_initail_active':''}}"wx:for="{{wheres.brandlist}}"
+        wx:key="initial"
+        style="height:{{initialheight}}rpx"
+        bindtap="scrollInit"
+        data-init = "{{item.initial}}"
+      >
+        {{item.initial}}
+      </view>
+    </view>
+  </view>
+</scroll-view>

+ 61 - 20
pages/buy/buy.js

@@ -13,7 +13,7 @@ Page({
    */
   data: {
     windowh: app.globalData.windowh,
-    list:[],
+    list:false,
     pagesize:15,
     pageindex:0,
     lock:false,
@@ -81,10 +81,13 @@ Page({
   onLoad: function (options) {
     bindSearch(this);
     var initialheight = (app.globalData.windowh-300)/26;
-    this.setData(Object.assign({initialheight:initialheight},stylemap));
-    var searchdata = Object.assign(this.data.searchdata,{keys:options.keys||""});
+    var searchdata = Object.assign(this.data.searchdata,options);
+    this.setData(Object.assign({
+      initialheight:initialheight
+    },stylemap));
     this.getWheres();
     this.getList(this.data.searchdata);
+    this.loadBrandRecommend()
   },
   transformSearchData:function(searchdata){
     var para = Object.assign({},searchdata);
@@ -112,7 +115,7 @@ Page({
           brandlist[item.initial].push(item);
         }
       })
-      var inith = 504;
+      var inith = 562;
       var scale = app.globalData.scale;
       for(var name in brandlist){
         var l = brandlist[name].length;
@@ -130,6 +133,13 @@ Page({
       })
     })
   },
+  loadBrandRecommend:function(){
+    var _self = this;
+    get(pathmap.brandrecommend, {
+    }, function (json) {
+
+    })
+  },
   getList:function(searchdata){
     var _self = this;
     var para = this.transformSearchData(searchdata);
@@ -177,7 +187,7 @@ Page({
     var id = el.dataset.id;
     var searchdata = Object.assign(this.data.searchdata,{price:id});
     this.setData({
-      selectbar:""
+      selectbar:""                      //关闭筛选卡
     })
     this.getList(searchdata);
   },
@@ -204,26 +214,57 @@ Page({
   getBrandDetail:function(e){
     var _self = this;
     var brand = e.currentTarget.dataset.brand;
-    get(pathmap.series, {
-      brand_id:brand.brand_id
-    }, function (json) {
-      var list = retCartData(json.data.list)
-      _self.setData({
-        serieslist: json.data
-      })
+    var series = [];
+    this.data.wheres.car_series.map(function(item){
+      if(item.brand_id == brand.brand_id){
+        series.push(item);
+      }
     })
+    this.setData({
+      serieslist:{
+        belong:brand,
+        list:series
+      },
+      searchdata:Object.assign(this.data.searchdata,{brand:brand.brand_id,car_series:""})
+    })
+    // get(pathmap.series, {
+    //   brand_id:brand.brand_id
+    // }, function (json) {
+    //   var list = retCartData(json.data.list)
+    //   _self.setData({
+    //     serieslist: json.data
+    //   })
+    // })
   },
+  waitScroll:null,
   brandScroll:function(e) {
+    var _self = this;
     //this.setData({ brandScrollTop: e.detail.scrollTop })
-    var scrollinit = "";
-    var list = this.data.wheres.brandlist;
-    for(var i=0,l=list.length;i<l;i++){
-      if(e.detail.scrollTop<list[i].top){
-        scrollinit = list[i].initial;
-        break;
-      }
+    if(this.waitScroll){
+      try{
+        clearTimeout(this.waitScroll);
+      }catch(err){}
     }
-    this.setData({scrollinit:scrollinit})
+    this.waitScroll = setTimeout(function(){      
+      var scrollinit = "";
+      var list = _self.data.wheres.brandlist;
+      for(var i=0,l=list.length;i<l;i++){
+        if(e.detail.scrollTop<list[i].top){
+          scrollinit = list[i?i-1:i].initial;
+          break;
+        }
+      }
+      _self.setData({scrollinit:scrollinit})
+    },50)
+  },
+  selectSeries:function(e){
+    var _self = this;
+    var series = e.currentTarget.dataset.series;
+    this.setData({
+      serieslist:"",
+      selectbar:""                      //关闭品牌筛选卡
+    })
+    this.getList(Object.assign(this.data.searchdata,{car_series:series.car_series_id}));
   },
   filterBack:function(){
     this.setData({selectbar:""})

+ 8 - 305
pages/buy/buy.wxml

@@ -31,314 +31,17 @@
       </block>
     </view>
     <!--筛选排序模块-->
-    <view 
-      class="sortby_c"
-      style="height: {{selectbar=='sortby'?windowh:'0'}}rpx;"
-    >
-      <view class="sortby_list">
-        <block wx:for="{{sortbymap}}" wx:key="value">
-          <view 
-            class="sortby_item" 
-            data-sort="{{item.value}}"
-            bindtap="changeSort"
-          >
-            {{item.title}}
-            <image 
-              src="../../img/sort_active.png"
-              wx:if="{{searchdata.sortby == item.value}}"
-              class="sortby_active"
-            />
-          </view>
-        </block>
-      </view>
-    </view>
+    <include src="./sort.wxml"/>
+    
     <!--筛选价格模块-->
-    <view 
-      class="price_c"
-      style="height: {{selectbar=='price'?windowh:'0'}}rpx;"
-    >
-      <view class="price_list">
-        <view 
-            class="price_item {{searchdata.price == ''?'price_item_active':''}}" 
-            data-id=""
-            bindtap="changePrice"
-          >
-            不限价格
-          </view>
-        <block wx:for="{{wheres.price}}" wx:key="price_id">
-          <view 
-            class="price_item {{searchdata.price == item.price_id?'price_item_active':''}}" 
-            data-id="{{item.price_id}}"
-            bindtap="changePrice"
-          >
-            {{item.price_name}}
-          </view>
-        </block>
-      </view>
-    </view>
+    <include src="./pricespace.wxml"/>
+    
   </view>
   <!--筛选品牌模块-->
-  <scroll-view
-    class="brandw_c"
-    style="{{selectbar=='brand'?'left:0rpx;':''}}"
-    scroll-into-view ="{{scrolltoinit}}"
-    bindscroll="brandScroll"
-    scroll-y=true
-  >
-    <view      
-      style="height:{{headerheight}}rpx;"
-    ></view>
-    <view 
-      class="brandw_title"
-      style="height:{{headerheight}}rpx;"
-    >
-      <image 
-        class="brandw_back" 
-        src="../../img/back.png"
-        bindtap="filterBack"
-      />
-      <view class="brandw_title_w">品牌</view>
-    </view>
-    <view class="brandw_list">
-      <view class="brandw_t_line">热门品牌</view>
-      <view class="brandw_hotlist">
-        <view class="brandw_hotlist_item">
-          <view class="brandw_hotitem_img" style="background-image:url(../../img/brand.png)"></view>
-          <view class="brandw_hotitem_name">11111</view>
-        </view>
-        <view class="brandw_hotlist_item">
-          <view class="brandw_hotitem_img" style="background-image:url(../../img/brand.png)"></view>
-          <view class="brandw_hotitem_name">11111</view>
-        </view>
-        <view class="brandw_hotlist_item">
-          <view class="brandw_hotitem_img" style="background-image:url(../../img/brand.png)"></view>
-          <view class="brandw_hotitem_name">11111</view>
-        </view>
-        <view class="brandw_hotlist_item">
-          <view class="brandw_hotitem_img" style="background-image:url(../../img/brand.png)"></view>
-          <view class="brandw_hotitem_name">11111</view>
-        </view>
-        <view class="brandw_hotlist_item">
-          <view class="brandw_hotitem_img" style="background-image:url(../../img/brand.png)"></view>
-          <view class="brandw_hotitem_name">11111</view>
-        </view>
-        <view class="brandw_hotlist_item">
-          <view class="brandw_hotitem_img" style="background-image:url(../../img/brand.png)"></view>
-          <view class="brandw_hotitem_name">11111</view>
-        </view>
-        <view class="brandw_hotlist_item">
-          <view class="brandw_hotitem_img" style="background-image:url(../../img/brand.png)"></view>
-          <view class="brandw_hotitem_name">11111</view>
-        </view>
-        <view class="brandw_hotlist_item">
-          <view class="brandw_hotitem_img" style="background-image:url(../../img/brand.png)"></view>
-          <view class="brandw_hotitem_name">11111</view>
-        </view>
-        <view class="brandw_hotlist_item">
-          <view class="brandw_hotitem_img" style="background-image:url(../../img/brand.png)"></view>
-          <view class="brandw_hotitem_name">11111</view>
-        </view>
-        <view class="brandw_hotlist_item">
-          <view class="brandw_hotitem_img" style="background-image:url(../../img/brand.png)"></view>
-          <view class="brandw_hotitem_name">11111</view>
-        </view>
-      </view>
-
-      <view class="brandw_t_line">不限品牌</view>
-      <block wx:for="{{wheres.brandlist}}">
-        <view class="brandw_binitial" id="{{item.initial}}">
-          {{item.initial}}
-        </view>
-        <block wx:for="{{item.list}}" wx:for-item="branditem">
-          <view 
-            class="brandw_bitem"
-            bindtap="getBrandDetail"
-            data-brand="{{branditem}}"
-          >
-            <view
-              class="brandw_bimg"
-              style="background-image:url(../../img/brand.png)"
-            />
-            <view class="brandw_bname">{{branditem.brand_name}}</view>
-          </view>
-        </block>
-      </block>
-      <view
-        class="brand_serieslist"
-        style="height: {{windowh-headerheight}}rpx"
-      >
-
-        <block
-          wx:for="{{serieslist}}"
-        >
-          <view class="brand_series_i">
-            
-          </view>          
-        </block>
-      </view>
-      <view 
-        class="brand_initail_c"
-        style="display: {{selectbar=='brand'?'block':'none'}}"
-      >
-        <view 
-          class="brand_initail_i {{scrollinit==item.initial?'brand_initail_active':''}}" 
-          wx:for="{{wheres.brandlist}}"
-          style="height:{{initialheight}}rpx"
-          bindtap="scrollInit"
-          data-init = "{{item.initial}}"
-        >
-          {{item.initial}}
-        </view>
-      </view>
-    </view>
-  </scroll-view>
-
- <!--  更多筛选条件 -->
-
-  <scroll-view
-    class="more_c"
-    style="{{selectbar=='more'?'left:0rpx;':''}}"
-    scroll-y=true
-  >
-    <view      
-      style="height:{{headerheight}}rpx;"
-    ></view>
-    <view 
-      class="brandw_title"
-      style="height:{{headerheight}}rpx;"
-    >
-      <image 
-        class="brandw_back" 
-        src="../../img/back.png"
-        bindtap="filterBack"
-      />
-      <view class="brandw_title_w">更多筛选</view>
-    </view>
-    <view class="wheres_more_i">
-      <view class="more_n">车龄</view>
-      <view class="more_list">
-        <view
-          class="more_detail_i {{searchdata.car_age==''?'more_detail_active':''}}"
-          data-type="car_age"
-          data-value=""
-          bindtap="getMoreFilter"
-        >不限</view>
-        <view 
-          wx:for="{{wheres.car_age}}"
-          class="more_detail_i {{searchdata.car_age==item.car_age_id?'more_detail_active':''}}"          
-          data-type="car_age"
-          data-value="{{item.car_age_id}}"
-          bindtap="getMoreFilter"
-        >
-          {{item.car_age_name}}
-        </view>
-      </view>
-    </view>
-    <view class="wheres_more_i">
-      <view class="more_n">里程</view>
-      <view class="more_list">
-        <view
-          class="more_detail_i {{searchdata.mileage==''?'more_detail_active':''}}"
-          data-type="mileage"
-          data-value=""
-          bindtap="getMoreFilter"
-        >不限</view>
-        <view 
-          wx:for="{{wheres.mileage}}"
-          class="more_detail_i {{searchdata.mileage==item.mileage_id?'more_detail_active':''}}"          
-          data-type="mileage"
-          data-value="{{item.mileage_id}}"
-          bindtap="getMoreFilter"
-        >
-          {{item.mileage_name}}
-        </view>
-      </view>
-    </view>
-    <view class="wheres_more_i">
-      <view class="more_n">变数箱</view>
-      <view class="more_list">
-        <view
-          class="more_detail_i {{searchdata.transmission==''?'more_detail_active':''}}"
-          data-type="transmission"
-          data-value=""
-          bindtap="getMoreFilter"
-        >不限</view>
-        <view 
-          wx:for="{{wheres.transmission}}"
-          class="more_detail_i {{searchdata.transmission==item.transmission_id?'more_detail_active':''}}"          
-          data-type="transmission"
-          data-value="{{item.transmission_id}}"
-          bindtap="getMoreFilter"
-        >
-          {{item.transmission_name}}
-        </view>
-      </view>
-    </view>
-    <view class="wheres_more_i">
-      <view class="more_n">排量</view>
-      <view class="more_list">
-        <view
-          class="more_detail_i {{searchdata.displacement==''?'more_detail_active':''}}"
-          data-type="displacement"
-          data-value=""
-          bindtap="getMoreFilter"
-        >不限</view>
-        <view 
-          wx:for="{{wheres.displacement}}"
-          class="more_detail_i {{searchdata.displacement==item.displacement_id?'more_detail_active':''}}"          
-          data-type="displacement"
-          data-value="{{item.displacement_id}}"
-          bindtap="getMoreFilter"
-        >
-          {{item.displacement_name}}
-        </view>
-      </view>
-    </view>
-    <view class="wheres_more_i">
-      <view class="more_n">排放标准</view>
-      <view class="more_list">
-        <view
-          class="more_detail_i {{searchdata.emission==''?'more_detail_active':''}}"
-          data-type="emission"
-          data-value=""
-          bindtap="getMoreFilter"
-        >不限</view>
-        <view 
-          wx:for="{{wheres.emission}}"
-          class="more_detail_i {{searchdata.emission==item.emission_id?'more_detail_active':''}}"          
-          data-type="emission"
-          data-value="{{item.emission_id}}"
-          bindtap="getMoreFilter"
-        >
-          {{item.emission_name}}
-        </view>
-      </view>
-    </view>
-    <view class="wheres_more_i">
-      <view class="more_n">颜色</view>
-      <view class="more_list">
-        <view 
-          wx:for="{{wheres.colour}}"
-          class="more_detail_i {{searchdata.colour==item.colour_id?'more_detail_active':''}}"          
-          data-type="colour"
-          data-value="{{item.colour_id}}"
-          bindtap="getMoreFilter"
-        >
-          {{item.colour_name}}
-        </view>
-      </view>
-    </view>
-    <view class="more_bts">
-      <view 
-        class="more_bt_reset"
-        bindtap="resetFilter"
-        >重置</view>
-      <view 
-        bindtap="moreSearch"
-        class="more_bt_check"
-      >查看车源</view>
-    </view>
-  </scroll-view>
+  <include src="./brandlist.wxml"/>
+  <!--  更多筛选条件 -->
+  <include src="./more.wxml"/>
+  <view wx:if="{{!list}}"></view>
   <view wx:if="{{list.length>0}}" class="cart_list">
     <block wx:for="{{list}}" wx:key="id">
       <template is="caritem" data="{{car:item}}"/>

+ 57 - 1
pages/buy/buy.wxss

@@ -186,7 +186,7 @@
 	height: 60rpx;
 	width:60rpx;
 	float:left;
-	margin:10px 38rpx 0rpx;
+	margin:10px 30rpx 0rpx 38rpx;
 	background-repeat: no-repeat;
 	background-size: 60rpx;
 	background-position: center;
@@ -197,6 +197,62 @@
 	color: rgba(56, 55, 53, 1);
 	font-size: 26rpx;
 }
+
+.brand_serieslist{
+	width:440rpx;
+	background-color: white;
+	position: fixed;
+	bottom: 0rpx;
+	right:770rpx;
+	border-shadow:-1rpx 0rpx ;
+	box-shadow: -2rpx 0rpx 10rpx -1rpx rgba(0, 0, 0, 0.16);
+}
+.series_lelong{
+	height: 78rpx;
+	line-height: 78rpx;
+}
+.series_lelong_bimg{
+	height:60rpx;
+	width:60rpx;
+	float:left;
+	margin:10px 20rpx 0rpx 28rpx;
+	background-repeat:no-repeat;
+	background-size:60rpx;
+	background-position:center;
+}
+.series_lelong_name{
+	color: rgba(56, 55, 53, 1);
+	font-size: 26rpx;
+	display:inline;
+}
+.car_series_t{
+	text-indent: 28rpx;
+	height: 44rpx;
+	line-height: 44rpx;
+	background-color: rgba(247, 247, 247, 1);
+	color: rgba(56, 55, 53, 1);
+	font-size: 20rpx;
+}
+.brand_series_i{
+	height: 78rpx;
+	line-height: 78rpx;
+}
+.brand_series_bimg{
+	height:60rpx;
+	width:60rpx;
+	float:left;
+	margin:9px 20rpx 0rpx 28rpx;
+	background-repeat:no-repeat;
+	background-size:60rpx;
+	background-position:center;
+}
+.brand_series_name{
+	color: rgba(56, 55, 53, 1);
+	font-size: 22rpx;
+	display:inline;
+}
+
+/*************首字母指示点*************/
 .brand_initail_c{	
 	position: fixed;
 	bottom: 90rpx;

+ 151 - 0
pages/buy/more.wxml

@@ -0,0 +1,151 @@
+<!--  更多筛选条件 -->
+<scroll-view
+  class="more_c"
+  style="{{selectbar=='more'?'left:0rpx;':''}}"
+  scroll-y=true
+>
+  <view      
+    style="height:{{headerheight}}rpx;"
+  ></view>
+  <view 
+    class="brandw_title"
+    style="height:{{headerheight}}rpx;"
+  >
+    <image 
+      class="brandw_back" 
+      src="../../img/back.png"
+      bindtap="filterBack"
+    />
+    <view class="brandw_title_w">更多筛选</view>
+  </view>
+  <view class="wheres_more_i">
+    <view class="more_n">车龄</view>
+    <view class="more_list">
+      <view
+        class="more_detail_i {{searchdata.car_age==''?'more_detail_active':''}}"
+        data-type="car_age"
+        data-value=""
+        bindtap="getMoreFilter"
+      >不限</view>
+      <view 
+        wx:for="{{wheres.car_age}}"
+        wx:key="car_age_id"
+        class="more_detail_i {{searchdata.car_age==item.car_age_id?'more_detail_active':''}}"          
+        data-type="car_age"
+        data-value="{{item.car_age_id}}"
+        bindtap="getMoreFilter"
+      >
+        {{item.car_age_name}}
+      </view>
+    </view>
+  </view>
+  <view class="wheres_more_i">
+    <view class="more_n">里程</view>
+    <view class="more_list">
+      <view
+        class="more_detail_i {{searchdata.mileage==''?'more_detail_active':''}}"
+        data-type="mileage"
+        data-value=""
+        bindtap="getMoreFilter"
+      >不限</view>
+      <view 
+        wx:for="{{wheres.mileage}}"
+        wx:key="mileage_id"
+        class="more_detail_i {{searchdata.mileage==item.mileage_id?'more_detail_active':''}}"          
+        data-type="mileage"
+        data-value="{{item.mileage_id}}"
+        bindtap="getMoreFilter"
+      >
+        {{item.mileage_name}}
+      </view>
+    </view>
+  </view>
+  <view class="wheres_more_i">
+    <view class="more_n">变数箱</view>
+    <view class="more_list">
+      <view
+        class="more_detail_i {{searchdata.transmission==''?'more_detail_active':''}}"
+        data-type="transmission"
+        data-value=""
+        bindtap="getMoreFilter"
+      >不限</view>
+      <view 
+        wx:for="{{wheres.transmission}}"
+        wx:key="transmission_id"
+        class="more_detail_i {{searchdata.transmission==item.transmission_id?'more_detail_active':''}}"          
+        data-type="transmission"
+        data-value="{{item.transmission_id}}"
+        bindtap="getMoreFilter"
+      >
+        {{item.transmission_name}}
+      </view>
+    </view>
+  </view>
+  <view class="wheres_more_i">
+    <view class="more_n">排量</view>
+    <view class="more_list">
+      <view
+        class="more_detail_i {{searchdata.displacement==''?'more_detail_active':''}}"
+        data-type="displacement"
+        data-value=""
+        bindtap="getMoreFilter"
+      >不限</view>
+      <view 
+        wx:for="{{wheres.displacement}}"
+        wx:key="displacement_id"
+        class="more_detail_i {{searchdata.displacement==item.displacement_id?'more_detail_active':''}}"          
+        data-type="displacement"
+        data-value="{{item.displacement_id}}"
+        bindtap="getMoreFilter"
+      >
+        {{item.displacement_name}}
+      </view>
+    </view>
+  </view>
+  <view class="wheres_more_i">
+    <view class="more_n">排放标准</view>
+    <view class="more_list">
+      <view
+        class="more_detail_i {{searchdata.emission==''?'more_detail_active':''}}"
+        data-type="emission"
+        data-value=""
+        bindtap="getMoreFilter"
+      >不限</view>
+      <view 
+        wx:for="{{wheres.emission}}"
+        wx:key="emission_id"
+        class="more_detail_i {{searchdata.emission==item.emission_id?'more_detail_active':''}}"          
+        data-type="emission"
+        data-value="{{item.emission_id}}"
+        bindtap="getMoreFilter"
+      >
+        {{item.emission_name}}
+      </view>
+    </view>
+  </view>
+  <view class="wheres_more_i">
+    <view class="more_n">颜色</view>
+    <view class="more_list">
+      <view 
+        wx:for="{{wheres.colour}}"
+        wx:key="colour_id"
+        class="more_detail_i {{searchdata.colour==item.colour_id?'more_detail_active':''}}"          
+        data-type="colour"
+        data-value="{{item.colour_id}}"
+        bindtap="getMoreFilter"
+      >
+        {{item.colour_name}}
+      </view>
+    </view>
+  </view>
+  <view class="more_bts">
+    <view 
+      class="more_bt_reset"
+      bindtap="resetFilter"
+      >重置</view>
+    <view 
+      bindtap="moreSearch"
+      class="more_bt_check"
+    >查看车源</view>
+  </view>
+</scroll-view>

+ 23 - 0
pages/buy/pricespace.wxml

@@ -0,0 +1,23 @@
+<view 
+  class="price_c"
+  style="height: {{selectbar=='price'?windowh:'0'}}rpx;"
+>
+  <view class="price_list">
+    <view 
+        class="price_item {{searchdata.price == ''?'price_item_active':''}}" 
+        data-id=""
+        bindtap="changePrice"
+      >
+        不限价格
+      </view>
+    <block wx:for="{{wheres.price}}" wx:key="price_id">
+      <view 
+        class="price_item {{searchdata.price == item.price_id?'price_item_active':''}}" 
+        data-id="{{item.price_id}}"
+        bindtap="changePrice"
+      >
+        {{item.price_name}}
+      </view>
+    </block>
+  </view>
+</view>

+ 23 - 0
pages/buy/sort.wxml

@@ -0,0 +1,23 @@
+  <!--筛选排序模块-->
+
+<view 
+  class="sortby_c"
+  style="height: {{selectbar=='sortby'?windowh:'0'}}rpx;"
+>
+  <view class="sortby_list">
+    <block wx:for="{{sortbymap}}" wx:key="value">
+      <view 
+        class="sortby_item" 
+        data-sort="{{item.value}}"
+        bindtap="changeSort"
+      >
+        {{item.title}}
+        <image 
+          src="../../img/sort_active.png"
+          wx:if="{{searchdata.sortby == item.value}}"
+          class="sortby_active"
+        />
+      </view>
+    </block>
+  </view>
+</view>

+ 90 - 0
pages/cardetail/cardetail.js

@@ -0,0 +1,90 @@
+// pages/cardetail/cardetail.js
+
+
+import { get } from "../../common/request.js"
+import pathmap from "../../common/pathmap"
+import stylemap from "../../common/stylemap"
+import { retCartData } from "../../data/car"
+Page({
+
+  /**
+   * 页面的初始数据
+   */
+  data: {
+  
+  },
+
+  /**
+   * 生命周期函数--监听页面加载
+   */
+  onLoad: function (options) {
+    this.setData(stylemap);
+    this.getDetail(options.id);
+  },
+
+  /**
+   * 生命周期函数--监听页面初次渲染完成
+   */
+  onReady: function () {
+  
+  },
+
+  /**
+   * 生命周期函数--监听页面显示
+   */
+  onShow: function () {
+  
+  },
+
+  /**
+   * 生命周期函数--监听页面隐藏
+   */
+  onHide: function () {
+  
+  },
+
+  /**
+   * 生命周期函数--监听页面卸载
+   */
+  onUnload: function () {
+  
+  },
+
+  /**
+   * 页面相关事件处理函数--监听用户下拉动作
+   */
+  onPullDownRefresh: function () {
+  
+  },
+
+  /**
+   * 页面上拉触底事件的处理函数
+   */
+  onReachBottom: function () {
+  
+  },
+
+  /**
+   * 用户点击右上角分享
+   */
+  onShareAppMessage: function () {
+  
+  },
+  getDetail:function(id){
+    var _self=this;
+    get(pathmap.cardetail,{id:id},function(json){
+      var detail = json.data;
+      detail.imgs = detail.imgs.split(",");
+      detail.imgslength = detail.imgs.length;
+      _self.setData({
+        detail:detail,
+        id:id
+      })
+    })
+  },
+  switchTab:function(e){
+    this.setData({
+      currentimg: e.detail.current+1
+    });
+  }
+})

+ 1 - 0
pages/cardetail/cardetail.json

@@ -0,0 +1 @@
+{}

+ 83 - 0
pages/cardetail/cardetail.wxml

@@ -0,0 +1,83 @@
+<!--pages/cardetail/cardetail.wxml-->
+<import src="../../module/header.wxml"/>
+<scroll-view 
+  class="conent"
+  style="height:{{windowh}}rpx;"
+  scroll-y="{{selectbar==''?'true':'false'}}"
+>
+	<template 
+		is="header"
+		data="{{title:'',headerheight:headerheight,hasback:true}}"
+	/>
+	<view 
+		class="cardetail_img"
+	>
+		<swiper 
+			class='detail_img_t' 
+			autoplay='true' 
+			interval='2000' 
+			duration='300' 
+			bindchange='switchTab'
+			circular='true'
+		>
+			<block wx:for="{{detail.imgs}}" wx:key="item">
+				<swiper-item>
+				  <image class='detail_img_item' src="{{item}}"/>
+				</swiper-item>
+			</block>      
+		</swiper>
+		<view class="detail_code">
+			车源编号:{{detail.sn}}
+		</view>		
+		<view class="banner_step">
+			{{currentimg}}/{{detail.imgslength}}
+		</view>
+	</view>
+	<view class="cardetail_info_c">
+		<view class="cardetail_t">
+			{{detail.name}}
+		</view>
+		<view class="cardetail_price">
+			好车价
+			<view class="cardetail_price_v">{{detail.price/100}}万</view>
+			<view class="cardetail_price_n">新车含税价:#####</view>
+		</view>
+		<view class="cardetail_flex">
+			<view class="cardetail_time">
+				<view class="cardetail_flex_v">
+					{{detail.first_plate_at}}
+				</view>
+				<view class="cardetail_flex_name">
+					首次上牌时间
+				</view>
+			</view>
+			<view class="cardetail_mileage">
+				<view class="cardetail_flex_v">
+					{{detail.mileage}}
+				</view>
+				<view class="cardetail_flex_name">
+					表显里程
+				</view>
+			</view>
+			<view class="cardetail_time">
+				<view class="cardetail_flex_v">
+					######
+				</view>
+				<view class="cardetail_flex_name">
+					排放标准
+				</view>
+			</view>
+		</view>
+	</view>
+	<view class="cardetail_shop">
+		<view class="cardetail_shop_n">{{detail.shop_name}}</view>
+		<view class="cardetail_shop_d">
+			<image src="../../img/address.png"/>
+			##############
+		</view>
+		<navigator 
+			class="cardetail_shop_nav"
+			url="../shop/shop?id={{detail.merchant_id}}"
+		>进店逛逛></navigator>
+	</view>
+</scroll-view>

+ 137 - 0
pages/cardetail/cardetail.wxss

@@ -0,0 +1,137 @@
+/* pages/cardetail/cardetail.wxss */
+.conent{
+	background-color:#F9F9F9;
+}
+.cardetail_img{
+	height: 500rpx;
+	position: relative;
+}
+.detail_img_t{	
+	width:100%;
+	height: 500rpx;
+}
+.detail_img_item{
+	width:100%;
+  	height: 100%;
+}
+.detail_code{
+	position: absolute;
+	left: 40rpx;
+	top: 450rpx;
+	width: 259rpx;
+	height: 26rpx;
+	border-radius: 100rpx;
+	background-color: rgba(56, 55, 53, 0.2);
+	line-height: 26rpx;
+	color: rgba(255, 255, 255, 1);
+	font-size: 14rpx;
+	text-align: center;
+}
+.banner_step{
+	position: absolute;
+	left: 654rpx;
+	top: 454rpx;
+	height: 27rpx;
+	line-height: 27rpx;
+	color: rgba(255, 255, 255, 1);
+	font-size: 18rpx;
+	text-align: center;
+	background-color: rgba(56, 55, 53, 0.2);
+	box-shadow: 0px 1px 2px 0px rgba(56, 55, 53, 0.2);
+}
+.cardetail_info_c{
+	height: 282rpx;
+	background-color:white;
+}
+.cardetail_t{
+	margin-top:30rpx;
+	height: 32rpx;
+	line-height: 32rpx;
+	color: rgba(56, 55, 53, 1);
+	font-size: 32rpx;
+	text-align: center;
+}
+.cardetail_price{
+	margin-top:20rpx;
+	height: 42rpx;
+	line-height: 42rpx;
+	color: rgba(56, 55, 53, 1);
+	font-size: 28rpx;
+	text-align: center;
+}
+.cardetail_price_v{
+	display: inline;
+	color:#c5a971;
+	margin:0rpx 30rpx 0rpx 15rpx;
+	font-size: 35rpx;
+}
+.cardetail_price_n{
+	display: inline;
+	color: rgba(56, 55, 53, 1);
+	font-size: 24rpx;
+}
+.cardetail_flex{
+	height: 80rpx;
+	display: flex;
+	margin-top:40rpx;
+}
+.cardetail_time{
+	width: 290rpx;
+	border-right:1rpx solid rgba(235, 235, 235, 1);
+}
+.cardetail_mileage{
+	width:215rpx;
+	border-right:1rpx solid rgba(235, 235, 235, 1);
+}
+.cardetail_flex_v{
+	height: 32rpx;
+	line-height: 32rpx;
+	color: rgba(56, 55, 53, 1);
+	font-size: 32rpx;
+	text-align: center;
+}
+.cardetail_flex_name{
+	margin-top:20rpx;
+	height: 28rpx;
+	line-height: 42rpx;
+	color: rgba(135, 135, 135, 1);
+	font-size: 28rpx;
+	text-align: center;
+}
+
+.cardetail_shop{
+	height: 140rpx;
+	margin-top:20rpx;
+	padding-left:38rpx;
+	position: relative;
+	background-color: white;
+	overflow: hidden;
+}
+.cardetail_shop_n{
+	height: 48rpx;
+	line-height: 48rpx;
+	color: rgba(56, 55, 53, 1);
+	font-size: 32rpx;
+	margin-top:22rpx;
+}
+.cardetail_shop_d{
+	height: 36rpx;
+	line-height: 36rpx;
+	color: rgba(104, 104, 104, 1);
+	font-size: 24rpx;
+	margin-top:20rpx;
+}
+.cardetail_shop_d image{
+	width:20rpx;
+	height: 20rpx;
+	display: inline-block;
+}
+.cardetail_shop_nav{
+	position: absolute;
+	top:34rpx;
+	right:40rpx;
+	height: 36rpx;
+	line-height: 36rpx;
+	color: rgba(104, 104, 104, 1);
+	font-size: 24rpx;
+}

+ 9 - 2
pages/index/cardetail.wxml

@@ -1,8 +1,15 @@
 <template name="cardetail">
   <view class="car_b">
-    <view class="car_img" style="background-image:url({{car.img}})"/>
+    <navigator 
+      class="car_img" 
+      style="background-image:url({{car.img}})"      
+      url="../cardetail/cardetail?id={{car.id}}"
+    />
     <view class="car_info">
-      <view class="car_t">{{car.title}}</view>
+      <navigator 
+        class="car_t"  
+        url="../cardetail/cardetail?id={{car.id}}"
+      >{{car.title}}</navigator>
       <view class="car_time">
         {{car.licensetime}}年上牌|{{car.mileage}}万公里
       </view>

+ 0 - 1
pages/index/goodcar.wxml

@@ -11,7 +11,6 @@
       duration='300' 
       vertical='true'
       display-multiple-items='2'
-      bindchange='switchTab'
       circular='true'
     >
       <block wx:for="{{goodcars}}" wx:key="key">

+ 21 - 8
pages/index/index.js

@@ -20,6 +20,7 @@ Page({
     var _self = this;
     this.setData(stylemap);
     this.loadBanner();
+    this.loadBrandRecommend();
     this.loadGoodCar();
     this.loadRecommendedCar();
     this.loadLikeCar();
@@ -35,6 +36,16 @@ Page({
       })
     })
   },
+
+  loadBrandRecommend:function(){
+    var _self = this;
+    get(pathmap.brandrecommend, {
+    }, function (json) {
+      _self.setData({
+        brandrecommend:json.data
+      })
+    })
+  },
   loadGoodCar:function(){
     var _self = this;
     get(pathmap.goodcar, {
@@ -79,10 +90,9 @@ Page({
     */
   switchTab: function (e) {
     var banner = this.data.banner;
-    var i, item;
-    for (i = 0; item = banner[i]; ++i) {
-      item.selected = e.detail.current == i;
-    }
+    banner.forEach(function(item,index){
+      item.selected = e.detail.current == index;
+    });
     this.setData({
       banner: banner
     });
@@ -92,10 +102,13 @@ Page({
     */
   switchReTab:function(e){
     var recommended = this.data.recommended;
-    var i, item;
-    for (i = 0; item = recommended[i]; ++i) {
-      item.selected = e.detail.current == i;
-    }
+    // var i, item;
+    // for (i = 0; item = recommended[i]; ++i) {
+    //   item.selected = e.detail.current == i;
+    // }
+    recommended.forEach(function(item,index){
+      item.selected = e.detail.current == index;
+    })
     this.setData({
       recommended: recommended
     });

+ 11 - 53
pages/index/index.wxml

@@ -51,60 +51,18 @@
   <template is="goodcar" data="{{goodcars:goodcars}}"/>
 
   <view class='brand'>
-    <view class='brand_r'>
-      <view class="brand_item">
-        <navigator class="brand_item_link" url="">
-          <view class="brand_item_img" style="background-image:url(../../img/brand.png)"></view>
-          <view class="brand_item_name">11111</view>
-        </navigator>
-      </view>
-      <view class="brand_item">
-        <navigator class="brand_item_link" url="">
-          <view class="brand_item_img" style="background-image:url(../../img/brand.png)"></view>
-          <view class="brand_item_name">11111</view>
-        </navigator>
-      </view>
-      <view class="brand_item">
-        <navigator class="brand_item_link" url="">
-          <view class="brand_item_img" style="background-image:url(../../img/brand.png)"></view>
-          <view class="brand_item_name">11111</view>
-        </navigator>
-      </view>
-      <view class="brand_item">
-        <navigator class="brand_item_link" url="">
-          <view class="brand_item_img" style="background-image:url(../../img/brand.png)"></view>
-          <view class="brand_item_name">11111</view>
-        </navigator>
-      </view>
-    </view>
-    <view class='brand_r'>
-      <view class="brand_item">
-        <navigator class="brand_item_link" url="">
-          <view class="brand_item_img" style="background-image:url(../../img/brand.png)"></view>
-          <view class="brand_item_name">11111</view>
-        </navigator>
-      </view>
-      <view class="brand_item">
-        <navigator class="brand_item_link" url="">
-          <view class="brand_item_img" style="background-image:url(../../img/brand.png)"></view>
-          <view class="brand_item_name">11111</view>
-        </navigator>
-      </view>
-      <view class="brand_item">
-        <navigator class="brand_item_link" url="">
-          <view class="brand_item_img" style="background-image:url(../../img/brand.png)"></view>
-          <view class="brand_item_name">11111</view>
-        </navigator>
-      </view>
-      <view class="brand_item">
-        <navigator class="brand_item_link" url="">
-          <view class="brand_item_img" style="background-image:url(../../img/brand.png)"></view>
-          <view class="brand_item_name">11111</view>
-        </navigator>
-      </view>
-    </view>
-    <view class="brand_more">查看更多好车</view>
+    <block wx:for="{{brandrecommend}}" wx:key="id">
+      <view class="brand_item_b">
+        <view class="brand_item">
+          <navigator class="brand_item_link" url="../buy/buy?brand={{item.brand_id}}">
+            <view class="brand_item_img" style="background-image:url(../../img/brand.png)"></view>
+            <view class="brand_item_name">{{item.brand_name}}</view>
+          </navigator>
+        </view>     
+      </view>     
+    </block>
   </view>
+  <view class="brand_more">查看更多好车</view>
   <view class="recommend">
     <view class="recommend_t">
       <image class="recommend_img" src="../../img/recommend.png"/>

+ 11 - 4
pages/index/index.wxss

@@ -101,25 +101,31 @@
 }
 /*******brand*********/
 .brand{
+  width:754rpx;
   margin-top:16rpx;
   overflow: hidden;
+  display: flex;
+  flex-wrap:wrap;
 }
 .brand_r{
   display: flex;
   flex-wrap:wrap;
   margin: 0rpx -4rpx 4rpx;
 }
-.brand_item{
+.brand_item_b{  
   height: 150rpx;
-  flex: 1;
+  width:25%;
+  overflow: hidden;
+}
+.brand_item{
   background: white;
-  margin:4rpx 4rpx 0rpx 0rpx;
+  margin:4px 4px 0px 0px;
 }
 .brand_item_link{
   text-align: center;
 }
 .brand_item_img{
-  height: 114rpx;
+  height: 104rpx;
   background-repeat: no-repeat;
   background-position: center;
   background-size: 70%;
@@ -131,6 +137,7 @@
   font-size: 20rpx;
 }
 .brand_more{
+  display: block;
   margin:0px auto;
   width: 500rpx;
   height: 68rpx;

+ 0 - 23
pages/index/likecardetail.wxml

@@ -1,23 +0,0 @@
-<template name="caritem">
-  <view class="likecar_b">
-    <view class="likecar_img" style="background-image:url({{car.img}})"/>
-    <view class="car_info">
-      <view class="car_t">{{car.title}}</view>
-      <view class="car_time">
-        {{car.licensetime}}年上牌|{{car.mileage}}万公里
-        <navigator 
-          url="../shop/shop?id={{car.store_id}}"
-          class="car_store"
-        >
-          {{car.store_name}}
-        </navigator>
-      </view>
-      <view class="car_p">
-        {{car.saleprice}}万
-      </view>
-      <view class="car_guide_p">
-        新手指导价:<view class="car_guidep">{{car.guideprice}}万</view>
-      </view>
-    </view>
-  </view>
-</template>

+ 12 - 8
pages/shop/shop.js

@@ -1,7 +1,8 @@
 // pages/shop/shop.js
 import { get } from "../../common/request.js"
 import pathmap from "../../common/pathmap"
-
+import stylemap from "../../common/stylemap"
+import { retCartData } from "../../data/car"
 Page({
 
   /**
@@ -15,10 +16,8 @@ Page({
    * 生命周期函数--监听页面加载
    */
   onLoad: function (options) {
-    this.setData({
-      id:options.id
-    })
-    this.loadDetail();
+    this.loadDetail(options.id);
+    this.setData(stylemap);
   },
 
   /**
@@ -69,14 +68,19 @@ Page({
   onShareAppMessage: function () {
   
   },
-  loadDetail:function(){
+  loadDetail:function(id){
     var _self = this;
     get(pathmap.storeinfo, {
-      store_id:this.data.id
+      store_id:id
     }, function (json) {
       _self.setData({
-        info: json.data
+        info: json.data,
+        id:id
       })
     })
+  },
+  makeCall:function(e){
+    var number = e.currentTarget.dataset.phonenumber;
+    wx.makePhoneCall({phoneNumber:number});
   }
 })

+ 34 - 1
pages/shop/shop.wxml

@@ -1,2 +1,35 @@
 <!--pages/shop/shop.wxml-->
-<text>pages/shop/shop.wxml</text>
+<import src="../../module/header.wxml"/>
+<import src="../../module/caritem/caritem.wxml"/>
+<scroll-view 
+  class="conent"
+  style="height:{{windowh}}rpx;"
+  scroll-y="{{selectbar==''?'true':'false'}}"
+>
+	<template 
+		is="header"
+		data="{{title:'店铺主页',headerheight:headerheight,hasback:true}}"
+	/>
+	<view class="shop_info">
+		<view 
+			class="shop_img"
+			style="background-image: url({{info.img}})"
+		>			
+		</view>
+		<view class="shop_detail">
+			<view class="shop_detail_title">
+				{{info.store_name}}
+			</view>
+			<view class="shop_detail_address">
+				<image src="../../img/address.png"/>{{info.address}}
+			</view>
+			<view 
+				class="shop_detail_phone"
+				data-phonenumber="{{info.phone}}"
+				bindtap="makeCall"
+			>
+				<image src="../../img/phone.png"/>{{info.phone}}
+			</view>
+		</view>
+	</view>
+</scroll-view>

+ 33 - 1
pages/shop/shop.wxss

@@ -1 +1,33 @@
-/* pages/shop/shop.wxss */
+/* pages/shop/shop.wxss */
+.shop_info{
+	height: 194rpx;
+	display: flex;
+}
+.shop_img{
+	width: 218rpx;
+	background-repeat: no-repeat;
+	background-size: 180rpx 134rpx;
+	background-position: 38rpx 30rpx;
+}
+.shop_detail{
+	padding-left:15rpx;
+}
+.shop_detail_title{
+	height: 48rpx;
+	line-height: 48rpx;
+	color: rgba(56, 55, 53, 1);
+	font-size: 32rpx;
+	margin-top:43rpx;
+}
+.shop_detail_address,.shop_detail_phone{
+	height: 36rpx;
+	line-height: 36rpx;
+	color: rgba(104, 104, 104, 1);
+	font-size: 24rpx;
+}
+.shop_detail_address image,.shop_detail_phone image{
+	margin-top:8rpx;
+	float: left;
+	width:20rpx;
+	height: 20rpx;
+}