zhanbo.xu

新增hscode

...@@ -189,8 +189,8 @@ ...@@ -189,8 +189,8 @@
189 @popoverClose="popoverClose" 189 @popoverClose="popoverClose"
190 > 190 >
191 <div slot="title"> 191 <div slot="title">
192 - <span style="font-weight: 700; color: #515a6e">订单编号:</span 192 + <span style="font-weight: 700; color: #515a6e">提运单号:</span
193 - >{{ scope.row.orderno }} 193 + >{{ scope.row.billNo }}
194 </div> 194 </div>
195 <div slot="buttonLabel"> 195 <div slot="buttonLabel">
196 {{ scope.row.arrivalInReceiptStatus }} 196 {{ scope.row.arrivalInReceiptStatus }}
......
1 +<template>
2 + <el-dialog
3 + class="entryDialog classCUploadDialog"
4 + title="运抵单申报"
5 + :visible.sync="outerVisible"
6 + :show-close="false"
7 + width="720px"
8 + :close-on-click-modal="false"
9 + :destroy-on-close="true"
10 + v-loading="loadings.dialogLoading"
11 + @close="close(false)"
12 + >
13 + <div class="modelItem">
14 + <el-form
15 + class="fedexFormStyle"
16 + ref="formData"
17 + :model="formData"
18 + label-position="top"
19 + size="small"
20 + >
21 + <el-row :gutter="5">
22 + <el-col :span="8">
23 + <Formitem label="监管场所" prop="operatorCode" type="edit">
24 + <el-select
25 + type="text"
26 + id="inputInner-edit-operatorCode"
27 + v-model="formData.operatorCode"
28 + clearable
29 + filterable
30 + placeholder=""
31 + >
32 + <el-option
33 + v-for="item in operatorCode"
34 + :key="item.operatorCode"
35 + :label="item.operatorName"
36 + :value="item.operatorCode"
37 + ></el-option>
38 + </el-select>
39 + </Formitem>
40 + </el-col>
41 +
42 + <el-col :span="8">
43 + <Formitem
44 + label="境内运输工具编码"
45 + prop="domesticTrafNo"
46 + type="edit"
47 + >
48 + <el-input
49 + type="text"
50 + class="inputShadow"
51 + id="inputInner-edit-domesticTrafNo"
52 + resize="none"
53 + v-model="formData.domesticTrafNo"
54 + clearable
55 + placeholder=""
56 + ></el-input>
57 + </Formitem>
58 + </el-col>
59 + </el-row>
60 + </el-form>
61 + </div>
62 + <div class="dialogOption entrySave">
63 + <el-button
64 + class="entrySaveButton"
65 + :disabled="loadings.submitLoading"
66 + @click="submit"
67 + >确 定</el-button
68 + >
69 + <el-button class="entrySaveButton" @click="close(false)">关 闭</el-button>
70 + </div>
71 + </el-dialog>
72 +</template>
73 +
74 +<script>
75 +import {
76 + getCurrUserOperatorCode,
77 + declareUpload,
78 +} from "@/api/declareData-api.js";
79 +export default {
80 + props: {
81 + outerVisible: {
82 + type: Boolean,
83 + default: false,
84 + },
85 + selected: {
86 + type: Array,
87 + default: () => {
88 + return [];
89 + },
90 + },
91 + },
92 + watch: {
93 + outerVisible(val) {
94 + if (val) {
95 + this.loadings.dialogLoading = false;
96 + this.fetchOperatorCode();
97 + }
98 + },
99 + },
100 + data() {
101 + return {
102 + formData: {
103 + operatorCode: "",
104 + domesticTrafNo: "",
105 + },
106 +
107 + loadings: {
108 + dialogLoading: false,
109 + submitLoading: false,
110 + },
111 + loadingText: "",
112 + operatorCode: [],
113 + };
114 + },
115 + methods: {
116 + fetchOperatorCode() {
117 + getCurrUserOperatorCode().then((res) => {
118 + if (res.code === "200") {
119 + this.operatorCode = res.data;
120 + }
121 + });
122 + },
123 +
124 + //数据保存
125 + submit() {
126 + this.loadings.dialogLoading = true;
127 + let obj = {
128 + ...this.formData,
129 + declareIds: this.selected.map((item) => item.declareId),
130 + type: "arrivalIn",
131 + };
132 + this.$refs.formData.validate((valid) => {
133 + if (valid) {
134 + this.addapi(obj);
135 + } else {
136 + this.loadings.dialogLoading = false;
137 + }
138 + });
139 + },
140 + //新增
141 + addapi(val) {
142 + declareUpload(val)
143 + .then((res) => {
144 + if (res.code === "200") {
145 + this.msgSuccess(res.message);
146 + this.close(true);
147 + } else {
148 + this.alertWarningMsg(res.message);
149 + this.loadings.dialogLoading = false;
150 + }
151 + })
152 + .catch((err) => {
153 + console.log(err);
154 + this.loadings.dialogLoading = false;
155 + });
156 + },
157 +
158 + close(flag) {
159 + this.formData = {
160 + operatorCode: "",
161 + domesticTrafNo: "",
162 + };
163 + this.loadings.dialogLoading = false;
164 + this.$emit("close", flag);
165 + },
166 + },
167 +};
168 +</script>
169 +
170 +<style lang="scss" scoped>
171 +@import "@/assets/styles/variables.scss";
172 +</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 + <el-col :span="5">
12 + <Formitem label="商品编号" prop="billNo">
13 + <el-input
14 + type="text"
15 + class="inputShadow"
16 + id="inputInner--billNo"
17 + resize="none"
18 + v-model="sreachFormData.billNo"
19 + clearable
20 + placeholder=""
21 + ></el-input>
22 + </Formitem>
23 + </el-col>
24 + <el-col :span="5">
25 + <Formitem label="商品名称" prop="operatorCode">
26 + <el-input
27 + type="text"
28 + class="inputShadow"
29 + id="inputInner--operatorCode"
30 + resize="none"
31 + v-model="sreachFormData.operatorCode"
32 + clearable
33 + placeholder=""
34 + ></el-input>
35 + </Formitem>
36 + </el-col>
37 + <!-- 创建时间 -->
38 + <el-col :span="5">
39 + <Formitem label="操作时间" prop="createTime" :activeType="true">
40 + <el-date-picker
41 + class="inputInner--createTime"
42 + id="inputInner-edit-createTime"
43 + v-model="sreachFormData.createTime"
44 + type="daterange"
45 + format="yyyy-MM-dd"
46 + prefix-icon="none"
47 + value-format="yyyy-MM-dd"
48 + range-separator="至"
49 + @change="dateChange"
50 + />
51 + </Formitem>
52 + </el-col>
53 + <el-col :span="2">
54 + <el-form-item class="textCenter">
55 + <el-button
56 + class="entrySreachButton"
57 + type="text"
58 + icon="el-icon-search"
59 + :loading="loadings.sreachLoading"
60 + @click="search(0)"
61 + ></el-button>
62 + </el-form-item>
63 + </el-col>
64 + <el-col :span="2">
65 + <el-form-item class="textLeft textCenter">
66 + <el-button
67 + type="text"
68 + size="small"
69 + icon="el-icon-refresh"
70 + @click="clear"
71 + >
72 + 重置
73 + </el-button>
74 + </el-form-item>
75 + </el-col>
76 + </el-row>
77 + </el-form>
78 + <div class="optionButton">
79 + <el-button
80 + size="small"
81 + type="primary"
82 + class="dropdown-style-button"
83 + @click="addDeclare"
84 + >
85 + <svg-icon
86 + class="el-icon-user-solid"
87 + icon-class="fedexDeclareIcon"
88 + ></svg-icon>
89 + 增量数据同步
90 + </el-button>
91 + </div>
92 + <Table
93 + class="fedexDetialTable fedexSreachTable"
94 + ref="entryTable"
95 + :data="tableData"
96 + :headerData="headerData"
97 + :height="tableMaxheight + 'px'"
98 + :maxHeight="tableMaxheight + 'px'"
99 + :border="true"
100 + :pagination="true"
101 + :order="false"
102 + :loading="loadings.sreachLoading"
103 + :page="page.pageIndex"
104 + :pageSizes="[20, 30, 50, 100]"
105 + :totalCount="page.total"
106 + @sizeChange="sizeChange"
107 + @currentChange="currentChange"
108 + :selection="true"
109 + :selectFixed="false"
110 + :rowSelectDataType="false"
111 + @tableSelect="tableSelect"
112 + @tableSelectAll="tableSelectAll"
113 + :selected="selected"
114 + >
115 + <template v-slot:billNo="scope">
116 + <el-button type="text" @click.stop="linkChange(scope)">
117 + {{ scope.row.billNo }}
118 + </el-button>
119 + </template>
120 + <!-- <template v-slot:listReceiptStatus="scope">
121 + <TablePopover
122 + ref="listReceiptStatusPopover"
123 + dataKey="listReceiptStatus"
124 + idKey="declareId"
125 + :parentDom="$refs.entryTable"
126 + :receiptDataHead="receiptDataHead"
127 + :rowData="scope.row"
128 + :tableData="tableData"
129 + @popoverChange="popoverChange"
130 + @popoverClose="popoverClose"
131 + >
132 + <div slot="title">
133 + <span style="font-weight: 700; color: #515a6e">订单编号:</span
134 + >{{ scope.row.orderno }}
135 + </div>
136 + <div slot="buttonLabel">
137 + {{ scope.row.listReceiptStatus }}
138 + </div>
139 + </TablePopover>
140 + </template> -->
141 + <!-- <template v-slot:arrivalInReceiptStatus="scope">
142 + <TablePopover
143 + ref="arrivalInReceiptStatusPopover"
144 + dataKey="arrivalInReceiptStatus"
145 + idKey="declareId"
146 + :parentDom="$refs.entryTable"
147 + :receiptDataHead="receiptDataHead"
148 + :rowData="scope.row"
149 + :tableData="tableData"
150 + @popoverChange="popoverChange"
151 + @popoverClose="popoverClose"
152 + >
153 + <div slot="title">
154 + <span style="font-weight: 700; color: #515a6e">提运单号:</span
155 + >{{ scope.row.billNo }}
156 + </div>
157 + <div slot="buttonLabel">
158 + {{ scope.row.arrivalInReceiptStatus }}
159 + </div>
160 + </TablePopover>
161 + </template> -->
162 + </Table>
163 + <DialogVue
164 + :outerVisible="outerVisible"
165 + :selected="selected"
166 + @close="dialogClose"
167 + />
168 + </div>
169 +</template>
170 +
171 +<script>
172 +import { getArrivalIneList, arrivalInReceipt } from "@/api/declareData-api.js";
173 +import DialogVue from "./dialog.vue";
174 +export default {
175 + name: "SupervisePlaceManage",
176 + components: {
177 + DialogVue,
178 + },
179 + data() {
180 + return {
181 + // 控制日志弹窗的显示和隐藏
182 + allLogDataReceiptStatusPopoverType: false,
183 + // 存储选中的日志数据
184 + selectedLogRow: {},
185 + selected: [],
186 + sreachFormData: {
187 + billNo: "",
188 + operatorCode: "",
189 + operatorName: "",
190 + receiptStatus: null,
191 + receiptType: null,
192 + createTime: [],
193 + },
194 + page: {
195 + pageIndex: 1,
196 + pageSize: 20,
197 + total: 0,
198 + },
199 + tableData: [],
200 + // 序号、商品编号、商品名称、申报要素、第一法定单位、第二法定单位、更新时间
201 + headerData: [
202 + {
203 + name: "序号",
204 + value: "billNo",
205 + width: "",
206 + align: "left",
207 + slot: true,
208 + },
209 + {
210 + name: "商品编号",
211 + value: "operatorCode",
212 + width: "",
213 + align: "left",
214 + },
215 + {
216 + name: "商品名称",
217 + value: "operatorName",
218 + width: "",
219 + align: "left",
220 + },
221 + {
222 + name: "申报要素",
223 + value: "ecomEntName",
224 + width: "",
225 + align: "left",
226 + },
227 + {
228 + name: "第一法定单位",
229 + value: "createTime",
230 + width: "",
231 + align: "left",
232 + },
233 + {
234 + name: "第二法定单位",
235 + value: "listReceiptStatus",
236 + width: "",
237 + align: "left",
238 + },
239 + {
240 + name: "更新时间",
241 + value: "arrivalInReceiptStatus",
242 + width: "",
243 + align: "left",
244 + },
245 + ],
246 +
247 + loadings: {
248 + sreachLoading: false,
249 + },
250 + tableMaxheight: 500,
251 + outerVisible: false,
252 + };
253 + },
254 + created() {
255 + this.search(0);
256 + this.calculateTableHeight();
257 + },
258 + watch: {
259 + $route(val, oldval) {
260 + this.popoverClose();
261 + },
262 + },
263 +
264 + mounted() {
265 + window.addEventListener("resize", this.calculateTableHeight);
266 + },
267 + beforeDestroy() {
268 + window.removeEventListener("resize", this.calculateTableHeight);
269 + },
270 + methods: {
271 + // 运单号跳转
272 + linkChange(record) {
273 + const { billNo } = record.row;
274 + console.log(record);
275 + this.$router.push({
276 + path: "/reportingData",
277 + query: { billNo, search: true },
278 + });
279 + },
280 + tableSelect(val) {
281 + this.selected = val.selection;
282 + },
283 + tableSelectAll(val) {
284 + this.selected = val;
285 + },
286 +
287 + dateChange(val) {
288 + if (val == "" || val == null) {
289 + this.$nextTick(() => {
290 + this.sreachFormData.createTime = [];
291 + });
292 + }
293 + },
294 + popoverClose(val) {
295 + this.tableData.forEach((item) => {
296 + item.listReceiptStatusPopoverType = false;
297 + item.arrivalInReceiptStatusPopoverType = false;
298 + item.popoverData = [];
299 + });
300 + this.selectedLogRow.allLogDataReceiptStatusPopoverType = false;
301 + this.$refs.entryTable.$refs.tables.$refs.bodyWrapper.style.overflowY =
302 + "auto";
303 + },
304 + calculateTableHeight() {
305 + this.tableMaxheight = window.innerHeight - 300;
306 + },
307 + //查询回执
308 + receiptApi(billNo, type) {
309 + return new Promise((resolve, reject) => {
310 + let obj = { billNo };
311 + // if (type == "listReceiptStatus") {
312 + // getListReceipt(obj)
313 + // .then((res) => {
314 + // if (res.code === "200") {
315 + // resolve(res.data);
316 + // } else {
317 + // reject();
318 + // }
319 + // })
320 + // .catch((err) => {
321 + // console.log(err);
322 + // reject();
323 + // });
324 + // } else
325 + if (type == "arrivalInReceiptStatus") {
326 + arrivalInReceipt(obj)
327 + .then((res) => {
328 + if (res.code === "200") {
329 + resolve(res.data);
330 + } else {
331 + reject();
332 + }
333 + })
334 + .catch((err) => {
335 + console.log(err);
336 + reject();
337 + });
338 + }
339 + });
340 + },
341 + popoverChange(val) {
342 + this.tableData = val.tableData;
343 +
344 + console.log(val);
345 +
346 + this.receiptApi(val.data.billNo, val.status)
347 + .then((res) => {
348 + val.tableData.forEach((item) => {
349 + if (item.declareId == val.data.declareId) {
350 + item.popoverData = res;
351 + }
352 + });
353 + this.tableData = val.tableData;
354 + })
355 + .finally(() => {
356 + this.$nextTick(() => {
357 + this.$store.dispatch("setLoadingState", false);
358 + this.$refs.listReceiptStatusPopover.tableLoading = false; // 清单回执
359 + this.$refs.arrivalInReceiptStatusPopover.tableLoading = false; //运抵单回执
360 + });
361 + });
362 + },
363 +
364 + clear() {
365 + this.$refs.sreachForm.resetFields();
366 + //重置数据
367 + this.sreachFormData = {
368 + billNo: "",
369 + operatorCode: "",
370 + operatorName: "",
371 + receiptStatus: null,
372 + receiptType: null,
373 + createTime: [],
374 + };
375 + },
376 + //查询
377 + search(val) {
378 + this.loadings.sreachLoading = true;
379 + this.selected = [];
380 + if (val == 0) {
381 + this.page.pageIndex = 1;
382 + }
383 + let obj = this.sreachFormData;
384 + obj.pageIndex = this.page.pageIndex;
385 + obj.pageSize = this.page.pageSize;
386 + obj.startCreateTime = "";
387 + obj.endCreateTime = "";
388 + if (this.sreachFormData.createTime.length > 0) {
389 + obj.startCreateTime = obj.createTime[0];
390 + obj.endCreateTime = obj.createTime[1];
391 + }
392 + getArrivalIneList({
393 + // isOnlySearchArrivalIn: true,
394 + ...obj,
395 + })
396 + .then((res) => {
397 + if (res.code === "200") {
398 + this.tableData = res.data.value;
399 + this.page.total = res.data.totalItems;
400 + this.tableData.forEach((item, idx) => {
401 + item.index = idx;
402 + item.listReceiptStatusPopoverType = false; // 清单回执
403 + item.arrivalInReceiptStatusPopoverType = false; // 运抵单回执
404 + // item.logLoading = false;
405 + item.popoverData = [];
406 + });
407 + this.selectedLogRow.allLogDataReceiptStatusPopoverType = false;
408 + } else {
409 + this.alertWarningMsg(res.message);
410 + }
411 + this.loadings.sreachLoading = false;
412 + })
413 + .catch((err) => {
414 + console.log(err);
415 + this.loadings.sreachLoading = false;
416 + });
417 + },
418 + addDeclare() {
419 + if (this.selected.length === 0) {
420 + this.alertWarningMsg("请选择数据!");
421 + return;
422 + }
423 + this.outerVisible = true;
424 + },
425 +
426 + dialogClose(flag = false) {
427 + this.outerVisible = false;
428 + if (flag) {
429 + this.search(0);
430 + }
431 + },
432 + //分页
433 + currentChange(val) {
434 + this.page.pageIndex = val.page;
435 + this.search(1);
436 + },
437 + sizeChange(val) {
438 + this.page.pageSize = val;
439 + this.search(1);
440 + },
441 + input() {
442 + this.$forceUpdate();
443 + },
444 + },
445 +};
446 +</script>
447 +
448 +<style scoped lang="scss">
449 +@import "@/assets/styles/variables.scss";
450 +.entrySreach {
451 + height: 100%;
452 + background-color: $menuLightBg;
453 +
454 + .entrySreachButton {
455 + display: inline-block;
456 + font-size: 20px;
457 + color: $fedexButton !important;
458 + }
459 +
460 + .optionButton {
461 + padding: 10px;
462 + text-align: left;
463 +
464 + .el-button.dropdown-style-button {
465 + background-color: #ffffff !important;
466 + border: 2px solid $fedexBottonColor !important; /* 设置边框颜色 */
467 + color: $fedexBottonColor !important;
468 + font-size: 12px !important;
469 + }
470 + .el-button.dropdown-style-button:hover,
471 + .el-button.dropdown-style-button:focus {
472 + color: #ffffff !important;
473 + background-color: $fedexBottonColor !important;
474 + }
475 +
476 + .el-button {
477 + color: $fedexButton;
478 + border-color: $fedexButton !important;
479 +
480 + svg {
481 + display: inline-block;
482 + margin-right: 5px;
483 + fill: $fedexButton;
484 + }
485 + }
486 +
487 + .entrySaveButton:hover,
488 + .entrySaveButton:focus {
489 + color: $menuLightBg !important;
490 + background-color: $fedexButton !important;
491 + }
492 + }
493 +}
494 +
495 +.texttareaTip {
496 + position: absolute;
497 + top: 52%;
498 + right: 20px;
499 + transform: translate(0, -50%);
500 + z-index: 10;
501 +}
502 +</style>