<template> <view class="OrderCancellation"> <view class="header"> <image mode="aspectFit" src="@/static/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="@/static/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>