Showing
6 changed files
with
103 additions
and
114 deletions
1 | <template> | 1 | <template> |
2 | <LayoutBody> | 2 | <LayoutBody> |
3 | + <div class="print-detail"> | ||
3 | <div class="detail-header"> | 4 | <div class="detail-header"> |
4 | - <span class="no">物流单号 - {{expressNo}}</span> | ||
5 | - <span class="time">发货时间:{{expressTime}}</span> | ||
6 | - <p class="address"></p> | 5 | + <p class="exp-no">物流单号 - {{expressNo}}</p> |
6 | + <p class="supply">数量:{{totalNum}}</p> | ||
7 | + <p class="address high-light">{{destAddress}}</p> | ||
8 | + </div> | ||
9 | + <div class="detail-list"> | ||
10 | + <table> | ||
11 | + <thead> | ||
12 | + <tr> | ||
13 | + <th>SKN</th> | ||
14 | + <th>SKU</th> | ||
15 | + <th>条码</th> | ||
16 | + <th>吊牌价</th> | ||
17 | + <th>销售价</th> | ||
18 | + <th>商品名称</th> | ||
19 | + <th>数量</th> | ||
20 | + <th>单号</th> | ||
21 | + </tr> | ||
22 | + </thead> | ||
23 | + <tbody> | ||
24 | + <tr v-for="item in dataList"> | ||
25 | + <td>{{item.skn}}</td> | ||
26 | + <td>{{item.sku}}</td> | ||
27 | + <td>{{item.skuFactoryCode}}</td> | ||
28 | + <td>{{item.retailPrice}}</td> | ||
29 | + <td>{{item.salesPrice}}</td> | ||
30 | + <td>{{item.productName}}</td> | ||
31 | + <td>{{item.num}}</td> | ||
32 | + <td>{{item.proRequisitionFormId}}</td> | ||
33 | + </tr> | ||
34 | + </tbody> | ||
35 | + </table> | ||
36 | + </div> | ||
7 | </div> | 37 | </div> |
8 | - <LayoutList> | ||
9 | - <Table border :columns="table.cols" :data="table.list"></Table> | ||
10 | - </LayoutList> | ||
11 | </LayoutBody> | 38 | </LayoutBody> |
12 | </template> | 39 | </template> |
13 | 40 | ||
14 | <script> | 41 | <script> |
15 | import _ from 'lodash'; | 42 | import _ from 'lodash'; |
16 | - import moment from 'moment'; | ||
17 | import service from 'trade-service'; | 43 | import service from 'trade-service'; |
18 | 44 | ||
19 | export default { | 45 | export default { |
20 | data() { | 46 | data() { |
21 | return { | 47 | return { |
22 | - table: { | ||
23 | - cols: [ | ||
24 | - { | ||
25 | - title: 'SKN', | ||
26 | - key: 'skn', | ||
27 | - align: 'center' | ||
28 | - }, | ||
29 | - { | ||
30 | - title: 'sku', | ||
31 | - key: 'sku', | ||
32 | - align: 'center' | ||
33 | - }, { | ||
34 | - title: '条码', | ||
35 | - key: 'skuFactoryCode', | ||
36 | - align: 'center' | ||
37 | - }, { | ||
38 | - title: '商品图片', | ||
39 | - align: 'center', | ||
40 | - render() { | ||
41 | - return `<div> | ||
42 | - <img v-prod-img.sku="row.sku"> | ||
43 | - </div>`; | ||
44 | - } | ||
45 | - }, { | ||
46 | - title: '商品名称', | ||
47 | - key: 'productName', | ||
48 | - align: 'center' | ||
49 | - }, { | ||
50 | - title: '规格', | ||
51 | - align: 'center', | ||
52 | - render(row) { | ||
53 | - return `${row.colorName || ''}/${row.size}`; | ||
54 | - } | ||
55 | - }, { | ||
56 | - title: '调拨单号/已发数', | ||
57 | - align: 'center', | ||
58 | - render(row) { | ||
59 | - let $html = ''; | ||
60 | - | ||
61 | - _.each(row.boList, i => { | ||
62 | - $html += `<p>${i.proRequisitionFormId}/${i.num}</p>`; | ||
63 | - }); | ||
64 | - | ||
65 | - return $html; | ||
66 | - } | ||
67 | - } | ||
68 | - ], | ||
69 | - list: [] | ||
70 | - }, | ||
71 | expressNo: 0, | 48 | expressNo: 0, |
72 | - expressTime: '' | 49 | + destAddress: '', |
50 | + totalNum: 0, | ||
51 | + dataList: [] | ||
73 | }; | 52 | }; |
74 | }, | 53 | }, |
75 | created() { | 54 | created() { |
76 | this.$root.$emit('print-page'); | 55 | this.$root.$emit('print-page'); |
77 | this.expressNo = this.$route.query.expressNo; | 56 | this.expressNo = this.$route.query.expressNo; |
78 | - this.expressDetail(); | 57 | + this.allotPrintExpressDetail(); |
79 | }, | 58 | }, |
80 | methods: { | 59 | methods: { |
81 | - backExpList() { | ||
82 | - this.$router.push({ | ||
83 | - name: 'trade.allot.express' | ||
84 | - }); | ||
85 | - }, | ||
86 | - expressDetail() { | ||
87 | - service.allotExpressDetail(this.expressNo) | 60 | + allotPrintExpressDetail() { |
61 | + service.allotPrintExpressDetail(this.expressNo) | ||
88 | .then(res => { | 62 | .then(res => { |
89 | this.resolveData(res.data); | 63 | this.resolveData(res.data); |
90 | }); | 64 | }); |
91 | 65 | ||
66 | + service.allotWarehouseInfo() | ||
67 | + .then(res => { | ||
68 | + const data = res.data; | ||
69 | + | ||
70 | + this.destAddress = `发往:${data.address} ${data.adminName} ${data.phone}`; | ||
71 | + }); | ||
72 | + | ||
92 | }, | 73 | }, |
93 | resolveData(data) { | 74 | resolveData(data) { |
94 | - const fmt = 'YYYY-MM-DD HH:mm:ss'; | ||
95 | - | ||
96 | - this.table.list = data; | ||
97 | - this.expressTime = moment.unix(data[0].createTime).format(fmt); | 75 | + _.each(data, item => { |
76 | + this.totalNum += item.num || 0; | ||
77 | + }); | ||
78 | + this.dataList = data; | ||
98 | } | 79 | } |
99 | }, | 80 | }, |
100 | components: { | 81 | components: { |
@@ -103,13 +84,46 @@ | @@ -103,13 +84,46 @@ | ||
103 | </script> | 84 | </script> |
104 | 85 | ||
105 | <style lang="scss" scoped> | 86 | <style lang="scss" scoped> |
106 | - .detail-header { | 87 | + .print-detail { |
107 | margin-bottom: 20px; | 88 | margin-bottom: 20px; |
108 | 89 | ||
109 | - .no, | ||
110 | - .time { | ||
111 | - margin-left: 10px; | 90 | + .exp-no { |
91 | + font-size: 25px; | ||
92 | + color: #333; | ||
93 | + } | ||
94 | + | ||
95 | + .supply { | ||
96 | + font-size: 15px; | ||
112 | } | 97 | } |
98 | + | ||
99 | + .address { | ||
100 | + font-size: 15px; | ||
101 | + | ||
102 | + &.high-light { | ||
103 | + color: #ff0000; | ||
104 | + } | ||
105 | + } | ||
106 | + | ||
107 | + .detail-list { | ||
108 | + margin-top: 20px; | ||
109 | + | ||
110 | + table, th, td{ | ||
111 | + padding: 5px; | ||
112 | + border: 1px solid black; | ||
113 | + padding: 5px 30px; | ||
114 | + } | ||
115 | + | ||
116 | + table { | ||
117 | + border-spacing: 0px; | ||
118 | + border-collapse: collapse; | ||
119 | + | ||
120 | + th { | ||
121 | + color: #333; | ||
122 | + } | ||
123 | + } | ||
124 | + | ||
125 | + } | ||
126 | + | ||
113 | } | 127 | } |
114 | </style> | 128 | </style> |
115 | 129 |
1 | -<template> | ||
2 | - <div> | ||
3 | - <a :href="productUrl" target="_blank"> | ||
4 | - <img class="cell-img" | ||
5 | - :src="skuImageSrc"> | ||
6 | - </a> | ||
7 | - </div> | ||
8 | -</template> | ||
9 | - | ||
10 | -<script> | ||
11 | - export default { | ||
12 | - name: 'CellSkuImage', | ||
13 | - props: { | ||
14 | - productSku: { | ||
15 | - type: [String, Number] | ||
16 | - } | ||
17 | - }, | ||
18 | - data() { | ||
19 | - return { | ||
20 | - productUrl: '', | ||
21 | - skuImageSrc: '' | ||
22 | - }; | ||
23 | - }, | ||
24 | - created() { | ||
25 | - this.skuImageSrc = | ||
26 | - `http://shops.yohobuy.com/platform/product/getRemoteImageUrlBySku?sku_id=${this.productSku}&size=80x80`; | ||
27 | - } | ||
28 | - }; | ||
29 | -</script> | ||
30 | - | ||
31 | -<style lang="scss" scoped> | ||
32 | - .cell-img { | ||
33 | - max-width: 200px; | ||
34 | - } | ||
35 | -</style> |
@@ -2,12 +2,10 @@ import CellDeliver from './cell-deliver'; | @@ -2,12 +2,10 @@ import CellDeliver from './cell-deliver'; | ||
2 | import CellDispatch from './cell-dispatch'; | 2 | import CellDispatch from './cell-dispatch'; |
3 | import CellPrdInfo from './cell-prd-info'; | 3 | import CellPrdInfo from './cell-prd-info'; |
4 | import CellStockOut from './cell-stock-out'; | 4 | import CellStockOut from './cell-stock-out'; |
5 | -import CellSkuImage from './cell-sku-image'; | ||
6 | 5 | ||
7 | export { | 6 | export { |
8 | CellDeliver, | 7 | CellDeliver, |
9 | CellDispatch, | 8 | CellDispatch, |
10 | CellPrdInfo, | 9 | CellPrdInfo, |
11 | - CellStockOut, | ||
12 | - CellSkuImage | 10 | + CellStockOut |
13 | }; | 11 | }; |
@@ -67,7 +67,7 @@ | @@ -67,7 +67,7 @@ | ||
67 | import service from 'trade-service'; | 67 | import service from 'trade-service'; |
68 | import dataStore from '../store/undone'; | 68 | import dataStore from '../store/undone'; |
69 | import { ModalDeliver, ModalStockOut } from 'components/modal'; | 69 | import { ModalDeliver, ModalStockOut } from 'components/modal'; |
70 | - import { CellPrdInfo, CellDispatch, CellDeliver, CellStockOut, CellSkuImage } from '../components'; | 70 | + import { CellPrdInfo, CellDispatch, CellDeliver, CellStockOut } from '../components'; |
71 | 71 | ||
72 | export default { | 72 | export default { |
73 | name: 'TabUndone', | 73 | name: 'TabUndone', |
@@ -317,7 +317,6 @@ | @@ -317,7 +317,6 @@ | ||
317 | CellDispatch, | 317 | CellDispatch, |
318 | CellDeliver, | 318 | CellDeliver, |
319 | CellStockOut, | 319 | CellStockOut, |
320 | - CellSkuImage, | ||
321 | ModalStockOut, | 320 | ModalStockOut, |
322 | ModalDeliver | 321 | ModalDeliver |
323 | } | 322 | } |
@@ -13,7 +13,8 @@ const apiUrl = { | @@ -13,7 +13,8 @@ const apiUrl = { | ||
13 | allotWarehouseInfo: '/erp/allotWarehouseInfo', | 13 | allotWarehouseInfo: '/erp/allotWarehouseInfo', |
14 | allotStockOut: '/erp/allotStockOut', | 14 | allotStockOut: '/erp/allotStockOut', |
15 | allotExpressNumList: '/erp/allotExpressNumList', | 15 | allotExpressNumList: '/erp/allotExpressNumList', |
16 | - allotExpressCompList: '/erp/allotExpressCompList' | 16 | + allotExpressCompList: '/erp/allotExpressCompList', |
17 | + allotPrintExpressDetail: '/erp/allotPrintExpressDetail' | ||
17 | }; | 18 | }; |
18 | 19 | ||
19 | const tradeService = { | 20 | const tradeService = { |
@@ -97,6 +98,17 @@ const tradeService = { | @@ -97,6 +98,17 @@ const tradeService = { | ||
97 | 98 | ||
98 | return {}; | 99 | return {}; |
99 | }); | 100 | }); |
101 | + }, | ||
102 | + allotPrintExpressDetail(no) { | ||
103 | + return axios.post(apiUrl.allotPrintExpressDetail, { | ||
104 | + expressNumber: no | ||
105 | + }) | ||
106 | + .then(res => { | ||
107 | + if (res.status === 200) { | ||
108 | + return res.data; | ||
109 | + } | ||
110 | + return {}; | ||
111 | + }); | ||
100 | } | 112 | } |
101 | }; | 113 | }; |
102 | 114 |
@@ -14,6 +14,7 @@ let domainApis = { | @@ -14,6 +14,7 @@ let domainApis = { | ||
14 | allotExpressNumList: '/erp-shop-web/purchase/queryExpressListByExpressNumber', | 14 | allotExpressNumList: '/erp-shop-web/purchase/queryExpressListByExpressNumber', |
15 | allotExpressCompList: '/erp-shop-web/express/getExpressList', | 15 | allotExpressCompList: '/erp-shop-web/express/getExpressList', |
16 | allotExportList: '/erp-shop-web/export/exportForPurchaseForm', | 16 | allotExportList: '/erp-shop-web/export/exportForPurchaseForm', |
17 | + allotPrintExpressDetail: '/erp-shop-web/purchase/queryExpressListByExpressNumber', | ||
17 | jitProductList: '/erp-shop-web/product/jitProductList', | 18 | jitProductList: '/erp-shop-web/product/jitProductList', |
18 | getJitStorageListBySkn: '/erp-shop-web/product/getJitStorageListBySkn', | 19 | getJitStorageListBySkn: '/erp-shop-web/product/getJitStorageListBySkn', |
19 | importJitStorage: '/erp-shop-web/product/importJitStorage' | 20 | importJitStorage: '/erp-shop-web/product/importJitStorage' |
-
Please register or login to post a comment