Commit d5895e04 by 谢中龙

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

parent 45317ec1
......@@ -112,6 +112,7 @@ App({
systemInfo: wx.getSystemInfoSync(),
ctx: envInfo.ctx,
openCard: false,
appId: 'wxc3b64b09b1d3dfc2',
userNo: null,
storeId: '',
storeName: '',
......
......@@ -31,6 +31,17 @@
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 {
width: 100%;
......
......@@ -39,7 +39,7 @@
"list": []
},
"miniprogram": {
"current": 51,
"current": 54,
"list": [
{
"id": -1,
......@@ -401,10 +401,10 @@
"query": ""
},
{
"id": 55,
"id": 54,
"name": "会员详情",
"pathName": "shoppingGuid/page/pages/userInfo/userInfo",
"query": ""
"query": "id=700000000013480"
},
{
"id": -1,
......
// shoppingGuid/page/pages/selectUsers/selectUsers.js
const wxService = require('../../../../utils/wxService')
import { Integer } from '../../../../utils/integerDigitalConvertion'
wxService.page({
/**
......@@ -10,7 +11,14 @@ wxService.page({
current: 1,
isOpen : false,
groups : [],
tags : []
tags : [],
noTag : false,
noMoreData : true,
pagination : {
pageSize : 10,
pageNum : 1,
totalPage : 0
}
},
/**
......@@ -36,9 +44,11 @@ wxService.page({
},
//跳转到标签下用户列表
onTapToTagUserList(e){
let id = 11;
let item = e.currentTarget.dataset.item;
let tagId = item.id , groupId = item.groupId , type = item.type;
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 切换
......@@ -55,22 +65,76 @@ wxService.page({
navBar: this.data.navBar,
current: this.data.current
});
this.getMemberTagGroups();
},
//获取标签分组
getMemberTagGroups(){
this.data.groups = [];
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 : [];
groups.forEach(item => {
item.isActive = false;
});
this.data.groups = groups;
if (this.data.groups.length > 0){
//选中第一个
this.data.groups[0].isActive = true;
//获取分组的标签
this.getTagsList();
}
this.setData({
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({
* 页面上拉触底事件的处理函数
*/
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-->
<view class='top-tags'>
<view class='search-box'>
<!-- <view class='search-box'>
<view class='search'>
<image src='/assets/imgs/shoppingGuide/search.png' mode='aspectFit'></image>
<input maxlength='20' placeholder='请输入标签名称搜索'></input>
</view>
</view>
</view> -->
<!-- tags -->
<view class='tags-types'>
<view class='tag-items {{item.isActive ? "active" : ""}}'
......@@ -25,6 +25,7 @@
wx:for="{{groups}}"
wx:key="groups"
wx:for-index="idx"
bindtap='onTapSelectGroup'
data-index="{{idx}}"
data-item="{{item}}"
wx:if="{{idx < 3}}"
......@@ -35,11 +36,14 @@
</view>
</view>
<!-- -->
<!-- class='hover-items {{item.isActive ? "active" : ""}}' -->
<!-- 浮层 -->
<view class='tag-hover {{isOpen ? "show" : ""}}'>
<view class='hover-items {{item.isActive ? "active" : ""}}'
<view
class='hover-items {{item.isActive ? "active" : ""}}'
wx:for="{{groups}}"
wx:key="allGroups"
bindtap='onTapSelectGroup'
wx:for-index="idx"
data-index="{{idx}}"
data-item="{{item}}"
......@@ -47,56 +51,31 @@
</view>
<!-- 具体的数据 -->
<view class='list'>
<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'>
<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='list-item'
wx:for="{{tags}}"
wx:key="tags"
wx:for-index="idx"
data-index="{{idx}}"
data-item="{{item}}"
wx:for-item="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>
<label>{{item.name}}</label>
<view><text>{{item.memberCount}}</text>人</view>
</view>
<view class='info-desc'>
<label>注册未消费会员</label>
<label>{{item.desc}}</label>
</view>
</view>
</view>
<!-- empty -->
<!-- <view class='empty' wx:if="{{noTag}}">暂无数据~</view> -->
<!-- 沒有更多數據啦 -->
<view class='no-more-data' wx:if="{{!noMoreData}}">--- 到底啦 ---</view>
</view>
/* shoppingGuid/page/pages/selectUsers/selectUsers.wxss */
page{
background: #f2f2f2;
padding-top: 300rpx;
padding-top: 196rpx;
box-sizing: border-box;
-webkit-box-sizing: border-box;
font-size: 28rpx;
......@@ -99,6 +99,7 @@ view{
display: flex;
align-items: center;
justify-content: center;
font-size: 28rpx;
}
.tags .flex .lf{
......@@ -133,7 +134,7 @@ view{
width: 100%;
max-height: 400rpx;
background: #ffffff;
top: 298rpx;
top: 190rpx;
border-top: solid 2rpx #ddd;
border-bottom: solid 2rpx #ddd;
transition: all 0.3s;
......@@ -162,7 +163,7 @@ view{
margin-bottom: 20rpx;
}
.tag-hover .hover-items.avtive{
.tag-hover .hover-items.active{
color: #0091FF ;
background-color: rgba(0, 145, 255, 0.1);
}
......
// shoppingGuid/page/pages/userList/userList.js
const app = getApp()
const wxService = require('../../../../utils/wxService')
import { Integer } from '../../../../utils/integerDigitalConvertion'
wxService.page({
/**
* 页面的初始数据
*/
data: {
list : [],
pageSize: 10,
pageNo: 1,
totalPages: 0
name : '',
},
/**
* 生命周期函数--监听页面加载
*/
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;
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
this.setData({
name : name
});
this.getMemberList(tagId, groupId, type);
},
......@@ -31,48 +32,40 @@ wxService.page({
* 生命周期函数--监听页面显示
*/
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({
title: '加载中'
})
const query = {
// pageSize,
// pageNo,
});
let query = {
tagId,
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) {
const { result, data } = res.data
if (result == 0) {
wx.hideLoading()
data.content.forEach(item=>{
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.data.list = data;
this.setData({
list: pageNo == 1? [...data.content]: [...this.data.list,...data.content],
totalPages: data.totalPages
})
list: this.data.list,
});
}
}
})
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
//跳转到会员详情
onTapToMemberInfo(e){
let item = e.currentTarget.dataset.item;
wx.navigateTo({
url: '/shoppingGuid/page/pages/userInfo/userInfo?id=' + item.id,
});
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
//回访
onTapRecall(e){
let item = e.currentTarget.dataset.item;
},
/**
......@@ -86,14 +79,7 @@ wxService.page({
* 页面上拉触底事件的处理函数
*/
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 @@
<view class='tag-name'>
<image src='/assets/imgs/shoppingGuide/kpi_task_name.png' mode='widthFix' />
<label>标签名称</label>
<view class='tag'>7天内新消费2次</view>
<view class='tag'>{{name}}</view>
</view>
<!-- 列表 -->
<view class='list' wx:if="{{list.length}}">
<block wx:for="{{list}}" wx:key="{{index}}" wx:for-item="item">
<view class='item' bindtap='onTapToMemberInfo'>
<view class='u-info'>
<view class='item'>
<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' />
<text>139xxxx2453</text>
<text>{{item.name}}</text>
</view>
<view class='item-btn'>立即回访</view>
<view class='item-btn' data-item="{{item}}" bindtap='onTapRecall'>立即回访</view>
</view>
</block>
</view>
<view class="no-list" wx:else>暂无榜单</view>
<!-- empty -->
<view class='empty' wx:else>数据加载中..</view>
// shoppingGuid/page/pages/welfare/welfare.js
const wxService = require('../../../../utils/wxService')
import { Integer } from '../../../../utils/integerDigitalConvertion'
var app = getApp()
wxService.page({
/**
......@@ -101,10 +103,54 @@ wxService.page({
//立即推荐商品给用户
onTapToRecommandProduct(e){
let item = e.currentTarget.dataset.item;
let id = item.id;
// wx.navigateTo({
// url: '/shoppingGuid/page/pages/selectUsers/selectUsers?id=' + id + '&type=product',
// 生成触点对象
let content = {
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(){
......
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