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:"" } }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { bindSearch(this); this.setData(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); } }) for(var name in brandlist){ json.data.brandlist.push(brandlist[name]); } _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 }) }) } } })