|
|
@@ -0,0 +1,732 @@
|
|
|
+<template>
|
|
|
+ <ion-page>
|
|
|
+ <ion-header>
|
|
|
+ <ion-toolbar>
|
|
|
+ <ion-buttons slot="start">
|
|
|
+ <ion-back-button default-href="#" @click="$router.back(-1)"></ion-back-button>
|
|
|
+ </ion-buttons>
|
|
|
+ <ion-title>{{ $t('order.detail') }}</ion-title>
|
|
|
+ </ion-toolbar>
|
|
|
+ </ion-header>
|
|
|
+ <ion-content :fullscreen="true">
|
|
|
+ <div class="top">
|
|
|
+ <div class="status">
|
|
|
+ {{
|
|
|
+ orderInfo.locked && orderInfo.status === 'SELLING' ? '暂停出售' : orderStatus[orderInfo.status]
|
|
|
+ }}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="addresss" v-if="orderInfo.address">
|
|
|
+ <img src="../assets/dingdan_icon_dizhi.png" alt="" />
|
|
|
+ <div class="addresss-content">
|
|
|
+ <div>{{ orderInfo.name }} {{ orderInfo.phone }}</div>
|
|
|
+ <div>{{ orderInfo.address }}</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="product">
|
|
|
+ <div class="product-content">
|
|
|
+ <van-image class="suk-img" style="min-width: 80px" width="80" height="80" fit="fill" :src="pic" />
|
|
|
+
|
|
|
+ <div class="order-text">
|
|
|
+ <div class="van-ellipsis text1">{{ productInfo.name }}</div>
|
|
|
+
|
|
|
+ <div class="text2" v-if="productInfo.user">当前所有人为:{{ productInfo.user.nickname }}</div>
|
|
|
+
|
|
|
+ <div class="text3">
|
|
|
+ <div class="price">¥{{ orderInfo.totalPrice }}</div>
|
|
|
+ <div class="num">×1</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="order-info" v-if="orderInfo.address">
|
|
|
+ <div class="name">配送方式</div>
|
|
|
+ <div class="val">普通配送</div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- <div class="order-info">
|
|
|
+ <div class="name">订单留言</div>
|
|
|
+ <div class="val">麻烦尽快发货,谢谢</div>
|
|
|
+ </div> -->
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="order-detail">
|
|
|
+ <div class="detail-item">
|
|
|
+ <div class="name">商品金额</div>
|
|
|
+ <div class="val">¥{{ orderInfo.totalPrice }}</div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="detail-item">
|
|
|
+ <div class="name">运费</div>
|
|
|
+ <div class="val">包邮</div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="detail-item">
|
|
|
+ <div class="name">实付款</div>
|
|
|
+ <div class="val price">¥{{ orderInfo.totalPrice }}</div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="pay-content">
|
|
|
+ <div class="detail-item">
|
|
|
+ <div class="name">收款人</div>
|
|
|
+ <div class="val">{{ fromUser ? fromUser.aliName : '' }}</div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="detail-item">
|
|
|
+ <div class="name">收款支付宝号</div>
|
|
|
+ <div class="val">{{ fromUser ? fromUser.aliAccount : '' }}</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="time-content">
|
|
|
+ <div class="detail-item">
|
|
|
+ <div class="name">订单编号</div>
|
|
|
+ <div class="val">{{ orderInfo.id }}</div>
|
|
|
+ </div>
|
|
|
+ <div class="detail-item">
|
|
|
+ <div class="name">创建时间</div>
|
|
|
+ <div class="val">{{ orderInfo.createdAt }}</div>
|
|
|
+ </div>
|
|
|
+ <div class="detail-item" v-if="orderInfo.paidTime">
|
|
|
+ <div class="name">付款时间</div>
|
|
|
+ <div class="val">{{ orderInfo.paidTime }}</div>
|
|
|
+ </div>
|
|
|
+ <div class="detail-item" v-if="orderInfo.confirmTime">
|
|
|
+ <div class="name">成交时间</div>
|
|
|
+ <div class="val">{{ orderInfo.confirmTime }}</div>
|
|
|
+ </div>
|
|
|
+ <div class="detail-item" v-if="orderInfo.logisticsType">
|
|
|
+ <div class="name">物流名称</div>
|
|
|
+ <div class="val">{{ orderInfo.logisticsType }}</div>
|
|
|
+ </div>
|
|
|
+ <div class="detail-item" v-if="orderInfo.logisticsNo">
|
|
|
+ <div class="name">物流编号</div>
|
|
|
+ <div class="val">{{ orderInfo.logisticsNo }}</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="bottom" style="height: 50px">
|
|
|
+ <div>
|
|
|
+ <div class="order-button" v-if="orderInfo.status == 'NOT_PAID'">
|
|
|
+ <!-- <van-button color="#FF8F00" round plain @click="confirmPayment">我已付款</van-button> -->
|
|
|
+ <van-button type="primary" round @click="pay">立即支付</van-button>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div
|
|
|
+ class="order-button"
|
|
|
+ v-else-if="orderInfo.status == 'SOLD_NOT_CONFIRMED' && !orderInfo.delegationId"
|
|
|
+ >
|
|
|
+ <!-- <van-button color="#AAACAD" round plain @click="confirmPayment">未收到款</van-button> -->
|
|
|
+ <!-- <van-button type="primary" round @click="confirmReceipt">确认收款</van-button> -->
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="order-button" v-else-if="orderInfo.status == 'CONFIRMED'">
|
|
|
+ <!-- <van-button color="#AAACAD" round plain @click="applyShip">申请发货</van-button> -->
|
|
|
+ <van-button type="primary" round @click="show = true" v-if="delegationActive"
|
|
|
+ >委托代卖
|
|
|
+ </van-button>
|
|
|
+ <van-button color="#aaacad" round @click="showTip" v-else>委托代卖 </van-button>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="order-button" v-else-if="orderInfo.status == 'SHIPPED'">
|
|
|
+ <!-- <van-button color="#AAACAD" round plain @click="confirmPayment">未收到款</van-button> -->
|
|
|
+ <van-button type="primary" round @click="receive"> 确认收货</van-button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <van-popup v-model="show" class="getsold">
|
|
|
+ <div class="title">委托代卖</div>
|
|
|
+ <div class="sold-list">
|
|
|
+ <div class="sold-item">
|
|
|
+ <div class="name">原价</div>
|
|
|
+ <div class="val">¥{{ orderInfo.totalPrice }}</div>
|
|
|
+ </div>
|
|
|
+ <div class="sold-item">
|
|
|
+ <div class="name">加价</div>
|
|
|
+ <van-stepper v-model="value" input-width="60px" step="1" integer min="1" :max="maxRiseRate" />
|
|
|
+ </div>
|
|
|
+ <div class="sold-item">
|
|
|
+ <div class="name">卖价</div>
|
|
|
+ <div class="val bold">¥{{ soldValue }}</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="tips">
|
|
|
+ 注:委托平台代卖服务,每次最高可将商品价格提高{{ maxRiseRate }}%,平台会收取{{
|
|
|
+ serviceValue
|
|
|
+ }}%的托管服务费用
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <van-button class="button" :disabled="loading" block type="primary" round @click="sale">
|
|
|
+ 支付手续费 ¥{{ serviceCharge }}</van-button
|
|
|
+ >
|
|
|
+ </van-popup>
|
|
|
+ </ion-content>
|
|
|
+ </ion-page>
|
|
|
+</template>
|
|
|
+<script>
|
|
|
+import { mapState } from 'pinia'
|
|
|
+import { useUserStore } from '@/stores/user'
|
|
|
+import { orderStatus } from '../status'
|
|
|
+import { parse } from 'date-fns'
|
|
|
+export default {
|
|
|
+ name: 'orderDetail',
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ orderStatus,
|
|
|
+ orderInfo: {},
|
|
|
+ productInfo: {},
|
|
|
+ fromUser: {},
|
|
|
+ show: false,
|
|
|
+ value: 6,
|
|
|
+ platformCommission: 0.02,
|
|
|
+ delegationActive: '',
|
|
|
+ delegationTime: '',
|
|
|
+ maxRiseRate: 6,
|
|
|
+ loading: false,
|
|
|
+ payType: 'balance'
|
|
|
+ }
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ ...mapState(useUserStore, ['user']),
|
|
|
+ pic() {
|
|
|
+ if (this.productInfo.pic && this.productInfo.pic.length > 0) {
|
|
|
+ return this.productInfo.pic[0]
|
|
|
+ } else {
|
|
|
+ return null
|
|
|
+ }
|
|
|
+ },
|
|
|
+ soldValue() {
|
|
|
+ var price = Number(this.orderInfo.totalPrice)
|
|
|
+ if (this.value) {
|
|
|
+ var more = this.mul(this.value, price)
|
|
|
+ more = this.mul(more, 0.01)
|
|
|
+ price = this.addNum(more, price)
|
|
|
+ }
|
|
|
+ return price.toFixed(2)
|
|
|
+ },
|
|
|
+ serviceCharge() {
|
|
|
+ let totalPrice = this.orderInfo ? this.orderInfo.totalPrice || 0 : 0
|
|
|
+ return (totalPrice * this.platformCommission).toFixed(2)
|
|
|
+ },
|
|
|
+ serviceValue() {
|
|
|
+ return this.platformCommission * 100
|
|
|
+ }
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ this.$http
|
|
|
+ .get('/order/get/' + this.$route.query.id)
|
|
|
+ .then(res => {
|
|
|
+ this.orderInfo = res
|
|
|
+ if (res.productId) {
|
|
|
+ return this.$http.get('/product/get/' + res.productId)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .then(res => {
|
|
|
+ this.productInfo = res
|
|
|
+ if (this.orderInfo.fromUserId) {
|
|
|
+ return this.$http.get('/user/get/' + this.orderInfo.fromUserId)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .then(res => {
|
|
|
+ this.fromUser = res
|
|
|
+ })
|
|
|
+ this.$http.get('/sysConfig/get/platform_commission').then(res => {
|
|
|
+ this.platformCommission = res.value
|
|
|
+ })
|
|
|
+ this.$http.get('/sysConfig/get/max_rise_rate').then(res => {
|
|
|
+ this.maxRiseRate = res.value * 100
|
|
|
+ this.value = this.maxRiseRate
|
|
|
+ })
|
|
|
+ this.$http.get('/sysConfig/get/delegation_time').then(res => {
|
|
|
+ var date = parse(res.value, 'HH:mm', new Date())
|
|
|
+ this.$http.get('/sysConfig/get/sell_time').then(res => {
|
|
|
+ var date2 = parse(res.value, 'HH:mm', new Date())
|
|
|
+ if (new Date().getTime() >= date.getTime() || new Date().getTime() <= date2.getTime()) {
|
|
|
+ this.delegationActive = true
|
|
|
+ this.delegationTime = res.value
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ // this.$http.get('/sysConfig/get/pay_type').then(res => {
|
|
|
+ // if (res.value == '0') {
|
|
|
+ // if (this.isWeixin) {
|
|
|
+ // this.payType = 'weixin';
|
|
|
+ // } else {
|
|
|
+ // this.payType = 'alipay';
|
|
|
+ // }
|
|
|
+ // } else {
|
|
|
+ // this.payType = 'third';
|
|
|
+ // }
|
|
|
+ // });
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ showTip() {
|
|
|
+ this.$dialog.alert({
|
|
|
+ title: '提示',
|
|
|
+ message: '委托代卖暂未开始,将在今天' + this.delegationTime + '开始'
|
|
|
+ })
|
|
|
+ },
|
|
|
+ getInfo() {
|
|
|
+ this.$http.get('/order/get/' + this.$route.query.id).then(res => {
|
|
|
+ this.orderInfo = res
|
|
|
+ })
|
|
|
+ },
|
|
|
+ addNum(a, b) {
|
|
|
+ var c, d, e
|
|
|
+ try {
|
|
|
+ c = a.toString().split('.')[1].length
|
|
|
+ } catch (f) {
|
|
|
+ c = 0
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ d = b.toString().split('.')[1].length
|
|
|
+ } catch (f) {
|
|
|
+ d = 0
|
|
|
+ }
|
|
|
+ return (e = Math.pow(10, Math.max(c, d))), (this.mul(a, e) + this.mul(b, e)) / e
|
|
|
+ },
|
|
|
+ mul(a, b) {
|
|
|
+ var c = 0,
|
|
|
+ d = a.toString(),
|
|
|
+ e = b.toString()
|
|
|
+ try {
|
|
|
+ c += d.split('.')[1].length
|
|
|
+ } catch (f) {
|
|
|
+ /* empty */
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ c += e.split('.')[1].length
|
|
|
+ } catch (f) {
|
|
|
+ /* empty */
|
|
|
+ }
|
|
|
+ return (Number(d.replace('.', '')) * Number(e.replace('.', ''))) / Math.pow(10, c)
|
|
|
+ },
|
|
|
+ confirmPayment() {
|
|
|
+ this.$toast.loading({
|
|
|
+ mask: false,
|
|
|
+ message: '加载中...',
|
|
|
+ duration: 0,
|
|
|
+ forbidClick: true
|
|
|
+ })
|
|
|
+ this.$http
|
|
|
+ .post('/order/confirmPayment', {
|
|
|
+ orderId: this.orderInfo.id
|
|
|
+ })
|
|
|
+ .then(res => {
|
|
|
+ this.$toast.success('确认成功')
|
|
|
+ setTimeout(() => {
|
|
|
+ this.getInfo()
|
|
|
+ }, 1000)
|
|
|
+ })
|
|
|
+ .catch(e => {
|
|
|
+ return this.$toast(e.error)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ confirmReceipt() {
|
|
|
+ this.$toast.loading({
|
|
|
+ mask: false,
|
|
|
+ message: '加载中...',
|
|
|
+ duration: 0,
|
|
|
+ forbidClick: true
|
|
|
+ })
|
|
|
+ this.$http
|
|
|
+ .post('/order/confirmReceipt', {
|
|
|
+ orderId: this.orderInfo.id
|
|
|
+ })
|
|
|
+ .then(res => {
|
|
|
+ this.$toast.success('确认成功')
|
|
|
+ setTimeout(() => {
|
|
|
+ this.getInfo()
|
|
|
+ }, 1000)
|
|
|
+ })
|
|
|
+ .catch(e => {
|
|
|
+ return this.$toast(e.error)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ sale() {
|
|
|
+ this.show = false
|
|
|
+ if (this.payType === 'alipay') {
|
|
|
+ window.open(
|
|
|
+ this.$baseUrl +
|
|
|
+ `/payDelegation/alipay?userId=${this.user.id}&orderId=${this.orderInfo.id}&riseRate=${
|
|
|
+ this.value / 100
|
|
|
+ }&returnUrl=${encodeURIComponent(location.href)}`
|
|
|
+ )
|
|
|
+ } else if (this.payType === 'third') {
|
|
|
+ console.log(
|
|
|
+ this.$baseUrl +
|
|
|
+ `/payDelegation/third?userId=${this.user.id}&orderId=${this.orderInfo.id}&riseRate=${
|
|
|
+ this.value / 100
|
|
|
+ }&&payType=` +
|
|
|
+ (this.isWeixin ? 'WXGZH' : 'ZFBH5')
|
|
|
+ )
|
|
|
+ window.open(
|
|
|
+ this.$baseUrl +
|
|
|
+ `/payDelegation/third?userId=${this.user.id}&orderId=${this.orderInfo.id}&riseRate=${
|
|
|
+ this.value / 100
|
|
|
+ }&&payType=` +
|
|
|
+ (this.isWeixin ? 'WXGZH' : 'ZFBH5')
|
|
|
+ )
|
|
|
+ } else if (this.payType === 'weixin') {
|
|
|
+ this.loading = true
|
|
|
+ this.$toast.loading({
|
|
|
+ mask: false,
|
|
|
+ message: '加载中...',
|
|
|
+ duration: 0,
|
|
|
+ forbidClick: true
|
|
|
+ })
|
|
|
+ this.$http
|
|
|
+ .get('/payDelegation/wx', {
|
|
|
+ userId: this.user.id,
|
|
|
+ orderId: this.orderInfo.id,
|
|
|
+ riseRate: this.value / 100
|
|
|
+ })
|
|
|
+ .then(res => {
|
|
|
+ this.$toast.clear()
|
|
|
+ this.loading = false
|
|
|
+ wx.chooseWXPay({
|
|
|
+ appId: res.appId,
|
|
|
+ timestamp: res.timeStamp,
|
|
|
+ nonceStr: res.nonceStr,
|
|
|
+ package: res.packageValue,
|
|
|
+ signType: res.signType,
|
|
|
+ paySign: res.paySign,
|
|
|
+ success(res) {
|
|
|
+ this.$toast.success('支付成功')
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ .catch(e => {
|
|
|
+ this.$toast.clear()
|
|
|
+ this.loading = false
|
|
|
+ return this.$toast(e.error)
|
|
|
+ })
|
|
|
+ } else if (this.payType === 'balance') {
|
|
|
+ this.$toast.loading('支付中')
|
|
|
+ this.$http
|
|
|
+ .post('/payDelegation/balance', {
|
|
|
+ userId: this.user.id,
|
|
|
+ orderId: this.orderInfo.id,
|
|
|
+ riseRate: this.value / 100
|
|
|
+ })
|
|
|
+ .then(res => {
|
|
|
+ this.$toast.success('支付成功')
|
|
|
+ this.getInfo()
|
|
|
+ })
|
|
|
+ .catch(e => {
|
|
|
+ this.$toast(e.error)
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ applyShip() {
|
|
|
+ this.$dialog
|
|
|
+ .confirm({
|
|
|
+ title: '提示',
|
|
|
+ message: '确认申请发货?'
|
|
|
+ })
|
|
|
+ .then(() => {
|
|
|
+ this.$toast.loading({
|
|
|
+ mask: false,
|
|
|
+ message: '加载中...',
|
|
|
+ duration: 0,
|
|
|
+ forbidClick: true
|
|
|
+ })
|
|
|
+ this.$http
|
|
|
+ .post('/order/applyShip', {
|
|
|
+ orderId: this.orderInfo.id
|
|
|
+ })
|
|
|
+ .then(res => {
|
|
|
+ this.$toast.success('申请成功')
|
|
|
+ setTimeout(() => {
|
|
|
+ this.getInfo()
|
|
|
+ }, 1000)
|
|
|
+ })
|
|
|
+ .catch(e => {
|
|
|
+ return this.$toast(e.error)
|
|
|
+ })
|
|
|
+ })
|
|
|
+ .catch(() => {})
|
|
|
+ },
|
|
|
+ receive() {
|
|
|
+ this.$toast.loading({
|
|
|
+ mask: false,
|
|
|
+ message: '加载中...',
|
|
|
+ duration: 0,
|
|
|
+ forbidClick: true
|
|
|
+ })
|
|
|
+ this.$http
|
|
|
+ .post('/order/receive', {
|
|
|
+ orderId: this.orderInfo.id
|
|
|
+ })
|
|
|
+ .then(res => {
|
|
|
+ this.$toast.success('确认成功')
|
|
|
+ setTimeout(() => {
|
|
|
+ this.getInfo()
|
|
|
+ }, 1000)
|
|
|
+ })
|
|
|
+ .catch(e => {
|
|
|
+ return this.$toast(e.error)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ pay() {
|
|
|
+ this.$toast.loading('支付中')
|
|
|
+ this.$http
|
|
|
+ .post('/order/balancePay', { orderId: this.orderInfo.id })
|
|
|
+ .then(res => {
|
|
|
+ this.$toast.success('支付成功')
|
|
|
+ setTimeout(() => {
|
|
|
+ this.getInfo()
|
|
|
+ }, 1000)
|
|
|
+ })
|
|
|
+ .catch(e => {
|
|
|
+ this.$toast(e.error)
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</script>
|
|
|
+<style lang="less" scoped>
|
|
|
+.top {
|
|
|
+ height: 72px;
|
|
|
+ background: rgba(255, 143, 0, 1);
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+
|
|
|
+ .status {
|
|
|
+ box-sizing: border-box;
|
|
|
+ height: 35px;
|
|
|
+ background: rgba(255, 255, 255, 0.3);
|
|
|
+ border-radius: 18px;
|
|
|
+ min-width: 120px;
|
|
|
+ padding: 0 20px;
|
|
|
+ font-size: 17px;
|
|
|
+ font-weight: bold;
|
|
|
+ color: rgba(255, 255, 255, 1);
|
|
|
+ line-height: 35px;
|
|
|
+ text-align: center;
|
|
|
+ }
|
|
|
+}
|
|
|
+.addresss {
|
|
|
+ background: rgba(255, 255, 255, 1);
|
|
|
+ border-radius: 2px;
|
|
|
+ margin: 15px 15px 0;
|
|
|
+ display: flex;
|
|
|
+ padding: 15px;
|
|
|
+ img {
|
|
|
+ width: 22px;
|
|
|
+ height: 22px;
|
|
|
+ margin-top: 5px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .addresss-content {
|
|
|
+ font-size: 14px;
|
|
|
+ color: rgba(0, 0, 0, 1);
|
|
|
+ line-height: 20px;
|
|
|
+ margin-left: 10px;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+.product {
|
|
|
+ background: rgba(255, 255, 255, 1);
|
|
|
+ border-radius: 2px;
|
|
|
+ margin: 15px 15px 0;
|
|
|
+ padding: 15px;
|
|
|
+
|
|
|
+ .product-content {
|
|
|
+ display: flex;
|
|
|
+
|
|
|
+ .order-text {
|
|
|
+ margin-left: 10px;
|
|
|
+ flex-grow: 1;
|
|
|
+ flex-basis: 0;
|
|
|
+ min-width: 0;
|
|
|
+ .text1 {
|
|
|
+ font-size: 14px;
|
|
|
+ color: rgba(0, 0, 0, 1);
|
|
|
+ line-height: 20px;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+ white-space: nowrap;
|
|
|
+ overflow: hidden;
|
|
|
+ }
|
|
|
+
|
|
|
+ .text2 {
|
|
|
+ font-size: 12px;
|
|
|
+ color: rgba(255, 143, 0, 1);
|
|
|
+ line-height: 22px;
|
|
|
+ height: 22px;
|
|
|
+ background: rgba(255, 143, 0, 0.12);
|
|
|
+ border-radius: 2px 100px 100px 100px;
|
|
|
+ padding: 0 8px;
|
|
|
+ margin-top: 5px;
|
|
|
+ display: inline-block;
|
|
|
+ }
|
|
|
+
|
|
|
+ .text3 {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+ margin-top: 13px;
|
|
|
+
|
|
|
+ .price {
|
|
|
+ font-size: 14px;
|
|
|
+ font-weight: bold;
|
|
|
+ color: rgba(0, 0, 0, 1);
|
|
|
+ line-height: 20px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .num {
|
|
|
+ font-size: 14px;
|
|
|
+ color: rgba(170, 172, 173, 1);
|
|
|
+ line-height: 20px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-info {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+ margin-top: 20px;
|
|
|
+ border-top: 1px solid #f2f4f5;
|
|
|
+ padding-top: 10px;
|
|
|
+
|
|
|
+ .name {
|
|
|
+ font-size: 13px;
|
|
|
+ color: rgba(170, 172, 173, 1);
|
|
|
+ line-height: 18px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .val {
|
|
|
+ font-size: 13px;
|
|
|
+ color: rgba(0, 0, 0, 1);
|
|
|
+ line-height: 18px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+.order-detail {
|
|
|
+ background: rgba(255, 255, 255, 1);
|
|
|
+ border-radius: 2px;
|
|
|
+ margin: 15px;
|
|
|
+ padding: 15px;
|
|
|
+
|
|
|
+ .detail-item {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+ .name {
|
|
|
+ font-size: 13px;
|
|
|
+ color: rgba(170, 172, 173, 1);
|
|
|
+ line-height: 18px;
|
|
|
+ }
|
|
|
+ .val {
|
|
|
+ font-size: 13px;
|
|
|
+ color: rgba(0, 0, 0, 1);
|
|
|
+ line-height: 18px;
|
|
|
+
|
|
|
+ &.price {
|
|
|
+ color: #ff3b30;
|
|
|
+ font-weight: bold;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ &:not(:last-child) {
|
|
|
+ margin-bottom: 10px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .time-content {
|
|
|
+ padding-top: 10px;
|
|
|
+ border-top: 1px solid #f2f4f5;
|
|
|
+ .val {
|
|
|
+ color: rgba(102, 102, 102, 1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .pay-content {
|
|
|
+ padding-top: 10px;
|
|
|
+ border-top: 1px solid #f2f4f5;
|
|
|
+ padding-bottom: 10px;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+.order-button {
|
|
|
+ height: 50px;
|
|
|
+ display: flex;
|
|
|
+ justify-content: flex-end;
|
|
|
+ align-items: center;
|
|
|
+ padding: 0 15px;
|
|
|
+ width: 100%;
|
|
|
+
|
|
|
+ .van-button {
|
|
|
+ width: 110px;
|
|
|
+ height: 39px;
|
|
|
+ line-height: 39px;
|
|
|
+ margin-left: 10px;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+.getsold {
|
|
|
+ width: 300px;
|
|
|
+ height: 405px;
|
|
|
+ background: rgba(255, 255, 255, 1);
|
|
|
+ border-radius: 4px;
|
|
|
+ padding: 15px 20px;
|
|
|
+ box-sizing: border-box;
|
|
|
+ .title {
|
|
|
+ font-size: 16px;
|
|
|
+ font-weight: bold;
|
|
|
+ text-align: center;
|
|
|
+ color: rgba(0, 0, 0, 1);
|
|
|
+ line-height: 22px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .sold-item {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ height: 28px;
|
|
|
+ padding: 22px 0 10px;
|
|
|
+ border-bottom: 1px solid #f2f4f5;
|
|
|
+ .name {
|
|
|
+ font-size: 18px;
|
|
|
+ font-weight: bold;
|
|
|
+ color: rgba(0, 0, 0, 1);
|
|
|
+ line-height: 25px;
|
|
|
+ min-width: 82px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .val {
|
|
|
+ font-size: 14px;
|
|
|
+ font-weight: bold;
|
|
|
+ color: rgba(0, 0, 0, 1);
|
|
|
+ line-height: 20px;
|
|
|
+
|
|
|
+ &.bold {
|
|
|
+ font-size: 16px;
|
|
|
+ color: rgba(255, 59, 48, 1);
|
|
|
+ line-height: 22px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .sold-list {
|
|
|
+ margin-top: 10px;
|
|
|
+ }
|
|
|
+ .tips {
|
|
|
+ font-size: 13px;
|
|
|
+ color: rgba(170, 172, 173, 1);
|
|
|
+ line-height: 18px;
|
|
|
+ margin-top: 20px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .button {
|
|
|
+ width: 200px;
|
|
|
+ display: block;
|
|
|
+ margin: 50px auto 0;
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|