|
@@ -0,0 +1,590 @@
|
|
|
|
|
+<template>
|
|
|
|
|
+ <div class="order-info">
|
|
|
|
|
+ <div class="order-top">
|
|
|
|
|
+ <div class="order-no">订单编号:{{ info.id }}</div>
|
|
|
|
|
+ <div class="order-staus">
|
|
|
|
|
+ {{ info.locked && info.status === 'SELLING' ? '暂停出售' : orderStatus[info.status] }}
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+ <div class="order-content" @click="goDetail">
|
|
|
|
|
+ <van-image class="suk-img" 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">¥{{ info.totalPrice }}</div>
|
|
|
|
|
+ <div class="num">×1</div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+ <div class="order-price">
|
|
|
|
|
+ <div class="price">
|
|
|
|
|
+ <span>实际支付:</span>
|
|
|
|
|
+ <span>¥{{ info.totalPrice }}</span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+ <div class="order-tips" v-if="info.status == 'NOT_PAID'">付款倒计时过期自动取消订单 {{ times }}</div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+ <div class="order-button">
|
|
|
|
|
+ <span class="problem" @click="problem">遇到问题?</span>
|
|
|
|
|
+ <template v-if="info.status == 'NOT_PAID'">
|
|
|
|
|
+ <!-- <van-button color="#FF8F00" round plain size="small" @click="confirmPayment">我已付款</van-button> -->
|
|
|
|
|
+ <van-button type="primary" round size="small" @click="pay">立即支付</van-button>
|
|
|
|
|
+ </template>
|
|
|
|
|
+
|
|
|
|
|
+ <template v-else-if="info.status == 'NOT_CONFIRMED'">
|
|
|
|
|
+ <van-button color="#AAACAD" round plain size="small" @click="goDetail">查看订单</van-button>
|
|
|
|
|
+ </template>
|
|
|
|
|
+
|
|
|
|
|
+ <template v-else-if="info.status == 'SOLD_NOT_CONFIRMED'">
|
|
|
|
|
+ <!-- <van-button color="#AAACAD" round plain size="small" @click="confirmPayment">未收到款</van-button> -->
|
|
|
|
|
+ <!-- <van-button type="primary" round size="small" @click="confirmReceipt">确认收款</van-button> -->
|
|
|
|
|
+ </template>
|
|
|
|
|
+
|
|
|
|
|
+ <template v-else-if="info.status == 'SELLING'">
|
|
|
|
|
+ <!-- <van-button color="#AAACAD" round plain size="small" @click="confirmPayment">未收到款</van-button> -->
|
|
|
|
|
+ <!-- <van-button type="primary" round size="small" @click="confirmReceipt">确认收款</van-button> -->
|
|
|
|
|
+ <van-button color="#AAACAD" round plain size="small" @click="applyShip">申请发货</van-button>
|
|
|
|
|
+ <van-button color="#AAACAD" round plain size="small" @click="goDetail">查看订单</van-button>
|
|
|
|
|
+ </template>
|
|
|
|
|
+
|
|
|
|
|
+ <template v-else-if="info.status == 'CONFIRMED'">
|
|
|
|
|
+ <van-button color="#AAACAD" round plain size="small" @click="applyShip">申请发货</van-button>
|
|
|
|
|
+ <van-button type="primary" round size="small" @click="show = true" v-if="delegationActive">
|
|
|
|
|
+ 委托代卖</van-button
|
|
|
|
|
+ >
|
|
|
|
|
+ <van-button color="#aaacad" round @click="showTip" v-else>委托代卖 </van-button>
|
|
|
|
|
+ </template>
|
|
|
|
|
+
|
|
|
|
|
+ <template v-else-if="info.status == 'SOLD'">
|
|
|
|
|
+ <van-button color="#AAACAD" round plain size="small" @click="goDetail">查看订单</van-button>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ <template v-else-if="info.status == 'NOT_SHIPPED'">
|
|
|
|
|
+ <van-button color="#AAACAD" round plain size="small" @click="goDetail">查看订单</van-button>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ <template v-else-if="info.status == 'RECEIVED'">
|
|
|
|
|
+ <van-button color="#AAACAD" round plain size="small" @click="goDetail">查看订单</van-button>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ <template v-else-if="info.status == 'SHIPPED'">
|
|
|
|
|
+ <van-button type="primary" round size="small" @click="receive"> 确认收货</van-button>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </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">¥{{ info.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" block type="primary" :disabled="loading" round @click="sale">
|
|
|
|
|
+ 支付手续费 ¥{{ serviceCharge }}
|
|
|
|
|
+ </van-button>
|
|
|
|
|
+ </van-popup>
|
|
|
|
|
+ </div>
|
|
|
|
|
+</template>
|
|
|
|
|
+<script>
|
|
|
|
|
+import { mapState } from 'pinia'
|
|
|
|
|
+import { useUserStore } from '@/stores/user'
|
|
|
|
|
+import { orderStatus } from '../status'
|
|
|
|
|
+import { differenceInSeconds, addMinutes, parse } from 'date-fns'
|
|
|
|
|
+export default {
|
|
|
|
|
+ name: 'orderInfo',
|
|
|
|
|
+ props: {
|
|
|
|
|
+ info: {
|
|
|
|
|
+ type: Object,
|
|
|
|
|
+ default: () => {
|
|
|
|
|
+ return {}
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ delegationActive: {
|
|
|
|
|
+ type: Boolean,
|
|
|
|
|
+ default: true
|
|
|
|
|
+ },
|
|
|
|
|
+ delegationTime: {
|
|
|
|
|
+ type: String,
|
|
|
|
|
+ default: ''
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ data() {
|
|
|
|
|
+ return {
|
|
|
|
|
+ orderStatus,
|
|
|
|
|
+ times: 0,
|
|
|
|
|
+ show: false,
|
|
|
|
|
+ value: 6,
|
|
|
|
|
+ platformCommission: 0.02,
|
|
|
|
|
+ maxRiseRate: 6,
|
|
|
|
|
+ loading: false,
|
|
|
|
|
+ payType: 'balance'
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ computed: {
|
|
|
|
|
+ ...mapState(useUserStore, ['user']),
|
|
|
|
|
+ productInfo() {
|
|
|
|
|
+ return this.info.productInfo || {}
|
|
|
|
|
+ },
|
|
|
|
|
+ pic() {
|
|
|
|
|
+ if (this.productInfo.pic && this.productInfo.pic.length > 0) {
|
|
|
|
|
+ return this.productInfo.pic[0]
|
|
|
|
|
+ } else {
|
|
|
|
|
+ return ''
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ fromUserInfo() {
|
|
|
|
|
+ return this.info.fromUserInfo || {}
|
|
|
|
|
+ },
|
|
|
|
|
+ soldValue() {
|
|
|
|
|
+ var price = Number(this.info.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.info ? this.info.totalPrice || 0 : 0
|
|
|
|
|
+ return (totalPrice * this.platformCommission).toFixed(2)
|
|
|
|
|
+ },
|
|
|
|
|
+ serviceValue() {
|
|
|
|
|
+ return this.platformCommission * 100
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ created() {
|
|
|
|
|
+ if (this.info.status == 'NOT_PAID') {
|
|
|
|
|
+ this.getTime()
|
|
|
|
|
+ }
|
|
|
|
|
+ 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/pay_type').then(res => {
|
|
|
|
|
+ // if (res.value == '0') {
|
|
|
|
|
+ // if (this.isWeixin) {
|
|
|
|
|
+ // this.payType = 'weixin';
|
|
|
|
|
+ // } else {
|
|
|
|
|
+ // this.payType = 'alipay';
|
|
|
|
|
+ // }
|
|
|
|
|
+ // } else {
|
|
|
|
|
+ // this.payType = 'third';
|
|
|
|
|
+ // }
|
|
|
|
|
+ // });
|
|
|
|
|
+ },
|
|
|
|
|
+ methods: {
|
|
|
|
|
+ goDetail() {
|
|
|
|
|
+ this.goNext('orderDetail', {
|
|
|
|
|
+ id: this.info.id
|
|
|
|
|
+ })
|
|
|
|
|
+ },
|
|
|
|
|
+ getTime() {
|
|
|
|
|
+ var times = differenceInSeconds(
|
|
|
|
|
+ addMinutes(parse(this.info.createdAt, 'yyyy-MM-dd HH:mm:ss', new Date()), 30),
|
|
|
|
|
+ new Date()
|
|
|
|
|
+ )
|
|
|
|
|
+ if (times <= 0) {
|
|
|
|
|
+ times = 0
|
|
|
|
|
+ }
|
|
|
|
|
+ var mint = parseInt(times / 60)
|
|
|
|
|
+ var seconds = parseInt(times % 60)
|
|
|
|
|
+ this.times = mint + '分 ' + seconds + '秒'
|
|
|
|
|
+ if (!times) {
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+ setTimeout(this.getTime, 1000)
|
|
|
|
|
+ },
|
|
|
|
|
+ confirmPayment() {
|
|
|
|
|
+ this.$http
|
|
|
|
|
+ .post('/order/confirmPayment', {
|
|
|
|
|
+ orderId: this.info.id
|
|
|
|
|
+ })
|
|
|
|
|
+ .then(res => {
|
|
|
|
|
+ this.$toast.success('确认成功')
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ this.$emit('updateOrder', res)
|
|
|
|
|
+ }, 1000)
|
|
|
|
|
+ })
|
|
|
|
|
+ .catch(e => {
|
|
|
|
|
+ return this.$toast(e.error)
|
|
|
|
|
+ })
|
|
|
|
|
+ },
|
|
|
|
|
+ confirmReceipt() {
|
|
|
|
|
+ this.$http
|
|
|
|
|
+ .post('/order/confirmReceipt', {
|
|
|
|
|
+ orderId: this.info.id
|
|
|
|
|
+ })
|
|
|
|
|
+ .then(res => {
|
|
|
|
|
+ this.$toast.success('确认成功')
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ this.$emit('updateOrder', res)
|
|
|
|
|
+ }, 1000)
|
|
|
|
|
+ })
|
|
|
|
|
+ .catch(e => {
|
|
|
|
|
+ return this.$toast(e.error)
|
|
|
|
|
+ })
|
|
|
|
|
+ },
|
|
|
|
|
+ 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) {
|
|
|
|
|
+ // eslint-disable-next-line no-empty
|
|
|
|
|
+ }
|
|
|
|
|
+ try {
|
|
|
|
|
+ c += e.split('.')[1].length
|
|
|
|
|
+ } catch (f) {
|
|
|
|
|
+ // eslint-disable-next-line no-empty
|
|
|
|
|
+ }
|
|
|
|
|
+ return (Number(d.replace('.', '')) * Number(e.replace('.', ''))) / Math.pow(10, c)
|
|
|
|
|
+ },
|
|
|
|
|
+ sale() {
|
|
|
|
|
+ this.show = false
|
|
|
|
|
+ if (this.payType === 'alipay') {
|
|
|
|
|
+ window.open(
|
|
|
|
|
+ this.$baseUrl +
|
|
|
|
|
+ `/payDelegation/alipay?userId=${this.user.id}&orderId=${this.info.id}&riseRate=${
|
|
|
|
|
+ this.value / 100
|
|
|
|
|
+ }&returnUrl=${encodeURIComponent(location.href)}`
|
|
|
|
|
+ )
|
|
|
|
|
+ } else if (this.payType === 'third') {
|
|
|
|
|
+ window.open(
|
|
|
|
|
+ this.$baseUrl +
|
|
|
|
|
+ `/payDelegation/third?userId=${this.user.id}&orderId=${this.info.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.info.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.info.id,
|
|
|
|
|
+ riseRate: this.value / 100
|
|
|
|
|
+ })
|
|
|
|
|
+ .then(res => {
|
|
|
|
|
+ this.$toast.success('支付成功')
|
|
|
|
|
+ this.$emit('updateOrder', res)
|
|
|
|
|
+ })
|
|
|
|
|
+ .catch(e => {
|
|
|
|
|
+ this.$toast(e.error)
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ applyShip() {
|
|
|
|
|
+ this.$dialog
|
|
|
|
|
+ .confirm({
|
|
|
|
|
+ title: '提示',
|
|
|
|
|
+ message: '确认申请发货?'
|
|
|
|
|
+ })
|
|
|
|
|
+ .then(() => {
|
|
|
|
|
+ this.$http
|
|
|
|
|
+ .post('/order/applyShip', {
|
|
|
|
|
+ orderId: this.info.id
|
|
|
|
|
+ })
|
|
|
|
|
+ .then(res => {
|
|
|
|
|
+ this.$toast.success('申请成功')
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ this.$emit('updateOrder', res)
|
|
|
|
|
+ }, 1000)
|
|
|
|
|
+ })
|
|
|
|
|
+ .catch(e => {
|
|
|
|
|
+ return this.$toast(e.error)
|
|
|
|
|
+ })
|
|
|
|
|
+ })
|
|
|
|
|
+ .catch(() => {})
|
|
|
|
|
+ },
|
|
|
|
|
+ receive() {
|
|
|
|
|
+ this.$http
|
|
|
|
|
+ .post('/order/receive', {
|
|
|
|
|
+ orderId: this.info.id
|
|
|
|
|
+ })
|
|
|
|
|
+ .then(res => {
|
|
|
|
|
+ this.$toast.success('确认成功')
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ this.$emit('updateOrder', res)
|
|
|
|
|
+ }, 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)
|
|
|
|
|
+ })
|
|
|
|
|
+ },
|
|
|
|
|
+ showTip() {
|
|
|
|
|
+ this.$dialog.alert({
|
|
|
|
|
+ title: '提示',
|
|
|
|
|
+ message: '委托代卖暂未开始,将在今天' + this.delegationTime + '开始'
|
|
|
|
|
+ })
|
|
|
|
|
+ },
|
|
|
|
|
+ problem() {
|
|
|
|
|
+ this.$router.push({
|
|
|
|
|
+ name: 'workOrderction',
|
|
|
|
|
+ query: {
|
|
|
|
|
+ orderId: this.info.id
|
|
|
|
|
+ },
|
|
|
|
|
+ params: {
|
|
|
|
|
+ isNext: true
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+</script>
|
|
|
|
|
+<style lang="less" scoped>
|
|
|
|
|
+.order-info {
|
|
|
|
|
+ padding: 0 15px;
|
|
|
|
|
+ background: rgba(255, 255, 255, 1);
|
|
|
|
|
+ border-radius: 2px;
|
|
|
|
|
+ margin: 12px 16px 0 16px;
|
|
|
|
|
+}
|
|
|
|
|
+.order-top {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
|
+ height: 43px;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+
|
|
|
|
|
+ .order-staus {
|
|
|
|
|
+ color: #ff8f00;
|
|
|
|
|
+ font-size: 13px;
|
|
|
|
|
+ font-weight: bold;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.text1 {
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+ color: rgba(0, 0, 0, 1);
|
|
|
|
|
+ line-height: 20px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.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-content {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ padding-top: 10px;
|
|
|
|
|
+ border-top: 1px sold #f2f4f5;
|
|
|
|
|
+
|
|
|
|
|
+ .order-text {
|
|
|
|
|
+ margin-left: 10px;
|
|
|
|
|
+ flex-grow: 1;
|
|
|
|
|
+ overflow: hidden;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.order-price {
|
|
|
|
|
+ text-align: right;
|
|
|
|
|
+
|
|
|
|
|
+ .price {
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ color: rgba(102, 102, 102, 1);
|
|
|
|
|
+ line-height: 17px;
|
|
|
|
|
+ margin-top: 18px;
|
|
|
|
|
+ span {
|
|
|
|
|
+ &:last-child {
|
|
|
|
|
+ font-size: 16px;
|
|
|
|
|
+ font-weight: bold;
|
|
|
|
|
+ color: rgba(255, 59, 48, 1);
|
|
|
|
|
+ line-height: 22px;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ .order-tips {
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ color: rgba(255, 143, 0, 1);
|
|
|
|
|
+ line-height: 17px;
|
|
|
|
|
+ margin-top: 8px;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.order-button {
|
|
|
|
|
+ padding: 15px 0;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: flex-end;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ border-top: 1px sold #f2f4f5;
|
|
|
|
|
+ margin-top: 15px;
|
|
|
|
|
+
|
|
|
|
|
+ .van-button {
|
|
|
|
|
+ margin-left: 10px;
|
|
|
|
|
+ height: 28px;
|
|
|
|
|
+ }
|
|
|
|
|
+ .problem {
|
|
|
|
|
+ flex-grow: 1;
|
|
|
|
|
+ text-align: left;
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ font-weight: 400;
|
|
|
|
|
+ color: rgba(170, 172, 173, 1);
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+.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>
|