Showing
12 changed files
with
517 additions
and
6 deletions
apps/pages/order/deliver.vue
0 → 100644
1 | +<template> | ||
2 | + <LayoutApp class="order-deliver-page" :show-back="true"> | ||
3 | + <div class="main-content"> | ||
4 | + <div class="page-title">发货</div> | ||
5 | + <div class="identify-center-address"> | ||
6 | + <div class="left-icon"> | ||
7 | + <i class="iconfont iconaddress"></i> | ||
8 | + </div> | ||
9 | + <div class="address-info"> | ||
10 | + <div class="consignee"> | ||
11 | + <span>{{stateCenterAddress.address_name}}</span> | ||
12 | + <span class="tag">有货鉴定中心</span> | ||
13 | + </div> | ||
14 | + <p class="location">{{stateCenterAddress.address}}</p> | ||
15 | + <p>{{stateCenterAddress.mobile}}</p> | ||
16 | + </div> | ||
17 | + </div> | ||
18 | + <div class="deliver-express"> | ||
19 | + <div class="left-icon"> | ||
20 | + <div class="express-logo"></div> | ||
21 | + </div> | ||
22 | + <div class="express-info"> | ||
23 | + <span>国内顺丰快运</span> | ||
24 | + <CubeInput class="express-input" v-model="expressCode" placeholder="请填写顺丰运单号"></CubeInput> | ||
25 | + </div> | ||
26 | + </div> | ||
27 | + <div v-if="stateCenterAddress.deliverDesc" class="deliver-tip"> | ||
28 | + <span class="iconfont iconwarn"></span> | ||
29 | + <p>{{stateCenterAddress.deliverDesc}}</p> | ||
30 | + </div> | ||
31 | + <div class="submit-warp"> | ||
32 | + <div class="contract-check"> | ||
33 | + <i class="iconfont" :class="readContract ? 'iconcheck_full checked' : 'iconcheck_default'" @click="changeReadContract"></i> | ||
34 | + <span>我已阅读并同意</span> | ||
35 | + <a href="//activity.yoho.cn/feature/4049.html?share_id=6729&title=UFO卖家商品质检标准">《UFO卖家商品质检标准》</a> | ||
36 | + </div> | ||
37 | + <p v-if="stateCenterAddress.warnTips" class="warn-tip">{{stateCenterAddress.warnTips}}</p> | ||
38 | + <CubeButton class="deliver-btn" :disabled="deliverDisable" @click="submitDeliver">发货</CubeButton> | ||
39 | + </div> | ||
40 | + </div> | ||
41 | + </LayoutApp> | ||
42 | +</template> | ||
43 | + | ||
44 | +<script> | ||
45 | +import { get } from 'lodash'; | ||
46 | +import { Button, Input } from 'cube-ui'; | ||
47 | +import { createNamespacedHelpers } from 'vuex'; | ||
48 | + | ||
49 | +const { mapState, mapActions } = createNamespacedHelpers('order/orderDeliver'); | ||
50 | + | ||
51 | +export default { | ||
52 | + name: 'OrderDeliver', | ||
53 | + data() { | ||
54 | + return { | ||
55 | + centerAddress: {}, | ||
56 | + expressCode: '', | ||
57 | + readContract: false | ||
58 | + }; | ||
59 | + }, | ||
60 | + created() { | ||
61 | + let { skup, code } = this.$route.params || {}; | ||
62 | + | ||
63 | + this.orderCode = code; | ||
64 | + if (process.env.VUE_ENV !== 'server') { | ||
65 | + this.fetchAppraiseAddress({ | ||
66 | + skup, | ||
67 | + orderCode: code | ||
68 | + }); | ||
69 | + } | ||
70 | + }, | ||
71 | + computed: { | ||
72 | + ...mapState(['appraiseAddress']), | ||
73 | + stateCenterAddress() { | ||
74 | + if (!this.centerAddress.address) { | ||
75 | + this.centerAddress = get(this.appraiseAddress, this.orderCode) || {}; | ||
76 | + } | ||
77 | + | ||
78 | + return this.centerAddress; | ||
79 | + }, | ||
80 | + deliverDisable() { | ||
81 | + return !(this.expressCode && this.readContract && this.stateCenterAddress.id); | ||
82 | + } | ||
83 | + }, | ||
84 | + mounted() { | ||
85 | + this.fetchAppraiseAddressChangeNotice({orderCode: this.orderCode}).then(res => { | ||
86 | + let isChanged = get(res, 'data.isChanged'); | ||
87 | + let isForceShow = get(res, 'data.isForceShow'); | ||
88 | + | ||
89 | + if (!isChanged && !isForceShow) { | ||
90 | + return; | ||
91 | + } | ||
92 | + | ||
93 | + let { title = '', tips, alert_address_name, alert_address, alert_mobile } = res.data || {}; | ||
94 | + let info = [ | ||
95 | + alert_address_name || '', | ||
96 | + alert_address || '', | ||
97 | + alert_mobile || '' | ||
98 | + ]; | ||
99 | + | ||
100 | + if (isChanged && tips) { | ||
101 | + info.unshift(tips); | ||
102 | + } | ||
103 | + | ||
104 | + this.$createDialog({ | ||
105 | + type: 'alert', | ||
106 | + confirmBtn: { | ||
107 | + text: '我知道了' | ||
108 | + }, | ||
109 | + onConfirm() { | ||
110 | + // Todo report() | ||
111 | + console.log('Todo Report', res.data); | ||
112 | + } | ||
113 | + }, (createElement) => { | ||
114 | + return [ | ||
115 | + createElement('div', { | ||
116 | + class: { | ||
117 | + 'dg-notice-content': true | ||
118 | + }, | ||
119 | + slot: 'content' | ||
120 | + }, [ | ||
121 | + createElement('div', { | ||
122 | + class: { | ||
123 | + 'dg-notice-content-title': true | ||
124 | + } | ||
125 | + }, isChanged ? 'UFO仓库调整公告' : title), | ||
126 | + ...info.map(val => { | ||
127 | + return createElement('p', { | ||
128 | + class: { | ||
129 | + 'dg-notice-content-info': true | ||
130 | + }, | ||
131 | + }, val); | ||
132 | + }) | ||
133 | + ]) | ||
134 | + ]; | ||
135 | + }).show(); | ||
136 | + }); | ||
137 | + }, | ||
138 | + methods: { | ||
139 | + ...mapActions(['fetchAppraiseAddress', 'fetchAppraiseAddressChangeNotice', 'deliverOrderToDepot']), | ||
140 | + toast(msg, time = 1500) { | ||
141 | + this.$createToast && this.$createToast({ | ||
142 | + txt: msg, | ||
143 | + type: 'txt', | ||
144 | + time | ||
145 | + }).show(); | ||
146 | + }, | ||
147 | + changeReadContract() { | ||
148 | + this.readContract = !this.readContract; | ||
149 | + }, | ||
150 | + submitDeliver() { | ||
151 | + if (/^[a-zA-Z0-9]+$/.test(this.expressCode)) { | ||
152 | + if (this.loading) { | ||
153 | + return; | ||
154 | + } | ||
155 | + | ||
156 | + this.loading = true; | ||
157 | + | ||
158 | + setTimeout(() => { | ||
159 | + this.loading = false; | ||
160 | + }, 2000); | ||
161 | + | ||
162 | + this.deliverOrderToDepot({ | ||
163 | + orderCode: this.orderCode, | ||
164 | + wayBillCode: this.expressCode, | ||
165 | + depotNum: this.stateCenterAddress.id | ||
166 | + }).then(res => { | ||
167 | + if (res.code === 200) { | ||
168 | + this.$router.go(-1); | ||
169 | + // Todo report() | ||
170 | + } else { | ||
171 | + this.toast(res.message || '网络异常,请稍后重试'); | ||
172 | + } | ||
173 | + }); | ||
174 | + } else { | ||
175 | + this.toast('请输入正确的快递单号'); | ||
176 | + } | ||
177 | + } | ||
178 | + }, | ||
179 | + components: { | ||
180 | + CubeButton: Button, | ||
181 | + CubeInput: Input | ||
182 | + } | ||
183 | +}; | ||
184 | +</script> | ||
185 | + | ||
186 | +<style lang="scss"> | ||
187 | +.dg-notice-content { | ||
188 | + padding: 10px 44px 40px; | ||
189 | + font-size: 28px; | ||
190 | + line-height: 42px; | ||
191 | + color: #444; | ||
192 | + margin-bottom: -32px; | ||
193 | + border-bottom: 1px solid #f5f5f5; | ||
194 | + | ||
195 | + .dg-notice-content-title { | ||
196 | + font-size: 32px; | ||
197 | + font-weight: 500; | ||
198 | + text-align: center; | ||
199 | + padding-bottom: 20px; | ||
200 | + color: #000; | ||
201 | + } | ||
202 | +} | ||
203 | + | ||
204 | +</style> | ||
205 | + | ||
206 | +<style lang="scss" scoped> | ||
207 | +.order-deliver-page { | ||
208 | + .main-content { | ||
209 | + padding: 0 40px; | ||
210 | + } | ||
211 | + | ||
212 | + .page-title { | ||
213 | + font-size: 68px; | ||
214 | + font-weight: 800; | ||
215 | + line-height: 80px; | ||
216 | + padding-bottom: 30px; | ||
217 | + border-bottom: 1px solid #eee; | ||
218 | + } | ||
219 | + | ||
220 | + .left-icon { | ||
221 | + width: 88px; | ||
222 | + flex-shrink: 0; | ||
223 | + } | ||
224 | + | ||
225 | + .identify-center-address { | ||
226 | + padding: 40px 0; | ||
227 | + display: flex; | ||
228 | + align-items: center; | ||
229 | + font-size: 28px; | ||
230 | + border-bottom: 1px solid #eee; | ||
231 | + | ||
232 | + .iconfont { | ||
233 | + font-size: 48px; | ||
234 | + } | ||
235 | + | ||
236 | + .consignee { | ||
237 | + font-size: 32px; | ||
238 | + display: flex; | ||
239 | + align-items: center; | ||
240 | + | ||
241 | + > * { | ||
242 | + line-height: 44px; | ||
243 | + font-weight: 800; | ||
244 | + display: inline-block; | ||
245 | + vertical-align: top; | ||
246 | + } | ||
247 | + | ||
248 | + .tag { | ||
249 | + font-size: 24px; | ||
250 | + line-height: 48px; | ||
251 | + font-weight: 300; | ||
252 | + padding: 0 14px; | ||
253 | + margin-left: 6px; | ||
254 | + color: #002B47; | ||
255 | + border: 1px solid #ccc; | ||
256 | + box-sizing: border-box; | ||
257 | + transform: scale(0.8); | ||
258 | + } | ||
259 | + } | ||
260 | + | ||
261 | + .location { | ||
262 | + font-size: 24px; | ||
263 | + line-height: 1.4; | ||
264 | + color: #999; | ||
265 | + margin: 6px 0 12px; | ||
266 | + } | ||
267 | + } | ||
268 | + | ||
269 | + .deliver-express { | ||
270 | + display: flex; | ||
271 | + padding: 36px 0; | ||
272 | + border-bottom: 1px solid #eee; | ||
273 | + align-items: center; | ||
274 | + | ||
275 | + .express-logo { | ||
276 | + width: 48px; | ||
277 | + height: 48px; | ||
278 | + background: url("~statics/image/order/sf-logo.png"); | ||
279 | + background-size: 100% 100%; | ||
280 | + } | ||
281 | + | ||
282 | + .express-info { | ||
283 | + font-size: 32px; | ||
284 | + line-height: 44px; | ||
285 | + display: flex; | ||
286 | + align-items: center; | ||
287 | + flex-grow: 1; | ||
288 | + } | ||
289 | + | ||
290 | + .express-input { | ||
291 | + flex-grow: 1; | ||
292 | + | ||
293 | + &:after { | ||
294 | + border: 0; | ||
295 | + } | ||
296 | + | ||
297 | + /deep/ .cube-input-field { | ||
298 | + text-align: right; | ||
299 | + padding: 0; | ||
300 | + } | ||
301 | + } | ||
302 | + } | ||
303 | + | ||
304 | + .deliver-tip { | ||
305 | + color: #ccc; | ||
306 | + display: flex; | ||
307 | + align-items: flex-start; | ||
308 | + padding-top: 16px; | ||
309 | + | ||
310 | + .iconfont { | ||
311 | + font-size: 32px; | ||
312 | + margin-right: 10px; | ||
313 | + margin-top: -6px; | ||
314 | + } | ||
315 | + | ||
316 | + p { | ||
317 | + font-size: 24px; | ||
318 | + line-height: 1.4; | ||
319 | + font-weight: 300; | ||
320 | + color: #bbb; | ||
321 | + white-space: pre-wrap; | ||
322 | + word-wrap: break-word; | ||
323 | + } | ||
324 | + } | ||
325 | + | ||
326 | + .submit-warp { | ||
327 | + width: 100%; | ||
328 | + position: absolute; | ||
329 | + left: 0; | ||
330 | + bottom: 0; | ||
331 | + padding: 0 38px 40px; | ||
332 | + } | ||
333 | + | ||
334 | + .contract-check { | ||
335 | + font-size: 24px; | ||
336 | + line-height: 40px; | ||
337 | + color: #999; | ||
338 | + display: flex; | ||
339 | + align-items: center; | ||
340 | + | ||
341 | + .iconfont { | ||
342 | + margin-right: 16px; | ||
343 | + font-size: 30px; | ||
344 | + position: relative; | ||
345 | + | ||
346 | + &:after { | ||
347 | + content: ""; | ||
348 | + width: 200%; | ||
349 | + height: 150%; | ||
350 | + position: absolute; | ||
351 | + top: -25%; | ||
352 | + left: -50%; | ||
353 | + } | ||
354 | + } | ||
355 | + | ||
356 | + .checked { | ||
357 | + color: #022c46; | ||
358 | + } | ||
359 | + | ||
360 | + a { | ||
361 | + color: #65ab85; | ||
362 | + margin-left: 20px; | ||
363 | + text-decoration: underline; | ||
364 | + } | ||
365 | + } | ||
366 | + | ||
367 | + .warn-tip { | ||
368 | + font-size: 24px; | ||
369 | + line-height: 1.3; | ||
370 | + color: red; | ||
371 | + padding: 6px 0; | ||
372 | + letter-spacing: 0; | ||
373 | + } | ||
374 | + | ||
375 | + .deliver-btn { | ||
376 | + height: 120px; | ||
377 | + background: #022c46; | ||
378 | + margin-top: 34px; | ||
379 | + | ||
380 | + &.cube-btn_disabled { | ||
381 | + background: #ccc; | ||
382 | + } | ||
383 | + } | ||
384 | +} | ||
385 | +</style> |
@@ -33,6 +33,11 @@ export default [ | @@ -33,6 +33,11 @@ export default [ | ||
33 | path: '/xianyu/:owner/order/logistics/:code', | 33 | path: '/xianyu/:owner/order/logistics/:code', |
34 | component: () => import('./order-logistics-info'), | 34 | component: () => import('./order-logistics-info'), |
35 | }, | 35 | }, |
36 | + { | ||
37 | + name: 'order.deliver', | ||
38 | + path: '/xianyu/order/deliver/:skup/:code', | ||
39 | + component: () => import(/* webpackChunkName: "order.deliver" */ './deliver'), | ||
40 | + }, | ||
36 | ...PriceChange, | 41 | ...PriceChange, |
37 | ...OrderList, | 42 | ...OrderList, |
38 | ...OrderDetail, | 43 | ...OrderDetail, |
1 | @font-face {font-family: "iconfont"; | 1 | @font-face {font-family: "iconfont"; |
2 | - src: url('iconfont.eot?t=1569575909056'); /* IE9 */ | ||
3 | - src: url('iconfont.eot?t=1569575909056#iefix') format('embedded-opentype'), /* IE6-IE8 */ | ||
4 | - url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAAlwAAsAAAAAEmwAAAkhAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCFeAqTJI9IATYCJANYCy4ABCAFhG0HggIbmA9RlGtSTPZFgd1GbDniHuHQIg8EU2af2bZ5PlODLoPHTf9eXkJZKBWoSWZWNyidWJlpWgKlBgtQmaqwL2rtzNg3o1sCgAfivvb+fexSx3WgZWnax8ajyELZhJp/N40f0Zraerq1D6n7nAsLrLBK1OFkEpUfePu1sAxnPcDfKvDv11q9O9RCci+ZEClx/2Jf3sI9VKzSGEqBkHYRlcRQAt4YplMqJWUgwLzqJCsklVNohdfhZCAAeCSgH4jRNGQU1GChOKFDvd0mQp1JBVvjRKBOUhl2ZKeRdeCgZpYzHwFYG3w9eYo0ogYYcBTqVCPeyi0o2eQPP6HzFAqTovmYP142gIUWQAH0A8AuFJ8x9wFoxPoFgjc1Z+EFsNQ9/XQxG6taoQ6oI+qEOqPOqZuqpJ5rNVqHtqW90r78VzYWtbzWYtak3fBp7AQP7B0cWZyYnB2XUKSQqPSlWCozP65/8RqtWmc1jJMgRVSrGgKvD1Y2FgeFAVhBEVAOV4QKUAIMgCpgBNQDE6ASmAHFwCwoBeZAGbAJmgEJ7jLgnAAC/moCaPhrR62EDlANbIE64BVoBXwCDcBn0Ah8oZcJ1t4OV9wIfxHRP5TyHWQnQq0PZEQUiTgjL0QsY2la5wBrbl6en9WylUPzwtpQPxVbl137xtICa0GaU0BxQV9YoDbOySmKNmQZVxQim8UgdNoMDUlaXZZRm09iM1SaERdENtDTOy0kXNIk4JgyXBBapRhPHQOBLidcbapLUI4hHUXMstMaJd1Ka29XZDpAmurc2XZ9gQzbvbfjC0h01+4eA1W/S+boBYHhSnQ5HEfxpbk6nmdd5fpcl4sWyHOa6jjXYab0he1L0qWeb8+V4KkNWcUVjcieY/Bs0w5sS19sDETtsa8XUrdLM8hyHfa4w0j1Eyr3KQqgT5i23bIzt9xLaQZKtnd46h7Jtu6U3lTxdpx5UPpDdr30wy1PhpVokUljD2zLZUEEIPSyW7pVHvzBfKt5dAAaNfc/60g/qkCOj1YgCADQrvJCnkeChSPpZBv+5uoHuUyIl3AQhbAsnkYWiF12d/YXocgoynG3ZfCSO9utFJSWvJvMa7BdumRa81MSMNOiIynST4sSNtpy9joj2nOXA99397DtnQ1RPVv9GYcjO7WmNEkJ9BoEej2PgbGfs/AblF/UxZRreW/kJmNMuZT/OttoCENn/FGFwfP4ZAs9rTZ6n7RtPWxyx2bhdhpHQ+Lle8i8V7DBEMleyH+rNBuj8vwTmxaYDX+gOZwNNDL1qd8OlJAO5//CR4bf/tilj+aExKRL9XM8olcUPTQiCUNkbWZAL3boJn0P8wpbfxYcEeepI094iJ96+Py/tXX7YK7/P6tCC5e2Rc18PbzdPvaLEuR1/j5d+kG3Nr/ByKYGeR938zaV/E3x783ZiwzZB5GRnbd49uJFVhOMfN24aLGWDf4ys3NXLlokp4+T89sWsjXgpO5kQGur06vzOltnzqxnzuyKzrTyZdoRdVu83OF/2fDybRFfzd+huTvlPOt7Ss9r9PlkFX3qY8+zwtOn6KyvfIX6a8JfaR6fNDeVpvVqDm9WB4pEyYfFkhCxpFSpoMz9PhYE1qXfzwmJyV+BV4eNGHb576njRtZNU1VWLlsZsm7fi19SouunmvXzF/UcHshNuiaN6WbqPQhvFUQGL1uhQz9l6cLgJCVQESdLNqWng35jmdE6uL+V9dfsTx3sg+e9H37pmy+zHecnecRNTLpo7uYfoN99R6EHJGGI3Dz+s1Btlqr9uuF+px5jHqXWvrgmWmIYP84gHMn4Cd3oseOjommW9lWuIlqH7HumgebZvuBFIFfeEJ6QZgi5KRypKujSUeILJ+YOijbFWCOEtNAwFTnFSPrzhZpyVWnPe31+4hYy25TXPzv6V4s88YMt22/vl6WvW3Y9wUtATgQhVS8mCdvChuq3C8nCdv3QsG26i1LKTV3y9vvaBbpNelnbRyvrN+kWaPFx63P/8+dlZde916/ddZV1tRujXqJnHz8+61I6l5AyUuEg5OARI2Y9ThXTZ8M47+xTOWSIIwVGGLPGqaJJxbjOzDQ0kEpi9lLNTOJkJpUXMvW4GleuNY0yaY1xMznGaETWr/b2faNR165zkztHq6Xqt+xL59v59H3twV3w4TeBzVevtERi2tfB/ZR+8I/TGx3VvLG4LbW9JAwGbugZ5Vx6bHts+rm2WbP+mKLqYGNMVLNOujakI0e9o79pltx389Bu9H4Al7vlXB4E7bIjR1oDQudtXbOWUX+Us+AlTIvmpbCwz4a5n78CyutepcUAQM8zPQOqKO25LKHzAaXNQdoV1y99Rs0uX/g85ht7wWB8jRYlfbVeIzsA5TzdSYdbrtdoCRVzF1PdWK7z6F46r3YrfUzt0uyBnI37rbwSvjX3wNSu4C+15id1xfcX/7wn5cuyVqEGajBQeQT4HZydxStMUe0TSItgt3kIiHcqWChKcVJQVKdtiQiU46CqGQC8LgQUUahD+6Uo4a3j/gko4YkngwDEM2oy68ZYzPp5ctAgg6kwK/bk0RcVu2ugh4yCsJ0A9MFiPAlCcNaTQRBeZRSzjxmLWZsnhwg8oyrsCPXkMSbQH1CDHsTOG2RJdEsWoapVsFc7Gq12hpsPO5olm6delEXCbK0xkuyyOxqF1KSUY0OF1CjJY2ziarKlud1WwSo7GgSTtYFUX+8QnLKjVqp2J9VQ78xLTrauNk2qdjSAh4FMInJ7vi0EVGkNb1fNoZF1bje+8PlmEhuPeiK5ZsRd+DEkMhf74gWkIgkpLfQVorHViJfS3aWJTRrcIttKcPrLHBoIMIlsSb2udRDgNC9XS1LNLQk1Paqd8pAsZrK2FUmnVxq+BYG3b1T16BGEIZSwhCMqEkDUpBPhiYYEEi0JIsEkhIQSHdGTMBJOIkgkWPuLuRzjcXIWR3NjY2CzZK+yi46MzNT0dM7eX7RYgvPVLR6xsdXRT+fBqc1n1DgabRaP3ebwqKd7JJf7Sa/J1ktWNyfbbTXuTkWVVN5Z73H1b7A3eil8ax+dVNwgqpx9u0lpbJVYXRcwfhdZcrm01TVSJvxUi2QVPfVuDvjiVlZPfT0zvI4TZdnRDAAAAA==') format('woff2'), | ||
5 | - url('iconfont.woff?t=1569575909056') format('woff'), | ||
6 | - url('iconfont.ttf?t=1569575909056') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */ | ||
7 | - url('iconfont.svg?t=1569575909056#iconfont') format('svg'); /* iOS 4.1- */ | 2 | + src: url('iconfont.eot?t=1569655552875'); /* IE9 */ |
3 | + src: url('iconfont.eot?t=1569655552875#iefix') format('embedded-opentype'), /* IE6-IE8 */ | ||
4 | + url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'), | ||
5 | + url('iconfont.woff?t=1569655552875') format('woff'), | ||
6 | + url('iconfont.ttf?t=1569655552875') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */ | ||
7 | + url('iconfont.svg?t=1569655552875#iconfont') format('svg'); /* iOS 4.1- */ | ||
8 | } | 8 | } |
9 | 9 | ||
10 | .iconfont { | 10 | .iconfont { |
@@ -99,3 +99,7 @@ | @@ -99,3 +99,7 @@ | ||
99 | content: "\e7c4"; | 99 | content: "\e7c4"; |
100 | } | 100 | } |
101 | 101 | ||
102 | +.iconwarn:before { | ||
103 | + content: "\e7cf"; | ||
104 | +} | ||
105 | + |
No preview for this file type
@@ -83,6 +83,9 @@ Created by iconfont | @@ -83,6 +83,9 @@ Created by iconfont | ||
83 | <glyph glyph-name="arrow" unicode="" d="M1536 896L768-128 0 896z" horiz-adv-x="1536" /> | 83 | <glyph glyph-name="arrow" unicode="" d="M1536 896L768-128 0 896z" horiz-adv-x="1536" /> |
84 | 84 | ||
85 | 85 | ||
86 | + <glyph glyph-name="warn" unicode="" d="M512 830.016C757.92 830.016 958.016 629.952 958.016 384 958.016 138.08000000000004 757.92-62.01599999999996 512-62.01599999999996c-245.95200001 0-446.016 200.064-446.016 446.016C65.984 629.952 266.048 830.016 512 830.016zM512 1.9840000000000373C722.656 1.9840000000000373 894.016 173.34400000000005 894.016 384c0 210.624-171.36 382.016-382.016 382.016-210.624 0-382.016-171.36-382.016-382.016C129.984 173.34400000000005 301.376 1.9840000000000373 512 1.9840000000000373zM512 176m48 0a1.5 1.5 0 1 1-96 0 1.5 1.5 0 1 1 96 0ZM512 639.99999999c17.664 0 32-14.304 32-31.99999999l0-288c0-17.664-14.336-32-32-31.99999999s-32 14.336-32 31.99999999l0 288C480 625.696 494.336 640 512 639.99999999z" horiz-adv-x="1024" /> | ||
87 | + | ||
88 | + | ||
86 | 89 | ||
87 | 90 | ||
88 | </font> | 91 | </font> |
No preview for this file type
No preview for this file type
No preview for this file type
apps/statics/image/order/sf-logo.png
0 → 100644
4.98 KB
@@ -3,6 +3,7 @@ import orderList from './order-list'; | @@ -3,6 +3,7 @@ import orderList from './order-list'; | ||
3 | import orderConfirm from './order-confirm'; | 3 | import orderConfirm from './order-confirm'; |
4 | import orderDetail from './order-detail'; | 4 | import orderDetail from './order-detail'; |
5 | import orderLogistics from './order-logistics'; | 5 | import orderLogistics from './order-logistics'; |
6 | +import orderDeliver from './order-deliver'; | ||
6 | 7 | ||
7 | export default function() { | 8 | export default function() { |
8 | return { | 9 | return { |
@@ -13,6 +14,7 @@ export default function() { | @@ -13,6 +14,7 @@ export default function() { | ||
13 | orderConfirm: orderConfirm(), | 14 | orderConfirm: orderConfirm(), |
14 | orderDetail: orderDetail(), | 15 | orderDetail: orderDetail(), |
15 | logisticsInfo: orderLogistics(), | 16 | logisticsInfo: orderLogistics(), |
17 | + orderDeliver: orderDeliver(), | ||
16 | }, | 18 | }, |
17 | }; | 19 | }; |
18 | } | 20 | } |
apps/store/order/order-deliver.js
0 → 100644
1 | +export default function () { | ||
2 | + return { | ||
3 | + namespaced: true, | ||
4 | + state: { | ||
5 | + appraiseAddress: {}, | ||
6 | + appraiseAddressCodes: [] | ||
7 | + }, | ||
8 | + mutations: { | ||
9 | + SET_APPRAISE_ADDRESS(state, { orderCode, data }) { | ||
10 | + let addr = { | ||
11 | + [orderCode]: data | ||
12 | + }; | ||
13 | + | ||
14 | + state.appraiseAddressCodes.push(orderCode); | ||
15 | + | ||
16 | + if (state.appraiseAddressCodes.length > 5) { | ||
17 | + state.appraiseAddressCodes.shift() | ||
18 | + } | ||
19 | + | ||
20 | + state.appraiseAddressCodes.forEach(code => { | ||
21 | + if (state.appraiseAddress[code]) { | ||
22 | + addr[code] = state.appraiseAddress[code]; | ||
23 | + } | ||
24 | + }); | ||
25 | + | ||
26 | + state.appraiseAddress = addr; | ||
27 | + } | ||
28 | + }, | ||
29 | + actions: { | ||
30 | + /** | ||
31 | + * @param { | ||
32 | + * skup skup | ||
33 | + * orderCode 订单编码 | ||
34 | + * } | ||
35 | + */ | ||
36 | + async fetchAppraiseAddress({ commit }, { skup, orderCode } = {}) { | ||
37 | + const res = await this.$api.get('/api/order/appraiseAddress', { | ||
38 | + skup, | ||
39 | + orderCode: orderCode + '', | ||
40 | + }); | ||
41 | + | ||
42 | + if (res.code === 200) { | ||
43 | + commit('SET_APPRAISE_ADDRESS', { | ||
44 | + orderCode, | ||
45 | + data: res.data | ||
46 | + }); | ||
47 | + } | ||
48 | + | ||
49 | + return res; | ||
50 | + }, | ||
51 | + /** | ||
52 | + * @param { | ||
53 | + * orderCode 订单编码 | ||
54 | + * } | ||
55 | + */ | ||
56 | + async fetchAppraiseAddressChangeNotice({ commit }, { orderCode } = {}) { | ||
57 | + return await this.$api.get('/api/order/noticeAppraiseAddressChanged', { | ||
58 | + orderCode: orderCode + '', | ||
59 | + }); | ||
60 | + }, | ||
61 | + /** | ||
62 | + * @param { | ||
63 | + * orderCode 订单编码 | ||
64 | + * wayBillCode 物流快递号 | ||
65 | + * depotNum 鉴定中心id | ||
66 | + * } | ||
67 | + */ | ||
68 | + async deliverOrderToDepot({ commit }, { orderCode, wayBillCode, depotNum } = {}) { | ||
69 | + return await this.$api.post('/api/order/deliverToDepot', { | ||
70 | + expressCompanyId: 23, | ||
71 | + orderCode: orderCode + '', | ||
72 | + wayBillCode, | ||
73 | + depotNum | ||
74 | + }); | ||
75 | + } | ||
76 | + }, | ||
77 | + }; | ||
78 | +} |
@@ -93,4 +93,38 @@ module.exports = { | @@ -93,4 +93,38 @@ module.exports = { | ||
93 | orderCode: { type: Number, require: true }, // 订单编号 | 93 | orderCode: { type: Number, require: true }, // 订单编号 |
94 | }, | 94 | }, |
95 | }, | 95 | }, |
96 | + | ||
97 | + // 鉴定中心地址 | ||
98 | + '/api/order/appraiseAddress': { | ||
99 | + ufo: true, | ||
100 | + auth: true, | ||
101 | + api: 'ufo.order.appraiseAddress', | ||
102 | + params: { | ||
103 | + skup: { type: String, require: true }, | ||
104 | + orderCode: { type: String, require: true }, // 订单编号 | ||
105 | + }, | ||
106 | + }, | ||
107 | + | ||
108 | + // 鉴定中心地址更改公告 | ||
109 | + '/api/order/noticeAppraiseAddressChanged': { | ||
110 | + ufo: true, | ||
111 | + auth: true, | ||
112 | + api: 'ufo.order.noticeAppraiseAddressChanged', | ||
113 | + params: { | ||
114 | + orderCode: { type: String, require: true }, // 订单编号 | ||
115 | + }, | ||
116 | + }, | ||
117 | + | ||
118 | + // 卖家发货 | ||
119 | + '/api/order/deliverToDepot': { | ||
120 | + ufo: true, | ||
121 | + auth: true, | ||
122 | + api: 'ufo.order.deliverToDepot', | ||
123 | + params: { | ||
124 | + expressCompanyId: { type: Number, require: true }, // 快递公司id | ||
125 | + wayBillCode: { type: String, require: true }, // 物流快递号 | ||
126 | + orderCode: { type: String, require: true }, // 订单编号 | ||
127 | + depotNum: { type: Number, require: true }, // 鉴定中心id | ||
128 | + }, | ||
129 | + }, | ||
96 | }; | 130 | }; |
-
Please register or login to post a comment