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.
365 lines
8.9 KiB
365 lines
8.9 KiB
<template>
|
|
<view class="content" style="padding-top: 0upx;">
|
|
|
|
<!-- #ifdef MP-WEIXIN -->
|
|
<view class="subscription-notice" v-if="suTip">
|
|
<view>
|
|
<image class="icon" src="/static/image/subscription-tip.png" mode=""></image>
|
|
<text>订阅消息,及时获取订单最新动态</text>
|
|
</view>
|
|
<view>
|
|
<text class="subscription-notice-btn red-price" @click="toSubscription()">消息订阅</text>
|
|
<text class="subscription-notice-btn-close" @click="toClose()">×</text>
|
|
</view>
|
|
</view>
|
|
<!-- #endif -->
|
|
|
|
<jshop :jdata="pageData"></jshop>
|
|
|
|
<!-- #ifdef H5 || APP-PLUS-NVUE || APP-PLUS -->
|
|
<view class="service" @click="showChat()"><image class="icon" src="/static/image/seller-content.png" mode=""></image></view>
|
|
<!-- #endif -->
|
|
<!-- #ifdef MP-WEIXIN -->
|
|
<button class="service" hover-class="none" open-type="contact" bindcontact="showChat" :session-from="kefupara">
|
|
<image class="icon" src="/static/image/seller-content.png" mode=""></image>
|
|
</button>
|
|
<!-- #endif -->
|
|
<!-- #ifdef MP-ALIPAY -->
|
|
<contact-button class="service icon" icon="/static/image/seller-content.png" size="80rpx*80rpx" tnt-inst-id="WKPKUZXG" scene="SCE00040186" hover-class="none" />
|
|
<!-- #endif -->
|
|
<!-- #ifdef MP-TOUTIAO -->
|
|
<!-- 头条客服 -->
|
|
<!-- #endif -->
|
|
<red-bag v-if="redBagShow" @click="handleGet"></red-bag>
|
|
|
|
</view>
|
|
</template>
|
|
<script>
|
|
import mallplusCopyright from '@/components/mall-copyright/mallplusCopyright.vue';
|
|
import Api from '@/common/api';
|
|
import jshop from '@/components/jshop/jshop.vue';
|
|
|
|
import uniCountdown from '@/components/uni-countdown/uni-countdown.vue';
|
|
import redBag from '@/components/red-bag/index';
|
|
import { goods } from '@/config/mixins.js';
|
|
import { goBack } from '@/config/mixins.js';
|
|
export default {
|
|
mixins: [goods],
|
|
components: {
|
|
mallplusCopyright,
|
|
jshop,
|
|
uniCountdown,
|
|
redBag
|
|
},
|
|
data() {
|
|
return {
|
|
topmenu:{},
|
|
imageUrl: '/static/image/share_image.png', //店铺分享图片
|
|
pageData: [],
|
|
pageTitle: [],
|
|
pageCode: 'mobile_home', //页面布局编码
|
|
pintuan: [], //拼团列表,
|
|
redBagShow: false, //红包
|
|
config: '', //配置信息
|
|
userInfo: {}, // 用户信息
|
|
kefupara: '', //客服传递资料
|
|
id:0,
|
|
copy: false,
|
|
suTipStatus: false,
|
|
shareUrl: '/pages/share/jump'
|
|
};
|
|
},
|
|
updated() {
|
|
this.copy = true;
|
|
},
|
|
computed: {
|
|
appTitle() {
|
|
return this.pageTitle.pageName;
|
|
},
|
|
// 获取店铺联系人手机号
|
|
shopMobile() {
|
|
return this.$store.state.config.shop_mobile || 0;
|
|
},
|
|
suTip() {
|
|
return this.suTipStatus;
|
|
}
|
|
},
|
|
onLoad(e) {
|
|
this.id=e.id;
|
|
this.initData();
|
|
if (this.pageTitle.pageName) {
|
|
uni.setNavigationBarTitle({
|
|
title: this.pageTitle.pageName
|
|
});
|
|
}
|
|
},
|
|
onShow() {
|
|
// #ifdef MP-WEIXIN
|
|
this.userIsSubscription();
|
|
// #endif
|
|
},
|
|
methods: {
|
|
//领取红包
|
|
handleGet() {},
|
|
destroyed() {
|
|
window.removeEventListener('scroll', this.handleScroll);
|
|
},
|
|
goSearch() {
|
|
uni.navigateTo({
|
|
url: './search'
|
|
});
|
|
},
|
|
// 首页初始化获取数据
|
|
async initData() {
|
|
let params={type:2,storeId:this.id};
|
|
let res = await Api.apiCall('get',Api.index.diyDetail,params);
|
|
console.log(res)
|
|
let items = JSON.parse(res.datas)
|
|
|
|
console.log(items.currentTemplate)
|
|
items.currentTemplate.forEach((item)=> {
|
|
if (item.id == 'topmenu') {
|
|
this.topmenu = item;
|
|
if (item.data[0] == undefined) {
|
|
var linkurl = '';
|
|
} else {
|
|
var linkurl = item.data[0].linkurl;
|
|
core.get('diypage/getInfo', {
|
|
dataurl: linkurl
|
|
}, function(ret) {
|
|
//console.log(ret);
|
|
item.data[0].data = ret.goods.list;
|
|
});
|
|
}
|
|
|
|
}
|
|
|
|
if (item.id == 'seckillgroup') {
|
|
var data = {};
|
|
data.status = item.data.status;
|
|
data.endtime = item.data.endtime;
|
|
data.starttime = item.data.starttime;
|
|
$this.initSeckill(data);
|
|
}
|
|
});
|
|
this.pageData = items.currentTemplate;
|
|
this.pageTitle =items.basicOption;
|
|
setTimeout(() => {
|
|
this.showLoad = false;
|
|
}, 600);
|
|
//获取首页配置
|
|
|
|
var _this = this;
|
|
if (this.$db.get('userToken')) {
|
|
this.$api.userInfo({}, res => {
|
|
if (res.status) {
|
|
_this.userInfo = res.data;
|
|
// #ifdef MP-WEIXIN
|
|
//微信小程序打开客服时,传递用户信息
|
|
var kefupara = {};
|
|
kefupara.nickName = res.data.nickname;
|
|
kefupara.tel = res.data.mobile;
|
|
_this.kefupara = JSON.stringify(kefupara);
|
|
// #endif
|
|
}
|
|
});
|
|
}
|
|
|
|
// #ifdef MP-WEIXIN
|
|
this.userIsSubscription();
|
|
// #endif
|
|
|
|
// this.getShareUrl();
|
|
},
|
|
//在线客服,只有手机号的,请自己替换为手机号
|
|
showChat() {
|
|
// #ifdef H5
|
|
let _this = this;
|
|
window._AIHECONG('ini', {
|
|
entId: this.config.ent_id,
|
|
button: false,
|
|
appearance: {
|
|
panelMobile: {
|
|
tone: '#FF7159',
|
|
sideMargin: 30,
|
|
ratio: 'part',
|
|
headHeight: 50
|
|
}
|
|
}
|
|
});
|
|
//传递客户信息
|
|
window._AIHECONG('customer', {
|
|
head: _this.userInfo.avatar,
|
|
名称: _this.userInfo.nickname,
|
|
手机: _this.userInfo.mobile
|
|
});
|
|
window._AIHECONG('showChat');
|
|
// #endif
|
|
|
|
// 客服页面
|
|
// #ifdef APP-PLUS || APP-PLUS-NVUE
|
|
this.$common.navigateTo('../customer_service/index');
|
|
// #endif
|
|
|
|
// 头条系客服
|
|
// #ifdef MP-TOUTIAO
|
|
if (this.shopMobile != 0) {
|
|
let _this = this;
|
|
tt.makePhoneCall({
|
|
phoneNumber: this.shopMobile.toString(),
|
|
success(res) {},
|
|
fail(res) {}
|
|
});
|
|
} else {
|
|
_this.$common.errorToShow('暂无设置客服电话');
|
|
}
|
|
// #endif
|
|
},
|
|
//前往订阅
|
|
toSubscription() {
|
|
this.$common.navigateTo('/pages/member/setting/subscription/index');
|
|
},
|
|
//查询用户订阅
|
|
userIsSubscription() {
|
|
let userToken = this.$db.get('userToken');
|
|
if (userToken && userToken != '') {
|
|
this.$api.subscriptionIsTip(res => {
|
|
if (res.status) {
|
|
if (res.data) {
|
|
this.suTipStatus = true;
|
|
} else {
|
|
this.suTipStatus = false;
|
|
}
|
|
} else {
|
|
this.suTipStatus = true;
|
|
}
|
|
});
|
|
} else {
|
|
this.suTipStatus = true;
|
|
}
|
|
},
|
|
//关闭订阅
|
|
toClose() {
|
|
let userToken = this.$db.get('userToken');
|
|
if (userToken && userToken != '') {
|
|
this.$api.subscriptionCloseTip(res => {
|
|
this.suTipStatus = false;
|
|
});
|
|
} else {
|
|
this.suTipStatus = false;
|
|
}
|
|
},
|
|
//获取分享URL
|
|
getShareUrl() {
|
|
let data = {
|
|
client: 2,
|
|
url: "/pages/share/jump",
|
|
type: 1,
|
|
page: 1,
|
|
};
|
|
let userToken = this.$db.get('userToken');
|
|
if (userToken && userToken != '') {
|
|
data['token'] = userToken;
|
|
}
|
|
this.$api.share(data, res => {
|
|
this.shareUrl = res.data
|
|
});
|
|
}
|
|
},
|
|
onPullDownRefresh() {
|
|
this.initData();
|
|
uni.stopPullDownRefresh();
|
|
},
|
|
//分享
|
|
onShareAppMessage() {
|
|
return {
|
|
title: this.$store.state.config.share_title,
|
|
// #ifdef MP-ALIPAY
|
|
desc: this.$store.state.config.share_desc,
|
|
// #endif
|
|
imageUrl: this.$store.state.config.share_image,
|
|
path: this.shareUrl
|
|
};
|
|
},
|
|
// #ifdef MP-WEIXIN || APP-PLUS || APP-PLUS-NVUE
|
|
onPageScroll() {
|
|
var _this = this;
|
|
const query = uni.createSelectorQuery();
|
|
query
|
|
.select('.content >>> .search')
|
|
.boundingClientRect(function(res) {
|
|
if (res) {
|
|
if (res.top < 0) {
|
|
_this.$store.commit('searchFixed', true);
|
|
} else {
|
|
_this.$store.commit('searchFixed', false);
|
|
}
|
|
}
|
|
})
|
|
.exec();
|
|
}
|
|
//#endif
|
|
};
|
|
</script>
|
|
|
|
<style>
|
|
.cell-item {
|
|
border: none;
|
|
}
|
|
|
|
.cell-ft-text {
|
|
font-size: 22upx;
|
|
color: #999;
|
|
}
|
|
|
|
.service {
|
|
width: 80rpx;
|
|
height: 80rpx;
|
|
background-color: #fff;
|
|
border-radius: 50%;
|
|
position: fixed;
|
|
right: 30rpx;
|
|
bottom: 120rpx;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
box-shadow: 0 0 10rpx #ccc;
|
|
padding: 0;
|
|
z-index: 996;
|
|
}
|
|
.service .icon {
|
|
width: 60rpx;
|
|
height: 60rpx;
|
|
}
|
|
.subscription-notice {
|
|
background-color: #ffffff;
|
|
box-shadow: 0 2rpx 18rpx #eeeeee;
|
|
position: relative;
|
|
z-index: 99;
|
|
height: 66rpx;
|
|
line-height: 66rpx;
|
|
padding: 0 20rpx;
|
|
font-size: 28rpx;
|
|
color: #333333;
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
}
|
|
.subscription-notice > view {
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
.subscription-notice .icon {
|
|
width: 32rpx;
|
|
height: 32rpx;
|
|
margin-right: 10rpx;
|
|
}
|
|
.subscription-notice-btn {
|
|
color: #4285f4;
|
|
}
|
|
.subscription-notice-btn-close {
|
|
color: #888888;
|
|
padding-left: 10px;
|
|
font-size: 30rpx;
|
|
}
|
|
</style>
|
|
|