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.
200 lines
4.6 KiB
200 lines
4.6 KiB
<template> |
|
<view class="OrderCancellation"> |
|
<view class="header"> |
|
<image mode="aspectFit" :src="`${$VUE_APP_RESOURCES_URL}/images/writeOffBg.jpg`" @click="openQRCode" /> |
|
</view> |
|
<view class="whiteBg"> |
|
<view class="input"> |
|
<input type="number" placeholder="0" v-model="verify_code" /> |
|
</view> |
|
<view class="bnt" @click="storeCancellation">立即核销</view> |
|
<view class="bnt" @click="openQRCode">扫码核销</view> |
|
</view> |
|
<!-- #ifndef H5 --> |
|
<!-- <view class="scan" v-if="iswechat"> |
|
<image :src="`${$VUE_APP_RESOURCES_URL}/images/scan.gif`" @click="openQRCode" /> |
|
</view> --> |
|
<!-- #endif --> |
|
<WriteOff :iShidden="iShidden" :orderInfo="orderInfo" @cancel="cancel" @confirm="confirm"></WriteOff> |
|
</view> |
|
</template> |
|
|
|
<script> |
|
import WriteOff from "@/components/WriteOff"; |
|
import { |
|
isWeixin |
|
} from "@/utils"; |
|
// import { wechatEvevt } from "@/libs/wechat"; |
|
import { |
|
orderVerific |
|
} from "@/api/order"; |
|
const NAME = "OrderCancellation"; |
|
|
|
export default { |
|
name: NAME, |
|
components: { |
|
WriteOff |
|
}, |
|
props: {}, |
|
data: function() { |
|
return { |
|
iShidden: true, |
|
orderInfo: {}, |
|
verify_code: "" |
|
}; |
|
}, |
|
mounted: function() {}, |
|
methods: { |
|
cancel: function(res) { |
|
this.iShidden = res; |
|
}, |
|
confirm: function() { |
|
orderVerific(this.verify_code, 1) |
|
.then(res => { |
|
this.iShidden = true; |
|
this.verify_code = ""; |
|
uni.showToast({ |
|
title: res.msg, |
|
icon: "none", |
|
duration: 2000 |
|
}); |
|
}) |
|
.catch(err => { |
|
uni.showToast({ |
|
title: err.msg || err.response.data.msg || err.response.data.message, |
|
icon: "none", |
|
duration: 2000 |
|
}); |
|
}); |
|
}, |
|
storeCancellation: function() { |
|
let ref = /[0-9]{12}/; |
|
if (!this.verify_code) { |
|
uni.showToast({ |
|
title: "请输入核销码", |
|
icon: "none", |
|
duration: 2000 |
|
}); |
|
return; |
|
} |
|
if (!ref.test(this.verify_code)) { |
|
uni.showToast({ |
|
title: "请输入正确的核销码", |
|
icon: "none", |
|
duration: 2000 |
|
}); |
|
return; |
|
} |
|
uni.showLoading({ |
|
title: "查询中" |
|
}); |
|
orderVerific(this.verify_code, 0) |
|
.then(res => { |
|
uni.hideLoading(); |
|
this.orderInfo = res.data; |
|
this.iShidden = false; |
|
uni.showToast({ |
|
title: res.msg, |
|
icon: "success", |
|
duration: 2000 |
|
}); |
|
}) |
|
.catch(error => { |
|
uni.hideLoading(); |
|
uni.showToast({ |
|
title: error.msg || |
|
error.response.data.msg || |
|
error.response.data.message, |
|
icon: "none", |
|
duration: 2000 |
|
}); |
|
}); |
|
}, |
|
openQRCode: function() { |
|
let that = this; |
|
// 这里需要调用扫码功能 |
|
uni.scanCode({ |
|
success: (res) => { |
|
var result = res.result; |
|
if (result) { |
|
that.verify_code = res.result; |
|
that.storeCancellation(); |
|
} else { |
|
uni.showToast({ |
|
title: '没有扫描到什么!', |
|
icon: "none", |
|
duration: 2000 |
|
}); |
|
} |
|
} |
|
}) |
|
|
|
} |
|
} |
|
}; |
|
</script> |
|
|
|
<style scoped lang="less"> |
|
.OrderCancellation .header { |
|
width: 100%; |
|
height: 3 * 100rpx; |
|
background-size: 100% 100%; |
|
|
|
image { |
|
width: 100%; |
|
height: 3 * 100rpx; |
|
} |
|
} |
|
|
|
.OrderCancellation .whiteBg { |
|
width: 6.9 * 100rpx; |
|
background-color: #fff; |
|
margin: -0.93 * 100rpx auto 0 auto; |
|
padding-top: 0.8 * 100rpx; |
|
padding-bottom: 30rpx; |
|
z-index: 20; |
|
position: relative; |
|
border-radius: 0.06 * 100rpx 0.06 * 100rpx 0 0; |
|
} |
|
|
|
.OrderCancellation .whiteBg .input { |
|
width: 5.8 * 100rpx; |
|
margin: 0 auto; |
|
border-bottom: 0.01 * 100rpx solid #eee; |
|
} |
|
|
|
.OrderCancellation .whiteBg .input input { |
|
padding-bottom: 0.25 * 100rpx; |
|
font-size: 0.6 * 100rpx; |
|
height: auto; |
|
color: #282828; |
|
width: 100%; |
|
text-align: center; |
|
} |
|
|
|
.OrderCancellation .whiteBg .bnt { |
|
font-size: 0.32 * 100rpx; |
|
color: #fff; |
|
width: 5.8 * 100rpx; |
|
height: 0.86 * 100rpx; |
|
border-radius: 0.43 * 100rpx; |
|
background-image: linear-gradient(to right, #eb3729 0%, #eb3729 100%); |
|
background-image: -webkit-linear-gradient(to right, #eb3729 0%, #eb3729 100%); |
|
background-image: -moz-linear-gradient(to right, #eb3729 0%, #eb3729 100%); |
|
text-align: center; |
|
line-height: 0.86 * 100rpx; |
|
margin: 0.55 * 100rpx auto 0 auto; |
|
} |
|
|
|
.OrderCancellation .scan { |
|
width: 3 * 100rpx; |
|
height: 3 * 100rpx; |
|
margin: 1.1 * 100rpx auto 0 auto; |
|
} |
|
|
|
.OrderCancellation .scan image { |
|
width: 100%; |
|
height: 100%; |
|
display: block; |
|
} |
|
</style>
|
|
|