|
@@ -0,0 +1,829 @@
|
|
|
|
+<template>
|
|
|
|
+ <view class="order-detail">
|
|
|
|
+ <view class="status-box">
|
|
|
|
+ <view class="text-box">
|
|
|
|
+ <!-- {{ info.orderType }} -->
|
|
|
|
+ <!-- <view class="status" v-if="info.orderType == 'WAIT_PAYMENT' && !isNotTime">
|
|
|
|
+ 等待支付,剩余<u-count-down :time="closeTime" format="HH:mm:ss" @finish="finish"></u-count-down>
|
|
|
|
+ </view> -->
|
|
|
|
+ <view class="status">
|
|
|
|
+ {{ filterType(info.orderType) }}
|
|
|
|
+ </view>
|
|
|
|
+ </view>
|
|
|
|
+ </view>
|
|
|
|
+
|
|
|
|
+ <view class="content progress" v-if="
|
|
|
|
+ info.goodsList[0].goodsState == 'APPLY_REFUND' ||
|
|
|
|
+ info.goodsList[0].goodsState == 'REFUNDED'
|
|
|
|
+ " @click="refundDetail">
|
|
|
|
+ <view class="progress-title"> 退款进度 </view>
|
|
|
|
+
|
|
|
|
+ <view class="progress-desc"> 查看退款详情 </view>
|
|
|
|
+ </view>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ <view class="content info">
|
|
|
|
+ <view class="order-info">
|
|
|
|
+ <!-- <image class="icon" :src="info.goodsList[0].goodsInfo.goodsPath" mode=""></image> -->
|
|
|
|
+ <view class="shop-info">
|
|
|
|
+ <view class="title">
|
|
|
|
+ {{ info.goodsList[0].goodsInfo.activityName }}
|
|
|
|
+ </view>
|
|
|
|
+ <view class="goods-desc">
|
|
|
|
+ 活动时间: {{ info.goodsList[0].goodsInfo.activityStartTime }} 至 {{ info.goodsList[0].goodsInfo.activityEndTime }}
|
|
|
|
+ </view>
|
|
|
|
+ <view class="price-box">
|
|
|
|
+ <view class="goods-desc">
|
|
|
|
+ 报名人数:
|
|
|
|
+ </view>
|
|
|
|
+ <view class="goods-desc">
|
|
|
|
+ {{ signupDetailList.length }}人
|
|
|
|
+ </view>
|
|
|
|
+ </view>
|
|
|
|
+
|
|
|
|
+ <!-- 有extend并且不是虚拟商品 -->
|
|
|
|
+ <!-- <view class="start-time" v-if="info.extend&&!isVisual">
|
|
|
|
+ 出发时间:{{info.extend}}
|
|
|
|
+ </view> -->
|
|
|
|
+ </view>
|
|
|
|
+ </view>
|
|
|
|
+ </view>
|
|
|
|
+
|
|
|
|
+ <view class="content code-box" v-if="
|
|
|
|
+ info.goodsList[0].goodsState == 'WAIT_USE' &&
|
|
|
|
+ info.goodsList[0].goodsName != '二维码支付'
|
|
|
|
+ ">
|
|
|
|
+ <view class="left">
|
|
|
|
+ <view class="title"> 券码信息 </view>
|
|
|
|
+ <view class="codeNum"> </view>
|
|
|
|
+ </view>
|
|
|
|
+ <view class="code-btn" @click="checkCode">
|
|
|
|
+ 查看券码
|
|
|
|
+ <image class="jiantou" src="../../static/jiantou-icon.png" mode=""></image>
|
|
|
|
+ </view>
|
|
|
|
+ </view>
|
|
|
|
+ <view class="content" v-if="info.goodsList[0].goodsState == 'USED'">
|
|
|
|
+ <view class="title"> 消费记录 </view>
|
|
|
|
+
|
|
|
|
+ <view class="item">
|
|
|
|
+ <view class="label"> 消费时间 </view>
|
|
|
|
+ <view class="value">
|
|
|
|
+ {{
|
|
|
|
+ $u.timeFormat(
|
|
|
|
+ info.goodsList[0].verifyModel.checkTime,
|
|
|
|
+ "yyyy-mm-dd hh:MM:ss"
|
|
|
|
+ )
|
|
|
|
+ }}
|
|
|
|
+ </view>
|
|
|
|
+ </view>
|
|
|
|
+ <view class="item">
|
|
|
|
+ <view class="label"> 消费门店 </view>
|
|
|
|
+ <view class="value">
|
|
|
|
+ {{ info.goodsList[0].verifyModel.shopName }}
|
|
|
|
+ </view>
|
|
|
|
+ </view>
|
|
|
|
+ </view>
|
|
|
|
+
|
|
|
|
+ <view class="content">
|
|
|
|
+ <view class="title"> 报名信息 </view>
|
|
|
|
+ <view v-for="(item, index) in signupDetailList" :key="index">
|
|
|
|
+ <view class="item" v-for=" obj in item" :key="obj.name">
|
|
|
|
+ <view class="label"> {{ obj.name }} </view>
|
|
|
|
+ <view class="value" v-for="o in obj.value" :key="o" v-if="!obj.isImg">
|
|
|
|
+ {{ o }}
|
|
|
|
+ </view>
|
|
|
|
+ <view class="value" v-else>
|
|
|
|
+ <image v-for="(img, index) in obj.value" :key="index" @click="clickImg(obj.value, index)" :src="img" mode="widthFix"
|
|
|
|
+ style="width: 150rpx; height: 150rpx;"></image>
|
|
|
|
+ </view>
|
|
|
|
+ </view>
|
|
|
|
+ <!-- uniapp 下划线 -->
|
|
|
|
+ <u-divider v-if="signupDetailList.length - 1 != index"></u-divider>
|
|
|
|
+ </view>
|
|
|
|
+
|
|
|
|
+ </view>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ <view class="content">
|
|
|
|
+ <view class="title"> 订单信息 </view>
|
|
|
|
+ <view class="item">
|
|
|
|
+ <view class="label"> 订单编号 </view>
|
|
|
|
+ <view class="value">
|
|
|
|
+ {{ info.orderNo }}
|
|
|
|
+ </view>
|
|
|
|
+ </view>
|
|
|
|
+
|
|
|
|
+ <view class="item">
|
|
|
|
+ <view class="label"> 付款方式 </view>
|
|
|
|
+ <!-- <view class="value">
|
|
|
|
+ {{ info.payment.pay ? filterPay(info.payment.paymentWay) : "未支付" }}
|
|
|
|
+ </view> -->
|
|
|
|
+ </view>
|
|
|
|
+ <view class="item">
|
|
|
|
+ <view class="label"> 下单时间 </view>
|
|
|
|
+ <view class="value">
|
|
|
|
+ {{
|
|
|
|
+ $u.timeFormat(info.createTime, "yyyy-mm-dd hh:MM:ss") || "未支付"
|
|
|
|
+ }}
|
|
|
|
+ </view>
|
|
|
|
+ </view>
|
|
|
|
+
|
|
|
|
+ <view class="item" v-if="
|
|
|
|
+ info.goodsList[0].goodsState != 'WAIT_PAYMENT' &&
|
|
|
|
+ info.goodsList[0].goodsState != 'CLOSE'
|
|
|
|
+ ">
|
|
|
|
+ <view class="label"> 支付时间 </view>
|
|
|
|
+ <view class="value">
|
|
|
|
+ {{ $u.timeFormat(info.payment.paymentTime, "yyyy-mm-dd hh:MM:ss") }}
|
|
|
|
+ </view>
|
|
|
|
+ </view>
|
|
|
|
+
|
|
|
|
+ <view class="item">
|
|
|
|
+ <view class="label"> 订单备注 </view>
|
|
|
|
+ <view class="value">
|
|
|
|
+ {{
|
|
|
|
+ info.extend.remark || "无"
|
|
|
|
+ }}
|
|
|
|
+ </view>
|
|
|
|
+ </view>
|
|
|
|
+ </view>
|
|
|
|
+
|
|
|
|
+ <view class="content">
|
|
|
|
+ <view class="title"> 交易信息 </view>
|
|
|
|
+
|
|
|
|
+ <view class="item">
|
|
|
|
+ <view class="label"> 金额 </view>
|
|
|
|
+ <view class="value black">
|
|
|
|
+ ¥{{ info.payAmount }}
|
|
|
|
+ </view>
|
|
|
|
+ </view>
|
|
|
|
+
|
|
|
|
+ <!-- <view class="item">
|
|
|
|
+ <view class="label"> 优惠券 </view>
|
|
|
|
+ <view class="value red"> -¥{{ info.discountAmount }} </view>
|
|
|
|
+ </view> -->
|
|
|
|
+
|
|
|
|
+ <view class="item">
|
|
|
|
+ <view class="label"> 合计 </view>
|
|
|
|
+ <view class="value">
|
|
|
|
+ <text class="red fs28">¥{{ info.payAmount }}</text>
|
|
|
|
+ </view>
|
|
|
|
+ </view>
|
|
|
|
+ </view>
|
|
|
|
+
|
|
|
|
+ <view class="input-box" v-if="isVisual">
|
|
|
|
+ <view class="label"> 充值账号 </view>
|
|
|
|
+ <view class="value">
|
|
|
|
+ {{ JSON.parse(info.extend).account }}
|
|
|
|
+ </view>
|
|
|
|
+ </view>
|
|
|
|
+
|
|
|
|
+ <template v-if="info.goodsList[0].goodsState == 'APPLY_REFUND'">
|
|
|
|
+ <view class="content refund-box">
|
|
|
|
+ <view class="title"> 退款原因 </view>
|
|
|
|
+
|
|
|
|
+ <view class="refund-msg">
|
|
|
|
+ {{ info.goodsList[0].refundLog.remark }}
|
|
|
|
+ </view>
|
|
|
|
+ </view>
|
|
|
|
+ <button type="default" :loading="btnLoading" v-if="!info.payment.transferAll" class="pay-btn"
|
|
|
|
+ @click="cancelReply">
|
|
|
|
+ 取消退款
|
|
|
|
+ </button>
|
|
|
|
+ </template>
|
|
|
|
+
|
|
|
|
+ <button type="default" :loading="btnLoading" class="pay-btn" v-if="info.goodsList[0].goodsState == 'WAIT_PAYMENT'"
|
|
|
|
+ @click="pay">
|
|
|
|
+ 立即支付
|
|
|
|
+ </button>
|
|
|
|
+ <view class="content apply-box" v-else-if="
|
|
|
|
+ (info.goodsList[0].goodsState == 'WAIT_USE' ||
|
|
|
|
+ info.goodsList[0].goodsState == 'USED') &&
|
|
|
|
+ isRefund()
|
|
|
|
+ " @click="apply">
|
|
|
|
+ <view class="label"> 退款申请 </view>
|
|
|
|
+ <view class="value"> 如引发商品争议,可申请平台介入处理 </view>
|
|
|
|
+ <image class="jiantou" src="../../static/jiantou-icon.png" mode=""></image>
|
|
|
|
+ </view>
|
|
|
|
+
|
|
|
|
+ <!-- 二维码 -->
|
|
|
|
+ <u-overlay :show="show" v-if="show" :opacity="0.6">
|
|
|
|
+ <view class="wrap" @click.stop="close">
|
|
|
|
+ <uqrcode ref="uqrcode" type="2d" auto canvas-id="qrcode" :value="codeData" :loading="loading"
|
|
|
|
+ :options="{ margin: 20 }">
|
|
|
|
+ <template v-slot:loading>
|
|
|
|
+ <text style="color: black">拼命加载中...</text>
|
|
|
|
+ </template>
|
|
|
|
+ </uqrcode>
|
|
|
|
+ </view>
|
|
|
|
+ </u-overlay>
|
|
|
|
+ </view>
|
|
|
|
+</template>
|
|
|
|
+
|
|
|
|
+<script>
|
|
|
|
+import { qrCode } from "@/api/order.js";
|
|
|
|
+import { payDetails, queryPayOrder, unRefund } from "@/api/payment.js";
|
|
|
|
+import { getActivityOrdersByOrderNo } from '@/api/activity.js'
|
|
|
|
+export default {
|
|
|
|
+ data() {
|
|
|
|
+ return {
|
|
|
|
+ isVisual: false, //是否是虚拟商品
|
|
|
|
+ codeData: "123",
|
|
|
|
+ show: false,
|
|
|
|
+ isJumped: false,
|
|
|
|
+ loading: false,
|
|
|
|
+ btnLoading: false,
|
|
|
|
+ oldBright: 0,
|
|
|
|
+ info: {
|
|
|
|
+ goodsList: [{ goodsState: "" }],
|
|
|
|
+ payment: {
|
|
|
|
+ paymentWay: "",
|
|
|
|
+ pay: false
|
|
|
|
+ },
|
|
|
|
+ extend: "",
|
|
|
|
+ },
|
|
|
|
+ dataCollectVo: null,
|
|
|
|
+ signupDetail: null,
|
|
|
|
+ signupDetailList: null,
|
|
|
|
+ isNotTime: false,
|
|
|
|
+ };
|
|
|
|
+ },
|
|
|
|
+ watch: {
|
|
|
|
+ // isNotTime(val) {
|
|
|
|
+ // if(this.isNotTime){
|
|
|
|
+ // this.payDetails(this.info.orderNo)
|
|
|
|
+ // }
|
|
|
|
+ // }
|
|
|
|
+ },
|
|
|
|
+ filters: {
|
|
|
|
+
|
|
|
|
+ },
|
|
|
|
+ computed: {
|
|
|
|
+ },
|
|
|
|
+ methods: {
|
|
|
|
+ clickImg(list, index) {
|
|
|
|
+ uni.previewImage({
|
|
|
|
+ urls: list,
|
|
|
|
+ current: list[index]
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ filterType: function (val) {
|
|
|
|
+ console.log(val, val == "WAIT_PAYMENT");
|
|
|
|
+ if (val == "APPLY_REFUND") {
|
|
|
|
+ return "退款审核中";
|
|
|
|
+ } else if (val == "CLOSE") {
|
|
|
|
+ return "关闭订单";
|
|
|
|
+ } else if (val == "REFUNDED") {
|
|
|
|
+ return "已退款";
|
|
|
|
+ } else if (val == "REFUSAL_REFUND") {
|
|
|
|
+ return "拒绝退款";
|
|
|
|
+ } else if (val == "USED") {
|
|
|
|
+ return "订单已完成";
|
|
|
|
+ } else if (val == "WAIT_PAYMENT") {
|
|
|
|
+ return "待付款";
|
|
|
|
+ } else if (val == "WAIT_USE") {
|
|
|
|
+ return "待使用";
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ filterPay(val) {
|
|
|
|
+ if (val == "wx.unifiedOrder") {
|
|
|
|
+ return "微信支付";
|
|
|
|
+ } else if (val == "trade.create") {
|
|
|
|
+ return "支付宝支付";
|
|
|
|
+ } else if (val == "uac.miniOrder") {
|
|
|
|
+ return "云闪付支付";
|
|
|
|
+ } else if (val == "wx.miniPreOrder") {
|
|
|
|
+ return "银联支付"
|
|
|
|
+ } else {
|
|
|
|
+ return "-";
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ isRefund() {
|
|
|
|
+ if (!this.info.goodsList[0].verifyModel) {
|
|
|
|
+ //没核销
|
|
|
|
+ return true;
|
|
|
|
+ } else if (
|
|
|
|
+ this.info.goodsList[0].verifyModel &&
|
|
|
|
+ new Date().getTime() <
|
|
|
|
+ this.info.goodsList[0].verifyModel.checkTime + 1000 * 60 * 60 * 48
|
|
|
|
+ ) {
|
|
|
|
+ // 已核销 并且没超过48小时
|
|
|
|
+ return true;
|
|
|
|
+ } else {
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ finish() {
|
|
|
|
+ this.isNotTime = true;
|
|
|
|
+ console.log(222222, this.isNotTime);
|
|
|
|
+ this.payDetails(this.info.orderNo);
|
|
|
|
+ },
|
|
|
|
+ refundDetail() {
|
|
|
|
+ uni.navigateTo({
|
|
|
|
+ url: `/my/order/refundDetail?id=${this.info.orderNo}`,
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ checkCode() {
|
|
|
|
+ this.codeData = "";
|
|
|
|
+ this.$nextTick(() => {
|
|
|
|
+ this.show = true;
|
|
|
|
+ this.loading = true;
|
|
|
|
+ // let that = this;
|
|
|
|
+ // uni.getScreenBrightness({
|
|
|
|
+ // success(res) {
|
|
|
|
+ // // 获取用户手机亮度 保存起来
|
|
|
|
+ // that.oldBright = res.value
|
|
|
|
+ // setTimeout(()=>{
|
|
|
|
+ // uni.setScreenBrightness({
|
|
|
|
+ // value:1
|
|
|
|
+ // })
|
|
|
|
+ // },200)
|
|
|
|
+ // }
|
|
|
|
+ // })
|
|
|
|
+ qrCode(this.info.goodsList[0].id).then((res) => {
|
|
|
|
+ this.loading = false;
|
|
|
|
+ if (res.state == "Success") {
|
|
|
|
+ this.codeData = res.content;
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ close() {
|
|
|
|
+ this.show = false;
|
|
|
|
+ // uni.setScreenBrightness({
|
|
|
|
+ // value:this.oldBright
|
|
|
|
+ // })
|
|
|
|
+ },
|
|
|
|
+ apply() {
|
|
|
|
+ let that = this;
|
|
|
|
+ uni.navigateTo({
|
|
|
|
+ url: "./refund",
|
|
|
|
+ success: function (res) {
|
|
|
|
+ // 通过eventChannel向被打开页面传送数据
|
|
|
|
+ res.eventChannel.emit("orderInfo", that.info);
|
|
|
|
+ },
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ // 获取订单详情
|
|
|
|
+ payDetails(orderNo) {
|
|
|
|
+ payDetails(orderNo).then((res) => {
|
|
|
|
+ this.info = res.content;
|
|
|
|
+ this.$forceUpdate()
|
|
|
|
+ queryPayOrder(this.info.orderNo)
|
|
|
|
+ this.info.extend = JSON.parse(this.info.goodsList[0].extend);
|
|
|
|
+
|
|
|
|
+ // 查询报名的人数信息
|
|
|
|
+ // getOrderDetail()
|
|
|
|
+ getActivityOrdersByOrderNo({
|
|
|
|
+ orderNo: orderNo,
|
|
|
|
+ }).then(({ content }) => {
|
|
|
|
+ const { list, dataCollectVo } = content;
|
|
|
|
+ try {
|
|
|
|
+
|
|
|
|
+ this.signupDetail = list.map(e => e.signupDetail);
|
|
|
|
+ // 报名信息
|
|
|
|
+ this.signupDetailList = this.signupDetail.map(e => {
|
|
|
|
+ const list = JSON.parse(e);
|
|
|
|
+ console.log('list', list);
|
|
|
|
+ return list.map(e => {
|
|
|
|
+ // 判断是否为附件
|
|
|
|
+ let type = e.hasOwnProperty('uploadType') && !!e.uploadType ? true : false;
|
|
|
|
+ return {
|
|
|
|
+ name: e.dataName,
|
|
|
|
+ value: e.content,
|
|
|
|
+ isImg: type
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ })
|
|
|
|
+ console.log('报名信息', this.signupDetail);
|
|
|
|
+ // 表单模板数据
|
|
|
|
+ this.dataCollectVo = dataCollectVo.data;
|
|
|
|
+ this.$forceUpdate()
|
|
|
|
+ } catch (error) {
|
|
|
|
+ uni.showToast({
|
|
|
|
+ title: "获取报名信息失败。",
|
|
|
|
+ icon: "error",
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ })
|
|
|
|
+ // 如果跳转过支付页面则定时获取订单更新的信息
|
|
|
|
+ if (this.isJumped) {
|
|
|
|
+ this.isJumped = false;
|
|
|
|
+ const that = this;
|
|
|
|
+ let checkTime = 0;
|
|
|
|
+ uni.showLoading({
|
|
|
|
+ title: "支付中",
|
|
|
|
+ });
|
|
|
|
+ const checkOrder = setInterval(() => {
|
|
|
|
+ queryPayOrder(that.info.orderNo).then((res1) => {
|
|
|
|
+ // 支付成功
|
|
|
|
+ if (res1.content.status == "TRADE_SUCCESS") {
|
|
|
|
+ that.payDetails(that.info.orderNo);
|
|
|
|
+ uni.showToast({
|
|
|
|
+ title: "支付成功!",
|
|
|
|
+ icon: "none",
|
|
|
|
+ });
|
|
|
|
+ clearInterval(checkOrder)
|
|
|
|
+ uni.hideLoading();
|
|
|
|
+ that.btnLoading = false;
|
|
|
|
+ } else {
|
|
|
|
+ checkTime++;
|
|
|
|
+ }
|
|
|
|
+ if (checkTime > 5) {
|
|
|
|
+ clearInterval(checkOrder)
|
|
|
|
+ that.btnLoading = false;
|
|
|
|
+ uni.showToast({
|
|
|
|
+ title: "订单查询失败",
|
|
|
|
+ icon: "none",
|
|
|
|
+ });
|
|
|
|
+ uni.hideLoading();
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }, 1000);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ toMap() {
|
|
|
|
+ uni.openLocation({
|
|
|
|
+ latitude: 26.4401,
|
|
|
|
+ longitude: 106.664,
|
|
|
|
+ name: "印象贵大文创店",
|
|
|
|
+ address: "贵州大学西校区西一区体育场楼下",
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ // 支付
|
|
|
|
+ pay() {
|
|
|
|
+ if (this.btnLoading) return;
|
|
|
|
+ this.btnLoading = true;
|
|
|
|
+ uni.showLoading({
|
|
|
|
+ title: "支付中",
|
|
|
|
+ });
|
|
|
|
+ let that = this;
|
|
|
|
+ let miniPayRequest = this.info.payment.miniPayRequest;
|
|
|
|
+ miniPayRequest = JSON.parse(miniPayRequest);
|
|
|
|
+ let query = encodeURIComponent(JSON.stringify({
|
|
|
|
+ sign: miniPayRequest.sign,
|
|
|
|
+ prepayid: miniPayRequest.prepayid,
|
|
|
|
+ }))
|
|
|
|
+
|
|
|
|
+ // 打开银联小程序
|
|
|
|
+ uni.navigateToMiniProgram({
|
|
|
|
+ appId: miniPayRequest.miniuser,
|
|
|
|
+ path: `${miniPayRequest.minipath}?appPayRequest=${query}`,
|
|
|
|
+ success: (res) => {
|
|
|
|
+ // 打开成功
|
|
|
|
+ this.isJumped = true;
|
|
|
|
+ },
|
|
|
|
+ fail: (err) => {
|
|
|
|
+ // console.log(err);
|
|
|
|
+ uni.hideLoading();
|
|
|
|
+ uni.showToast({
|
|
|
|
+ title: "取消支付",
|
|
|
|
+ icon: "none",
|
|
|
|
+ });
|
|
|
|
+ that.btnLoading = false
|
|
|
|
+ },
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ },
|
|
|
|
+ // 取消退款申请
|
|
|
|
+ cancelReply() {
|
|
|
|
+ if (this.btnLoading) return;
|
|
|
|
+ this.btnLoading = true;
|
|
|
|
+ uni.showLoading({
|
|
|
|
+ title: "取消中",
|
|
|
|
+ });
|
|
|
|
+ unRefund({ id: this.info.goodsList[0].id }).then((res) => {
|
|
|
|
+ this.btnLoading = false;
|
|
|
|
+ uni.hideLoading();
|
|
|
|
+
|
|
|
|
+ if (res.state == "Success") {
|
|
|
|
+ this.payDetails(this.info.orderNo);
|
|
|
|
+ uni.showToast({
|
|
|
|
+ title: "取消成功",
|
|
|
|
+ icon: "success",
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ onReady() { },
|
|
|
|
+ onLoad(options) {
|
|
|
|
+ this.info.orderNo = options.id;
|
|
|
|
+ },
|
|
|
|
+ onShow() {
|
|
|
|
+ this.payDetails(this.info.orderNo);
|
|
|
|
+ },
|
|
|
|
+ created() {
|
|
|
|
+ // this.info = JSON.parse(uni.getStorageSync('order'))
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
+</script>
|
|
|
|
+
|
|
|
|
+<style lang="scss">
|
|
|
|
+.order-detail {
|
|
|
|
+ background: #f9f9f9;
|
|
|
|
+ min-height: 100vh;
|
|
|
|
+
|
|
|
|
+ // padding-bottom: 100rpx;
|
|
|
|
+ .status-box {
|
|
|
|
+ padding: 24rpx 24rpx 4rpx;
|
|
|
|
+ display: flex;
|
|
|
|
+ justify-content: space-between;
|
|
|
|
+
|
|
|
|
+ .text-box {
|
|
|
|
+ color: #181818;
|
|
|
|
+
|
|
|
|
+ .status {
|
|
|
|
+ font-weight: bold;
|
|
|
|
+ font-size: 32rpx;
|
|
|
|
+ display: flex;
|
|
|
|
+
|
|
|
|
+ .u-count-down__text {
|
|
|
|
+ color: #ff4d3a !important;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .notice {
|
|
|
|
+ font-size: 24rpx;
|
|
|
|
+ margin-top: 20rpx;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .progress {
|
|
|
|
+ .progress-title {
|
|
|
|
+ font-weight: 600;
|
|
|
|
+ font-size: 32rpx;
|
|
|
|
+ color: #181818;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .progress-desc {
|
|
|
|
+ font-weight: 300;
|
|
|
|
+ font-size: 24rpx;
|
|
|
|
+ color: #aaaaaa;
|
|
|
|
+ margin-top: 15rpx;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .shop-box {
|
|
|
|
+ width: 690rpx;
|
|
|
|
+ // margin: 0 30rpx;
|
|
|
|
+ // padding: 24rpx 24rpx 30rpx;
|
|
|
|
+ background: #fff;
|
|
|
|
+ border-radius: 16rpx;
|
|
|
|
+ margin-top: -30rpx;
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
+
|
|
|
|
+ .shop-name {
|
|
|
|
+ font-weight: 600;
|
|
|
|
+ font-size: 32rpx;
|
|
|
|
+ color: #181818;
|
|
|
|
+ width: 100%;
|
|
|
|
+ white-space: nowrap;
|
|
|
|
+ overflow: hidden;
|
|
|
|
+ text-overflow: ellipsis;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .address {
|
|
|
|
+ font-weight: 300;
|
|
|
|
+ font-size: 24rpx;
|
|
|
|
+ color: #aaaaaa;
|
|
|
|
+ margin-top: 20rpx;
|
|
|
|
+ width: 100%;
|
|
|
|
+ white-space: nowrap;
|
|
|
|
+ overflow: hidden;
|
|
|
|
+ text-overflow: ellipsis;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .black {
|
|
|
|
+ color: #222222 !important;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .red {
|
|
|
|
+ color: red !important;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .fs28 {
|
|
|
|
+ font-size: 28rpx !important;
|
|
|
|
+ font-weight: bold;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .code-box {
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+ justify-content: space-between;
|
|
|
|
+
|
|
|
|
+ .left {
|
|
|
|
+ .title {
|
|
|
|
+ font-weight: 500;
|
|
|
|
+ font-size: 28rpx;
|
|
|
|
+ color: #222222;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .codeNum {
|
|
|
|
+ font-weight: 300;
|
|
|
|
+ font-size: 24rpx;
|
|
|
|
+ color: #aaaaaa;
|
|
|
|
+ margin-top: 15rpx;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .code-btn {
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+ font-weight: 300;
|
|
|
|
+ font-size: 24rpx;
|
|
|
|
+ color: #aaaaaa;
|
|
|
|
+
|
|
|
|
+ .jiantou {
|
|
|
|
+ width: 24rpx;
|
|
|
|
+ height: 24rpx;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .input-box {
|
|
|
|
+ margin: 20rpx 30rpx;
|
|
|
|
+ padding: 28rpx 24rpx;
|
|
|
|
+ background: #ffffff;
|
|
|
|
+ border-radius: 16rpx 16rpx 16rpx 16rpx;
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+ justify-content: space-between;
|
|
|
|
+
|
|
|
|
+ .label {
|
|
|
|
+ color: #222;
|
|
|
|
+ font-size: 28rpx;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .value {
|
|
|
|
+ font-size: 28rpx;
|
|
|
|
+ color: #aaaaaa;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .input-box-address {
|
|
|
|
+ margin: 20rpx 30rpx;
|
|
|
|
+ padding: 28rpx 24rpx;
|
|
|
|
+ background: #ffffff;
|
|
|
|
+ border-radius: 16rpx 16rpx 16rpx 16rpx;
|
|
|
|
+ // display: flex;
|
|
|
|
+ // align-items: center;
|
|
|
|
+ // justify-content: space-between;
|
|
|
|
+
|
|
|
|
+ .value {
|
|
|
|
+ color: #222;
|
|
|
|
+ font-size: 28rpx;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .label {
|
|
|
|
+ font-size: 28rpx;
|
|
|
|
+ margin: 10rpx 0;
|
|
|
|
+ color: #aaaaaa;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ .content {
|
|
|
|
+ margin: 20rpx 30rpx;
|
|
|
|
+ padding: 28rpx 24rpx;
|
|
|
|
+ border-radius: 16rpx;
|
|
|
|
+ background: #fff;
|
|
|
|
+
|
|
|
|
+ .title {
|
|
|
|
+ font-weight: 600;
|
|
|
|
+ font-size: 28rpx;
|
|
|
|
+ color: #222222;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .item {
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+ justify-content: space-between;
|
|
|
|
+ margin-top: 28rpx;
|
|
|
|
+
|
|
|
|
+ .label {
|
|
|
|
+ color: #222222;
|
|
|
|
+ font-size: 28rpx;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .value {
|
|
|
|
+ color: #999999;
|
|
|
|
+ font-size: 28rpx;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .pay-btn {
|
|
|
|
+ position: fixed;
|
|
|
|
+ bottom: 30px;
|
|
|
|
+ left: 4%;
|
|
|
|
+ background: $uni-color-primary;
|
|
|
|
+ width: 688rpx;
|
|
|
|
+ height: 80rpx;
|
|
|
|
+ line-height: 80rpx;
|
|
|
|
+ border-radius: 46rpx;
|
|
|
|
+ color: #fff;
|
|
|
|
+ margin-top: 50rpx;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .refund-box {
|
|
|
|
+ .refund-msg {
|
|
|
|
+ font-weight: 300;
|
|
|
|
+ font-size: 24rpx;
|
|
|
|
+ color: #222222;
|
|
|
|
+ margin-top: 15rpx;
|
|
|
|
+ line-height: 40rpx;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .apply-box {
|
|
|
|
+ position: relative;
|
|
|
|
+
|
|
|
|
+ .label {
|
|
|
|
+ font-weight: 600;
|
|
|
|
+ font-size: 28rpx;
|
|
|
|
+ color: #222222;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .value {
|
|
|
|
+ color: #999999;
|
|
|
|
+ font-size: 24rpx;
|
|
|
|
+ margin-top: 15rpx;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .jiantou {
|
|
|
|
+ position: absolute;
|
|
|
|
+ top: 50%;
|
|
|
|
+ right: 24rpx;
|
|
|
|
+ transform: translateY(-50%);
|
|
|
|
+ width: 24rpx;
|
|
|
|
+ height: 24rpx;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .info {
|
|
|
|
+ .order-info {
|
|
|
|
+ display: flex;
|
|
|
|
+
|
|
|
|
+ .icon {
|
|
|
|
+ width: 164rpx;
|
|
|
|
+ height: 164rpx;
|
|
|
|
+ border-radius: 16rpx;
|
|
|
|
+ flex-shrink: 0;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .shop-info {
|
|
|
|
+ display: flex;
|
|
|
|
+ flex-direction: column;
|
|
|
|
+ justify-content: space-between;
|
|
|
|
+ padding-left: 24rpx;
|
|
|
|
+ flex: 1;
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
+
|
|
|
|
+ .title {
|
|
|
|
+ color: #181818;
|
|
|
|
+ font-size: 28rpx;
|
|
|
|
+ width: 450rpx;
|
|
|
|
+ white-space: nowrap;
|
|
|
|
+ overflow: hidden;
|
|
|
|
+ text-overflow: ellipsis;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .price-box {
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+ justify-content: space-between;
|
|
|
|
+
|
|
|
|
+ .price {
|
|
|
|
+ color: #181818;
|
|
|
|
+ font-size: 32rpx;
|
|
|
|
+ font-weight: bold;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .start-time,
|
|
|
|
+ .goods-desc {
|
|
|
|
+ font-size: 24rpx;
|
|
|
|
+ color: #aaaaaa;
|
|
|
|
+ width: 560rpx;
|
|
|
|
+ white-space: nowrap;
|
|
|
|
+ overflow: hidden;
|
|
|
|
+ text-overflow: ellipsis;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .wrap {
|
|
|
|
+ display: flex;
|
|
|
|
+ justify-content: center;
|
|
|
|
+ align-items: center;
|
|
|
|
+ height: 100vh;
|
|
|
|
+ overflow: hidden;
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+</style>
|