Browse Source

更新

master
Wheba 5 years ago
parent
commit
b2ab9aca52
46 changed files with 1450 additions and 492 deletions
  1. +18
    -2
      app.js
  2. +8
    -6
      app.json
  3. +62
    -130
      pages/coupon/coupon.js
  4. +12
    -45
      pages/coupon/coupon.wxml
  5. +36
    -124
      pages/coupon/coupon.wxss
  6. +8
    -27
      pages/home/home.js
  7. +1
    -1
      pages/home/home.wxss
  8. +288
    -0
      pages/member/member.js
  9. +5
    -0
      pages/member/member.json
  10. +71
    -0
      pages/member/member.wxml
  11. +375
    -0
      pages/member/member.wxss
  12. +144
    -0
      pages/personal/personal.js
  13. +5
    -0
      pages/personal/personal.json
  14. +30
    -0
      pages/personal/personal.wxml
  15. +102
    -0
      pages/personal/personal.wxss
  16. +12
    -0
      pages/record/comm.wxs
  17. +93
    -69
      pages/record/record.js
  18. +1
    -1
      pages/record/record.json
  19. +40
    -27
      pages/record/record.wxml
  20. +136
    -59
      pages/record/record.wxss
  21. +3
    -1
      project.config.json
  22. BIN
      static/coupon/couponIcon.png
  23. BIN
      static/coupon/logo.png
  24. BIN
      static/login/logo.png
  25. BIN
      static/member/couponBg.png
  26. BIN
      static/member/crown.png
  27. BIN
      static/member/iconIntegral.png
  28. BIN
      static/member/integralBg.png
  29. BIN
      static/personal/arrow.png
  30. BIN
      static/personal/bg.jpg
  31. BIN
      static/personal/icon1.png
  32. BIN
      static/personal/icon2.png
  33. BIN
      static/personal/icon3.png
  34. BIN
      static/personal/icon4.png
  35. BIN
      static/record/bg.jpg
  36. BIN
      static/record/down.png
  37. BIN
      static/record/icon1.png
  38. BIN
      static/record/up.png
  39. BIN
      static/tabBar/home0.png
  40. BIN
      static/tabBar/home1.png
  41. BIN
      static/tabBar/personal0.png
  42. BIN
      static/tabBar/personal1.png
  43. BIN
      static/tabBar/record0.png
  44. BIN
      static/tabBar/record1.png
  45. BIN
      static/tabBar/store0.png
  46. BIN
      static/tabBar/store1.png

+ 18
- 2
app.js View File

@@ -96,6 +96,7 @@ App({
}
},
requestGet: function(url, data, callBack) {
var that=this;
wx.request({
url: this.globalData.apiUrl + url, //仅为示例,并非真实的接口地址
data: data,
@@ -105,11 +106,19 @@ App({
'content-type': 'application/json' // 默认值
},
success(res) {
callBack(res.data)
if(res.data.code==-1003){
that.globalData.userState=0;
wx.navigateTo({
url: '/pages/login/login'
})
}else{
callBack(res.data)
}
}
})
},
requestPost: function(url, data, callBack) {
var that=this;
wx.request({
url: this.globalData.apiUrl + url, //仅为示例,并非真实的接口地址
data: data,
@@ -120,7 +129,14 @@ App({
},
method: "POST",
success(res) {
callBack(res.data)
if(res.data.code==-1003){
that.globalData.userState=0;
wx.navigateTo({
url: '/pages/login/login'
})
}else{
callBack(res.data)
}
}
})
},

+ 8
- 6
app.json View File

@@ -4,7 +4,9 @@
"pages/store/store",
"pages/coupon/coupon",
"pages/record/record",
"pages/home/home"
"pages/home/home",
"pages/personal/personal",
"pages/member/member"
],
"permission": {
"scope.userLocation": {
@@ -25,7 +27,7 @@
"list": [
{
"pagePath": "pages/home/home",
"text": "核销大厅",
"text": "首页",
"iconPath": "static/tabBar/home0.png",
"selectedIconPath": "static/tabBar/home1.png"
},
@@ -36,10 +38,10 @@
"selectedIconPath": "static/tabBar/store1.png"
},
{
"pagePath": "pages/record/record",
"text": "核销记录",
"iconPath": "static/tabBar/record0.png",
"selectedIconPath": "static/tabBar/record1.png"
"pagePath": "pages/personal/personal",
"text": "我的",
"iconPath": "static/tabBar/personal0.png",
"selectedIconPath": "static/tabBar/personal1.png"
}
]
},

+ 62
- 130
pages/coupon/coupon.js View File

@@ -6,111 +6,74 @@ Page({
* 页面的初始数据
*/
data: {
type: 2, //1券码核销 2手机号核销
user_phone: '', //手机号
state: 0, //0核销未完成 1核销中 2核销已完成
headImgUrl:'',//头图
totalNums: 1, //总数量
nums: 1, //核销数量
coupon_name: '', //优惠券名称
couponTime: '', //优惠券购买时间
code_num: '', //核销短信验证码
couponCode: '', //券号
duration: '', //券期间
type_name:'',//券类型
couponType:1,//1代金券 2菜品券
coupon_img_large:'',//优惠券图片
coupon_name_detail:'',//券名称
coupon_memo:'',//券描述
totalNums: 0, //总数量
nums: 0, //核销数量
writeOffing:false,
original_price:100,//抵消金额
},
user_id:null,
coupon_sell_id:null,
/**
* 核销数修改
*/
changeNums(event) {
this.setData({
nums: parseInt(event.detail.value)
})
},
/**
* 验证码修改
*/
changeCode(event) {
changeNums(e) {
var value=e.detail.value;
var str=parseInt(value);
if(str>this.data.totalNums){
str=this.data.totalNums
}
this.setData({
code_num: event.detail.value
nums: str?str:0
})
},
/**
* 核销
*/
writeOff: function() {
if (this.data.state == 1) {
return
}
if (this.data.nums>this.data.totalNums){
wx.showToast({
title: '券剩余数量不足',
icon: 'none',
duration: 2000
})
return
if(!this.data.writeOffing){
this.setData({
writeOffing:true
})
var data={
user_id:this.user_id,
coupon_sell_id:this.coupon_sell_id,
check_num:this.data.nums
}
var data;
if (this.data.type == 1) { //券核销
data = {
check_type: 1,
coupon_code: this.data.couponCode,
check_num: 1
}
} else { //手机号核销
if (this.data.code_num.length != 6) {
app.requestPost('admin/buy/check',data,res=>{
if(res.code==200){
wx.showToast({
title: '验证码错误',
icon: 'none',
title: '核销成功',
icon: 'success',
duration: 2000
})
return
}
data = {
check_type: 2,
user_phone: this.data.user_phone,
code_num: this.data.code_num,
coupon_code: '',
check_num: this.data.nums
}
}
data.coupon_sell_id = app.globalData.couponData.coupon_sell_id;
console.log(data);
this.setData({
state: 1
})
var that = this;
app.requestPost('couponbuy/check', data, res => {
var state;
if (res.code == 200) {
state = 2;
if (that.data.type == 2) { //手机号核销
this.setData({
totalNums: this.data.totalNums-this.data.nums
})
}
} else {
state = 0;
this.getCouponDetails();
// this.setData({
// writeOffing:false,
// totalNums:this.data.totalNums-this.data.nums,
// nums:0
// })
}else{
wx.showToast({
title: res.message,
icon: 'none',
duration: 2000
})
this.setData({
writeOffing:false
})
}
that.setData({
state: state
})
})
}
},
/**
* 添加优惠券
*/
addCoupon() {
if (isNaN(this.data.nums)) {
this.setData({
nums: 1
})
}else if (this.data.nums + 1 <= this.data.totalNums) {
if (this.data.nums + 1 <= this.data.totalNums) {
this.setData({
nums: this.data.nums + 1
})
@@ -120,23 +83,12 @@ Page({
* 减少优惠券
*/
reduceCoupon() {
if (isNaN(this.data.nums)){
this.setData({
nums: 1
})
}else if (this.data.nums - 1 > 0) {
if (this.data.nums - 1 > 0) {
this.setData({
nums: this.data.nums - 1
})
}
},
blueNums(){
if (isNaN(this.data.nums)) {
this.setData({
nums: 1
})
}
},
/**
* 返回核销大厅
*/
@@ -151,46 +103,26 @@ Page({
*/
onLoad: function(options) {
wx.hideShareMenu();
var code = options.code;
var pohone = options.phone;
var couponData = app.globalData.couponData;
if (code) { //券码查询
this.setData({
type: 1,
couponCode: code,
coupon_name: couponData.coupon_name,
type_name: couponData.type_name,
couponTime: couponData.buy_date,
duration: couponData.duration,
headImgUrl: couponData.coupon_img_large
})
}
if (pohone) { //手机号查询
this.setData({
type: 2,
user_phone: pohone,
totalNums: couponData.num,
coupon_name: couponData.coupon_name,
type_name: couponData.type_name,
couponTime: couponData.buy_date,
duration: couponData.duration,
headImgUrl: couponData.coupon_img_large
})
/**
* 发送验证码
*/
app.requestGet('couponbuy/check/smscode', {
user_phone: pohone
}, res => {
if (res.code == 200) {} else {
wx.showToast({
title: res.message,
icon: 'none',
duration: 2000
})
}
})
}
this.user_id=options.user_id;
this.coupon_sell_id=options.coupon_sell_id;
this.getCouponDetails();
},
getCouponDetails(){
app.requestGet('admin/buy/detail',{user_id:this.user_id,coupon_sell_id:this.coupon_sell_id},res=>{
if(res.code==200){
var {coupon_img_large,coupon_name_detail,coupon_memo,num,item_type:couponType,original_price}=res.data;
this.setData({
couponType,
coupon_img_large,
coupon_name_detail,
coupon_memo,
totalNums:num,
writeOffing:false,
original_price:parseInt(original_price)
})
app.globalData.couponToken = res.token;
}
})
},

/**

+ 12
- 45
pages/coupon/coupon.wxml View File

@@ -1,56 +1,23 @@
<!--pages/coupon/coupon.wxml-->
<view class="container" style="background-color:#f6f6f6;">
<image class="couponImg" src="{{headImgUrl}}" mode='aspectFill'></image>
<image class="couponImg" src="{{coupon_img_large}}" mode='aspectFill'></image>
<view class="detailsBox shadow">
<image class="bottomBg" src="../../static/coupon/bottomBg1.png"></image>
<image class="decorate" src="../../static/coupon/01.png"></image>
<view class="detailsInfo">
<text class="txt1">{{coupon_name+type_name}}</text>
<text class="txt2">购买时间:{{couponTime}}</text>
<text class="txt1" wx:if="{{couponType==1}}">{{original_price+'元代金券'}}</text>
<text class="txt1" wx:else>{{coupon_name_detail}}</text>
<text class="txt2">{{coupon_memo}}</text>
</view>
<view class="detailsRight" wx:if="{{type==2}}"><image class="txt" src="../../static/coupon/txt.png"></image>{{totalNums}}<text class="company">张</text>
<view class="detailsRight"><image class="txt" src="../../static/coupon/txt.png"></image>{{totalNums}}<text class="company">张</text>
</view>
<image class="logo" src="../../static/coupon/logo.png" wx:if="{{type==1}}"></image>
</view>
<view class="middleContent shadow">
<view id="couponCheck" class="relative clearfix" wx:if="{{type==1&&state!=2}}">
<image class="couponIcon" src="../../static/coupon/couponIcon.png"></image>
<text class="number">券码:{{couponCode}}</text>
<view class="txt">此券有效</view>
</view>
<view id="couponDetails" class="relative clearfix" wx:if="{{state==2}}">
<view class="title">核销详情</view>
<view class="detailsItem">
<view class="sign"></view>
<text class="itemTitle" wx:if="{{type==1}}">券码</text>
<text class="itemTitle" wx:else>数量</text>
<text class="itemContent" wx:if="{{type==1}}">{{couponCode}}</text>
<text class="itemContent" wx:else>{{nums}}</text>
</view>
<view class="detailsItem">
<view class="sign"></view>
<text class="itemTitle">类型</text>
<text class="itemContent">{{coupon_name+type_name}}</text>
</view>
<view class="detailsItem">
<view class="sign"></view>
<text class="itemTitle">时间</text>
<text class="itemContent">{{duration}}</text>
</view>
<view class="state">核销成功</view>
</view>
<view id="vCodeBox" wx:if="{{type==2&&state!=2}}">
<input placeholder="输入短信验证码" placeholder-style="color:#FFFFFF;font-size:30rpx;" value="{{code_num}}" bindinput="changeCode"></input>
<view class="countBox">
<text>核销</text>
<view class="countContent">
<input type="number" value="{{nums}}" bindinput="changeNums" bindblur='blueNums'></input>
<image class="symbolBox" src="../../static/coupon/symbolLeft.png" style="left:-5rpx;" bindtap="reduceCoupon"></image>
<image class="symbolBox" src="../../static/coupon/symbolRight.png" style="right:-5rpx;" bindtap="addCoupon"></image>
</view>
</view>
</view>
<view class="writeOffBox">核销
<view class="writeOffNumsBox">
<input class="couponsInput" type="number" value="{{nums}}" bindinput="changeNums" />
<image class="operation" style="left:0;" src="../../static/coupon/symbolLeft.png" catchtap="reduceCoupon"></image>
<image class="operation" style="right:0;" src="../../static/coupon/symbolRight.png" catchtap="addCoupon"></image>
</view>
</view>
<button class="btn shadow {{state==1?'select':''}}" bindtap="writeOff" wx:if="{{state!=2}}">核销</button>
<button class="btn shadow" bindtap="goHome" wx:else>确定</button>
<button class="btn shadow {{writeOffing||totalNums==0?'select':''}}" bindtap="writeOff">核销</button>
</view>

+ 36
- 124
pages/coupon/coupon.wxss View File

@@ -77,7 +77,8 @@
font-size: 100rpx;
font-weight: 550;
}
.detailsBox>.detailsRight>.txt{
.detailsBox>.detailsRight>.txt {
display: inline-block;
width: 34rpx;
height: 70rpx;
@@ -90,89 +91,47 @@
margin-left: 5rpx;
}
.detailsBox>.logo {
position: absolute;
right: 52rpx;
top: 40rpx;
width: 155rpx;
height: 110rpx;
}
.middleContent {
width: 750rpx;
background-color: #fff;
border-radius: 30rpx;
margin-top: 20rpx;
padding: 50rpx 0;
}
#couponCheck>.couponIcon {
width: 513rpx;
height: 200rpx;
margin: 0 auto;
}
#couponCheck>.number {
.writeOffBox {
position: relative;
color: #666666;
font-size: 24rpx;
font-weight: 700;
margin-left: 128rpx;
}
#couponCheck>.txt {
width: 100%;
text-align: center;
height: 120rpx;
line-height: 120rpx;
box-sizing: border-box;
padding: 0 30rpx;
color: #333333;
font-size: 40rpx;
font-weight: 550;
margin-top: 20rpx;
}
#couponDetails>.title {
color: #333;
width: 100%;
text-align: center;
font-size: 30rpx;
font-weight: 550;
}
#couponDetails>.detailsItem {
height: 58rpx;
line-height: 58rpx;
padding-left: 32rpx;
}
#couponDetails>.detailsItem>.sign {
width: 20rpx;
height: 20rpx;
border-radius: 50%;
background-color: #eb6100;
display: inline-block;
font-size: 26rpx;
margin-top: 24rpx;
background-color: #ffffff;
border-radius: 30rpx;
font-weight: 600;
display: flex;
justify-content: space-between;
align-items: center;
}
#couponDetails>.detailsItem>.itemTitle {
color: #333;
font-size: 26rpx;
font-weight: 500;
padding-left: 17rpx;
.writeOffBox>.writeOffNumsBox {
position: relative;
width: 150rpx;
height: 44rpx;
background-color: #FAFAFA;
}
#couponDetails>.detailsItem>.itemContent {
color: #666;
font-size: 22rpx;
font-weight: 400;
padding-left: 41rpx;
.writeOffNumsBox>.operation {
position: absolute;
display: block;
bottom: 0;
width: 44rpx;
height: 44rpx;
}
#couponDetails>.state {
.couponsInput {
position: absolute;
width: calc(100% - 88rpx);
height: 44rpx;
line-height: 44rpx;
bottom: 0;
left: 44rpx;
text-align: center;
height: 38rpx;
line-height: 38rpx;
color: #eb6100;
font-size: 40rpx;
font-weight: 500;
margin-top: 49rpx;
}
.btn {
@@ -185,54 +144,7 @@
font-size: 36rpx;
background: linear-gradient(-72deg, rgba(235, 97, 0, 1), rgba(255, 137, 42, 1));
}
.btn.select{
background: #cccccc;
}
#vCodeBox>input {
width: 600rpx;
height: 98rpx;
background-color: rgba(0, 0, 0, 0.28);
margin: 0 auto;
border-radius: 49rpx;
padding: 0 41rpx;
box-sizing: border-box;
}
#vCodeBox>.countBox {
margin-top: 40rpx;
height: 44rpx;
font-size: 26rpx;
display: flex;
justify-content: center;
align-items: center;
}
#vCodeBox>.countBox>.countContent {
position: relative;
text-align: center;
height: 100%;
line-height: 44rpx;
width: 200rpx;
padding: 0 44rpx;
box-sizing: border-box;
background-color: #eee;
border: 2px solid rgba(238, 238, 238, 1);
border-radius: 6px;
display: inline-block;
margin-left: 25rpx;
}
#vCodeBox>.countBox>.countContent>input{
position: relative;
width: 100%;
height: 100%;
text-align: center;
line-height: 44rpx;
}
#vCodeBox>.countBox>.countContent>.symbolBox{
position: absolute;
text-align: center;
width: 44rpx;
height: 44rpx;
top: -5rpx;
}
.btn.select {
background: #cccccc;
}

+ 8
- 27
pages/home/home.js View File

@@ -29,23 +29,19 @@ Page({
this.setData({
isQuerying: true
})
this.query(data);
this.query({user_phone:data.phone});
}
},
query(data) {
app.requestGet('couponbuy/searchbyphone', {
user_phone: data.phone
}, res => {
app.requestGet('admin/buy/userid',data,res=>{
this.setData({
isQuerying: false
})
if (res.code == 200) {
app.globalData.couponData = res.data[0];
app.globalData.couponToken = res.token;
if(res.code==200){
wx.navigateTo({
url: '../coupon/coupon?phone=' + data.phone
url: '../member/member?id=' + res.data.user_id
})
} else {
}else{
wx.showToast({
title: res.message,
icon: 'none',
@@ -58,27 +54,12 @@ Page({
* 扫码
*/
scanCode() {
var that=this;
wx.scanCode({
onlyFromCamera: true,
success(res) {
var result = res.result;
app.requestGet('couponbuy/searchbycouponcode', {
coupon_code: result
}, res => {
if (res.code == 200) {
app.globalData.couponData = res.data;
app.globalData.couponToken = res.token;
wx.navigateTo({
url: '../coupon/coupon?code=' + result
})
} else {
wx.showToast({
title: res.message,
icon: 'none',
duration: 2000
})
}
})
var id = res.result;
that.query({ user_code: id });
}
})
},

+ 1
- 1
pages/home/home.wxss View File

@@ -33,7 +33,7 @@
position: absolute;
width: 33rpx;
height: 12rpx;
top: -11rpx;
top: -10rpx;
left: 140rpx;
}

+ 288
- 0
pages/member/member.js View File

@@ -0,0 +1,288 @@
// pages/member/member.js
const app = getApp()
Page({

/**
* 页面的初始数据
*/
data: {
userInfo: {
avatarUrl: '',
nickName: '',
phone: '',
memberNo: 1,
integral: 0,
level_name:'',
level_cash:0,
level_point:0,
base_exchange:1
},
memberLe: ['一', '二', '三', '四', '五', '六','七','八','九','十'],
type:1,
couponList:[],
showCoupon:true,
integralType:1,//1核销积分 2赠送积分
integralNums:0,
writeOffAmount:0,//核销金额
multipleList:[1,10,50,300,500],
submiting:false
},
user_id:null,
/**
* 获取用户信息
*/
getUserInfo() {
var that = this;
app.requestGet('admin/buy/userinfo', {
user_id: this.user_id
}, res => {
if (res.code == 200) {
var {
headimgurl,
nickname,
user_phone,
user_level,
user_point_all,
user_point_use,
level_name,
level_cash,
level_point,
base_exchange
} = res.data;
var userInfo = {
avatarUrl: headimgurl,
nickName: nickname,
phone: that.handlePhone(user_phone),
memberNo: user_level,
integral: user_point_all - user_point_use,
level_name,
level_cash,
level_point,
base_exchange
}
this.setData({
userInfo: userInfo
})
} else {
wx.showToast({
title: res.message,
icon: 'none',
duration: 2000
})
}
})
},
/**
* 手机号隐藏处理
*/
handlePhone(phone) {
var str = phone + '';
return str.slice(0, 3) + '****' + str.slice(-4)
},
/**
* 切换券类型
*/
changeType(e){
var type = parseInt(e.currentTarget.dataset.type);
if(type!=this.data.type){
this.setData({
type: type,
couponList:[]
})
this.getCouponList();
}
},
/**
* 获取核销用户券列表
*/
getCouponList(){
app.requestGet('admin/buy/pendinglist', { user_id:this.user_id, item_type:this.data.type},res=>{
if(res.code==200){
this.setData({
couponList: res.data
})
}else{
wx.showToast({
title: res.message,
icon: 'none',
duration: 2000
})
}
})
},
/**
* 核销
*/
writeOff(e){
var index=e.currentTarget.dataset.index;
var couponId=this.data.couponList[index].coupon_sell_id;
wx.navigateTo({
url: '../coupon/coupon?user_id=' + this.user_id+'&coupon_sell_id='+couponId
})
},
/**
* 核销或赠送积分
*/
changeIntegral(e){
var type = parseInt(e.currentTarget.dataset.code);
this.setData({
integralType:type,
showCoupon:false,
integralNums:0,
writeOffAmount:0,
submiting:false
})
},
/**
* 修改核销或赠送积分
*/
changeIntergral(e){
var value=e.detail.value;
var str=value.replace(/[^\d]/g,'');
var writeOffAmount=0;
if(this.data.integralType==1){//核销积分
writeOffAmount=Math.floor(str/this.data.userInfo.base_exchange)
}
this.setData({
integralNums: str?parseInt(str):0,
writeOffAmount
})
},
/**
* 关闭积分页
*/
closeIntegral(){
this.setData({
showCoupon:true
})
},
/**
* 核销或赠送积分
*/
confirmIntegral(){
if(this.data.submiting){
return
}else{
var that=this;
wx.showModal({
title: '提示',
content: that.data.integralType==1?'确认核销积分':'确认赠送积分',
success (res) {
if (res.confirm) {
that.integralRequest()
}
}
})
}
},
/**
* 积分请求
*/
integralRequest(){
var that=this;
this.setData({
submiting:true
})
var integral=this.data.integralNums;
var type=this.data.integralType==1;
var data,url;
if(type==1){//核销积分
data={
user_id:this.user_id,
point_check:integral,
cash_exchange:this.data.writeOffAmount
}
url='admin/point/check';
}else{//赠送积分
data={
user_id:this.user_id,
point_add:integral
}
url="admin/point/add";
}
app.requestPost(url,data,res=>{
if(res.code==200){
that.getUserInfo();
wx.showToast({
title: type==1?'积分核销成功':'积分赠送成功',
icon: 'success',
duration: 2000
})
}else{
wx.showToast({
title: res.message,
icon: 'none',
duration: 2000
})
}
this.setData({
submiting:false
})
})
},
/**
* 快速选择积分
*/
choiceIntegral(e){
var value=e.currentTarget.dataset.value;
this.setData({
integralNums:value
})
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function(options) {
this.user_id = options.id;
this.getUserInfo();
},

/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function() {

},

/**
* 生命周期函数--监听页面显示
*/
onShow: function() {
this.getCouponList();
},

/**
* 生命周期函数--监听页面隐藏
*/
onHide: function() {

},

/**
* 生命周期函数--监听页面卸载
*/
onUnload: function() {

},

/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function() {

},

/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function() {

},

/**
* 用户点击右上角分享
*/
onShareAppMessage: function() {

}
})

+ 5
- 0
pages/member/member.json View File

@@ -0,0 +1,5 @@
{
"usingComponents": {},
"navigationBarTitleText": "核销中心",
"disableScroll": true
}

+ 71
- 0
pages/member/member.wxml View File

@@ -0,0 +1,71 @@
<!--pages/member/member.wxml-->
<view class="container">
<image class="bg" src="../../static/personal/bg.jpg"></image>
<view class="userContainer">
<view class="headBox">
<image src="{{userInfo.avatarUrl}}" mode="aspectFill"></image>
</view>
<view class="userName">{{userInfo.nickName}}</view>
<view class="userPhone">{{userInfo.phone}}</view>
<view class="crown">
<image style="width:100%;height:100%" src="../../static/member/crown.png"></image>
<view class="memberNo">{{userInfo.memberNo}}</view>
</view>
<text class="memberName">{{userInfo.level_name}}会员</text>
<text class="memberLe">积分级别:{{memberLe[userInfo.memberNo-1]}}级</text>
<text class="ratio">{{userInfo.level_cash+'元='+userInfo.level_point}}积分</text>
</view>
<view class="infoContainer">
<view class="integralBox">
<image style="width:100%;height:100%" src="../../static/member/integralBg.png"></image>
<image class="icon" src="../../static/member/iconIntegral.png"></image>
<text class="integral">{{userInfo.integral}}</text>
</view>
<view class="couponContainer" wx:if="{{showCoupon}}">
<view class="typeBox">
<view class="item {{type==1?'select':''}}" style="margin-right:50rpx;" data-type="1" bindtap="changeType">代金券</view>
<view class="item {{type==2?'select':''}}" style="margin-left:50rpx;" data-type="2" bindtap="changeType">菜品券</view>
</view>
<scroll-view scroll-y="true" class="couponList">
<view class="couponBox" wx:for="{{couponList}}" wx:key="id">
<image class="couponBgImg" src="../../static/member/couponBg.png"></image>
<view class="couponImgBox">
<image src="{{item.coupon_img_small}}"></image>
</view>
<view class="couponInfoBox">
<text class="couponTitle">{{'【'+(item.item_type==1?'代金券':'菜品券')+'】'+' '+item.coupon_name_detail}}</text>
<text class="couponMemo">{{item.coupon_memo}}</text>
<view class="couponNums">共计:{{item.num}}张</view>
<view class="btnWriteOff" data-index="{{index}}" bindtap="writeOff">核销</view>
</view>
</view>
</scroll-view>
<view class="btnBox">
<view class="btnItemBox" data-code="1" bindtap="changeIntegral">核销积分</view>
<view class="btnItemBox btnItemBoxRight" data-code="2" bindtap="changeIntegral">赠送积分</view>
</view>
</view>
<view class="integralContainer" wx:else>
<view class="intergralTitleBox">
<view class="line"></view>
<text class="title">{{integralType==1?'核销积分':'赠送积分'}}</text>
<view class="line"></view>
</view>
<input class="intergralInput" type="number" value="{{integralNums}}" bindinput="changeIntergral" />
<view wx:if="{{integralType==1}}" class="writeOffAmount">
抵消金额:<text style="color:#EB6100;padding:0 20rpx;">{{writeOffAmount}}</text>元
</view>
<view wx:if="{{integralType==2}}" class="giveChoice">快速选择:
<view wx:key="item" class="item" wx:for="{{5}}" data-value="{{multipleList[item]}}" bindtap="choiceIntegral">{{multipleList[item]}}</view>
</view>
<view wx:if="{{integralType==2}}" class="integraLe">
<text style="margin-right:15rpx;">积分级别:{{memberLe[userInfo.memberNo-1]}}级</text>
<text style="margin-left:15rpx;">{{userInfo.level_cash+'元='+userInfo.level_point}}积分</text>
</view>
<view class="btnBox">
<view class="btnItemBox" bindtap="closeIntegral">取消</view>
<view class="btnItemBox btnItemBoxRight" bindtap="confirmIntegral">确定</view>
</view>
</view>
</view>
</view>

+ 375
- 0
pages/member/member.wxss View File

@@ -0,0 +1,375 @@
/* pages/member/member.wxss */

.bg {
width: 750rpx;
height: 632rpx;
}

.userContainer {
position: absolute;
width: 100%;
height: 346rpx;
left: 0;
top: 0;
color: #fff;
}

.headBox {
position: absolute;
width: 144rpx;
height: 144rpx;
top: 93rpx;
left: 33rpx;
background-color: #fff;
border-radius: 50%;
box-sizing: border-box;
padding: 7rpx;
overflow: hidden;
}

.headBox>image {
width: 100%;
height: 100%;
border-radius: 50%;
}

.userContainer>.userName {
position: absolute;
font-size: 40rpx;
left: 194rpx;
top: 125rpx;
}

.userContainer>.userPhone {
position: absolute;
font-size: 30rpx;
left: 194rpx;
top: 179rpx;
}

.userContainer>.crown {
position: absolute;
width: 46rpx;
height: 36rpx;
left: 32rpx;
bottom: 0;
}

.crown>.memberNo {
position: absolute;
font-size: 20rpx;
left: 0;
bottom: 0;
width: 100%;
height: 76%;
text-align: center;
}

.userContainer>.memberName {
position: absolute;
left: 96rpx;
bottom: 0;
height: 36rpx;
line-height: 36rpx;
font-size: 30rpx;
}

.userContainer>.memberLe {
position: absolute;
left: 309rpx;
bottom: 0;
height: 36rpx;
line-height: 36rpx;
font-size: 30rpx;
}

.userContainer>.ratio {
position: absolute;
left: 546rpx;
bottom: 0;
height: 36rpx;
line-height: 36rpx;
font-size: 30rpx;
}

.infoContainer {
position: absolute;
width: 100%;
height: calc(100vh - 475rpx);
left: 0;
bottom: 0;
background-color: #fff;
border-radius: 42rpx;
box-sizing: border-box;
}

.infoContainer>.integralBox {
position: absolute;
width: 720rpx;
height: 214rpx;
left: 15rpx;
top: -107rpx;
}

.integralBox>.icon {
position: absolute;
width: 108rpx;
height: 86rpx;
left: 55rpx;
top: 65rpx;
}

.integralBox>.integral {
position: absolute;
right: 113rpx;
top: 0;
height: 214rpx;
line-height: 214rpx;
text-align: right;
color: #eb6100;
font-size: 60rpx;
}

.infoContainer>.couponContainer {
position: relative;
width: 100%;
height: 100%;
overflow: hidden;
}

.couponContainer>.typeBox {
display: flex;
margin: 140rpx 0 32rpx 0;
justify-content: center;
}

.typeBox>.item {
font-size: 28rpx;
width: 100rpx;
height: 84rpx;
line-height: 84rpx;
text-align: center;
color: #999;
box-sizing: border-box;
}

.item.select {
color: #333;
font-size: 30rpx;
font-weight: 700;
border-bottom: 8rpx solid #ff7615;
}

.couponList {
position: relative;
display: block;
width: 686rpx;
height: calc(100% - 256rpx - 98rpx);
padding: 0 32rpx;
}

.couponBox {
position: relative;
display: block;
width: 100%;
height: 220rpx;
margin-bottom: 24rpx;
border-radius: 10rpx;
}

.couponBox>.couponBgImg {
position: absolute;
width: 738rpx;
height: 284rpx;
left: -25rpx;
top: -26rpx;
}

.couponBox>.couponImgBox {
position: absolute;
top: 0;
left: 0;
width: 220rpx;
height: 100%;
border-radius: 10rpx;
overflow: hidden;
}

.couponImgBox>image {
width: 100%;
height: 100%;
object-fit: cover;
border-radius: 10rpx;
mask-size: cover;
-webkit-mask-size: contain;
mask-repeat: no-repeat;
-webkit-mask-repeat: no-repeat;
-webkit-mask-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANwAAADcCAYAAAAbWs+BAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ1IDc5LjE2MzQ5OSwgMjAxOC8wOC8xMy0xNjo0MDoyMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjFCMDNERkEzQTRBRDExRUE4MjM1ODBEMkRGQkM0RUNDIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjFCMDNERkE0QTRBRDExRUE4MjM1ODBEMkRGQkM0RUNDIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MUIwM0RGQTFBNEFEMTFFQTgyMzU4MEQyREZCQzRFQ0MiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MUIwM0RGQTJBNEFEMTFFQTgyMzU4MEQyREZCQzRFQ0MiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4wqVPuAAADBUlEQVR42uzYz0pUcRzG4RlNBaWgTdDChSRtAhdSSLQIrQvwHrwA78SCopswiNZBtBIVvAlRWggRZC38l++PjiDijGfmnKLF88CLlGf1hQ/HmW6nt9vZq2wxm87GOkAvd7IfNz1065r/m8w+Zi/dEGq7Xye4kSv/fpr9FBsMbK7OQ5eDe5FtuBsMZbnOQ93q51R26GYwtKPsQbZX5w332b2gkfFs7aaHRjt/vo18617Q2KPsV7+PZiW4d9m8W0ErlrJv2XavPymX3AhaU15ib7L32ezVX5YvTU6qh4B2lS9S1rMP2U62X4L77S7wb4w4AQgOBAcIDgQHCA4EB4IDBAeCAwQHggPBAYIDwQGCA8EBggPBgeAAwYHgAMGB4EBwgOBAcIDgQHCA4EBwIDhAcCA4QHAgOBAcIDgQHCA4EBwgOBAcCA4QHAgOEBwIDgQHCA4EBwgOBAeCAwQHggMEB4IDBAeCA8EBggPBAYIDwYHgAMGB4ADBgeAAwYHgQHCA4EBwgOBAcCA4QHAgOEBwIDhAcCA4EBwgOBAcIDgQHAgOEBwIDhAcCA4EBwgOBAcIDgQHCA4EB4IDBAeCAwQHggPBAYIDwQGCA8EBggPBgeAAwYHgAMGB4EBwgOBAcIDgQHCA4EBwIDhAcCA4QHAgOBAcIDgQHCA4EBwIDhAcCA4QHAgOEBwIDgQHCA4EBwgOBAeCAwQHggMEB4IDBAeCA8EBggPBAYIDwYHgAMGB4ADBgeAAwYHgQHCA4EBwgOBAcCA4QHAgOEBwIDgQHCA4EBwgOBAcIDgQHAgOEBwIDhAcCA4EBwgOBAcIDgQHCA4EB4IDBAeCAwQH/1Nwp84Af8VB9jgbz7plJbg9d4HWLWb3sp3s+PIb7pPbQGsOs7vZl+t+WV5zC9mmO0ErSmzf+32G28p23Qkae9Yvtos3XDFf/a0JDOeg+szW12j182t2Vn3QAwb3vOqoU+cNd2E1e+12MLCJ7GjQ4Iq5bD176IZQW7fpQ0+yleqD4Ew25abQLLhzAQYAMqkvynNUO3sAAAAASUVORK5CYII=');
mask-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANwAAADcCAYAAAAbWs+BAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ1IDc5LjE2MzQ5OSwgMjAxOC8wOC8xMy0xNjo0MDoyMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjFCMDNERkEzQTRBRDExRUE4MjM1ODBEMkRGQkM0RUNDIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjFCMDNERkE0QTRBRDExRUE4MjM1ODBEMkRGQkM0RUNDIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MUIwM0RGQTFBNEFEMTFFQTgyMzU4MEQyREZCQzRFQ0MiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MUIwM0RGQTJBNEFEMTFFQTgyMzU4MEQyREZCQzRFQ0MiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4wqVPuAAADBUlEQVR42uzYz0pUcRzG4RlNBaWgTdDChSRtAhdSSLQIrQvwHrwA78SCopswiNZBtBIVvAlRWggRZC38l++PjiDijGfmnKLF88CLlGf1hQ/HmW6nt9vZq2wxm87GOkAvd7IfNz1065r/m8w+Zi/dEGq7Xye4kSv/fpr9FBsMbK7OQ5eDe5FtuBsMZbnOQ93q51R26GYwtKPsQbZX5w332b2gkfFs7aaHRjt/vo18617Q2KPsV7+PZiW4d9m8W0ErlrJv2XavPymX3AhaU15ib7L32ezVX5YvTU6qh4B2lS9S1rMP2U62X4L77S7wb4w4AQgOBAcIDgQHCA4EB4IDBAeCAwQHggPBAYIDwQGCA8EBggPBgeAAwYHgAMGB4EBwgOBAcIDgQHCA4EBwIDhAcCA4QHAgOBAcIDgQHCA4EBwgOBAcCA4QHAgOEBwIDgQHCA4EBwgOBAeCAwQHggMEB4IDBAeCA8EBggPBAYIDwYHgAMGB4ADBgeAAwYHgQHCA4EBwgOBAcCA4QHAgOEBwIDhAcCA4EBwgOBAcIDgQHAgOEBwIDhAcCA4EBwgOBAcIDgQHCA4EB4IDBAeCAwQHggPBAYIDwQGCA8EBggPBgeAAwYHgAMGB4EBwgOBAcIDgQHCA4EBwIDhAcCA4QHAgOBAcIDgQHCA4EBwIDhAcCA4QHAgOEBwIDgQHCA4EBwgOBAeCAwQHggMEB4IDBAeCA8EBggPBAYIDwYHgAMGB4ADBgeAAwYHgQHCA4EBwgOBAcCA4QHAgOEBwIDgQHCA4EBwgOBAcIDgQHAgOEBwIDhAcCA4EBwgOBAcIDgQHCA4EB4IDBAeCAwQH/1Nwp84Af8VB9jgbz7plJbg9d4HWLWb3sp3s+PIb7pPbQGsOs7vZl+t+WV5zC9mmO0ErSmzf+32G28p23Qkae9Yvtos3XDFf/a0JDOeg+szW12j182t2Vn3QAwb3vOqoU+cNd2E1e+12MLCJ7GjQ4Iq5bD176IZQW7fpQ0+yleqD4Ew25abQLLhzAQYAMqkvynNUO3sAAAAASUVORK5CYII=');
}

.couponInfoBox {
position: absolute;
right: 0;
top: 0;
height: 100%;
width: 466rpx;
}

.couponInfoBox>.couponTitle {
position: absolute;
left: 24rpx;
color: #6A0A0E;
font-size: 30rpx;
top: 31rpx;
font-weight: 700;
}

.couponInfoBox>.couponMemo {
position: absolute;
left: 36rpx;
color: #333333;
font-size: 20rpx;
top: 72rpx;
}

.couponInfoBox>.couponNums {
position: absolute;
left: 36rpx;
width: 141rpx;
height: 36rpx;
line-height: 34rpx;
border: 1rpx solid #EB6100;
border-radius: 18rpx;
box-sizing: border-box;
text-align: center;
color: #EB6100;
font-size: 20rpx;
bottom: 44rpx;
}

.couponInfoBox>.btnWriteOff {
position: absolute;
width: 110rpx;
height: 60rpx;
text-align: center;
line-height: 60rpx;
right: 24rpx;
bottom: 32rpx;
border-radius: 30rpx;
background-color: #EB6100;
color: #ffffff;
font-size: 30rpx;
}

.btnBox {
position: absolute;
width: 100%;
height: 98rpx;
left: 0;
bottom: 0;
display: flex;
justify-content: space-between;
background-color: #ffffff;
box-shadow: 0 0 15rpx 5rpx rgba(0, 0, 0, 0.1);
}

.btnBox>.btnItemBox {
width: 50%;
height: 100%;
line-height: 98rpx;
font-size: 36rpx;
color: #EB6100;
text-align: center;
background-color: #ffffff;
}

.btnBox>.btnItemBoxRight {
color: #ffffff;
background-image: linear-gradient(to right, #EB6100, #FF892A);
}
.infoContainer>.integralContainer{
width: 100%;
height: 100%;
overflow: hidden;
}
.integralContainer>.intergralTitleBox {
position: relative;
width: 609rpx;
margin: 205rpx auto 64rpx auto;
display: flex;
justify-content: space-between;
align-items: center;
}

.intergralTitleBox>.line {
width: 173rpx;
height: 1rpx;
background-color: #B7B7B7;
}

.intergralTitleBox>.title {
color: #333333;
font-size: 45rpx;
font-weight: 600;
}

.integralContainer>.intergralInput {
position: relative;
display: block;
width: 600rpx;
height: 98rpx;
line-height: 94rpx;
text-align: center;
color: #333333;
font-size: 60rpx;
font-weight: 600;
padding: 0 35rpx;
margin: 0 auto;
box-sizing: border-box;
background-color: #D8D8D8;
border-radius: 49rpx;
border: 2rpx solid rgba(216, 216, 216, 1);
}

.integralContainer>.writeOffAmount {
position: relative;
width: 100%;
text-align: center;
color: #333333;
font-size: 26rpx;
margin-top: 32rpx;
font-weight: 600;
}
.integralContainer>.giveChoice{
position: relative;
width: 100%;
display: flex;
justify-content: center;
align-items: center;
color: #333333;
font-size: 26rpx;
margin-top: 16rpx;
font-weight: 600;
}
.giveChoice>.item{
position: relative;
padding: 9rpx 20rpx;
margin-right: 20rpx;
border:1rpx solid #999999;
box-sizing: border-box;
border-radius: 50rpx;
color: #999999;
font-size: 26rpx;
min-width: 80rpx;
text-align: center;
}
.integralContainer>.integraLe{
position: relative;
width: 100%;
text-align: center;
margin-top: 40rpx;
color: #333333;
font-size: 26rpx;
font-weight: 600;
}

+ 144
- 0
pages/personal/personal.js View File

@@ -0,0 +1,144 @@
// pages/personal/personal.js
const app = getApp()
Page({

/**
* 页面的初始数据
*/
data: {
userInfo: null,
canIUse: wx.canIUse('button.open-type.getUserInfo'),
hasUserInfo: false,
userNo: '', //员工编号
record:{
check_cash:0,
check_dish:0,
sum_check_point:0,
sum_add_point:0
}
},

/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
wx.hideShareMenu();
if (app.globalData.userInfo) {
this.setData({
userInfo: app.globalData.userInfo,
hasUserInfo: true
})
} else if (this.data.canIUse) {
// 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
// 所以此处加入 callback 以防止这种情况
app.userInfoReadyCallback = res => {
this.setData({
userInfo: res.userInfo,
hasUserInfo: true
})
}
} else {
// 在没有 open-type=getUserInfo 版本的兼容处理
wx.getUserInfo({
success: res => {
app.globalData.userInfo = res.userInfo
this.setData({
userInfo: res.userInfo,
hasUserInfo: true
})
}
})
}
this.setData({
userNo: app.globalData.storeData.account_id
})
},
/**
* 获取头像昵称
*/
getUserInfo: function (e) {
app.globalData.userInfo = e.detail.userInfo
if (e.detail.userInfo) {
wx.setStorageSync('laomenkuangUserInfo', e.detail.userInfo);//老门框用户信息-头像昵称
this.setData({
userInfo: e.detail.userInfo,
hasUserInfo: true
})
var userInfo = app.setUserInfo(e.detail.userInfo)
app.requestPost('submit', userInfo, res => {
console.log(res)
})
}
},
/**
* 显示记录
*/
showVecords: function(e){
var code = e.currentTarget.dataset.index;
wx.navigateTo({
url: '../record/record?code=' + code
})
},
/**
* 获取记录数据
*/
getRecordNums(){
app.requestGet('admin/self/typenum',{},res=>{
if(res.code==200){
var {check_cash,check_dish,sum_check_point,sum_add_point}=res.data;
this.setData({
record:{check_cash,check_dish,sum_check_point,sum_add_point}
})
}
})
},

/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {

},

/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
this.getRecordNums()
},

/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {

},

/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {

},

/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {

},

/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {

},

/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {

}
})

+ 5
- 0
pages/personal/personal.json View File

@@ -0,0 +1,5 @@
{
"usingComponents": {},
"navigationBarTitleText": "个人中心",
"disableScroll": true
}

+ 30
- 0
pages/personal/personal.wxml View File

@@ -0,0 +1,30 @@
<!--pages/personal/personal.wxml-->
<view class="container">
<image class="bg" src="../../static/personal/bg.jpg"></image>
<view class="userContainer">
<button class="getUserBtn" wx:if="{{!hasUserInfo && canIUse}}" open-type="getUserInfo" bindgetuserinfo="getUserInfo"> 获取头像</button>
<view class="headBox" wx:else>
<image src="{{userInfo.avatarUrl}}" mode="aspectFill"></image>
</view>
<view class="userName">{{userInfo?userInfo.nickName:'用户昵称'}}</view>
<view class="userNo">{{userNo}}</view>
</view>
<view class="infoContainer">
<view class="listBox" data-index='1' catchtap='showVecords'>
<text class="listName icon1">核销代金券</text>
<text class="listValue">{{record.check_cash}}</text>
</view>
<view class="listBox" data-index='2' catchtap='showVecords'>
<text class="listName icon2">核销菜品券</text>
<text class="listValue">{{record.check_dish}}</text>
</view>
<view class="listBox" data-index='3' catchtap='showVecords'>
<text class="listName icon3">积分核销</text>
<text class="listValue">{{record.sum_check_point}}</text>
</view>
<view class="listBox" data-index='4' catchtap='showVecords'>
<text class="listName icon4">赠送积分</text>
<text class="listValue">{{record.sum_add_point}}</text>
</view>
</view>
</view>

+ 102
- 0
pages/personal/personal.wxss View File

@@ -0,0 +1,102 @@
/* pages/personal/personal.wxss */
.bg{
width: 750rpx;
height: 632rpx;
}
.getUserBtn{
position: absolute;
top: 178rpx;
left: 195rpx;
width: 150rpx;
height: 50rpx;
color: #000000;
font-size:20rpx;
line-height:50rpx;
border-radius:15rpx
}
.userContainer{
position: absolute;
width: 100%;
height: 337rpx;
left: 0;
top: 0;
}
.headBox{
position: absolute;
width: 144rpx;
height: 144rpx;
top: 33rpx;
left: 33rpx;
background-color: #ffffff;
border-radius: 50%;
box-sizing: border-box;
padding: 6rpx;
overflow: hidden;
}
.headBox>image {
width: 100%;
height: 100%;
border-radius: 50%;
}
.userContainer>.userName{
position: absolute;
color: #ffffff;
font-size: 37rpx;
top: 65rpx;
left: 200rpx;
}
.userContainer>.userNo{
position: absolute;
color: #ffffff;
font-size: 37rpx;
top: 120rpx;
left: 200rpx;
}
.infoContainer{
position: absolute;
width: 100%;
height: calc(100vh - 337rpx);
left: 0;
bottom: 0;
background-color: #ffffff;
border-radius: 42rpx;
box-sizing: border-box;
padding-top: 25rpx;
}
.infoContainer>.listBox{
width: 100%;
height: 40rpx;
padding: 25rpx 0;
overflow: hidden;
display: flex;
justify-content: space-between;
align-items: center;
}
.listBox>.listName{
margin-left: 53rpx;
padding-left: 58rpx;
background-size:37rpx 29rpx;
background-position:left center;
background-repeat: no-repeat;
}
.listValue{
margin-right: 31rpx;
padding-right: 60rpx;
background-size: 11rpx 21rpx;
background-position:right center;
background-repeat: no-repeat;
color: #eb6100;
background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAVCAYAAACQcBTNAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ1IDc5LjE2MzQ5OSwgMjAxOC8wOC8xMy0xNjo0MDoyMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkY3REUxRkMwQTNFNjExRUFBODBEQ0EwQTA0QjRCN0I3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkY3REUxRkMxQTNFNjExRUFBODBEQ0EwQTA0QjRCN0I3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RjdERTFGQkVBM0U2MTFFQUE4MERDQTBBMDRCNEI3QjciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RjdERTFGQkZBM0U2MTFFQUE4MERDQTBBMDRCNEI3QjciLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz64puk2AAABGElEQVR42oTSLUiDURTG8TsnBhmbhgUFTYuzaNC6IcyF2QxDFg0Ki4LYLKJ5Qd6y6IogbGy6oFmTyWYZaFpacEEY+D/wxHvvLvx43/BwP845qSRJVpxz97jCu4usBZyhih4K88K36CKPJ32D4RnqukJBJ2RDYVtT1PCFXTxiKRS2Ndbd7VtGG6lQ2Gnnmk46xnUs7HT3ut5ygdNY2Kk6Tf23cBgL27rDDdLo2MNjYVuX6GPZ3jAvvIeS/jOx8LY6ars+4CQULuIZOQxUxpkvbC0fakZecYQ/XzU28IJ1vKlkU1+d17TTJj5wgF9fB/M62q7wiQomvkHK6dVbmo2Khsk7otadHXxjHz+hWi7iHKtoYBTr0L8AAwBIdjV19UZB3gAAAABJRU5ErkJggg==');
}
.icon1{
background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACUAAAAdCAYAAAAtt6XDAAAACXBIWXMAAAsTAAALEwEAmpwYAAAF7mlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAyMC0wNi0wMVQxNzowMjoyMCswODowMCIgeG1wOk1vZGlmeURhdGU9IjIwMjAtMDYtMDFUMTc6MDM6NTMrMDg6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMjAtMDYtMDFUMTc6MDM6NTMrMDg6MDAiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6YWRhMzEzMDItNDQ5NC04YjQyLThkN2EtY2M4ZWZhYTFkZmI1IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjk5QUQ0RDU4QTNFNjExRUE5NjFFRUNGNkFDMTYxMkZCIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6OTlBRDRENThBM0U2MTFFQTk2MUVFQ0Y2QUMxNjEyRkIiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5OUFENEQ1NUEzRTYxMUVBOTYxRUVDRjZBQzE2MTJGQiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5OUFENEQ1NkEzRTYxMUVBOTYxRUVDRjZBQzE2MTJGQiIvPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDphZGEzMTMwMi00NDk0LThiNDItOGQ3YS1jYzhlZmFhMWRmYjUiIHN0RXZ0OndoZW49IjIwMjAtMDYtMDFUMTc6MDM6NTMrMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz63cCiuAAACG0lEQVRYhe3XT4hNYRjH8c+VWGBmg4XYKFHC5lprJpGaGeVfspHZYKHMUg1ixEpZWLCRncXMKMNYWFAkqVv+LpTxZyE0sjBSYnEt3ufmdDsn916GUfOrt+ec933et+953ud9zjmlarVqqmnGvwbI0zRUo5qZvSmXy/8kwSqVSil7P/UjlVGpoP9PK3dnpmSk/iuoK2grGKsqCHsLKslJlXqo8/iEHgzmTfgbqofah7X4iA3Y9htrz8dJPMbXaA9xPMYahoLnOBbXu1sE2ooxHMIqzI62BofxInwahiLlFClqrQANoh3X0Il50Tqjry18csGK6tTbsAubBFqAC1IuHpW2KqtbeCNFbEn43sF41qkoUovCjheMF+mAFIXRHCBYjJsB9D58D9Y7FUH1hK00CVWbdzpnrB3XA+w+9kR/VyNQy3Akri82CbUibAXr8QgrMQuXpaQfQzfuhu/y+kXqc+ocdkpPdQNDTUJl1YvVuIRXUpK/wyZ8wNzw+1Y/sT5SewNoBNs1X7mfhS1jP15L0emRivJGKVL8PNkvfwVV02ZMFIzlvhpCI2H7AmIXhnEbW/Ak49sXdrRRqFZ1VnqYbvTjnvRWWCedupr6w2cCZyYbalzKpSoGcBUdmBOtQ4rmQPj0yik7RcWzla+A2pYOY4dUGLvkHHl8lkrCcN5Ck/U9NYSlOIWn+I4veIATMZYLBKXpn9EGNQ3VqH4AnJBqGAhwlDIAAAAASUVORK5CYII=');
}
.icon2{
background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACUAAAAdCAYAAAAtt6XDAAAACXBIWXMAAAsTAAALEwEAmpwYAAAF7mlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAyMC0wNi0wMVQxNzowMjozOSswODowMCIgeG1wOk1vZGlmeURhdGU9IjIwMjAtMDYtMDFUMTc6MDQ6MTErMDg6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMjAtMDYtMDFUMTc6MDQ6MTErMDg6MDAiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6YTdjYWNmZGUtNDQzNC0wMDRhLTlhNzAtNTA2ZWE0ZTIxOWI4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkE1NDJDMjdCQTNFNjExRUE4OTQ2ODdBMURDQzMzOEVGIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6QTU0MkMyN0JBM0U2MTFFQTg5NDY4N0ExRENDMzM4RUYiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBNTQyQzI3OEEzRTYxMUVBODk0Njg3QTFEQ0MzMzhFRiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBNTQyQzI3OUEzRTYxMUVBODk0Njg3QTFEQ0MzMzhFRiIvPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDphN2NhY2ZkZS00NDM0LTAwNGEtOWE3MC01MDZlYTRlMjE5YjgiIHN0RXZ0OndoZW49IjIwMjAtMDYtMDFUMTc6MDQ6MTErMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz79b+aGAAACIUlEQVRYhe3XT4hNcRQH8M+TWGBmg4WNEmEhpWetmaJojDJoykImNTbKLNUgRqyUhQUb2VkYyjAphVBWT/6kKENKKSPFSInFs/j9Xm537p13HzNm1PvW6dz7O9/fvd97zrnnvVuqVqtmGmZNt4AsNEUVxezkSblcnpYGq1QqpeT5zM9UAqWc9clGZmVmZKb+K1HX0PIP7l+S0SppUefxBZ24nLGhWscmBWlR+7Een7AJO/7i2gtxEs/wPdoTHI+xwqLgFY7F4z2pWKmO1dCFERzCGsyNthaH8TpyCosi9BQha42iSyh9K26gHQuitce1lsjJFJY3p95Hv7hBQYtwQcjaUaFUSdzFOyF7SyP3AUaTpLxMLYl+NCeehwNCFoYzBNVE34yCPkTuwTQpT1Rn9JUGRdX2nc6IteI2lsfr7ovrHUVErcCReHwxFas3BlZFX0EbHmE15uCqULYRbMG9yF2ZFpDuqXPojk91C4MZoouiF+twCS+EJv+IzdHPj7wf6Y3pTPVGQUPYaXwmJhoD8DL6sjDz3gpjoFsYyhuFTPH7zX5TT1QN2zCWE5sIQ9H34TN2C2W7j+14muD2RT9cVNSf4qzwMFvRj4fCLNqAOwlef+SM4cxUixpFj1D2AVwXGn5etDYhmwOR0yNj7OQNz0Z/XJO9dQW7hMHYIeOVx1fsjdxxmKr/U4NYhlN4jp/4hsc4EWOZgqDU/BgtiKaoovgFMNZ1HHLhwwgAAAAASUVORK5CYII=');
}
.icon3{
background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACUAAAAdCAYAAAAtt6XDAAAACXBIWXMAAAsTAAALEwEAmpwYAAAF7mlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAyMC0wNi0wMVQxNzowMjo1OCswODowMCIgeG1wOk1vZGlmeURhdGU9IjIwMjAtMDYtMDFUMTc6MDQ6MjkrMDg6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMjAtMDYtMDFUMTc6MDQ6MjkrMDg6MDAiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OWFjZmY0NjUtMTMyNi1mNDQ0LTk0NWUtMDExMTM5NzM5OTBmIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkIwNzY0MUE2QTNFNjExRUFCOTRCODY2OUE3MTJENzY3IiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6QjA3NjQxQTZBM0U2MTFFQUI5NEI4NjY5QTcxMkQ3NjciIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpCMDc2NDFBM0EzRTYxMUVBQjk0Qjg2NjlBNzEyRDc2NyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpCMDc2NDFBNEEzRTYxMUVBQjk0Qjg2NjlBNzEyRDc2NyIvPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo5YWNmZjQ2NS0xMzI2LWY0NDQtOTQ1ZS0wMTExMzk3Mzk5MGYiIHN0RXZ0OndoZW49IjIwMjAtMDYtMDFUMTc6MDQ6MjkrMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6vQJFyAAAEXElEQVRYhc2XXUhkZRjHf+NRx2ScXWHTMzCZQn4g4yjO0WguHBARnFoYaPciPy7qQulyuyuKaAu7CGK6EoPqRuuiViLakbypDJTk9aCjaNruGu6CowbmKubojKeLc2YY9cw0zm4ff3h54bzPeZ//ed7n+Z/3sWiaRjYYGBi4PDs72wYoQL3FYnlK0zQn8ARwCdCAh8CfFovlgaZp94ElQHg8nsnh4eE/snIEWDKRUhQl32q1XotGo68APqAw243P4Aj4wWq1fhaNRr8SQsRyIqUoSpskSR/H4/FaAEmScLvdNDQ0UFtbi8PhQJZlioqKsNlsAOzv73N4eEgkEmFjY4OVlRUWFhYIh8PE43GMfVbi8fiAEOLHC5FSFOV54Gsgv6Kigp6eHjo7OykpKckmKuewt7fHxMQEo6OjrK+vA8SAgBDitukLmqadGx6PZ8Pj8WjBYFCLxWLa40IsFtOCwaDm8Xg0w4ep/7w0HycDOJ1OJEnKKTpmkCQJp9N5yocZ0h1f8mFzczO9vb14vV7y8/NzIhOLxZiammJkZARVVU/5F0Kcs8/opaysDFVVUVUVm81Ga2srLpeLmpoaZFlOJnoqEokeiURYXV1lcXGRmZkZ9vf3k3tubW1l/IiMkZqamiIUChEKhZibm+Pk5MR0k+LiYgAODg5M1/Py8mhqasLv9+P3+/F6vUn/F45UYWEhgUCAQCDAzs4O4XCYpaUl1tbWiEQibG5ucnx8nIyC3W6noKCA8vJyZFmmqqqK+vp63G43paWlmVxlTyoVpaWl+Hw+fD5f1pvninTV958it3JKgaIolsdBJBX/y0j9U6SuAINAGDg0xhxw01jLndTY2FguhF4E7gCvAw2A1RiNwFvAXcMmN1KDg4P09/czOTnJ8fFxtoS+RL9ffQu0AyXGaDee2Q2btMQupOgtLS24XC6qq6uTip6CJ4FPAQvwNvpRpeJ74D569J42bH8Czsl7RkWfnp5mfHycUCiEqqrpFD1RfTfRj+c28IKJnQOYBJ4BNoFy4H0hxBsXIpX6C9jd3WV+fv6Uom9tbbG9vZ0gNYeeN+3oUUnFJfSoNAA/A+8AIWBBCOHOmVQ6pOjUIXpC24FngQ+AXuBXYNwgewfwGrYPgSMhhPXsno8snmnwMtAEfAH8ZhB6AHQC24DNsDsyezlj9WXb6Rj4xZgV4FXgHvpxXQV2AT+wZti0GPO9i5C6CzA0NJS88GeBb4z5BvrRvAR8DnwHBICFFNsbxmx6R//bxqGyspLu7m46Ojqw2+1mtomcKkPPHzt6Fb6XhvybwLsG8WohRHaSYDhrAz5BL2EkSaKxsRGXy0VdXR2yLONwOOjq6kr9ISfE04IulB8CM8ZaK3qErqI3rteBW2bFlLEZ7evrK1heXr4OJJpRs8I4e0u4hi6M6fqxPfRCuAXmFZ6RVCoURbkMPIde7vXoqlyBLopncQV4DT0qtehVtoqeQx8BvycMH4nUv4m/AB4cCh5yPoATAAAAAElFTkSuQmCC');
}
.icon4{
background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACUAAAAdCAYAAAAtt6XDAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ1IDc5LjE2MzQ5OSwgMjAxOC8wOC8xMy0xNjo0MDoyMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkI4NjdBQ0EwQTNFNjExRUFCOEIwREQwMzE5NURBOUY1IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkI4NjdBQ0ExQTNFNjExRUFCOEIwREQwMzE5NURBOUY1Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6Qjg2N0FDOUVBM0U2MTFFQUI4QjBERDAzMTk1REE5RjUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6Qjg2N0FDOUZBM0U2MTFFQUI4QjBERDAzMTk1REE5RjUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5X3tISAAAFD0lEQVR42sxXWUhkVxCtbtt9G1wjrlFwTcRd/DAG40Ak6IcaBhMENR9GxfwGgoyRETc0gjGYqB+CERHUj3zE4IBhxLghfohbRCVqVNzjvrV26ty8ltYx+rrHQAoO7/a71feeV1W3qq5Co9GQvpKRkWE8Ozv7Hv/36dXVVRi/8mI4M2wklX3GOuMPxpiRkdFLX1/fvpaWlgs56yv0IRUREaFQqVT5l5eXX/H/XG7Pm5mZEdY7Ozt7fSOFYo3JlarV6u9GR0c1b0yKyYgnE/qeF83BmL+cEhISKDg4mDw9Pcne3p6USqXQY+vR9vY2LS4u0vj4OPX09NDc3Jx2jR94jc8xZnJvTopFKNfX11NkZKReLh8ZGaG8vLzrfe8jpSQDZGhoiHZ3d2XrQ3d4eFi2vkGWgpiYmFBMTAyFhYWRt7c3OTs7k6mpqZhDTK2vr9PCwgKNjY3R4OAgnZ+f39j30d3n4+ND8/PzelkXxEFSDimVIe5rb2+nqakpYYHJyUlaXl6mra0tOjg4EPPW1tbk4OBA7u7uFBQUJCwaGBio+3H3ikGkINgE+C9ESf9DkUUKvtf1f3V1Ne3s7MjeBDmrqqrqxnqP7r62tjbq7Oyk6OhoCg0NFUHs5ORElpaWYv7o6Ig2NjauTx9y1K3TZ1hK4KD0xIPxrk5t+1BbTk5PT/X6EFQArpdaSyl4fSseljA+ZZgzXjGKRjEJUqxgxi+yGCEMN4mM00MbITW4uLjQ6uqqcBEsBIHFUHZQfgICAsTpw1Pn9BkxehgfcE1EXRSlCSmO8VTFirB5NyNWd0M3NzexEICNHR0dRXK0sLAQX1xeXi5y1eHhIRUXF8s+7pLkgxC7/KqhoUFhZ2enqK2t1XR0dCD7vlCEh4cX8+C5h4cHZWdni839/f3J1tb23lU3NzepqKhIxAsKMbczlJubi4J7pz5yWkFBAYYX/zQNClVFRYUmPj5eJNKTk5Pz2NhYEx7ugdTvcHlTUxOFhIToFScweWtrqyjQCGRYtaSkRAT93t6eCPSJiQnq7e297hJYEPEmKM4wglaWlpYoJSUFwz/xWW9jhBZE73wiWSgqKooKCwtpenqaUlNT/039UooZi8TERMrKyrox2djYqB3+jDxlrN3AUPHz8yPuKiktLe0+NQS3BQaurq4iuLXS1dVF3d0Ia9pjlMN9GjkJTdidXcRtyCvuCOALNeMvKUYOERaMU3bZAXcJ6uPj413uUNX7+/tcEg9OV1ZWTpqbm3EafuQDYwwSNjY2NDMzI9zIa4PHx8yjk0AKkCM1NTXQ3WB8glRiCPi/v2I/7sk0TFiTlJSkkTh8o9VR6hPUyEcsjoxWTgE/MVwNdTnch9Mrrfkb48vXat/FxcWDQV1ZWUllZWXEeQWvkhiTTOwzXChkXjxQJWKQNgYGBqivr09kF8Yzdts1AcQUujVv1DGcICTKhwTHHQVWCk7RgjMWZfCKYnh6eXmJFMDWx4lMZEIvb1iRSQXx8xepvNwpyOKZmZmUnp5O5ubm1+/7+/uptLRUFF+5gtK0trZGfBDw8zkTenFnQWazvgUFpH4pZm7LE+iim8zJyaHk5GTiO5yYQJnBpUBOW40qgXyEzkEyxEdM6srQHh33qUrG+9p+Oz8/n+Li4vQK7rq6OuK0IBI4I5wJbT3GDTlRIvcOfltZWemVdNHD834oM3FMaOhRru0SMbDIZHzNcDcgG3zBhL69T+FvAQYAZJmQoqUtypEAAAAASUVORK5CYII=');
}

+ 12
- 0
pages/record/comm.wxs View File

@@ -0,0 +1,12 @@

var showCouponName=function(item){
if(item.item_type==1){//代金券
return parseInt(item.original_price)+'元代金券'
}else{//菜品券
return item.coupon_name_detail
}
}

module.exports = {
showCouponName:showCouponName
};

+ 93
- 69
pages/record/record.js View File

@@ -7,77 +7,120 @@ Page({
*/
data: {
userInfo: null,
canIUse: wx.canIUse('button.open-type.getUserInfo'),
hasUserInfo: false,
userNo: '', //员工编号
showIndex: 1,
data: [],
startDate:'',
endDate: '',
code:0,
nameList:['代金券核销记录','菜品券核销记录','积分核销记录','积分赠送记录'],
recordList:[],
recordType:null,//记录类型
scrollTop:0,
},
panel: function(e) {
if (e.currentTarget.dataset.index != this.data.showIndex) {
this.setData({
showIndex: e.currentTarget.dataset.index
})
} else {
this.setData({
showIndex: 0
})
curPage:1,//当前页
showNums:10,//每页显示数量
getIng:false,
getEnd:false,
startTime:'',
endTime:'',
/**
* 获取记录
*/
getRecord(){
this.getIng=true;
var url='',params={};
var type=this.data.recordType;
if(type==1){//代金券
url='admin/self/checkcouponlog'
params={item_type:1}
}else if(type==2){//菜品券
url='admin/self/checkcouponlog'
params={item_type:2}
}else if(type==3){//积分核销
url='admin/self/checkpointlog'
}else if(type==4){//赠送积分
url='admin/self/addpointlog'
}
Object.assign(params,{begin_date:this.startTime,end_date:this.endTime,cur_page:this.curPage,show_num:this.showNums})
app.requestGet(url,params,res=>{
if(res.code==200){
var list=[];
if(this.curPage==1){
list=res.data
}else{
list=[...this.data.recordList,...res.data];
}
if(res.data.length<this.showNums){
this.getEnd=true;
}
this.setData({
recordList:list
})
this.getIng=false;
}else{
this.getIng=false;
}
})
},
/**
* 数据到底
*/
downEvent(){
if(this.getEnd||this.getIng){
}else{
console.log('11111')
this.curPage++;
this.getRecord();
}
},

/**
* 时间筛选
*/
timeScreen(){
this.curPage=1;
this.getIng=false;
this.getEnd=false;
this.startTime=this.data.startDate;
this.endTime=this.data.endDate;
this.setData({
scrollTop:0
})
this.getRecord()
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function(options) {
this.setData({
recordType:options.code
})
wx.hideShareMenu();
if (app.globalData.userInfo) {
this.setData({
userInfo: app.globalData.userInfo,
hasUserInfo: true
})
} else if (this.data.canIUse) {
// 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
// 所以此处加入 callback 以防止这种情况
app.userInfoReadyCallback = res => {
this.setData({
userInfo: res.userInfo,
hasUserInfo: true
})
}
} else {
// 在没有 open-type=getUserInfo 版本的兼容处理
wx.getUserInfo({
success: res => {
app.globalData.userInfo = res.userInfo
this.setData({
userInfo: res.userInfo,
hasUserInfo: true
})
}
userNo: app.globalData.storeData.account_id,
code: options.code-1
})
}
this.getRecord()
},
/**
* 选择开始时间
*/
bindStartDateChange: function (e) {
this.setData({
userNo: app.globalData.storeData.account_id
startDate: e.detail.value
})
},
/**
* 获取头像昵称
* 选择结束时间
*/
getUserInfo: function (e) {
app.globalData.userInfo = e.detail.userInfo
if (e.detail.userInfo) {
wx.setStorageSync('laomenkuangUserInfo', e.detail.userInfo);//老门框用户信息-头像昵称
this.setData({
userInfo: e.detail.userInfo,
hasUserInfo: true
})
var userInfo = app.setUserInfo(e.detail.userInfo)
app.requestPost('submit', userInfo, res => {
console.log(res)
})
}
bindEndDateChange: function (e) {
this.setData({
endDate: e.detail.value
})
},

/**
* 生命周期函数--监听页面初次渲染完成
*/
@@ -89,26 +132,7 @@ Page({
* 生命周期函数--监听页面显示
*/
onShow: function() {
this.setData({
data:[]
})
var data={
cur_page: 1,
show_num: 99
}
app.requestGet('couponbuy/checklog', data,res=>{
if(res.code==200){
this.setData({
data: res.data
})
}else{
wx.showToast({
title: res.message,
icon: 'none',
duration: 2000
})
}
})
},

/**

+ 1
- 1
pages/record/record.json View File

@@ -1,5 +1,5 @@
{
"usingComponents": {},
"navigationBarTitleText": "核销记录",
"navigationBarTitleText": "个人中心",
"disableScroll": true
}

+ 40
- 27
pages/record/record.wxml View File

@@ -1,34 +1,47 @@
<!--pages/record/record.wxml-->
<wxs src="./comm.wxs" module="comm" />
<view class="container">
<image class="bg" src="../../static/record/bg.jpg"></image>
<view class="content">
<image class="bg" src="../../static/personal/bg.jpg"></image>
<view class="userContainer">
<view class="headBox">
<button wx:if="{{!hasUserInfo && canIUse}}" open-type="getUserInfo" bindgetuserinfo="getUserInfo" style="width:100%;height:100%;font-size:34rpx;line-height:200rpx;"> 获取头像 </button>
<image wx:else src="{{userInfo.avatarUrl}}" mode="aspectFill"></image>
<image wx:if="{{userInfo}}" src="{{userInfo.avatarUrl}}" mode="aspectFill"></image>
</view>
<view class="userName" wx:if="{{userInfo}}">{{userInfo.nickName}}</view>
<view class="userName" wx:else>用户昵称</view>
<view class="userName">{{userInfo?userInfo.nickName:'用户昵称'}}</view>
<view class="userNo">{{userNo}}</view>
<scroll-view id="collapseBox" scroll-y="true" class="collapseBox">
<view class="item">
<view class="title" data-index='1' catchtap='panel'>
<view class="title_0">
<image style="width:49rpx;height:30rpx;" src="../../static/record/icon1.png"></image>
</view>
<view class='title_1'>核销记录</view>
<view class="title_2">
<image src="../../static/record/{{showIndex == 1 ? 'up':'down'}}.png"></image>
</view>
</view>
<view wx:if="{{showIndex == 1&&data.length==0}}" style="text-align: center;font-size: 30rpx;">暂无数据</view>
<view class="details" wx:if="{{showIndex == 1}}" wx:for="{{data}}" wx:key="id">
<text class="time">{{item.check_date}}</text>
<view class="infoBox">
<text>券码:{{item.coupon_code}}</text>
<text>{{item.coupon_type}}</text>
</view>
</view>
</view>
</view>
<view class="infoContainer">
<view class="timeForm">
<text class="title">时间范围:</text>
<picker mode="date" value="{{startDate}}" bindchange="bindStartDateChange">
<view class="datePicker">
{{startDate}}
</view>
</picker>
<view class="line"></view>
<picker mode="date" value="{{endDate}}" bindchange="bindEndDateChange">
<view class="datePicker">
{{endDate}}
</view>
</scroll-view>
</picker>
<view class="btnScreen" bindtap="timeScreen">筛选</view>
</view>
<view class="listName {{'icon'+(code+1)}}">{{nameList[code]}}</view>
<scroll-view scroll-y="true" class="recordList" scroll-top="{{scrollTop}}" lower-threshold="10" bindscrolltolower="downEvent">
<view class="recordItem" wx:key="id" wx:for="{{recordList}}">
<text class="cdate">{{item.check_date}}</text>
<block wx:if="{{recordType==1||recordType==2}}">
<text class="couponName">{{comm.showCouponName(item)}}</text>
<text class="couponNo">券码:{{item.coupon_code}}</text>
<text class="insideCoupon" wx:if="{{item.create_type==1}}">内部券</text>
</block>
<block wx:else>
<block wx:if="{{recordType==3}}">
<text class="price">{{item.cash_exchange}}元</text>
<text class="integral">{{item.point_check}}分</text>
</block>
<text class="integral" wx:if="{{recordType==4}}">{{item.point_add}}分</text>
<text class="phone">手机号:{{item.user_phone}}</text>
</block>
</view>
</scroll-view>
</view>

+ 136
- 59
pages/record/record.wxss View File

@@ -2,95 +2,172 @@
.bg {
width: 750rpx;
height: 253rpx;
height: 632rpx;
}
.content {
.userContainer {
position: absolute;
width: 100%;
top: 253rpx;
bottom: 0;
background-color: #fff;
height: 337rpx;
left: 0;
top: 0;
}
.headBox {
position: absolute;
top: -152rpx;
width: 200rpx;
height: 200rpx;
left: 50%;
transform: translateX(-50%);
width: 144rpx;
height: 144rpx;
top: 33rpx;
left: 33rpx;
background-color: #fff;
border-radius: 50%;
box-sizing: border-box;
padding: 6rpx;
overflow: hidden;
background-color: #fff;
}
.headBox>image {
width: 100%;
height: 100%;
border-radius: 50%;
}
.content>.userName {
color: #333;
font-size: 40rpx;
font-weight: bold;
text-align: center;
margin-top: 78rpx;
}
.content>.userNo{
text-align: center;
color: #666666;
font-size: 30rpx;
margin-top: 10rpx;
.userContainer>.userName {
position: absolute;
color: #fff;
font-size: 37rpx;
top: 65rpx;
left: 200rpx;
}
.content>.collapseBox{
width: 630rpx;
margin: 49rpx auto 0 auto;
padding-top: 30rpx;
border-top: 1rpx solid #CCCCCC;
height: calc(100vh - 530rpx);
.userContainer>.userNo {
position: absolute;
color: #fff;
font-size: 37rpx;
top: 120rpx;
left: 200rpx;
}
.item{
margin: 10rpx auto;
.infoContainer {
position: absolute;
width: 100%;
height: calc(100vh - 337rpx);
left: 0;
bottom: 0;
background-color: #fff;
border-radius: 42rpx;
box-sizing: border-box;
padding-top: 25rpx;
}
.item>.title{
font-size: 30rpx;
height: 60rpx;
line-height: 60rpx;
.timeForm {
width: 100%;
height: 58rpx;
display: flex;
align-items: center;
margin-top: 75rpx;
}
.item>.title>.title_0{
width: 50rpx;
.timeForm>.title {
color: #000;
font-size: 27rpx;
margin-left: 30rpx;
}
.timeForm>.line {
background-color: #ccc;
height: 4rpx;
width: 22rpx;
margin: 0 7rpx;
}
.datePicker {
width: 200rpx;
height: 56rpx;
line-height: 56rpx;
text-align: center;
display: flex;
align-items: center;
background-color: #e6e6e6;
color: #666;
font-size: 28rpx;
border: 1rpx solid rgba(230, 230, 230, 1);
border-radius: 10rpx;
box-sizing: border-box;
}
.timeForm>.btnScreen {
width: 100rpx;
height: 56rpx;
line-height: 56rpx;
text-align: center;
background-color: #EB6100;
border-radius: 28rpx;
color: #ffffff;
font-size: 28rpx;
margin-left: 17rpx;
}
.item>.title>.title_1{
width: 520rpx;
.infoContainer>.listName {
color: #333333;
padding-left: 10rpx;
font-size: 30rpx;
margin: 40rpx 0 40rpx 30rpx;
padding-left: 50rpx;
background-size: 37rpx 29rpx;
background-position: left center;
background-repeat: no-repeat;
}
.item>.title>.title_2 {
width: 50rpx;
height: 60rpx;
text-align: center;
.recordList {
width: 100%;
height: calc(100% - 25rpx - 75rpx - 58rpx - 80rpx - 30rpx);
}
.recordItem {
position: relative;
width: 690rpx;
margin: 0 auto 30rpx auto;
height: 75rpx;
}
.item>.title>.title_2>image{
width: 34rpx;
height: 19rpx;
margin: 20.5rpx auto;
.recordItem>text {
position: absolute;
font-size: 24rpx;
font-weight: 500;
}
.item>.details{
margin: 10rpx auto;
.recordItem>.cdate {
top: 0;
left: 0;
color: #333333;
}
.item>.details>.time{
.recordItem>.couponName,.price {
top: 0;
right: 0;
color: #333333;
font-size: 24rpx;
}
.item>.details>.infoBox{
.recordItem>.couponNo,.phone{
bottom: 0;
left: 0;
color: #999999;
}
.recordItem>.insideCoupon,.integral{
bottom: 0;
right: 0;
color: #999999;
font-size: 21rpx;
display: flex;
justify-content: space-between;
margin-top: 5rpx;
}
.icon1 {
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACUAAAAdCAYAAAAtt6XDAAAACXBIWXMAAAsTAAALEwEAmpwYAAAF7mlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAyMC0wNi0wMVQxNzowMjoyMCswODowMCIgeG1wOk1vZGlmeURhdGU9IjIwMjAtMDYtMDFUMTc6MDM6NTMrMDg6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMjAtMDYtMDFUMTc6MDM6NTMrMDg6MDAiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6YWRhMzEzMDItNDQ5NC04YjQyLThkN2EtY2M4ZWZhYTFkZmI1IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjk5QUQ0RDU4QTNFNjExRUE5NjFFRUNGNkFDMTYxMkZCIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6OTlBRDRENThBM0U2MTFFQTk2MUVFQ0Y2QUMxNjEyRkIiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5OUFENEQ1NUEzRTYxMUVBOTYxRUVDRjZBQzE2MTJGQiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5OUFENEQ1NkEzRTYxMUVBOTYxRUVDRjZBQzE2MTJGQiIvPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDphZGEzMTMwMi00NDk0LThiNDItOGQ3YS1jYzhlZmFhMWRmYjUiIHN0RXZ0OndoZW49IjIwMjAtMDYtMDFUMTc6MDM6NTMrMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz63cCiuAAACG0lEQVRYhe3XT4hNYRjH8c+VWGBmg4XYKFHC5lprJpGaGeVfspHZYKHMUg1ixEpZWLCRncXMKMNYWFAkqVv+LpTxZyE0sjBSYnEt3ufmdDsn916GUfOrt+ec933et+953ud9zjmlarVqqmnGvwbI0zRUo5qZvSmXy/8kwSqVSil7P/UjlVGpoP9PK3dnpmSk/iuoK2grGKsqCHsLKslJlXqo8/iEHgzmTfgbqofah7X4iA3Y9htrz8dJPMbXaA9xPMYahoLnOBbXu1sE2ooxHMIqzI62BofxInwahiLlFClqrQANoh3X0Il50Tqjry18csGK6tTbsAubBFqAC1IuHpW2KqtbeCNFbEn43sF41qkoUovCjheMF+mAFIXRHCBYjJsB9D58D9Y7FUH1hK00CVWbdzpnrB3XA+w+9kR/VyNQy3Akri82CbUibAXr8QgrMQuXpaQfQzfuhu/y+kXqc+ocdkpPdQNDTUJl1YvVuIRXUpK/wyZ8wNzw+1Y/sT5SewNoBNs1X7mfhS1jP15L0emRivJGKVL8PNkvfwVV02ZMFIzlvhpCI2H7AmIXhnEbW/Ak49sXdrRRqFZ1VnqYbvTjnvRWWCedupr6w2cCZyYbalzKpSoGcBUdmBOtQ4rmQPj0yik7RcWzla+A2pYOY4dUGLvkHHl8lkrCcN5Ck/U9NYSlOIWn+I4veIATMZYLBKXpn9EGNQ3VqH4AnJBqGAhwlDIAAAAASUVORK5CYII=');
}
.icon2 {
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACUAAAAdCAYAAAAtt6XDAAAACXBIWXMAAAsTAAALEwEAmpwYAAAF7mlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAyMC0wNi0wMVQxNzowMjozOSswODowMCIgeG1wOk1vZGlmeURhdGU9IjIwMjAtMDYtMDFUMTc6MDQ6MTErMDg6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMjAtMDYtMDFUMTc6MDQ6MTErMDg6MDAiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6YTdjYWNmZGUtNDQzNC0wMDRhLTlhNzAtNTA2ZWE0ZTIxOWI4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkE1NDJDMjdCQTNFNjExRUE4OTQ2ODdBMURDQzMzOEVGIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6QTU0MkMyN0JBM0U2MTFFQTg5NDY4N0ExRENDMzM4RUYiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBNTQyQzI3OEEzRTYxMUVBODk0Njg3QTFEQ0MzMzhFRiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBNTQyQzI3OUEzRTYxMUVBODk0Njg3QTFEQ0MzMzhFRiIvPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDphN2NhY2ZkZS00NDM0LTAwNGEtOWE3MC01MDZlYTRlMjE5YjgiIHN0RXZ0OndoZW49IjIwMjAtMDYtMDFUMTc6MDQ6MTErMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz79b+aGAAACIUlEQVRYhe3XT4hNcRQH8M+TWGBmg4WNEmEhpWetmaJojDJoykImNTbKLNUgRqyUhQUb2VkYyjAphVBWT/6kKENKKSPFSInFs/j9Xm537p13HzNm1PvW6dz7O9/fvd97zrnnvVuqVqtmGmZNt4AsNEUVxezkSblcnpYGq1QqpeT5zM9UAqWc9clGZmVmZKb+K1HX0PIP7l+S0SppUefxBZ24nLGhWscmBWlR+7Een7AJO/7i2gtxEs/wPdoTHI+xwqLgFY7F4z2pWKmO1dCFERzCGsyNthaH8TpyCosi9BQha42iSyh9K26gHQuitce1lsjJFJY3p95Hv7hBQYtwQcjaUaFUSdzFOyF7SyP3AUaTpLxMLYl+NCeehwNCFoYzBNVE34yCPkTuwTQpT1Rn9JUGRdX2nc6IteI2lsfr7ovrHUVErcCReHwxFas3BlZFX0EbHmE15uCqULYRbMG9yF2ZFpDuqXPojk91C4MZoouiF+twCS+EJv+IzdHPj7wf6Y3pTPVGQUPYaXwmJhoD8DL6sjDz3gpjoFsYyhuFTPH7zX5TT1QN2zCWE5sIQ9H34TN2C2W7j+14muD2RT9cVNSf4qzwMFvRj4fCLNqAOwlef+SM4cxUixpFj1D2AVwXGn5etDYhmwOR0yNj7OQNz0Z/XJO9dQW7hMHYIeOVx1fsjdxxmKr/U4NYhlN4jp/4hsc4EWOZgqDU/BgtiKaoovgFMNZ1HHLhwwgAAAAASUVORK5CYII=');
}
.icon3 {
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACUAAAAdCAYAAAAtt6XDAAAACXBIWXMAAAsTAAALEwEAmpwYAAAF7mlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAyMC0wNi0wMVQxNzowMjo1OCswODowMCIgeG1wOk1vZGlmeURhdGU9IjIwMjAtMDYtMDFUMTc6MDQ6MjkrMDg6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMjAtMDYtMDFUMTc6MDQ6MjkrMDg6MDAiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OWFjZmY0NjUtMTMyNi1mNDQ0LTk0NWUtMDExMTM5NzM5OTBmIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkIwNzY0MUE2QTNFNjExRUFCOTRCODY2OUE3MTJENzY3IiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6QjA3NjQxQTZBM0U2MTFFQUI5NEI4NjY5QTcxMkQ3NjciIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpCMDc2NDFBM0EzRTYxMUVBQjk0Qjg2NjlBNzEyRDc2NyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpCMDc2NDFBNEEzRTYxMUVBQjk0Qjg2NjlBNzEyRDc2NyIvPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo5YWNmZjQ2NS0xMzI2LWY0NDQtOTQ1ZS0wMTExMzk3Mzk5MGYiIHN0RXZ0OndoZW49IjIwMjAtMDYtMDFUMTc6MDQ6MjkrMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6vQJFyAAAEXElEQVRYhc2XXUhkZRjHf+NRx2ScXWHTMzCZQn4g4yjO0WguHBARnFoYaPciPy7qQulyuyuKaAu7CGK6EoPqRuuiViLakbypDJTk9aCjaNruGu6CowbmKubojKeLc2YY9cw0zm4ff3h54bzPeZ//ed7n+Z/3sWiaRjYYGBi4PDs72wYoQL3FYnlK0zQn8ARwCdCAh8CfFovlgaZp94ElQHg8nsnh4eE/snIEWDKRUhQl32q1XotGo68APqAw243P4Aj4wWq1fhaNRr8SQsRyIqUoSpskSR/H4/FaAEmScLvdNDQ0UFtbi8PhQJZlioqKsNlsAOzv73N4eEgkEmFjY4OVlRUWFhYIh8PE43GMfVbi8fiAEOLHC5FSFOV54Gsgv6Kigp6eHjo7OykpKckmKuewt7fHxMQEo6OjrK+vA8SAgBDitukLmqadGx6PZ8Pj8WjBYFCLxWLa40IsFtOCwaDm8Xg0w4ep/7w0HycDOJ1OJEnKKTpmkCQJp9N5yocZ0h1f8mFzczO9vb14vV7y8/NzIhOLxZiammJkZARVVU/5F0Kcs8/opaysDFVVUVUVm81Ga2srLpeLmpoaZFlOJnoqEokeiURYXV1lcXGRmZkZ9vf3k3tubW1l/IiMkZqamiIUChEKhZibm+Pk5MR0k+LiYgAODg5M1/Py8mhqasLv9+P3+/F6vUn/F45UYWEhgUCAQCDAzs4O4XCYpaUl1tbWiEQibG5ucnx8nIyC3W6noKCA8vJyZFmmqqqK+vp63G43paWlmVxlTyoVpaWl+Hw+fD5f1pvninTV958it3JKgaIolsdBJBX/y0j9U6SuAINAGDg0xhxw01jLndTY2FguhF4E7gCvAw2A1RiNwFvAXcMmN1KDg4P09/czOTnJ8fFxtoS+RL9ffQu0AyXGaDee2Q2btMQupOgtLS24XC6qq6uTip6CJ4FPAQvwNvpRpeJ74D569J42bH8Czsl7RkWfnp5mfHycUCiEqqrpFD1RfTfRj+c28IKJnQOYBJ4BNoFy4H0hxBsXIpX6C9jd3WV+fv6Uom9tbbG9vZ0gNYeeN+3oUUnFJfSoNAA/A+8AIWBBCOHOmVQ6pOjUIXpC24FngQ+AXuBXYNwgewfwGrYPgSMhhPXsno8snmnwMtAEfAH8ZhB6AHQC24DNsDsyezlj9WXb6Rj4xZgV4FXgHvpxXQV2AT+wZti0GPO9i5C6CzA0NJS88GeBb4z5BvrRvAR8DnwHBICFFNsbxmx6R//bxqGyspLu7m46Ojqw2+1mtomcKkPPHzt6Fb6XhvybwLsG8WohRHaSYDhrAz5BL2EkSaKxsRGXy0VdXR2yLONwOOjq6kr9ISfE04IulB8CM8ZaK3qErqI3rteBW2bFlLEZ7evrK1heXr4OJJpRs8I4e0u4hi6M6fqxPfRCuAXmFZ6RVCoURbkMPIde7vXoqlyBLopncQV4DT0qtehVtoqeQx8BvycMH4nUv4m/AB4cCh5yPoATAAAAAElFTkSuQmCC');
}
.icon4 {
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACUAAAAdCAYAAAAtt6XDAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ1IDc5LjE2MzQ5OSwgMjAxOC8wOC8xMy0xNjo0MDoyMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkI4NjdBQ0EwQTNFNjExRUFCOEIwREQwMzE5NURBOUY1IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkI4NjdBQ0ExQTNFNjExRUFCOEIwREQwMzE5NURBOUY1Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6Qjg2N0FDOUVBM0U2MTFFQUI4QjBERDAzMTk1REE5RjUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6Qjg2N0FDOUZBM0U2MTFFQUI4QjBERDAzMTk1REE5RjUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5X3tISAAAFD0lEQVR42sxXWUhkVxCtbtt9G1wjrlFwTcRd/DAG40Ak6IcaBhMENR9GxfwGgoyRETc0gjGYqB+CERHUj3zE4IBhxLghfohbRCVqVNzjvrV26ty8ltYx+rrHQAoO7/a71feeV1W3qq5Co9GQvpKRkWE8Ozv7Hv/36dXVVRi/8mI4M2wklX3GOuMPxpiRkdFLX1/fvpaWlgs56yv0IRUREaFQqVT5l5eXX/H/XG7Pm5mZEdY7Ozt7fSOFYo3JlarV6u9GR0c1b0yKyYgnE/qeF83BmL+cEhISKDg4mDw9Pcne3p6USqXQY+vR9vY2LS4u0vj4OPX09NDc3Jx2jR94jc8xZnJvTopFKNfX11NkZKReLh8ZGaG8vLzrfe8jpSQDZGhoiHZ3d2XrQ3d4eFi2vkGWgpiYmFBMTAyFhYWRt7c3OTs7k6mpqZhDTK2vr9PCwgKNjY3R4OAgnZ+f39j30d3n4+ND8/PzelkXxEFSDimVIe5rb2+nqakpYYHJyUlaXl6mra0tOjg4EPPW1tbk4OBA7u7uFBQUJCwaGBio+3H3ikGkINgE+C9ESf9DkUUKvtf1f3V1Ne3s7MjeBDmrqqrqxnqP7r62tjbq7Oyk6OhoCg0NFUHs5ORElpaWYv7o6Ig2NjauTx9y1K3TZ1hK4KD0xIPxrk5t+1BbTk5PT/X6EFQArpdaSyl4fSseljA+ZZgzXjGKRjEJUqxgxi+yGCEMN4mM00MbITW4uLjQ6uqqcBEsBIHFUHZQfgICAsTpw1Pn9BkxehgfcE1EXRSlCSmO8VTFirB5NyNWd0M3NzexEICNHR0dRXK0sLAQX1xeXi5y1eHhIRUXF8s+7pLkgxC7/KqhoUFhZ2enqK2t1XR0dCD7vlCEh4cX8+C5h4cHZWdni839/f3J1tb23lU3NzepqKhIxAsKMbczlJubi4J7pz5yWkFBAYYX/zQNClVFRYUmPj5eJNKTk5Pz2NhYEx7ugdTvcHlTUxOFhIToFScweWtrqyjQCGRYtaSkRAT93t6eCPSJiQnq7e297hJYEPEmKM4wglaWlpYoJSUFwz/xWW9jhBZE73wiWSgqKooKCwtpenqaUlNT/039UooZi8TERMrKyrox2djYqB3+jDxlrN3AUPHz8yPuKiktLe0+NQS3BQaurq4iuLXS1dVF3d0Ia9pjlMN9GjkJTdidXcRtyCvuCOALNeMvKUYOERaMU3bZAXcJ6uPj413uUNX7+/tcEg9OV1ZWTpqbm3EafuQDYwwSNjY2NDMzI9zIa4PHx8yjk0AKkCM1NTXQ3WB8glRiCPi/v2I/7sk0TFiTlJSkkTh8o9VR6hPUyEcsjoxWTgE/MVwNdTnch9Mrrfkb48vXat/FxcWDQV1ZWUllZWXEeQWvkhiTTOwzXChkXjxQJWKQNgYGBqivr09kF8Yzdts1AcQUujVv1DGcICTKhwTHHQVWCk7RgjMWZfCKYnh6eXmJFMDWx4lMZEIvb1iRSQXx8xepvNwpyOKZmZmUnp5O5ubm1+/7+/uptLRUFF+5gtK0trZGfBDw8zkTenFnQWazvgUFpH4pZm7LE+iim8zJyaHk5GTiO5yYQJnBpUBOW40qgXyEzkEyxEdM6srQHh33qUrG+9p+Oz8/n+Li4vQK7rq6OuK0IBI4I5wJbT3GDTlRIvcOfltZWemVdNHD834oM3FMaOhRru0SMbDIZHzNcDcgG3zBhL69T+FvAQYAZJmQoqUtypEAAAAASUVORK5CYII=');
}

+ 3
- 1
project.config.json View File

@@ -20,7 +20,9 @@
"ignore": [],
"disablePlugins": [],
"outputPath": ""
}
},
"useCompilerModule": false,
"userConfirmedUseCompilerModuleSwitch": false
},
"compileType": "miniprogram",
"libVersion": "2.10.2",

BIN
static/coupon/couponIcon.png View File

Before After
Width: 513  |  Height: 200  |  Size: 5.9KB

BIN
static/coupon/logo.png View File

Before After
Width: 155  |  Height: 110  |  Size: 4.7KB

BIN
static/login/logo.png View File

Before After
Width: 445  |  Height: 486  |  Size: 11KB Width: 445  |  Height: 486  |  Size: 11KB

BIN
static/member/couponBg.png View File

Before After
Width: 738  |  Height: 284  |  Size: 9.1KB

BIN
static/member/crown.png View File

Before After
Width: 46  |  Height: 36  |  Size: 935B

BIN
static/member/iconIntegral.png View File

Before After
Width: 108  |  Height: 86  |  Size: 2.0KB

BIN
static/member/integralBg.png View File

Before After
Width: 720  |  Height: 214  |  Size: 3.0KB

BIN
static/personal/arrow.png View File

Before After
Width: 11  |  Height: 21  |  Size: 423B

BIN
static/personal/bg.jpg View File

Before After
Width: 750  |  Height: 632  |  Size: 62KB

BIN
static/personal/icon1.png View File

Before After
Width: 37  |  Height: 29  |  Size: 620B

BIN
static/personal/icon2.png View File

Before After
Width: 37  |  Height: 29  |  Size: 613B

BIN
static/personal/icon3.png View File

Before After
Width: 37  |  Height: 29  |  Size: 1003B

BIN
static/personal/icon4.png View File

Before After
Width: 37  |  Height: 29  |  Size: 1.2KB

BIN
static/record/bg.jpg View File

Before After
Width: 750  |  Height: 253  |  Size: 72KB

BIN
static/record/down.png View File

Before After
Width: 34  |  Height: 19  |  Size: 409B

BIN
static/record/icon1.png View File

Before After
Width: 49  |  Height: 30  |  Size: 571B

BIN
static/record/up.png View File

Before After
Width: 34  |  Height: 19  |  Size: 411B

BIN
static/tabBar/home0.png View File

Before After
Width: 81  |  Height: 81  |  Size: 4.7KB Width: 81  |  Height: 81  |  Size: 2.4KB

BIN
static/tabBar/home1.png View File

Before After
Width: 81  |  Height: 81  |  Size: 4.7KB Width: 81  |  Height: 81  |  Size: 2.4KB

BIN
static/tabBar/personal0.png View File

Before After
Width: 81  |  Height: 81  |  Size: 2.7KB

BIN
static/tabBar/personal1.png View File

Before After
Width: 81  |  Height: 81  |  Size: 2.7KB

BIN
static/tabBar/record0.png View File

Before After
Width: 81  |  Height: 81  |  Size: 3.5KB Width: 81  |  Height: 81  |  Size: 2.2KB

BIN
static/tabBar/record1.png View File

Before After
Width: 81  |  Height: 81  |  Size: 3.5KB Width: 81  |  Height: 81  |  Size: 2.2KB

BIN
static/tabBar/store0.png View File

Before After
Width: 81  |  Height: 81  |  Size: 3.9KB Width: 81  |  Height: 81  |  Size: 2.4KB

BIN
static/tabBar/store1.png View File

Before After
Width: 81  |  Height: 81  |  Size: 3.9KB Width: 81  |  Height: 81  |  Size: 2.4KB

Loading…
Cancel
Save