Authored by lea guo

订单列表不卖了

<template>
<div class="confirm-info-wrapper">
<p class="confrim-info" v-if="info.confirmDesc">{{ info.confirmDesc }}</p>
<div v-if="info.needPenalty || info.showPrice" class="price-info">
<div class="confrim-info" v-if="confirmDescList.length > 0">
<span v-for="(info, i) in confirmDescList" :key="i">{{ info }}</span>
</div>
<div v-if="info.showPrice" class="price-info">
<p class="price-item">
<span>{{ info.orderPriceDesc }}</span>
<span>{{ info.orderPrice }}</span>
... ... @@ -25,6 +27,17 @@ export default {
type: Object,
default: {}
}
},
computed: {
confirmDescList() {
const { confirmDesc = "" } = this.info;
if (confirmDesc.includes("#*")) {
const regexp = /#\*(.*?)\*#/;
return confirmDesc.split(regexp);
} else {
return [desc];
}
}
}
};
</script>
... ... @@ -34,11 +47,27 @@ export default {
display: flex;
padding: 0 40px;
color: #000;
font-size: 24px;
.confrim-info {
font-size: 28px;
text-align: center;
flex: 1;
span {
color: #d0021b;
}
& > :first-child,
& > :last-child {
color: #000;
padding-left: 10px;
}
// p {
// display: inline-block;
// text-align: left;
// max-width: 100%;
// }
}
.price-info {
... ...
<template>
<layout-app title="订单详情">
<layout-app>
<div class="order-detail-wrapper">
<div class="content">
<!-- 状态信息 -->
... ...
<template>
<div class="order-item-wrapper">
<div class="item-img">
<image-format
alt=""
:src="goodsInfo.goodImg"
:width="180"
:height="180"
/>
</div>
<div class="item-info">
<div>
<div class="price-status">
<span class="price">¥{{ goodsInfo.goodPrice }}</span>
<router-link :to="toLinkParam">
<div class="order-item-wrapper">
<div class="item-img">
<image-format
alt=""
:src="goodsInfo.goodImg"
:width="180"
:height="180"
/>
</div>
<div class="item-info">
<div>
<div class="price-status">
<span class="price">¥{{ goodsInfo.goodPrice }}</span>
</div>
<p class="item-name">
{{ goodsInfo.productName }}
</p>
</div>
<p class="item-name">
{{ goodsInfo.productName }}
<p class="item-spec">
<span>{{ goodsInfo.colorName }},</span>
<span>{{ goodsInfo.sizeName }}码</span>
</p>
</div>
<p class="item-spec">
<span>{{ goodsInfo.colorName }},</span>
<span>{{ goodsInfo.sizeName }}码</span>
</p>
</div>
</div>
</router-link>
</template>
<script>
... ... @@ -32,7 +34,14 @@ const { mapGetters } = createNamespacedHelpers("order/orderDetail");
export default {
computed: {
...mapGetters(["goodsInfo"])
...mapGetters(["goodsInfo"]),
toLinkParam() {
const { productId, storageId } = this.goodsInfo;
return {
name: "OrderSellConfirm",
query: { productId, storageId }
};
}
}
};
</script>
... ...
... ... @@ -84,13 +84,29 @@ export default {
},
async onBuyerOrderAction({ action, order }) {
const { owner = ownType.SELL } = this.$route.params;
const { orderCode, priceInfo = {} } = order;
const { orderCode, priceInfo = {}, bidDepositInfo = {} } = order;
switch (action.name) {
case orderActionsMap.DEL_ORDER.name: {
this.deleteOrderConfirmDialog({ orderCode, owner });
break;
}
case orderActionsMap.PAY_DEPOSIT.name: {
this.$createOrderPayType({
orderCode,
price: parseFloat(bidDepositInfo.depositAmount),
desc: '保证金',
extra: JSON.stringify({
forward: {
name: 'OrderList',
params: {
owner: 'buy',
},
},
}),
}).show();
break;
}
case orderActionsMap.CANCEL_ORDER.name: {
const confirmInfo = await this.cancelTradeConfirmInfo({
orderCode,
... ...
<template>
<layout-app title="订单详情">
<layout-app>
<div class="order-detail-wrapper">
<div class="content">
<!-- 状态信息 -->
... ... @@ -27,7 +27,7 @@
<!-- 价格信息 -->
<div class="price-info item-wrapper">
<p>
<span class="label">平台费用:</span>
<span class="label">平台费用:<i class="tip"></i></span>
<span>{{ platformFee.amount }}</span>
</p>
<p class="delivery-fee">
... ... @@ -232,6 +232,15 @@ export default {
.price-info {
font-size: 28px;
.tip {
width: 60px;
height: 30px;
display: inline-block;
background: url("~statics/image/order/tip@3x.png") no-repeat;
background-size: contain;
background-position: center;
}
& > p {
display: flex;
justify-content: space-between;
... ...
... ... @@ -17,7 +17,7 @@ export default {
// 订单列表
async onAction({ action, order }) {
const { owner = ownType.SELL } = this.$route.params;
const { orderCode, realPrice = '' } = order;
const { orderCode, realPrice = '', bidDepositInfo = {} } = order;
switch (action.name) {
case orderActionsMap.DEL_ORDER.name:
... ... @@ -95,6 +95,23 @@ export default {
break;
}
case orderActionsMap.PAY_DEPOSIT.name: {
this.$createOrderPayType({
orderCode,
price: parseFloat(bidDepositInfo.depositAmount),
desc: '保证金',
extra: JSON.stringify({
forward: {
name: 'OrderList',
params: {
owner: 'buy',
},
},
}),
}).show();
break;
}
case orderActionsMap.CONFIRM_DELIVERY.name: {
this.$createConfirmDialog({
onConfirm: async () => {
... ... @@ -114,6 +131,42 @@ export default {
});
break;
}
case orderActionsMap.NOT_SOLD.name: {
const confirmInfo = await this.cancelTradeConfirmInfo({
orderCode,
owner,
});
this.$createConfirmDialog(
{
confirmBtn: { text: '不卖了', style: { color: '#D0021B' } },
cancelBtn: { text: '继续出售', active: true },
onConfirm: async () => {
const isOk = await this.cancelTrade({
orderCode,
owner,
});
if (isOk) {
this.resetData();
this.fetchData(this.$route.params);
}
// const txt = isOk ? "取消成功" : "取消失败";
// this.$createToast({ txt, type: "txt" }).show();
},
},
createElement => {
return [
createElement(DialogConfirmInfo, {
props: { info: confirmInfo },
slot: 'content',
}),
];
},
).show();
break;
}
default:
return;
}
... ...
... ... @@ -48,7 +48,6 @@ export default function() {
state.pullUpLoad = true;
},
resetData(state) {
console.log('------------------', state);
const s = initailData();
Object.keys(s).forEach(key => {
... ...