Parcourir la source

upload

newCard
HolyKnightIX il y a 2 ans
Parent
révision
e683ef3a43
15 fichiers modifiés avec 478 ajouts et 76 suppressions
  1. +1
    -0
      app.json
  2. BIN
      assets/images/scan.png
  3. +20
    -24
      ext.json
  4. +8
    -0
      index/user.wxml
  5. +59
    -38
      pages/exchange/exchange.js
  6. +5
    -3
      pages/exchange/exchange.wxml
  7. +28
    -9
      pages/exchange/exchange.wxss
  8. +142
    -0
      pages/exchangeCard/exchangeCard.js
  9. +5
    -0
      pages/exchangeCard/exchangeCard.json
  10. +54
    -0
      pages/exchangeCard/exchangeCard.wxml
  11. +121
    -0
      pages/exchangeCard/exchangeCard.wxss
  12. +5
    -0
      pages/getphoneInfo/index.js
  13. +16
    -0
      pages/index/index.js
  14. +1
    -1
      project.config.json
  15. +13
    -1
      project.private.config.json

+ 1
- 0
app.json Voir le fichier

@@ -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",


BIN
assets/images/scan.png Voir le fichier

Avant Après
Largeur: 128  |  Hauteur: 128  |  Taille: 2.7 KiB

+ 20
- 24
ext.json Voir le fichier

@@ -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": {


+ 8
- 0
index/user.wxml Voir le fichier

@@ -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>


+ 59
- 38
pages/exchange/exchange.js Voir le fichier

@@ -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
})
})
})
}
})

+ 5
- 3
pages/exchange/exchange.wxml Voir le fichier

@@ -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>


+ 28
- 9
pages/exchange/exchange.wxss Voir le fichier

@@ -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;
}

+ 142
- 0
pages/exchangeCard/exchangeCard.js Voir le fichier

@@ -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);
}
})

+ 5
- 0
pages/exchangeCard/exchangeCard.json Voir le fichier

@@ -0,0 +1,5 @@
{
"usingComponents": {
"navbar": "../../components/navbar/navbar"
}
}

+ 54
- 0
pages/exchangeCard/exchangeCard.wxml Voir le fichier

@@ -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>

+ 121
- 0
pages/exchangeCard/exchangeCard.wxss Voir le fichier

@@ -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;
}

+ 5
- 0
pages/getphoneInfo/index.js Voir le fichier

@@ -249,6 +249,11 @@ Page({
}
});
}
if (that.data.path == 'exchangeCard') {
wx.navigateTo({
url: `/pages/exchangeCard/exchangeCard`
})
}
}).catch(err => {
wx.showToast({
title: err.message,


+ 16
- 0
pages/index/index.js Voir le fichier

@@ -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({


+ 1
- 1
project.config.json Voir le fichier

@@ -35,7 +35,7 @@
},
"compileType": "miniprogram",
"libVersion": "2.11.2",
"appid": "wx453ae0d37f3550d0",
"appid": "wxfa336cad86ed598d",
"projectname": "C",
"simulatorType": "wechat",
"simulatorPluginLibVersion": {},


+ 13
- 1
project.private.config.json Voir le fichier

@@ -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
}
]
}
}
}

Chargement…
Annuler
Enregistrer