1
|
<template>
|
1
|
<template>
|
2
|
- <layout-app :title="'\u200E'">
|
2
|
+ <layout-app :title="'\u200E'" class="seller-order-detail-wrapper">
|
|
|
3
|
+ <scroll>
|
3
|
<div class="order-detail-wrapper">
|
4
|
<div class="order-detail-wrapper">
|
4
|
<div class="content">
|
5
|
<div class="content">
|
5
|
<!-- 状态信息 -->
|
6
|
<!-- 状态信息 -->
|
6
|
- <detail-header/>
|
7
|
+ <detail-header />
|
7
|
<!-- 物流信息 -->
|
8
|
<!-- 物流信息 -->
|
8
|
<router-link
|
9
|
<router-link
|
9
|
v-if="lastExpressInfo"
|
10
|
v-if="lastExpressInfo"
|
|
@@ -21,9 +22,9 @@ |
|
@@ -21,9 +22,9 @@ |
21
|
</div>
|
22
|
</div>
|
22
|
</router-link>
|
23
|
</router-link>
|
23
|
<!-- 地址信息 -->
|
24
|
<!-- 地址信息 -->
|
24
|
- <address-info class="item-wrapper"/>
|
25
|
+ <address-info class="item-wrapper" />
|
25
|
<!-- 商品信息 -->
|
26
|
<!-- 商品信息 -->
|
26
|
- <order-item-info class="item-wrapper"/>
|
27
|
+ <order-item-info class="item-wrapper" />
|
27
|
<!-- 价格信息 -->
|
28
|
<!-- 价格信息 -->
|
28
|
<div class="price-info item-wrapper">
|
29
|
<div class="price-info item-wrapper">
|
29
|
<p>
|
30
|
<p>
|
|
@@ -62,13 +63,18 @@ |
|
@@ -62,13 +63,18 @@ |
62
|
</p> -->
|
63
|
</p> -->
|
63
|
<p v-if="orderDetail.earnestMoneyStr">
|
64
|
<p v-if="orderDetail.earnestMoneyStr">
|
64
|
<span class="label">保证金:</span>
|
65
|
<span class="label">保证金:</span>
|
65
|
- <span class="earnest-price">{{ orderDetail.earnestMoneyStr }}</span>
|
66
|
+ <span class="earnest-price">{{
|
|
|
67
|
+ orderDetail.earnestMoneyStr
|
|
|
68
|
+ }}</span>
|
66
|
</p>
|
69
|
</p>
|
67
|
<p v-if="statusDetail.paymentTips">
|
70
|
<p v-if="statusDetail.paymentTips">
|
68
|
<span class="payment-tip">{{ statusDetail.paymentTips }}</span>
|
71
|
<span class="payment-tip">{{ statusDetail.paymentTips }}</span>
|
69
|
</p>
|
72
|
</p>
|
70
|
</div>
|
73
|
</div>
|
71
|
</div>
|
74
|
</div>
|
|
|
75
|
+ </div>
|
|
|
76
|
+ </scroll>
|
|
|
77
|
+
|
72
|
<div v-if="actionList.length > 0" class="footer-wrapper">
|
78
|
<div v-if="actionList.length > 0" class="footer-wrapper">
|
73
|
<div v-if="statusDetail.status === 0">
|
79
|
<div v-if="statusDetail.status === 0">
|
74
|
<p class="earnest-price">{{ orderDetail.earnestMoneyStr }}</p>
|
80
|
<p class="earnest-price">{{ orderDetail.earnestMoneyStr }}</p>
|
|
@@ -89,28 +95,28 @@ |
|
@@ -89,28 +95,28 @@ |
89
|
"
|
95
|
"
|
90
|
/>
|
96
|
/>
|
91
|
</div>
|
97
|
</div>
|
92
|
- </div>
|
|
|
93
|
</layout-app>
|
98
|
</layout-app>
|
94
|
</template>
|
99
|
</template>
|
95
|
|
100
|
|
96
|
<script>
|
101
|
<script>
|
97
|
-import { createNamespacedHelpers } from 'vuex';
|
|
|
98
|
-import { Button } from 'cube-ui';
|
|
|
99
|
-import Clipboard from 'clipboard';
|
102
|
+import { createNamespacedHelpers } from "vuex";
|
|
|
103
|
+import { Button } from "cube-ui";
|
|
|
104
|
+import Clipboard from "clipboard";
|
100
|
|
105
|
|
101
|
-import AddressInfo from './components/sell-order-address-info';
|
|
|
102
|
-import OrderItemInfo from './components/order-detail-item';
|
|
|
103
|
-import DetailHeader from './components/header';
|
|
|
104
|
-import DetailFooter from './components//detail-footer';
|
106
|
+import AddressInfo from "./components/sell-order-address-info";
|
|
|
107
|
+import OrderItemInfo from "./components/order-detail-item";
|
|
|
108
|
+import DetailHeader from "./components/header";
|
|
|
109
|
+import DetailFooter from "./components//detail-footer";
|
105
|
|
110
|
|
106
|
-import OrderActions from '../components/order-actions';
|
111
|
+import OrderActions from "../components/order-actions";
|
107
|
|
112
|
|
108
|
-import orderActionMixin from '../mixin/order-action';
|
|
|
109
|
-import orderInSaleActionMixin from '../mixin/order-in-sale-action';
|
113
|
+import orderActionMixin from "../mixin/order-action";
|
|
|
114
|
+import orderInSaleActionMixin from "../mixin/order-in-sale-action";
|
110
|
|
115
|
|
111
|
-import PlatformFeeInfo from '../components/platform-fee-info';
|
116
|
+import PlatformFeeInfo from "../components/platform-fee-info";
|
|
|
117
|
+import { Scroll } from "cube-ui";
|
112
|
|
118
|
|
113
|
-const STORE_PATH = 'order/orderDetail';
|
119
|
+const STORE_PATH = "order/orderDetail";
|
114
|
|
120
|
|
115
|
const { mapActions, mapState, mapGetters } = createNamespacedHelpers(
|
121
|
const { mapActions, mapState, mapGetters } = createNamespacedHelpers(
|
116
|
STORE_PATH
|
122
|
STORE_PATH
|
|
@@ -124,7 +130,8 @@ export default { |
|
@@ -124,7 +130,8 @@ export default { |
124
|
Button,
|
130
|
Button,
|
125
|
DetailHeader,
|
131
|
DetailHeader,
|
126
|
DetailFooter,
|
132
|
DetailFooter,
|
127
|
- OrderActions
|
133
|
+ OrderActions,
|
|
|
134
|
+ Scroll
|
128
|
},
|
135
|
},
|
129
|
asyncData({ store, router }) {
|
136
|
asyncData({ store, router }) {
|
130
|
return store.dispatch(`${STORE_PATH}/fetchOrderDetail`, router.params);
|
137
|
return store.dispatch(`${STORE_PATH}/fetchOrderDetail`, router.params);
|
|
@@ -136,33 +143,33 @@ export default { |
|
@@ -136,33 +143,33 @@ export default { |
136
|
return this.orderDetail.orderCode;
|
143
|
return this.orderDetail.orderCode;
|
137
|
}
|
144
|
}
|
138
|
});
|
145
|
});
|
139
|
- this.copyBtn.on('success', () => {
|
146
|
+ this.copyBtn.on("success", () => {
|
140
|
this.$createToast({
|
147
|
this.$createToast({
|
141
|
- txt: '复制成功',
|
|
|
142
|
- type: 'txt'
|
148
|
+ txt: "复制成功",
|
|
|
149
|
+ type: "txt"
|
143
|
}).show();
|
150
|
}).show();
|
144
|
});
|
151
|
});
|
145
|
});
|
152
|
});
|
146
|
},
|
153
|
},
|
147
|
computed: {
|
154
|
computed: {
|
148
|
- ...mapState(['orderDetail']),
|
155
|
+ ...mapState(["orderDetail"]),
|
149
|
...mapGetters([
|
156
|
...mapGetters([
|
150
|
- 'lastExpressInfo',
|
|
|
151
|
- 'priceInfo',
|
|
|
152
|
- 'statusDetail',
|
|
|
153
|
- 'platformFee',
|
|
|
154
|
- 'actionList'
|
157
|
+ "lastExpressInfo",
|
|
|
158
|
+ "priceInfo",
|
|
|
159
|
+ "statusDetail",
|
|
|
160
|
+ "platformFee",
|
|
|
161
|
+ "actionList"
|
155
|
])
|
162
|
])
|
156
|
},
|
163
|
},
|
157
|
methods: {
|
164
|
methods: {
|
158
|
- ...mapActions(['fetchOrderDetail']),
|
165
|
+ ...mapActions(["fetchOrderDetail"]),
|
159
|
onPlatformFee() {
|
166
|
onPlatformFee() {
|
160
|
const { platformFee = {} } = this.orderDetail;
|
167
|
const { platformFee = {} } = this.orderDetail;
|
161
|
this.$createDialog(
|
168
|
this.$createDialog(
|
162
|
{
|
169
|
{
|
163
|
- type: 'alert',
|
|
|
164
|
- title: '平台费用',
|
|
|
165
|
- confirmBtn: { text: '我知道了' }
|
170
|
+ type: "alert",
|
|
|
171
|
+ title: "平台费用",
|
|
|
172
|
+ confirmBtn: { text: "我知道了" }
|
166
|
},
|
173
|
},
|
167
|
createElement => {
|
174
|
createElement => {
|
168
|
return [
|
175
|
return [
|
|
@@ -170,15 +177,15 @@ export default { |
|
@@ -170,15 +177,15 @@ export default { |
170
|
props: {
|
177
|
props: {
|
171
|
platformFeeInfo: {
|
178
|
platformFeeInfo: {
|
172
|
packageFee: platformFee.packageFee,
|
179
|
packageFee: platformFee.packageFee,
|
173
|
- packageFeeDesc: '商品包装费',
|
180
|
+ packageFeeDesc: "商品包装费",
|
174
|
payChannelPercentage: platformFee.goodsPaymentRatePercent,
|
181
|
payChannelPercentage: platformFee.goodsPaymentRatePercent,
|
175
|
serviceFee: platformFee.serviceFee,
|
182
|
serviceFee: platformFee.serviceFee,
|
176
|
- serviceFeeDesc: '平台服务费',
|
183
|
+ serviceFeeDesc: "平台服务费",
|
177
|
appraiseFee: platformFee.appraiseFee,
|
184
|
appraiseFee: platformFee.appraiseFee,
|
178
|
- appraiseFeeDesc: '商品鉴定费'
|
185
|
+ appraiseFeeDesc: "商品鉴定费"
|
179
|
}
|
186
|
}
|
180
|
},
|
187
|
},
|
181
|
- slot: 'content'
|
188
|
+ slot: "content"
|
182
|
})
|
189
|
})
|
183
|
];
|
190
|
];
|
184
|
}
|
191
|
}
|
|
@@ -189,16 +196,12 @@ export default { |
|
@@ -189,16 +196,12 @@ export default { |
189
|
</script>
|
196
|
</script>
|
190
|
|
197
|
|
191
|
<style lang="scss" scoped>
|
198
|
<style lang="scss" scoped>
|
192
|
-.order-detail-wrapper {
|
|
|
193
|
- // footer高度120px
|
|
|
194
|
- padding: 0 40px;
|
|
|
195
|
- -webkit-box-orient: vertical;
|
|
|
196
|
- height: calc(100vh - 210px);
|
|
|
197
|
- overflow-x: hidden;
|
|
|
198
|
- overflow-y: auto;
|
|
|
199
|
- font-size: 24px;
|
199
|
+.seller-order-detail-wrapper /deep/ .layout-context {
|
|
|
200
|
+ display: flex;
|
|
|
201
|
+ flex-direction: column;
|
|
|
202
|
+}
|
200
|
|
203
|
|
201
|
- .footer-wrapper {
|
204
|
+.footer-wrapper {
|
202
|
display: flex;
|
205
|
display: flex;
|
203
|
justify-content: space-between;
|
206
|
justify-content: space-between;
|
204
|
align-items: center;
|
207
|
align-items: center;
|
|
@@ -216,18 +219,25 @@ export default { |
|
@@ -216,18 +219,25 @@ export default { |
216
|
margin-top: 0;
|
219
|
margin-top: 0;
|
217
|
flex: 1;
|
220
|
flex: 1;
|
218
|
}
|
221
|
}
|
|
|
222
|
+
|
|
|
223
|
+ .earnest-price {
|
|
|
224
|
+ font-size: 28px;
|
|
|
225
|
+ color: #d0021b;
|
219
|
}
|
226
|
}
|
|
|
227
|
+}
|
|
|
228
|
+
|
|
|
229
|
+.order-detail-wrapper {
|
|
|
230
|
+ // footer高度120px
|
|
|
231
|
+ padding: 0 40px 120px 40px;
|
|
|
232
|
+ flex: 1 0 0;
|
|
|
233
|
+ overflow: hidden;
|
|
|
234
|
+ font-size: 24px;
|
220
|
|
235
|
|
221
|
.item-wrapper {
|
236
|
.item-wrapper {
|
222
|
border-top: 1px solid #eee;
|
237
|
border-top: 1px solid #eee;
|
223
|
padding: 40px 0;
|
238
|
padding: 40px 0;
|
224
|
}
|
239
|
}
|
225
|
|
240
|
|
226
|
- .earnest-price {
|
|
|
227
|
- font-size: 28px;
|
|
|
228
|
- color: #d0021b;
|
|
|
229
|
- }
|
|
|
230
|
-
|
|
|
231
|
.logistics-info {
|
241
|
.logistics-info {
|
232
|
display: flex;
|
242
|
display: flex;
|
233
|
align-items: center;
|
243
|
align-items: center;
|