324 lines
46 KiB
Vue
324 lines
46 KiB
Vue
|
<template>
|
|||
|
<view>
|
|||
|
<view class="OrderCancellation">
|
|||
|
<view class="header"></view>
|
|||
|
<view class="whiteBg">
|
|||
|
<view class="input">
|
|||
|
<input type="number" placeholder="0" v-model="verify_code" />
|
|||
|
</view>
|
|||
|
<view class="bnt" @click="codeChange">立即核销</view>
|
|||
|
</view>
|
|||
|
<!-- #ifdef MP || MP-WEIXIN -->
|
|||
|
<view class="scan" @click="scanCode">
|
|||
|
<image src="../static/scan.gif"></image>
|
|||
|
</view>
|
|||
|
<!-- #endif -->
|
|||
|
</view>
|
|||
|
<view v-if="iShidden">
|
|||
|
<view class="WriteOff">
|
|||
|
<view class="pictrue">
|
|||
|
<image :src="orderInfo.image" />
|
|||
|
</view>
|
|||
|
<view class="num acea-row row-center-wrapper">
|
|||
|
<text>{{ orderInfo.order_id }}</text>
|
|||
|
<view class="views" @click='goOrderDetails(orderInfo.order_id)'>查看<text class='iconfont icon-jiantou views-jian'></text></view>
|
|||
|
</view>
|
|||
|
<view class="tip">确定要核销此订单吗?</view>
|
|||
|
<view class="sure" @click="confirm">确定核销</view>
|
|||
|
<view class="sure cancel" @click="cancel">取消</view>
|
|||
|
</view>
|
|||
|
<view class="mask"></view>
|
|||
|
</view>
|
|||
|
<home></home>
|
|||
|
</view>
|
|||
|
</template>
|
|||
|
|
|||
|
<script>
|
|||
|
import {
|
|||
|
orderVerific
|
|||
|
} from "@/api/admin";
|
|||
|
import home from '@/components/home';
|
|||
|
export default {
|
|||
|
components:{
|
|||
|
home
|
|||
|
},
|
|||
|
data() {
|
|||
|
return {
|
|||
|
iShidden: false,
|
|||
|
verify_code: '',
|
|||
|
iShidden: false
|
|||
|
}
|
|||
|
},
|
|||
|
methods: {
|
|||
|
/**
|
|||
|
* 去订单详情
|
|||
|
*/
|
|||
|
goOrderDetails: function(id) {
|
|||
|
uni.navigateTo({
|
|||
|
url: '/pages/admin/order_details/index?id=' + id + '&goname=look'
|
|||
|
});
|
|||
|
},
|
|||
|
// 立即核销
|
|||
|
codeChange: function() {
|
|||
|
let self = this
|
|||
|
let ref = /[0-9]{12}/;
|
|||
|
if (!this.verify_code) return self.$util.Tips({
|
|||
|
title: '请输入核销码'
|
|||
|
});
|
|||
|
if (!ref.test(this.verify_code)) return self.$util.Tips({
|
|||
|
title: '请输入正确的核销码'
|
|||
|
});
|
|||
|
self.$util.Tips({
|
|||
|
title: '查询中'
|
|||
|
});
|
|||
|
setTimeout(() => {
|
|||
|
orderVerific(this.verify_code, 0)
|
|||
|
.then(res => {
|
|||
|
self.orderInfo = res.data
|
|||
|
self.iShidden = true
|
|||
|
})
|
|||
|
.catch(res => {
|
|||
|
self.verify_code = ''
|
|||
|
return self.$util.Tips({
|
|||
|
title: res
|
|||
|
});
|
|||
|
});
|
|||
|
}, 800);
|
|||
|
},
|
|||
|
// 扫码核
|
|||
|
scanCode() {
|
|||
|
var self = this;
|
|||
|
// #ifdef MP
|
|||
|
wx.scanCode({
|
|||
|
scanType: ["qrCode", "barCode"],
|
|||
|
success(res) {
|
|||
|
self.verify_code = res.result
|
|||
|
self.codeChange();
|
|||
|
},
|
|||
|
fail(res) {
|
|||
|
console.log(res);
|
|||
|
},
|
|||
|
})
|
|||
|
// #endif
|
|||
|
//#ifdef H5
|
|||
|
if(this.$wechat.isWeixin()){
|
|||
|
this.$wechat.wechatEvevt('scanQRCode',{
|
|||
|
needResult: 1,
|
|||
|
scanType: ["qrCode", "barCode"]
|
|||
|
}).then(res=>{
|
|||
|
this.verify_code = res.result
|
|||
|
this.codeChange();
|
|||
|
});
|
|||
|
}
|
|||
|
//#endif
|
|||
|
|
|||
|
},
|
|||
|
|
|||
|
/**
|
|||
|
* 确定销码
|
|||
|
*/
|
|||
|
confirm: function() {
|
|||
|
let self = this
|
|||
|
orderVerific(this.data.verify_code, 1)
|
|||
|
.then(res => {
|
|||
|
this.setData({
|
|||
|
verify_code: '',
|
|||
|
iShidden: false
|
|||
|
});
|
|||
|
self.verify_code = ''
|
|||
|
self.iShidden = false
|
|||
|
self.$util.Tips({
|
|||
|
title: res.msg
|
|||
|
});
|
|||
|
})
|
|||
|
.catch(res => {
|
|||
|
self.$util.Tips({
|
|||
|
title: res
|
|||
|
});
|
|||
|
});
|
|||
|
},
|
|||
|
/**
|
|||
|
* 取消
|
|||
|
*/
|
|||
|
cancel: function() {
|
|||
|
this.iShidden = false
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
</script>
|
|||
|
|
|||
|
<style>
|
|||
|
.OrderCancellation .header {
|
|||
|
background-image: url('data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wgARCAEsAu4DAREAAhEBAxEB/8QAHQABAAIBBQEAAAAAAAAAAAAAAgABBgMEBQcICf/EAB0BAQEAAgMBAQEAAAAAAAAAAAACAQUEBgcDCAn/2gAMAwEAAhADEAAAAM9/N/61JCLJRQV0UolWpZCUslKIQ1ZKCsqJQF0yVFRDYqLJWAqIVkKxdEIVkKyo0CyFRZCiFRUWSo3kslQKWQqIVkK6sVEoKiySllVUJRFgopcAqgkKKX6i1XikCRZCQK4FQJYroJALpRCFdUBSyqghWQrIVGxUWSsBUQrIFlRsVkIVlRoFkKyFQCshWbFRZKiFZCohWQ3dBUSgrISl0GqJS6CQK4ApVFECv1FqvFCQiwUEi6KUQ2opZCuilEIaslBWVEoKyFZCo2KioMlmlAKwFZuiFZCFZUKyVEKyFQZKiFZsVEKyFRZKiFZKWbFRKCshXRVUSAZpRIFZKIoEIFfqLVeKEhFkoBF0UolWJSyFdFKIQrqhCsqJQVlkqIVGxWQLIVFkqLJULohUWSyVFQoVkKyFQCshWbFRCshWQqIVkN3QVUEKyEpRq6ISMc5w9bzPE1+/+PG1Z+enm9h9uTwvL2OO87b7evpRS/UWq8UJCLBAlLgVEoq7ISlkpRCGroIVlVBCshWQqNisFLAVEKyyVBRsSlRQxczOjVhZCshUArIVm6IWSohWQqIVkN3QVEoKyFdFVRY5fh8HL9XoNx8vlLSEIQho3eG7TsON87bxfqDVeKEhFgogVwKiUSwWSgrigEK6oQrKiUFZCshUbBdAUWSohWQLN1WGn8ORo8PlaXy+qxislyvlXN+Gl9MlRZKgFZCsqNiyVEKiyVEKyFdWKqCFZKWSqrIdfqMv1WghCEIQhCEMT2W9wnZ9k9RarxSBKXQSilwKuK+fM4Lj7Taz9tzXx5rka7kPvxiUohDVkoKyqgFLBSyFRsVkC6Cva8fmH4fWMVyo1Pvx9rwdhpcP7UzWcrGNPNXgPovZ8arVxfs/mFNHmY0LyVGxUQrIVkKiFZCurFVBCshXRy/G1+e6Xq9kIQhCEIQhDA9p2nvb5+YEi4EJYF0cb8uXwHE2sIQhzXM127+/wpRCGrJQVlVACsshRZN0WSoslkY+vH6zZn53SpjED9cVF0zMKyGaucHObBeZKmTmpjExkbL57bm4KiyGSyVkpRCFZKWbFRKCuGmXjPZuh6ZvPn8IxGYWURiiyMwjEZjGabDrxIuAIEpZOF4Gx0Y+kJhMoalxyOy4tKIQrNKCsqo01BQVp3QUGSqmaZmXHa/bDj/WmTjNMTOYVnJZomchV4wQ1UxgZqYTObxiMjNDb8fa/SjmgzSzlTNYzAhWQrqxUSgrITIOHq+wdR1WQlpCWkJaQlpCEISkyy3YaKBIsECUujYazkTCEZjEIPbqUQhWaUFZUTTXpqy7cdfy7a6LCdV2Pn+bqyzWc0F9Op+meicf8eZ292rzztXsvRPMfnntfCcTawjPqX0jwvr/AEnbME0fZdfHyx75bnvTt/mGFavsnUnXfQOS+3C9WejeFdGdP9MwHUds2fw5VYerfUvA+jND6TjXE3PfXZ/Lun9F3/u/snm/QnWfUOztx0zzt1L1mLsAbugqJQVkK+w9P1HJeDp4WQhCFFkIQosoybZ6ckIslBKXCa2FGJhCEB9K2e15VKIQrNKCsqBpZ+mhV909t879tetfm/xx5j+gs93HV7zRM723V+O+HN8P+TfpnHeBt/V3o3hOfbrqXTPTfR+Oxz9DH2SPUPoPiHlroPt/U/Uu9dic/qffnoXlfc3a/OcQ1vYeI43Oy3ZaHlOVwuG4mw20/b5x+J/sDc4+P1h/RH4S899W9Vxbh7v1p3fw3wT5p+nvZ3fvz14x6F+hPQ/Z/Kfmx5L+wFGbAFdWKiUFZKO2tB0XlfhwYQhCEKLIQhCizntnrCRcAUQK4anH+e+1/EhCEOL2PP2nK5FKIQ1dBCsqDOg+ml9K767r5dtcfboHp3qehj6Femr3t67+X+uNL27yZ597oFfVL3r8SdF9Y9K6/wBV2r0n3Lx7hONsvPfU/WO8Oy+a5Dy9T8zPFP2RzPL4HfXa/L+xdz1HBNb2fDuB2DNtj1zANX2jh+PsOf5Os6D6t6j3p2fzPursfnPhfzn9LdgbXq3vr0v8vYRwOw9+dl8v8+dY9W6p0nePK3Svb3g5EF3QVEoKyE7n6755yHz4sYjMIxGYQhCMQhGYcvs+CSLgCEAuBVuePxuR4XC1o+ejf14rnc/YcrmUUohCs0oKyoM7bP10/pXvD2P8wZ/uerfL3wT9pwKtJf0190/G3UnXu+eHPLf0mM5+q3vf4i6e6/33q3R929K9z8d4XjbHoLqvqfdXZPOMm5mo+X3if7Py3YaP6o+4fibqPRd54Lj7HEuDv9/9OL3Z2PzrqPQ977V3fSPlF4j+4s62XW/ob6r+UNLFdPaLv3q/uniXze8s/XGK8Pd+pO3+Kdw7zoXyq8W/cDQoQK6sVEoKyE7l6/57zPH10IQhCEIQhCEIchtePRQVwoBFwKiGxXAhKXSiENXQQrKtNnbX9dq+3qP0XxX1B37xb5Yfn/8AbSCaL6fTT3T8b9R9e754b8u/Semr6s+9/iHofq/pnSHW/SfXffvA8f4u18wdM9p9Eds8lz7Z9a+Xfif7Ry3YaL6ne3/iXqDQd/zLYdd84dU9c7m3/nvbm86P5n6j7BnOx618zPH/ANkUfSv138e+f+t+p9dartn0u9Z/H/Uel7wcXlvN0PHfHm/KXxb9wajCYkDd0FRKCshX2lpuj5pwOuQhCEIQhMJlCEIbjaxAkWCAIuilENqXQSlkgFENWSgrKtNnbX9do+/qT0XxT1B37xb5Yfn/APbTiTdaK/pl7p+OOpOvd88N+XfpMK+rHvf4hwrW9hwXW9l7h7B5/wAd8+X1bo+7dj7jqOqx8ufE/wBo5hsdD9OPZvxr1tqO4dFdd9J8gdG989j97/Pvf/aPLsZ4W5671XbPFPnn6M707J5n9DPVPyhwHF2vUml736N7T5P8ffEf3rs/nyvYvefz96G7L5X8pfGP3DqzKYkCurFRKCslGT8PTdy6DzuEIQhCEIQhCEL3FEi4AogVwKoCxKWSlkpRCGroIVlQZ2t/XaPv6k9F8U9Qd+8W+WH5/wD22mCaL6fTT3T8b9R9e754d8u/SYZzDadeFXoV9PeXp/5ixXh7rxp55+hWnQ+f1w3Xdgzra9Z9/wDqn5b4PjbPozrvpPcO96Bz3K1fkfo/u/v7078tfLbxj9r4TruxrM/U/wBp/E3nPq/rXUmk759KPVvyF0tofQDi8z5/Xdr8+T8pPGP3BqzhMSBXLBRKCslLpjvjrnl3OcfWxiMwjEIzCMRmEIwGRuPtAkWSigrJFEqxXQQropRCGrJQVlQZ2z6bW/v6i9F8V9Qd/wDFfml4X+xeA4W0z3cdY083739e/LfT3W/QvEHl36RzDY9e+hXsP5UopnIebqNCfpwnE2dl5fMfxX9ldgbjqvpHuXj+ZbDQdHdc9J6B6x6j2Tuene1vQfzrxHx5/QXVvUvHPQf0CFfVH2j8S9Edd9L6k0vfPon6j+UPjT4R/QPffTj+2/Qfzj3PvfPPlT4v+4dRCJClmxVQQrIV0c9x9V3z13y54iELIUQshRCM9Ddg9Q7u4/nNFBXRCgqjJVAWiwEpZKUQhWaUFZUGdDN7avtnW86v6e7/AOM4xwdz5G83959teq/nCYra4+vm/pPr3WGg7pTOlV7d9NB9PX3ongeO8Xa+X+ke1KMNijsve9O4z583053XxfqjR967q7H5zgms7R5z6n61kPK1XpnuPjn
|
|||
|
width: 100%;
|
|||
|
height: 300rpx;
|
|||
|
background-repeat: no-repeat;
|
|||
|
background-size: 100% 100%;
|
|||
|
}
|
|||
|
|
|||
|
.OrderCancellation {
|
|||
|
width: 100%;
|
|||
|
height: 100%;
|
|||
|
background: #fff;
|
|||
|
}
|
|||
|
|
|||
|
.OrderCancellation .whiteBg {
|
|||
|
width: 90%;
|
|||
|
background-color: #fff;
|
|||
|
margin: -93rpx auto;
|
|||
|
padding-top: 80rpx;
|
|||
|
border-radius: 6rpx 0;
|
|||
|
}
|
|||
|
|
|||
|
.OrderCancellation .whiteBg .input {
|
|||
|
width: 90%;
|
|||
|
margin: 0 auto;
|
|||
|
border-bottom: 1rpx solid #eee;
|
|||
|
}
|
|||
|
|
|||
|
.OrderCancellation .whiteBg .input input {
|
|||
|
font-size: 60rpx;
|
|||
|
color: #282828;
|
|||
|
width: 100%;
|
|||
|
text-align: center;
|
|||
|
line-height: 80rpx;
|
|||
|
height: 80rpx
|
|||
|
}
|
|||
|
|
|||
|
.OrderCancellation .whiteBg .bnt {
|
|||
|
font-size: 32rpx;
|
|||
|
color: #fff;
|
|||
|
width: 80%;
|
|||
|
height: 86rpx;
|
|||
|
border-radius: 43rpx;
|
|||
|
background-image: linear-gradient(to right, #f67a38 0%, #f11b09 100%);
|
|||
|
background-image: -webkit-linear-gradient(to right, #f67a38 0%, #f11b09 100%);
|
|||
|
background-image: -moz-linear-gradient(to right, #f67a38 0%, #f11b09 100%);
|
|||
|
text-align: center;
|
|||
|
line-height: 86rpx;
|
|||
|
margin: 55rpx auto 0 auto;
|
|||
|
}
|
|||
|
|
|||
|
.OrderCancellation .scan {
|
|||
|
width: 300rpx;
|
|||
|
height: 300rpx;
|
|||
|
margin: 160rpx auto 0 auto;
|
|||
|
}
|
|||
|
|
|||
|
.OrderCancellation .scan image {
|
|||
|
width: 100%;
|
|||
|
height: 100%;
|
|||
|
display: block;
|
|||
|
}
|
|||
|
|
|||
|
.WriteOff {
|
|||
|
width: 560rpx;
|
|||
|
height: 800rpx;
|
|||
|
background-color: #fff;
|
|||
|
border-radius: 20rpx;
|
|||
|
position: fixed;
|
|||
|
top: 50%;
|
|||
|
left: 50%;
|
|||
|
margin-top: -400rpx;
|
|||
|
margin-left: -280rpx;
|
|||
|
z-index: 99;
|
|||
|
padding-top: 55rpx;
|
|||
|
}
|
|||
|
|
|||
|
.WriteOff .pictrue {
|
|||
|
width: 340rpx;
|
|||
|
height: 340rpx;
|
|||
|
margin: 0 auto;
|
|||
|
}
|
|||
|
|
|||
|
.WriteOff .pictrue image {
|
|||
|
width: 100%;
|
|||
|
height: 100%;
|
|||
|
display: block;
|
|||
|
border-radius: 10rpx;
|
|||
|
}
|
|||
|
|
|||
|
.WriteOff .num {
|
|||
|
font-size: 30rpx;
|
|||
|
color: #666;
|
|||
|
margin: 28rpx 0 30rpx 0;
|
|||
|
}
|
|||
|
|
|||
|
.WriteOff .num .see {
|
|||
|
font-size: 16rpx;
|
|||
|
color: #fff;
|
|||
|
border-radius: 4rpx;
|
|||
|
background-color: #c68937;
|
|||
|
padding-left: 5rpx;
|
|||
|
margin-left: 12rpx;
|
|||
|
}
|
|||
|
|
|||
|
.WriteOff .num .see .iconfont {
|
|||
|
font-size: 15rpx;
|
|||
|
}
|
|||
|
|
|||
|
.WriteOff .tip {
|
|||
|
font-size: 36rpx;
|
|||
|
color: #282828;
|
|||
|
text-align: center;
|
|||
|
border-top: 1px dashed #ccc;
|
|||
|
padding-top: 40rpx;
|
|||
|
position: relative;
|
|||
|
}
|
|||
|
|
|||
|
.WriteOff .tip:after {
|
|||
|
content: "";
|
|||
|
position: absolute;
|
|||
|
width: 25rpx;
|
|||
|
height: 25rpx;
|
|||
|
border-radius: 50%;
|
|||
|
background-color: #7f7f7f;
|
|||
|
right: -12.5rpx;
|
|||
|
top: -12.5rpx;
|
|||
|
}
|
|||
|
|
|||
|
.WriteOff .tip:before {
|
|||
|
content: "";
|
|||
|
position: absolute;
|
|||
|
width: 25rpx;
|
|||
|
height: 25rpx;
|
|||
|
border-radius: 50%;
|
|||
|
background-color: #7f7f7f;
|
|||
|
left: -12.5rpx;
|
|||
|
top: -12.5rpx;
|
|||
|
}
|
|||
|
|
|||
|
.WriteOff .sure {
|
|||
|
font-size: 32rpx;
|
|||
|
color: #fff;
|
|||
|
text-align: center;
|
|||
|
line-height: 82rpx;
|
|||
|
height: 82rpx;
|
|||
|
width: 460rpx;
|
|||
|
border-radius: 41rpx;
|
|||
|
margin: 40rpx auto 0 auto;
|
|||
|
background-image: linear-gradient(to right, #f67a38 0%, #f11b09 100%);
|
|||
|
background-image: -webkit-linear-gradient(to right, #f67a38 0%, #f11b09 100%);
|
|||
|
background-image: -moz-linear-gradient(to right, #f67a38 0%, #f11b09 100%);
|
|||
|
}
|
|||
|
|
|||
|
.WriteOff .sure.cancel {
|
|||
|
background-image: none;
|
|||
|
color: #999;
|
|||
|
margin-top: 10rpx;
|
|||
|
}
|
|||
|
|
|||
|
.views {
|
|||
|
font-size: 18rpx;
|
|||
|
background: #C68937;
|
|||
|
border-radius: 4px;
|
|||
|
color: #fff;
|
|||
|
padding: 5rpx 2rpx 5rpx 8rpx;
|
|||
|
margin-left: 10rpx;
|
|||
|
}
|
|||
|
|
|||
|
.views-jian {
|
|||
|
font-size: 10px;
|
|||
|
}
|
|||
|
</style>
|