Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
7
7-Eleven
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
高淑倩
7-Eleven
Commits
d5895e04
Commit
d5895e04
authored
Oct 23, 2019
by
谢中龙
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
标签列表,会员列表,会员详情
parent
45317ec1
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
618 additions
and
272 deletions
+618
-272
app.js
src/app.js
+1
-0
app.wxss
src/app.wxss
+11
-0
project.config.json
src/project.config.json
+3
-3
selectUsers.js
src/shoppingGuid/page/pages/selectUsers/selectUsers.js
+81
-5
selectUsers.wxml
src/shoppingGuid/page/pages/selectUsers/selectUsers.wxml
+22
-43
selectUsers.wxss
src/shoppingGuid/page/pages/selectUsers/selectUsers.wxss
+4
-3
userInfo.js
src/shoppingGuid/page/pages/userInfo/userInfo.js
+329
-23
userInfo.wxml
src/shoppingGuid/page/pages/userInfo/userInfo.wxml
+77
-139
userList.js
src/shoppingGuid/page/pages/userList/userList.js
+33
-47
userList.wxml
src/shoppingGuid/page/pages/userList/userList.wxml
+8
-6
welfare.js
src/shoppingGuid/page/pages/welfare/welfare.js
+49
-3
No files found.
src/app.js
View file @
d5895e04
...
...
@@ -112,6 +112,7 @@ App({
systemInfo
:
wx
.
getSystemInfoSync
(),
ctx
:
envInfo
.
ctx
,
openCard
:
false
,
appId
:
'wxc3b64b09b1d3dfc2'
,
userNo
:
null
,
storeId
:
''
,
storeName
:
''
,
...
...
src/app.wxss
View file @
d5895e04
...
...
@@ -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%;
...
...
src/project.config.json
View file @
d5895e04
...
...
@@ -39,7 +39,7 @@
"list"
:
[]
},
"miniprogram"
:
{
"current"
:
5
1
,
"current"
:
5
4
,
"list"
:
[
{
"id"
:
-1
,
...
...
@@ -401,10 +401,10 @@
"query"
:
""
},
{
"id"
:
5
5
,
"id"
:
5
4
,
"name"
:
"会员详情"
,
"pathName"
:
"shoppingGuid/page/pages/userInfo/userInfo"
,
"query"
:
""
"query"
:
"
id=700000000013480
"
},
{
"id"
:
-1
,
...
...
src/shoppingGuid/page/pages/selectUsers/selectUsers.js
View file @
d5895e04
// 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
src/shoppingGuid/page/pages/selectUsers/selectUsers.wxml
View file @
d5895e04
<!--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='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>
</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>
<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>
src/shoppingGuid/page/pages/selectUsers/selectUsers.wxss
View file @
d5895e04
/* shoppingGuid/page/pages/selectUsers/selectUsers.wxss */
page{
background: #f2f2f2;
padding-top:
300
rpx;
padding-top:
196
rpx;
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:
298
rpx;
top:
190
rpx;
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.a
v
tive{
.tag-hover .hover-items.a
c
tive{
color: #0091FF ;
background-color: rgba(0, 145, 255, 0.1);
}
...
...
src/shoppingGuid/page/pages/userInfo/userInfo.js
View file @
d5895e04
...
...
@@ -8,65 +8,352 @@ wxService.page({
* 页面的初始数据
*/
data
:
{
memberId
:
null
,
navBar
:
[
{
name
:
'
自动
标签'
,
type
:
1
,
isActive
:
true
},
{
name
:
'手动标签'
,
type
:
2
,
isActive
:
false
},
{
name
:
'
会员
标签'
,
type
:
1
,
isActive
:
true
},
//
{ name: '手动标签', type: 2, isActive: false },
{
name
:
'订单信息'
,
type
:
3
,
isActive
:
false
},
{
name
:
'退单信息'
,
type
:
4
,
isActive
:
false
},
{
name
:
'优惠券'
,
type
:
5
,
isActive
:
false
},
{
name
:
'积分'
,
type
:
6
,
isActive
:
false
},
{
name
:
'经验值'
,
type
:
7
,
isActive
:
false
},
],
current
:
1
,
onlineOrderStatus
:
[{
name
:
'线上订单'
,
type
:
1
,
isActive
:
true
},
{
name
:
'线下订单'
,
type
:
2
,
isActive
:
false
}],
returnOrderStatus
:
[{
name
:
'线上订单'
,
type
:
1
,
isActive
:
true
},{
name
:
'线下订单'
,
type
:
2
,
isActive
:
false
}],
memberInfo
:
null
memberInfo
:
{},
guider
:
{},
memberTags
:
[],
orderList
:
[],
returnOrderList
:
[],
coupons
:
[],
pointHistory
:
[],
expHistory
:
[],
total
:
{
totalConsume
:
0
,
//累计消费
totalPoint
:
0
,
//当前积分
totalExp
:
0
,
//当前经验值
}
},
/**
* 生命周期函数--监听页面加载
*/
onLoad
:
function
(
options
)
{
let
memberId
=
options
.
id
;
this
.
data
.
memberId
=
memberId
;
this
.
getMemberFind
(
memberId
);
let
currentUserInfo
=
wx
.
getStorageSync
(
'_baseUserInfo'
);
let
userInfo
=
wx
.
getStorageSync
(
'_userInfo'
);
if
(
currentUserInfo
.
member
){
if
(
!
currentUserInfo
.
member
.
name
){
currentUserInfo
.
member
.
name
=
userInfo
.
nickName
;
}
}
if
(
currentUserInfo
){
this
.
setData
({
guider
:
currentUserInfo
,
})
}
//获取会员下标签
this
.
getMemberTags
(
memberId
);
//获取订单列表
this
.
getUserOrderList
(
memberId
);
//获取线上退单
this
.
getOnlineReturnOrderList
(
memberId
);
//获取优惠券列表
this
.
getMemberCoupon
(
memberId
);
//获取会员积分
this
.
getMemberPointHistory
(
memberId
);
//获取经验值流水
this
.
getMemberExpHistory
(
memberId
);
//获取会员经验值
this
.
getMemberExp
(
memberId
);
//获取会员积分
this
.
getMemberPoint
(
memberId
);
//获取用户总消费额
this
.
getMemberTotalConsumeAmount
(
memberId
);
},
/**
* 生命周期函数--监听页面显示
*/
onShow
:
function
()
{
this
.
getMemberFind
()
// 会员详情
onShow
:
function
()
{},
//获取用户总消费额
getMemberTotalConsumeAmount
(
memberId
){
},
//获取优惠券信息
getMemberCoupon
(
memberId
){
wxService
.
post
(
`/coupon/coupon/listWithMember?number=10000&size=1`
,
{
memberId
:
memberId
,
}).
then
(
res
=>
{
if
(
!
res
)
return
false
;
let
list
=
res
.
data
.
data
.
content
?
res
.
data
.
data
.
content
:
[];
const
canUse
=
'https://bigaka-xie.oss-cn-shanghai.aliyuncs.com/coupon_bg.png'
,
cantUse
=
'https://bigaka-xie.oss-cn-shanghai.aliyuncs.com/coupon_bg_cantUse.png'
;
list
.
forEach
(
item
=>
{
item
.
bg
=
item
.
status
==
1
?
canUse
:
cantUse
;
});
this
.
setData
({
coupons
:
list
,
})
})
},
//获取积分
getMemberPointHistory
(
memberId
){
wxService
.
post
(
`/member/memberPointLog/findPage?pageSize=10000&pageNo=1`
,{
memberId
:
memberId
}).
then
(
res
=>
{
if
(
!
res
)
return
;
let
list
=
res
.
data
.
data
.
content
?
res
.
data
.
data
.
content
:
[];
this
.
setData
({
pointHistory
:
list
})
})
},
//获取会员当前积分
getMemberPoint
(
memberId
){
wxService
.
get
(
`/member/memberPoint/getMemberPointInfo?memberId=
${
memberId
}
`
).
then
(
res
=>
{
if
(
!
res
)
return
;
let
point
=
res
.
data
.
data
?
res
.
data
.
data
.
point
:
0
;
this
.
data
.
total
.
totalPoint
=
point
;
this
.
setData
({
total
:
this
.
data
.
total
});
});
},
getMemberFind
()
{
const
baseUserInfo
=
wx
.
getStorageSync
(
'_baseUserInfo'
)
const
{
memberId
,
member
}
=
baseUserInfo
//获取经验值流水
getMemberExpHistory
(
memberId
){
wxService
.
post
(
`/member/exp/queryExpDetail?pageNum=1&pageSize=10000`
,{
memberId
:
memberId
,
}).
then
(
res
=>
{
if
(
!
res
)
return
;
let
list
=
res
.
data
.
data
.
content
?
res
.
data
.
data
.
content
:
[];
this
.
setData
({
expHistory
:
list
});
});
},
//获取会员经验值
getMemberExp
(
memberId
){
wxService
.
post
(
`/member/exp/byMemberIdQueryExp?memberId=
${
memberId
}
`
).
then
(
res
=>
{
if
(
!
res
)
return
;
let
obj
=
res
.
data
.
data
;
this
.
data
.
total
.
totalExp
=
obj
.
exp
?
obj
.
exp
:
0
;
this
.
setData
({
total
:
this
.
data
.
total
})
})
},
//获取会员详情
getMemberFind
(
memberId
)
{
wx
.
showLoading
({
title
:
'加载中'
})
const
memberInfoFindDto
=
{
memberId
,
mobile
:
member
.
mobile
,
cardNoOnline
:
''
,
alipayUserId
:
''
,
cardNoOffline
:
''
,
unionid
:
member
.
unionid
,
openid
:
member
.
openid
,
}
wxService
.
post
(
`/member/find`
,
memberInfoFindDto
).
then
(
res
=>
{
});
wxService
.
post
(
`/member/find`
,
{
memberId
:
memberId
}).
then
(
res
=>
{
if
(
!
res
)
return
false
const
{
result
,
data
}
=
res
&&
res
.
data
||
res
&&
res
.
result
if
(
result
==
0
)
{
wx
.
hideLoading
()
data
.
member
.
age
=
utils
.
getAge
(
data
.
member
.
birthday
)
data
.
member
.
sex
=
data
.
member
.
sex
?
data
.
member
.
sex
:
'保密'
;
this
.
setData
({
memberInfo
:
data
.
member
})
}
})
},
//获取会员下标签
getMemberTags
(
memberId
){
wx
.
showLoading
({
title
:
'加载中'
});
wxService
.
get
(
`/marketing/memberTagBind/getByMemberId/
${
memberId
}
`
).
then
(
res
=>
{
if
(
!
res
)
return
false
const
{
result
,
data
}
=
res
.
data
if
(
result
==
0
)
{
wx
.
hideLoading
();
this
.
data
.
memberTags
=
data
?
data
:
[];
this
.
setData
({
memberTags
:
this
.
data
.
memberTags
});
}
}).
finally
(()
=>
{})
},
//获取订单信息
getUserOrderList
(
memberId
){
//获取线上订单
wxService
.
post
(
`/sale/trade/buyer/history?pageSize=10000&pageNum=1`
,{
memberId
:
memberId
,
}).
then
(
res
=>
{
if
(
!
res
)
return
;
let
list
=
res
.
data
.
data
?
res
.
data
.
data
:
[];
let
arr
=
list
.
map
(
item
=>
{
let
statusText
=
item
.
status
==
'N'
?
'待支付'
:
(
item
.
status
==
'P'
?
'待发货'
:
(
item
.
status
==
'D'
?
'待收货'
:
(
item
.
status
==
'R'
?
'已收货'
:
'已取消'
)
)
);
let
products
=
item
.
skuVOList
.
map
(
p
=>
{
return
{
productName
:
p
.
productName
,
productId
:
p
.
productId
,
productCode
:
p
.
productCode
,
image
:
p
.
skuImgUrl
?
p
.
skuImgUrl
:
'https://bigaka-xie.oss-cn-shanghai.aliyuncs.com/1571636466%281%29.jpg'
,
skuId
:
p
.
skuId
,
skuCode
:
p
.
skuCode
,
}
})
return
{
orderNo
:
item
.
id
,
statusText
:
statusText
,
products
:
products
,
count
:
item
.
skuCount
,
payMoney
:
item
.
payAmount
}
});
this
.
setData
({
orderList
:
arr
,
});
})
},
//获取线下订单
getOfflineOrder
(
memberId
){
wxService
.
post
(
`/sale/order/list?pageSize=10000&pageNo=1`
,
{
memberId
:
memberId
,
storeId
:
[],
consumeStartTime
:
''
,
consumeEndTime
:
''
}).
then
(
res
=>
{
if
(
!
res
)
return
;
let
list
=
res
.
data
.
data
.
content
?
res
.
data
.
data
.
content
:
[];
let
arr
=
list
.
map
(
item
=>
{
let
statusText
=
'已完成'
;
let
products
=
item
.
productInfo
.
map
(
p
=>
{
return
{
productName
:
p
.
productName
,
productId
:
p
.
productId
,
productCode
:
p
.
productCode
,
image
:
'https://bigaka-xie.oss-cn-shanghai.aliyuncs.com/1571636466%281%29.jpg'
,
skuId
:
p
.
skuId
,
skuCode
:
p
.
skuCode
,
}
})
return
{
orderNo
:
item
.
orderNo
,
statusText
:
statusText
,
products
:
products
,
count
:
item
.
productInfo
.
length
,
payMoney
:
parseFloat
(
item
.
realPayMoney
/
100
).
toFixed
(
2
)
}
});
this
.
setData
({
orderList
:
arr
,
});
})
},
// 获取线上退单
getOnlineReturnOrderList
(
memberId
){
wxService
.
post
(
`/sale/refund/buyer/history?pageSize=10000&pageNum=1`
,
{
memberId
:
memberId
,
}).
then
(
res
=>
{
if
(
!
res
)
return
;
let
list
=
res
.
data
.
data
?
res
.
data
.
data
:
[];
let
arr
=
list
.
map
(
item
=>
{
let
statusText
=
item
.
status
==
'N'
?
'待审核'
:
(
item
.
status
==
'A'
?
'已审核'
:
(
item
.
status
==
'RJ'
?
'已拒绝'
:
(
item
.
status
==
'R'
?
'退货已发'
:
(
item
.
status
==
'D'
?
'已完成'
:
'已取消'
)
)
)
);
let
count
=
0
;
let
products
=
item
.
skuList
.
map
(
p
=>
{
count
=
count
+
p
.
count
;
return
{
image
:
p
.
skuImgUrl
?
p
.
skuImgUrl
:
'https://bigaka-xie.oss-cn-shanghai.aliyuncs.com/1571636466%281%29.jpg'
,
skuId
:
p
.
skuId
,
}
})
return
{
orderNo
:
item
.
id
,
statusText
:
statusText
,
products
:
products
,
count
:
count
,
payMoney
:
item
.
amount
}
});
this
.
setData
({
returnOrderList
:
arr
,
});
})
},
//获取线下退单
getOfflineReturnOrderList
(
memberId
){
wxService
.
post
(
`/sale/orderReturn/findPage?pageSize=10000&pageNo=1`
,
{
memberId
:
memberId
,
}).
then
(
res
=>
{
if
(
!
res
)
return
;
let
list
=
res
.
data
.
data
.
content
?
res
.
data
.
data
.
content
:
[];
let
arr
=
list
.
map
(
item
=>
{
let
statusText
=
'已完成'
;
let
count
=
0
;
let
products
=
item
.
productInfo
.
map
(
p
=>
{
count
=
count
+
p
.
refundCount
;
return
{
productId
:
p
.
productId
,
productCode
:
p
.
productCode
,
image
:
'https://bigaka-xie.oss-cn-shanghai.aliyuncs.com/1571636466%281%29.jpg'
,
skuId
:
p
.
skuId
,
skuCode
:
p
.
skuCode
,
}
})
return
{
orderNo
:
item
.
refundNo
,
statusText
:
statusText
,
products
:
products
,
count
:
count
,
payMoney
:
parseFloat
(
item
.
refundMoney
/
100
).
toFixed
(
2
)
}
});
this
.
setData
({
returnOrderList
:
arr
,
});
})
},
//打电话
handelPhoneCall
(
e
)
{
const
{
phone
}
=
e
.
currentTarget
.
dataset
const
{
phone
}
=
e
.
currentTarget
.
dataset
;
if
(
!
phone
){
wx
.
showToast
({
title
:
'暂无手机号'
,
icon
:
'none'
});
return
;
}
wx
.
makePhoneCall
({
phoneNumber
:
phone
})
...
...
@@ -101,6 +388,15 @@ wxService.page({
this
.
setData
({
onlineOrderStatus
:
this
.
data
.
onlineOrderStatus
,
});
let
type
=
this
.
data
.
onlineOrderStatus
[
index
].
type
;
this
.
data
.
orderList
=
[];
if
(
type
==
1
){
//线上订单
this
.
getUserOrderList
(
this
.
data
.
memberId
);
}
else
{
this
.
getOfflineOrder
(
this
.
data
.
memberId
);
}
},
//退单
onTapChangeReturnOrderStatus
(
e
){
...
...
@@ -115,6 +411,16 @@ wxService.page({
this
.
setData
({
returnOrderStatus
:
this
.
data
.
returnOrderStatus
,
});
let
type
=
this
.
data
.
returnOrderStatus
[
index
].
type
;
this
.
data
.
returnOrderList
=
[];
if
(
type
==
1
)
{
//线上订单
this
.
getOnlineReturnOrderList
(
this
.
data
.
memberId
);
}
else
{
this
.
getOfflineReturnOrderList
(
this
.
data
.
memberId
);
}
},
/**
...
...
src/shoppingGuid/page/pages/userInfo/userInfo.wxml
View file @
d5895e04
...
...
@@ -7,15 +7,17 @@
<view class='u-rg'>
<view class='u-items'>
<view class='u-item-lf'>
<label>{{memberInfo.mobile}}</label>
<image src='/assets/imgs/shoppingGuide/phone.png' data-phone="{{memberInfo.mobile}}" bindtap="handelPhoneCall" mode='widthFix'></image>
<label>{{memberInfo.name}}</label>
<image src='/assets/imgs/shoppingGuide/phone.png'
data-phone="{{memberInfo.mobile}}"
bindtap="handelPhoneCall" mode='widthFix'></image>
</view>
<view class='u-item-rg' data-phone="{{memberInfo.mobile}}" bindtap="handelPhoneCall">立即联系</view>
</view>
<view class='u-items'>
<view class='u-item-lf'>
<label class='color-pink mg-r-20'>{{memberInfo.sex}}</label>
<text>{{memberInfo.age}}</text>
<text>{{memberInfo.age}}
岁
</text>
</view>
</view>
<view class='u-items'>
...
...
@@ -36,22 +38,22 @@
<view class='guider'>
<view class='header'>
<label>所属导购:</label>
<text>
张三三
</text>
<text>
{{guider.member.name ? guider.member.name : "暂无名称"}}
</text>
</view>
<view class='month'>
<view class='month-data'>
<view class='data-item'>
<text class='data-item-title'>累计消费(元)</text>
<text class='data-item-number'>
11356.59
</text>
<text class='data-item-number'>
{{total.totalConsume}}
</text>
</view>
<view class='data-item'>
<text class='data-item-title'>当前积分</text>
<text class='data-item-number'>
21132
</text>
<text class='data-item-number'>
{{total.totalPoint}}
</text>
</view>
<view class='data-item'>
<text class='data-item-title'>当前经验值</text>
<text class='data-item-number'>
228
</text>
<text class='data-item-number'>
{{total.totalExp}}
</text>
</view>
</view>
</view>
...
...
@@ -69,41 +71,20 @@
>{{item.name}}</view>
</view>
<!--
自动
标签 -->
<!--
会员
标签 -->
<view class='auto-tips' wx:if="{{current == 1}}">
<view class='tips-groups'>
<view class='tip-group-name'>标签分组名称</view>
<view class='tips'>
<view class='tips-item'>标签名称</view>
<view class='tips-item'>标签名称</view>
<view class='tips-item'>标签名称</view>
<view class='tips-item'>标签名称</view>
<view class='tips-item'>标签名称</view>
</view>
</view>
<view class='tips-groups'>
<view class='tip-group-name'>标签分组名称</view>
<!-- <view class='tip-group-name'>标签分组名称</view> -->
<view class='tips'>
<view class='tips-item'>标签名称</view>
<view class='tips-item'>标签名称</view>
<view class='tips-item'>标签名称</view>
<view class='tips-item'>标签名称</view>
<view class='tips-item'>标签名称</view>
</view>
</view>
<view class='tips-groups'>
<view class='tip-group-name'>标签分组名称</view>
<view class='tips'>
<view class='tips-item'>标签名称</view>
<view class='tips-item'>标签名称</view>
<view class='tips-item'>标签名称</view>
<view class='tips-item'>标签名称</view>
<view class='tips-item'>标签名称</view>
<view class='tips-item'
wx:for="{{memberTags}}"
wx:key="memberTag"
wx:for-item="item">{{item.tag.name}}</view>
</view>
</view>
</view>
<!-- 手动标签 -->
<view class='auto-tips' wx:if="{{current == 2}}">
<
!-- <
view class='auto-tips' wx:if="{{current == 2}}">
<view class='tips-groups'>
<view class='tip-group-name'>标签分组名称</view>
<view class='tips'>
...
...
@@ -134,7 +115,7 @@
<view class='tips-item'>标签名称</view>
</view>
</view>
</view>
</view>
-->
<!-- 订单信息 -->
<view wx:if="{{current == 3}}">
<view class='order-filter'>
...
...
@@ -151,48 +132,29 @@
<!-- 订单列表信息 -->
<view class='list online-order'>
<!-- order item -->
<view class='order-item'>
<view class='order-item'
wx:for="{{orderList}}"
wx:key="onLineOrderList"
wx:for-item="item">
<view class='order-status'>
<text>订单号
7878327513490
</text>
<text>
待付款
</text>
<text>订单号
{{item.orderNo}}
</text>
<text>
{{item.statusText}}
</text>
</view>
<view class='products-list'>
<view class='pro-item'>
<image mode='aspectFit' src='https://bigaka-xie.oss-cn-shanghai.aliyuncs.com/1571636466%281%29.jpg'></image>
</view>
<view class='pro-item'>
<image mode='aspectFit' src='https://bigaka-xie.oss-cn-shanghai.aliyuncs.com/1571636466%281%29.jpg'></image>
</view>
</view>
<view class='order-pro-info'>
<label>共5件商品</label>
<view>
实付 <label class='theme-text-color bolder'>¥385</label>
</view>
</view>
</view>
<view class='order-item'>
<view class='order-status'>
<text>订单号 7878327513490</text>
<text>待付款</text>
</view>
<view class='products-list'>
<view class='pro-item'>
<image mode='aspectFit' src='https://bigaka-xie.oss-cn-shanghai.aliyuncs.com/1571636466%281%29.jpg'></image>
</view>
<view class='pro-item'>
<image mode='aspectFit' src='https://bigaka-xie.oss-cn-shanghai.aliyuncs.com/1571636466%281%29.jpg'></image>
<view class='pro-item' wx:for="{{item.products}}" wx:key="product" wx:for-item="pro">
<image mode='aspectFit' src='{{pro.image}}'></image>
</view>
</view>
<view class='order-pro-info'>
<label>共
5
件商品</label>
<label>共
{{item.count}}
件商品</label>
<view>
实付 <label class='theme-text-color bolder'>¥
385
</label>
实付 <label class='theme-text-color bolder'>¥
{{item.payMoney}}
</label>
</view>
</view>
</view>
<!-- 空 -->
<view class='empty' wx:if="{{orderList.length == 0}}">暂无数据~</view>
</view>
</view>
<!-- 退单信息 -->
<view wx:if="{{current == 4}}">
...
...
@@ -210,90 +172,59 @@
<!-- 退单列表信息 -->
<view class='list online-order'>
<!-- order item -->
<view class='order-item'>
<view class='order-item'
wx:for="{{returnOrderList}}"
wx:key="returnOrder"
wx:for-item="item">
<view class='order-status'>
<text>
订单号 7878327513490
</text>
<text>
待付款
</text>
<text>
退单号 {{item.orderNo}}
</text>
<text>
{{item.statusText}}
</text>
</view>
<view class='products-list'>
<view class='pro-item'>
<image mode='aspectFit' src='https://bigaka-xie.oss-cn-shanghai.aliyuncs.com/1571636466%281%29.jpg'></image>
</view>
<view class='pro-item'>
<image mode='aspectFit' src='https://bigaka-xie.oss-cn-shanghai.aliyuncs.com/1571636466%281%29.jpg'></image>
<view class='pro-item' wx:for="{{item.products}}" wx:key="returnProduct" wx:for-item="returnPro">
<image mode='aspectFit' src='{{returnPro.image}}'></image>
</view>
</view>
<view class='order-pro-info'>
<label>共
5
件商品</label>
<label>共
{{item.count}}
件商品</label>
<view>
实付 <label class='theme-text-color bolder'>¥385</label>
</view>
</view>
</view>
<view class='order-item'>
<view class='order-status'>
<text>订单号 7878327513490</text>
<text>待付款</text>
</view>
<view class='products-list'>
<view class='pro-item'>
<image mode='aspectFit' src='https://bigaka-xie.oss-cn-shanghai.aliyuncs.com/1571636466%281%29.jpg'></image>
</view>
<view class='pro-item'>
<image mode='aspectFit' src='https://bigaka-xie.oss-cn-shanghai.aliyuncs.com/1571636466%281%29.jpg'></image>
</view>
</view>
<view class='order-pro-info'>
<label>共5件商品</label>
<view>
实付 <label class='theme-text-color bolder'>¥385</label>
实付 <label class='theme-text-color bolder'>¥{{item.payMoney}}</label>
</view>
</view>
</view>
<!-- 空 -->
<view class='empty' wx:if="{{returnOrderList.length == 0}}">暂无数据~</view>
</view>
</view>
<!-- 优惠券 -->
<view class='coupons' wx:if="{{current == 5}}">
<!-- items -->
<view class='coupon-item' style='background-image:url(https://bigaka-xie.oss-cn-shanghai.aliyuncs.com/coupon_bg.png)'>
<view class='coupon-item-lf'>
<view class='coupon-price'>
¥ <text>5</text>
</view>
<view>抵用券</view>
</view>
<view class='coupon-item-rg'>
<!-- cant-use -->
<view class='qrcode can-use'>可使用</view>
<view class='coupon-title'>满10减5抵用券</view>
<view class='op'>
<view class='text-btn'>有效期: 2019-03-24 至 2019-06-23</view>
</view>
<view class='op'>
<view class='text-btn'>拼团及特殊商品不可用</view>
</view>
</view>
</view>
<!-- items -->
<view class='coupon-item' style='background-image:url(https://bigaka-xie.oss-cn-shanghai.aliyuncs.com/coupon_bg_cantUse.png)'>
<view class='coupon-item'
wx:for="{{coupons}}"
wx:key="coupon"
wx:for-item="item"
style='background-image:url({{item.bg}})'>
<view class='coupon-item-lf'>
<
view class='coupon-price cant-us
e'>
<
!-- <view class='coupon-pric
e'>
¥ <text>5</text>
</view>
<view
class='cant-use'>抵用券</view
>
<view
>抵用券</view> --
>
</view>
<view class='coupon-item-rg'>
<!-- cant-use -->
<view class='qrcode
cant-use'>已过期
</view>
<view class='coupon-title
cant-use'>满10减5抵用券
</view>
<view class='qrcode
{{item.status == 1 ? "can-use" : "cant-use"}}'>{{item.statusDesc}}
</view>
<view class='coupon-title
{{item.status == 1 ? "can-use" : "cant-use"}}'>{{item.title}}
</view>
<view class='op'>
<view class='text-btn'>有效期:
2019-03-24 至 2019-06-23
</view>
<view class='text-btn'>有效期:
{{item.startTime}} 至 {{item.endTime}}
</view>
</view>
<view class='op'>
<view class='text-btn
'>拼团及特殊商品不可用
</view>
<view class='text-btn
'>{{item.useChannelDesc}}
</view>
</view>
</view>
</view>
<!-- 空 -->
<view class='empty' wx:if="{{coupons.length == 0}}">暂无数据~</view>
</view>
<!-- 积分 -->
<view class='integrate-list' wx:if="{{current == 6}}">
...
...
@@ -302,26 +233,32 @@
<view class='line'></view>
</view> -->
<view class='rg-list'>
<view class='rg-list-item'>
<view class='rg-list-item'
wx:for="{{pointHistory}}" wx:key="point" wx:for-item="item"
>
<view class='integrate-type'>
<view class='title'>
购物送积分
</view>
<view>
2019-12-11 14:23:32
</view>
<view class='title'>
{{item.changeTypeDesc}}
</view>
<view>
{{item.changeTime}}
</view>
</view>
<view class='time'>
+30
</view>
<view class='time'>
{{item.operation == 1 ? "+" : "-"}}{{item.changeValue}}
</view>
</view>
<view class='rg-list-item'>
<view class='integrate-type'>
<view class='title'>购物送积分</view>
<view>2019-12-11 14:23:32</view>
</view>
<view class='time'>+30</view>
</view>
<view class='rg-list-item'>
<!-- 空 -->
<view class='empty' wx:if="{{pointHistory.length == 0}}">暂无数据~</view>
</view>
</view>
<!-- 经验值 -->
<view class='integrate-list' wx:if="{{current == 7}}">
<!-- <view class='lf-history'>
<label></label>
<view class='line'></view>
</view> -->
<view class='rg-list'>
<view class='rg-list-item' wx:for="{{expHistory}}" wx:key="exp" wx:for-item="item">
<view class='integrate-type'>
<view class='title'>
购物送积分
</view>
<view>
2019-12-11 14:23:32
</view>
<view class='title'>
{{item.sourceName}}
</view>
<view>
{{item.createTime}}
</view>
</view>
<view class='time'>
+30
</view>
<view class='time'>
{{item.type == 0 ? "-" : "+"}}{{item.exp}}
</view>
</view>
<!-- 空 -->
<view class='empty' wx:if="{{expHistory.length == 0}}">暂无数据~</view>
</view>
</view>
\ No newline at end of file
src/shoppingGuid/page/pages/userList/userList.js
View file @
d5895e04
// 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
)
{
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady
:
function
()
{
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
);
},
...
...
@@ -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
)
})
}
},
/**
...
...
src/shoppingGuid/page/pages/userList/userList.wxml
View file @
d5895e04
...
...
@@ -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>
src/shoppingGuid/page/pages/welfare/welfare.js
View file @
d5895e04
// 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
(){
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment