浏览代码

dev shop and buy

liguorui 7 年之前
父节点
当前提交
0f5aca1e93

+ 3 - 3
common/request.js

@@ -36,14 +36,14 @@ export const get=(url,data,callback,failback)=>{
     }
   })
 } 
-export const post=(url,data,callback,failback)=>{
+export const post=(url,data,header,callback,failback)=>{
   addnum();
   wx.request({
     url: app.globalData.serverpath+url,
     method: "POST",
-    header: {
+    header: Object.assign({
       "Content-Type": "json"
-    },
+    },header),
     data:data,
     success: function (res){
       console.debug(res);

+ 1 - 1
module/caritem/caritem.wxml

@@ -9,7 +9,7 @@
       <navigator 
         class="caritem_t"
         url="../cardetail/cardetail?id={{car.id}}"
-      >{{car.title}}</navigator>
+      >{{car.title?car.title:'--'}}</navigator>
       <view class="caritem_time">
         {{car.licensetime}}年上牌|{{car.mileage}}万公里
         <navigator 

+ 39 - 6
pages/buy/buy.js

@@ -14,11 +14,12 @@ Page({
   data: {
     windowh: app.globalData.windowh,
     list:false,
-    pagesize:15,
+    limit:10,
     pageindex:0,
     lock:false,
     searchfouce:false,
     selectbar:null,
+    hasloadall:false,
     filters:[
       {
         title:"排序",
@@ -144,25 +145,57 @@ Page({
     var _self = this;
     var para = this.transformSearchData(searchdata);
     para.offset = 0;
-    para.limit = this.data.pagesize;
+    para.limit = this.data.limit;
     if(!this.data.lock){
       this.setData({
         lock:true
       })
       get(pathmap.searchcar, para, function (json) {
-        var list = retCartData(json.data&&json.data.list)
-        _self.setData({
+        var list = retCartData(json.data&&json.data.list);
+        var obj = {
           lock:false,
           list:list,
           searchdata:searchdata,
-          offset:0
-        })
+          offset:_self.data.limit          
+        }
+        if(json.data.total<=_self.data.limit){
+          obj.hasloadall=true;
+        }else{
+          obj.hasloadall=false;
+        }
+        _self.setData(obj);
         if(list.length==0){
           _self.loadLikeCar()
         }
       })
     }
   },
+  loadListMore:function(){
+    var _self = this;
+    var para = this.transformSearchData(this.data.searchdata);
+    para.offset = this.data.offset;
+    para.limit = this.data.limit;
+    if(!this.data.lock&&!this.data.hasloadall){
+      this.setData({
+        lock:true
+      })
+      get(pathmap.searchcar, para, function (json) {
+        var list = retCartData(json.data&&json.data.list);
+        var nextoffset = _self.data.offset+_self.data.limit
+        var obj = {
+          lock:false,
+          list:_self.data.list.concat(list),
+          offset:nextoffset          
+        }
+        if(json.data.total<=nextoffset){
+          obj.hasloadall=true;
+        }else{
+          obj.hasloadall=false;
+        }
+        _self.setData(obj);
+      })
+    }
+  },
   showFilter:function(e){
     var el = e.currentTarget;
     var name = el.dataset.name;

+ 1 - 0
pages/buy/buy.wxml

@@ -6,6 +6,7 @@
   class="conent"
   style="height:{{windowh}}rpx;"
   scroll-y="{{selectbar==''?'true':'false'}}"
+  bindscrolltolower="{{hasloadall?'':'loadListMore'}}"
 >
   <template 
     is="header"

+ 3 - 0
pages/cardetail/cardetail.js

@@ -74,8 +74,11 @@ Page({
     var _self=this;
     get(pathmap.cardetail,{id:id},function(json){
       var detail = json.data;
+      var time = detail.first_plate_at.split('-');
+      /*数据结构处理*/
       detail.imgs = detail.imgs.split(",");
       detail.imgslength = detail.imgs.length;
+      detail.first_plate_at = time[0]+"/"+time[1];
       _self.setData({
         detail:detail,
         id:id

+ 41 - 0
pages/cardetail/cardetail.wxml

@@ -80,4 +80,45 @@
 			url="../shop/shop?id={{detail.merchant_id}}"
 		>进店逛逛></navigator>
 	</view>
+	<view class="cardetail_space">
+		<view class="cardetail_space_t">基本信息</view>
+		<view class="cardetail_baseinfo_c">
+			<view class="cardetail_baseinfo_i">
+				<view class="cardetail_baseinfo_v">{{detail.distance_at}}</view>
+				<view class="cardetail_baseinfo_n">{{detail.first_plate_at}}首次上牌</view>
+			</view>
+			<view class="cardetail_baseinfo_i">
+				<view class="cardetail_baseinfo_v">{{detail.mileage}}</view>
+				<view class="cardetail_baseinfo_n">表现里程</view>
+			</view>
+			<view class="cardetail_baseinfo_i">
+				<view class="cardetail_baseinfo_v">#######</view>
+				<view class="cardetail_baseinfo_n">排放标准</view>
+			</view>
+			<view class="cardetail_baseinfo_i">
+				<view class="cardetail_baseinfo_v">#######</view>
+				<view class="cardetail_baseinfo_n">排量</view>
+			</view>
+			<view class="cardetail_baseinfo_i">
+				<view class="cardetail_baseinfo_v">{{detail.plate_province_name}} {{detail.plate_province_name}}</view>
+				<view class="cardetail_baseinfo_n">上牌地址</view>
+			</view>
+			<view class="cardetail_baseinfo_i">
+				<view class="cardetail_baseinfo_v">{{detail.transfer_num}}次过户</view>
+				<view class="cardetail_baseinfo_n">过户次数</view>
+			</view>
+			<view class="cardetail_baseinfo_i">
+				<view class="cardetail_baseinfo_v">{{detail.maintain}}</view>
+				<view class="cardetail_baseinfo_n">是否定期保养</view>
+			</view>
+			<view class="cardetail_baseinfo_i">
+				<view class="cardetail_baseinfo_v">{{detail.year_check_at}}</view>
+				<view class="cardetail_baseinfo_n">年检到期</view>
+			</view>
+			<view class="cardetail_baseinfo_i">
+				<view class="cardetail_baseinfo_v">{{detail.insurance_at}}</view>
+				<view class="cardetail_baseinfo_n">保险到期</view>
+			</view>
+		</view>
+	</view>
 </scroll-view>

+ 32 - 0
pages/cardetail/cardetail.wxss

@@ -134,4 +134,36 @@
 	line-height: 36rpx;
 	color: rgba(104, 104, 104, 1);
 	font-size: 24rpx;
+}
+
+.cardetail_space{
+	background-color:white;
+	padding:38px;
+}
+.cardetail_space_t{
+	height: 32rpx;
+	line-height: 32rpx;
+	color: rgba(104, 104, 104, 1);
+	font-size: 32rpx;
+	border-left:6rpx solid #FFE600;
+}
+.cardetail_baseinfo_c{
+	display: flex;
+	flex-wrap: wrap;
+}
+.cardetail_baseinfo_i{
+	width:33.3%;
+	padding: 20rpx 0rpx;
+}
+.cardetail_baseinfo_v{
+	height: 48rpx;
+	line-height: 48rpx;
+	color: rgba(56, 55, 53, 1);
+	font-size: 26rpx;
+}
+.cardetail_baseinfo_n{
+	height: 36rpx;
+	line-height: 36rpx;
+	color: rgba(155, 155, 155, 1);
+	font-size: 24rpx;
 }

+ 24 - 1
pages/index/index.js

@@ -1,6 +1,6 @@
 //index.js
 //获取应用实例
-import {get} from "../../common/request.js"
+import {get,post} from "../../common/request.js"
 import stylemap from "../../common/stylemap"
 import pathmap from "../../common/pathmap"
 import { retCartData} from "../../data/car"
@@ -18,6 +18,7 @@ Page({
   },
   onLoad: function () {
     var _self = this;
+    //this.testPost();
     this.setData(stylemap);
     this.loadBanner();
     this.loadBrandRecommend();
@@ -115,6 +116,28 @@ Page({
   },
   submitsearchword:function(word){
     wx.navigateTo({ url: `../searchresult/searchresult?value=${word}`});
+  },
+  testPost:function(){
+    post(pathmap.login,{
+      mobile:17343011102,
+      code:1234
+    },{
+      "Content-Type":"application/x-www-form-urlencoded"
+    },function(){
+
+    })
+  },
+  consoleScroll:function(e){
+    console.log("scroll",e)
+  },
+  consoleScrollUp:function(e){
+    console.log("scrollup",e)
+  },
+  consoleMove:function(e){
+    console.log("consoleMove",e)
+  },
+  consoleEnd:function(e){
+    console.log("consoleEnd",e)
   }
 //   /*
 //     搜索失去聚焦事件

+ 101 - 92
pages/index/index.wxml

@@ -7,105 +7,114 @@
 <import src="../../module/caritem/caritem.wxml"/>
 <scroll-view 
   class="conent"
+  style="height:{{windowh}}rpx;"
+  scroll-y
+  bindscroll="consoleScroll"
+  bindtouchend="consoleEnd"
+  bindscrolltoupper="consoleScrollUp"
 >
-  <template 
-    is="header" 
-    data="{{title:'第一好车',headerheight:headerheight}}"
-  />
-  <include src="../../module/search/search.wxml"/>
-  <template is="banner" data="{{banner:banner}}"/>
-  <view class="nav_list">
-    <view class="nav_item">
-      <navigator class="nav_item_link" url="">
-        <view class="nav_item_img">
-          <image src="../../img/home_buy.png"/>
-        </view>
-        <view class="nav_item_t">我要买车</view>
-      </navigator>
-    </view>
-    <view class="nav_item">
-      <navigator class="nav_item_link" url="">
-        <view class="nav_item_img">
-          <image src="../../img/home_sell.png"/>
-        </view>
-        <view class="nav_item_t">我要卖车</view>
-      </navigator>
-    </view>
-    <view class="nav_item">
-      <navigator class="nav_item_link" url="">
-        <view class="nav_item_img">
-          <image src="../../img/home_assess.png"/>
-        </view>
-        <view class="nav_item_t">我要估价</view>
-      </navigator>
-    </view>
-    <view class="nav_item">
-      <navigator class="nav_item_link" url="">
-        <view class="nav_item_img">
-          <image src="../../img/home_loan.png"/>
+  <view
+    bindtouchmove="consoleMove"
+  >
+    <template 
+      is="header" 
+      data="{{title:'第一好车',headerheight:headerheight}}"
+    />
+    <include src="../../module/search/search.wxml"/>
+    <template is="banner" data="{{banner:banner}}"/>
+    <view class="nav_list">
+      <view class="nav_item">
+        <navigator class="nav_item_link" url="">
+          <view class="nav_item_img">
+             <image src="../../img/home_buy.png"/>
+          </view>
+          <view class="nav_item_t">我要买车</view>
+        </navigator>
+      </view>
+      <view class="nav_item">
+        <navigator class="nav_item_link" url="">
+          <view class="nav_item_img">
+            <image src="../../img/home_sell.png"/>
           </view>
-        <view class="nav_item_t">我要贷款</view>
-      </navigator>
+          <view class="nav_item_t">我要卖车</view>
+        </navigator>
+      </view>
+      <view class="nav_item">
+        <navigator class="nav_item_link" url="">
+          <view class="nav_item_img">
+            <image src="../../img/home_assess.png"/>
+          </view>
+          <view class="nav_item_t">我要估价</view>
+        </navigator>
+      </view>
+      <view class="nav_item">
+        <navigator class="nav_item_link" url="">
+          <view class="nav_item_img">
+            <image src="../../img/home_loan.png"/>
+            </view>
+          <view class="nav_item_t">我要贷款</view>
+        </navigator>
+      </view>
     </view>
-  </view>
-  <template is="goodcar" data="{{goodcars:goodcars}}"/>
+    <template is="goodcar" data="{{goodcars:goodcars}}"/>
 
-  <view class='brand'>
-    <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 class='brand'>
+      <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>     
-      </view>     
-    </block>
-  </view>
-  <view class="brand_more">查看更多好车</view>
-  <view class="recommend">
-    <view class="recommend_t">
-      <image class="recommend_img" src="../../img/recommend.png"/>
-      <view class="recommend_w">RECOMMENDATIONS</view>
+      </block>
+    </view>
+    <view class="brand_more">查看更多好车</view>
+    <view class="recommend">
+      <view class="recommend_t">
+        <image class="recommend_img" src="../../img/recommend.png"/>
+        <view class="recommend_w">RECOMMENDATIONS</view>
+      </view>
+      <view class="recommend_sw">
+        <swiper 
+          class='recommend_list' 
+          autoplay='true' 
+          interval='3000' 
+          duration='300' 
+          bindchange='switchReTab'
+          circular='true'
+        >
+          <block wx:for="{{recommended}}" wx:key="key">
+            <swiper-item>
+              <template is="cardetail" data="{{car:item}}"/>
+            </swiper-item>
+          </block>      
+        </swiper>
+        <view class="recommended_tab">
+          <block wx:for="{{banner}}" wx:key="id">
+            <view wx:if="{{item.selected}}" class='recommended_tab-item recommend_selected'></view>
+            <view wx:else class="recommended_tab-item"></view>
+          </block>
+        </view>
+      </view>
     </view>
-    <view class="recommend_sw">
-      <swiper 
-        class='recommend_list' 
-        autoplay='true' 
-        interval='3000' 
-        duration='300' 
-        bindchange='switchReTab'
-        circular='true'
-      >
-        <block wx:for="{{recommended}}" wx:key="key">
-          <swiper-item>
-            <template is="cardetail" data="{{car:item}}"/>
-          </swiper-item>
-        </block>      
-      </swiper>
-      <view class="recommended_tab">
-        <block wx:for="{{banner}}" wx:key="id">
-          <view wx:if="{{item.selected}}" class='recommended_tab-item recommend_selected'></view>
-          <view wx:else class="recommended_tab-item"></view>
-        </block>
+    <view class="recommend">
+      <view class="recommend_t">
+        <image class="recommend_img" src="../../img/like.png"/>
+        <view class="recommend_w">GUESS YOU LIKE</view>
       </view>
     </view>
-  </view>
-  <view class="recommend">
-    <view class="recommend_t">
-      <image class="recommend_img" src="../../img/like.png"/>
-      <view class="recommend_w">GUESS YOU LIKE</view>
+    <view class="like_cart_c">
+      <block wx:for="{{like}}" wx:key="id">
+        <template is="caritem" data="{{car:item}}"/>
+      </block>
     </view>
-  </view>
-  <view class="like_cart_c">
-    <block wx:for="{{like}}" wx:key="id">
-      <template is="caritem" data="{{car:item}}"/>
-    </block>
-  </view>
-  <view class="show_more">加载更多></view>
-  <image class="bottom_banner" src="../../img/banner.png"></image>
-  <template 
-    is="footer" 
-    data="{{local:0}}"
-  />
+    <view class="show_more">加载更多></view>
+    <image class="bottom_banner" src="../../img/banner.png"></image>
+    <template 
+      is="footer" 
+      data="{{local:0}}"
+    />     
+  </view>                                    
 </scroll-view>

+ 40 - 6
pages/shop/shop.js

@@ -3,21 +3,30 @@ import { get } from "../../common/request.js"
 import pathmap from "../../common/pathmap"
 import stylemap from "../../common/stylemap"
 import { retCartData } from "../../data/car"
+var app = getApp();
+
 Page({
 
   /**
    * 页面的初始数据
    */
   data: {
-  
+    windowh: app.globalData.windowh,
+    offset:0,
+    limit:10,
+    lock:false,
+    hasloadall:false,
+    list:[]
   },
 
   /**
    * 生命周期函数--监听页面加载
    */
   onLoad: function (options) {
-    this.loadDetail(options.id);
+    this.setData({id:options.id})
+    this.loadDetail();
     this.setData(stylemap);
+    this.loadCars();
   },
 
   /**
@@ -68,19 +77,44 @@ Page({
   onShareAppMessage: function () {
   
   },
-  loadDetail:function(id){
+  loadDetail:function(){
     var _self = this;
     get(pathmap.storeinfo, {
-      store_id:id
+      store_id:this.data.id
     }, function (json) {
       _self.setData({
-        info: json.data,
-        id:id
+        info: json.data
       })
     })
   },
   makeCall:function(e){
     var number = e.currentTarget.dataset.phonenumber;
     wx.makePhoneCall({phoneNumber:number});
+  },
+  loadCars:function(){
+    var _self = this;
+    if(!this.data.lock&&!this.data.hasloadall){
+      var para = {
+        offset:this.data.offset,
+        limit:this.data.limit,
+        merchant_id:this.data.id
+      }
+      this.setData({
+        lock:true
+      })
+      get(pathmap.searchcar, para, function (json) {
+        var list = retCartData(json.data&&json.data.list)
+        var nextoffset = _self.data.offset+_self.data.limit;
+        var obj = {
+          lock:false,
+          list:_self.data.list.concat(list),
+          offset:nextoffset
+        }
+        if(json.data.total<=nextoffset){
+          obj.hasloadall=true
+        }
+        _self.setData(obj);
+      })
+    }
   }
 })

+ 11 - 1
pages/shop/shop.wxml

@@ -4,7 +4,8 @@
 <scroll-view 
   class="conent"
   style="height:{{windowh}}rpx;"
-  scroll-y="{{selectbar==''?'true':'false'}}"
+  scroll-y
+  bindscrolltolower="{{hasloadall?'':'loadCars'}}"
 >
 	<template 
 		is="header"
@@ -32,4 +33,13 @@
 			</view>
 		</view>
 	</view>
+	<view class="shop_cart_c">
+	    <block wx:for="{{list}}" wx:key="id">
+      		<template is="caritem" data="{{car:item}}"/>
+	    </block>
+  	</view>
+  	<!-- <view 
+  		style="display:none"
+  		class="loading"
+  		></view> -->
 </scroll-view>

+ 38 - 0
pages/shop/shop.wxss

@@ -1,4 +1,7 @@
 /* pages/shop/shop.wxss */
+
+@import "../../module/caritem/caritem.wxss"
+
 .shop_info{
 	height: 194rpx;
 	display: flex;
@@ -30,4 +33,39 @@
 	float: left;
 	width:20rpx;
 	height: 20rpx;
+}
+
+/*loading动画*/
+.loading {
+  width: 40rpx;
+  height: 40rpx;
+  margin: 0px auto;
+  background-color: #337ab7;
+  border-radius: 100%;
+  -webkit-animation: sk-spinner-pulse 1.0s infinite ease-in-out;
+          animation: sk-spinner-pulse 1.0s infinite ease-in-out;
+}
+
+@-webkit-keyframes sk-spinner-pulse {
+  0% {
+    -webkit-transform: scale(0);
+            transform: scale(0);
+  }
+  100% {
+    -webkit-transform: scale(1);
+            transform: scale(1);
+    opacity: 0;
+  }
+}
+
+@keyframes sk-spinner-pulse {
+  0% {
+    -webkit-transform: scale(0);
+            transform: scale(0);
+  }
+  100% {
+    -webkit-transform: scale(1);
+            transform: scale(1);
+    opacity: 0;
+  }
 }