You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
150 lines
4.4 KiB
150 lines
4.4 KiB
<template>
|
|
|
|
<!-- 扫码进入 携带参数 -->
|
|
|
|
<view style="box-sizing: border-box;">
|
|
<image src="../../static/bing_bg.png" style="width: 100vw;height: 50vw;z-index: 0;"></image>
|
|
|
|
<view style="display: flex;flex-direction: column;margin-top: -10vw;box-sizing: border-box;">
|
|
<view
|
|
style="display: flex;flex-direction: column;border-radius: 20rpx;background: #FFFFFF;z-index: 1;align-items: center;box-sizing: border-box;">
|
|
<view style="margin: 15px;">绑定礼包卡</view>
|
|
<view
|
|
style="display: flex;flex-direction: row;justify-content: space-between;box-sizing: border-box;width: calc(100vw - 60px);align-items: center;">
|
|
<input maxlength="20" placeholder="请输入/扫码 提货编码"
|
|
style="font-size: 30rpx;flex: 1;background: #F8F8F8;border-radius: 5px;height: 40px;line-height: 40px;margin-right: 10px;padding-left: 10px;"
|
|
type="number" :value="page.code" @input="onKeyInput1" />
|
|
<uni-icons type="camera-filled" color="#c0c4cc" size="22" style="flex-shrink: 0;" @click="scan" />
|
|
</view>
|
|
<view
|
|
style="display: flex;flex-direction: row;justify-content: space-between;box-sizing: border-box;width: calc(100vw - 60px);align-items: center;margin-top: 10px;">
|
|
<input maxlength="6" placeholder="请输入提货密码"
|
|
style="font-size: 30rpx;flex: 1;background: #F8F8F8;border-radius: 5px;height: 40px;line-height: 40px;padding-left: 10px;"
|
|
type="number" :value="page.codeKey" @input="onKeyInput2" />
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
<view
|
|
style="margin: 30px;background-color: #fd3655;width: calc(100% - 60px);border-radius: 100rpx;height: 80rpx;display: flex;flex-direction: column;align-items: center;line-height: 80rpx;color: #FFFFFF;font-size: 36rpx;"
|
|
@click="save">
|
|
绑定</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
data() {
|
|
return {
|
|
page: {
|
|
code: '',
|
|
codeKey: '',
|
|
customerSid: ''
|
|
}
|
|
}
|
|
},
|
|
onLoad(options) {
|
|
let _this = this;
|
|
wx.login({
|
|
success: function(res) {
|
|
uni.request({
|
|
// 组装请求地址
|
|
url: getApp().globalData.wxSilentLoginURL + "?wxCode=" + res.code,
|
|
method: "GET",
|
|
header: {
|
|
'content-type': "application/x-www-form-urlencoded"
|
|
},
|
|
data: {
|
|
"wxCode": res.code
|
|
},
|
|
success: res => {
|
|
if (res.statusCode == 200) {
|
|
if (!res.data.success) {
|
|
if (res.data.code == "110") {
|
|
// 需要绑定手机号
|
|
uni.reLaunch({
|
|
url: '/pages/index/BindPhone?openid=' +
|
|
res.data.data.wxMpOpenid
|
|
})
|
|
} else {
|
|
// _this.status = 'more'
|
|
}
|
|
} else {
|
|
// 成功后跳转主页
|
|
getApp().globalData.sid = res.data.data.sid
|
|
_this.page.customerSid = getApp().globalData.sid
|
|
console.log("用户sid", getApp().globalData.sid)
|
|
}
|
|
} else {
|
|
// _this.status = 'more'
|
|
}
|
|
},
|
|
fail: (err) => {
|
|
// _this.status = 'more'
|
|
}
|
|
});
|
|
},
|
|
fail: function(res) {
|
|
// _this.status = 'more'
|
|
}
|
|
});
|
|
|
|
if (options) {
|
|
console.log("options", options)
|
|
|
|
const q = decodeURIComponent(options.q) // 获取到二维码原始链接内容
|
|
console.log("二维码原始链接内容", q)
|
|
|
|
var code = q.split('=')[1]
|
|
|
|
// var code = this.getQueryString(q, 'code');// code是你二维码链接里面的参数名
|
|
|
|
console.log("提货卡编码", code)
|
|
this.page.code = code
|
|
}
|
|
|
|
|
|
},
|
|
methods: {
|
|
onKeyInput1: function(event) {
|
|
this.page.code = event.target.value
|
|
},
|
|
onKeyInput2: function(event) {
|
|
this.page.codeKey = event.target.value
|
|
},
|
|
scan() {
|
|
// 只允许通过相机扫码
|
|
let _this = this
|
|
uni.scanCode({
|
|
onlyFromCamera: true,
|
|
success: function(res) {
|
|
_this.page.code = res.result.substring(res.result.length - 20, res.result.length)
|
|
}
|
|
});
|
|
},
|
|
save() {
|
|
if (this.stringIsEmpty(this.page.code) || this.page.code.length != 20) {
|
|
this.shortToast('请输入或扫描20位提货编码')
|
|
return
|
|
}
|
|
if (this.stringIsEmpty(this.page.codeKey) || this.page.codeKey.length != 6) {
|
|
this.shortToast('请输入6位提货密码')
|
|
return
|
|
}
|
|
let _this = this
|
|
_this.$api.cardBind(this.page).then((resp) => {
|
|
uni.switchTab({
|
|
url: '/pages/card/card'
|
|
})
|
|
uni.$emit('order', {})
|
|
}).catch(e => {
|
|
_this.longToast(e.msg)
|
|
})
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style>
|
|
|
|
</style>
|