zhanbo.xu

feat: 开发新增功能

...@@ -223,3 +223,23 @@ export function bathDeclareDate(data) { ...@@ -223,3 +223,23 @@ export function bathDeclareDate(data) {
223 data, 223 data,
224 }); 224 });
225 } 225 }
226 +
227 +// GET
228 +// ​/operatorPlace​/getCurrUserOperatorCode
229 +// 获取当前用户监管场所代码
230 +export function getCurrUserOperatorCode() {
231 + return request({
232 + url: "/bus-customer/operatorPlace/getCurrUserOperatorCode",
233 + method: "get",
234 + });
235 +}
236 +
237 +export function declareUpload(data) {
238 + return request({
239 + url: "/bus-customer/declareData/" + data.type,
240 + method: "post",
241 + data: {
242 + ...data,
243 + },
244 + });
245 +}
......
...@@ -5,7 +5,7 @@ import request from "@/utils/request"; ...@@ -5,7 +5,7 @@ import request from "@/utils/request";
5 // 新增监管场所 5 // 新增监管场所
6 export function addOperatorPlace(data) { 6 export function addOperatorPlace(data) {
7 return request({ 7 return request({
8 - url: "/bus-customer/operatorPlace/addOperatorPlace", 8 + url: "/bus-customer/operatorPlace/addOperatorPlace",
9 method: "post", 9 method: "post",
10 data: data, 10 data: data,
11 }); 11 });
...@@ -16,7 +16,7 @@ export function addOperatorPlace(data) { ...@@ -16,7 +16,7 @@ export function addOperatorPlace(data) {
16 // 查询监管场所列表 16 // 查询监管场所列表
17 export function getOperatorPlaceList(data) { 17 export function getOperatorPlaceList(data) {
18 return request({ 18 return request({
19 - url: "/bus-customer/operatorPlace/getOperatorPlaceList", 19 + url: "/bus-customer/operatorPlace/getOperatorPlaceList",
20 method: "post", 20 method: "post",
21 data: data, 21 data: data,
22 }); 22 });
...@@ -27,7 +27,7 @@ export function getOperatorPlaceList(data) { ...@@ -27,7 +27,7 @@ export function getOperatorPlaceList(data) {
27 // 修改监管场所 27 // 修改监管场所
28 export function updateOperatorPlace(data) { 28 export function updateOperatorPlace(data) {
29 return request({ 29 return request({
30 - url: "/bus-customer/operatorPlace/updateOperatorPlace", 30 + url: "/bus-customer/operatorPlace/updateOperatorPlace",
31 method: "post", 31 method: "post",
32 data: data, 32 data: data,
33 }); 33 });
......
1 +<template>
2 + <el-dialog
3 + class="entryDialog classCUploadDialog"
4 + title="运抵单申报"
5 + :visible.sync="outerVisible"
6 + :show-close="false"
7 + width="40%"
8 + :close-on-click-modal="false"
9 + :destroy-on-close="true"
10 + v-loading="loadings.dialogLoading"
11 + @close="close"
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"
35 + :label="item"
36 + :value="item"
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">关 闭</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();
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() {
159 + this.formData = {
160 + operatorCode: "",
161 + domesticTrafNo: "",
162 + };
163 + this.loadings.dialogLoading = false;
164 + this.$emit("close");
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 + <!-- 提运单号 -->
12 + <el-col :span="5">
13 + <Formitem label="提运单号" prop="billNo">
14 + <el-input
15 + type="text"
16 + class="inputShadow"
17 + id="inputInner--billNo"
18 + resize="none"
19 + v-model="sreachFormData.billNo"
20 + clearable
21 + placeholder=""
22 + ></el-input>
23 + </Formitem>
24 + </el-col>
25 + <!-- 物流运单编号 -->
26 + <el-col :span="5">
27 + <Formitem label="物流运单编号" prop="logisticsNo">
28 + <FormTextareaInput
29 + :formData="sreachFormData"
30 + dataKey="logisticsNo"
31 + @formChange="formChange"
32 + />
33 + </Formitem>
34 + </el-col>
35 + <!-- 订单编号 -->
36 + <el-col :span="5">
37 + <Formitem label="订单编号" prop="orderNo">
38 + <el-input
39 + type="text"
40 + class="inputShadow"
41 + id="inputInner--orderNo"
42 + resize="none"
43 + v-model="sreachFormData.orderNo"
44 + clearable
45 + placeholder=""
46 + ></el-input>
47 + </Formitem>
48 + </el-col>
49 + <!-- 创建时间 -->
50 + <el-col :span="5">
51 + <Formitem label="创建时间" prop="createTime" :activeType="true">
52 + <el-date-picker
53 + class="inputInner--createTime"
54 + id="inputInner-edit-createTime"
55 + v-model="sreachFormData.createTime"
56 + type="daterange"
57 + format="yyyy-MM-dd"
58 + prefix-icon="none"
59 + value-format="yyyy-MM-dd"
60 + range-separator="至"
61 + @change="dateChange"
62 + />
63 + </Formitem>
64 + </el-col>
65 + <el-col :span="2">
66 + <el-form-item class="textCenter">
67 + <el-button
68 + class="entrySreachButton"
69 + type="text"
70 + icon="el-icon-search"
71 + :loading="loadings.sreachLoading"
72 + @click="search(0)"
73 + ></el-button>
74 + </el-form-item>
75 + </el-col>
76 + <el-col :span="2">
77 + <el-form-item class="textLeft textCenter">
78 + <el-button
79 + type="text"
80 + size="small"
81 + icon="el-icon-refresh"
82 + @click="clear"
83 + >
84 + 重置
85 + </el-button>
86 + </el-form-item>
87 + </el-col>
88 + </el-row>
89 + <el-row class="backgroundRow">
90 + <!-- 回执状态 -->
91 + <el-col :span="5">
92 + <Formitem label="回执状态" prop="receiptStatus">
93 + <el-select
94 + type="text"
95 + id="inputInner--receiptStatus"
96 + v-model="sreachFormData.receiptStatus"
97 + clearable
98 + placeholder=""
99 + >
100 + <el-option
101 + v-for="(item, index) in $store.getters.dict.RECEIPT_STATUS"
102 + :key="index"
103 + :label="item.itemChineseName"
104 + :value="item.itemValue"
105 + ></el-option>
106 + </el-select>
107 + </Formitem>
108 + </el-col>
109 + </el-row>
110 + </el-form>
111 + <div class="optionButton">
112 + <el-button
113 + size="small"
114 + type="primary"
115 + class="dropdown-style-button"
116 + @click="addDeclare"
117 + >
118 + <svg-icon
119 + class="el-icon-user-solid"
120 + icon-class="fedexDeclareIcon"
121 + ></svg-icon>
122 + 运抵单申报
123 + </el-button>
124 + </div>
125 + <Table
126 + class="fedexDetialTable fedexSreachTable"
127 + ref="entryTable"
128 + :data="tableData"
129 + :headerData="headerData"
130 + :height="tableMaxheight + 'px'"
131 + :maxHeight="tableMaxheight + 'px'"
132 + :border="true"
133 + :pagination="true"
134 + :order="false"
135 + :loading="loadings.sreachLoading"
136 + :page="page.pageIndex"
137 + :pageSizes="[20, 30, 50, 100]"
138 + :totalCount="page.total"
139 + @sizeChange="sizeChange"
140 + @currentChange="currentChange"
141 + :selection="true"
142 + :selectFixed="false"
143 + :rowSelectDataType="false"
144 + @tableSelect="tableSelect"
145 + @tableSelectAll="tableSelectAll"
146 + :selected="selected"
147 + >
148 + <template v-slot:listReceiptStatus="scope">
149 + <TablePopover
150 + ref="listReceiptStatusPopover"
151 + dataKey="listReceiptStatus"
152 + idKey="declareId"
153 + :parentDom="$refs.entryTable"
154 + :receiptDataHead="receiptDataHead"
155 + :rowData="scope.row"
156 + :tableData="tableData"
157 + @popoverChange="popoverChange"
158 + @popoverClose="popoverClose"
159 + >
160 + <div slot="title">
161 + <span style="font-weight: 700; color: #515a6e">订单编号:</span
162 + >{{ scope.row.orderno }}
163 + </div>
164 + <div slot="buttonLabel">
165 + {{ scope.row.listReceiptStatus }}
166 + </div>
167 + </TablePopover>
168 + </template>
169 + <template v-slot:arrivalInReceiptStatus="scope">
170 + <TablePopover
171 + ref="arrivalInReceiptStatusPopover"
172 + dataKey="arrivalInReceiptStatus"
173 + idKey="declareId"
174 + :parentDom="$refs.entryTable"
175 + :receiptDataHead="receiptDataHead"
176 + :rowData="scope.row"
177 + :tableData="tableData"
178 + @popoverChange="popoverChange"
179 + @popoverClose="popoverClose"
180 + >
181 + <div slot="title">
182 + <span style="font-weight: 700; color: #515a6e">订单编号:</span
183 + >{{ scope.row.orderno }}
184 + </div>
185 + <div slot="buttonLabel">
186 + {{ scope.row.arrivalInReceiptStatus }}
187 + </div>
188 + </TablePopover>
189 + </template>
190 + </Table>
191 + <DialogVue
192 + :outerVisible="outerVisible"
193 + :selected="selected"
194 + @close="dialogClose"
195 + />
196 + </div>
197 +</template>
198 +
199 +<script>
200 +import {
201 + searchDeclareData,
202 + getListReceipt,
203 + arrivalInReceipt,
204 +} from "@/api/declareData-api.js";
205 +import DialogVue from "./dialog.vue";
206 +export default {
207 + name: "SupervisePlaceManage",
208 + components: {
209 + DialogVue,
210 + },
211 + data() {
212 + return {
213 + // 控制日志弹窗的显示和隐藏
214 + allLogDataReceiptStatusPopoverType: false,
215 + // 存储选中的日志数据
216 + selectedLogRow: {},
217 + selected: [],
218 + sreachFormData: {
219 + billNo: "",
220 + logisticsNo: "",
221 + orderNo: "",
222 + receiptStatus: null,
223 + receiptType: null,
224 + createTime: [],
225 + },
226 + page: {
227 + pageIndex: 1,
228 + pageSize: 20,
229 + total: 0,
230 + },
231 + tableData: [],
232 + headerData: [
233 + {
234 + name: "提运单号",
235 + value: "billNo",
236 + width: "",
237 + align: "left",
238 + },
239 + {
240 + name: "物流运单编号",
241 + value: "logisticsWaybillNumber",
242 + width: "",
243 + align: "left",
244 + },
245 + {
246 + name: "订单编号",
247 + value: "orderno",
248 + width: "",
249 + align: "left",
250 + },
251 + {
252 + name: "电商企业名称",
253 + value: "ecomEntName",
254 + width: "",
255 + align: "left",
256 + },
257 + {
258 + name: "创建时间",
259 + value: "createTime",
260 + width: "",
261 + align: "left",
262 + },
263 + {
264 + name: "清单回执",
265 + value: "listReceiptStatus",
266 + width: "",
267 + align: "left",
268 + slot: true,
269 + },
270 + {
271 + // release-v1.0.9
272 + name: "运抵单回执",
273 + value: "arrivalInReceiptStatus",
274 + width: "",
275 + align: "left",
276 + slot: true,
277 + },
278 + ],
279 + receiptDataHead: [
280 + {
281 + name: "回执状态",
282 + value: "receiptStatus",
283 + width: "",
284 + align: "left",
285 + },
286 + {
287 + name: "状态时间",
288 + value: "statusTime",
289 + width: "",
290 + align: "left",
291 + },
292 + {
293 + name: "回执描述",
294 + value: "receiptDescription",
295 + width: "",
296 + align: "left",
297 + },
298 + ],
299 + loadings: {
300 + sreachLoading: false,
301 + },
302 + tableMaxheight: 500,
303 + outerVisible: false,
304 + };
305 + },
306 + created() {
307 + this.search(0);
308 + this.calculateTableHeight();
309 + },
310 + watch: {
311 + $route(val, oldval) {
312 + this.popoverClose();
313 + },
314 + },
315 +
316 + mounted() {
317 + window.addEventListener("resize", this.calculateTableHeight);
318 + },
319 + beforeDestroy() {
320 + window.removeEventListener("resize", this.calculateTableHeight);
321 + },
322 + methods: {
323 + tableSelect(val) {
324 + this.selected = val.selection;
325 + },
326 + tableSelectAll(val) {
327 + this.selected = val;
328 + },
329 + formChange(val) {
330 + this.sreachFormData = val;
331 + },
332 + dateChange(val) {
333 + if (val == "" || val == null) {
334 + this.$nextTick(() => {
335 + this.sreachFormData.createTime = [];
336 + });
337 + }
338 + },
339 + popoverClose(val) {
340 + this.tableData.forEach((item) => {
341 + item.listReceiptStatusPopoverType = false;
342 + item.arrivalInReceiptStatusPopoverType = false;
343 + item.popoverData = [];
344 + });
345 + this.selectedLogRow.allLogDataReceiptStatusPopoverType = false;
346 + this.$refs.entryTable.$refs.tables.$refs.bodyWrapper.style.overflowY =
347 + "auto";
348 + },
349 + calculateTableHeight() {
350 + this.tableMaxheight = window.innerHeight - 300;
351 + },
352 + //查询回执
353 + receiptApi(id, type) {
354 + return new Promise((resolve, reject) => {
355 + let obj = { declareId: id };
356 + if (type == "listReceiptStatus") {
357 + getListReceipt(obj)
358 + .then((res) => {
359 + if (res.code === "200") {
360 + resolve(res.data);
361 + } else {
362 + reject();
363 + }
364 + })
365 + .catch((err) => {
366 + console.log(err);
367 + reject();
368 + });
369 + } else if (type == "arrivalInReceiptStatus") {
370 + arrivalInReceipt(obj)
371 + .then((res) => {
372 + if (res.code === "200") {
373 + resolve(res.data);
374 + } else {
375 + reject();
376 + }
377 + })
378 + .catch((err) => {
379 + console.log(err);
380 + reject();
381 + });
382 + }
383 + });
384 + },
385 + popoverChange(val) {
386 + this.tableData = val.tableData;
387 +
388 + console.log(val);
389 +
390 + this.receiptApi(val.data.declareId, val.status)
391 + .then((res) => {
392 + val.tableData.forEach((item) => {
393 + if (item.declareId == val.data.declareId) {
394 + item.popoverData = res;
395 + }
396 + });
397 + this.tableData = val.tableData;
398 + })
399 + .finally(() => {
400 + this.$nextTick(() => {
401 + this.$store.dispatch("setLoadingState", false);
402 + this.$refs.listReceiptStatusPopover.tableLoading = false; // 清单回执
403 + this.$refs.arrivalInReceiptStatusPopover.tableLoading = false; //运抵单回执
404 + });
405 + });
406 + },
407 +
408 + clear() {
409 + this.$refs.sreachForm.resetFields();
410 + //重置数据
411 + this.sreachFormData = {
412 + billNo: "",
413 + logisticsNo: "",
414 + orderNo: "",
415 + receiptStatus: null,
416 + receiptType: null,
417 + createTime: [],
418 + };
419 + },
420 + //查询
421 + search(val) {
422 + this.loadings.sreachLoading = true;
423 + this.selected = [];
424 + if (val == 0) {
425 + this.page.pageIndex = 1;
426 + }
427 + let obj = this.sreachFormData;
428 + obj.pageIndex = this.page.pageIndex;
429 + obj.pageSize = this.page.pageSize;
430 + obj.startCreateTime = "";
431 + obj.endCreateTime = "";
432 + if (this.sreachFormData.createTime.length > 0) {
433 + obj.startCreateTime = obj.createTime[0];
434 + obj.endCreateTime = obj.createTime[1];
435 + }
436 + searchDeclareData({
437 + isOnlySearchArrivalIn: true,
438 + ...obj,
439 + })
440 + .then((res) => {
441 + if (res.code === "200") {
442 + this.tableData = res.data.value;
443 + this.page.total = res.data.totalItems;
444 + this.tableData.forEach((item, idx) => {
445 + item.index = idx;
446 + item.listReceiptStatusPopoverType = false; // 清单回执
447 + item.arrivalInReceiptStatusPopoverType = false; // 运抵单回执
448 + // item.logLoading = false;
449 + item.popoverData = [];
450 + });
451 + this.selectedLogRow.allLogDataReceiptStatusPopoverType = false;
452 + } else {
453 + this.alertWarningMsg(res.message);
454 + }
455 + this.loadings.sreachLoading = false;
456 + })
457 + .catch((err) => {
458 + console.log(err);
459 + this.loadings.sreachLoading = false;
460 + });
461 + },
462 + addDeclare() {
463 + if (this.selected.length === 0) {
464 + this.alertWarningMsg("请选择数据!");
465 + return;
466 + }
467 + this.outerVisible = true;
468 + },
469 +
470 + dialogClose() {
471 + this.outerVisible = false;
472 + this.search(1);
473 + },
474 + //分页
475 + currentChange(val) {
476 + this.page.pageIndex = val.page;
477 + this.search(1);
478 + },
479 + sizeChange(val) {
480 + this.page.pageSize = val;
481 + this.search(1);
482 + },
483 + input() {
484 + this.$forceUpdate();
485 + },
486 + },
487 +};
488 +</script>
489 +
490 +<style scoped lang="scss">
491 +@import "@/assets/styles/variables.scss";
492 +.entrySreach {
493 + height: 100%;
494 + background-color: $menuLightBg;
495 +
496 + .entrySreachButton {
497 + display: inline-block;
498 + font-size: 20px;
499 + color: $fedexButton !important;
500 + }
501 +
502 + .optionButton {
503 + padding: 10px;
504 + text-align: left;
505 +
506 + .el-button.dropdown-style-button {
507 + background-color: #ffffff !important;
508 + border: 2px solid $fedexBottonColor !important; /* 设置边框颜色 */
509 + color: $fedexBottonColor !important;
510 + font-size: 12px !important;
511 + }
512 + .el-button.dropdown-style-button:hover,
513 + .el-button.dropdown-style-button:focus {
514 + color: #ffffff !important;
515 + background-color: $fedexBottonColor !important;
516 + }
517 +
518 + .el-button {
519 + color: $fedexButton;
520 + border-color: $fedexButton !important;
521 +
522 + svg {
523 + display: inline-block;
524 + margin-right: 5px;
525 + fill: $fedexButton;
526 + }
527 + }
528 +
529 + .entrySaveButton:hover,
530 + .entrySaveButton:focus {
531 + color: $menuLightBg !important;
532 + background-color: $fedexButton !important;
533 + }
534 + }
535 +}
536 +
537 +.texttareaTip {
538 + position: absolute;
539 + top: 52%;
540 + right: 20px;
541 + transform: translate(0, -50%);
542 + z-index: 10;
543 +}
544 +</style>
...@@ -64,6 +64,107 @@ ...@@ -64,6 +64,107 @@
64 </Formitem> 64 </Formitem>
65 </el-col> 65 </el-col>
66 </el-row> 66 </el-row>
67 + <!-- 1.0.9 -->
68 + <!-- 电商平台代码:、电商平台名称:、收发货人代码:、收发货人名称:、生产销售企业代码:、生产销售企业名称: -->
69 + <!-- 证书到期时间: -->
70 + <el-row :gutter="5">
71 + <el-col :span="8">
72 + <Formitem label="电商平台代码" prop="ebpcode" type="edit">
73 + <el-input
74 + type="text"
75 + class="inputShadow"
76 + id="inputInner-edit-ebpcode"
77 + resize="none"
78 + v-model="formData.ebpcode"
79 + clearable
80 + placeholder=""
81 + ></el-input>
82 + </Formitem>
83 + </el-col>
84 + <el-col :span="8">
85 + <Formitem label="电商平台名称" prop="ebpname" type="edit">
86 + <el-input
87 + type="text"
88 + class="inputShadow"
89 + id="inputInner-edit-ebpname"
90 + resize="none"
91 + v-model="formData.ebpname"
92 + clearable
93 + placeholder=""
94 + ></el-input>
95 + </Formitem>
96 + </el-col>
97 + <el-col :span="8">
98 + <Formitem
99 + label="收发货人代码"
100 + prop="consigneeShipperCode"
101 + type="edit"
102 + >
103 + <el-input
104 + type="text"
105 + class="inputShadow"
106 + id="inputInner-edit-consigneeShipperCode"
107 + resize="none"
108 + v-model="formData.consigneeShipperCode"
109 + clearable
110 + placeholder=""
111 + ></el-input>
112 + </Formitem>
113 + </el-col>
114 + </el-row>
115 + <el-row :gutter="5">
116 + <el-col :span="8">
117 + <Formitem
118 + label="收发货人名称"
119 + prop="consigneeShipperName"
120 + type="edit"
121 + >
122 + <el-input
123 + type="text"
124 + class="inputShadow"
125 + id="inputInner-edit-consigneeShipperName"
126 + resize="none"
127 + v-model="formData.consigneeShipperName"
128 + clearable
129 + placeholder=""
130 + ></el-input>
131 + </Formitem>
132 + </el-col>
133 + <el-col :span="8">
134 + <Formitem
135 + label="生产销售企业代码"
136 + prop="productionSaleEnterpriseCode"
137 + type="edit"
138 + >
139 + <el-input
140 + type="text"
141 + class="inputShadow"
142 + id="inputInner-edit-productionSaleEnterpriseCode"
143 + resize="none"
144 + v-model="formData.productionSaleEnterpriseCode"
145 + clearable
146 + placeholder=""
147 + ></el-input>
148 + </Formitem>
149 + </el-col>
150 + <el-col :span="8">
151 + <Formitem
152 + label="生产销售企业名称"
153 + prop="productionSaleEnterpriseName"
154 + type="edit"
155 + >
156 + <el-input
157 + type="text"
158 + class="inputShadow"
159 + id="inputInner-edit-productionSaleEnterpriseName"
160 + resize="none"
161 + v-model="formData.productionSaleEnterpriseName"
162 + clearable
163 + placeholder=""
164 + ></el-input>
165 + </Formitem>
166 + </el-col>
167 + </el-row>
67 <el-row :gutter="5"> 168 <el-row :gutter="5">
68 <!-- 订单申报方 --> 169 <!-- 订单申报方 -->
69 <el-col :span="8"> 170 <el-col :span="8">
...@@ -77,7 +178,8 @@ ...@@ -77,7 +178,8 @@
77 placeholder="" 178 placeholder=""
78 > 179 >
79 <el-option 180 <el-option
80 - v-for="(item, index) in $store.getters.dict.ORDER_DECLARATION_PARTY" 181 + v-for="(item, index) in $store.getters.dict
182 + .ORDER_DECLARATION_PARTY"
81 :key="index" 183 :key="index"
82 :label="item.itemChineseName" 184 :label="item.itemChineseName"
83 :value="item.itemValue" 185 :value="item.itemValue"
...@@ -158,7 +260,11 @@ ...@@ -158,7 +260,11 @@
158 </el-col> 260 </el-col>
159 <!-- </div>--> 261 <!-- </div>-->
160 <el-col :span="8"> 262 <el-col :span="8">
161 - <Formitem label="山电DXPID" prop="qingdaoDanyiUserDxpid" type="edit"> 263 + <Formitem
264 + label="山电DXPID"
265 + prop="qingdaoDanyiUserDxpid"
266 + type="edit"
267 + >
162 <el-input 268 <el-input
163 type="text" 269 type="text"
164 class="inputShadow" 270 class="inputShadow"
...@@ -184,7 +290,11 @@ ...@@ -184,7 +290,11 @@
184 </Formitem> 290 </Formitem>
185 </el-col> 291 </el-col>
186 <el-col :span="8"> 292 <el-col :span="8">
187 - <Formitem label="山电用户密码" prop="qingdaoUserPassword" type="edit"> 293 + <Formitem
294 + label="山电用户密码"
295 + prop="qingdaoUserPassword"
296 + type="edit"
297 + >
188 <el-input 298 <el-input
189 type="text" 299 type="text"
190 class="inputShadow" 300 class="inputShadow"
...@@ -196,7 +306,7 @@ ...@@ -196,7 +306,7 @@
196 ></el-input> 306 ></el-input>
197 </Formitem> 307 </Formitem>
198 </el-col> 308 </el-col>
199 - <el-col :span="16" style="padding-right: 5px;"> 309 + <el-col :span="16" style="padding-right: 5px">
200 <div class="uploadItem"> 310 <div class="uploadItem">
201 <div class="uploadbox"> 311 <div class="uploadbox">
202 <el-button 312 <el-button
...@@ -204,7 +314,7 @@ ...@@ -204,7 +314,7 @@
204 type="text" 314 type="text"
205 v-loading="loadings.qingdaoUploadLoading" 315 v-loading="loadings.qingdaoUploadLoading"
206 @click="qingdaoUploadFile" 316 @click="qingdaoUploadFile"
207 - >上传文件 317 + >上传文件
208 </el-button> 318 </el-button>
209 <el-upload 319 <el-upload
210 class="upload-demo" 320 class="upload-demo"
...@@ -218,7 +328,13 @@ ...@@ -218,7 +328,13 @@
218 > 328 >
219 </el-upload> 329 </el-upload>
220 </div> 330 </div>
221 - <div class="fileList" v-if="portConfig.TAO.certificateBase64 != '' || portConfig.TAO.certificateName"> 331 + <div
332 + class="fileList"
333 + v-if="
334 + portConfig.TAO.certificateBase64 != '' ||
335 + portConfig.TAO.certificateName
336 + "
337 + >
222 <div class="fileList-item"> 338 <div class="fileList-item">
223 <div class="uploadbox-fileName"> 339 <div class="uploadbox-fileName">
224 <svg-icon 340 <svg-icon
...@@ -236,9 +352,8 @@ ...@@ -236,9 +352,8 @@
236 :title="$t('entry.upload.delTip')" 352 :title="$t('entry.upload.delTip')"
237 @confirm="delQingdaoTypeDFile" 353 @confirm="delQingdaoTypeDFile"
238 > 354 >
239 - <el-button slot="reference" type="text">{{ 355 + <el-button slot="reference" type="text"
240 - $t("entry.upload.del") 356 + >{{ $t("entry.upload.del") }}
241 - }}
242 </el-button> 357 </el-button>
243 </el-popconfirm> 358 </el-popconfirm>
244 </div> 359 </div>
...@@ -258,7 +373,8 @@ ...@@ -258,7 +373,8 @@
258 placeholder="" 373 placeholder=""
259 > 374 >
260 <el-option 375 <el-option
261 - v-for="(item, index) in $store.getters.dict.METHOD_OF_SIGNATURE" 376 + v-for="(item, index) in $store.getters.dict
377 + .METHOD_OF_SIGNATURE"
262 :key="index" 378 :key="index"
263 :label="item.itemChineseName" 379 :label="item.itemChineseName"
264 :value="item.itemValue" 380 :value="item.itemValue"
...@@ -317,7 +433,11 @@ ...@@ -317,7 +433,11 @@
317 </section> 433 </section>
318 <el-row :gutter="5"> 434 <el-row :gutter="5">
319 <el-col :span="8"> 435 <el-col :span="8">
320 - <Formitem label="证书序列号" prop="certificateSerialNumber" type="edit"> 436 + <Formitem
437 + label="证书序列号"
438 + prop="certificateSerialNumber"
439 + type="edit"
440 + >
321 <el-input 441 <el-input
322 type="text" 442 type="text"
323 class="inputShadow" 443 class="inputShadow"
...@@ -330,7 +450,11 @@ ...@@ -330,7 +450,11 @@
330 </Formitem> 450 </Formitem>
331 </el-col> 451 </el-col>
332 <el-col :span="8"> 452 <el-col :span="8">
333 - <Formitem label="证书索引号" prop="certificateIndexNumber" type="edit"> 453 + <Formitem
454 + label="证书索引号"
455 + prop="certificateIndexNumber"
456 + type="edit"
457 + >
334 <el-input 458 <el-input
335 type="text" 459 type="text"
336 class="inputShadow" 460 class="inputShadow"
...@@ -342,7 +466,34 @@ ...@@ -342,7 +466,34 @@
342 ></el-input> 466 ></el-input>
343 </Formitem> 467 </Formitem>
344 </el-col> 468 </el-col>
345 - <el-col :span="16" style="padding-right: 5px;"> 469 + <el-col :span="8">
470 + <Formitem
471 + label="证书到期时间"
472 + prop="certificateExpirationTime"
473 + type="edit"
474 + >
475 + <el-date-picker
476 + id="inputInner-edit-certificateExpirationTime"
477 + v-model="formData.certificateExpirationTime"
478 + type="date"
479 + value-format="yyyy-MM-dd"
480 + clearable
481 + placeholder=""
482 + prefix-icon="none"
483 + >
484 + </el-date-picker>
485 + <!-- <el-input
486 + type="text"
487 + class="inputShadow"
488 + id="inputInner-edit-certificateExpirationTime"
489 + resize="none"
490 + v-model="formData.certificateExpirationTime"
491 + clearable
492 + placeholder=""
493 + ></el-input> -->
494 + </Formitem>
495 + </el-col>
496 + <el-col :span="16" style="padding-right: 5px">
346 <div class="uploadItem"> 497 <div class="uploadItem">
347 <div class="uploadbox"> 498 <div class="uploadbox">
348 <el-button 499 <el-button
...@@ -350,7 +501,7 @@ ...@@ -350,7 +501,7 @@
350 type="text" 501 type="text"
351 v-loading="loadings.uploadLoading" 502 v-loading="loadings.uploadLoading"
352 @click="uploadFile" 503 @click="uploadFile"
353 - >上传文件 504 + >上传文件
354 </el-button> 505 </el-button>
355 <el-upload 506 <el-upload
356 class="upload-demo" 507 class="upload-demo"
...@@ -365,7 +516,10 @@ ...@@ -365,7 +516,10 @@
365 </el-upload> 516 </el-upload>
366 </div> 517 </div>
367 <!-- 1{{ formData.file }} --> 518 <!-- 1{{ formData.file }} -->
368 - <div class="fileList" v-if="formData.file != null || formData.certificare"> 519 + <div
520 + class="fileList"
521 + v-if="formData.file != null || formData.certificare"
522 + >
369 <div class="fileList-item"> 523 <div class="fileList-item">
370 <div class="uploadbox-fileName"> 524 <div class="uploadbox-fileName">
371 <svg-icon 525 <svg-icon
...@@ -374,8 +528,16 @@ ...@@ -374,8 +528,16 @@
374 style="font-size: 18px; color: #de002e" 528 style="font-size: 18px; color: #de002e"
375 /> 529 />
376 <Tooltip 530 <Tooltip
377 - :content="formData.file ? formData.file.name : formData.certificare" 531 + :content="
378 - :refName="formData.file ? formData.file.name : formData.certificare" 532 + formData.file
533 + ? formData.file.name
534 + : formData.certificare
535 + "
536 + :refName="
537 + formData.file
538 + ? formData.file.name
539 + : formData.certificare
540 + "
379 /> 541 />
380 </div> 542 </div>
381 <div class="uploadbox-option"> 543 <div class="uploadbox-option">
...@@ -383,9 +545,8 @@ ...@@ -383,9 +545,8 @@
383 :title="$t('entry.upload.delTip')" 545 :title="$t('entry.upload.delTip')"
384 @confirm="delTypeDFile" 546 @confirm="delTypeDFile"
385 > 547 >
386 - <el-button slot="reference" type="text">{{ 548 + <el-button slot="reference" type="text"
387 - $t("entry.upload.del") 549 + >{{ $t("entry.upload.del") }}
388 - }}
389 </el-button> 550 </el-button>
390 </el-popconfirm> 551 </el-popconfirm>
391 </div> 552 </div>
...@@ -393,7 +554,6 @@ ...@@ -393,7 +554,6 @@
393 </div> 554 </div>
394 </div> 555 </div>
395 </el-col> 556 </el-col>
396 -
397 </el-row> 557 </el-row>
398 </el-form> 558 </el-form>
399 </div> 559 </div>
...@@ -402,16 +562,14 @@ ...@@ -402,16 +562,14 @@
402 class="entrySaveButton" 562 class="entrySaveButton"
403 :disabled="loadings.submitLoading" 563 :disabled="loadings.submitLoading"
404 @click="submit" 564 @click="submit"
405 - >确 定 565 + >确 定
406 - </el-button 566 + </el-button>
407 - >
408 <el-button 567 <el-button
409 class="entrySaveButton" 568 class="entrySaveButton"
410 :disabled="loadings.uploadLoading" 569 :disabled="loadings.uploadLoading"
411 @click="close" 570 @click="close"
412 - >关 闭 571 + >关 闭
413 - </el-button 572 + </el-button>
414 - >
415 </div> 573 </div>
416 </el-dialog> 574 </el-dialog>
417 </template> 575 </template>
...@@ -423,7 +581,7 @@ import { ...@@ -423,7 +581,7 @@ import {
423 uploadQingdaoCertificate, 581 uploadQingdaoCertificate,
424 updateCustomerData, 582 updateCustomerData,
425 delCertificate, 583 delCertificate,
426 - delQingdaoCertificate 584 + delQingdaoCertificate,
427 } from "@/api/system/customer-ai.js"; 585 } from "@/api/system/customer-ai.js";
428 586
429 export default { 587 export default {
...@@ -444,7 +602,7 @@ export default { ...@@ -444,7 +602,7 @@ export default {
444 type: Object, 602 type: Object,
445 default: null, 603 default: null,
446 }, 604 },
447 - portCodeList: [] 605 + portCodeList: [],
448 // dict: { 606 // dict: {
449 // type: Array, 607 // type: Array,
450 // default() { 608 // default() {
...@@ -457,20 +615,20 @@ export default { ...@@ -457,20 +615,20 @@ export default {
457 //配置模板 615 //配置模板
458 portConfig: { 616 portConfig: {
459 PEK: { 617 PEK: {
460 - dxpId: '', 618 + dxpId: "",
461 - signMethod:"CIPHER_MACHINE" 619 + signMethod: "CIPHER_MACHINE",
462 }, 620 },
463 TAO: { 621 TAO: {
464 - dxpId: '', 622 + dxpId: "",
465 - userId: '', 623 + userId: "",
466 - key: '', 624 + key: "",
467 - danyiDxpId: '', 625 + danyiDxpId: "",
468 - userName: '', 626 + userName: "",
469 - password: '', 627 + password: "",
470 - certificateName: '', 628 + certificateName: "",
471 - certificateBase64: '', 629 + certificateBase64: "",
472 - methodOfSignature: '' 630 + methodOfSignature: "",
473 - } 631 + },
474 }, 632 },
475 choosePortCode: [], 633 choosePortCode: [],
476 formData: { 634 formData: {
...@@ -485,6 +643,13 @@ export default { ...@@ -485,6 +643,13 @@ export default {
485 certificateSerialNumber: "", 643 certificateSerialNumber: "",
486 certificateIndexNumber: "", 644 certificateIndexNumber: "",
487 file: null, 645 file: null,
646 + certificateExpirationTime: "", //证书到期时间
647 + ebpcode: "", //电商平台代码
648 + ebpname: "", //电商平台名称
649 + consigneeShipperCode: "", //收发货人代码
650 + consigneeShipperName: "", //收发货人名称
651 + productionSaleEnterpriseCode: "", //生产销售企业代码
652 + productionSaleEnterpriseName: "", //生产销售企业名称
488 }, 653 },
489 rules: { 654 rules: {
490 ecomEntCode: [ 655 ecomEntCode: [
...@@ -500,7 +665,6 @@ export default { ...@@ -500,7 +665,6 @@ export default {
500 trigger: "blur", 665 trigger: "blur",
501 message: "电商企业名称不能为空!", 666 message: "电商企业名称不能为空!",
502 }, 667 },
503 -
504 ], 668 ],
505 orderRequester: [ 669 orderRequester: [
506 { 670 {
...@@ -582,10 +746,10 @@ export default { ...@@ -582,10 +746,10 @@ export default {
582 } 746 }
583 } 747 }
584 if (this.active?.config != null) { 748 if (this.active?.config != null) {
585 - this.choosePortCode = Object.keys(this.active.config) 749 + this.choosePortCode = Object.keys(this.active.config);
586 - Object.keys(this.active.config).forEach(key => { 750 + Object.keys(this.active.config).forEach((key) => {
587 - this.portConfig[key] = this.active.config[key] 751 + this.portConfig[key] = this.active.config[key];
588 - }) 752 + });
589 } 753 }
590 }, 754 },
591 // type(newVal) { 755 // type(newVal) {
...@@ -664,8 +828,7 @@ export default { ...@@ -664,8 +828,7 @@ export default {
664 // qingdaoBeforeUpload(val) { 828 // qingdaoBeforeUpload(val) {
665 // return true; 829 // return true;
666 // }, 830 // },
667 - fileUpload({file}) { 831 + fileUpload({ file }) {
668 -
669 const reader = new FileReader(); 832 const reader = new FileReader();
670 reader.readAsDataURL(file); 833 reader.readAsDataURL(file);
671 reader.onload = (e) => { 834 reader.onload = (e) => {
...@@ -676,24 +839,21 @@ export default { ...@@ -676,24 +839,21 @@ export default {
676 }; 839 };
677 this.formData.file = obj; 840 this.formData.file = obj;
678 }; 841 };
679 -
680 }, 842 },
681 - qingdaoFileUpload({file}) { 843 + qingdaoFileUpload({ file }) {
682 -
683 const reader = new FileReader(); 844 const reader = new FileReader();
684 reader.readAsDataURL(file); 845 reader.readAsDataURL(file);
685 console.log(file); 846 console.log(file);
686 reader.onload = (e) => { 847 reader.onload = (e) => {
687 console.log(e); 848 console.log(e);
688 - this.portConfig.TAO.certificateName = file.name 849 + this.portConfig.TAO.certificateName = file.name;
689 - this.portConfig.TAO.certificateBase64 = e.target.result 850 + this.portConfig.TAO.certificateBase64 = e.target.result;
690 // let obj = { 851 // let obj = {
691 // file: e.target.result, 852 // file: e.target.result,
692 // name: file.name, 853 // name: file.name,
693 // }; 854 // };
694 // this.formData.qingdaoFile = obj; 855 // this.formData.qingdaoFile = obj;
695 }; 856 };
696 -
697 }, 857 },
698 // fileChange(val) { 858 // fileChange(val) {
699 // }, 859 // },
...@@ -724,18 +884,20 @@ export default { ...@@ -724,18 +884,20 @@ export default {
724 //删除证书 884 //删除证书
725 delCertificate() { 885 delCertificate() {
726 if (this.formData.id && this.formData.certificare) { 886 if (this.formData.id && this.formData.certificare) {
727 - delCertificate(this.formData.id, this.formData.certificare).then((res) => { 887 + delCertificate(this.formData.id, this.formData.certificare)
728 - if (res.code == 200) { 888 + .then((res) => {
729 - this.formData.file = null; 889 + if (res.code == 200) {
730 - this.formData.certificare = ""; 890 + this.formData.file = null;
731 - // this.msgSuccess("证书删除成功!"); 891 + this.formData.certificare = "";
732 - } else { 892 + // this.msgSuccess("证书删除成功!");
893 + } else {
894 + this.alertErrorMsg("证书删除失败,请联系管理员!");
895 + }
896 + })
897 + .catch((err) => {
898 + console.log(err);
733 this.alertErrorMsg("证书删除失败,请联系管理员!"); 899 this.alertErrorMsg("证书删除失败,请联系管理员!");
734 - } 900 + });
735 - }).catch((err) => {
736 - console.log(err);
737 - this.alertErrorMsg("证书删除失败,请联系管理员!");
738 - })
739 } else { 901 } else {
740 this.formData.file = null; 902 this.formData.file = null;
741 this.formData.certificare = ""; 903 this.formData.certificare = "";
...@@ -767,7 +929,7 @@ export default { ...@@ -767,7 +929,7 @@ export default {
767 //查询用户信息详情 929 //查询用户信息详情
768 searchUserData(id) { 930 searchUserData(id) {
769 this.loadings.dialogLoading = true; 931 this.loadings.dialogLoading = true;
770 - getUserDetailData({id: id}) 932 + getUserDetailData({ id: id })
771 .then((res) => { 933 .then((res) => {
772 if (res.code === "200") { 934 if (res.code === "200") {
773 this.formData = res.data; 935 this.formData = res.data;
...@@ -783,7 +945,7 @@ export default { ...@@ -783,7 +945,7 @@ export default {
783 }, 945 },
784 //数据保存 946 //数据保存
785 submit() { 947 submit() {
786 - this.handlePortConfigJson() 948 + this.handlePortConfigJson();
787 this.loadings.dialogLoading = true; 949 this.loadings.dialogLoading = true;
788 let obj = {}; 950 let obj = {};
789 // this.formData.checkboxState = this.checkboxState(); 951 // this.formData.checkboxState = this.checkboxState();
...@@ -800,7 +962,7 @@ export default { ...@@ -800,7 +962,7 @@ export default {
800 this.$refs.formData.validate((valid) => { 962 this.$refs.formData.validate((valid) => {
801 if (valid) { 963 if (valid) {
802 obj = this.formData; 964 obj = this.formData;
803 - this.clearData(); //清除值 965 + this.clearData(); //清除值
804 this.updateapi(obj); 966 this.updateapi(obj);
805 if (this.formData.orderRequester == 1) { 967 if (this.formData.orderRequester == 1) {
806 this.delCertificate(); //删除证书 968 this.delCertificate(); //删除证书
...@@ -812,24 +974,37 @@ export default { ...@@ -812,24 +974,37 @@ export default {
812 } 974 }
813 }, 975 },
814 handlePortConfigJson() { 976 handlePortConfigJson() {
815 - this.formData.config = {} 977 + this.formData.config = {};
816 - this.choosePortCode.forEach(portCode => { 978 + this.choosePortCode.forEach((portCode) => {
817 - this.formData.config[portCode] = JSON.stringify(this.portConfig[portCode]) 979 + this.formData.config[portCode] = JSON.stringify(
818 - }) 980 + this.portConfig[portCode]
981 + );
982 + });
819 }, 983 },
820 addApi(val) { 984 addApi(val) {
821 addCustomerData(val) 985 addCustomerData(val)
822 .then((res) => { 986 .then((res) => {
823 if (res.code === "200") { 987 if (res.code === "200") {
824 if (this.formData.file) { 988 if (this.formData.file) {
825 - this.uploadCertificate(val.ecomEntCode, this.base64ConvertFile(this.formData.file.file, this.formData.file.name)); 989 + this.uploadCertificate(
990 + val.ecomEntCode,
991 + this.base64ConvertFile(
992 + this.formData.file.file,
993 + this.formData.file.name
994 + )
995 + );
826 } 996 }
827 if (this.formData.qingdaoFile) { 997 if (this.formData.qingdaoFile) {
828 - this.uploadQingdaoCertificate(val.ecomEntCode, this.base64ConvertFile(this.formData.qingdaoFile.file, this.formData.qingdaoFile.name)); 998 + this.uploadQingdaoCertificate(
999 + val.ecomEntCode,
1000 + this.base64ConvertFile(
1001 + this.formData.qingdaoFile.file,
1002 + this.formData.qingdaoFile.name
1003 + )
1004 + );
829 } 1005 }
830 this.msgSuccess("客户添加成功!"); 1006 this.msgSuccess("客户添加成功!");
831 this.close(); 1007 this.close();
832 -
833 } else { 1008 } else {
834 this.alertWarningMsg(res.message); 1009 this.alertWarningMsg(res.message);
835 this.loadings.dialogLoading = false; 1010 this.loadings.dialogLoading = false;
...@@ -841,7 +1016,6 @@ export default { ...@@ -841,7 +1016,6 @@ export default {
841 }); 1016 });
842 }, 1017 },
843 uploadCertificate(ecomEntCode, file) { 1018 uploadCertificate(ecomEntCode, file) {
844 -
845 uploadCertificate(ecomEntCode, file) 1019 uploadCertificate(ecomEntCode, file)
846 .then((uploadRes) => { 1020 .then((uploadRes) => {
847 if (uploadRes.code === "200") { 1021 if (uploadRes.code === "200") {
...@@ -859,7 +1033,6 @@ export default { ...@@ -859,7 +1033,6 @@ export default {
859 }, 1033 },
860 1034
861 uploadQingdaoCertificate(ecomEntCode, file) { 1035 uploadQingdaoCertificate(ecomEntCode, file) {
862 -
863 uploadQingdaoCertificate(ecomEntCode, file) 1036 uploadQingdaoCertificate(ecomEntCode, file)
864 .then((uploadRes) => { 1037 .then((uploadRes) => {
865 if (uploadRes.code === "200") { 1038 if (uploadRes.code === "200") {
...@@ -883,14 +1056,25 @@ export default { ...@@ -883,14 +1056,25 @@ export default {
883 // this.msgSuccess(res.message); 1056 // this.msgSuccess(res.message);
884 // this.close(); 1057 // this.close();
885 if (this.formData.file) { 1058 if (this.formData.file) {
886 - this.uploadCertificate(val.ecomEntCode, this.base64ConvertFile(this.formData.file.file, this.formData.file.name)); 1059 + this.uploadCertificate(
1060 + val.ecomEntCode,
1061 + this.base64ConvertFile(
1062 + this.formData.file.file,
1063 + this.formData.file.name
1064 + )
1065 + );
887 } 1066 }
888 if (this.formData.qingdaoFile) { 1067 if (this.formData.qingdaoFile) {
889 - this.uploadQingdaoCertificate(val.ecomEntCode, this.base64ConvertFile(this.formData.qingdaoFile.file, this.formData.qingdaoFile.name)); 1068 + this.uploadQingdaoCertificate(
1069 + val.ecomEntCode,
1070 + this.base64ConvertFile(
1071 + this.formData.qingdaoFile.file,
1072 + this.formData.qingdaoFile.name
1073 + )
1074 + );
890 } 1075 }
891 this.msgSuccess("客户修改成功!"); 1076 this.msgSuccess("客户修改成功!");
892 this.close(); 1077 this.close();
893 -
894 } else { 1078 } else {
895 this.alertWarningMsg(res.message); 1079 this.alertWarningMsg(res.message);
896 this.loadings.dialogLoading = false; 1080 this.loadings.dialogLoading = false;
...@@ -927,19 +1111,26 @@ export default { ...@@ -927,19 +1111,26 @@ export default {
927 certificateSerialNumber: "", 1111 certificateSerialNumber: "",
928 certificateIndexNumber: "", 1112 certificateIndexNumber: "",
929 file: null, 1113 file: null,
1114 + certificateExpirationTime: "", //证书到期时间
1115 + ebpcode: "", //电商平台代码
1116 + ebpname: "", //电商平台名称
1117 + consigneeShipperCode: "", //收发货人代码
1118 + consigneeShipperName: "", //收发货人名称
1119 + productionSaleEnterpriseCode: "", //生产销售企业代码
1120 + productionSaleEnterpriseName: "", //生产销售企业名称
930 }; 1121 };
931 - this.choosePortCode = [] 1122 + this.choosePortCode = [];
932 - this.clearPortConfig(this.portConfig) 1123 + this.clearPortConfig(this.portConfig);
933 // this.handleRemove(); 1124 // this.handleRemove();
934 this.$emit("close"); 1125 this.$emit("close");
935 }, 1126 },
936 clearPortConfig(obj) { 1127 clearPortConfig(obj) {
937 for (let key in obj) { 1128 for (let key in obj) {
938 if (obj.hasOwnProperty(key)) { 1129 if (obj.hasOwnProperty(key)) {
939 - if (typeof obj[key] === 'object' && obj[key] !== null) { 1130 + if (typeof obj[key] === "object" && obj[key] !== null) {
940 - this.clearPortConfig(obj[key]); // 递归处理嵌套对象 1131 + this.clearPortConfig(obj[key]); // 递归处理嵌套对象
941 } else { 1132 } else {
942 - obj[key] = ''; // 设置为一个空字符串 1133 + obj[key] = ""; // 设置为一个空字符串
943 } 1134 }
944 } 1135 }
945 } 1136 }
...@@ -957,7 +1148,7 @@ export default { ...@@ -957,7 +1148,7 @@ export default {
957 // this.formData.file = null; 1148 // this.formData.file = null;
958 // // this.delCertificate(); //删除证书 1149 // // this.delCertificate(); //删除证书
959 // } 1150 // }
960 - } 1151 + },
961 }, 1152 },
962 }; 1153 };
963 </script> 1154 </script>
......
...@@ -126,7 +126,8 @@ ...@@ -126,7 +126,8 @@
126 ref="entryTable" 126 ref="entryTable"
127 :data="tableData" 127 :data="tableData"
128 :headerData="headerData" 128 :headerData="headerData"
129 - :maxHeight="tableMaxheight" 129 + :height="tableMaxheight + 'px'"
130 + :maxHeight="tableMaxheight + 'px'"
130 :border="true" 131 :border="true"
131 :pagination="true" 132 :pagination="true"
132 :order="true" 133 :order="true"
...@@ -144,7 +145,12 @@ ...@@ -144,7 +145,12 @@
144 <template slot="optionColumn"> 145 <template slot="optionColumn">
145 <el-table-column align="left" label="操作" width="150"> 146 <el-table-column align="left" label="操作" width="150">
146 <template slot-scope="scope"> 147 <template slot-scope="scope">
147 - <el-button type="text" @click="downloadFile(scope.row)" :disabled="!scope.row.certificare">下载证书</el-button> 148 + <el-button
149 + type="text"
150 + @click="downloadFile(scope.row)"
151 + :disabled="!scope.row.certificare"
152 + >下载证书</el-button
153 + >
148 <!-- <el-button type="text" @click="downloadQingdaoFile(scope.row)" :disabled="!scope.row.certificare">下载青岛证书</el-button> --> 154 <!-- <el-button type="text" @click="downloadQingdaoFile(scope.row)" :disabled="!scope.row.certificare">下载青岛证书</el-button> -->
149 <el-button type="text" @click="update(scope.row)"> 修改 </el-button> 155 <el-button type="text" @click="update(scope.row)"> 修改 </el-button>
150 </template> 156 </template>
...@@ -163,7 +169,11 @@ ...@@ -163,7 +169,11 @@
163 </template> 169 </template>
164 170
165 <script> 171 <script>
166 -import { getCustomerList,downloadCertificate, downloadQingdaoCertificate } from "@/api/system/customer-ai.js"; 172 +import {
173 + getCustomerList,
174 + downloadCertificate,
175 + downloadQingdaoCertificate,
176 +} from "@/api/system/customer-ai.js";
167 import { getPortList } from "@/api/system/user.js"; 177 import { getPortList } from "@/api/system/user.js";
168 import DialogVue from "./dialog.vue"; 178 import DialogVue from "./dialog.vue";
169 export default { 179 export default {
...@@ -249,8 +259,8 @@ export default { ...@@ -249,8 +259,8 @@ export default {
249 align: "left", 259 align: "left",
250 }, 260 },
251 ], 261 ],
252 - dict:{ 262 + dict: {
253 - port:[] 263 + port: [],
254 }, 264 },
255 // dict: { 265 // dict: {
256 // orderRequester: [ 266 // orderRequester: [
...@@ -261,7 +271,7 @@ export default { ...@@ -261,7 +271,7 @@ export default {
261 loadings: { 271 loadings: {
262 searchLoading: false, 272 searchLoading: false,
263 }, 273 },
264 - tableMaxheight: null, 274 + tableMaxheight: 500,
265 outerVisible: false, 275 outerVisible: false,
266 dialogTitle: "", 276 dialogTitle: "",
267 editType: "", 277 editType: "",
...@@ -270,18 +280,25 @@ export default { ...@@ -270,18 +280,25 @@ export default {
270 created() { 280 created() {
271 this.searchPortDictData(); 281 this.searchPortDictData();
272 this.search(0); 282 this.search(0);
283 + this.calculateTableHeight();
273 }, 284 },
274 mounted() { 285 mounted() {
275 - this.tableMaxheight = window.innerHeight - 300; 286 + window.addEventListener("resize", this.calculateTableHeight);
287 + },
288 + beforeDestroy() {
289 + window.removeEventListener("resize", this.calculateTableHeight);
276 }, 290 },
277 methods: { 291 methods: {
292 + calculateTableHeight() {
293 + this.tableMaxheight = window.innerHeight - 300;
294 + },
278 //查询 295 //查询
279 search(val) { 296 search(val) {
280 this.loadings.searchLoading = true; 297 this.loadings.searchLoading = true;
281 if (val == 0) { 298 if (val == 0) {
282 this.page.pageIndex = 1; 299 this.page.pageIndex = 1;
283 } 300 }
284 - let obj = {...this.sreachFormData}; 301 + let obj = { ...this.sreachFormData };
285 obj.pageIndex = this.page.pageIndex; 302 obj.pageIndex = this.page.pageIndex;
286 obj.pageSize = this.page.pageSize; 303 obj.pageSize = this.page.pageSize;
287 obj.endCreationTime = ""; 304 obj.endCreationTime = "";
...@@ -325,21 +342,21 @@ export default { ...@@ -325,21 +342,21 @@ export default {
325 }, 342 },
326 //下载证书 343 //下载证书
327 downloadFile(val) { 344 downloadFile(val) {
328 - downloadCertificate(val.id,val.certificare).then((res)=>{ 345 + downloadCertificate(val.id, val.certificare)
329 - 346 + .then((res) => {})
330 - }).catch((err)=>{ 347 + .catch((err) => {
331 - console.log(err); 348 + console.log(err);
332 - this.alertErrorMsg("证书下载失败,请联系管理员!"); 349 + this.alertErrorMsg("证书下载失败,请联系管理员!");
333 - }) 350 + });
334 }, 351 },
335 //下载青岛证书 352 //下载青岛证书
336 downloadQingdaoFile(val) { 353 downloadQingdaoFile(val) {
337 - downloadQingdaoCertificate(val.id,val.certificare).then((res)=>{ 354 + downloadQingdaoCertificate(val.id, val.certificare)
338 - 355 + .then((res) => {})
339 - }).catch((err)=>{ 356 + .catch((err) => {
340 - console.log(err); 357 + console.log(err);
341 - this.alertErrorMsg("证书下载失败,请联系管理员!"); 358 + this.alertErrorMsg("证书下载失败,请联系管理员!");
342 - }) 359 + });
343 }, 360 },
344 addCustomer() { 361 addCustomer() {
345 this.dialogTitle = "新增客户"; 362 this.dialogTitle = "新增客户";
...@@ -347,11 +364,11 @@ export default { ...@@ -347,11 +364,11 @@ export default {
347 this.outerVisible = true; 364 this.outerVisible = true;
348 }, 365 },
349 update(val) { 366 update(val) {
350 - let data={ 367 + let data = {
351 ...val, 368 ...val,
352 - file:null, 369 + file: null,
353 - qingdaoFile:null 370 + qingdaoFile: null,
354 - } 371 + };
355 this.dialogTitle = "修改客户"; 372 this.dialogTitle = "修改客户";
356 this.editType = "update"; 373 this.editType = "update";
357 this.outerVisible = true; 374 this.outerVisible = true;
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
4 title="新增模拟回执管理" 4 title="新增模拟回执管理"
5 :visible.sync="outerVisible" 5 :visible.sync="outerVisible"
6 :show-close="false" 6 :show-close="false"
7 - width="40%" 7 + width="45%"
8 :close-on-click-modal="false" 8 :close-on-click-modal="false"
9 :destroy-on-close="true" 9 :destroy-on-close="true"
10 v-loading="loadings.dialogLoading" 10 v-loading="loadings.dialogLoading"
...@@ -287,7 +287,7 @@ export default { ...@@ -287,7 +287,7 @@ export default {
287 .order-select-warp-ol { 287 .order-select-warp-ol {
288 ::v-deep { 288 ::v-deep {
289 .el-select__input { 289 .el-select__input {
290 - width: 40px !important; 290 + width: 35px !important;
291 padding-top: 0 !important; 291 padding-top: 0 !important;
292 } 292 }
293 } 293 }
......
...@@ -182,7 +182,7 @@ ...@@ -182,7 +182,7 @@
182 </el-dropdown-menu> 182 </el-dropdown-menu>
183 </el-dropdown> 183 </el-dropdown>
184 <!-- 运抵单申报按钮 --> 184 <!-- 运抵单申报按钮 -->
185 - <el-button 185 + <!-- <el-button
186 size="small" 186 size="small"
187 type="primary" 187 type="primary"
188 class="dropdown-style-button" 188 class="dropdown-style-button"
...@@ -194,7 +194,7 @@ ...@@ -194,7 +194,7 @@
194 icon-class="fedexDeclareIcon" 194 icon-class="fedexDeclareIcon"
195 ></svg-icon> 195 ></svg-icon>
196 运抵单申报 196 运抵单申报
197 - </el-button> 197 + </el-button> -->
198 <!-- 离境单申报按钮 --> 198 <!-- 离境单申报按钮 -->
199 <el-button 199 <el-button
200 size="small" 200 size="small"
...@@ -202,7 +202,11 @@ ...@@ -202,7 +202,11 @@
202 class="dropdown-style-button" 202 class="dropdown-style-button"
203 :loading="loadings.departureLoading" 203 :loading="loadings.departureLoading"
204 @click=" 204 @click="
205 - declareData('departureLoading', '离境单申报', 'logisticsDeparture') 205 + declareDataTime(
206 + 'departureLoading',
207 + '离境单申报',
208 + 'logisticsDeparture'
209 + )
206 " 210 "
207 > 211 >
208 <svg-icon 212 <svg-icon
...@@ -243,9 +247,6 @@ ...@@ -243,9 +247,6 @@
243 <span style="font-weight: 700; color: #515a6e">订单编号:</span> 247 <span style="font-weight: 700; color: #515a6e">订单编号:</span>
244 {{ selectedLogRow.orderno }} 248 {{ selectedLogRow.orderno }}
245 </div> 249 </div>
246 - <!-- <div slot="buttonLabel">
247 - {{ selectedLogRow.allLogDataReceiptStatusPopoverType }}
248 - </div> -->
249 </TablePopover> 250 </TablePopover>
250 </section> 251 </section>
251 <Table 252 <Table
...@@ -436,6 +437,11 @@ ...@@ -436,6 +437,11 @@
436 :showDialog="batchModifyVisible" 437 :showDialog="batchModifyVisible"
437 @cancelBatchModify="cancelBatchModify" 438 @cancelBatchModify="cancelBatchModify"
438 /> 439 />
440 + <TimeDialog
441 + :timeVisible="timeVisible"
442 + :selected="selected"
443 + @close="dialogClose"
444 + />
439 </div> 445 </div>
440 </template> 446 </template>
441 447
...@@ -458,6 +464,7 @@ import RevokeDialog from "./revokeDialog.vue"; ...@@ -458,6 +464,7 @@ import RevokeDialog from "./revokeDialog.vue";
458 import TemplateDownloadDialog from "./templateDownloadDialog.vue"; 464 import TemplateDownloadDialog from "./templateDownloadDialog.vue";
459 import ExportDialog from "./exportDialog.vue"; 465 import ExportDialog from "./exportDialog.vue";
460 import BatchModify from "./batchModify.vue"; 466 import BatchModify from "./batchModify.vue";
467 +import TimeDialog from "./time-dialog.vue";
461 export default { 468 export default {
462 name: "ReportingData", 469 name: "ReportingData",
463 components: { 470 components: {
...@@ -466,6 +473,7 @@ export default { ...@@ -466,6 +473,7 @@ export default {
466 TemplateDownloadDialog, 473 TemplateDownloadDialog,
467 ExportDialog, 474 ExportDialog,
468 BatchModify, 475 BatchModify,
476 + TimeDialog,
469 }, 477 },
470 data() { 478 data() {
471 return { 479 return {
...@@ -641,6 +649,7 @@ export default { ...@@ -641,6 +649,7 @@ export default {
641 templateDownloadVisible: false, 649 templateDownloadVisible: false,
642 datasExportVisible: false, 650 datasExportVisible: false,
643 batchModifyVisible: false, 651 batchModifyVisible: false,
652 + timeVisible: false,
644 }; 653 };
645 }, 654 },
646 created() { 655 created() {
...@@ -669,6 +678,10 @@ export default { ...@@ -669,6 +678,10 @@ export default {
669 }); 678 });
670 }, 679 },
671 methods: { 680 methods: {
681 + dialogClose() {
682 + this.timeVisible = false;
683 + this.search(0);
684 + },
672 calculateTableHeight() { 685 calculateTableHeight() {
673 this.tableMaxheight = window.innerHeight - 300; 686 this.tableMaxheight = window.innerHeight - 300;
674 }, 687 },
...@@ -826,6 +839,14 @@ export default { ...@@ -826,6 +839,14 @@ export default {
826 this.datasExportVisible = false; 839 this.datasExportVisible = false;
827 this.loadings.exportDeclareLoading = false; 840 this.loadings.exportDeclareLoading = false;
828 }, 841 },
842 + // 离镜申报
843 + declareDataTime(loadingKey, dropdownName, dropdownCode) {
844 + if (this.selected.length === 0) {
845 + this.alertWarningMsg("请选择数据!");
846 + return;
847 + }
848 + this.timeVisible = true;
849 + },
829 850
830 /** 851 /**
831 * 通用申报方法 852 * 通用申报方法
......
1 +<template>
2 + <el-dialog
3 + class="entryDialog classCUploadDialog"
4 + title="离境单申报"
5 + :visible.sync="timeVisible"
6 + :show-close="false"
7 + width="40%"
8 + :close-on-click-modal="false"
9 + :destroy-on-close="true"
10 + v-loading="loadings.dialogLoading"
11 + @close="close"
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="leaveTime" type="edit">
24 + <!-- <el-select
25 + type="text"
26 + id="inputInner-edit-leaveTime"
27 + v-model="formData.leaveTimel-date-picker"
28 + clearable
29 + filterable
30 + placeholder=""
31 + >
32 + <el-option
33 + v-for="item in operatorCode"
34 + :key="item"
35 + :label="item"
36 + :value="item"
37 + ></el-option>
38 + </el-select> -->
39 + <el-date-picker
40 + class="inputInner--leaveTime"
41 + id="inputInner-edit-leaveTime"
42 + v-model="formData.leaveTime"
43 + format="yyyy-MM-dd HH:mm:ss"
44 + type="datetime"
45 + prefix-icon="none"
46 + value-format="yyyy-MM-dd HH:mm:ss"
47 + />
48 + </Formitem>
49 + </el-col>
50 + </el-row>
51 + </el-form>
52 + </div>
53 + <div class="dialogOption entrySave">
54 + <el-button
55 + class="entrySaveButton"
56 + :disabled="loadings.submitLoading"
57 + @click="submit"
58 + >确 定</el-button
59 + >
60 + <el-button class="entrySaveButton" @click="close">关 闭</el-button>
61 + </div>
62 + </el-dialog>
63 +</template>
64 +
65 +<script>
66 +import { declareUpload } from "@/api/declareData-api.js";
67 +export default {
68 + props: {
69 + timeVisible: {
70 + type: Boolean,
71 + default: false,
72 + },
73 + selected: {
74 + type: Array,
75 + default: () => {
76 + return [];
77 + },
78 + },
79 + },
80 +
81 + data() {
82 + return {
83 + formData: {
84 + leaveTime: "",
85 + },
86 +
87 + loadings: {
88 + dialogLoading: false,
89 + submitLoading: false,
90 + },
91 + loadingText: "",
92 + };
93 + },
94 + methods: {
95 + //数据保存
96 + submit() {
97 + let obj = {
98 + ...this.formData,
99 + declareIds: this.selected.map((item) => item.declareId),
100 + type: "logisticsDeparture",
101 + };
102 + this.$refs.formData.validate((valid) => {
103 + if (valid) {
104 + this.addapi(obj);
105 + }
106 + });
107 + },
108 + //新增
109 + addapi(val) {
110 + this.loadings.dialogLoading = true;
111 + declareUpload(val)
112 + .then((res) => {
113 + if (res.code === "200") {
114 + this.msgSuccess(res.message);
115 + this.close();
116 + } else {
117 + this.alertWarningMsg(res.message);
118 + this.loadings.dialogLoading = false;
119 + }
120 + })
121 + .catch((err) => {
122 + console.log(err);
123 + this.loadings.dialogLoading = false;
124 + });
125 + },
126 +
127 + close() {
128 + this.formData = {
129 + leaveTime: "",
130 + };
131 + this.loadings.dialogLoading = false;
132 + this.$emit("close");
133 + },
134 + },
135 +};
136 +</script>
137 +
138 +<style lang="scss" scoped>
139 +@import "@/assets/styles/variables.scss";
140 +</style>
...@@ -168,11 +168,11 @@ export default { ...@@ -168,11 +168,11 @@ export default {
168 // 新增菜单用,可以不麻烦后端--------- 168 // 新增菜单用,可以不麻烦后端---------
169 addMenuFn() { 169 addMenuFn() {
170 let params = { 170 let params = {
171 - icon: "receipt", 171 + icon: "",
172 - menuName: "模拟回执管理", 172 + menuName: "运抵单申报",
173 order: 1, 173 order: 1,
174 - parentMenuId: 0, 174 + parentMenuId: 96,
175 - physicalUrl: "/receipt", //-management 175 + physicalUrl: "/arrival-declare", //-management
176 url: "", 176 url: "",
177 }; 177 };
178 addMenu(params).then((res) => { 178 addMenu(params).then((res) => {
......
...@@ -299,13 +299,4 @@ export default { ...@@ -299,13 +299,4 @@ export default {
299 299
300 <style lang="scss" scoped> 300 <style lang="scss" scoped>
301 @import "@/assets/styles/variables.scss"; 301 @import "@/assets/styles/variables.scss";
302 -
303 -.menuTree {
304 - max-width: 350px;
305 - max-height: 300px;
306 - overflow: auto;
307 - margin: 0 auto;
308 - border: 1px solid #999;
309 - padding: 10px;
310 -}
311 </style> 302 </style>
......