import { get,post } from "../../common/request.js" import stylemap from "../../common/stylemap" import pathmap from "../../common/pathmap" import { retCartData } from "../../data/car" import bindSearch from "../../module/search/search.js" const app = getApp(); // pages/buy/buy.js Page({ /** * 页面的初始数据 */ data: { windowh: app.globalData.windowh, list:[], pagesize:15, pageindex:0, lock:false, searchfouce:false, selectbar:null, filters:[ { title:"排序", name:"sortby" }, { title:"品牌", name:"brand" }, { title:"价格", name:"price" }, { title:"更多", name:"more" } ], sortbymap:[ { title:"默认排序", value:"" }, { title:"价格最低", value:"price&asc" }, { title:"价格最高", value:"price&desc" }, { title:"车龄最短", value:"car_age&asc" }, { title:"里程最少", value:"mileage&asc" }, { title:"最新发布", value:"new&asc" } ], searchdata:{ sortby:"", price:"", car_age:"", mileage:"", transmission:"", displacement:"", emission:"", colour:"" } }, /** * 生命周期函数--监听页面加载 */ 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||""}); this.getWheres(); this.getList(this.data.searchdata); }, transformSearchData:function(searchdata){ var para = Object.assign({},searchdata); var sortby = para.sortby; if(sortby){ var sortinfo = sortby.split("&"); para.order_key = sortinfo[0]; para.order_val = sortinfo[1]; } delete para.sortby; return para; }, //获取筛选信息 getWheres:function(){ var _self = this; get(pathmap.wheres, { }, function (json) { var brandlist = {}; json.data.brandlist = [] for(var i = 65; i < 91; i++){ brandlist[String.fromCharCode(i)] = []; } json.data.brand.forEach(function(item){ if(Object.prototype.toString.call(brandlist[item.initial])=="[object Array]"){ brandlist[item.initial].push(item); } }) var inith = 504; var scale = app.globalData.scale; for(var name in brandlist){ var l = brandlist[name].length; if(l>0){ json.data.brandlist.push({ initial:name, list:brandlist[name], top:inith/scale }); inith = inith+45+l*79; } } _self.setData({ wheres: json.data }) }) }, getList:function(searchdata){ var _self = this; var para = this.transformSearchData(searchdata); para.offset = 0; para.limit = this.data.pagesize; if(!this.data.lock){ this.setData({ lock:true }) get(pathmap.searchcar, para, function (json) { var list = retCartData(json.data&&json.data.list) _self.setData({ lock:false, list:list, searchdata:searchdata, offset:0 }) if(list.length==0){ _self.loadLikeCar() } }) } }, showFilter:function(e){ var el = e.currentTarget; var name = el.dataset.name; if(name==this.data.selectbar){ name=null; } this.setData({ selectbar:name }) }, changeSort:function(e){ var el = e.currentTarget; var name = el.dataset.sort; var searchdata = Object.assign(this.data.searchdata,{sortby:name}); this.setData({ selectbar:"" }) this.getList(searchdata); }, changePrice:function(e){ var el = e.currentTarget; var id = el.dataset.id; var searchdata = Object.assign(this.data.searchdata,{price:id}); this.setData({ selectbar:"" }) this.getList(searchdata); }, loadLikeCar:function(){ var _self = this; if(!this.data.like){ get(pathmap.like, { offset: 0, limit: 10 }, function (json) { var list = retCartData(json.data.list) _self.setData({ like: list }) }) } }, scrollInit:function(e){ var init = e.currentTarget.dataset.init; this.setData({ scrolltoinit:init }) }, 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 }) }) }, brandScroll:function(e) { //this.setData({ brandScrollTop: e.detail.scrollTop }) var scrollinit = ""; var list = this.data.wheres.brandlist; for(var i=0,l=list.length;i