私域通

This commit is contained in:
老叶
2022-01-28 11:41:32 +08:00
parent 517d487122
commit 03c877ce0d
11 changed files with 245 additions and 92 deletions
+6
View File
@@ -113,6 +113,12 @@ api = {
appCusorderdata:'app/Cusorderdata', //获取订单图片 /上传编辑国补资料
appCusorderV2Info:'app/cusorderV2/info', //修改订单基本信息
appCusorderV2Status:'app/cusorderV2/status', //删除订单
appSytactivityTabs:'app/sytactivity/tabs', //私域通_tab
appSytactivityList:'app/sytactivity/list', //活动列表
appSytactivityDetail:'app/sytactivity/detail', //活动详情
appSytactivityLog:'app/sytactivity/log', //实时战报
appSytactivityRanking:'app/sytactivity/ranking', //活动排名
}
+35
View File
@@ -754,4 +754,39 @@ apiQuery.putAppCusorderV2Status = function (params) {
})
}
//私域通_tab
apiQuery.getAppSytactivityTabs = function (params) {
return new Promise(function (resolve, reject) {
HttpRequest(false, Config.api.appSytactivityTabs, 2, params, "GET", resolve, reject)
})
}
//活动列表
apiQuery.getAppSytactivityList = function (params) {
return new Promise(function (resolve, reject) {
HttpRequest(false, Config.api.appSytactivityList, 2, params, "GET", resolve, reject)
})
}
//活动详情
apiQuery.getAppSytactivityDetail = function (params) {
return new Promise(function (resolve, reject) {
HttpRequest(false, Config.api.appSytactivityDetail, 2, params, "GET", resolve, reject)
})
}
//实时战报
apiQuery.getAppSytactivityLog = function (params) {
return new Promise(function (resolve, reject) {
HttpRequest(false, Config.api.appSytactivityLog, 2, params, "GET", resolve, reject)
})
}
//活动排名
apiQuery.getAppSytactivityRanking = function (params) {
return new Promise(function (resolve, reject) {
HttpRequest(false, Config.api.appSytactivityRanking, 2, params, "GET", resolve, reject)
})
}
export default apiQuery;
+2 -1
View File
@@ -101,8 +101,9 @@ Component({
//二维码
if (that.data.imgs[1]) {
Canvas.circleImage(CTX,that.data.imgs[1].path,417, height-180,70)
CTX.drawImage(that.data.imgs[1].path,417, height-180,140,140)
}
setTimeout(function(){
CTX.save()
+4
View File
@@ -22,6 +22,7 @@ Page({
cfrom:'',//客户来源
o_type:'',//排序类型
visit:'',//只显示待回访客户(1是)
a_id:'',//活动ID
},
onLoad(options) {
for (let key in options) {
@@ -85,6 +86,9 @@ Page({
if(this.data.o_type != ''){
params['o_type'] = this.data.o_type;
}
if(this.data.a_id != ''){
params['a_id'] = this.data.a_id;
}
_.apiQuery.getAppCustomersList(params).then(res => {
this.setData({
total: res.data.total,
+81 -5
View File
@@ -9,10 +9,64 @@ Page({
isShowBg: false,
txtColor: '#fff'
},
imgs: [],
list: [],
pageNo: 1,
noData: false,
end: false,
load: true,
loading: false,
},
onLoad: function (options) {
for (let key in options) {
this.setData({
[key]: options[key]
})
}
flagForScroll = false
this.getAppSytactivityDetail()
this.getAppSytactivityLog()
},
//活动详情
getAppSytactivityDetail(){
let params = {};
params['id'] = this.data.id;
_.apiQuery.getAppSytactivityDetail(params).then(res => {
this.setData({
info:res.data,
})
wx.stopPullDownRefresh()
});
},
//实时战报
getAppSytactivityLog() {
this.setData({
load: false,
loading: true,
})
let params = {};
params['page'] = this.data.pageNo;
params['size'] = 10;
params['id'] = this.data.id;
_.apiQuery.getAppSytactivityLog(params).then(res => {
this.setData({
pageNo: this.data.pageNo + 1,
list: this.data.list.concat(res.data.list),
load: true,
loading: false,
})
if (res.data.total == 0) {
this.setData({
noData: true
})
} else if (this.data.list.length == res.data.total) {
this.setData({
end: true
})
}
wx.stopPullDownRefresh()
});
},
//生成海报
@@ -22,8 +76,8 @@ Page({
title: '正在生成中...',
})
that.setData({
'poster.customPoster':'https://qs.haodian.cn/wechat_app/lichebao/siyutong/detail.jpg',
'poster.codeImg':'https://qs.haodian.cn/wechat_app/lichebao/index/jrKF-code2.jpg',
'poster.customPoster':that.data.info.poster,
'poster.codeImg':that.data.info.btn.share_url,
})
setTimeout(function(){
that.setData({
@@ -67,8 +121,30 @@ Page({
}
},
//页面相关事件处理函数--监听用户下拉动作
onPullDownRefresh: function () {
//推送链接
pushLink(e) {
if(e.currentTarget.dataset.url){
_.$router.openUrlScheme(e.currentTarget.dataset.url)
}
},
//页面相关事件处理函数--监听用户下拉动作
onPullDownRefresh(){
this.setData({
list: [],
pageNo: 1,
noData: false,
end: false,
load: true,
loading: false,
})
this.getAppSytactivityDetail()
this.getAppSytactivityLog()
},
//页面上拉触底事件的处理函数
onReachBottom(){
if (this.data.noData || this.data.end||!this.data.load) return;
this.getAppSytactivityLog()
},
})
+17 -36
View File
@@ -1,61 +1,42 @@
<lcb-navBar titleText="{{navBar.title}}" txtColor="{{navBar.txtColor}}" bgColor="{{navBar.bgColor}}" isShowBg="{{navBar.isShowBg}}"></lcb-navBar>
<view class='container'>
<view><image class="wp100" lazy-load="{{true}}" mode="widthFix" src="{{imgUrl}}siyutong/detail.jpg"></image></view>
<view><image class="wp100" lazy-load="{{true}}" mode="widthFix" src="{{info.img}}"></image></view>
<view class="inner30 pt0">
<view class="inner30 bds-5-679af5 bg-1c349c box-shadow-000-50 ulib-r20">
<view class="mt10 text-center"><image style="width:400rpx;height:40rpx;" lazy-load="{{true}}" mode="aspectFill" src="{{imgUrl}}siyutong/ac-tt-2.png"></image></view>
<view class="inner20 pt15 font-28 color-fff line-height-16">年末购车大潮,为满足公司需要,现开展蓄客活动。各位狸车同仁,请积极邀请朋友参加活动所有客户都会进入你们自己的客户池。</view>
<view class="inner20 pt15 font-28 color-fff line-height-16">{{info.remark}}</view>
</view>
<view class="mt30 inner30 bds-5-679af5 bg-1c349c box-shadow-000-50 ulib-r20">
<view class="relative pr150" bindtap="pushLink" data-url="">
<view class="text-nowrap font-32 color-fff">当前门店排名</view>
<view class="relative pr150" bindtap="pushLink" data-url="{{info.ranking.url}}">
<view class="text-nowrap font-32 color-fff">{{info.ranking.title}}</view>
<view class="absolute right-0 box-middle">
<text class="inline-block bg-ffa73d-ff7a28 pl10 pr10 text-middle font-20 color-fff ulib-r750">2</text>
<text class="inline-block bg-ffa73d-ff7a28 pl10 pr10 text-middle font-20 color-fff ulib-r750">{{info.ranking.value}}</text>
<i class="iconfont icon-gengduo text-middle font-32 color-fff"></i>
</view>
</view>
</view>
<view class="mt30 ulib-rt20 inner20 tt-ac text-center fn-flex">
<view class="fn-flex-item">
<view class="font-40 color-f9394d">50.32w</view>
<view class="font-28">报名</view>
</view>
<view class="fn-flex-item">
<view class="font-40 color-f9394d">50.32w</view>
<view class="font-28">报名</view>
</view>
<view class="fn-flex-item">
<view class="font-40 color-f9394d">50.32w</view>
<view class="font-28">报名</view>
</view>
<block wx:for='{{info.menus}}' wx:key='index'>
<view class="fn-flex-item" bindtap="pushLink" data-url="{{item.url}}">
<view class="font-40 color-f9394d">{{item.value}}</view>
<view class="font-28">{{item.title}}</view>
</view>
</block>
</view>
<view class="inner30 bg-1c349c bds-5-679af5 box-shadow-000-50 ulib-rb20">
<view class="mt10 text-center"><image style="width:400rpx;height:40rpx;" lazy-load="{{true}}" mode="aspectFill" src="{{imgUrl}}siyutong/ac-tt-3.png"></image></view>
<view>
<view class="mt20 inner30 relative bg-3349a6 pr150 ulib-r10" bindtap="pushLink" data-url="">
<view class="text-nowrap font-28 color-fff">东风EX1特约直播!东风EX1特约直播!东风EX1特约直播!东风EX1特约直播!</view>
<view class="absolute right-0 box-middle mr30 font-28 color-adb3d6">
2秒前
<block wx:for='{{list}}' wx:key='index'>
<view class="mt20 inner30 relative bg-3349a6 pr150 ulib-r10">
<view class="text-nowrap font-28 color-fff">{{item.content}}</view>
<view class="absolute right-0 box-middle mr30 font-28 color-adb3d6">{{item.c_time}}</view>
</view>
</view>
<view class="mt20 inner30 relative bg-3349a6 pr150 ulib-r10" bindtap="pushLink" data-url="">
<view class="text-nowrap font-28 color-fff">东风EX1特约直播!东风EX1特约直播!东风EX1特约直播!东风EX1特约直播!</view>
<view class="absolute right-0 box-middle mr30 font-28 color-adb3d6">
2秒前
</view>
</view>
<view class="mt20 inner30 relative bg-3349a6 pr150 ulib-r10" bindtap="pushLink" data-url="">
<view class="text-nowrap font-28 color-fff">东风EX1特约直播!东风EX1特约直播!东风EX1特约直播!东风EX1特约直播!</view>
<view class="absolute right-0 box-middle mr30 font-28 color-adb3d6">
2秒前
</view>
</view>
</block>
</view>
</view>
<view class="pt40 pb40 pl100 pr100 text-center">
<view class="ac-btn pt20 pb20 font-32 color-fff ulib-r750" bindtap="showPoster">马上邀请</view>
<view class="pt20 pb20 font-32 color-fff ulib-r750 {{info.btn.value==1?'ac-btn':'ac-btn-none'}}" bindtap="{{info.btn.value==1?'showPoster':''}}">{{info.btn.title}}</view>
</view>
</view>
+5
View File
@@ -32,4 +32,9 @@ page{
.ac-btn{
background-image:linear-gradient(#ffa73d,#ff7a28);
border-bottom:#db610d 6rpx solid;
}
.ac-btn-none{
background-image:linear-gradient(#bebebe,#aaa9a9);
border-bottom:#888 6rpx solid;
}
+33
View File
@@ -1,9 +1,30 @@
import _ from '../../../commons/js/commons'
Page({
data: {
isShowRule:false,
},
onLoad: function (options) {
for (let key in options) {
this.setData({
[key]: options[key]
})
}
this.getAppSytactivityRanking()
},
//活动排名
getAppSytactivityRanking(){
let params = {};
params['id'] = this.data.id;
_.apiQuery.getAppSytactivityRanking(params).then(res => {
this.setData({
info:res.data,
})
wx.setNavigationBarTitle({
title:res.data.title,
})
wx.stopPullDownRefresh()
});
},
//显示隐藏积分规则
@@ -12,4 +33,16 @@ Page({
isShowRule:!this.data.isShowRule,
})
},
//推送链接
pushLink(e) {
if(e.currentTarget.dataset.url){
_.$router.openUrlScheme(e.currentTarget.dataset.url)
}
},
//页面相关事件处理函数--监听用户下拉动作
onPullDownRefresh(){
this.getAppSytactivityRanking()
},
})
+14 -17
View File
@@ -1,23 +1,21 @@
<view class="container inner30 img-top-cover">
<view class="mt30 ulib-rt20 inner30 pl50 pr50 tt-ac relative color-000e65">
<view class="text-nowrap font-36"><text class="iconfont icon-cup mr5"></text>我的直营店</view>
<view class="absolute right-0 box-middle mr50 font-36">120分</view>
<view class="text-nowrap font-36"><text class="iconfont icon-cup mr5"></text>{{info.biz.title}}</view>
<view class="absolute right-0 box-middle mr50 font-36">{{info.biz.value}}</view>
</view>
<view class="inner30 pt10 bg-1c349c bds-5-679af5 box-shadow-000-50 ulib-rb20">
<view>
<view class="mt20 inner30 relative bg-3349a6 pr150 ulib-r10" bindtap="pushLink" data-url="">
<view class="text-nowrap font-28 color-fff"><text class="iconfont icon-cup mr10"></text>厦门直营店</view>
<view class="absolute right-0 box-middle mr30 font-28 color-fff">120分</view>
</view>
<view class="mt20 inner30 relative bg-3349a6 pr150 ulib-r10" bindtap="pushLink" data-url="">
<view class="text-nowrap font-28 color-fff"><text class="pl10 mr10">2</text>厦门直营店</view>
<view class="absolute right-0 box-middle mr30 font-28 color-fff">120分</view>
</view>
<view class="mt20 inner30 relative bg-3349a6 pr150 ulib-r10" bindtap="pushLink" data-url="">
<view class="text-nowrap font-28 color-fff"><text class="pl10 mr10">3</text>厦门直营店</view>
<view class="absolute right-0 box-middle mr30 font-28 color-fff">120分</view>
</view>
<block wx:for='{{info.ranking}}' wx:key='index'>
<view class="mt20 inner30 relative bg-3349a6 pr150 ulib-r10">
<view class="text-nowrap font-28 color-fff">
<text class="iconfont icon-cup mr10" wx:if="{{item.num==1}}"></text>
<text class="pl10 mr10" wx:else>{{item.num}}</text>
<text>{{item.biz_name}}</text>
</view>
<view class="absolute right-0 box-middle mr30 font-28 color-fff">{{item.score}}</view>
</view>
</block>
</view>
</view>
<view class="pt30 pb30 text-center font-28 color-fff" bindtap="optShowRule">积分规则></view>
@@ -26,10 +24,9 @@
<!--积分规则-->
<lcb-msg isShow="{{isShowRule}}">
<view slot="content">
<view class="pt50 text-center font-36">积分规则</view>
<view class="pt50 text-center font-36">{{info.rule.title}}</view>
<view class="pt10 pl40 pr40 pb50 line-height-16 text-center font-28 color-666">
<view class="mt10">邀请一个人进入活动页面 浏览1分</view>
<view class="mt10">邀请一个人进入活动页面报名10分</view>
<text>{{info.rule.value}}</text>
</view>
<view class="bts-1-eb text-center font-32 color-666">
<view class="pt25 pb25 color-000e65" bindtap="optShowRule">知道了</view>
+35 -14
View File
@@ -16,6 +16,7 @@ Page({
current: 0
},
swiperCurrent: 0,
list: [],
},
//生命周期函数--监听页面加载
@@ -27,28 +28,47 @@ Page({
})
}
this.getMaterialBiz()
this.getAppSytactivityTabs()
this.getAppSytactivityList()
},
//cms详细信息
getMaterialBiz() {
let res = {"code":200,"data":{"user":{"uid":"258","nickname":"老叶","headimg":"https:\/\/thirdwx.qlogo.cn\/mmopen\/vi_32\/Q0j4TwGTfTKe4jENRCNiaqeuxLBdzUCk2BSc3rPC4qABoZicHrrjEjg2ffYA0qeOr93mNcdcxqL2Hibib0Ou35PpZA\/132"},"card":{"id":"3","title":"星选卡","remark":"特权福利享不停","icon":"http:\/\/qs.haodian.cn\/wechat_app\/xingxuanka\/mine\/icon_card-200824.png","cover":"https:\/\/qimg.haodian.cn\/hdi\/2020\/08\/7cc1dbdfc8c028d7\/eed56196042b324d.png","card_id":3},"tip":"会员装修一站式,1对1的消费顾问服务","account":[{"title":"余额","value":"¥0"},{"title":"红包","value":"¥0"},{"title":"额度","value":"最高30万元"}],"icons":[{"id":0,"title":"免费设计","icon":"https:\/\/qs.haodian.cn\/wechat_app\/xingxuanka\/card\/design.png?v=20082615","type":"topic","url":"\/pages\/specialtopic\/mianfeisheji\/index"},{"id":0,"title":"专属顾问","icon":"https:\/\/qs.haodian.cn\/wechat_app\/xingxuanka\/card\/service.png?v=20082615","type":"alert","url":""},{"id":"8","title":"红包权益","icon":"https:\/\/qimg.haodian.cn\/hdi\/2020\/08\/ed48eaab121b8a97\/b48176ea164897ce.png?width=92","type":"right","url":""},{"id":"9","title":"免费量尺","icon":"https:\/\/qimg.haodian.cn\/hdi\/2020\/08\/5d7742c70015717b\/9c0054f73f6a86cf.png?width=92","type":"right","url":""},{"id":"10","title":"媒体监督","icon":"https:\/\/qimg.haodian.cn\/hdi\/2020\/08\/aa63ecd669541f24\/80459c732704caf5.png?width=92","type":"right","url":""},{"id":"11","title":"质保服务","icon":"https:\/\/qimg.haodian.cn\/hdi\/2020\/08\/582e30122b596474\/3e4a8f613c8e38f0.png?width=92","type":"right","url":""},{"id":"12","title":"无忧退款","icon":"https:\/\/qimg.haodian.cn\/hdi\/2020\/08\/55b679a040e8922c\/0a4f057fedf475f9.png?width=92","type":"right","url":""}],"body":{"title":"建材礼金","remark":"不定时福利放送,随购随用","gift":{"id":"7","price":0,"title":"内含超5000元建材抵用券","have":1}}},"msg":""}
//私域通_tab
getAppSytactivityTabs(){
_.apiQuery.getAppSytactivityTabs().then(res => {
this.setData({
bg_img:res.data.bg_img,
menus:res.data.menus,
})
wx.setNavigationBarTitle({
title:res.data.title,
})
wx.stopPullDownRefresh()
});
},
this.setData({
icons: this.getIconByGroup(res.data.icons),
})
//活动列表
getAppSytactivityList(){
let params = {};
params['page'] = 1;
params['size'] = 100;
_.apiQuery.getAppSytactivityList(params).then(res => {
this.setData({
list: this.getIconByGroup(res.data.list),
})
wx.stopPullDownRefresh()
});
},
//数据分组
getIconByGroup(icons) {
getIconByGroup(list) {
let arr = []
if (icons.length > 3) {
for (var i = 0; i < icons.length; i += 3) {
arr.push(icons.slice(i, i + 3));
if (list.length > 3) {
for (var i = 0; i < list.length; i += 3) {
arr.push(list.slice(i, i + 3));
}
} else {
arr.push(icons)
arr.push(list)
}
return arr
},
@@ -81,9 +101,10 @@ Page({
current: 0
},
swiperCurrent: 0,
icons: [],
list: [],
})
this.getMaterialBiz()
this.getAppSytactivityTabs()
this.getAppSytactivityList()
},
})
+13 -19
View File
@@ -1,19 +1,13 @@
<view class="container img-top-cover" style="background-image:url({{imgUrl}}siyutong/theme.jpg);">
<view class="container img-top-cover" style="background-image:url({{bg_img}});">
<view class="relative" style="height:580rpx;"></view>
<view class="pl30 pr30 pb30">
<view class="ulib-rt20 inner20 tt-ac text-center fn-flex">
<view class="fn-flex-item">
<view class="font-40 color-f9394d">50.32w</view>
<view class="font-28">报名</view>
</view>
<view class="fn-flex-item">
<view class="font-40 color-f9394d">50.32w</view>
<view class="font-28">报名</view>
</view>
<view class="fn-flex-item">
<view class="font-40 color-f9394d">50.32w</view>
<view class="font-28">报名</view>
</view>
<block wx:for='{{menus}}' wx:key='index'>
<view class="fn-flex-item">
<view class="font-40 color-f9394d">{{item.value}}</view>
<view class="font-28">{{item.title}}</view>
</view>
</block>
</view>
<view class="inner30 bg-1c349c bds-5-679af5 box-shadow-000-50 ulib-rb20">
<view class="mt10 text-center"><image style="width:400rpx;height:40rpx;" lazy-load="{{true}}" mode="aspectFill" src="{{imgUrl}}siyutong/ac-tt-1.png"></image></view>
@@ -23,13 +17,13 @@
interval="{{swiperOptions.interval}}" duration="{{swiperOptions.duration}}"
display-multiple-items="{{swiperOptions.items}}" circular="{{swiperOptions.circular}}"
bindchange="swiperChange">
<block wx:for="{{icons}}" wx:key="index">
<block wx:for="{{list}}" wx:key="index">
<swiper-item>
<block wx:for="{{item}}" wx:for-item="it" wx:key="index">
<view class="mt20 inner30 relative bg-3349a6 pr150 ulib-r10" bindtap="pushLink" data-url="">
<view class="text-nowrap font-32 color-fff">东风EX1特约直播!东风EX1特约直播!东风EX1特约直播!东风EX1特约直播!</view>
<view class="mt20 inner30 relative bg-3349a6 pr150 ulib-r10" bindtap="pushLink" data-url="/pages/siyutong/activityDetail/index?id={{it.id}}">
<view class="text-nowrap font-32 color-fff">{{it.title}}</view>
<view class="absolute right-0 box-middle mr20">
<text class="inline-block bg-ffa73d-ff7a28 pl10 pr10 text-middle font-20 color-fff ulib-r750">进行中</text>
<text class="inline-block pl10 pr10 text-middle font-20 color-fff ulib-r750" style="background-color:{{it.color}};" >{{it.type_name}}</text>
<i class="iconfont icon-gengduo text-middle font-32 color-fff"></i>
</view>
</view>
@@ -37,8 +31,8 @@
</swiper-item>
</block>
</swiper>
<view class="dots mt20" wx:if="{{icons.length>1}}">
<block wx:for="{{icons}}" wx:key="unique">
<view class="dots mt20" wx:if="{{list.length>1}}">
<block wx:for="{{list}}" wx:key="unique">
<view class="dot{{index == swiperCurrent ? ' active' : ''}}"></view>
</block>
</view>