Commit d5895e04 by 谢中龙

标签列表,会员列表,会员详情

parent 45317ec1
...@@ -112,6 +112,7 @@ App({ ...@@ -112,6 +112,7 @@ App({
systemInfo: wx.getSystemInfoSync(), systemInfo: wx.getSystemInfoSync(),
ctx: envInfo.ctx, ctx: envInfo.ctx,
openCard: false, openCard: false,
appId: 'wxc3b64b09b1d3dfc2',
userNo: null, userNo: null,
storeId: '', storeId: '',
storeName: '', storeName: '',
......
...@@ -31,6 +31,17 @@ ...@@ -31,6 +31,17 @@
font-size: 24rpx; font-size: 24rpx;
} }
.no-more-data{
width: 100%;
height: auto;
padding: 20rpx 0;
display: flex;
color: #999999;
justify-content: center;
align-items: center;
font-size: 24rpx;
}
/* 按钮样式 */ /* 按钮样式 */
.btn { .btn {
width: 100%; width: 100%;
......
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
"list": [] "list": []
}, },
"miniprogram": { "miniprogram": {
"current": 51, "current": 54,
"list": [ "list": [
{ {
"id": -1, "id": -1,
...@@ -401,10 +401,10 @@ ...@@ -401,10 +401,10 @@
"query": "" "query": ""
}, },
{ {
"id": 55, "id": 54,
"name": "会员详情", "name": "会员详情",
"pathName": "shoppingGuid/page/pages/userInfo/userInfo", "pathName": "shoppingGuid/page/pages/userInfo/userInfo",
"query": "" "query": "id=700000000013480"
}, },
{ {
"id": -1, "id": -1,
......
// shoppingGuid/page/pages/selectUsers/selectUsers.js // shoppingGuid/page/pages/selectUsers/selectUsers.js
const wxService = require('../../../../utils/wxService') const wxService = require('../../../../utils/wxService')
import { Integer } from '../../../../utils/integerDigitalConvertion'
wxService.page({ wxService.page({
/** /**
...@@ -10,7 +11,14 @@ wxService.page({ ...@@ -10,7 +11,14 @@ wxService.page({
current: 1, current: 1,
isOpen : false, isOpen : false,
groups : [], groups : [],
tags : [] tags : [],
noTag : false,
noMoreData : true,
pagination : {
pageSize : 10,
pageNum : 1,
totalPage : 0
}
}, },
/** /**
...@@ -36,9 +44,11 @@ wxService.page({ ...@@ -36,9 +44,11 @@ wxService.page({
}, },
//跳转到标签下用户列表 //跳转到标签下用户列表
onTapToTagUserList(e){ onTapToTagUserList(e){
let id = 11; let item = e.currentTarget.dataset.item;
let tagId = item.id , groupId = item.groupId , type = item.type;
wx.navigateTo({ wx.navigateTo({
url: '/shoppingGuid/page/pages/userList/userList?id=' + id, url: '/shoppingGuid/page/pages/userList/userList?id=' + Integer.digit(tagId, 10, 64) + '&type=' + type +
'&groupId=' + Integer.digit(groupId, 10, 64) + '&name=' + item.name,
}); });
}, },
//tab 切换 //tab 切换
...@@ -55,22 +65,76 @@ wxService.page({ ...@@ -55,22 +65,76 @@ wxService.page({
navBar: this.data.navBar, navBar: this.data.navBar,
current: this.data.current current: this.data.current
}); });
this.getMemberTagGroups();
}, },
//获取标签分组 //获取标签分组
getMemberTagGroups(){ getMemberTagGroups(){
this.data.groups = [];
wxService.post(`/marketing/memberTagGroup/findPage?pageSize=10000&pageNo=1&type=${this.data.current}`).then(res => { wxService.post(`/marketing/memberTagGroup/findPage?pageSize=10000&pageNo=1&type=${this.data.current}`).then(res => {
console.log(res)
let groups = res.data.data.content ? res.data.data.content : []; let groups = res.data.data.content ? res.data.data.content : [];
groups.forEach(item => { groups.forEach(item => {
item.isActive = false; item.isActive = false;
}); });
this.data.groups = groups; this.data.groups = groups;
if (this.data.groups.length > 0){
//选中第一个
this.data.groups[0].isActive = true;
//获取分组的标签
this.getTagsList();
}
this.setData({ this.setData({
groups: this.data.groups groups: this.data.groups
}); });
}); });
}, },
//获取分组下的标签列表
getTagsList(){
wx.showLoading({
title: '加载中',
mask: true
});
let groupId = this.data.groups.filter(item => item.isActive)[0].id;
this.data.tags = [];
let pageSize = this.data.pagination.pageSize,
pageNum = this.data.pagination.pageNum;
wxService.post(`/marketing/shoppingguide/findPage?pageSize=${pageSize}&pageNo=${pageNum}`,{
groupId: groupId,
type : this.data.current
}).then(res => {
let list = res.data.data.content ? res.data.data.content : [];
this.data.tags = this.data.tags.concat(list);
this.data.pagination.totalPage = res.data.data.totalPages;
if (this.data.tags.length == 0){
this.data.noTag = true;
}
this.setData({
tags: this.data.tags,
noTag: this.data.noTag,
pagination: this.data.pagination,
noMoreData: true
},() => {
wx.hideLoading();
});
});
},
//选择group
onTapSelectGroup(e){
let index = e.currentTarget.dataset.index ,
item = e.currentTarget.dataset.item;
this.data.groups.forEach(item => {
item.isActive = false;
});
this.data.groups[index].isActive = true;
this.setData({
groups: this.data.groups,
isOpen : false,
});
this.getTagsList();
},
/** /**
* 页面相关事件处理函数--监听用户下拉动作 * 页面相关事件处理函数--监听用户下拉动作
...@@ -83,6 +147,17 @@ wxService.page({ ...@@ -83,6 +147,17 @@ wxService.page({
* 页面上拉触底事件的处理函数 * 页面上拉触底事件的处理函数
*/ */
onReachBottom: function () { onReachBottom: function () {
if(this.data.pagination.pageNum < this.data.pagination.totalPage){
this.data.pageNum ++;
this.getTagsList();
this.setData({
noMoreData: true
});
}
else{
this.setData({
noMoreData : false
});
}
}, },
}); });
\ No newline at end of file
<!--shoppingGuid/page/pages/selectUsers/selectUsers.wxml--> <!--shoppingGuid/page/pages/selectUsers/selectUsers.wxml-->
<view class='top-tags'> <view class='top-tags'>
<view class='search-box'> <!-- <view class='search-box'>
<view class='search'> <view class='search'>
<image src='/assets/imgs/shoppingGuide/search.png' mode='aspectFit'></image> <image src='/assets/imgs/shoppingGuide/search.png' mode='aspectFit'></image>
<input maxlength='20' placeholder='请输入标签名称搜索'></input> <input maxlength='20' placeholder='请输入标签名称搜索'></input>
</view> </view>
</view> </view> -->
<!-- tags --> <!-- tags -->
<view class='tags-types'> <view class='tags-types'>
<view class='tag-items {{item.isActive ? "active" : ""}}' <view class='tag-items {{item.isActive ? "active" : ""}}'
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
wx:for="{{groups}}" wx:for="{{groups}}"
wx:key="groups" wx:key="groups"
wx:for-index="idx" wx:for-index="idx"
bindtap='onTapSelectGroup'
data-index="{{idx}}" data-index="{{idx}}"
data-item="{{item}}" data-item="{{item}}"
wx:if="{{idx < 3}}" wx:if="{{idx < 3}}"
...@@ -35,11 +36,14 @@ ...@@ -35,11 +36,14 @@
</view> </view>
</view> </view>
<!-- --> <!-- -->
<!-- class='hover-items {{item.isActive ? "active" : ""}}' -->
<!-- 浮层 --> <!-- 浮层 -->
<view class='tag-hover {{isOpen ? "show" : ""}}'> <view class='tag-hover {{isOpen ? "show" : ""}}'>
<view class='hover-items {{item.isActive ? "active" : ""}}' <view
class='hover-items {{item.isActive ? "active" : ""}}'
wx:for="{{groups}}" wx:for="{{groups}}"
wx:key="allGroups" wx:key="allGroups"
bindtap='onTapSelectGroup'
wx:for-index="idx" wx:for-index="idx"
data-index="{{idx}}" data-index="{{idx}}"
data-item="{{item}}" data-item="{{item}}"
...@@ -47,56 +51,31 @@ ...@@ -47,56 +51,31 @@
</view> </view>
<!-- 具体的数据 --> <!-- 具体的数据 -->
<view class='list'> <view class='list'>
<view class='list-item' bindtap='onTapToTagUserList'> <view class='list-item'
<view class='lf-icon'> wx:for="{{tags}}"
<image src='/assets/imgs/shoppingGuide/icon_tag.png' mode='aspectFit'></image> wx:key="tags"
</view> wx:for-index="idx"
<view class='rg-info'> data-index="{{idx}}"
<view class='info-top'> data-item="{{item}}"
<label>新会员</label> wx:for-item="item"
<view> bindtap='onTapToTagUserList'>
<text>7</text>人
</view>
</view>
<view class='info-desc'>
<label>注册未消费会员</label>
</view>
</view>
</view>
<view class='list-item' bindtap='onTapToTagUserList'>
<view class='lf-icon'>
<image src='/assets/imgs/shoppingGuide/icon_tag.png' mode='aspectFit'></image>
</view>
<view class='rg-info'>
<view class='info-top'>
<label>新会员</label>
<view>
<text>7</text>人
</view>
</view>
<view class='info-desc'>
<label>注册未消费会员</label>
</view>
</view>
</view>
<view class='list-item' bindtap='onTapToTagUserList'>
<view class='lf-icon'> <view class='lf-icon'>
<image src='/assets/imgs/shoppingGuide/icon_tag.png' mode='aspectFit'></image> <image src='/assets/imgs/shoppingGuide/icon_tag.png' mode='aspectFit'></image>
</view> </view>
<view class='rg-info'> <view class='rg-info'>
<view class='info-top'> <view class='info-top'>
<label>新会员</label> <label>{{item.name}}</label>
<view> <view><text>{{item.memberCount}}</text>人</view>
<text>7</text>人
</view>
</view> </view>
<view class='info-desc'> <view class='info-desc'>
<label>注册未消费会员</label> <label>{{item.desc}}</label>
</view> </view>
</view> </view>
</view> </view>
<!-- empty -->
<!-- <view class='empty' wx:if="{{noTag}}">暂无数据~</view> -->
<!-- 沒有更多數據啦 -->
<view class='no-more-data' wx:if="{{!noMoreData}}">--- 到底啦 ---</view>
</view> </view>
/* shoppingGuid/page/pages/selectUsers/selectUsers.wxss */ /* shoppingGuid/page/pages/selectUsers/selectUsers.wxss */
page{ page{
background: #f2f2f2; background: #f2f2f2;
padding-top: 300rpx; padding-top: 196rpx;
box-sizing: border-box; box-sizing: border-box;
-webkit-box-sizing: border-box; -webkit-box-sizing: border-box;
font-size: 28rpx; font-size: 28rpx;
...@@ -99,6 +99,7 @@ view{ ...@@ -99,6 +99,7 @@ view{
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
font-size: 28rpx;
} }
.tags .flex .lf{ .tags .flex .lf{
...@@ -133,7 +134,7 @@ view{ ...@@ -133,7 +134,7 @@ view{
width: 100%; width: 100%;
max-height: 400rpx; max-height: 400rpx;
background: #ffffff; background: #ffffff;
top: 298rpx; top: 190rpx;
border-top: solid 2rpx #ddd; border-top: solid 2rpx #ddd;
border-bottom: solid 2rpx #ddd; border-bottom: solid 2rpx #ddd;
transition: all 0.3s; transition: all 0.3s;
...@@ -162,7 +163,7 @@ view{ ...@@ -162,7 +163,7 @@ view{
margin-bottom: 20rpx; margin-bottom: 20rpx;
} }
.tag-hover .hover-items.avtive{ .tag-hover .hover-items.active{
color: #0091FF ; color: #0091FF ;
background-color: rgba(0, 145, 255, 0.1); background-color: rgba(0, 145, 255, 0.1);
} }
......
// shoppingGuid/page/pages/userList/userList.js // shoppingGuid/page/pages/userList/userList.js
const app = getApp() const app = getApp()
const wxService = require('../../../../utils/wxService') const wxService = require('../../../../utils/wxService')
import { Integer } from '../../../../utils/integerDigitalConvertion'
wxService.page({ wxService.page({
/** /**
* 页面的初始数据 * 页面的初始数据
*/ */
data: { data: {
list : [], list : [],
pageSize: 10, name : '',
pageNo: 1,
totalPages: 0
}, },
/** /**
* 生命周期函数--监听页面加载 * 生命周期函数--监听页面加载
*/ */
onLoad: function (options) { onLoad: function (options) {
console.log(options)
let tagId = Integer.digit(options.id,64,10),
groupId = Integer.digit(options.groupId, 64, 10),
type = options.type,
name = options.name;
}, this.setData({
name : name
/** });
* 生命周期函数--监听页面初次渲染完成 this.getMemberList(tagId, groupId, type);
*/
onReady: function () {
}, },
...@@ -31,48 +32,40 @@ wxService.page({ ...@@ -31,48 +32,40 @@ wxService.page({
* 生命周期函数--监听页面显示 * 生命周期函数--监听页面显示
*/ */
onShow: function () { onShow: function () {
const {pageSize, pageNo,current} = this.data
this.getTaskPage(pageSize, pageNo,current)
}, },
getTaskPage(pageSize, pageNo,current) { // 1 销售任务 2 招募任务 // 获取标签下会员
getMemberList(tagId, groupId, type){
wx.showLoading({ wx.showLoading({
title: '加载中' title: '加载中'
}) });
const query = { let query = {
// pageSize, tagId,
// pageNo, groupId,
type
} }
wxService.post(`/marketing/shoppingguide/tag/member?pageSize=${pageSize}&pageNo=${pageNo}`,query).then(res => { wxService.post(`/marketing/shoppingguide/tag/member`, query).then(res => {
if (res) { if (res) {
const { result, data } = res.data const { result, data } = res.data
if (result == 0) { if (result == 0) {
wx.hideLoading() wx.hideLoading()
data.content.forEach(item=>{ this.data.list = data;
let curStart = new Date(item.task.startTime)
let curEnd = new Date(item.task.endTime)
item.task.startTime = `${curStart.getMonth()}${curStart.getDay()}日`
item.task.endTime = `${curEnd.getMonth()}${curEnd.getDay()}日`
})
this.setData({ this.setData({
list: pageNo == 1? [...data.content]: [...this.data.list,...data.content], list: this.data.list,
totalPages: data.totalPages });
})
} }
} }
}) })
}, },
/** //跳转到会员详情
* 生命周期函数--监听页面隐藏 onTapToMemberInfo(e){
*/ let item = e.currentTarget.dataset.item;
onHide: function () { wx.navigateTo({
url: '/shoppingGuid/page/pages/userInfo/userInfo?id=' + item.id,
});
}, },
//回访
/** onTapRecall(e){
* 生命周期函数--监听页面卸载 let item = e.currentTarget.dataset.item;
*/
onUnload: function () {
}, },
/** /**
...@@ -86,14 +79,7 @@ wxService.page({ ...@@ -86,14 +79,7 @@ wxService.page({
* 页面上拉触底事件的处理函数 * 页面上拉触底事件的处理函数
*/ */
onReachBottom: function () { onReachBottom: function () {
if(pageNo < totalPages) {
this.setData({
pageNo: this.data.pageNo + 1,
},()=>{
const {pageSize, pageNo,current} = this.data
this.getTaskPage(pageSize, pageNo,current)
})
}
}, },
/** /**
......
...@@ -2,20 +2,22 @@ ...@@ -2,20 +2,22 @@
<view class='tag-name'> <view class='tag-name'>
<image src='/assets/imgs/shoppingGuide/kpi_task_name.png' mode='widthFix' /> <image src='/assets/imgs/shoppingGuide/kpi_task_name.png' mode='widthFix' />
<label>标签名称</label> <label>标签名称</label>
<view class='tag'>7天内新消费2次</view> <view class='tag'>{{name}}</view>
</view> </view>
<!-- 列表 --> <!-- 列表 -->
<view class='list' wx:if="{{list.length}}"> <view class='list' wx:if="{{list.length}}">
<block wx:for="{{list}}" wx:key="{{index}}" wx:for-item="item"> <block wx:for="{{list}}" wx:key="{{index}}" wx:for-item="item">
<view class='item' bindtap='onTapToMemberInfo'> <view class='item'>
<view class='u-info'> <view class='u-info' data-item="{{item}}" bindtap='onTapToMemberInfo'>
<image src='https://bigaka-xie.oss-cn-shanghai.aliyuncs.com/biaka_default_u_logo.png' mode='aspectFit' /> <image src='https://bigaka-xie.oss-cn-shanghai.aliyuncs.com/biaka_default_u_logo.png' mode='aspectFit' />
<text>139xxxx2453</text> <text>{{item.name}}</text>
</view> </view>
<view class='item-btn'>立即回访</view> <view class='item-btn' data-item="{{item}}" bindtap='onTapRecall'>立即回访</view>
</view> </view>
</block> </block>
</view> </view>
<view class="no-list" wx:else>暂无榜单</view> <!-- empty -->
<view class='empty' wx:else>数据加载中..</view>
// shoppingGuid/page/pages/welfare/welfare.js // shoppingGuid/page/pages/welfare/welfare.js
const wxService = require('../../../../utils/wxService') const wxService = require('../../../../utils/wxService')
import { Integer } from '../../../../utils/integerDigitalConvertion'
var app = getApp()
wxService.page({ wxService.page({
/** /**
...@@ -101,10 +103,54 @@ wxService.page({ ...@@ -101,10 +103,54 @@ wxService.page({
//立即推荐商品给用户 //立即推荐商品给用户
onTapToRecommandProduct(e){ onTapToRecommandProduct(e){
let item = e.currentTarget.dataset.item; let item = e.currentTarget.dataset.item;
let id = item.id; // 生成触点对象
// wx.navigateTo({ let content = {
// url: '/shoppingGuid/page/pages/selectUsers/selectUsers?id=' + id + '&type=product', title: item.productName,
id: item.productId,
url: item.productImgUrl
}
let tentacleInfo = {
content: JSON.stringify(content),
contentId: item.productId,
contentType: app.globalData.contants.SHARE_TYPE.PRODUCT_DETAIL, //内容类型
title: item.productName, //标题
type: 3// 1:门店,2:员工(暂时不做),3:会员,4:第三方外部渠道,5:智能营销
}
// wxService.getTentacleContent(tentacleInfo).then(res => {
// if (res && res.id) {
// let tentacleId = res.id;
// let inner_id = Integer.digit(item.productId, 10, 64);
// let inner_tentacleId = Integer.digit(tentacleId, 10, 64);
// var path = 'pages/productDetail/productDetail' + '?i=' + inner_id + '&t=' + inner_tentacleId;
// //打开企业微信通讯录选择会员
// this.openQyContact(item,path);
// }
// }); // });
// 先不管触点 测试调用企业微信接口
let inner_id = Integer.digit(item.productId, 10, 64);
var path = 'pages/productDetail/productDetail' + '?i=' + inner_id;
this.openQyContact(item, path);
},
//打開企業微信通訊錄
openQyContact(item,path){
//选择企业通讯录中的数据
wx.qy.shareToExternalContact({
appid: app.globalData.appId,//小程序的appid
title: item.productName, //小程序消息的title
imgUrl: item.productImgUrl,//小程序消息的封面图
page: path, //小程序消息打开后的路径
success: function (res) {
//todo:
},
fail: function (err) {
console.log('error---------------', err);
}
});
}, },
//去商城 //去商城
onTapToMall(){ onTapToMall(){
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment