import util from "../../../utils/util" import { getFactoryPrice, getFactoryCity, hasActivity } from "../../../api/ztb" const event = require('../../../utils/event') const app = getApp() Component({ options: { addGlobalClass: true, multipleSlots: true }, properties:{ height: { type: Number, value: 0 }, customHeight: { type: Number, value: 0 }, StatusBar: { type: Number, value: 0 }, customWidth: { type: Number, value: 0 } }, /** * 页面的初始数据 */ data: { kg: app.globalData.kg, loading: true, requesting: false, finished: false, tabList: [], tabIndex: 0, cateList: [], scrolled: false, top: 0, orderList: [], form: { cityId: '', enableSalesAgent: 1, pageNum: 1, pageSize:15, listType: 0 }, triggered: false, firstShow: false, hasActivity: false }, lifetimes: { // 生命周期函数,可以为函数,或一个在methods段中定义的方法名 attached: function () { event.on('EventMessage', this, this.onEvent) // this.fetchRegionList() // this.fetchPapersList() }, detached: function () { event.remove('EventMessage', this) } }, methods: { onRestart: function(){ this.fetchRegionList() if(!this.data.firstShow){ if(app.globalData.userInfo){ hasActivity().then(result => { this.setData({ hasActivity: result.data }) }) } this.fetchPapersList() } this.data.firstShow = true }, onEvent: function (message) { if(!this.data.firstShow){ return } console.log('agent>>fragment>>onEvent', message) if (message.what == 10 && app.globalData.isVIP == 1) { // this.setData({ token: app.globalData.token }) // this.onRefreshList() } else if(message.what == 1001){ this.setData({ kg: app.globalData.kg }) } else if(message.what == 888){ this.setData({ orderList: [], tabIndex: this.data.tabIndex, ['form.pageNum']: 1, loading: true, finished: false }) this.fetchPapersList() if(app.globalData.userInfo){ hasActivity().then(result => { this.setData({ hasActivity: result.data }) }) } else { this.setData({ hasActivity: false }) } } }, searchList: function(){ util.navigateTo('/pages/mall/search-list/index?tab=0') }, chooseCity: function(){ this.triggerEvent("picker", {type: 2, cityId: this.data.form.cityId}) }, toAbility: function(){ util.navigateTo('/pages/agent/ability/index') }, fetchRegionList: function () { if(this.data.tabList.length > 0){ return } getFactoryCity().then(result => { this.triggerEvent("region", result.data) this.data.cateList = [{ cityId: '', cityName: '全部' }].concat(result.data) for (let index = 0; index < this.data.cateList.length; index++) { this.data.tabList.push(this.data.cateList[index].cityName) } this.setData({ tabList: this.data.tabList, scrolled: this.data.cateList.length >= 5 }) }) }, onCityChange: function({ detail }){ for (let index = 0; index < this.data.cateList.length; index++) { if(this.data.cateList[index].cityId == detail.cityId){ detail.index = index this.onTabChange({detail}) break } } }, onTabChange: function ({ detail }) { if (this.data.tabIndex == Number(detail.index)) { return } this.data.tabIndex = Number(detail.index) this.data.form.cityId = this.data.cateList[this.data.tabIndex].cityId this.onRefreshList() }, // 下拉刷新... onRefreshList: function () { if (this.data.requesting) { return } this.setData({ orderList: [], tabIndex: this.data.tabIndex, ['form.pageNum']: 1, loading: true, finished: false }) this.fetchPapersList() }, // 获取特价列表 fetchPapersList: function () { if (this.data.requesting || this.data.finished) { return } this.data.requesting = true getFactoryPrice(this.data.form).then(result => { if (result.data.records.length) { var respList = result.data.records let nowList = `orderList[${this.data.orderList.length}]` var num = result.data.current var finished = result.data.current >= result.data.pages if (this.data.form.pageNum == 1) { this.setData({[nowList]: respList,total: result.data.total,['form.pageNum']: (num + 1),top: 0,finished,requesting: false,loading: false}) } else { this.setData({ [nowList]: respList, total: result.data.total, ['form.pageNum']: (num + 1), finished, requesting: false, loading: false }) } } else { this.setData({ requesting: false, finished: true, loading: false, }) } }).catch(err => { this.setData({ requesting: false, finished: true, loading: false, }) }) } } })