var location = require("../../../mybehaviors/location/location"); var app = getApp(); Component({ behaviors: [location], properties: { params: { type: null }, data: { type: null }, isStore: { type: null }, datas: { type: null }, shopPoint: { type: null }, shopCity: { type: null }, is_open: { type: null }, listStyle: { type: null }, }, data: { language: "", address: "", point: { lat: '', lng: '' }, city: '', tab: 0, panelIndex: 0, titleName: [], api: "", dataJson: {}, pd_classfy_arr: [], pd_date_arr: [], //折扣的index pd_index: 0, pd_date_index: 0, //商家数组和分页数据 shopList0: [], isLoadMore0: false, page0: 1, total_page0: 0, //折扣数组和分页数据 shopList1: [], isLoadMore1: false, page1: 1, total_page1: 0, //优惠券数组和分页数据 shopList2: [], isLoadMore2: false, page2: 1, total_page2: 0, //礼包数组和分页数据 shopList3: [], isLoadMore3: false, page3: 1, total_page3: 0, pd_date: {}, loading: false, }, // 私有数据,可用于模板渲染11111 lifetimes: { // 生命周期函数,可以为函数,或一个在methods段中定义的方法名 attached() { let language = wx.getStorageSync('langIndex'); this.setData({ 'language': language.en }); if (this.data.isStore) { this.setData({ titleName: this.data.datas, point: this.data.shopPoint, city: this.data.shopCity, }); this.chooseTab(" ", "business_merchant"); } else { this.setData({ titleName: this.data.data }); this.location(); } }, moved() {}, detached() {}, }, // 生命周期函数,可以为函数,或一个在methods段中定义的方法名 attached() { }, // 此处attached的声明会被lifetimes字段中的声明覆盖 ready() { }, pageLifetimes: { // 组件所在页面的生命周期函数 show() {}, hide() {}, resize() {}, }, methods: { location() { this._getLocation(() => { this.chooseTab(" ", "business_merchant"); }); }, toGoodBtn(e) { let item = e.currentTarget.dataset.goods_id; if (item.id) { wx.navigateTo({ url: '/packageA/detail_v2/detail_v2?id=' + item.id }); } else { wx.navigateTo({ url: '/packageA/detail_v2/detail_v2?id=' + item }); } }, pFn(index) { let p = {}; p.id = ''; return p.id = index; }, chooseTab(key, index) { // 找到对应的索引 if (!this.data.titleName) { return; } let is_fn = this.pFn(index); console.log(this.data.titleName); let tabind = ''; this.data.titleName.forEach((element, ind) => { if (element.id == is_fn) { tabind = ind; } }); this.setData({ tab: tabind }); this.setData({ api: this.data.titleName[this.data.tab].url }); let type = this.data.titleName[this.data.tab].id; this.setData({ [`isLoadMore${this.data.tab}`]: false, [`total_page${this.data.tab}`]: 0, [`page${this.data.tab}`]: 1 }); if (type === "business_merchant") { let point = app.qqMapTransBMap(parseFloat(this.data.point.lng), parseFloat(this.data.point.lat)); this.setData({ dataJson: { lng: point.lng ? point.lng : '', lat: point.lat ? point.lat : '', city_name: this.data.city, page: this.data.page0 } }); } else { switch (type) { case "business_discount": this.setData({ dataJson: { page: this.data.page1 } }); break; case "business_coupon": this.setData({ dataJson: { page: this.data.page2 } }); break; case "business_goods_gift": this.setData({ dataJson: { page: this.data.page3 } }); break; } } this.getList(); }, chooseTabData(e) { let index = 0; let title = e.detail.title; // if (title == '商家') { // index = 0; // } else if (title == '折扣') { // index = 1; // } else if (title == '优惠券') { // index = 2; // } else if (title == '礼包产品') { // index = 3; // } // title后台可以自定义 this.data.titleName.forEach((element, ind) => { console.log(element, ind); if (element.text == title) { index = ind; } }); this.chooseTab(" ", this.data.titleName[index].id); }, getList() { let that = this; let urlStr = app.getNetAddresss(this.data.api); this.setData({loading: true}); app._getNetWork({ url: urlStr, data: this.data.dataJson, success: function (resdata) { var res = resdata.data; if (res.result == 1) { if (that.data.tab === 1) { that.setData({ pd_classfy_arr: res.data.store_category, pd_date_arr: res.data.date_time }); //赋初值日期和门店分类id that.setData({ pd_category_id: res.data.store_category[0].id, pd_date: res.data.date_time[0] }); that.getPdData(); } else { that.setData({ [`shopList${that.data.tab}`]: res.data.data, [`total_page${that.data.tab}`]: res.data.last_page }); } if (that.data[`total_page${that.data.tab}`] <= 1) { that.setData({ [`isLoadMore${that.data.tab}`]: false, }); } else { that.setData({ [`isLoadMore${that.data.tab}`]: true }); } } else { // wx.showToast({ // icon: 'none', // title: res.msg, // duration: 1500 // }) console.log(res.msg); } }, fail: function (res) { console.log(res); }, complete: function () { that.setData({loading: false}); }, }); }, getPdData() { let that = this; let point = app.qqMapTransBMap(parseFloat(this.data.point.lng), parseFloat(this.data.point.lat)); let json = { lng: point.lng, lat: point.lat, city_name: this.data.city, page: this.data.page1, week: this.data.pd_date.week_num, category_id: this.data.pd_category_id, day: this.data.pd_date.day }; let urlStr = app.getNetAddresss("plugin.universal-card.frontend.store-discount.privilege"); app._getNetWork({ url: urlStr, data: json, success: function (resdata) { var res = resdata.data; if (res.result == 1) { that.setData({ total_page1: res.data.last_page, shopList1: res.data.data, }); if (that.data.total_page1 <= 1) { that.setData({ isLoadMore1: false }); } else { that.setData({ isLoadMore1: true }); } } else { that.setData({ isLoadMore1: false }); } }, fail: function (res) { console.log(res); } }); }, // 跳转到店铺 toRouter(e) { let item = e.currentTarget.dataset.item; if (item.specify_show == 1) { wx.navigateTo({ url: '/packageC/o2o/o2oStore/o2oStore?store_id=' + item.id + '&fromHome=1' }); } else { if (item.store_decorate == 1) { wx.navigateTo({ url: "/packageG/o2o/HomeSeller/HomeSeller?store_id=" + item.id, }); } else { wx.navigateTo({ url: "/packageC/o2o/HomeSeller/HomeSeller?store_id=" + item.id, }); } } }, //跳转至分类 toClassify(e) { let id = e.currentTarget.dataset.id; wx.navigateTo({ url: '/packageC/o2o/o2oCategory/o2oCategory?id=' + id + '&city=' + this.data.city + '&point=' + JSON.stringify( this.data.point) }); }, gophone(e) { let mobile = e.currentTarget.dataset.mobile; wx.makePhoneCall({ phoneNumber: mobile }); }, goToAdress(e) { let latitude = e.currentTarget.dataset.items.latitude; let longitude = e.currentTarget.dataset.items.longitude; let store_name = e.currentTarget.dataset.items.store_name; // app.getGeocoder(e.currentTarget.dataset.items.address.city + e.currentTarget.dataset.items.address.detailed_address).then((point)=>{ // wx.openLocation({ // latitude: point.lat, // longitude: point.lng, // scale: 18, // name: store_name // }); // }) let point = app.BMapTransqqMap(parseFloat(longitude), parseFloat(latitude)); wx.openLocation({ latitude: point.lat, longitude: point.lng, scale: 18, name: store_name }); }, getMoreList() { let that = this; //获取更多数据 this.setData({ [`isLoadMore${this.data.tab}`]: false }); let point = app.qqMapTransBMap(parseFloat(this.data.point.lng), parseFloat(this.data.point.lat)); if (this.data[`page${this.data.tab}`] >= this.data[`total_page${this.data.tab}`]) { return; } else { this.data[`page${this.data.tab}`] = this.data[`page${this.data.tab}`] + 1; switch (this.data.tab) { case 0: this.setData({ dataJson: { lng: point.lng ? point.lng : '', lat: point.lat ? point.lat : '', city_name: this.data.city, page: this.data.page0 } }); break; case 2: this.setData({ dataJson: { page: this.data.page2 } }); break; case 3: this.setData({ dataJson: { page: this.data.page3 } }); break; } let urlStr = app.getNetAddresss(that.data.api); this.setData({loading: true}); app._getNetWork({ url: urlStr, data: that.data.dataJson, success: function (resdata) { var res = resdata.data; if (res.result == 1) { if (that.data.tab !== 1) { that.setData({ [`shopList${that.data.tab}`]: that.data[`shopList${that.data.tab}`].concat(res.data.data), [`total_page${that.data.tab}`]: res.data.last_page }); } if (that.data[`page${that.data.tab}`] >= that.data[`total_page${that.data.tab}`]) { that.setData({ [`isLoadMore${that.data.tab}`]: false }); } else { that.setData({ [`isLoadMore${that.data.tab}`]: true }); } } else { that.setData({ [`page${that.data.tab}`]: [`page${that.data.tab}`] - 1, [`isLoadMore${that.data.tab}`]: false }); } }, fail: function (res) { console.log(res); }, complete: function () { that.setData({loading: false}); }, }); } }, //特权折扣--搜索--门店分类 pdClassfySearch(e) { let index = e.currentTarget.dataset.index; let id = e.currentTarget.dataset.id; //1.改变选中状态 this.setData({ pd_index: index }); //2.修改搜索参数--门店分类 this.setData({ pd_category_id: id }); //3.初始化分页数据 this.pdInitData(); //4.执行搜索返回数据(带上日期的搜索值) this.getPdData(); }, //特权折扣--分页 pdInitData() { this.setData({ isLoadMore1: false, page1: 1, total_page1: 0, shopList1: [] }); }, //特权折扣--搜索--日期 pdDateSearch(e) { let index = e.currentTarget.dataset.index; let date = e.currentTarget.dataset.date; //1.改变选中状态 this.setData({ pd_date_index: index }); //2.修改搜索参数--日期 this.setData({ pd_date: date }); //3.初始化分页数据 this.pdInitData(); //4.执行搜索返回数据(带上门店分类的搜索值) this.getPdData(); }, //跳转至门店首页 gotoShop(e) { let id = e.currentTarget.dataset.id; wx.navigateTo({ url: '/packageC/o2o/o2oStore/o2oStore?store_id=' + id }); }, getMorePdData() { let that = this; this.setData({ isLoadMore1: false }); if (this.data.page1 >= this.data.total_page1) { return; } else { this.setData({ page1: this.data.page1 + 1 }); let point = app.qqMapTransBMap(parseFloat(this.data.point.lng), parseFloat(this.data.point.lat)); let json = { lng: point.lng, lat: point.lat, city_name: this.data.city, page: this.data.page1, week: this.data.pd_date.week_num, category_id: this.data.pd_category_id, day: this.data.pd_date.day }; let urlStr = app.getNetAddresss("plugin.universal-card.frontend.store-discount.privilege"); app._getNetWork({ url: urlStr, data: json, success: function (resdata) { var res = resdata.data; if (res.result == 1) { var myData = res.data.data; that.setData({ shopList1: that.data.shopList1.concat(myData) }); } else { that.setData({ page1: that.data.page1 - 1, isLoadMore1: false }); } }, fail: function (res) { console.log(res); } }); } }, //领取优惠券 getCoupon(e) { let id = e.currentTarget.dataset.id; let urlStr = app.getNetAddresss("plugin.store-cashier.frontend.store.coupon-get"); app._getNetWork({ url: urlStr, data: { coupon_id: id }, success: function (resdata) { var res = resdata.data; if (res.result == 1) { wx.showModal({ title: '提示', content: '领取成功', showCancel: false, success(res) { if (res.confirm) { console.log(res.confirm); } } }); } else { wx.showToast({ title: res.msg, icon: 'none', duration: 1500 }); } }, fail: function (res) { console.log(res); } }); }, toGood(e) { let item = e.currentTarget.dataset.item; wx.navigateTo({ url: '/packageA/detail_v2/detail_v2?id=' + item.id }); }, }, observers: { 'datas': function () { if (this.data.datas) { if (this.data.isStore) { this.setData({ titleName: this.data.datas, point: this.data.shopPoint, city: this.data.shopCity, }); this.chooseTab(" ", "business_merchant"); } else { this.setData({ titleName: this.data.data }); this.location(); } console.log(this.data.titleName, 'titleName', this.data.isStore); } }, 'listStyle': function() { this.setData({ openTemplate: this.data.listStyle == 1 ? "02" : "01" }); } } });