You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
837 lines
24 KiB
837 lines
24 KiB
<template>
|
|
<!--新数据循环-->
|
|
<view id="micro-pages">
|
|
<!--<view>
|
|
<customNavbar navbar-data="{{nvabarData}}"></customNavbar>
|
|
</view>-->
|
|
<block v-if="microData && microData.pages && microData.pages.length">
|
|
<view v-for="(item, index) in microData.pages" :key="index" >
|
|
<view v-if="item.name == 'micro_page_componet_search'">
|
|
<!--搜索按钮-->
|
|
<view class="banner">
|
|
<view class="search">
|
|
<div class="menu-box" @tap="jumpMenu">
|
|
<i class="iconfont icon-fenzu">
|
|
|
|
</i>
|
|
</div>
|
|
<view class="search_box">
|
|
<input type="text" value @input="search" disabled confirm-type="search" @tap="jumpToSearch"></input>
|
|
<icon type="search" size="20"></icon>
|
|
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<!--轮播图组件-->
|
|
<view v-if="item.name == 'micro_page_componet_slide' && item.value && item.value.length">
|
|
<indexBanner :banner-data="item.value" :banner-title="item.title" :screen-width="screenWidth" :show="item.is_show_title" :meta="item.meta"></indexBanner>
|
|
</view>
|
|
<!--优惠券组件-->
|
|
<view v-if="item.name == 'micro_page_componet_coupon' && item.value && item.value.length">
|
|
<indexCoupon :index-coupon="item.value" :config="config" bindmyGetCoupon="getCoupon" :show="item.is_show_title" :meta="item.meta"></indexCoupon>
|
|
</view>
|
|
<!--套餐-->
|
|
<view v-if="item.name == 'micro_page_componet_suit' && item.value && item.value.length">
|
|
<indexSuit :suit-data="item.value" :index-data="indexData" :show="item.is_show_title" :meta="item.meta"></indexSuit>
|
|
</view>
|
|
<!--大咖推荐-->
|
|
<view v-if="item.name == 'micro_page_componet_article_-' && item.value && item.value.length">
|
|
<bigCoffee :coffee-data="item.value" :coffee-title="item.title" :show="item.is_show_title" :meta="item.meta"></bigCoffee>
|
|
</view>
|
|
<!--专属方案-->
|
|
<view v-if="item.name == 'micro_page_componet_article_|' && item.value && item.value.length">
|
|
<exclusivePlan :plan-data="item.value" :plan-title="item.title" :show="item.is_show_title" :meta="item.meta"></exclusivePlan>
|
|
</view>
|
|
<!--健康美丽Tips-->
|
|
<view v-if="item.name == 'micro_page_componet_goods_group_change' && item.value && item.value.length">
|
|
<healthTips :health-data="item.value" :title="item.title" :show="item.is_show_title" :meta="item.meta"></healthTips>
|
|
</view>
|
|
<!--猜你喜欢-->
|
|
<view v-if="item.name == 'micro_page_componet_guess_like' && item.value && item.value.length">
|
|
<waterfallsFlow :water-data="item.value" :title="item.title" :show="item.is_show_title" :meta="item.meta"></waterfallsFlow>
|
|
</view>
|
|
<!--拼团-->
|
|
<view v-if="item.name == 'micro_page_componet_groupon' && item.value && item.value.length">
|
|
<indexGroupon :index-data="item.value" :config="config" :server="microData.server_time" typename="拼团" :meta="item.meta"></indexGroupon>
|
|
</view>
|
|
<!--秒杀-->
|
|
<view v-if="item.name == 'micro_page_componet_seckill' && item.value && item.value.length">
|
|
<indexSeckill :index-data="item.value" :config="config" :server="microData.server_time" :big-index="index" bind:startevent="isStarts" bind:endevent="isEnd" :meta="item.meta"></indexSeckill>
|
|
</view>
|
|
|
|
<!--打call indexCall-->
|
|
<view v-if="item.name == 'micro_page_componet_free_event' && item.value && item.value.length">
|
|
<indexCall :call-data="item.value" :config="config" :is-login="isLogin" :server="microData.server_time" :meta="item.meta"></indexCall>
|
|
</view>
|
|
<!--快捷导航-->
|
|
<view v-if="item.name == 'micro_page_componet_nav' && item.value && item.value.length">
|
|
<indexNav :nav-data="item.value" :meta="item.meta"></indexNav>
|
|
</view>
|
|
<!--图片魔方-->
|
|
<view v-if="item.name == 'micro_page_componet_cube' && item.value && item.value.length">
|
|
<indexCube :cube-data="item.value" :show-type="item.type" :cube-title="item.title" :show="item.is_show_title" :meta="item.meta"></indexCube>
|
|
</view>
|
|
<!--分类商品-->
|
|
<view v-if="item.name == 'micro_page_componet_category' && item.value && item.value.length">
|
|
<indexCategory :category-data="item.value" :meta="item.meta"></indexCategory>
|
|
</view>
|
|
<!--商品分组-->
|
|
<view v-if="item.name == 'micro_page_componet_goods_group' && item.value && item.value.length">
|
|
<indexGrouping :grouping-data="item.value" :meta="item.meta"></indexGrouping>
|
|
</view>
|
|
</view>
|
|
</block>
|
|
</view>
|
|
</template>
|
|
<script>
|
|
/**
|
|
* Created by admin on 2017/9/26.
|
|
*/
|
|
import {pageLogin, getUrl,config,is} from '@/common/js/utils.js';
|
|
const app = getApp();
|
|
|
|
import preview from "@/components/preview/preview";
|
|
import seckill from "@/components/seckill/seckill";
|
|
import group from "@/components/group/group";
|
|
import indexBanner from '@/components/index-banner/index-banner';
|
|
import indexCube from '@/components/index-cube/index-cube';
|
|
import indexCoupon from '@/components/index-coupon/index-coupon';
|
|
import indexSuit from '@/components/index-suit/index-suit';
|
|
import bigCoffee from '@/components/big-coffee/big-coffee';
|
|
import exclusivePlan from "@/components/exclusive-plan/exclusive-plan";
|
|
import healthTips from "@/components/health-tips/health-tips";
|
|
import waterfallsFlow from "@/components/waterfalls-flow/waterfalls-flow";
|
|
import indexGroupon from "@/components/index-groupon/index-groupon";
|
|
import indexSeckill from "@/components/index-seckill/index-seckill";
|
|
import indexCall from "@/components/index-call/index-call";
|
|
import indexNav from "@/components/index-nav/index-nav";
|
|
import indexCategory from "@/components/index-category/index-category";
|
|
import indexGrouping from "@/components/index-grouping/index-grouping";
|
|
|
|
|
|
export default {
|
|
data() {
|
|
return {
|
|
banner: [],
|
|
indexData: {},
|
|
goods_arr: [],
|
|
topImage: [],
|
|
bestSalesGoods: [],
|
|
suit: [],
|
|
imgHeight: '',
|
|
screenWidth: 0,
|
|
currentDesc: 'news',
|
|
is_newGiftLogin: false,
|
|
isLogin: '',
|
|
noLoginGift: '',
|
|
// 未登录状态下的新人礼信息
|
|
loginGift: '',
|
|
// 登录状态下的新人礼信息
|
|
showNoGift: false,
|
|
// 用户是否关闭弹窗
|
|
showGift: false,
|
|
// 登录状态下是否弹窗
|
|
tapIndex: 0,
|
|
isShow: false,
|
|
goodsIndex: 0,
|
|
goodsList: [],
|
|
author: '',
|
|
scroll: true,
|
|
config: '',
|
|
wyBanner: '',
|
|
wyGoodsList: '',
|
|
microData: '',
|
|
// 组件所需的参数
|
|
nvabarData: {
|
|
showCapsule: 1,
|
|
//是否显示左上角图标 1表示显示 0表示不显示
|
|
title: '我的主页' //导航栏 中间的标题
|
|
|
|
},
|
|
id: '',
|
|
// 此页面 页面内容距最顶部的距离
|
|
height: app.globalData.height * 2 + 20,
|
|
margin_bottom:''
|
|
};
|
|
},
|
|
|
|
onShow(e) {
|
|
this.setData({
|
|
isLogin: !!this.$cookieStorage.get('user_token')
|
|
}); // 万有的接口
|
|
// this.getStoreData();
|
|
// !!this.$cookieStorage.get('user_token')
|
|
// console.log(app.globalData.giftLogin)
|
|
|
|
this.setData({
|
|
is_newGiftLogin: app.globalData.giftLogin
|
|
});
|
|
let is_info = this.$cookieStorage.get('gift_info');
|
|
|
|
if (!this.isLogin) {
|
|
this.newPeopleGift();
|
|
}
|
|
|
|
if (this.isLogin && !is_info) {
|
|
this.getPeopleGift();
|
|
}
|
|
},
|
|
|
|
onLoad(e) {
|
|
console.log(this.height); // 第三方平台配置颜色
|
|
|
|
var gbConfig = this.$cookieStorage.get('globalConfig') || '';
|
|
// this.setData({
|
|
// config: gbConfig,
|
|
// id: e.id,
|
|
// name: e.name || ''
|
|
// });
|
|
|
|
this.config=gbConfig;
|
|
this.id=e.id;
|
|
this.name=e.name || '';
|
|
|
|
if (!gbConfig) {
|
|
let extConfig = {};
|
|
|
|
if (extConfig) {
|
|
this.setData({
|
|
config: extConfig
|
|
});
|
|
}
|
|
}
|
|
|
|
wx.showLoading();
|
|
this.queryMicroData(e.id, e.name || '');
|
|
wx.getSystemInfo({
|
|
success: res => {
|
|
this.setData({
|
|
screenWidth: res.screenWidth
|
|
});
|
|
}
|
|
});
|
|
this.init(e);
|
|
},
|
|
|
|
onPullDownRefresh(e) {
|
|
wx.showLoading();
|
|
this.queryData(this.id);
|
|
},
|
|
|
|
onShareAppMessage(res) {
|
|
var info = this.$cookieStorage.get('init_info');
|
|
return {
|
|
title: info.title,
|
|
path: `/${this.route}?id=${this.id}&name=${this.name}`,
|
|
imageUrl: info.imgUrl
|
|
};
|
|
},
|
|
|
|
components: {
|
|
preview,
|
|
seckill,
|
|
group,
|
|
indexBanner,
|
|
indexCoupon,
|
|
indexSuit,
|
|
indexGroupon,
|
|
indexSeckill,
|
|
indexCall,
|
|
indexNav,
|
|
indexCategory,
|
|
indexCube,
|
|
indexGrouping,
|
|
bigCoffee,
|
|
healthTips,
|
|
exclusivePlan,
|
|
waterfallsFlow
|
|
},
|
|
methods: {
|
|
shareapp(){
|
|
var info = this.$cookieStorage.get('init_info');
|
|
var title = info.title;
|
|
var id = this.id;
|
|
var name = this.name;
|
|
uni.getProvider({
|
|
service:'share',
|
|
success:function(res){
|
|
uni.share({
|
|
provider: "weixin",
|
|
scene: "WXSceneSession",
|
|
type: 5,
|
|
title:title,
|
|
imageUrl:'https://cdn.guojiang.club/guojiang_logo.png',
|
|
miniProgram:{
|
|
id:'gh_72e65196278a',
|
|
path:`pages/index/microPages/microPages?id=${id}&name=${name}`,
|
|
type:0,
|
|
webUrl: 'https://guojiang.club'
|
|
},
|
|
success: function (res) {
|
|
console.log("success:" + JSON.stringify(res));
|
|
},
|
|
fail: function (err) {
|
|
console.log("fail:" + JSON.stringify(err));
|
|
}
|
|
});
|
|
}
|
|
})
|
|
|
|
|
|
},
|
|
// 获取初始化数据
|
|
init(e) {
|
|
this.$http.get({
|
|
api: 'api/system/init'
|
|
}).then(res => {
|
|
if (res.statusCode == 200) {
|
|
res = res.data;
|
|
|
|
if (res.status) {
|
|
if (res.data && res.data.other_technical_support) {
|
|
this.setData({
|
|
author: res.data.other_technical_support
|
|
});
|
|
}
|
|
/*wx.setNavigationBarTitle({
|
|
title: res.data.mini_home_title
|
|
})*/
|
|
|
|
|
|
this.$cookieStorage.set('init_info', res.data.h5_share);
|
|
this.$cookieStorage.set('service_info', res.data.online_service_data);
|
|
this.$cookieStorage.set('distribution_valid_time', res.data.distribution_valid_time);
|
|
this.$cookieStorage.set('init', res.data);
|
|
this.setCode(e);
|
|
} else {
|
|
this.setCode(e);
|
|
}
|
|
} else {
|
|
this.setCode(e);
|
|
}
|
|
});
|
|
},
|
|
|
|
setCode(e) {
|
|
const timeMap = {
|
|
y: 31536000000,
|
|
m: 2592000000,
|
|
d: 86400000,
|
|
h: 3600000,
|
|
n: 60000,
|
|
s: 1000
|
|
}; // 默认有效期为7天
|
|
|
|
var valid_time = "";
|
|
var clerk_id = e.clerk_id || "";
|
|
var shop_id = e.shop_id || "";
|
|
var agent_code = e.agent_code || '';
|
|
|
|
if (e.scene) {
|
|
var scene = decodeURIComponent(e.scene);
|
|
var sceneArr = scene.split(',');
|
|
|
|
if (sceneArr.length > 0) {
|
|
agent_code = sceneArr[0];
|
|
}
|
|
}
|
|
|
|
var cook_shop_id = this.$cookieStorage.get('shop_id');
|
|
|
|
if (!this.$cookieStorage.get('distribution_valid_time')) {
|
|
valid_time = 10080;
|
|
} else {
|
|
valid_time = this.$cookieStorage.get('distribution_valid_time');
|
|
}
|
|
|
|
console.log('这个是时间', valid_time);
|
|
let timeStamp = new Date().getTime();
|
|
timeStamp += timeMap.n * valid_time; // 当url上shop_id与缓存中shop_id不一致时,需要清除clerk_id。以此保证shop_id与clerk_id对应
|
|
|
|
var cook_clerk_id = this.$cookieStorage.get('clerk_id');
|
|
|
|
if (cook_shop_id != shop_id && cook_clerk_id) {
|
|
this.$cookieStorage.clear('clerk_id');
|
|
}
|
|
|
|
if (agent_code) {
|
|
this.$cookieStorage.set('agent_code', agent_code, valid_time + 'n'); // 如果有agent_code就将这次进入的时间缓存
|
|
|
|
this.$cookieStorage.set('agent_code_time', timeStamp, valid_time + 'n'); // 如果有agent_code并且有coupon_agent_code就将coupon_agent_code清除,保证agent_code为第一位
|
|
|
|
if (this.$cookieStorage.get('coupon_agent_code')) {
|
|
this.$cookieStorage.clear('coupon_agent_code');
|
|
}
|
|
}
|
|
|
|
if (clerk_id) {
|
|
this.$cookieStorage.set('clerk_id', clerk_id, valid_time + 'n');
|
|
}
|
|
|
|
if (shop_id) {
|
|
this.$cookieStorage.set('shop_id', shop_id, valid_time + 'n'); // 如果有shop_id就将这次进入的时间缓存
|
|
|
|
this.$cookieStorage.set('shop_id_time', timeStamp, valid_time + 'n');
|
|
}
|
|
|
|
const code = agent_code || this.$cookieStorage.get('agent_code');
|
|
|
|
if (code) {// this.getCodeUser(code);
|
|
}
|
|
},
|
|
|
|
// 根据agent_code获取用户信息
|
|
getCodeUser(agent_code) {
|
|
this.$http.get({
|
|
api: '/api/distribution/getAgentInfo',
|
|
data: {
|
|
agent_code: agent_code
|
|
}
|
|
}).then(res => {
|
|
if (res.statusCode == 200) {
|
|
res = res.data;
|
|
|
|
if (res.status) {
|
|
const title = res.data.name + ' X ' + res.data.home_title;
|
|
wx.setNavigationBarTitle({
|
|
title: title
|
|
});
|
|
}
|
|
}
|
|
});
|
|
},
|
|
|
|
jumpAuthor() {
|
|
wx.navigateTo({
|
|
url: '/pages/index/author/author'
|
|
});
|
|
},
|
|
|
|
imgLoad(e) {
|
|
var height = e.detail.height;
|
|
var width = e.detail.width;
|
|
var ratio = width / height;
|
|
var screenWidth = this.screenWidth;
|
|
this.setData({
|
|
imgHeight: screenWidth / ratio
|
|
});
|
|
},
|
|
|
|
changeItem(e) {
|
|
var index = e.currentTarget.dataset.index;
|
|
if (index == this.currentDesc) return;
|
|
this.setData({
|
|
goods_arr: this.indexData.Mini_H5TabData[index],
|
|
tapIndex: index
|
|
});
|
|
},
|
|
|
|
changeGoodsItem(e) {
|
|
var index = e.currentTarget.dataset.index;
|
|
if (index == this.currentDesc) return;
|
|
this.setData({
|
|
goodsIndex: index
|
|
});
|
|
},
|
|
|
|
closeGift() {
|
|
this.$cookieStorage.set('gift_info', true);
|
|
this.setData({
|
|
showGift: false
|
|
});
|
|
},
|
|
|
|
showModal() {
|
|
this.setData({
|
|
showNoGift: true
|
|
});
|
|
},
|
|
|
|
showPreview(e) {
|
|
var items = this.indexData.H5GoodsRecommend[this.goodsIndex].items;
|
|
var index = e.currentTarget.dataset.index;
|
|
this.setData({
|
|
goodsList: items[index].items,
|
|
isShow: true
|
|
});
|
|
},
|
|
|
|
jumpMeal(e) {
|
|
// console.log(e);
|
|
var id = e.currentTarget.dataset.suitid;
|
|
wx.navigateTo({
|
|
url: `/pages/store/meal/meal?id=${id}`
|
|
});
|
|
},
|
|
|
|
// 关闭弹窗
|
|
isClone() {
|
|
this.setData({
|
|
isShow: false
|
|
});
|
|
},
|
|
|
|
// 新人进店有礼
|
|
newPeopleGift() {
|
|
this.$http.get({
|
|
api: 'api/home/gift_new_user'
|
|
}).then(res => {
|
|
res = res.data;
|
|
|
|
if (res.status && res.data) {
|
|
var cache_no_gift = this.$cookieStorage.get('new_gift');
|
|
console.log(res.data);
|
|
res.data.gift.forEach(function (val) {
|
|
val.coupon.usestart_at = val.coupon.usestart_at.replace(/\s.+$/, '');
|
|
val.coupon.useend_at = val.coupon.useend_at.replace(/\s.+$/, '');
|
|
});
|
|
this.setData({
|
|
noLoginGift: res.data
|
|
});
|
|
|
|
if (!cache_no_gift) {
|
|
this.setData({
|
|
showNoGift: true
|
|
});
|
|
}
|
|
} // else{
|
|
// wx.showModal({
|
|
// title: '提示',
|
|
// content: '请求失败',
|
|
// success: res=>{
|
|
// if (res.confirm) {
|
|
//
|
|
// }
|
|
// }
|
|
// })
|
|
// }
|
|
|
|
});
|
|
},
|
|
|
|
// 新人进店有礼(已登录)
|
|
getPeopleGift() {
|
|
this.$http.post({
|
|
api: 'api/home/gift_new_user',
|
|
header: {
|
|
Authorization: this.$cookieStorage.get('user_token')
|
|
}
|
|
}).then(res => {
|
|
res = res.data;
|
|
var cache_info = this.$cookieStorage.get('gift_info');
|
|
|
|
if (res.status && res.data && !cache_info) {
|
|
// 判断是不是老用户
|
|
if (!res.data.activity.is_new_user) {
|
|
console.log(res.data);
|
|
|
|
if (this.is_newGiftLogin) {
|
|
res.data.activity.gift.forEach(function (val) {
|
|
val.coupon.usestart_at = val.coupon.usestart_at.replace(/\s.+$/, '');
|
|
val.coupon.useend_at = val.coupon.useend_at.replace(/\s.+$/, '');
|
|
});
|
|
this.setData({
|
|
showGift: true,
|
|
loginGift: res.data
|
|
});
|
|
} else {
|
|
this.closeGift();
|
|
}
|
|
} else {
|
|
res.data.activity.gift.forEach(function (val) {
|
|
val.coupon.usestart_at = val.coupon.usestart_at.replace(/\s.+$/, '');
|
|
val.coupon.useend_at = val.coupon.useend_at.replace(/\s.+$/, '');
|
|
});
|
|
this.setData({
|
|
showGift: true,
|
|
loginGift: res.data
|
|
});
|
|
}
|
|
} else {}
|
|
});
|
|
},
|
|
|
|
// 秒杀开始
|
|
isStarts(e) {
|
|
var idx = e.detail.idx;
|
|
var index = e.detail.index;
|
|
|
|
if (this.microData.pages[idx].value[index].associate.init_status != 1) {
|
|
this.setData({
|
|
[`microData.pages[${idx}].value[${index}].associate.init_status`]: 1
|
|
});
|
|
}
|
|
},
|
|
|
|
// 秒杀结束
|
|
isEnd(e) {
|
|
var idx = e.detail.idx;
|
|
var index = e.detail.index;
|
|
var newData = this.microData;
|
|
newData.pages[idx].value.splice(index, 1);
|
|
this.setData({
|
|
microData: newData
|
|
});
|
|
},
|
|
|
|
login() {
|
|
pageLogin(getUrl());
|
|
/*wx.redirectTo({
|
|
url: '/pages/user/register/register?url='+getUrl()+encodeURIComponent('?giftLogin=true')
|
|
})*/
|
|
},
|
|
|
|
close() {
|
|
this.setData({
|
|
showNoGift: false
|
|
}); // this.showNoGift = false;
|
|
|
|
var time = new Date(new Date().setHours(0, 0, 0, 0)).getTime() + 86400000;
|
|
this.$cookieStorage.set('new_gift', true, time);
|
|
},
|
|
|
|
jumpToSearch() {
|
|
wx.navigateTo({
|
|
url: '/pages/store/search/search'
|
|
});
|
|
},
|
|
|
|
jumpToDetail(e) {
|
|
var id = e.currentTarget.dataset.id;
|
|
wx.navigateTo({
|
|
url: `/pages/store/detail/detail?id=${id}`
|
|
});
|
|
},
|
|
|
|
jumpCall(e) {
|
|
if (this.isLogin) {
|
|
var id = e.currentTarget.dataset.id;
|
|
wx.navigateTo({
|
|
url: '/pages/store/call/call?id=' + id
|
|
});
|
|
} else {
|
|
wx.showModal({
|
|
content: '请先登录',
|
|
success: res => {
|
|
if (res.confirm || !res.cancel && !res.confirm) {
|
|
pageLogin(getUrl());
|
|
}
|
|
}
|
|
});
|
|
}
|
|
},
|
|
|
|
jumpImg(e) {
|
|
/*wx.scanCode({
|
|
success: res => {
|
|
console.log(res);
|
|
}
|
|
})
|
|
return*/
|
|
var src = e.currentTarget.dataset.src;
|
|
if (!src || src == 'uto_miniprogram') return;
|
|
wx.navigateTo({
|
|
url: src
|
|
});
|
|
},
|
|
|
|
//跳到搜索页面
|
|
jumpSearch() {
|
|
wx.navigateTo({
|
|
url: '/pages/store/search/search'
|
|
});
|
|
},
|
|
|
|
jumpMenu(e) {
|
|
if (config.PACKAGES.isTab) {
|
|
wx.switchTab({
|
|
url: '/pages/index/classification/classification'
|
|
});
|
|
} else {
|
|
wx.navigateTo({
|
|
url: '/pages/index/classify/classify'
|
|
});
|
|
}
|
|
},
|
|
|
|
jumpStore(e) {
|
|
var id = e.currentTarget.dataset.id;
|
|
wx.navigateTo({
|
|
url: '/pages/store/detail/detail?id=' + id
|
|
});
|
|
},
|
|
|
|
//请求新数据
|
|
queryMicroData(id, name = '') {
|
|
this.$http.get({
|
|
api: 'api/micro/page/' + id,
|
|
data: {
|
|
name: name
|
|
}
|
|
}).then(res => {
|
|
if (res.statusCode == 200) {
|
|
res = res.data;
|
|
|
|
if (res.status) {
|
|
this.setData({
|
|
microData: res.data
|
|
});
|
|
|
|
if (res.data && res.data.micro_page) {
|
|
wx.setNavigationBarTitle({
|
|
title: res.data.micro_page.name == 'brand' ? '品牌馆' : res.data.micro_page.name
|
|
});
|
|
}
|
|
} else {
|
|
wx.showModal({
|
|
content: res.message || '请求失败',
|
|
showCancel: false
|
|
});
|
|
}
|
|
} else {
|
|
wx.showModal({
|
|
content: '请求失败',
|
|
showCancel: false
|
|
});
|
|
}
|
|
|
|
wx.stopPullDownRefresh();
|
|
wx.hideLoading();
|
|
}).catch(() => {
|
|
wx.stopPullDownRefresh();
|
|
wx.hideLoading();
|
|
wx.showModal({
|
|
content: '请求失败',
|
|
showCancel: false
|
|
});
|
|
});
|
|
},
|
|
|
|
go(e) {
|
|
var link = e.currentTarget.dataset.link;
|
|
|
|
if (link) {
|
|
if (link.indexOf('c_id') != -1) {
|
|
wx.navigateTo({
|
|
url: '/pages/store/list/list?' + link
|
|
});
|
|
} else if (link.indexOf('id') != -1) {
|
|
wx.navigateTo({
|
|
url: '/pages/store/detail/detail?' + link
|
|
});
|
|
}
|
|
}
|
|
},
|
|
|
|
// 领取优惠券
|
|
getCoupon(e) {
|
|
var token = this.$cookieStorage.get('user_token');
|
|
var code = e.detail.code;
|
|
var index = e.detail.index;
|
|
|
|
if (token) {
|
|
this.convertCoupon(code, index);
|
|
} else {
|
|
wx.showModal({
|
|
content: '请先登录',
|
|
showCancel: false,
|
|
success: res => {
|
|
if (res.confirm || !res.cancel && !res.confirm) {
|
|
pageLogin(getUrl());
|
|
}
|
|
}
|
|
});
|
|
}
|
|
},
|
|
|
|
// 领取优惠券接口
|
|
convertCoupon(code, index) {
|
|
var token = this.$cookieStorage.get('user_token');
|
|
wx.showLoading({
|
|
title: "正在领取",
|
|
mask: true
|
|
});
|
|
this.$http.post({
|
|
api: 'api/coupon/convert',
|
|
header: {
|
|
Authorization: token
|
|
},
|
|
data: {
|
|
coupon_code: code
|
|
}
|
|
}).then(res => {
|
|
wx.hideLoading();
|
|
|
|
if (res.statusCode == 200) {
|
|
res = res.data;
|
|
|
|
if (res.status) {
|
|
var pages = this.microData.pages;
|
|
pages.forEach((val, idx) => {
|
|
if (val.name == 'micro_page_componet_coupon') {
|
|
this.setData({
|
|
[`microData.pages[${idx}].value[${index}].associate.has_get`]: true
|
|
});
|
|
}
|
|
});
|
|
wx.showToast({
|
|
title: '领取成功'
|
|
});
|
|
} else {
|
|
wx.showToast({
|
|
title: res.message || '领取失败',
|
|
image: '../../../static/error.png'
|
|
});
|
|
}
|
|
} else {
|
|
wx.showToast({
|
|
title: '领取失败',
|
|
image: '../../../static/error.png'
|
|
});
|
|
}
|
|
}).catch(rej => {
|
|
wx.showToast({
|
|
title: '领取失败',
|
|
image: '../../../static/error.png'
|
|
});
|
|
wx.hideLoading();
|
|
});
|
|
},
|
|
|
|
jumpList(e) {
|
|
var id = e.currentTarget.dataset.id;
|
|
wx.navigateTo({
|
|
url: '/pages/coupon/goods/goods?id=' + id
|
|
});
|
|
},
|
|
|
|
setData: function (obj) {
|
|
let that = this;
|
|
let keys = [];
|
|
let val, data;
|
|
Object.keys(obj).forEach(function (key) {
|
|
keys = key.split('.');
|
|
val = obj[key];
|
|
data = that.$data;
|
|
keys.forEach(function (key2, index) {
|
|
if (index + 1 == keys.length) {
|
|
that.$set(data, key2, val);
|
|
} else {
|
|
if (!data[key2]) {
|
|
that.$set(data, key2, {});
|
|
}
|
|
}
|
|
|
|
data = data[key2];
|
|
});
|
|
});
|
|
}
|
|
},
|
|
computed: {},
|
|
watch: {}
|
|
};
|
|
</script>
|
|
<style rel="stylesheet/less" lang="less">
|
|
@import "microPages";
|
|
</style>
|