@@ -52,6 +52,7 @@ | |||
"pages/payrule/payrule", | |||
"pages/grade/grade", | |||
"pages/exchange/exchange", | |||
"pages/exchangeCard/exchangeCard", | |||
"pages/game/index", | |||
"pages/canvas/index", | |||
"pages/specialcourtesy/specialcourtesy", | |||
@@ -2,44 +2,35 @@ | |||
"ext": { | |||
"attr": { | |||
"car": { | |||
"tjd": { | |||
"payPath": "", | |||
"tjdAppId": "wx6945d1bda68d7993" | |||
}, | |||
"etcp": { | |||
"payPath": "pages/pay/order-pay-open/main", | |||
"etcpAppId": "wxc07f9d67923d676d", | |||
"etcpCallbackUrl": "https://admin.malls.iformall.com/api/carCallback/etcpPaidCallback" | |||
}, | |||
"bolink": { | |||
"payPath": "pages/park/park", | |||
"bolinkAppId": "wxbd08b4baa10fcc1d" | |||
}, | |||
"version": "release" | |||
"etcpAppId": "wx192b7d2e8dcbefd0", | |||
"etcpVersion": "release", | |||
"etcpCallbackUrl": "https://admintest.malls.iformall.com/api/carCallback/etcpPaidCallback" | |||
} | |||
}, | |||
"mchId": "1539123951", | |||
"mchId": "1604439800", | |||
"imgProxy": [ | |||
{ | |||
"newUrl": "https://c.malls.iformall.com/img", | |||
"newUrl": "https://ctest.malls.iformall.com/img", | |||
"orgUrl": "https://iformall-net.formall.oss-accelerate.aliyuncs.com" | |||
}, | |||
{ | |||
"newUrl": "https://c.malls.iformall.com/img1", | |||
"newUrl": "https://ctest.malls.iformall.com/img1", | |||
"orgUrl": "https://formall.oss-accelerate.aliyuncs.com" | |||
}, | |||
{ | |||
"newUrl": "https://c.malls.iformall.com/img2", | |||
"newUrl": "https://ctest.malls.iformall.com/img2", | |||
"orgUrl": "https://wx.qlogo.cn" | |||
} | |||
], | |||
"configUrl": "https://c.malls.iformall.com/C/api", | |||
"ifStoreApp": "0", | |||
"configUrl": "https://ctest.malls.iformall.com/C/api", | |||
"businessSwitch": "1", | |||
"ifHaveWebSocket": "0", | |||
"ifHaveCarModular": "1" | |||
}, | |||
"name": "欢乐城万象金街", | |||
"weappId": "wxde54451891094c16", | |||
"appVersion": "C.5.1.1" | |||
"name": "金泸商务", | |||
"weappId": "wx649b3be73c1afe47", | |||
"appVersion": "C.test.5.2.0" | |||
}, | |||
"debug": false, | |||
"tabBar": { | |||
@@ -75,7 +66,8 @@ | |||
"selectedIconPath": "assets/images/user-a.png" | |||
} | |||
], | |||
"custom": true | |||
"color": "#abb1be", | |||
"selectedColor": "#b2743d" | |||
}, | |||
"window": { | |||
"backgroundTextStyle": "dark", | |||
@@ -84,12 +76,16 @@ | |||
"navigationBarBackgroundColor": "#FFFFFF" | |||
}, | |||
"plugins": { | |||
"auto-points-plugin": { | |||
"version": "1.3.0", | |||
"provider": "wxfab2bf944bfc4da6" | |||
}, | |||
"live-player-plugin": { | |||
"version": "1.3.4", | |||
"provider": "wx2b03c6e691cd7370" | |||
} | |||
}, | |||
"extAppid": "wxde54451891094c16", | |||
"extAppid": "wx649b3be73c1afe47", | |||
"extEnable": true, | |||
"permission": { | |||
"scope.userLocation": { | |||
@@ -137,6 +137,14 @@ | |||
<view class="particulars_go">></view> | |||
</view> | |||
</navigator> | |||
<navigator url="/pages/exchangeCard/exchangeCard" open-type="navigate"> | |||
<view class="particulars_list"> | |||
<view class="particulars_name">录入实体卡</view> | |||
<view class="particulars_go">></view> | |||
</view> | |||
</navigator> | |||
<navigator url="/pages/questionnaire/questionnaireLsit/questionnaireLsit" open-type="navigate"> | |||
<view class="particulars_list"> | |||
<view class="particulars_name">问券调查</view> | |||
@@ -9,33 +9,54 @@ Page({ | |||
* 页面的初始数据 | |||
*/ | |||
data: { | |||
navigationBarHeight | |||
navigationBarHeight, | |||
code: "" | |||
}, | |||
// 兑换 | |||
exchange(e){ | |||
exchange(e) { | |||
console.log(e, 'e'); | |||
let that = this; | |||
let code = e.detail.value.code; | |||
let formId = e.detail.formId; | |||
if (!code || !code.replace(/\s*/g, "")){ | |||
if (!code || !code.replace(/\s*/g, "")) { | |||
wx.showToast({ | |||
title: '请输入兑换码', | |||
icon:"none", | |||
duration:2500 | |||
icon: "none", | |||
duration: 2500 | |||
}) | |||
return; | |||
} | |||
that.checkPhoneStatus(e.detail.value.code,formId = e.detail.formId); | |||
that.checkPhoneStatus(code, formId); | |||
}, | |||
goScanCode() { | |||
console.log('scan!!!'); | |||
const that = this | |||
wx.scanCode({ | |||
success: (res) => { | |||
console.log(res, 'res'); | |||
const num = res.result | |||
that.setData({ | |||
code: num | |||
}) | |||
that.exchange({ detail: { value: num } }) | |||
}, | |||
fail: (res) => { | |||
console.log(res, 'fail'); | |||
} | |||
}) | |||
}, | |||
checkPhoneStatus: function (password, formId) { | |||
let that = this; | |||
Http.get({ | |||
url: config.api.checkPhoneStatus, | |||
data: {} | |||
}) | |||
.then(res => { | |||
that.getCouponOrderByPassword(password, formId); | |||
}) | |||
.catch(err => { | |||
.then(res => { | |||
that.getCouponOrderByPassword(password, formId); | |||
}) | |||
.catch(err => { | |||
if (err.code == 11005) { | |||
/** | |||
* 手机号没有授权,将值传到用户手机号授权的页面 | |||
@@ -51,7 +72,7 @@ Page({ | |||
duration: 2500 | |||
}) | |||
} | |||
}) | |||
}) | |||
}, | |||
getCouponOrderByPassword(password, formId) { | |||
let that = this; | |||
@@ -62,34 +83,34 @@ Page({ | |||
formId: formId | |||
} | |||
}) | |||
.then(res => { | |||
wx.showModal({ | |||
title: '兑换成功', | |||
content: '消费卡已发放到"我的卡包"', | |||
showCancel: true, | |||
cancelText: "知道了", | |||
cancelColor: '', | |||
confirmText: "去查看", | |||
confirmColor: '#FD832D', | |||
success: function (res) { | |||
if (res.cancel) { | |||
//点击取消,默认隐藏弹框 | |||
} else { | |||
wx.redirectTo({ | |||
url: '/pages/cardorder/index/index', | |||
}) | |||
} | |||
}, | |||
fail: function (res) { },//接口调用失败的回调函数 | |||
complete: function (res) { },//接口调用结束的回调函数(调用成功、失败都会执行) | |||
.then(res => { | |||
wx.showModal({ | |||
title: '兑换成功', | |||
content: '消费卡已发放到"我的卡包"', | |||
showCancel: true, | |||
cancelText: "知道了", | |||
cancelColor: '', | |||
confirmText: "去查看", | |||
confirmColor: '#FD832D', | |||
success: function (res) { | |||
if (res.cancel) { | |||
//点击取消,默认隐藏弹框 | |||
} else { | |||
wx.redirectTo({ | |||
url: '/pages/cardorder/index/index', | |||
}) | |||
} | |||
}, | |||
fail: function (res) { },//接口调用失败的回调函数 | |||
complete: function (res) { },//接口调用结束的回调函数(调用成功、失败都会执行) | |||
}) | |||
}) | |||
}) | |||
.catch(err => { | |||
wx.showToast({ | |||
title: err.message, | |||
icon: 'none', | |||
duration: 2000 | |||
.catch(err => { | |||
wx.showToast({ | |||
title: err.message, | |||
icon: 'none', | |||
duration: 2000 | |||
}) | |||
}) | |||
}) | |||
} | |||
}) |
@@ -1,11 +1,13 @@ | |||
<navbar text="兑换" home back background='#FD832D' color="white"></navbar> | |||
<view style="height:{{navigationBarHeight}} "></view> | |||
<form bindsubmit='exchange' report-submit='true'> | |||
<view class="section" > | |||
<input name='code'placeholder="请输入兑换码" clearable/> | |||
<button size="{{primarySize}}" style="background:#FD832D;color:#fff;" hover-class="opcaity" form-type="submit">兑换</button> | |||
<view class="section"> | |||
<input name='code' placeholder="请输入兑换码" clearable value="{{code}}" /> | |||
<button size="{{primarySize}}" style="background:#FD832D;color:#fff;" hover-class="opcaity" form-type="submit">兑换</button> | |||
<image class="scan" src="../../assets/images/scan.png" bindtap="goScanCode"></image> | |||
</view> | |||
</form> | |||
<view class="comment"> | |||
<text class="txt1">如何获取兑换码?</text> | |||
<text class="txt2">1.实体卡卡密可刮开卡背面涂层查看;</text> | |||
@@ -1,12 +1,15 @@ | |||
/* pages/exchange/exchange.wxss */ | |||
.section{ | |||
.section { | |||
padding: 20rpx 20rpx; | |||
} | |||
.section{ | |||
.section { | |||
position: relative; | |||
display: flex; | |||
flex: 5; | |||
} | |||
.section input{ | |||
.section input { | |||
flex: 3; | |||
border: 1px solid #ccc; | |||
border-radius: 10rpx; | |||
@@ -16,29 +19,45 @@ | |||
padding-left: 20rpx; | |||
margin-right: 10rpx; | |||
} | |||
.section button{ | |||
.section button { | |||
flex: 1; | |||
height: 74rpx; | |||
line-height: 74rpx; | |||
font-size: 30rpx; | |||
} | |||
.comment{ | |||
.section .scan { | |||
position: absolute; | |||
right: 255rpx; | |||
bottom: 37rpx; | |||
width: 40rpx; | |||
height: 40rpx; | |||
z-index: 999; | |||
} | |||
.comment { | |||
padding: 0 20rpx; | |||
margin-top: 60rpx; | |||
} | |||
.comment text{ | |||
.comment text { | |||
display: block; | |||
} | |||
.txt1{ | |||
.txt1 { | |||
margin-top: 30rpx; | |||
font-size: 34rpx; | |||
margin-bottom: 20rpx; | |||
} | |||
.txt2,.txt3{ | |||
.txt2, | |||
.txt3 { | |||
font-size: 30rpx; | |||
line-height: 40rpx; | |||
color: #999; | |||
} | |||
.opcaity{ | |||
.opcaity { | |||
opacity: .6; | |||
} |
@@ -0,0 +1,142 @@ | |||
const navigationBarHeight = (getApp().statusBarHeight + 60) + 'px' | |||
const util = require("../../utils/util.js"); | |||
const Http = require("../../utils/HttpBasics"); | |||
const config = require("../../config/config"); | |||
const imgurl = require("../../utils/imgurl"); | |||
Page({ | |||
/** | |||
* 页面的初始数据 | |||
*/ | |||
data: { | |||
navigationBarHeight, | |||
tabIndex: 0, | |||
pdwSwitch: 0, | |||
isChangePhone: false, | |||
code: "", | |||
name: "叶文沁", | |||
phone: "1379****591", | |||
tempPhone: '', | |||
password: '', | |||
}, | |||
// 兑换 | |||
exchange(e) { | |||
console.log(e, 'e'); | |||
let that = this; | |||
let code = e.detail.value.code; | |||
console.log(code); | |||
}, | |||
// 更改手机号 | |||
changePhone() { | |||
this.setData({ | |||
isChangePhone: true, | |||
tempPhone: this.data.phone | |||
}) | |||
}, | |||
// 输入手机号 | |||
phoneInput(e) { | |||
this.setData({ | |||
phone: e.detail.value | |||
}) | |||
}, | |||
// 输入密码 | |||
pwdInput(e) { | |||
this.setData({ | |||
password: e.detail.value | |||
}) | |||
}, | |||
// 确认手机号更改 | |||
confirmPhone() { | |||
const phoneReg = /^(?:(?:\+|00)86)?1[3-9]\d{9}$/ | |||
const phoneValid = phoneReg.test(this.data.phone) | |||
if (!phoneValid) { | |||
wx.showToast({ | |||
title: '请输入正确的手机号!', | |||
icon: 'none' | |||
}) | |||
return | |||
} | |||
this.setData({ | |||
isChangePhone: false, | |||
}) | |||
}, | |||
// 取消更改 | |||
cancelChangePhone() { | |||
this.setData({ | |||
isChangePhone: false, | |||
phone: this.data.tempPhone | |||
}) | |||
}, | |||
// 更改tab栏 | |||
changeTabs(e) { | |||
console.log(e, 'changeTabs'); | |||
this.setData({ | |||
tabIndex: e.target.id, | |||
code: '', | |||
password: '' | |||
}) | |||
}, | |||
// 支付安全设置 | |||
securityChange(e) { | |||
this.setData({ | |||
pdwSwitch: e.detail.value * 1 | |||
}) | |||
}, | |||
// 扫描二维码 | |||
goScanCode() { | |||
console.log('scan!!!'); | |||
const that = this | |||
wx.scanCode({ | |||
success: (res) => { | |||
console.log(res, 'res'); | |||
const num = res.result | |||
that.setData({ | |||
code: num | |||
}) | |||
that.exchange({ detail: { value: num } }) | |||
}, | |||
fail: (res) => { | |||
console.log(res, 'fail'); | |||
} | |||
}) | |||
}, | |||
// 检查用户登录状态 | |||
checkPhoneStatus() { | |||
let that = this; | |||
Http.get({ | |||
url: config.api.checkPhoneStatus, | |||
}) | |||
.then(res => { | |||
}) | |||
.catch(err => { | |||
if (err.code == 11005) { | |||
// 手机号没有授权,将值传到用户手机号授权的页面 | |||
wx.redirectTo({ | |||
url: "/pages/getphoneInfo/index", | |||
}) | |||
} else { | |||
wx.showToast({ | |||
title: err.message, | |||
icon: 'none', | |||
duration: 2500 | |||
}) | |||
} | |||
}) | |||
}, | |||
onLoad() { | |||
setTimeout(() => { | |||
this.checkPhoneStatus() | |||
}, 2000); | |||
} | |||
}) |
@@ -0,0 +1,5 @@ | |||
{ | |||
"usingComponents": { | |||
"navbar": "../../components/navbar/navbar" | |||
} | |||
} |
@@ -0,0 +1,54 @@ | |||
<navbar text="录入实体卡" home back background='#FD832D' color="white"></navbar> | |||
<view style="height:{{navigationBarHeight}} "></view> | |||
<view class="tab" bindtap="changeTabs"> | |||
<view class="{{tabIndex == 0 ? 'tabItem active' : 'tabItem'}}" id="0">绑定</view> | |||
<view class="{{tabIndex == 1 ? 'tabItem active' : 'tabItem'}}" id="1">转增</view> | |||
</view> | |||
<form bindsubmit='exchange' report-submit='true'> | |||
<view class="section"> | |||
<input name='code' placeholder="请输入卡号或扫描二维码" clearable value="{{code}}" /> | |||
<button size="primarySize" style="background:#FD832D;color:#fff;" hover-class="opcaity" form-type="submit">查询</button> | |||
<image class="scan" src="../../assets/images/scan.png" bindtap="goScanCode"></image> | |||
</view> | |||
</form> | |||
<view class="infoCard"> | |||
<view class="name">持卡人姓名:{{name}}</view> | |||
<view wx:if="{{!isChangePhone}}" class="phone">持卡人手机号:{{phone}} <text class="changePhone" bindtap="changePhone">更改</text></view> | |||
<view wx:if="{{isChangePhone}}" class="phone">持卡人手机号: | |||
<input class="phoneInput" type="text" placeholder="请填写手机号" focus="true" bindinput="phoneInput" /> | |||
<text class="confirmPhone" bindtap="confirmPhone">确定</text> | |||
<text class="cancelChangePhone" bindtap="cancelChangePhone">取消</text> | |||
</view> | |||
<view class="security"> | |||
<text>支付安全设置:</text> | |||
<radio-group wx:if="{{tabIndex == 0}}" class="radioGroup" bindchange="securityChange"> | |||
<label> | |||
<radio value="0" checked="true" />无验证 | |||
</label> | |||
<label> | |||
<radio value="1" />密码验证 | |||
</label> | |||
</radio-group> | |||
<radio-group wx:if="{{tabIndex == 1}}" class="radioGroup" bindchange="securityChange"> | |||
<label> | |||
<radio value="0" checked="true" />无验证 | |||
</label> | |||
</radio-group> | |||
</view> | |||
<view wx:if="{{pdwSwitch && tabIndex == 0}}" class="pwdBox"> | |||
<input type="text" placeholder="请设置密码" placeholder-class="pwdBoxInside" focus="true" bindinput="pwdInput"/> | |||
</view> | |||
</view> | |||
<view class="btns"> | |||
<button wx:if="{{tabIndex == 0}}" type="primary" bindtap="checkPhoneStatus">确认绑定</button> | |||
<button wx:if="{{tabIndex == 1}}" type="primary" bindtap="checkPhoneStatus">去转赠</button> | |||
</view> |
@@ -0,0 +1,121 @@ | |||
/* pages/exchange/exchange.wxss */ | |||
.section { | |||
padding: 20rpx 20rpx; | |||
} | |||
.section { | |||
position: relative; | |||
display: flex; | |||
flex: 5; | |||
} | |||
.section input { | |||
flex: 3; | |||
border: 1px solid #ccc; | |||
border-radius: 10rpx; | |||
height: 70rpx; | |||
line-height: 70rpx; | |||
font-size: 30rpx; | |||
padding-left: 20rpx; | |||
margin-right: 10rpx; | |||
} | |||
.section button { | |||
flex: 1; | |||
height: 74rpx; | |||
line-height: 74rpx; | |||
font-size: 30rpx; | |||
} | |||
.section .scan { | |||
position: absolute; | |||
right: 255rpx; | |||
bottom: 37rpx; | |||
width: 40rpx; | |||
height: 40rpx; | |||
z-index: 999; | |||
} | |||
.comment { | |||
padding: 0 20rpx; | |||
margin-top: 60rpx; | |||
} | |||
.comment text { | |||
display: block; | |||
} | |||
.opcaity { | |||
opacity: .6; | |||
} | |||
.tab { | |||
display: flex; | |||
justify-content: space-around; | |||
margin-bottom: 25rpx; | |||
z-index: 999; | |||
height: 60rpx; | |||
} | |||
.tab .tabItem { | |||
width: 100rpx; | |||
text-align: center; | |||
padding-bottom: 15rpx; | |||
transition: all .3s; | |||
} | |||
.tabItem.active { | |||
font-size: 35rpx; | |||
color: #fd832d; | |||
border-bottom: 5rpx solid #fd832d; | |||
} | |||
.infoCard { | |||
width: 90%; | |||
text-align: left; | |||
padding: 25rpx 25rpx 5rpx 25rpx; | |||
font-size: 32rpx; | |||
background-color: #fff; | |||
margin: 10rpx auto; | |||
border-radius: 15rpx; | |||
} | |||
.infoCard view { | |||
margin-bottom: 35rpx; | |||
} | |||
.infoCard .phone .changePhone, | |||
.infoCard .phone .confirmPhone { | |||
color: #09bb07; | |||
} | |||
.infoCard .phone .cancelChangePhone { | |||
color: #fd832d; | |||
margin-left: 15rpx; | |||
} | |||
.infoCard .phone { | |||
position: relative; | |||
} | |||
.infoCard .phone .phoneInput { | |||
position: relative; | |||
top: 8rpx; | |||
display: inline-block; | |||
width: 240rpx; | |||
} | |||
.infoCard .radioGroup { | |||
display: inline-block; | |||
} | |||
.infoCard .pwdBox { | |||
border: 1px solid #5c5c5c; | |||
padding: 15rpx; | |||
border-radius: 15rpx; | |||
} | |||
.btns { | |||
margin-top: 50rpx; | |||
padding: 0 40rpx; | |||
} |
@@ -249,6 +249,11 @@ Page({ | |||
} | |||
}); | |||
} | |||
if (that.data.path == 'exchangeCard') { | |||
wx.navigateTo({ | |||
url: `/pages/exchangeCard/exchangeCard` | |||
}) | |||
} | |||
}).catch(err => { | |||
wx.showToast({ | |||
title: err.message, | |||
@@ -77,6 +77,8 @@ Page({ | |||
options.id = this.data.newArr[2]; | |||
} else if (options.type == 'ts') { | |||
options.id = this.data.newArr[2]; | |||
} else if (options.type == 'ts') { | |||
options.id = this.data.newArr[2]; | |||
} | |||
} | |||
} | |||
@@ -344,6 +346,13 @@ Page({ | |||
url: '/pages/discountCardList/discountCardList' | |||
}) | |||
} | |||
// 录入电子卡 | |||
else if (app.globalData.type == 'se') { | |||
// 录入电子卡 | |||
wx.redirectTo({ | |||
url: '/pages/exchangeCard/exchangeCard' | |||
}) | |||
} | |||
//直播 | |||
else if (app.globalData.type == 'zb') { | |||
wx.redirectTo({ | |||
@@ -533,6 +542,13 @@ Page({ | |||
url: '/pages/discountCardList/discountCardList' | |||
}) | |||
} | |||
// 录入电子卡 | |||
else if (app.globalData.type == 'se') { | |||
// 录入电子卡 | |||
wx.redirectTo({ | |||
url: '/pages/exchangeCard/exchangeCard' | |||
}) | |||
} | |||
// 兑换 | |||
else if (app.globalData.type == 'ec') { | |||
wx.redirectTo({ | |||
@@ -35,7 +35,7 @@ | |||
}, | |||
"compileType": "miniprogram", | |||
"libVersion": "2.11.2", | |||
"appid": "wx453ae0d37f3550d0", | |||
"appid": "wxfa336cad86ed598d", | |||
"projectname": "C", | |||
"simulatorType": "wechat", | |||
"simulatorPluginLibVersion": {}, | |||
@@ -8,5 +8,17 @@ | |||
"useIsolateContext": true | |||
}, | |||
"libVersion": "2.11.2", | |||
"condition": {} | |||
"condition": { | |||
"miniprogram": { | |||
"list": [ | |||
{ | |||
"name": "exchangeCard", | |||
"pathName": "pages/exchangeCard/exchangeCard", | |||
"query": "", | |||
"launchMode": "default", | |||
"scene": null | |||
} | |||
] | |||
} | |||
} | |||
} |