} | } | ||||
}, | }, | ||||
requestGet: function(url, data, callBack) { | requestGet: function(url, data, callBack) { | ||||
var that=this; | |||||
wx.request({ | wx.request({ | ||||
url: this.globalData.apiUrl + url, //仅为示例,并非真实的接口地址 | url: this.globalData.apiUrl + url, //仅为示例,并非真实的接口地址 | ||||
data: data, | data: data, | ||||
'content-type': 'application/json' // 默认值 | 'content-type': 'application/json' // 默认值 | ||||
}, | }, | ||||
success(res) { | 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) { | requestPost: function(url, data, callBack) { | ||||
var that=this; | |||||
wx.request({ | wx.request({ | ||||
url: this.globalData.apiUrl + url, //仅为示例,并非真实的接口地址 | url: this.globalData.apiUrl + url, //仅为示例,并非真实的接口地址 | ||||
data: data, | data: data, | ||||
}, | }, | ||||
method: "POST", | method: "POST", | ||||
success(res) { | success(res) { | ||||
callBack(res.data) | |||||
if(res.data.code==-1003){ | |||||
that.globalData.userState=0; | |||||
wx.navigateTo({ | |||||
url: '/pages/login/login' | |||||
}) | |||||
}else{ | |||||
callBack(res.data) | |||||
} | |||||
} | } | ||||
}) | }) | ||||
}, | }, |
"pages/store/store", | "pages/store/store", | ||||
"pages/coupon/coupon", | "pages/coupon/coupon", | ||||
"pages/record/record", | "pages/record/record", | ||||
"pages/home/home" | |||||
"pages/home/home", | |||||
"pages/personal/personal", | |||||
"pages/member/member" | |||||
], | ], | ||||
"permission": { | "permission": { | ||||
"scope.userLocation": { | "scope.userLocation": { | ||||
"list": [ | "list": [ | ||||
{ | { | ||||
"pagePath": "pages/home/home", | "pagePath": "pages/home/home", | ||||
"text": "核销大厅", | |||||
"text": "首页", | |||||
"iconPath": "static/tabBar/home0.png", | "iconPath": "static/tabBar/home0.png", | ||||
"selectedIconPath": "static/tabBar/home1.png" | "selectedIconPath": "static/tabBar/home1.png" | ||||
}, | }, | ||||
"selectedIconPath": "static/tabBar/store1.png" | "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" | |||||
} | } | ||||
] | ] | ||||
}, | }, |
* 页面的初始数据 | * 页面的初始数据 | ||||
*/ | */ | ||||
data: { | 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({ | this.setData({ | ||||
code_num: event.detail.value | |||||
nums: str?str:0 | |||||
}) | }) | ||||
}, | }, | ||||
/** | /** | ||||
* 核销 | * 核销 | ||||
*/ | */ | ||||
writeOff: function() { | 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({ | wx.showToast({ | ||||
title: '验证码错误', | |||||
icon: 'none', | |||||
title: '核销成功', | |||||
icon: 'success', | |||||
duration: 2000 | 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({ | wx.showToast({ | ||||
title: res.message, | title: res.message, | ||||
icon: 'none', | icon: 'none', | ||||
duration: 2000 | duration: 2000 | ||||
}) | }) | ||||
this.setData({ | |||||
writeOffing:false | |||||
}) | |||||
} | } | ||||
that.setData({ | |||||
state: state | |||||
}) | |||||
}) | }) | ||||
} | |||||
}, | }, | ||||
/** | /** | ||||
* 添加优惠券 | * 添加优惠券 | ||||
*/ | */ | ||||
addCoupon() { | 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({ | this.setData({ | ||||
nums: this.data.nums + 1 | nums: this.data.nums + 1 | ||||
}) | }) | ||||
* 减少优惠券 | * 减少优惠券 | ||||
*/ | */ | ||||
reduceCoupon() { | 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({ | this.setData({ | ||||
nums: this.data.nums - 1 | nums: this.data.nums - 1 | ||||
}) | }) | ||||
} | } | ||||
}, | }, | ||||
blueNums(){ | |||||
if (isNaN(this.data.nums)) { | |||||
this.setData({ | |||||
nums: 1 | |||||
}) | |||||
} | |||||
}, | |||||
/** | /** | ||||
* 返回核销大厅 | * 返回核销大厅 | ||||
*/ | */ | ||||
*/ | */ | ||||
onLoad: function(options) { | onLoad: function(options) { | ||||
wx.hideShareMenu(); | 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; | |||||
} | |||||
}) | |||||
}, | }, | ||||
/** | /** |
<!--pages/coupon/coupon.wxml--> | <!--pages/coupon/coupon.wxml--> | ||||
<view class="container" style="background-color:#f6f6f6;"> | <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"> | <view class="detailsBox shadow"> | ||||
<image class="bottomBg" src="../../static/coupon/bottomBg1.png"></image> | <image class="bottomBg" src="../../static/coupon/bottomBg1.png"></image> | ||||
<image class="decorate" src="../../static/coupon/01.png"></image> | <image class="decorate" src="../../static/coupon/01.png"></image> | ||||
<view class="detailsInfo"> | <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> | ||||
<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> | </view> | ||||
<image class="logo" src="../../static/coupon/logo.png" wx:if="{{type==1}}"></image> | |||||
</view> | </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> | </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> | </view> |
font-size: 100rpx; | font-size: 100rpx; | ||||
font-weight: 550; | font-weight: 550; | ||||
} | } | ||||
.detailsBox>.detailsRight>.txt{ | |||||
.detailsBox>.detailsRight>.txt { | |||||
display: inline-block; | display: inline-block; | ||||
width: 34rpx; | width: 34rpx; | ||||
height: 70rpx; | height: 70rpx; | ||||
margin-left: 5rpx; | 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; | position: relative; | ||||
color: #666666; | |||||
font-size: 24rpx; | |||||
font-weight: 700; | |||||
margin-left: 128rpx; | |||||
} | |||||
#couponCheck>.txt { | |||||
width: 100%; | width: 100%; | ||||
text-align: center; | |||||
height: 120rpx; | |||||
line-height: 120rpx; | |||||
box-sizing: border-box; | |||||
padding: 0 30rpx; | |||||
color: #333333; | 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; | text-align: center; | ||||
height: 38rpx; | |||||
line-height: 38rpx; | |||||
color: #eb6100; | |||||
font-size: 40rpx; | |||||
font-weight: 500; | |||||
margin-top: 49rpx; | |||||
} | } | ||||
.btn { | .btn { | ||||
font-size: 36rpx; | font-size: 36rpx; | ||||
background: linear-gradient(-72deg, rgba(235, 97, 0, 1), rgba(255, 137, 42, 1)); | 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; | |||||
} |
this.setData({ | this.setData({ | ||||
isQuerying: true | isQuerying: true | ||||
}) | }) | ||||
this.query(data); | |||||
this.query({user_phone:data.phone}); | |||||
} | } | ||||
}, | }, | ||||
query(data) { | query(data) { | ||||
app.requestGet('couponbuy/searchbyphone', { | |||||
user_phone: data.phone | |||||
}, res => { | |||||
app.requestGet('admin/buy/userid',data,res=>{ | |||||
this.setData({ | this.setData({ | ||||
isQuerying: false | isQuerying: false | ||||
}) | }) | ||||
if (res.code == 200) { | |||||
app.globalData.couponData = res.data[0]; | |||||
app.globalData.couponToken = res.token; | |||||
if(res.code==200){ | |||||
wx.navigateTo({ | wx.navigateTo({ | ||||
url: '../coupon/coupon?phone=' + data.phone | |||||
url: '../member/member?id=' + res.data.user_id | |||||
}) | }) | ||||
} else { | |||||
}else{ | |||||
wx.showToast({ | wx.showToast({ | ||||
title: res.message, | title: res.message, | ||||
icon: 'none', | icon: 'none', | ||||
* 扫码 | * 扫码 | ||||
*/ | */ | ||||
scanCode() { | scanCode() { | ||||
var that=this; | |||||
wx.scanCode({ | wx.scanCode({ | ||||
onlyFromCamera: true, | onlyFromCamera: true, | ||||
success(res) { | 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 }); | |||||
} | } | ||||
}) | }) | ||||
}, | }, |
position: absolute; | position: absolute; | ||||
width: 33rpx; | width: 33rpx; | ||||
height: 12rpx; | height: 12rpx; | ||||
top: -11rpx; | |||||
top: -10rpx; | |||||
left: 140rpx; | left: 140rpx; | ||||
} | } | ||||
// 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() { | |||||
} | |||||
}) |
{ | |||||
"usingComponents": {}, | |||||
"navigationBarTitleText": "核销中心", | |||||
"disableScroll": true | |||||
} |
<!--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> |
/* 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; | |||||
} |
// 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 () { | |||||
} | |||||
}) |
{ | |||||
"usingComponents": {}, | |||||
"navigationBarTitleText": "个人中心", | |||||
"disableScroll": true | |||||
} |
<!--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> |
/* 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='); | |||||
} |
var showCouponName=function(item){ | |||||
if(item.item_type==1){//代金券 | |||||
return parseInt(item.original_price)+'元代金券' | |||||
}else{//菜品券 | |||||
return item.coupon_name_detail | |||||
} | |||||
} | |||||
module.exports = { | |||||
showCouponName:showCouponName | |||||
}; |
*/ | */ | ||||
data: { | data: { | ||||
userInfo: null, | userInfo: null, | ||||
canIUse: wx.canIUse('button.open-type.getUserInfo'), | |||||
hasUserInfo: false, | |||||
userNo: '', //员工编号 | userNo: '', //员工编号 | ||||
showIndex: 1, | showIndex: 1, | ||||
data: [], | 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) { | onLoad: function(options) { | ||||
this.setData({ | |||||
recordType:options.code | |||||
}) | |||||
wx.hideShareMenu(); | wx.hideShareMenu(); | ||||
if (app.globalData.userInfo) { | if (app.globalData.userInfo) { | ||||
this.setData({ | this.setData({ | ||||
userInfo: app.globalData.userInfo, | 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({ | 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 | |||||
}) | |||||
}, | }, | ||||
/** | /** | ||||
* 生命周期函数--监听页面初次渲染完成 | * 生命周期函数--监听页面初次渲染完成 | ||||
*/ | */ | ||||
* 生命周期函数--监听页面显示 | * 生命周期函数--监听页面显示 | ||||
*/ | */ | ||||
onShow: function() { | 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 | |||||
}) | |||||
} | |||||
}) | |||||
}, | }, | ||||
/** | /** |
{ | { | ||||
"usingComponents": {}, | "usingComponents": {}, | ||||
"navigationBarTitleText": "核销记录", | |||||
"navigationBarTitleText": "个人中心", | |||||
"disableScroll": true | "disableScroll": true | ||||
} | } |
<!--pages/record/record.wxml--> | |||||
<wxs src="./comm.wxs" module="comm" /> | |||||
<view class="container"> | <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"> | <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> | ||||
<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> | <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> | </view> | ||||
</scroll-view> | |||||
</picker> | |||||
<view class="btnScreen" bindtap="timeScreen">筛选</view> | |||||
</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> | </view> |
.bg { | .bg { | ||||
width: 750rpx; | width: 750rpx; | ||||
height: 253rpx; | |||||
height: 632rpx; | |||||
} | } | ||||
.content { | |||||
.userContainer { | |||||
position: absolute; | position: absolute; | ||||
width: 100%; | width: 100%; | ||||
top: 253rpx; | |||||
bottom: 0; | |||||
background-color: #fff; | |||||
height: 337rpx; | |||||
left: 0; | |||||
top: 0; | |||||
} | } | ||||
.headBox { | .headBox { | ||||
position: absolute; | 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%; | border-radius: 50%; | ||||
box-sizing: border-box; | |||||
padding: 6rpx; | |||||
overflow: hidden; | overflow: hidden; | ||||
background-color: #fff; | |||||
} | } | ||||
.headBox>image { | .headBox>image { | ||||
width: 100%; | width: 100%; | ||||
height: 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; | 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; | 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; | 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; | 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; | 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='); | |||||
} |
"ignore": [], | "ignore": [], | ||||
"disablePlugins": [], | "disablePlugins": [], | ||||
"outputPath": "" | "outputPath": "" | ||||
} | |||||
}, | |||||
"useCompilerModule": false, | |||||
"userConfirmedUseCompilerModuleSwitch": false | |||||
}, | }, | ||||
"compileType": "miniprogram", | "compileType": "miniprogram", | ||||
"libVersion": "2.10.2", | "libVersion": "2.10.2", |