zhanbo.xu

feat: 新增功能

1 +import request from "@/utils/request";
2 +
3 +// POST
4 +// /exportOrder/pvg/queryList
5 +// 获取PVG订单列表
6 +export function getPvgList(data) {
7 + return request({
8 + url: "/bus-customer/exportOrder/pvg/queryList",
9 + method: "post",
10 + data: data,
11 + });
12 +}
13 +
14 +// GET
15 +// /exportOrder/pvg/info/{id}
16 +// 获取PVG订单详情
17 +export function getPvgInfo({ id }) {
18 + return request({
19 + url: `/bus-customer/exportOrder/pvg/info/${id}`,
20 + method: "get",
21 + });
22 +}
23 +
24 +// GET
25 +// /exportOrder/pvg/receipt/{id}
26 +// 获取PVG订单回执信息
27 +export function getPvgReceiptInfo({ id }) {
28 + return request({
29 + url: `/bus-customer/exportOrder/pvg/receipt/${id}`,
30 + method: "get",
31 + });
32 +}
33 +
34 +// GET
35 +// /exportWaybill/pvg/info/{id}
36 +// 获取PVG运单详情
37 +export function getPvgWaybillInfo({ id }) {
38 + return request({
39 + url: `/bus-customer/exportWaybill/pvg/info/${id}`,
40 + method: "get",
41 + });
42 +}
43 +
44 +// POST
45 +// /exportWaybill/pvg/queryList
46 +// 获取PVG运单列表
47 +export function getPvgWaybillList(data) {
48 + return request({
49 + url: "/bus-customer/exportWaybill/pvg/queryList",
50 + method: "post",
51 + data: data,
52 + });
53 +}
54 +
55 +// GET
56 +// /exportWaybill/pvg/receipt​/{id}
57 +// 获取PVG订单回执信息
58 +export function getPvgWaybillReceiptInfo(id) {
59 + return request({
60 + url: `/bus-customer/exportWaybill/pvg/receipt/${id}`,
61 + method: "get",
62 + });
63 +}
...@@ -205,6 +205,15 @@ export const constantRoutes = [ ...@@ -205,6 +205,15 @@ export const constantRoutes = [
205 hidden: true, 205 hidden: true,
206 meta: { title: "PDD数据详情", icon: "" }, 206 meta: { title: "PDD数据详情", icon: "" },
207 }, 207 },
208 + // PVG
209 + {
210 + path: "/pvg-order-detail",
211 + component: (resolve) =>
212 + require(["@/views/pvgOrder/detail.vue"], resolve),
213 + hidden: true,
214 + name: "PvgOrderDetail",
215 + meta: { title: "PVG订单详情", icon: "" },
216 + },
208 ], 217 ],
209 }, 218 },
210 { 219 {
......
...@@ -18,14 +18,24 @@ ...@@ -18,14 +18,24 @@
18 :expandRowKeys="expandRowKeys" 18 :expandRowKeys="expandRowKeys"
19 > 19 >
20 <template v-slot:unit="scope"> 20 <template v-slot:unit="scope">
21 - <span>{{ 21 + <span>
22 - selectDictLabel(scope.row.unit, "MEASUREMENT_UNIT", "itemCode") 22 + {{ selectDictLabel(scope.row.unit, "MEASUREMENT_UNIT", "itemCode") }}
23 - }}</span> 23 + </span>
24 + </template>
25 + <template v-slot:unit1="scope">
26 + <span>
27 + {{ selectDictLabel(scope.row.unit1, "MEASUREMENT_UNIT", "itemCode") }}
28 + </span>
29 + </template>
30 + <template v-slot:unit2="scope">
31 + <span>
32 + {{ selectDictLabel(scope.row.unit2, "MEASUREMENT_UNIT", "itemCode") }}
33 + </span>
24 </template> 34 </template>
25 <template v-slot:currency="scope"> 35 <template v-slot:currency="scope">
26 - <span>{{ 36 + <span>
27 - selectDictLabel(scope.row.currency, "CURRENCY", "itemValue") 37 + {{ selectDictLabel(scope.row.currency, "CURRENCY", "itemValue") }}
28 - }}</span> 38 + </span>
29 </template> 39 </template>
30 <!-- <template slot="optionColumn"> 40 <!-- <template slot="optionColumn">
31 <el-table-column 41 <el-table-column
......
...@@ -101,8 +101,8 @@ ...@@ -101,8 +101,8 @@
101 </el-col> 101 </el-col>
102 </el-row> 102 </el-row>
103 <el-row :gutter="5"> 103 <el-row :gutter="5">
104 - <!-- 商品金额 --> 104 + <!-- 商品金额 -->
105 - <el-col :span="3"> 105 + <el-col :span="3">
106 <Formitem label="商品金额" prop="goodsValue"> 106 <Formitem label="商品金额" prop="goodsValue">
107 <el-input 107 <el-input
108 type="text" 108 type="text"
......
1 +<template>
2 + <div class="entry" v-loading="loadings.entryLoading">
3 + <div class="entryTitle">
4 + <div>PVG订单详情</div>
5 + <div>
6 + <el-button class="entrySaveButton" @click="back">返 回</el-button>
7 + </div>
8 + </div>
9 + <el-form
10 + class="fedexFormStyle"
11 + ref="sreachForm"
12 + :model="formData"
13 + label-position="top"
14 + disabled
15 + size="small"
16 + >
17 + <el-row :gutter="5">
18 + <!-- 订单编号 -->
19 + <el-col :span="3">
20 + <Formitem label="电商订单/海外仓订仓编号" prop="orderNo">
21 + <el-input
22 + type="text"
23 + class="inputShadow"
24 + id="inputInner--orderNo"
25 + resize="none"
26 + v-model="formData.orderNo"
27 + clearable
28 + placeholder=""
29 + ></el-input>
30 + </Formitem>
31 + </el-col>
32 + <!-- 物流申报企业平台代码 -->
33 + <el-col :span="3">
34 + <Formitem label="物流申报企业平台代码" prop="logisticsSenderCode">
35 + <el-input
36 + type="text"
37 + class="inputShadow"
38 + id="inputInner--logisticsSenderCode"
39 + resize="none"
40 + v-model="formData.logisticsSenderCode"
41 + clearable
42 + placeholder=""
43 + ></el-input>
44 + </Formitem>
45 + </el-col>
46 + <!-- 申报类型 -->
47 + <el-col :span="3">
48 + <Formitem label="申报类型" prop="appType">
49 + <el-input
50 + type="text"
51 + class="inputShadow"
52 + id="inputInner--appType"
53 + resize="none"
54 + v-model="formData.appType"
55 + clearable
56 + placeholder=""
57 + ></el-input>
58 + </Formitem>
59 + </el-col>
60 + <!-- 电商平台代码 -->
61 + <el-col :span="3">
62 + <Formitem label="电商平台代码" prop="ebpCode">
63 + <el-input
64 + type="text"
65 + class="inputShadow"
66 + id="inputInner--ebpCode"
67 + resize="none"
68 + v-model="formData.ebpCode"
69 + clearable
70 + placeholder=""
71 + ></el-input>
72 + </Formitem>
73 + </el-col>
74 + <!-- 电商平台/海外仓名称 -->
75 + <el-col :span="6">
76 + <Formitem label="电商平台/海外仓名称" prop="ebpName">
77 + <el-input
78 + type="text"
79 + class="inputShadow"
80 + id="inputInner--ebpName"
81 + resize="none"
82 + v-model="formData.ebpName"
83 + clearable
84 + placeholder=""
85 + ></el-input>
86 + </Formitem>
87 + </el-col>
88 + <!-- 电商企业代码 -->
89 + <el-col :span="3">
90 + <Formitem label="电商企业代码" prop="ebcCode">
91 + <el-input
92 + type="text"
93 + class="inputShadow"
94 + id="inputInner--ebcCode"
95 + resize="none"
96 + v-model="formData.ebcCode"
97 + clearable
98 + placeholder=""
99 + ></el-input>
100 + </Formitem>
101 + </el-col>
102 + <!-- 电商企业 -->
103 + <el-col :span="6">
104 + <Formitem label="电商企业名称" prop="ebcName">
105 + <el-input
106 + type="text"
107 + class="inputShadow"
108 + id="inputInner--ebcName"
109 + resize="none"
110 + v-model="formData.ebcName"
111 + clearable
112 + placeholder=""
113 + ></el-input>
114 + </Formitem>
115 + </el-col>
116 + </el-row>
117 + <el-row :gutter="5">
118 + <!-- 商品金额 -->
119 + <el-col :span="3">
120 + <Formitem label="商品金额" prop="totalPrice">
121 + <el-input
122 + type="text"
123 + class="inputShadow"
124 + id="inputInner--totalPrice"
125 + resize="none"
126 + v-model="formData.totalPrice"
127 + clearable
128 + placeholder=""
129 + ></el-input>
130 + </Formitem>
131 + </el-col>
132 + <!-- 运杂费 -->
133 + <el-col :span="3">
134 + <Formitem label="运杂费" prop="freight">
135 + <el-input
136 + type="text"
137 + class="inputShadow"
138 + id="inputInner--freight"
139 + resize="none"
140 + v-model="formData.freight"
141 + clearable
142 + placeholder=""
143 + ></el-input>
144 + </Formitem>
145 + </el-col>
146 + <!-- 币制 -->
147 + <el-col :span="3">
148 + <Formitem label="币制" prop="currency">
149 + <el-select
150 + type="text"
151 + id="inputInner--currency"
152 + v-model="formData.currency"
153 + clearable
154 + placeholder=""
155 + >
156 + <el-option
157 + v-for="(item, index) in $store.getters.dict.CURRENCY"
158 + :key="index"
159 + :label="item.itemChineseName"
160 + :value="item.itemValue"
161 + ></el-option>
162 + </el-select>
163 + </Formitem>
164 + </el-col>
165 + <!-- 收货人名称 -->
166 + <el-col :span="3">
167 + <Formitem label="收货人名称" prop="consignee">
168 + <el-input
169 + type="text"
170 + class="inputShadow"
171 + id="inputInner--consignee"
172 + resize="none"
173 + v-model="formData.consignee"
174 + clearable
175 + placeholder=""
176 + ></el-input>
177 + </Formitem>
178 + </el-col>
179 + <!-- 收货人电话 -->
180 + <el-col :span="3">
181 + <Formitem label="收货人电话" prop="consigneeTelephone">
182 + <el-input
183 + type="text"
184 + class="inputShadow"
185 + id="inputInner--consigneeTelephone"
186 + resize="none"
187 + v-model="formData.consigneeTelephone"
188 + clearable
189 + placeholder=""
190 + ></el-input>
191 + </Formitem>
192 + </el-col>
193 + <!-- 收货人地址 -->
194 + <el-col :span="3">
195 + <Formitem label="收货人地址" prop="consigneeAddress">
196 + <el-input
197 + type="text"
198 + class="inputShadow"
199 + id="inputInner--consigneeAddress"
200 + resize="none"
201 + v-model="formData.consigneeAddress"
202 + clearable
203 + placeholder=""
204 + ></el-input>
205 + </Formitem>
206 + </el-col>
207 + <!-- 收货人所在国 -->
208 + <el-col :span="3">
209 + <Formitem label="收货人所在国" prop="consigneeCountry">
210 + <el-input
211 + type="text"
212 + class="inputShadow"
213 + id="inputInner--consigneeCountry"
214 + resize="none"
215 + v-model="formData.consigneeCountry"
216 + clearable
217 + placeholder=""
218 + ></el-input>
219 + </Formitem>
220 + </el-col>
221 + <!-- 发货人名称 -->
222 + <el-col :span="3">
223 + <Formitem label="发货人名称" prop="shipper">
224 + <el-input
225 + type="text"
226 + class="inputShadow"
227 + id="inputInner--shipper"
228 + resize="none"
229 + v-model="formData.shipper"
230 + clearable
231 + placeholder=""
232 + ></el-input>
233 + </Formitem>
234 + </el-col>
235 + <!-- 发货人电话 -->
236 + <el-col :span="3">
237 + <Formitem label="发货人电话" prop="shipperTelephone">
238 + <el-input
239 + type="text"
240 + class="inputShadow"
241 + id="inputInner--shipperTelephone"
242 + resize="none"
243 + v-model="formData.shipperTelephone"
244 + clearable
245 + placeholder=""
246 + ></el-input>
247 + </Formitem>
248 + </el-col>
249 + <!-- 发货人地址 -->
250 + <el-col :span="3">
251 + <Formitem label="发货人地址" prop="shipperAddress">
252 + <el-input
253 + type="text"
254 + class="inputShadow"
255 + id="inputInner--shipperAddress"
256 + resize="none"
257 + v-model="formData.shipperAddress"
258 + clearable
259 + placeholder=""
260 + ></el-input>
261 + </Formitem>
262 + </el-col>
263 + <!-- 发货人所在国 -->
264 + <el-col :span="3">
265 + <Formitem label="发货人所在国" prop="shipperCountry">
266 + <el-input
267 + type="text"
268 + class="inputShadow"
269 + id="inputInner--shipperCountry"
270 + resize="none"
271 + v-model="formData.shipperCountry"
272 + clearable
273 + placeholder=""
274 + ></el-input>
275 + </Formitem>
276 + </el-col>
277 + <el-col :span="3">
278 + <Formitem label="平台编码" prop="crossOrderId">
279 + <el-input
280 + type="text"
281 + class="inputShadow"
282 + id="inputInner--crossOrderId"
283 + resize="none"
284 + v-model="formData.crossOrderId"
285 + clearable
286 + placeholder=""
287 + ></el-input>
288 + </Formitem>
289 + </el-col>
290 + <el-col :span="9">
291 + <Formitem label="备注" prop="note">
292 + <el-input
293 + type="text"
294 + class="inputShadow"
295 + id="inputInner--note"
296 + resize="none"
297 + v-model="formData.note"
298 + clearable
299 + placeholder=""
300 + ></el-input>
301 + </Formitem>
302 + </el-col>
303 + </el-row>
304 + </el-form>
305 + <div
306 + :class="{ entryTitle: true, titleBorder: logtableType ? false : true }"
307 + style="margin-top: 10px"
308 + >
309 + <div>
310 + 回执信息
311 + <el-button type="text" @click="hiddenLogTable">
312 + <svg-icon v-if="logtableType" icon-class="downIcon"></svg-icon>
313 + <svg-icon v-else icon-class="upIcon"></svg-icon>
314 + </el-button>
315 + </div>
316 + </div>
317 + <ReceiptInfoTable
318 + v-if="logtableType"
319 + :tableData="logData"
320 + :headerData="logHeaderData"
321 + />
322 + <div class="entryTitle" style="margin-top: 10px">商品明细</div>
323 + <ProductDetailTable
324 + :tableData="detailData"
325 + :bodyHeader="detialHeaderData"
326 + />
327 + <div style="margin-bottom: 20px; text-align: center"></div>
328 + </div>
329 +</template>
330 +
331 +<script>
332 +import ReceiptInfoTable from "../components/ReceiptInfoTable/index.vue";
333 +import ProductDetailTable from "../components/ProductDetailTable/index.vue";
334 +import { getPvgInfo } from "@/api/pvg.js";
335 +export default {
336 + name: "",
337 + components: { ProductDetailTable, ReceiptInfoTable },
338 + data() {
339 + return {
340 + id: null,
341 + formData: {},
342 + logData: [],
343 + logHeaderData: [
344 + {
345 + name: "回执状态",
346 + value: "rspCode",
347 + width: "200",
348 + align: "left",
349 + },
350 + {
351 + name: "状态时间",
352 + value: "rspTime",
353 + width: "400",
354 + align: "left",
355 + },
356 + {
357 + name: "回执描述",
358 + value: "rspMsg",
359 + width: "",
360 + align: "left",
361 + },
362 + ],
363 + detailData: [],
364 + detialHeaderData: [
365 + {
366 + name: "序号",
367 + value: "gnum",
368 + width: "",
369 + align: "left",
370 + },
371 + {
372 + name: "商品名称",
373 + value: "itemName",
374 + width: "",
375 + align: "left",
376 + },
377 + {
378 + name: "企业商品货号",
379 + value: "itemNo",
380 + width: "",
381 + align: "left",
382 + },
383 + {
384 + name: "商品编码",
385 + value: "gcode",
386 + width: "",
387 + align: "left",
388 + },
389 + {
390 + name: "规格型号",
391 + value: "itemDescribe",
392 + width: "",
393 + align: "left",
394 + },
395 + {
396 + name: "申报数量",
397 + value: "barCode",
398 + width: "",
399 + align: "left",
400 + },
401 + {
402 + name: "法定数量",
403 + value: "qty1",
404 + width: "",
405 + align: "left",
406 + },
407 + {
408 + name: "法定计量单位",
409 + value: "unit1",
410 + width: "",
411 + align: "left",
412 + slot: true,
413 + },
414 + {
415 + name: "第二数量",
416 + value: "qty2",
417 + width: "",
418 + align: "left",
419 + },
420 + {
421 + name: "第二计量单位",
422 + value: "unit2",
423 + width: "",
424 + align: "left",
425 + slot: true,
426 + },
427 + {
428 + name: "申报计量单位",
429 + value: "unit",
430 + width: "",
431 + align: "left",
432 + slot: true,
433 + },
434 + {
435 + name: "商品品牌",
436 + value: "brand",
437 + width: "",
438 + align: "left",
439 + },
440 + {
441 + name: "企业商品描述",
442 + value: "itemDescribe",
443 + width: "",
444 + align: "left",
445 + },
446 + {
447 + name: "单价",
448 + value: "price",
449 + width: "",
450 + align: "left",
451 + },
452 + {
453 + name: "总价",
454 + value: "totalPrice",
455 + width: "",
456 + align: "left",
457 + },
458 + {
459 + name: "币制",
460 + value: "currency",
461 + width: "",
462 + align: "left",
463 + slot: true,
464 + },
465 + {
466 + name: "条形码",
467 + value: "gmodel",
468 + width: "",
469 + align: "left",
470 + },
471 + {
472 + name: "备注",
473 + value: "note",
474 + width: "",
475 + align: "left",
476 + },
477 + ],
478 + loadings: {
479 + entryLoading: false,
480 + },
481 + logtableType: true,
482 + };
483 + },
484 + created() {
485 + if (this.$route.params.data) {
486 + this.id = this.$route.params.data.id;
487 + this.searchData();
488 + } else {
489 + this.back();
490 + }
491 + },
492 + methods: {
493 + searchData() {
494 + this.loadings.entryLoading = true;
495 + getPvgInfo({ id: this.id })
496 + .then((res) => {
497 + if (res.code === "200") {
498 + this.formData = res.data.pvgExportOrderVo;
499 + this.detailData = res.data.pvgExportOrderProductVo;
500 + this.logData = res.data.pvgExportOrderReceiptVo;
501 + this.detailData.forEach((item, idx) => {
502 + item.index = idx;
503 + });
504 + } else {
505 + this.alertWarningMsg(res.message);
506 + }
507 + this.loadings.entryLoading = false;
508 + })
509 + .catch((err) => {
510 + console.log(err);
511 + this.loadings.entryLoading = false;
512 + });
513 + },
514 + searchLogData() {},
515 + hiddenLogTable() {
516 + this.logtableType = !this.logtableType;
517 + },
518 + back() {
519 + this.$router.go(-1);
520 + },
521 + },
522 +};
523 +</script>
524 +
525 +<style scoped lang="scss">
526 +.entry {
527 + width: 100%;
528 + height: 100%;
529 + padding: 10px;
530 + background-color: #fff;
531 + overflow: auto;
532 +
533 + .entryInformation {
534 + width: 100%;
535 + height: 100%;
536 + }
537 +
538 + .entryTitle {
539 + display: flex;
540 + justify-content: space-between;
541 + font-weight: 600;
542 + font-weight: 16px;
543 + color: #000;
544 + margin-bottom: 10px;
545 + }
546 +
547 + .titleBorder {
548 + border-bottom: 1px solid #333;
549 + }
550 +}
551 +</style>
1 +<template>
2 + <div class="entrySreach">
3 + <el-form
4 + class="fedexFormStyle fedexformSreach fedexformSreachBottomBorder"
5 + ref="sreachForm"
6 + :model="sreachFormData"
7 + label-position="top"
8 + size="small"
9 + >
10 + <el-row class="row-border">
11 + <!-- 回执状态 -->
12 + <el-col :span="5">
13 + <Formitem label="回执状态" prop="rspCode">
14 + <el-select
15 + type="text"
16 + id="inputInner--rspCode"
17 + v-model="sreachFormData.rspCode"
18 + clearable
19 + placeholder=""
20 + >
21 + <el-option
22 + v-for="(
23 + item, index
24 + ) in $store.getters.dict.RECEIPT_STATUS.filter(
25 + (fItem) => fItem.itemChineseName !== '已提交'
26 + )"
27 + :key="index"
28 + :label="item.itemChineseName"
29 + :value="item.itemValue"
30 + ></el-option>
31 + </el-select>
32 + </Formitem>
33 + </el-col>
34 + <!-- 运单编号 -->
35 + <el-col :span="5">
36 + <Formitem label="物流运单编号" prop="logisticsNo">
37 + <FormTextareaInput
38 + :formData="sreachFormData"
39 + dataKey="logisticsNo"
40 + @formChange="formChange"
41 + />
42 + </Formitem>
43 + </el-col>
44 + <!-- 订单编号 -->
45 + <el-col :span="5">
46 + <Formitem label="订单编号" prop="orderNo">
47 + <el-input
48 + type="text"
49 + class="inputShadow"
50 + id="inputInner--orderNo"
51 + resize="none"
52 + v-model="sreachFormData.orderNo"
53 + clearable
54 + placeholder=""
55 + ></el-input>
56 + </Formitem>
57 + </el-col>
58 + <!-- 电商企业代码 -->
59 + <el-col :span="5">
60 + <Formitem label="电商企业代码" prop="ebccode">
61 + <el-input
62 + type="text"
63 + class="inputShadow"
64 + id="inputInner--ebccode"
65 + resize="none"
66 + v-model="sreachFormData.ebccode"
67 + clearable
68 + placeholder=""
69 + ></el-input>
70 + </Formitem>
71 + </el-col>
72 +
73 + <el-col :span="2">
74 + <el-form-item class="textCenter">
75 + <el-button
76 + class="entrySreachButton"
77 + type="text"
78 + icon="el-icon-search"
79 + :loading="loadings.searchLoading"
80 + @click="search(0)"
81 + ></el-button>
82 + </el-form-item>
83 + </el-col>
84 + <el-col :span="2">
85 + <el-form-item class="textCenter">
86 + <el-button
87 + type="text"
88 + size="small"
89 + icon="el-icon-refresh"
90 + @click="clear"
91 + >
92 + 重置
93 + </el-button>
94 + </el-form-item>
95 + </el-col>
96 + <!-- 创建时间 -->
97 + <el-col :span="5">
98 + <Formitem label="创建时间" prop="createTime" :activeType="true">
99 + <el-date-picker
100 + class="inputInner--createTime"
101 + id="inputInner--createTime"
102 + v-model="sreachFormData.createTime"
103 + type="daterange"
104 + format="yyyy-MM-dd"
105 + prefix-icon="none"
106 + value-format="yyyy-MM-dd"
107 + range-separator="至"
108 + @change="dateChange"
109 + />
110 + </Formitem>
111 + </el-col>
112 + </el-row>
113 + </el-form>
114 + <div class="optionButton">
115 + <!-- <el-button
116 + class="entrySaveButton"
117 + size="small"
118 + icon="el-icon-download"
119 + @click="downloadData"
120 + >
121 + 导出
122 + </el-button> -->
123 + </div>
124 + <Table
125 + class="fedexDetialTable fedexSreachTable"
126 + ref="entryTable"
127 + :data="tableData"
128 + :headerData="headerData"
129 + :maxHeight="tableMaxheight"
130 + :border="true"
131 + :pagination="true"
132 + :order="false"
133 + :loading="loadings.searchLoading"
134 + :page="page.pageIndex"
135 + :totalCount="page.total"
136 + @sizeChange="sizeChange"
137 + @currentChange="currentChange"
138 + @cellClick="cellClick"
139 + :selection="false"
140 + :selectFixed="false"
141 + :rowSelectDataType="false"
142 + >
143 + <template v-slot:rspCode="scope">
144 + <TablePopover
145 + ref="returnStatusPopover"
146 + dataKey="rspCode"
147 + :parentDom="$refs.entryTable"
148 + :receiptDataHead="receiptDataHead"
149 + :rowData="scope.row"
150 + :tableData="tableData"
151 + @popoverChange="popoverChange"
152 + @popoverClose="popoverClose"
153 + >
154 + <div slot="title">
155 + <span style="font-weight: 700; color: #515a6e">订单编号:</span
156 + >{{ scope.row.orderNo }}
157 + </div>
158 + <div slot="buttonLabel">
159 + {{ scope.row.rspCode }}
160 + </div>
161 + </TablePopover>
162 + </template>
163 + <template v-slot:logisticsNo="scope">
164 + <el-button type="text" @click="view(scope.row)">{{
165 + scope.row.logisticsNo
166 + }}</el-button>
167 + </template>
168 + </Table>
169 + </div>
170 +</template>
171 +
172 +<script>
173 +import { getPvgList, getPvgReceiptInfo } from "@/api/pvg.js";
174 +
175 +export default {
176 + name: "ExportBillQuery",
177 + data() {
178 + return {
179 + sreachFormData: {
180 + orderNo: "",
181 + ebccode: "",
182 + rspCode: "",
183 + createTime: [],
184 + logisticsNo: "",
185 + },
186 + originalLogisticsNo: "", // 用于保存原始的 logisticsNo 字符串
187 + page: {
188 + pageIndex: 1,
189 + pageSize: 20,
190 + total: 0,
191 + },
192 + tableData: [],
193 + headerData: [
194 + {
195 + name: "回执状态",
196 + value: "rspCode",
197 + width: "",
198 + align: "left",
199 + slot: true,
200 + },
201 + {
202 + name: "物流运单编号",
203 + value: "logisticsNo",
204 + width: "",
205 + align: "left",
206 + slot: true,
207 + },
208 + {
209 + name: "订单编号",
210 + value: "orderNo",
211 + width: "",
212 + align: "left",
213 + },
214 + {
215 + name: "订单类型",
216 + value: "ext03",
217 + width: "",
218 + align: "left",
219 + },
220 + {
221 + name: "电商企业代码",
222 + value: "ebccode",
223 + width: "",
224 + align: "left",
225 + },
226 + {
227 + name: "电商企业名称",
228 + value: "ebcname",
229 + width: "",
230 + align: "left",
231 + },
232 + {
233 + name: "物流申报企业平台代码",
234 + value: "agentName",
235 + width: "",
236 + align: "left",
237 + },
238 +
239 + {
240 + name: "创建时间",
241 + value: "createTime",
242 + width: "",
243 + align: "left",
244 + },
245 + ],
246 + receiptDataHead: [
247 + {
248 + name: "回执状态",
249 + value: "rspCode",
250 + width: "120",
251 + align: "left",
252 + },
253 + {
254 + name: "状态时间",
255 + value: "returnTime",
256 + width: "",
257 + align: "left",
258 + },
259 + {
260 + name: "回执描述",
261 + value: "returnInfo",
262 + width: "",
263 + align: "left",
264 + },
265 + ],
266 +
267 + loadings: {
268 + searchLoading: false,
269 + },
270 + textareaVisible: {
271 + formItemconsignmentCode: false,
272 + formItemconsignmentHeadCode: false,
273 + },
274 + tableMaxheight: null,
275 + };
276 + },
277 + created() {
278 + this.search(0);
279 + },
280 + mounted() {
281 + this.tableMaxheight = window.innerHeight - 300;
282 + },
283 + watch: {
284 + $route() {
285 + this.popoverClose();
286 + },
287 + },
288 + methods: {
289 + //查询
290 + search(val) {
291 + this.loadings.searchLoading = true;
292 + if (val == 0) {
293 + this.page.pageIndex = 1;
294 + }
295 + let obj = { ...this.sreachFormData }; // 使用对象展开运算符复制 sreachFormData
296 + //let obj = this.sreachFormData;
297 + obj.pageIndex = this.page.pageIndex;
298 + obj.pageSize = this.page.pageSize;
299 + obj.createTimeStart = "";
300 + obj.createTimeEnd = "";
301 + if (obj.createTime.length > 0) {
302 + obj.startCreateTime = obj.createTime[0];
303 + obj.endCreateTime = obj.createTime[1];
304 + }
305 + // 使用保存的原始 logisticsNo 字符串
306 + obj.logisticsNo = this.originalLogisticsNo;
307 + if (obj.logisticsNo != null && obj.logisticsNo != "") {
308 + obj.logisticsNo = obj.logisticsNo.split("\n");
309 + } else {
310 + obj.logisticsNo = [];
311 + }
312 + getPvgList(obj)
313 + .then((res) => {
314 + if (res.code === "200") {
315 + this.tableData = res.data.value;
316 + this.page.total = res.data.totalItems;
317 + this.tableData.forEach((item, idx) => {
318 + item.index = idx;
319 + item.returnStatusPopoverType = false;
320 + item.popoverData = [];
321 + });
322 + } else {
323 + this.alertWarningMsg(res.message);
324 + }
325 + this.loadings.searchLoading = false;
326 + })
327 + .catch((err) => {
328 + console.log(err);
329 + this.loadings.searchLoading = false;
330 + });
331 + },
332 + //重置
333 + clear() {
334 + this.sreachFormData = {
335 + orderNo: "",
336 + ebccode: "",
337 + rspCode: "",
338 + createTime: [],
339 + };
340 + this.originalLogisticsNo = "";
341 + },
342 + //导出
343 + downloadData() {},
344 + //查询详情
345 + view(val) {
346 + this.$router.push({
347 + name: "PvgOrderDetail",
348 + params: { data: val },
349 + });
350 + },
351 + popoverChange(val) {
352 + console.log(val);
353 + this.tableData = val.tableData;
354 + this.receiptApi(val.data.id, val.status)
355 + .then((res) => {
356 + val.tableData.forEach((item) => {
357 + if (item.declareId == val.data.declareId) {
358 + item.popoverData = res;
359 + }
360 + });
361 + this.tableData = val.tableData;
362 + })
363 + .finally(() => {
364 + this.$nextTick(() => {
365 + this.$store.dispatch("setLoadingState", false);
366 + this.$refs.returnStatusPopover.tableLoading = false;
367 + });
368 + });
369 + },
370 + //查询回执
371 + receiptApi(id) {
372 + return new Promise((resolve, reject) => {
373 + let obj = { id: id };
374 + getPvgReceiptInfo(obj)
375 + .then((res) => {
376 + if (res.code === "200") {
377 + resolve(res.data);
378 + } else {
379 + reject();
380 + }
381 + })
382 + .catch((err) => {
383 + console.log(err);
384 + reject();
385 + });
386 + });
387 + },
388 + popoverClose(val) {
389 + this.tableData.forEach((item) => {
390 + item.returnStatusPopoverType = false;
391 + item.popoverData = [];
392 + });
393 + this.$refs.entryTable.$refs.tables.$refs.bodyWrapper.style.overflowY =
394 + "auto";
395 + },
396 + formChange(val) {
397 + this.sreachFormData = val;
398 + this.originalLogisticsNo = val.logisticsNo; // 保存原始的 logisticsNo 字符串
399 + },
400 + //分页
401 + currentChange(val) {
402 + this.page.pageIndex = val.page;
403 + this.search(1);
404 + },
405 + sizeChange(val) {
406 + this.page.pageSize = val;
407 + this.search(1);
408 + },
409 + cellClick() {
410 + this.popoverClose();
411 + },
412 + dateChange(val) {
413 + if (val == "" || val == null) {
414 + this.$nextTick(() => {
415 + this.sreachFormData.createTime = [];
416 + });
417 + }
418 + },
419 + input() {
420 + this.$forceUpdate();
421 + },
422 + },
423 +};
424 +</script>
425 +
426 +<style scoped lang="scss">
427 +@import "@/assets/styles/variables.scss";
428 +.entrySreach {
429 + height: 100%;
430 + background-color: $menuLightBg;
431 +
432 + .entrySreachButton {
433 + display: inline-block;
434 + font-size: 20px;
435 + color: $fedexButton !important;
436 + }
437 +
438 + .optionButton {
439 + padding: 10px;
440 + text-align: right;
441 +
442 + .el-button {
443 + color: $fedexButton;
444 + border-color: $fedexButton !important;
445 +
446 + svg {
447 + display: inline-block;
448 + margin-right: 5px;
449 + fill: $fedexButton;
450 + }
451 + }
452 +
453 + .entrySaveButton:hover,
454 + .entrySaveButton:focus {
455 + color: $menuLightBg !important;
456 + background-color: $fedexButton !important;
457 + }
458 + }
459 +}
460 +
461 +.texttareaTip {
462 + position: absolute;
463 + top: 52%;
464 + right: 20px;
465 + transform: translate(0, -50%);
466 + z-index: 10;
467 +}
468 +</style>
1 +<template>
2 + <div class="entry" v-loading="loadings.entryLoading">
3 + <div class="entryTitle">
4 + <div>出口订单详情</div>
5 + <div>
6 + <el-button class="entrySaveButton" @click="back">返 回</el-button>
7 + </div>
8 + </div>
9 + <el-form
10 + class="fedexFormStyle"
11 + ref="sreachForm"
12 + :model="formData"
13 + label-position="top"
14 + disabled
15 + size="small"
16 + >
17 + <el-row :gutter="5">
18 + <!-- 订单编号 -->
19 + <el-col :span="3">
20 + <Formitem label="电商订单/海外仓订仓编号" prop="orderNo">
21 + <el-input
22 + type="text"
23 + class="inputShadow"
24 + id="inputInner--orderNo"
25 + resize="none"
26 + v-model="formData.orderNo"
27 + clearable
28 + placeholder=""
29 + ></el-input>
30 + </Formitem>
31 + </el-col>
32 + <!-- 物流申报企业平台代码 -->
33 + <el-col :span="3">
34 + <Formitem label="物流申报企业平台代码" prop="logisticsSenderCode">
35 + <el-input
36 + type="text"
37 + class="inputShadow"
38 + id="inputInner--logisticsSenderCode"
39 + resize="none"
40 + v-model="formData.logisticsSenderCode"
41 + clearable
42 + placeholder=""
43 + ></el-input>
44 + </Formitem>
45 + </el-col>
46 + <!-- 申报类型 -->
47 + <el-col :span="3">
48 + <Formitem label="申报类型" prop="appType">
49 + <el-input
50 + type="text"
51 + class="inputShadow"
52 + id="inputInner--appType"
53 + resize="none"
54 + v-model="formData.appType"
55 + clearable
56 + placeholder=""
57 + ></el-input>
58 + </Formitem>
59 + </el-col>
60 + <!-- 电商平台代码 -->
61 + <el-col :span="3">
62 + <Formitem label="电商平台代码" prop="ebpCode">
63 + <el-input
64 + type="text"
65 + class="inputShadow"
66 + id="inputInner--ebpCode"
67 + resize="none"
68 + v-model="formData.ebpCode"
69 + clearable
70 + placeholder=""
71 + ></el-input>
72 + </Formitem>
73 + </el-col>
74 + <!-- 电商平台/海外仓名称 -->
75 + <el-col :span="6">
76 + <Formitem label="电商平台/海外仓名称" prop="ebpName">
77 + <el-input
78 + type="text"
79 + class="inputShadow"
80 + id="inputInner--ebpName"
81 + resize="none"
82 + v-model="formData.ebpName"
83 + clearable
84 + placeholder=""
85 + ></el-input>
86 + </Formitem>
87 + </el-col>
88 + <!-- 电商企业代码 -->
89 + <el-col :span="3">
90 + <Formitem label="电商企业代码" prop="ebcCode">
91 + <el-input
92 + type="text"
93 + class="inputShadow"
94 + id="inputInner--ebcCode"
95 + resize="none"
96 + v-model="formData.ebcCode"
97 + clearable
98 + placeholder=""
99 + ></el-input>
100 + </Formitem>
101 + </el-col>
102 + <!-- 电商企业 -->
103 + <el-col :span="6">
104 + <Formitem label="电商企业名称" prop="ebcName">
105 + <el-input
106 + type="text"
107 + class="inputShadow"
108 + id="inputInner--ebcName"
109 + resize="none"
110 + v-model="formData.ebcName"
111 + clearable
112 + placeholder=""
113 + ></el-input>
114 + </Formitem>
115 + </el-col>
116 + </el-row>
117 + <el-row :gutter="5">
118 + <!-- 商品金额 -->
119 + <el-col :span="3">
120 + <Formitem label="商品金额" prop="totalPrice">
121 + <el-input
122 + type="text"
123 + class="inputShadow"
124 + id="inputInner--totalPrice"
125 + resize="none"
126 + v-model="formData.totalPrice"
127 + clearable
128 + placeholder=""
129 + ></el-input>
130 + </Formitem>
131 + </el-col>
132 + <!-- 运杂费 -->
133 + <el-col :span="3">
134 + <Formitem label="运杂费" prop="freight">
135 + <el-input
136 + type="text"
137 + class="inputShadow"
138 + id="inputInner--freight"
139 + resize="none"
140 + v-model="formData.freight"
141 + clearable
142 + placeholder=""
143 + ></el-input>
144 + </Formitem>
145 + </el-col>
146 + <!-- 币制 -->
147 + <el-col :span="3">
148 + <Formitem label="币制" prop="currency">
149 + <el-select
150 + type="text"
151 + id="inputInner--currency"
152 + v-model="formData.currency"
153 + clearable
154 + placeholder=""
155 + >
156 + <el-option
157 + v-for="(item, index) in $store.getters.dict.CURRENCY"
158 + :key="index"
159 + :label="item.itemChineseName"
160 + :value="item.itemValue"
161 + ></el-option>
162 + </el-select>
163 + </Formitem>
164 + </el-col>
165 + <!-- 收货人名称 -->
166 + <el-col :span="3">
167 + <Formitem label="收货人名称" prop="consignee">
168 + <el-input
169 + type="text"
170 + class="inputShadow"
171 + id="inputInner--consignee"
172 + resize="none"
173 + v-model="formData.consignee"
174 + clearable
175 + placeholder=""
176 + ></el-input>
177 + </Formitem>
178 + </el-col>
179 + <!-- 收货人电话 -->
180 + <el-col :span="3">
181 + <Formitem label="收货人电话" prop="consigneeTelephone">
182 + <el-input
183 + type="text"
184 + class="inputShadow"
185 + id="inputInner--consigneeTelephone"
186 + resize="none"
187 + v-model="formData.consigneeTelephone"
188 + clearable
189 + placeholder=""
190 + ></el-input>
191 + </Formitem>
192 + </el-col>
193 + <!-- 收货人地址 -->
194 + <el-col :span="3">
195 + <Formitem label="收货人地址" prop="consigneeAddress">
196 + <el-input
197 + type="text"
198 + class="inputShadow"
199 + id="inputInner--consigneeAddress"
200 + resize="none"
201 + v-model="formData.consigneeAddress"
202 + clearable
203 + placeholder=""
204 + ></el-input>
205 + </Formitem>
206 + </el-col>
207 + <!-- 收货人所在国 -->
208 + <el-col :span="3">
209 + <Formitem label="收货人所在国" prop="consigneeCountry">
210 + <el-input
211 + type="text"
212 + class="inputShadow"
213 + id="inputInner--consigneeCountry"
214 + resize="none"
215 + v-model="formData.consigneeCountry"
216 + clearable
217 + placeholder=""
218 + ></el-input>
219 + </Formitem>
220 + </el-col>
221 + <!-- 发货人名称 -->
222 + <el-col :span="3">
223 + <Formitem label="发货人名称" prop="shipper">
224 + <el-input
225 + type="text"
226 + class="inputShadow"
227 + id="inputInner--shipper"
228 + resize="none"
229 + v-model="formData.shipper"
230 + clearable
231 + placeholder=""
232 + ></el-input>
233 + </Formitem>
234 + </el-col>
235 + <!-- 发货人电话 -->
236 + <el-col :span="3">
237 + <Formitem label="发货人电话" prop="shipperTelephone">
238 + <el-input
239 + type="text"
240 + class="inputShadow"
241 + id="inputInner--shipperTelephone"
242 + resize="none"
243 + v-model="formData.shipperTelephone"
244 + clearable
245 + placeholder=""
246 + ></el-input>
247 + </Formitem>
248 + </el-col>
249 + <!-- 发货人地址 -->
250 + <el-col :span="3">
251 + <Formitem label="发货人地址" prop="shipperAddress">
252 + <el-input
253 + type="text"
254 + class="inputShadow"
255 + id="inputInner--shipperAddress"
256 + resize="none"
257 + v-model="formData.shipperAddress"
258 + clearable
259 + placeholder=""
260 + ></el-input>
261 + </Formitem>
262 + </el-col>
263 + <!-- 发货人所在国 -->
264 + <el-col :span="3">
265 + <Formitem label="发货人所在国" prop="shipperCountry">
266 + <el-input
267 + type="text"
268 + class="inputShadow"
269 + id="inputInner--shipperCountry"
270 + resize="none"
271 + v-model="formData.shipperCountry"
272 + clearable
273 + placeholder=""
274 + ></el-input>
275 + </Formitem>
276 + </el-col>
277 + <el-col :span="3">
278 + <Formitem label="平台编码" prop="crossOrderId">
279 + <el-input
280 + type="text"
281 + class="inputShadow"
282 + id="inputInner--crossOrderId"
283 + resize="none"
284 + v-model="formData.crossOrderId"
285 + clearable
286 + placeholder=""
287 + ></el-input>
288 + </Formitem>
289 + </el-col>
290 + <el-col :span="9">
291 + <Formitem label="备注" prop="note">
292 + <el-input
293 + type="text"
294 + class="inputShadow"
295 + id="inputInner--note"
296 + resize="none"
297 + v-model="formData.note"
298 + clearable
299 + placeholder=""
300 + ></el-input>
301 + </Formitem>
302 + </el-col>
303 + </el-row>
304 + </el-form>
305 + <div
306 + :class="{ entryTitle: true, titleBorder: logtableType ? false : true }"
307 + style="margin-top: 10px"
308 + >
309 + <div>
310 + 回执信息
311 + <el-button type="text" @click="hiddenLogTable">
312 + <svg-icon v-if="logtableType" icon-class="downIcon"></svg-icon>
313 + <svg-icon v-else icon-class="upIcon"></svg-icon>
314 + </el-button>
315 + </div>
316 + </div>
317 + <ReceiptInfoTable
318 + v-if="logtableType"
319 + :tableData="logData"
320 + :headerData="logHeaderData"
321 + />
322 + <div class="entryTitle" style="margin-top: 10px">商品明细</div>
323 + <ProductDetailTable
324 + :tableData="detailData"
325 + :bodyHeader="detialHeaderData"
326 + />
327 + <div style="margin-bottom: 20px; text-align: center"></div>
328 + </div>
329 +</template>
330 +
331 +<script>
332 +import ReceiptInfoTable from "../components/ReceiptInfoTable/index.vue";
333 +import ProductDetailTable from "../components/ProductDetailTable/index.vue";
334 +import { getPvgWaybillInfo } from "@/api/pvg.js";
335 +export default {
336 + name: "",
337 + components: { ProductDetailTable, ReceiptInfoTable },
338 + data() {
339 + return {
340 + id: null,
341 + formData: {},
342 + logData: [],
343 + logHeaderData: [
344 + {
345 + name: "回执状态",
346 + value: "rspCode",
347 + width: "200",
348 + align: "left",
349 + },
350 + {
351 + name: "状态时间",
352 + value: "rspTime",
353 + width: "400",
354 + align: "left",
355 + },
356 + {
357 + name: "回执描述",
358 + value: "rspMsg",
359 + width: "",
360 + align: "left",
361 + },
362 + ],
363 + detailData: [],
364 + detialHeaderData: [
365 + {
366 + name: "序号",
367 + value: "gnum",
368 + width: "",
369 + align: "left",
370 + },
371 + {
372 + name: "商品名称",
373 + value: "itemName",
374 + width: "",
375 + align: "left",
376 + },
377 + {
378 + name: "企业商品货号",
379 + value: "itemNo",
380 + width: "",
381 + align: "left",
382 + },
383 + {
384 + name: "商品编码",
385 + value: "gcode",
386 + width: "",
387 + align: "left",
388 + },
389 + {
390 + name: "规格型号",
391 + value: "itemDescribe",
392 + width: "",
393 + align: "left",
394 + },
395 + {
396 + name: "申报数量",
397 + value: "barCode",
398 + width: "",
399 + align: "left",
400 + },
401 + {
402 + name: "法定数量",
403 + value: "qty1",
404 + width: "",
405 + align: "left",
406 + },
407 + {
408 + name: "法定计量单位",
409 + value: "unit1",
410 + width: "",
411 + align: "left",
412 + slot: true,
413 + },
414 + {
415 + name: "第二数量",
416 + value: "qty2",
417 + width: "",
418 + align: "left",
419 + },
420 + {
421 + name: "第二计量单位",
422 + value: "unit2",
423 + width: "",
424 + align: "left",
425 + slot: true,
426 + },
427 + {
428 + name: "申报计量单位",
429 + value: "unit",
430 + width: "",
431 + align: "left",
432 + },
433 + {
434 + name: "商品品牌",
435 + value: "brand",
436 + width: "",
437 + align: "left",
438 + },
439 + {
440 + name: "企业商品描述",
441 + value: "itemDescribe",
442 + width: "",
443 + align: "left",
444 + },
445 + {
446 + name: "单价",
447 + value: "price",
448 + width: "",
449 + align: "left",
450 + },
451 + {
452 + name: "总价",
453 + value: "totalPrice",
454 + width: "",
455 + align: "left",
456 + },
457 + {
458 + name: "币制",
459 + value: "currency",
460 + width: "",
461 + align: "left",
462 + slot: true,
463 + },
464 + {
465 + name: "条形码",
466 + value: "gmodel",
467 + width: "",
468 + align: "left",
469 + },
470 + {
471 + name: "备注",
472 + value: "note",
473 + width: "",
474 + align: "left",
475 + },
476 + ],
477 + loadings: {
478 + entryLoading: false,
479 + },
480 + logtableType: true,
481 + };
482 + },
483 + created() {
484 + if (this.$route.params.data) {
485 + this.id = this.$route.params.data.id;
486 + this.searchData();
487 + } else {
488 + this.back();
489 + }
490 + },
491 + methods: {
492 + searchData() {
493 + this.loadings.entryLoading = true;
494 + getPvgWaybillInfo({ id: this.id })
495 + .then((res) => {
496 + if (res.code === "200") {
497 + this.formData = res.data.pvgExportOrderVo;
498 + this.detailData = res.data.pvgExportOrderProductVo;
499 + this.logData = res.data.pvgExportOrderReceiptVo;
500 + this.detailData.forEach((item, idx) => {
501 + item.index = idx;
502 + });
503 + } else {
504 + this.alertWarningMsg(res.message);
505 + }
506 + this.loadings.entryLoading = false;
507 + })
508 + .catch((err) => {
509 + console.log(err);
510 + this.loadings.entryLoading = false;
511 + });
512 + },
513 + searchLogData() {},
514 + hiddenLogTable() {
515 + this.logtableType = !this.logtableType;
516 + },
517 + back() {
518 + this.$router.go(-1);
519 + },
520 + },
521 +};
522 +</script>
523 +
524 +<style scoped lang="scss">
525 +.entry {
526 + width: 100%;
527 + height: 100%;
528 + padding: 10px;
529 + background-color: #fff;
530 + overflow: auto;
531 +
532 + .entryInformation {
533 + width: 100%;
534 + height: 100%;
535 + }
536 +
537 + .entryTitle {
538 + display: flex;
539 + justify-content: space-between;
540 + font-weight: 600;
541 + font-weight: 16px;
542 + color: #000;
543 + margin-bottom: 10px;
544 + }
545 +
546 + .titleBorder {
547 + border-bottom: 1px solid #333;
548 + }
549 +}
550 +</style>
1 +<template>
2 + <div class="entrySreach">
3 + <el-form
4 + class="fedexFormStyle fedexformSreach fedexformSreachBottomBorder"
5 + ref="sreachForm"
6 + :model="sreachFormData"
7 + label-position="top"
8 + size="small"
9 + >
10 + <el-row class="row-border">
11 + <!-- 回执状态 -->
12 + <el-col :span="5">
13 + <Formitem label="回执状态" prop="rspCode">
14 + <el-select
15 + type="text"
16 + id="inputInner--rspCode"
17 + v-model="sreachFormData.rspCode"
18 + clearable
19 + placeholder=""
20 + >
21 + <el-option
22 + v-for="(
23 + item, index
24 + ) in $store.getters.dict.RECEIPT_STATUS.filter(
25 + (fItem) => fItem.itemChineseName !== '已提交'
26 + )"
27 + :key="index"
28 + :label="item.itemChineseName"
29 + :value="item.itemValue"
30 + ></el-option>
31 + </el-select>
32 + </Formitem>
33 + </el-col>
34 + <!-- 运单编号 -->
35 + <el-col :span="5">
36 + <Formitem label="物流运单编号" prop="logisticsNo">
37 + <FormTextareaInput
38 + :formData="sreachFormData"
39 + dataKey="logisticsNo"
40 + @formChange="formChange"
41 + />
42 + </Formitem>
43 + </el-col>
44 + <!-- 订单编号 -->
45 + <el-col :span="5">
46 + <Formitem label="提运单号" prop="billNo">
47 + <el-input
48 + type="text"
49 + class="inputShadow"
50 + id="inputInner--billNo"
51 + resize="none"
52 + v-model="sreachFormData.billNo"
53 + clearable
54 + placeholder=""
55 + ></el-input>
56 + </Formitem>
57 + </el-col>
58 + <!-- 电商企业代码 -->
59 + <el-col :span="5">
60 + <Formitem label="订单编号" prop="orderNo">
61 + <el-input
62 + type="text"
63 + class="inputShadow"
64 + id="inputInner--orderNo"
65 + resize="none"
66 + v-model="sreachFormData.orderNo"
67 + clearable
68 + placeholder=""
69 + ></el-input>
70 + </Formitem>
71 + </el-col>
72 +
73 + <el-col :span="2">
74 + <el-form-item class="textCenter">
75 + <el-button
76 + class="entrySreachButton"
77 + type="text"
78 + icon="el-icon-search"
79 + :loading="loadings.searchLoading"
80 + @click="search(0)"
81 + ></el-button>
82 + </el-form-item>
83 + </el-col>
84 + <el-col :span="2">
85 + <el-form-item class="textCenter">
86 + <el-button
87 + type="text"
88 + size="small"
89 + icon="el-icon-refresh"
90 + @click="clear"
91 + >
92 + 重置
93 + </el-button>
94 + </el-form-item>
95 + </el-col>
96 + <!-- 创建时间 -->
97 + <el-col :span="5">
98 + <Formitem label="创建时间" prop="createTime" :activeType="true">
99 + <el-date-picker
100 + class="inputInner--createTime"
101 + id="inputInner--createTime"
102 + v-model="sreachFormData.createTime"
103 + type="daterange"
104 + format="yyyy-MM-dd"
105 + prefix-icon="none"
106 + value-format="yyyy-MM-dd"
107 + range-separator="至"
108 + @change="dateChange"
109 + />
110 + </Formitem>
111 + </el-col>
112 + </el-row>
113 + </el-form>
114 + <div class="optionButton">
115 + <!-- <el-button
116 + class="entrySaveButton"
117 + size="small"
118 + icon="el-icon-download"
119 + @click="downloadData"
120 + >
121 + 导出
122 + </el-button> -->
123 + </div>
124 + <Table
125 + class="fedexDetialTable fedexSreachTable"
126 + ref="entryTable"
127 + :data="tableData"
128 + :headerData="headerData"
129 + :maxHeight="tableMaxheight"
130 + :border="true"
131 + :pagination="true"
132 + :order="false"
133 + :loading="loadings.searchLoading"
134 + :page="page.pageIndex"
135 + :totalCount="page.total"
136 + @sizeChange="sizeChange"
137 + @currentChange="currentChange"
138 + @cellClick="cellClick"
139 + :selection="false"
140 + :selectFixed="false"
141 + :rowSelectDataType="false"
142 + >
143 + <template v-slot:rspCode="scope">
144 + <TablePopover
145 + ref="returnStatusPopover"
146 + dataKey="rspCode"
147 + :parentDom="$refs.entryTable"
148 + :receiptDataHead="receiptDataHead"
149 + :rowData="scope.row"
150 + :tableData="tableData"
151 + @popoverChange="popoverChange"
152 + @popoverClose="popoverClose"
153 + >
154 + <div slot="title">
155 + <span style="font-weight: 700; color: #515a6e">订单编号:</span
156 + >{{ scope.row.orderNo }}
157 + </div>
158 + <div slot="buttonLabel">
159 + {{ scope.row.rspCode }}
160 + </div>
161 + </TablePopover>
162 + </template>
163 + <template v-slot:logisticsNo="scope">
164 + <el-button type="text" @click="view(scope.row)">{{
165 + scope.row.logisticsNo
166 + }}</el-button>
167 + </template>
168 + </Table>
169 + </div>
170 +</template>
171 +
172 +<script>
173 +import { getPvgWaybillList, getPvgWaybillReceiptInfo } from "@/api/pvg.js";
174 +
175 +export default {
176 + name: "ExportBillQuery",
177 + data() {
178 + return {
179 + sreachFormData: {
180 + billNo: "",
181 + orderNo: "",
182 + rspCode: "",
183 + createTime: [],
184 + logisticsNo: "",
185 + },
186 + originalLogisticsNo: "", // 用于保存原始的 logisticsNo 字符串
187 + page: {
188 + pageIndex: 1,
189 + pageSize: 20,
190 + total: 0,
191 + },
192 + tableData: [],
193 + headerData: [
194 + {
195 + name: "回执状态",
196 + value: "rspCode",
197 + width: "",
198 + align: "left",
199 + slot: true,
200 + },
201 + {
202 + name: "物流运单编号",
203 + value: "logisticsNo",
204 + width: "",
205 + align: "left",
206 + slot: true,
207 + },
208 + {
209 + name: "提运单号",
210 + value: "billNo",
211 + width: "",
212 + align: "left",
213 + },
214 + {
215 + name: "订单编号",
216 + value: "orderNo",
217 + width: "",
218 + align: "left",
219 + },
220 + {
221 + name: "大包裹号",
222 + value: "totalPackageNo",
223 + width: "",
224 + align: "left",
225 + },
226 + {
227 + name: "主要货物信息",
228 + value: "mainGName",
229 + width: "",
230 + align: "left",
231 + },
232 + {
233 + name: "报送类型",
234 + value: "appType",
235 + width: "",
236 + align: "left",
237 + },
238 +
239 + {
240 + name: "创建时间",
241 + value: "createTime",
242 + width: "",
243 + align: "left",
244 + },
245 + ],
246 + receiptDataHead: [
247 + {
248 + name: "回执状态",
249 + value: "rspCode",
250 + width: "120",
251 + align: "left",
252 + },
253 + {
254 + name: "状态时间",
255 + value: "returnTime",
256 + width: "",
257 + align: "left",
258 + },
259 + {
260 + name: "回执描述",
261 + value: "returnInfo",
262 + width: "",
263 + align: "left",
264 + },
265 + ],
266 +
267 + loadings: {
268 + searchLoading: false,
269 + },
270 + textareaVisible: {
271 + formItemconsignmentCode: false,
272 + formItemconsignmentHeadCode: false,
273 + },
274 + tableMaxheight: null,
275 + };
276 + },
277 + created() {
278 + this.search(0);
279 + },
280 + mounted() {
281 + this.tableMaxheight = window.innerHeight - 300;
282 + },
283 + watch: {
284 + $route() {
285 + this.popoverClose();
286 + },
287 + },
288 + methods: {
289 + //查询
290 + search(val) {
291 + this.loadings.searchLoading = true;
292 + if (val == 0) {
293 + this.page.pageIndex = 1;
294 + }
295 + let obj = { ...this.sreachFormData }; // 使用对象展开运算符复制 sreachFormData
296 + //let obj = this.sreachFormData;
297 + obj.pageIndex = this.page.pageIndex;
298 + obj.pageSize = this.page.pageSize;
299 + obj.createTimeStart = "";
300 + obj.createTimeEnd = "";
301 + if (obj.createTime.length > 0) {
302 + obj.startCreateTime = obj.createTime[0];
303 + obj.endCreateTime = obj.createTime[1];
304 + }
305 + // 使用保存的原始 logisticsNo 字符串
306 + obj.logisticsNo = this.originalLogisticsNo;
307 + if (obj.logisticsNo != null && obj.logisticsNo != "") {
308 + obj.logisticsNo = obj.logisticsNo.split("\n");
309 + } else {
310 + obj.logisticsNo = [];
311 + }
312 + getPvgWaybillList(obj)
313 + .then((res) => {
314 + if (res.code === "200") {
315 + this.tableData = res.data.value;
316 + this.page.total = res.data.totalItems;
317 + this.tableData.forEach((item, idx) => {
318 + item.index = idx;
319 + item.returnStatusPopoverType = false;
320 + item.popoverData = [];
321 + });
322 + } else {
323 + this.alertWarningMsg(res.message);
324 + }
325 + this.loadings.searchLoading = false;
326 + })
327 + .catch((err) => {
328 + console.log(err);
329 + this.loadings.searchLoading = false;
330 + });
331 + },
332 + //重置
333 + clear() {
334 + this.sreachFormData = {
335 + billNo: "",
336 + orderNo: "",
337 + rspCode: "",
338 + createTime: [],
339 + };
340 + this.originalLogisticsNo = "";
341 + },
342 + //导出
343 + downloadData() {},
344 + //查询详情
345 + view(val) {
346 + this.$router.push({
347 + name: "PvgOrderDetail",
348 + params: { data: val },
349 + });
350 + },
351 + popoverChange(val) {
352 + console.log(val);
353 + this.tableData = val.tableData;
354 + this.receiptApi(val.data.id, val.status)
355 + .then((res) => {
356 + val.tableData.forEach((item) => {
357 + if (item.declareId == val.data.declareId) {
358 + item.popoverData = res;
359 + }
360 + });
361 + this.tableData = val.tableData;
362 + })
363 + .finally(() => {
364 + this.$nextTick(() => {
365 + this.$store.dispatch("setLoadingState", false);
366 + this.$refs.returnStatusPopover.tableLoading = false;
367 + });
368 + });
369 + },
370 + //查询回执
371 + receiptApi(id) {
372 + return new Promise((resolve, reject) => {
373 + let obj = { id: id };
374 + getPvgWaybillReceiptInfo(obj)
375 + .then((res) => {
376 + if (res.code === "200") {
377 + resolve(res.data);
378 + } else {
379 + reject();
380 + }
381 + })
382 + .catch((err) => {
383 + console.log(err);
384 + reject();
385 + });
386 + });
387 + },
388 + popoverClose(val) {
389 + this.tableData.forEach((item) => {
390 + item.returnStatusPopoverType = false;
391 + item.popoverData = [];
392 + });
393 + this.$refs.entryTable.$refs.tables.$refs.bodyWrapper.style.overflowY =
394 + "auto";
395 + },
396 + formChange(val) {
397 + this.sreachFormData = val;
398 + this.originalLogisticsNo = val.logisticsNo; // 保存原始的 logisticsNo 字符串
399 + },
400 + //分页
401 + currentChange(val) {
402 + this.page.pageIndex = val.page;
403 + this.search(1);
404 + },
405 + sizeChange(val) {
406 + this.page.pageSize = val;
407 + this.search(1);
408 + },
409 + cellClick() {
410 + this.popoverClose();
411 + },
412 + dateChange(val) {
413 + if (val == "" || val == null) {
414 + this.$nextTick(() => {
415 + this.sreachFormData.createTime = [];
416 + });
417 + }
418 + },
419 + input() {
420 + this.$forceUpdate();
421 + },
422 + },
423 +};
424 +</script>
425 +
426 +<style scoped lang="scss">
427 +@import "@/assets/styles/variables.scss";
428 +.entrySreach {
429 + height: 100%;
430 + background-color: $menuLightBg;
431 +
432 + .entrySreachButton {
433 + display: inline-block;
434 + font-size: 20px;
435 + color: $fedexButton !important;
436 + }
437 +
438 + .optionButton {
439 + padding: 10px;
440 + text-align: right;
441 +
442 + .el-button {
443 + color: $fedexButton;
444 + border-color: $fedexButton !important;
445 +
446 + svg {
447 + display: inline-block;
448 + margin-right: 5px;
449 + fill: $fedexButton;
450 + }
451 + }
452 +
453 + .entrySaveButton:hover,
454 + .entrySaveButton:focus {
455 + color: $menuLightBg !important;
456 + background-color: $fedexButton !important;
457 + }
458 + }
459 +}
460 +
461 +.texttareaTip {
462 + position: absolute;
463 + top: 52%;
464 + right: 20px;
465 + transform: translate(0, -50%);
466 + z-index: 10;
467 +}
468 +</style>