// pages/shop/market.js import Shop from '../../../net/api/shop' import { sImgPrefix, } from '../../../net/mainUrl' const data = require('../../../utils/data') const app = getApp() Page({ /** * 页面的初始数据 */ data: { tabList: data.tabList, pageData: { page: 1, rows: 12, keywords: '', priceRangeStart: '', priceRangeEnd: '', priceOrder: '', goodsGetTime: '', goodsDevelop: '', goodsType: '', //软著类型 goodsFlag: '', }, keywords: '', priceStart: '', priceEnd: '', isLoadMore: false, hasMore: true, listLoading: 'loading', listRefreshTrig: false, goodsList: [], imgPrefix: sImgPrefix, localAssets: app.globalData.localAssets, imgAssets: app.globalData.imgAssetsUrl, typeList: [], selType: '', ownerList: [{ dataName: '从高到低', dataId: 'DESC' }, { dataName: '从低到高', dataId: 'ASC' }], selOwner: '', isSticky: false, msgType: 'info', msgHint: '', msgShow: false, needRefresh: false }, /** * 生命周期函数--监听页面加载 */ onLoad(options) { wx.setNavigationBarTitle({ title: '商城', }) wx.setNavigationBarColor({ frontColor: '#000000', // 必写项,字体颜色仅支持#ffffff和#000000 backgroundColor: '#FFFFFF', // 传递的颜色值,仅支持十六进制颜色 animation: { // 可选项 duration: 500, timingFunc: 'easeIn' } }) this.doGetDic() this.doRefreshList() }, /** * 生命周期函数--监听页面显示 */ onShow() { console.log('页面显示') const pages = getCurrentPages(); const currentPage = pages[pages.length - 1]; const tabList = this.data.tabList; tabList.forEach(item => { item.selected = item.pagePath === currentPage.route; }); this.setData({ tabList }); if (this.data.needRefresh) { this.setData({ needRefresh: false }) this.doRefreshList() } }, onPageScroll(e) { this.setData({ isSticky: e.scrollTop > 190 }) }, onPullDownRefresh() { this.doRefreshList() }, onReachBottom(e) { console.log('触底了') this.doLoadMore() }, inputKeywords(e) { this.setData({ keywords: e.detail.value }) }, doSearch() { this.doRefreshList() }, bindChooseType(e) { wx.pageScrollTo({ scrollTop: 0 }) setTimeout(() => { const item = e.currentTarget.dataset.item; let newSelType = this.data.selType; // 先转数组,处理空字符串情况 const typeArr = newSelType ? newSelType.split(',') : []; if (typeArr.includes(item.dataId)) { // 删除 const index = typeArr.indexOf(item.dataId); typeArr.splice(index, 1); } else { // 添加 typeArr.push(item.dataId); } // 转回字符串,自动处理空数组(转成空字符串) newSelType = typeArr.join(','); this.setData({ selType: newSelType }); console.log('选择分类:', this.data.selType); this.doRefreshList(); }, 500); }, bindChooseOwner(e) { const item = e.currentTarget.dataset.item this.setData({ selOwner: this.data.selOwner == item.dataId ? '' : item.dataId }) this.doRefreshList() }, doGetDic() { wx.showLoading({ title: '加载中...', }) const that = this Shop.doGetGoodsDic('0b00884a-f7a2-425f-93e5-599fbaad4bde') .then(res => { wx.hideLoading() that.setData({ typeList: res }) }) .catch(err => { wx.hideLoading() }) }, //刷新 doRefreshList() { const _self = this this.setData({ goodsList: [], isLoadMore: false, hasMore: true, listRefreshTrig: true, 'pageData.page': 1, 'pageData.keywords': _self.data.keywords, 'pageData.priceOrder': _self.data.selOwner, 'pageData.priceRangeStart': _self.data.priceStart, 'pageData.priceRangeEnd': _self.data.priceEnd, 'pageData.goodsType': _self.data.selType, }) _self.getIndexList(true) }, //加载更多 doLoadMore() { console.log('加载更多:', this.data.isLoadMore, this.data.hasMore) const _self = this if (_self.data.isLoadMore || !_self.data.hasMore) { return } //判断是否有更多 _self.setData({ isLoadMore: true, 'pageData.page': ++_self.data.pageData.page }) _self.getIndexList(false) }, //获取列表 getIndexList(isRefresh) { const _self = this _self.setData({ listLoading: isRefresh ? 'loading' : '' }) Shop.doGetIndexList(_self.data.pageData) .then(res => { console.log(res) wx.stopPullDownRefresh() var status = 'success' status = res.rows && res.rows.length > 0 ? 'success' : 'empty' const list = _self.addPrefixToPreviewImgs(res.rows) _self.setData({ listLoading: isRefresh ? status : '', goodsList: _self.data.goodsList.concat(list), listRefreshTrig: false, isLoadMore: false, }) _self.setData({ hasMore: _self.data.goodsList.length < res.total }) }) .catch(err => { wx.stopPullDownRefresh() console.log(err) _self.setData({ listLoading: 'error', listRefreshTrig: false, isLoadMore: false, hasMore: true }) }) }, //为数据中图片添加前缀 addPrefixToPreviewImgs(data) { const prefix = this.data.imgPrefix; return data.map(item => { if (item.goodsPhoto && item.goodsPhoto != '') { item.preImg = prefix + item.goodsPhoto } return item; }); }, //我要买 doBuy() { wx.navigateTo({ url: '/pages/shop/buyGoods/buyGoods', }) }, //已购买 doPurchase() { wx.navigateTo({ url: '/pages/shop/purchaseGoods/purchaseGoods', }) }, //我要卖 doSell() { wx.navigateTo({ url: '/pages/shop/sellGoods/sellGoods', }) }, //已销售 doBetray() { wx.navigateTo({ url: '/pages/shop/betrayGoods/betrayGoods', }) }, //详情 doDetail(e) { const id = e.currentTarget.dataset.value wx.navigateTo({ url: '/pages/shop/goodsDetail/goodsDetail?id=' + id, animation: 'fade' }) } })