feiyue.teng

申报数据管理页面添加批量修改功能

...@@ -183,6 +183,14 @@ export function updateDeclareData(data) { ...@@ -183,6 +183,14 @@ export function updateDeclareData(data) {
183 data 183 data
184 }) 184 })
185 } 185 }
186 +//申报数据批量修改-航班号,运单号
187 +export function bathDeclareDate(data) {
188 + return request({
189 + url: '/bus-customer/declareData/bathDeclareDate',
190 + method: 'post',
191 + data
192 + })
193 +}
186 194
187 195
188 196
......
...@@ -67,6 +67,17 @@ export function uploadCertificate(ecomEntCode, certificate) { ...@@ -67,6 +67,17 @@ export function uploadCertificate(ecomEntCode, certificate) {
67 data: formData, 67 data: formData,
68 }); 68 });
69 } 69 }
70 +//上传青岛证书
71 +export function uploadQingdaoCertificate(ecomEntCode, certificate) {
72 + const formData = new FormData();
73 + formData.append('certificate', certificate);
74 + formData.append('ecomEntCode', ecomEntCode);
75 + return request({
76 + url: '/bus-customer/customers/uploadQingDaoCertificate',
77 + method: 'post',
78 + data: formData,
79 + });
80 +}
70 81
71 //删除证书 82 //删除证书
72 export function delCertificate(id, certificate) { 83 export function delCertificate(id, certificate) {
...@@ -77,6 +88,15 @@ export function delCertificate(id, certificate) { ...@@ -77,6 +88,15 @@ export function delCertificate(id, certificate) {
77 params: {id:id,certificate:certificate}, 88 params: {id:id,certificate:certificate},
78 }); 89 });
79 } 90 }
91 +//删除青岛证书
92 +export function delQingdaoCertificate(id, certificate) {
93 +
94 + return request({
95 + url: '/bus-customer/customers/deleteQingdaoCertificate',
96 + method: 'post',
97 + params: {id:id,certificate:certificate},
98 + });
99 +}
80 100
81 //下载证书 101 //下载证书
82 export function downloadCertificate(id,filename) { 102 export function downloadCertificate(id,filename) {
......
...@@ -24,7 +24,7 @@ router.beforeEach((to, from, next) => { ...@@ -24,7 +24,7 @@ router.beforeEach((to, from, next) => {
24 store.dispatch('GetInfo').then((res) => { 24 store.dispatch('GetInfo').then((res) => {
25 // if (res.success) { 25 // if (res.success) {
26 store.dispatch('GenerateRoutes').then(accessRoutes => { 26 store.dispatch('GenerateRoutes').then(accessRoutes => {
27 - store.dispatch("GetDict", ['DECLARE_F_FLAG', 'MEASUREMENT_UNIT','PACKAGE_TYPE_CODE', 'RECEIPT_STATUS', 'DECLARE_APPTYPE', 'CURRENCY','COUNTRY_REGION_CODE', 'DECLARE_STATISTICS_FLAG', 'ORDER_DECLARATION_PARTY','APP_STATUS']); 27 + store.dispatch("GetDict", ['DECLARE_F_FLAG', 'MEASUREMENT_UNIT','TEMPLATE_TYPE','PACKAGE_TYPE_CODE', 'RECEIPT_STATUS', 'DECLARE_APPTYPE', 'CURRENCY','COUNTRY_REGION_CODE', 'DECLARE_STATISTICS_FLAG', 'ORDER_DECLARATION_PARTY','APP_STATUS']);
28 // 根据roles权限生成可访问的路由表 28 // 根据roles权限生成可访问的路由表
29 router.addRoutes(accessRoutes) // 动态添加可访问路由表 29 router.addRoutes(accessRoutes) // 动态添加可访问路由表
30 next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 30 next({ ...to, replace: true }) // hack方法 确保addRoutes已完成
......
...@@ -101,6 +101,8 @@ service.interceptors.response.use(res => { ...@@ -101,6 +101,8 @@ service.interceptors.response.use(res => {
101 dangerouslyUseHTMLString: true 101 dangerouslyUseHTMLString: true
102 }); 102 });
103 return Promise.reject(new Error(msg)) 103 return Promise.reject(new Error(msg))
104 + } else if (code === 530) {
105 + store.dispatch('FedLogOut')
104 } else if (code !== 200) { 106 } else if (code !== 200) {
105 // MessageBox.alert(msg, '注意', { 107 // MessageBox.alert(msg, '注意', {
106 // dangerouslyUseHTMLString: true 108 // dangerouslyUseHTMLString: true
......
...@@ -91,26 +91,28 @@ ...@@ -91,26 +91,28 @@
91 </el-select> 91 </el-select>
92 </Formitem> 92 </Formitem>
93 </el-col> 93 </el-col>
94 - <!-- DXPID --> 94 +
95 + </el-row>
96 + <div v-if="formData.orderRequester=='2'">
97 + <div class="checkTitle">
98 + <el-checkbox v-model="formData.qdCheck" @change="changeQDCheckBox()"></el-checkbox>青岛
99 + </div>
100 + <el-row :gutter="5">
101 + <!-- 公服DXPID -->
95 <el-col :span="8"> 102 <el-col :span="8">
96 - <Formitem label="DXPID" prop="dxpid" type="edit"> 103 + <Formitem label="公服DXPID" prop="qingdaoUserDxpid" type="edit">
97 <el-input 104 <el-input
98 type="text" 105 type="text"
99 class="inputShadow" 106 class="inputShadow"
100 - id="inputInner-edit-dxpid" 107 + id="inputInner-edit-qingdaoUserDxpid"
101 resize="none" 108 resize="none"
102 - v-model="formData.dxpid" 109 + v-model="formData.qingdaoUserDxpid"
103 clearable 110 clearable
104 placeholder="" 111 placeholder=""
112 + :disabled="!formData.qdCheck"
105 ></el-input> 113 ></el-input>
106 </Formitem> 114 </Formitem>
107 </el-col> 115 </el-col>
108 - </el-row>
109 - <div v-if="formData.orderRequester=='2'">
110 - <div class="checkTitle">
111 - <el-checkbox v-model="formData.qdCheck" @change="changeQDCheckBox()"></el-checkbox>青岛
112 - </div>
113 - <el-row :gutter="5">
114 <!-- User ID --> 116 <!-- User ID -->
115 <el-col :span="8"> 117 <el-col :span="8">
116 <Formitem label="User ID" prop="qingdaoUserId" type="edit"> 118 <Formitem label="User ID" prop="qingdaoUserId" type="edit">
...@@ -126,15 +128,15 @@ ...@@ -126,15 +128,15 @@
126 ></el-input> 128 ></el-input>
127 </Formitem> 129 </Formitem>
128 </el-col> 130 </el-col>
129 - <!-- DXPID --> 131 + <!-- Key -->
130 <el-col :span="8"> 132 <el-col :span="8">
131 - <Formitem label="DXPID" prop="qingdaoUserDxpid" type="edit"> 133 + <Formitem label="Key" prop="qingdaoKey" type="edit">
132 <el-input 134 <el-input
133 type="text" 135 type="text"
134 class="inputShadow" 136 class="inputShadow"
135 - id="inputInner-edit-qingdaoUserDxpid" 137 + id="inputInner-edit-qingdaoKey"
136 resize="none" 138 resize="none"
137 - v-model="formData.qingdaoUserDxpid" 139 + v-model="formData.qingdaoKey"
138 clearable 140 clearable
139 placeholder="" 141 placeholder=""
140 :disabled="!formData.qdCheck" 142 :disabled="!formData.qdCheck"
...@@ -143,7 +145,7 @@ ...@@ -143,7 +145,7 @@
143 </el-col> 145 </el-col>
144 <!-- DXPID --> 146 <!-- DXPID -->
145 <el-col :span="8"> 147 <el-col :span="8">
146 - <Formitem label="单一DXPID" prop="qingdaoDanyiUserDxpid" type="edit"> 148 + <Formitem label="山电DXPID" prop="qingdaoDanyiUserDxpid" type="edit">
147 <el-input 149 <el-input
148 type="text" 150 type="text"
149 class="inputShadow" 151 class="inputShadow"
...@@ -156,21 +158,91 @@ ...@@ -156,21 +158,91 @@
156 ></el-input> 158 ></el-input>
157 </Formitem> 159 </Formitem>
158 </el-col> 160 </el-col>
159 - <!-- Key --> 161 +
160 - <el-col :span="8"> 162 + <el-col :span="8">
161 - <Formitem label="Key" prop="qingdaoKey" type="edit"> 163 + <Formitem label="山电用户名" prop="qingdaoUserName" type="edit">
162 <el-input 164 <el-input
163 type="text" 165 type="text"
164 class="inputShadow" 166 class="inputShadow"
165 - id="inputInner-edit-qingdaoKey" 167 + id="inputInner-edit-qingdaoUserName"
166 resize="none" 168 resize="none"
167 - v-model="formData.qingdaoKey" 169 + v-model="formData.qingdaoUserName"
170 + clearable
171 + placeholder=""
172 + :disabled="!formData.qdCheck"
173 + ></el-input>
174 + </Formitem>
175 + </el-col>
176 + <!-- DXPID -->
177 + <el-col :span="8">
178 + <Formitem label="山电用户密码" prop="qingdaoUserPassword" type="edit">
179 + <el-input
180 + type="text"
181 + class="inputShadow"
182 + id="inputInner-edit-qingdaoUserPassword"
183 + resize="none"
184 + v-model="formData.qingdaoUserPassword"
168 clearable 185 clearable
169 placeholder="" 186 placeholder=""
170 :disabled="!formData.qdCheck" 187 :disabled="!formData.qdCheck"
171 ></el-input> 188 ></el-input>
172 </Formitem> 189 </Formitem>
173 </el-col> 190 </el-col>
191 + <el-col :span="16" style="padding-right: 5px;">
192 + <div class="uploadItem">
193 + <div class="uploadbox">
194 + <el-button
195 + size="mini"
196 + type="text"
197 + v-loading="loadings.qingdaoUploadLoading"
198 + @click="qingdaoUploadFile"
199 + >上传文件
200 + </el-button>
201 + <el-upload
202 + class="upload-demo"
203 + ref="qingdaoUploadFile"
204 + action="/manager-server/attachment/picImg"
205 + :http-request="qingdaoFileUpload"
206 + :auto-upload="true"
207 + :show-file-list="false"
208 + :data="{}"
209 + :before-upload="qingdaoBeforeUpload"
210 + :on-remove="qingdaoHandleRemove"
211 + :on-success="qingdaoHandleSuccess"
212 + :on-change="qingdaoFileChange"
213 + :file-list="qingdaoFileList"
214 + @clearFiles="clearqingdaoFile"
215 + >
216 + </el-upload>
217 + </div>
218 + <div class="fileList" v-if="formData.qingdaoFile != null || formData.qingdaoCertificare">
219 + <div class="fileList-item">
220 + <div class="uploadbox-fileName" >
221 + <svg-icon
222 + class="el-icon-user-solid"
223 + icon-class="exl"
224 + style="font-size: 18px; color: #de002e"
225 + />
226 +
227 + <Tooltip
228 + :content="formData.qingdaoFile ? formData.qingdaoFile.name : formData.qingdaoCertificare"
229 + :refName="formData.qingdaoFile ? formData.qingdaoFile.name : formData.qingdaoCertificare"
230 + />
231 + </div>
232 + <div class="uploadbox-option">
233 + <el-popconfirm
234 + :title="$t('entry.upload.delTip')"
235 + @confirm="delQingdaoTypeDFile"
236 + >
237 + <el-button slot="reference" type="text">{{
238 + $t("entry.upload.del")
239 + }}</el-button>
240 + </el-popconfirm>
241 + </div>
242 + </div>
243 + </div>
244 + </div>
245 + </el-col>
174 </el-row> 246 </el-row>
175 <div class="checkTitle"> 247 <div class="checkTitle">
176 <el-checkbox v-model="formData.bjCheck" @change="changeBJCheckBox()"></el-checkbox>北京 248 <el-checkbox v-model="formData.bjCheck" @change="changeBJCheckBox()"></el-checkbox>北京
...@@ -192,6 +264,11 @@ ...@@ -192,6 +264,11 @@
192 </Formitem> 264 </Formitem>
193 </el-col> 265 </el-col>
194 </el-row> 266 </el-row>
267 + <section class="dlTitle">
268 + <h3>密码机管理</h3>
269 + </section>
270 + <el-row>
271 + <el-col :span="16" style="padding-right: 5px;">
195 <div class="uploadItem"> 272 <div class="uploadItem">
196 <div class="uploadbox"> 273 <div class="uploadbox">
197 <el-button 274 <el-button
...@@ -245,6 +322,21 @@ ...@@ -245,6 +322,21 @@
245 </div> 322 </div>
246 </div> 323 </div>
247 </div> 324 </div>
325 + </el-col>
326 + <el-col :span="8">
327 + <Formitem label="证书序列号" prop="dxpid" type="edit">
328 + <el-input
329 + type="text"
330 + class="inputShadow"
331 + id="inputInner-edit-dxpid"
332 + resize="none"
333 + v-model="formData.dxpid"
334 + clearable
335 + placeholder=""
336 + ></el-input>
337 + </Formitem>
338 + </el-col>
339 + </el-row>
248 </div> 340 </div>
249 </el-form> 341 </el-form>
250 </div> 342 </div>
...@@ -269,8 +361,10 @@ ...@@ -269,8 +361,10 @@
269 import { 361 import {
270 addCustomerData, 362 addCustomerData,
271 uploadCertificate, 363 uploadCertificate,
364 + uploadQingdaoCertificate,
272 updateCustomerData, 365 updateCustomerData,
273 - delCertificate 366 + delCertificate,
367 + delQingdaoCertificate
274 } from "@/api/system/customer-ai.js"; 368 } from "@/api/system/customer-ai.js";
275 export default { 369 export default {
276 props: { 370 props: {
...@@ -303,6 +397,7 @@ export default { ...@@ -303,6 +397,7 @@ export default {
303 id: null, 397 id: null,
304 beijingDxpid: "", 398 beijingDxpid: "",
305 certificare: "", 399 certificare: "",
400 + qingdaoCertificare: "",
306 clientId: "", 401 clientId: "",
307 ecomEntCode: "", 402 ecomEntCode: "",
308 ecomEntEmail: "", 403 ecomEntEmail: "",
...@@ -317,6 +412,7 @@ export default { ...@@ -317,6 +412,7 @@ export default {
317 bjCheck: false, 412 bjCheck: false,
318 checkboxState:"",//后端要求 北京 和青岛 用这种方式传 第一个是青岛 第二个是北京 413 checkboxState:"",//后端要求 北京 和青岛 用这种方式传 第一个是青岛 第二个是北京
319 file: null, 414 file: null,
415 + qingdaoFile: null,
320 }, 416 },
321 rules: { 417 rules: {
322 ecomEntCode: [ 418 ecomEntCode: [
...@@ -387,9 +483,11 @@ export default { ...@@ -387,9 +483,11 @@ export default {
387 dialogLoading: false, 483 dialogLoading: false,
388 uploadLoading: false, 484 uploadLoading: false,
389 submitLoading: false, 485 submitLoading: false,
486 + qingdaoUploadLoading: false,
390 }, 487 },
391 loadingText: "", 488 loadingText: "",
392 fileList: [], 489 fileList: [],
490 + qingdaoFileList: [],
393 }; 491 };
394 }, 492 },
395 watch: { 493 watch: {
...@@ -426,6 +524,9 @@ export default { ...@@ -426,6 +524,9 @@ export default {
426 uploadFile() { 524 uploadFile() {
427 this.$refs.uploadFile.$refs["upload-inner"].handleClick(); 525 this.$refs.uploadFile.$refs["upload-inner"].handleClick();
428 }, 526 },
527 + qingdaoUploadFile() {
528 + this.$refs.qingdaoUploadFile.$refs["upload-inner"].handleClick();
529 + },
429 //文件校验 530 //文件校验
430 beforeUpload(val) { 531 beforeUpload(val) {
431 // if ( 532 // if (
...@@ -438,6 +539,9 @@ export default { ...@@ -438,6 +539,9 @@ export default {
438 return true; 539 return true;
439 // } 540 // }
440 }, 541 },
542 + qingdaoBeforeUpload(val) {
543 + return true;
544 + },
441 fileUpload({ file }) { 545 fileUpload({ file }) {
442 546
443 const reader = new FileReader(); 547 const reader = new FileReader();
...@@ -448,20 +552,44 @@ export default { ...@@ -448,20 +552,44 @@ export default {
448 file: e.target.result, 552 file: e.target.result,
449 name:file.name, 553 name:file.name,
450 }; 554 };
451 - this.formData.file = obj; 555 + this.formData.file = obj;
452 }; 556 };
453 557
454 }, 558 },
559 + qingdaoFileUpload({ file }) {
560 +
561 + const reader = new FileReader();
562 + reader.readAsDataURL(file);
563 + reader.onload = (e) => {
564 + console.log(e);
565 + let obj = {
566 + file: e.target.result,
567 + name:file.name,
568 + };
569 + this.formData.qingdaoFile = obj;
570 + };
571 +
572 + },
455 fileChange(val) {}, 573 fileChange(val) {},
574 + qingdaoFileChange(val) {},
456 handleSuccess() {}, 575 handleSuccess() {},
576 + qingdaoHandleSuccess() {},
457 clearFile() {}, 577 clearFile() {},
578 + clearqingdaoFile() {},
458 handleRemove() { 579 handleRemove() {
459 this.fileList = []; 580 this.fileList = [];
460 }, 581 },
582 + qingdaoHandleRemove() {
583 + this.qingdaoFileList = [];
584 + },
461 //删除文件 585 //删除文件
462 delTypeDFile() { 586 delTypeDFile() {
463 this.delCertificate(); 587 this.delCertificate();
464 }, 588 },
589 + delQingdaoTypeDFile() {
590 + this.delQingdaoCertificate();
591 + },
592 +
465 //删除证书 593 //删除证书
466 delCertificate(){ 594 delCertificate(){
467 if(this.formData.id && this.formData.certificare){ 595 if(this.formData.id && this.formData.certificare){
...@@ -482,6 +610,27 @@ export default { ...@@ -482,6 +610,27 @@ export default {
482 this.formData.certificare=""; 610 this.formData.certificare="";
483 } 611 }
484 }, 612 },
613 +
614 + //删除青岛证书
615 + delQingdaoCertificate(){
616 + if(this.formData.id && this.formData.qingdaoCertificare){
617 + delQingdaoCertificate(this.formData.id,this.formData.qingdaoCertificare).then((res)=>{
618 + if(res.code==200){
619 + this.formData.qingdaoFile = null;
620 + this.formData.qingdaoCertificare="";
621 + // this.msgSuccess("证书删除成功!");
622 + }else{
623 + this.alertErrorMsg("证书删除失败,请联系管理员!");
624 + }
625 + }).catch((err)=>{
626 + console.log(err);
627 + this.alertErrorMsg("证书删除失败,请联系管理员!");
628 + })
629 + }else{
630 + this.formData.qingdaoFile = null;
631 + this.formData.qingdaoCertificare="";
632 + }
633 + },
485 //查询用户信息详情 634 //查询用户信息详情
486 searchUserData(id) { 635 searchUserData(id) {
487 this.loadings.dialogLoading = true; 636 this.loadings.dialogLoading = true;
...@@ -535,6 +684,9 @@ export default { ...@@ -535,6 +684,9 @@ export default {
535 if (this.formData.file) { 684 if (this.formData.file) {
536 this.uploadCertificate(val.ecomEntCode, this.base64ConvertFile(this.formData.file.file,this.formData.file.name)); 685 this.uploadCertificate(val.ecomEntCode, this.base64ConvertFile(this.formData.file.file,this.formData.file.name));
537 } 686 }
687 + if (this.formData.qingdaoFile) {
688 + this.uploadQingdaoCertificate(val.ecomEntCode, this.base64ConvertFile(this.formData.qingdaoFile.file,this.formData.qingdaoFile.name));
689 + }
538 this.msgSuccess("客户添加成功!"); 690 this.msgSuccess("客户添加成功!");
539 this.close(); 691 this.close();
540 692
...@@ -565,6 +717,24 @@ export default { ...@@ -565,6 +717,24 @@ export default {
565 this.loadings.dialogLoading = false; 717 this.loadings.dialogLoading = false;
566 }); 718 });
567 }, 719 },
720 +
721 + uploadQingdaoCertificate(ecomEntCode, file) {
722 +
723 + uploadQingdaoCertificate(ecomEntCode, file)
724 + .then((uploadRes) => {
725 + if (uploadRes.code === "200") {
726 + // this.msgSuccess("客户添加和证书上传成功!");
727 + this.close();
728 + } else {
729 + this.alertWarningMsg(uploadRes.message);
730 + }
731 + this.loadings.dialogLoading = false;
732 + })
733 + .catch((err) => {
734 + console.log(err);
735 + this.loadings.dialogLoading = false;
736 + });
737 + },
568 //修改 738 //修改
569 updateapi(val) { 739 updateapi(val) {
570 updateCustomerData(val) 740 updateCustomerData(val)
...@@ -575,6 +745,9 @@ export default { ...@@ -575,6 +745,9 @@ export default {
575 if (this.formData.file) { 745 if (this.formData.file) {
576 this.uploadCertificate(val.ecomEntCode, this.base64ConvertFile(this.formData.file.file,this.formData.file.name)); 746 this.uploadCertificate(val.ecomEntCode, this.base64ConvertFile(this.formData.file.file,this.formData.file.name));
577 } 747 }
748 + if (this.formData.qingdaoFile) {
749 + this.uploadQingdaoCertificate(val.ecomEntCode, this.base64ConvertFile(this.formData.qingdaoFile.file,this.formData.qingdaoFile.name));
750 + }
578 this.msgSuccess("客户修改成功!"); 751 this.msgSuccess("客户修改成功!");
579 this.close(); 752 this.close();
580 753
...@@ -649,11 +822,11 @@ export default { ...@@ -649,11 +822,11 @@ export default {
649 822
650 .uploadbox { 823 .uploadbox {
651 width: 100%; 824 width: 100%;
652 - height: 40px; 825 + height: 50px;
653 line-height: 20px; 826 line-height: 20px;
654 background-color: $formItemBackgroundColor; 827 background-color: $formItemBackgroundColor;
655 padding: 4px 8px; 828 padding: 4px 8px;
656 - margin-top: 5px; 829 + // margin-top: 5px;
657 display: flex; 830 display: flex;
658 justify-content: space-between; 831 justify-content: space-between;
659 832
...@@ -716,4 +889,13 @@ export default { ...@@ -716,4 +889,13 @@ export default {
716 margin-right: 10px; 889 margin-right: 10px;
717 } 890 }
718 } 891 }
892 +.dlTitle{
893 + border-bottom: 2px solid #000000;
894 + color:#000000;
895 + margin-bottom: 12px;
896 + h3{
897 + margin-bottom: 8px;
898 + font-weight: 500;
899 + }
900 +}
719 </style> 901 </style>
......
...@@ -334,7 +334,8 @@ export default { ...@@ -334,7 +334,8 @@ export default {
334 update(val) { 334 update(val) {
335 let data={ 335 let data={
336 ...val, 336 ...val,
337 - file:null 337 + file:null,
338 + qingdaoFile:null
338 } 339 }
339 this.dialogTitle = "修改客户"; 340 this.dialogTitle = "修改客户";
340 this.editType = "update"; 341 this.editType = "update";
......
1 <template> 1 <template>
2 - <div> 2 + <div style="height: 100%;">
3 <el-form 3 <el-form
4 - class="fedexFormStyle" 4 + class="fedexFormStyle fedexRowEditFormStyle"
5 - ref="editForm" 5 + ref="editRowForm"
6 :model="tableRowformData" 6 :model="tableRowformData"
7 :rules="tableRowFormRules" 7 :rules="tableRowFormRules"
8 label-position="top" 8 label-position="top"
...@@ -236,7 +236,7 @@ ...@@ -236,7 +236,7 @@
236 ></el-input> 236 ></el-input>
237 </Formitem> 237 </Formitem>
238 </el-col> 238 </el-col>
239 - <el-col :span="4"> 239 + <el-col :span="8">
240 <Formitem label="备注" prop="remark"> 240 <Formitem label="备注" prop="remark">
241 <el-input 241 <el-input
242 type="text" 242 type="text"
...@@ -267,7 +267,47 @@ ...@@ -267,7 +267,47 @@
267 data() { 267 data() {
268 return { 268 return {
269 tableRowformData:{}, 269 tableRowformData:{},
270 - tableRowFormRules:{} 270 + tableRowFormRules:{
271 + enterpriseProductCode: [
272 + { required: true, message: '请输入企业商品货号', trigger: 'blur' },
273 + ],
274 + enterpriseProductName: [
275 + { required: true, message: '请输入企业商品名称', trigger: 'blur' }
276 + ],
277 + productName: [
278 + { required: true, message: '请输入商品名称', trigger: 'blur' }
279 + ],
280 + productCode: [
281 + { required: true, message: '请输入商品编码', trigger: 'blur' }
282 + ],
283 + model: [
284 + { required: true, message: '请输入规格型号', trigger: 'blur' }
285 + ],
286 + destinationCountryRegionCode: [
287 + { required: true, message: '请选择目的国(地区)代码', trigger: 'change' }
288 + ],
289 + unit: [
290 + { required: true, message: '请选择计量单位', trigger: 'change' }
291 + ],
292 + qty: [
293 + { required: true, message: '请输入数量', trigger: 'blur' }
294 + ],
295 + legalQty: [
296 + { required: true, message: '请输入法定数量', trigger: 'blur' }
297 + ],
298 + currency: [
299 + { required: true, message: '请选择币制', trigger: 'change' }
300 + ],
301 + price: [
302 + { required: true, message: '请输入单价', trigger: 'blur' }
303 + ],
304 + totalPrice: [
305 + { required: true, message: '请输入总价', trigger: 'blur' }
306 + ],
307 + netWeight: [
308 + { required: true, message: '请输入净重', trigger: 'blur' }
309 + ],
310 + }
271 }; 311 };
272 }, 312 },
273 watch: { 313 watch: {
...@@ -275,8 +315,14 @@ ...@@ -275,8 +315,14 @@
275 }, 315 },
276 methods: { 316 methods: {
277 rowFormDataSave(){ 317 rowFormDataSave(){
278 - this.$emit('rowFormDataSave', {gnum: this.rowDatas.row.gnum, tableRowformData: this.tableRowformData}) 318 + this.$refs.editRowForm.validate((valid) => {
279 - this.tableRowformData = {} 319 + if (valid) {
320 + this.$emit('rowFormDataSave', {gnum: this.rowDatas.row.gnum, tableRowformData: this.tableRowformData})
321 + this.tableRowformData = {}
322 + } else {
323 + return false;
324 + }
325 + })
280 }, 326 },
281 cancelEditRowData(){ 327 cancelEditRowData(){
282 this.tableRowformData = {} 328 this.tableRowformData = {}
...@@ -313,5 +359,17 @@ ...@@ -313,5 +359,17 @@
313 } 359 }
314 } 360 }
315 } 361 }
362 + .fedexRowEditFormStyle .el-form-item{
363 + background-color: #ffffff;
364 + box-shadow: 0 2px 4px 0 #E5F2F8CC;
365 + border-left: 1px solid #E5F2F8CC;
366 + // margin-bottom: 30px;
367 + }
368 + .fedexRowEditFormStyle .el-form-item:has(.formError){
369 + margin-bottom: 25px!important;
370 + }
371 + .fedexRowEditFormStyle .activeBorder{
372 + border-left: 3px solid #007AB7;
373 + }
316 </style> 374 </style>
317 375
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -6,460 +6,468 @@ ...@@ -6,460 +6,468 @@
6 <el-button class="entrySaveButton" @click="back">返 回</el-button> 6 <el-button class="entrySaveButton" @click="back">返 回</el-button>
7 </div> 7 </div>
8 </div> 8 </div>
9 - <el-form 9 + <section :class="{partsHidden:!isFold}">
10 - class="fedexFormStyle" 10 + <el-form
11 - ref="editForm" 11 + class="fedexFormStyle fedexFormEditStyle"
12 - :model="formData" 12 + ref="editForm"
13 - :rules="formRules" 13 + :model="formData"
14 - label-position="top" 14 + :rules="formRules"
15 - size="small" 15 + label-position="top"
16 - > 16 + size="small"
17 - <el-row :gutter="5"> 17 + >
18 - <el-col :span="3"> 18 + <el-row :gutter="5">
19 - <Formitem label="电商企业" prop="ebccode"> 19 + <el-col :span="3">
20 - <el-select 20 + <Formitem label="电商企业" prop="ebccode">
21 - type="text" 21 + <el-select
22 - id="inputInner--ebccode" 22 + type="text"
23 - v-model="formData.ebccode" 23 + id="inputInner--ebccode"
24 - clearable 24 + v-model="formData.ebccode"
25 - filterable 25 + clearable
26 - placeholder="" 26 + filterable
27 - > 27 + placeholder=""
28 - <el-option 28 + >
29 - v-for="(item, index) in ebcDataList" 29 + <el-option
30 - :key="index" 30 + v-for="(item, index) in ebcDataList"
31 - :label="item.ecomEntName" 31 + :key="index"
32 - :value="item.ecomEntCode" 32 + :label="item.ecomEntName"
33 - ></el-option> 33 + :value="item.ecomEntCode"
34 - </el-select> 34 + ></el-option>
35 - </Formitem> 35 + </el-select>
36 - </el-col> 36 + </Formitem>
37 - <el-col :span="3"> 37 + </el-col>
38 - <Formitem label="物流企业" prop="logisticsCode"> 38 + <el-col :span="3">
39 + <Formitem label="物流企业" prop="logisticsCode">
40 + <el-input
41 + type="text"
42 + class="inputShadow"
43 + id="inputInner--logisticsCode"
44 + resize="none"
45 + v-model="formData.logisticsCode"
46 + disabled
47 + clearable
48 + placeholder=""
49 + ></el-input>
50 + </Formitem>
51 + </el-col>
52 + <!-- 订单编号 -->
53 + <el-col :span="3">
54 + <Formitem label="订单编号" prop="orderNo">
39 <el-input 55 <el-input
40 - type="text" 56 + type="text"
41 - class="inputShadow" 57 + class="inputShadow"
42 - id="inputInner--logisticsCode" 58 + id="inputInner--orderNo"
43 - resize="none" 59 + resize="none"
44 - v-model="formData.logisticsCode" 60 + v-model="formData.orderNo"
45 - disabled 61 + clearable
46 - clearable 62 + placeholder=""
47 - placeholder="" 63 + ></el-input>
48 - ></el-input> 64 + </Formitem>
49 - </Formitem> 65 + </el-col>
50 - </el-col> 66 + <!-- 电商平台名称 -->
51 - <!-- 订单编号 --> 67 + <el-col :span="3">
52 - <el-col :span="3"> 68 + <Formitem label="物流运单编号" prop="logisticsNo">
53 - <Formitem label="订单编号" prop="orderNo"> 69 + <el-input
54 - <el-input 70 + type="text"
55 - type="text" 71 + class="inputShadow"
56 - class="inputShadow" 72 + id="inputInner--logisticsNo"
57 - id="inputInner--orderNo" 73 + resize="none"
58 - resize="none" 74 + v-model="formData.logisticsNo"
59 - v-model="formData.orderNo" 75 + clearable
60 - clearable 76 + placeholder=""
61 - placeholder="" 77 + ></el-input>
62 - ></el-input> 78 + </Formitem>
63 - </Formitem> 79 + </el-col>
64 - </el-col> 80 + <!-- 电商企业代码 -->
65 - <!-- 电商平台名称 --> 81 + <el-col :span="3">
66 - <el-col :span="3"> 82 + <Formitem label="申报地海关" prop="declareCustomsCode">
67 - <Formitem label="物流运单编号" prop="logisticsNo"> 83 + <el-select
68 - <el-input 84 + type="text"
69 - type="text" 85 + id="inputInner--declareCustomsCode"
70 - class="inputShadow" 86 + v-model="formData.declareCustomsCode"
71 - id="inputInner--logisticsNo" 87 + filterable
72 - resize="none" 88 + clearable
73 - v-model="formData.logisticsNo" 89 + placeholder=""
74 - clearable 90 + >
75 - placeholder=""
76 - ></el-input>
77 - </Formitem>
78 - </el-col>
79 - <!-- 电商企业代码 -->
80 - <el-col :span="3">
81 - <Formitem label="申报地海关" prop="declareCustomsCode">
82 - <el-select
83 - type="text"
84 - id="inputInner--declareCustomsCode"
85 - v-model="formData.declareCustomsCode"
86 - clearable
87 - placeholder=""
88 - >
89 - <el-option
90 - v-for="(item, index) in declareCustomsDataList"
91 - :key="index"
92 - :label="item.declarationUnitCompanyName"
93 - :value="item.declarationUnit10"
94 - ></el-option>
95 - </el-select>
96 - </Formitem>
97 - </el-col>
98 - <!-- 电商企业 -->
99 - <el-col :span="3">
100 - <Formitem label="出生日期" prop="exportDate">
101 - <el-date-picker
102 - class="inputInner--createTime"
103 - id="inputInner--exportDate"
104 - v-model="formData.exportDate"
105 - type="date"
106 - format="yyyy-MM-dd"
107 - prefix-icon="none"
108 - value-format="yyyy-MM-dd"
109 - />
110 - </Formitem>
111 - </el-col>
112 -
113 - <!-- 商品金额 -->
114 - <el-col :span="3">
115 - <Formitem label="商品金额" prop="goodsValue">
116 - <el-input
117 - type="text"
118 - class="inputShadow"
119 - id="inputInner--goodsValue"
120 - resize="none"
121 - v-model="formData.goodsValue"
122 - clearable
123 - placeholder=""
124 - ></el-input>
125 - </Formitem>
126 - </el-col>
127 - <!-- 运杂费 -->
128 - <el-col :span="3">
129 - <Formitem label="运杂费" prop="miscellaneousFreight">
130 - <el-input
131 - type="text"
132 - class="inputShadow"
133 - id="inputInner--miscellaneousFreight"
134 - resize="none"
135 - v-model="formData.miscellaneousFreight"
136 - clearable
137 - placeholder=""
138 - ></el-input>
139 - </Formitem>
140 - </el-col>
141 -
142 - </el-row>
143 - <el-row :gutter="5">
144 - <!-- 币制 -->
145 - <el-col :span="3">
146 - <Formitem label="币制" prop="currency">
147 - <el-select
148 - type="text"
149 - id="inputInner--currency"
150 - v-model="formData.currency"
151 - clearable
152 - placeholder=""
153 - >
154 <el-option 91 <el-option
155 - v-for="(item, index) in $store.getters.dict.CURRENCY" 92 + v-for="(item, index) in declareCustomsDataList"
156 - :key="index" 93 + :key="index"
157 - :label="item.itemChineseName" 94 + :label="item.declarationUnitCompanyName"
158 - :value="item.itemValue" 95 + :value="item.declarationUnit10"
159 - ></el-option> 96 + ></el-option>
160 - </el-select> 97 + </el-select>
161 - </Formitem> 98 + </Formitem>
162 - </el-col> 99 + </el-col>
163 - <!-- 申报状态 --> 100 + <!-- 电商企业 -->
101 + <el-col :span="3">
102 + <Formitem label="出生日期" prop="exportDate">
103 + <el-date-picker
104 + class="inputInner--createTime"
105 + id="inputInner--exportDate"
106 + v-model="formData.exportDate"
107 + type="date"
108 + format="yyyy-MM-dd"
109 + prefix-icon="none"
110 + value-format="yyyy-MM-dd"
111 + />
112 + </Formitem>
113 + </el-col>
114 +
115 + <!-- 商品金额 -->
164 <el-col :span="3"> 116 <el-col :span="3">
165 - <Formitem label="主要货物信息" prop="mainGoodsInfo"> 117 + <Formitem label="商品金额" prop="goodsValue">
166 <el-input 118 <el-input
167 - type="text" 119 + type="text"
168 - class="inputShadow" 120 + class="inputShadow"
169 - id="inputInner--mainGoodsInfo" 121 + id="inputInner--goodsValue"
170 - resize="none" 122 + resize="none"
171 - v-model="formData.mainGoodsInfo" 123 + v-model="formData.goodsValue"
172 - clearable 124 + clearable
173 - placeholder="" 125 + placeholder=""
174 - ></el-input> 126 + ></el-input>
175 - </Formitem> 127 + </Formitem>
176 - </el-col> 128 + </el-col>
177 - <!-- 申报类型 --> 129 + <!-- 运杂费 -->
178 - <el-col :span="3"> 130 + <el-col :span="3">
179 - <Formitem label="贸易方式" prop="appType"> 131 + <Formitem label="运杂费" prop="miscellaneousFreight">
180 <el-input 132 <el-input
181 - type="text" 133 + type="text"
182 - class="inputShadow" 134 + class="inputShadow"
183 - id="inputInner--appType" 135 + id="inputInner--miscellaneousFreight"
184 - resize="none" 136 + resize="none"
185 - v-model="formData.appType" 137 + v-model="formData.miscellaneousFreight"
186 - clearable 138 + clearable
187 - placeholder="" 139 + placeholder=""
188 - ></el-input> 140 + ></el-input>
189 - </Formitem> 141 + </Formitem>
190 - </el-col> 142 + </el-col>
191 - <!-- 申报日期 --> 143 +
192 - <el-col :span="3"> 144 + </el-row>
193 - <Formitem label="航班号" prop="flightNumber"> 145 + <el-row :gutter="5">
194 - <el-input 146 + <!-- 币制 -->
195 - type="text" 147 + <el-col :span="3">
196 - class="inputShadow" 148 + <Formitem label="币制" prop="currency">
197 - id="inputInner--flightNumber"
198 - resize="none"
199 - v-model="formData.flightNumber"
200 - clearable
201 - placeholder=""
202 - ></el-input>
203 - </Formitem>
204 - </el-col>
205 - <!-- 备注 -->
206 - <el-col :span="3">
207 - <Formitem label="提运单号" prop="billno">
208 - <el-input
209 - type="text"
210 - class="inputShadow"
211 - id="inputInner--billno"
212 - resize="none"
213 - v-model="formData.billno"
214 - clearable
215 - placeholder=""
216 - ></el-input>
217 - </Formitem>
218 - </el-col>
219 - <el-col :span="3">
220 - <Formitem label="总包号" prop="totalPackageNo">
221 - <el-input
222 - type="text"
223 - class="inputShadow"
224 - id="inputInner--totalPackageNo"
225 - resize="none"
226 - v-model="formData.totalPackageNo"
227 - clearable
228 - placeholder=""
229 - ></el-input>
230 - </Formitem>
231 - </el-col>
232 - <el-col :span="3">
233 - <Formitem label="监管场所代码" prop="regulatoryVenueCode">
234 - <el-input
235 - type="text"
236 - class="inputShadow"
237 - id="inputInner--regulatoryVenueCode"
238 - resize="none"
239 - v-model="formData.regulatoryVenueCode"
240 - clearable
241 - placeholder=""
242 - ></el-input>
243 - </Formitem>
244 - </el-col>
245 - <el-col :span="3">
246 - <Formitem label="许可证号" prop="licenseKey">
247 - <el-input
248 - type="text"
249 - class="inputShadow"
250 - id="inputInner--licenseKey"
251 - resize="none"
252 - v-model="formData.licenseKey"
253 - clearable
254 - placeholder=""
255 - ></el-input>
256 - </Formitem>
257 - </el-col>
258 - </el-row>
259 - <el-row :gutter="5">
260 - <el-col :span="3">
261 - <Formitem label="运抵国(地区)" prop="destinationCountryRegion">
262 - <el-select
263 - type="text"
264 - id="inputInner--destinationCountryRegion"
265 - v-model="formData.destinationCountryRegion"
266 - clearable
267 - placeholder=""
268 - >
269 - <el-option
270 - v-for="(item, index) in $store.getters.dict.COUNTRY_REGION_CODE"
271 - :key="index"
272 - :label="item.itemChineseName"
273 - :value="item.itemValue"
274 - ></el-option>
275 - </el-select>
276 - </Formitem>
277 - </el-col>
278 - <el-col :span="3">
279 - <Formitem label="运港代码" prop="portCode">
280 - <el-input
281 - type="text"
282 - class="inputShadow"
283 - id="inputInner--portCode"
284 - resize="none"
285 - v-model="formData.portCode"
286 - clearable
287 - placeholder=""
288 - ></el-input>
289 - </Formitem>
290 - </el-col>
291 - <el-col :span="3">
292 - <Formitem label="运费" prop="freight">
293 - <el-input
294 - type="text"
295 - class="inputShadow"
296 - id="inputInner--freight"
297 - resize="none"
298 - v-model="formData.freight"
299 - clearable
300 - placeholder=""
301 - ></el-input>
302 - </Formitem>
303 - </el-col>
304 - <el-col :span="3">
305 - <Formitem label="运费币制" prop="freightCurrency">
306 - <el-select
307 - type="text"
308 - id="inputInner--freightCurrency"
309 - v-model="formData.freightCurrency"
310 - clearable
311 - placeholder=""
312 - >
313 - <el-option
314 - v-for="(item, index) in $store.getters.dict.CURRENCY"
315 - :key="index"
316 - :label="item.itemChineseName"
317 - :value="item.itemValue"
318 - ></el-option>
319 - </el-select>
320 - </Formitem>
321 - </el-col>
322 - <el-col :span="3">
323 - <Formitem label="运费标志" prop="freightTag">
324 - <el-select
325 - type="text"
326 - id="inputInner--freightTag"
327 - v-model="formData.freightTag"
328 - clearable
329 - placeholder=""
330 - >
331 - <el-option
332 - v-for="(item, index) in $store.getters.dict.DECLARE_F_FLAG"
333 - :key="index"
334 - :label="item.itemChineseName"
335 - :value="item.itemValue"
336 - ></el-option>
337 - </el-select>
338 - </Formitem>
339 - </el-col>
340 - <el-col :span="3">
341 - <Formitem label="保费" prop="insuredfee">
342 - <el-input
343 - type="text"
344 - class="inputShadow"
345 - id="inputInner--insuredfee"
346 - resize="none"
347 - v-model="formData.insuredfee"
348 - clearable
349 - placeholder=""
350 - ></el-input>
351 - </Formitem>
352 - </el-col>
353 - <el-col :span="3">
354 - <Formitem label="保费币制" prop="insuredfeeCurrency">
355 - <el-select
356 - type="text"
357 - id="inputInner--insuredfeeCurrency"
358 - v-model="formData.insuredfeeCurrency"
359 - clearable
360 - placeholder=""
361 - >
362 - <el-option
363 - v-for="(item, index) in $store.getters.dict.CURRENCY"
364 - :key="index"
365 - :label="item.itemChineseName"
366 - :value="item.itemValue"
367 - ></el-option>
368 - </el-select>
369 - </Formitem>
370 - </el-col>
371 - <el-col :span="3">
372 - <Formitem label="保费标志" prop="insuredfeeTag">
373 <el-select 149 <el-select
374 - type="text" 150 + type="text"
375 - id="inputInner--insuredfeeTag" 151 + id="inputInner--currency"
376 - v-model="formData.insuredfeeTag" 152 + v-model="formData.currency"
377 - clearable 153 + clearable
378 - placeholder="" 154 + placeholder=""
379 - > 155 + >
380 - <el-option 156 + <el-option
381 - v-for="(item, index) in $store.getters.dict.DECLARE_F_FLAG" 157 + v-for="(item, index) in $store.getters.dict.CURRENCY"
382 - :key="index" 158 + :key="index"
383 - :label="item.itemChineseName" 159 + :label="item.itemChineseName"
384 - :value="item.itemValue" 160 + :value="item.itemValue"
385 - ></el-option> 161 + ></el-option>
386 - </el-select> 162 + </el-select>
387 - </Formitem> 163 + </Formitem>
388 - </el-col> 164 + </el-col>
389 - </el-row> 165 + <!-- 申报状态 -->
390 - <el-row :gutter="5">
391 <el-col :span="3"> 166 <el-col :span="3">
392 - <Formitem label="包装种类代码" prop="packageTypeCode"> 167 + <Formitem label="主要货物信息" prop="mainGoodsInfo">
393 - <el-select 168 + <el-input
394 - type="text" 169 + type="text"
395 - id="inputInner--packageTypeCode" 170 + class="inputShadow"
396 - v-model="formData.packageTypeCode" 171 + id="inputInner--mainGoodsInfo"
397 - clearable 172 + resize="none"
398 - placeholder="" 173 + v-model="formData.mainGoodsInfo"
399 - > 174 + clearable
400 - <el-option 175 + placeholder=""
401 - v-for="(item, index) in $store.getters.dict.PACKAGE_TYPE_CODE" 176 + ></el-input>
402 - :key="index" 177 + </Formitem>
403 - :label="item.itemChineseName" 178 + </el-col>
404 - :value="item.itemValue" 179 + <!-- 申报类型 -->
405 - ></el-option> 180 + <el-col :span="3">
406 - </el-select> 181 + <Formitem label="贸易方式" prop="appType">
407 - </Formitem> 182 + <el-input
408 - </el-col> 183 + type="text"
409 - <el-col :span="3"> 184 + class="inputShadow"
410 - <Formitem label="件数" prop="packNo"> 185 + id="inputInner--appType"
186 + resize="none"
187 + v-model="formData.appType"
188 + disabled
189 + clearable
190 + placeholder=""
191 + ></el-input>
192 + </Formitem>
193 + </el-col>
194 + <!-- 申报日期 -->
195 + <el-col :span="3">
196 + <Formitem label="航班号" prop="flightNumber">
411 <el-input 197 <el-input
412 - type="text" 198 + type="text"
413 - class="inputShadow" 199 + class="inputShadow"
414 - id="inputInner--packNo" 200 + id="inputInner--flightNumber"
415 - resize="none" 201 + resize="none"
416 - v-model="formData.packNo" 202 + v-model="formData.flightNumber"
417 - clearable 203 + clearable
418 - placeholder="" 204 + placeholder=""
419 ></el-input> 205 ></el-input>
420 - </Formitem> 206 + </Formitem>
421 - </el-col> 207 + </el-col>
422 - <el-col :span="3"> 208 + <!-- 备注 -->
423 - <Formitem label="毛重(公斤)" prop="weight"> 209 + <el-col :span="3">
210 + <Formitem label="提运单号" prop="billno">
424 <el-input 211 <el-input
425 - type="text" 212 + type="text"
426 - class="inputShadow" 213 + class="inputShadow"
427 - id="inputInner--weight" 214 + id="inputInner--billno"
428 - resize="none" 215 + resize="none"
429 - v-model="formData.weight" 216 + v-model="formData.billno"
430 - clearable 217 + clearable
431 - placeholder="" 218 + placeholder=""
432 ></el-input> 219 ></el-input>
433 - </Formitem> 220 + </Formitem>
434 - </el-col> 221 + </el-col>
435 - <el-col :span="3"> 222 + <el-col :span="3">
436 - <Formitem label="净重(公斤)" prop="netWeight"> 223 + <Formitem label="总包号" prop="totalPackageNo">
437 <el-input 224 <el-input
438 - type="text" 225 + type="text"
439 - class="inputShadow" 226 + class="inputShadow"
440 - id="inputInner--netWeight" 227 + id="inputInner--totalPackageNo"
441 - resize="none" 228 + resize="none"
442 - v-model="formData.netWeight" 229 + v-model="formData.totalPackageNo"
443 - clearable 230 + clearable
444 - placeholder="" 231 + placeholder=""
445 ></el-input> 232 ></el-input>
446 - </Formitem> 233 + </Formitem>
447 - </el-col> 234 + </el-col>
448 - <el-col :span="3"> 235 + <el-col :span="3">
449 - <Formitem label="备注" prop="remark"> 236 + <Formitem label="监管场所代码" prop="regulatoryVenueCode">
237 + <el-input
238 + type="text"
239 + class="inputShadow"
240 + id="inputInner--regulatoryVenueCode"
241 + resize="none"
242 + v-model="formData.regulatoryVenueCode"
243 + clearable
244 + placeholder=""
245 + ></el-input>
246 + </Formitem>
247 + </el-col>
248 + <el-col :span="3">
249 + <Formitem label="许可证号" prop="licenseKey">
250 + <el-input
251 + type="text"
252 + class="inputShadow"
253 + id="inputInner--licenseKey"
254 + resize="none"
255 + v-model="formData.licenseKey"
256 + clearable
257 + placeholder=""
258 + ></el-input>
259 + </Formitem>
260 + </el-col>
261 + </el-row>
262 + <el-row :gutter="5">
263 + <el-col :span="3">
264 + <Formitem label="运抵国(地区)" prop="destinationCountryRegion">
265 + <el-select
266 + type="text"
267 + id="inputInner--destinationCountryRegion"
268 + v-model="formData.destinationCountryRegion"
269 + clearable
270 + placeholder=""
271 + >
272 + <el-option
273 + v-for="(item, index) in $store.getters.dict.COUNTRY_REGION_CODE"
274 + :key="index"
275 + :label="item.itemChineseName"
276 + :value="item.itemValue"
277 + ></el-option>
278 + </el-select>
279 + </Formitem>
280 + </el-col>
281 + <el-col :span="3">
282 + <Formitem label="运港代码" prop="portCode">
283 + <el-input
284 + type="text"
285 + class="inputShadow"
286 + id="inputInner--portCode"
287 + resize="none"
288 + v-model="formData.portCode"
289 + clearable
290 + placeholder=""
291 + ></el-input>
292 + </Formitem>
293 + </el-col>
294 + <el-col :span="3">
295 + <Formitem label="运费" prop="freight">
450 <el-input 296 <el-input
451 - type="text" 297 + type="text"
452 - class="inputShadow" 298 + class="inputShadow"
453 - id="inputInner--remark" 299 + id="inputInner--freight"
454 - resize="none" 300 + resize="none"
455 - v-model="formData.remark" 301 + v-model="formData.freight"
456 - clearable 302 + clearable
457 - placeholder="" 303 + placeholder=""
458 ></el-input> 304 ></el-input>
459 - </Formitem> 305 + </Formitem>
460 - </el-col> 306 + </el-col>
461 - </el-row> 307 + <el-col :span="3">
462 - </el-form> 308 + <Formitem label="运费币制" prop="freightCurrency">
309 + <el-select
310 + type="text"
311 + id="inputInner--freightCurrency"
312 + v-model="formData.freightCurrency"
313 + clearable
314 + placeholder=""
315 + >
316 + <el-option
317 + v-for="(item, index) in $store.getters.dict.CURRENCY"
318 + :key="index"
319 + :label="item.itemChineseName"
320 + :value="item.itemValue"
321 + ></el-option>
322 + </el-select>
323 + </Formitem>
324 + </el-col>
325 + <el-col :span="3">
326 + <Formitem label="运费标志" prop="freightTag">
327 + <el-select
328 + type="text"
329 + id="inputInner--freightTag"
330 + v-model="formData.freightTag"
331 + clearable
332 + placeholder=""
333 + >
334 + <el-option
335 + v-for="(item, index) in $store.getters.dict.DECLARE_F_FLAG"
336 + :key="index"
337 + :label="item.itemChineseName"
338 + :value="item.itemValue"
339 + ></el-option>
340 + </el-select>
341 + </Formitem>
342 + </el-col>
343 + <el-col :span="3">
344 + <Formitem label="保费" prop="insuredfee">
345 + <el-input
346 + type="text"
347 + class="inputShadow"
348 + id="inputInner--insuredfee"
349 + resize="none"
350 + v-model="formData.insuredfee"
351 + clearable
352 + placeholder=""
353 + ></el-input>
354 + </Formitem>
355 + </el-col>
356 + <el-col :span="3">
357 + <Formitem label="保费币制" prop="insuredfeeCurrency">
358 + <el-select
359 + type="text"
360 + id="inputInner--insuredfeeCurrency"
361 + v-model="formData.insuredfeeCurrency"
362 + clearable
363 + placeholder=""
364 + >
365 + <el-option
366 + v-for="(item, index) in $store.getters.dict.CURRENCY"
367 + :key="index"
368 + :label="item.itemChineseName"
369 + :value="item.itemValue"
370 + ></el-option>
371 + </el-select>
372 + </Formitem>
373 + </el-col>
374 + <el-col :span="3">
375 + <Formitem label="保费标志" prop="insuredfeeTag">
376 + <el-select
377 + type="text"
378 + id="inputInner--insuredfeeTag"
379 + v-model="formData.insuredfeeTag"
380 + clearable
381 + placeholder=""
382 + >
383 + <el-option
384 + v-for="(item, index) in $store.getters.dict.DECLARE_F_FLAG"
385 + :key="index"
386 + :label="item.itemChineseName"
387 + :value="item.itemValue"
388 + ></el-option>
389 + </el-select>
390 + </Formitem>
391 + </el-col>
392 + </el-row>
393 + <el-row :gutter="5">
394 + <el-col :span="3">
395 + <Formitem label="包装种类代码" prop="packageTypeCode">
396 + <el-select
397 + type="text"
398 + id="inputInner--packageTypeCode"
399 + v-model="formData.packageTypeCode"
400 + clearable
401 + placeholder=""
402 + >
403 + <el-option
404 + v-for="(item, index) in $store.getters.dict.PACKAGE_TYPE_CODE"
405 + :key="index"
406 + :label="item.itemChineseName"
407 + :value="item.itemValue"
408 + ></el-option>
409 + </el-select>
410 + </Formitem>
411 + </el-col>
412 + <el-col :span="3">
413 + <Formitem label="件数" prop="packNo">
414 + <el-input
415 + type="text"
416 + class="inputShadow"
417 + id="inputInner--packNo"
418 + resize="none"
419 + v-model="formData.packNo"
420 + clearable
421 + placeholder=""
422 + ></el-input>
423 + </Formitem>
424 + </el-col>
425 + <el-col :span="3">
426 + <Formitem label="毛重(公斤)" prop="weight">
427 + <el-input
428 + type="text"
429 + class="inputShadow"
430 + id="inputInner--weight"
431 + resize="none"
432 + v-model="formData.weight"
433 + clearable
434 + placeholder=""
435 + ></el-input>
436 + </Formitem>
437 + </el-col>
438 + <el-col :span="3">
439 + <Formitem label="净重(公斤)" prop="netWeight">
440 + <el-input
441 + type="text"
442 + class="inputShadow"
443 + id="inputInner--netWeight"
444 + resize="none"
445 + v-model="formData.netWeight"
446 + clearable
447 + placeholder=""
448 + ></el-input>
449 + </Formitem>
450 + </el-col>
451 + <el-col :span="9">
452 + <Formitem label="备注" prop="remark">
453 + <el-input
454 + type="textarea"
455 + class="inputShadow"
456 + id="inputInner--remark"
457 + resize="none"
458 + v-model="formData.remark"
459 + clearable
460 + placeholder=""
461 + ></el-input>
462 + </Formitem>
463 + </el-col>
464 + </el-row>
465 + </el-form>
466 + </section>
467 + <div class="fold-unfold">
468 + <img v-if="isFold" src="@/assets/images/fold.png" @click="()=>isFold = false" alt="">
469 + <img v-if="!isFold" src="@/assets/images/unfold.png" @click="()=>isFold = true" alt="">
470 + </div>
463 <div class="entryTitle" style="margin-top: 10px">商品明细</div> 471 <div class="entryTitle" style="margin-top: 10px">商品明细</div>
464 <section style="position:relative"> 472 <section style="position:relative">
465 <Table 473 <Table
...@@ -523,7 +531,9 @@ ...@@ -523,7 +531,9 @@
523 ebcDataList:[], 531 ebcDataList:[],
524 declareCustomsDataList:[], 532 declareCustomsDataList:[],
525 declareId: null, 533 declareId: null,
526 - formData: {}, 534 + formData: {
535 + appType:9610
536 + },
527 formRules:{ 537 formRules:{
528 ebccode: [ 538 ebccode: [
529 { required: true, message: '请选择电商企业', trigger: 'change' }, 539 { required: true, message: '请选择电商企业', trigger: 'change' },
...@@ -555,9 +565,6 @@ ...@@ -555,9 +565,6 @@
555 mainGoodsInfo: [ 565 mainGoodsInfo: [
556 { required: true, message: '请输入主要物品信息', trigger: 'blur' } 566 { required: true, message: '请输入主要物品信息', trigger: 'blur' }
557 ], 567 ],
558 - appType: [
559 - { required: true, message: '请选择贸易方式', trigger: 'change' }
560 - ],
561 flightNumber: [ 568 flightNumber: [
562 { required: true, message: '请输入航班号', trigger: 'blur' } 569 { required: true, message: '请输入航班号', trigger: 'blur' }
563 ], 570 ],
...@@ -724,7 +731,7 @@ ...@@ -724,7 +731,7 @@
724 }, 731 },
725 logtableType: true, 732 logtableType: true,
726 expandRowKeys:[], 733 expandRowKeys:[],
727 - 734 + isFold: false
728 735
729 }; 736 };
730 }, 737 },
...@@ -771,6 +778,7 @@ ...@@ -771,6 +778,7 @@
771 console.log(1111, res) 778 console.log(1111, res)
772 if (res.code == 200) { 779 if (res.code == 200) {
773 this.formData = res.data.declare 780 this.formData = res.data.declare
781 + this.formData.appType=9610
774 this.formData.orderNo = this.formData.orderno 782 this.formData.orderNo = this.formData.orderno
775 this.detailData = res.data.product.length ? res.data.product.map((item, index) =>{ 783 this.detailData = res.data.product.length ? res.data.product.map((item, index) =>{
776 item.gnum = index+1 784 item.gnum = index+1
...@@ -849,15 +857,16 @@ ...@@ -849,15 +857,16 @@
849 857
850 //提交更新数据 858 //提交更新数据
851 submitEditedReportDatas(){ 859 submitEditedReportDatas(){
852 - let data = { 860 + this.$refs.editForm.validate((valid) => {
853 - declare: this.formData, 861 + if (valid) {
854 - product: this.detailData 862 + let data = {
855 - } 863 + declare: this.formData,
856 - 864 + product: this.detailData
865 + }
857 updateDeclareData(data).then(res =>{ 866 updateDeclareData(data).then(res =>{
858 - if (res.code == 200) { 867 + if (res.code == 200) {
859 - this.msgSuccess("数据更新成功"); 868 + this.msgSuccess("数据更新成功");
860 - this.queryDeclareData(this.declareId) 869 + this.queryDeclareData(this.declareId)
861 } else { 870 } else {
862 this.alertWarningMsg(res.message); 871 this.alertWarningMsg(res.message);
863 } 872 }
...@@ -865,6 +874,10 @@ ...@@ -865,6 +874,10 @@
865 }).catch(err =>{ 874 }).catch(err =>{
866 console.log(err) 875 console.log(err)
867 }) 876 })
877 + } else {
878 + return false;
879 + }
880 + });
868 }, 881 },
869 //取消编辑 882 //取消编辑
870 cancelEditedReportDatas(){ 883 cancelEditedReportDatas(){
...@@ -926,5 +939,23 @@ ...@@ -926,5 +939,23 @@
926 } 939 }
927 } 940 }
928 } 941 }
942 + .fedexFormEditStyle .el-form-item:has(.formError) {
943 + margin-bottom: 30px !important;
944 + }
945 + .fedexFormEditStyle .el-form-item .formError{
946 + padding:0 0.9375rem !important;
947 + }
948 + .partsHidden{
949 + height: 164px;
950 + overflow: hidden;
951 + }
952 + .fold-unfold{
953 + display: flex;
954 + justify-content: center;
955 + padding-top:8px;
956 + img{
957 + width: 22px;
958 + }
959 + }
929 </style> 960 </style>
930 961
...\ No newline at end of file ...\ No newline at end of file
......
1 +<template>
2 + <el-dialog
3 + class="entryDialog classCUploadDialog"
4 + title="批量修改"
5 + :visible.sync="batchModifyVisible"
6 + :show-close="false"
7 + width="60%"
8 + :close-on-click-modal="false"
9 + >
10 + <div>
11 + <el-form class="fedexFormStyle"
12 + ref="batchModifyForm"
13 + :model="batchModifyFormData"
14 + :rules="batchModifyFormRules"
15 + label-position="left"
16 + size="small"
17 + >
18 + <Formitem label="修改数据" prop="modifyData">
19 + <el-select
20 + type="text"
21 + v-model="batchModifyFormData.modifyData"
22 + clearable
23 + placeholder=""
24 + >
25 + <el-option
26 + v-for="(item, index) in modifyDataList"
27 + :key="index"
28 + :label="item.name"
29 + :value="item.value"
30 + ></el-option>
31 + </el-select>
32 + </Formitem>
33 + <Formitem label="修改内容" prop="modifyContent">
34 + <el-input
35 + type="text"
36 + class="inputShadow"
37 + resize="none"
38 + v-model="batchModifyFormData.modifyContent"
39 + clearable
40 + placeholder="请输入修改内容"
41 + ></el-input>
42 + </Formitem>
43 + </el-form>
44 + </div>
45 + <div class="dialogOption entrySave revokeOperation">
46 + <el-button
47 + class="entrySaveButton entrySaveButton-background revokeSubmitBtn"
48 + type="primary"
49 + @click="formSubmit"
50 + >确定</el-button>
51 + <el-button
52 + class="entrySaveButton"
53 + @click="cancelModify"
54 + >关闭</el-button>
55 + </div>
56 + </el-dialog>
57 + </template>
58 +
59 + <script>
60 + import { bathDeclareDate } from "@/api/declareData-api.js";
61 + export default {
62 + props: {
63 + showDialog: {
64 + type: Boolean,
65 + default: false,
66 + },
67 + selectedDatas:{
68 + type:Array,
69 + default:() => []
70 + },
71 + },
72 + data() {
73 + return {
74 + batchModifyVisible:false,
75 + batchModifyFormData:{
76 + modifyData:'',
77 + modifyContent:''
78 + },
79 + batchModifyFormRules: {
80 + modifyData: [{ required: true, message: '请选择修改数据', trigger: 'change' }],
81 + modifyContent: [{ required: true, message: '请输入修改内容', trigger: 'blur' }],
82 + },
83 + modifyDataList:[
84 + {name:'提运单号',value:'BILLNO'},
85 + {name:'航班航次号',value:'FLIGHT_NUMBER'},
86 + ]
87 + };
88 + },
89 + watch: {
90 + showDialog(val) {
91 + if (val) {
92 + this.batchModifyVisible = val
93 + this.batchModifyFormData.modifyData=""
94 + this.batchModifyFormData.modifyContent=""
95 + }
96 + },
97 + },
98 + created() {
99 + },
100 + methods: {
101 + formSubmit(){
102 + this.$refs.batchModifyForm.validate((valid) => {
103 + if (valid) {
104 + let obj = {
105 + declareIds: [],
106 + modifyData: this.batchModifyFormData.modifyData,
107 + modifyContent: this.batchModifyFormData.modifyContent,
108 + };
109 + this.selectedDatas.forEach((item) => {
110 + obj.declareIds.push(item.declareId);
111 + });
112 + console.log('datas==', obj)
113 + bathDeclareDate(obj).then((res) => {
114 + if (res.code === "200") {
115 + this.msgSuccess('批量修改成功')
116 + this.cancelModify()
117 + } else {
118 + this.alertWarningMsg(res.message);
119 + }
120 +
121 + })
122 + .catch((err) => {
123 + console.log(err);
124 + this.alertWarningMsg(err.message);
125 + this.cancelModify()
126 + });
127 + } else {
128 + return false;
129 + }
130 + });
131 + },
132 +
133 + cancelModify(){
134 + this.batchModifyVisible = false
135 + this.$emit('cancelBatchModify')
136 + }
137 + },
138 + };
139 + </script>
140 +
141 + <style lang="scss" scoped>
142 + @import "@/assets/styles/variables.scss";
143 + .modelItem {
144 + width: 100%;
145 + .modelItem-title {
146 + display: flex;
147 + justify-content: space-between;
148 + margin-bottom: 5px;
149 + font-size: 14px;
150 + font-weight: 600;
151 + color: #333;
152 + }
153 + }
154 + .revokeOperation{
155 + margin-bottom:25px;
156 + .revokeSubmitBtn{
157 + margin-right: 30px;
158 + }
159 + }
160 + </style>
161 +
...\ No newline at end of file ...\ No newline at end of file
1 +<template>
2 + <el-dialog
3 + class="entryDialog classCUploadDialog"
4 + title="申报数据导出"
5 + :visible.sync="datasExportVisible"
6 + :show-close="false"
7 + width="60%"
8 + :close-on-click-modal="false"
9 + >
10 + <div>
11 + <el-form class="fedexFormStyle"
12 + ref="selectTemplateForm"
13 + :model="selectTemplateFormData"
14 + :rules="selectTemplateFormRules"
15 + label-position="left"
16 + size="small"
17 + >
18 + <Formitem label="模板类型" prop="dataSource">
19 + <el-select
20 + type="text"
21 + v-model="selectTemplateFormData.dataSource"
22 + clearable
23 + placeholder=""
24 + >
25 + <el-option
26 + v-for="(item, index) in $store.getters.dict.TEMPLATE_TYPE"
27 + :key="index"
28 + :label="item.itemChineseName"
29 + :value="item.itemValue"
30 + ></el-option>
31 + </el-select>
32 + </Formitem>
33 + </el-form>
34 + </div>
35 + <div class="dialogOption entrySave revokeOperation">
36 + <el-button
37 + class="entrySaveButton entrySaveButton-background revokeSubmitBtn"
38 + type="primary"
39 + @click="startDownload"
40 + >确定</el-button>
41 + <el-button
42 + class="entrySaveButton"
43 + @click="cancelDownload"
44 + >关闭</el-button>
45 + </div>
46 + </el-dialog>
47 + </template>
48 +
49 + <script>
50 + export default {
51 + props: {
52 + showDialog: {
53 + type: Boolean,
54 + default: false,
55 + }
56 + },
57 + data() {
58 + return {
59 + datasExportVisible:false,
60 + selectTemplateFormData:{
61 + dataSource:''
62 + },
63 + selectTemplateFormRules: {
64 + dataSource: [
65 + { required: true, message: '请选择模板类型', trigger: 'change' }
66 + ],
67 + }
68 + };
69 + },
70 + watch: {
71 + showDialog(val) {
72 + if (val) {
73 + this.datasExportVisible = val
74 + this.selectTemplateFormData.dataSource=""
75 + }
76 + },
77 + },
78 + created() {
79 + },
80 + methods: {
81 + startDownload(){
82 + this.$refs.selectTemplateForm.validate((valid) => {
83 + if (valid) {
84 + this.$emit('startDatasExport', this.selectTemplateFormData.dataSource)
85 + } else {
86 + return false;
87 + }
88 + });
89 + },
90 +
91 + cancelDownload(){
92 + this.datasExportVisible = false
93 + this.selectTemplateFormData.dataSource=""
94 + this.$emit('cancelDatasExport')
95 + }
96 + },
97 + };
98 + </script>
99 +
100 + <style lang="scss" scoped>
101 + @import "@/assets/styles/variables.scss";
102 + .modelItem {
103 + width: 100%;
104 + .modelItem-title {
105 + display: flex;
106 + justify-content: space-between;
107 + margin-bottom: 5px;
108 + font-size: 14px;
109 + font-weight: 600;
110 + color: #333;
111 + }
112 + }
113 + .revokeOperation{
114 + margin-bottom:25px;
115 + .revokeSubmitBtn{
116 + margin-right: 30px;
117 + }
118 + }
119 + </style>
120 +
...\ No newline at end of file ...\ No newline at end of file
...@@ -128,6 +128,14 @@ ...@@ -128,6 +128,14 @@
128 > 128 >
129 导入模版下载 129 导入模版下载
130 </el-button> 130 </el-button>
131 + <el-button
132 + class="entrySaveButton"
133 + size="small"
134 + icon="el-icon-edit"
135 + @click="batchModify"
136 + >
137 + 批量修改
138 + </el-button>
131 </div> 139 </div>
132 <div class="optionButton-right"> 140 <div class="optionButton-right">
133 <el-dropdown 141 <el-dropdown
...@@ -328,6 +336,21 @@ ...@@ -328,6 +336,21 @@
328 :selectedDatas="selected" 336 :selectedDatas="selected"
329 :dropdownCode="dropdownCode" 337 :dropdownCode="dropdownCode"
330 @cancelRevoke="cancelRevoke" /> 338 @cancelRevoke="cancelRevoke" />
339 + <TemplateDownloadDialog
340 + :showDialog="templateDownloadVisible"
341 + @cancelDownload="cancelDownload"
342 + />
343 + <ExportDialog
344 + ref="exportDialog"
345 + :showDialog="datasExportVisible"
346 + @cancelDatasExport="cancelDatasExport"
347 + @startDatasExport="startDatasExport"
348 + />
349 + <BatchModify
350 + :selectedDatas="selected"
351 + :showDialog="batchModifyVisible"
352 + @cancelBatchModify="cancelBatchModify"
353 + />
331 </div> 354 </div>
332 </template> 355 </template>
333 356
...@@ -345,11 +368,17 @@ import { ...@@ -345,11 +368,17 @@ import {
345 import { getDictData } from '@/api/system/dict-api.js' 368 import { getDictData } from '@/api/system/dict-api.js'
346 import DialogVue from "./dialog.vue"; 369 import DialogVue from "./dialog.vue";
347 import RevokeDialog from "./revokeDialog.vue"; 370 import RevokeDialog from "./revokeDialog.vue";
371 +import TemplateDownloadDialog from "./templateDownloadDialog.vue";
372 +import ExportDialog from "./exportDialog.vue";
373 +import BatchModify from "./batchModify.vue";
348 export default { 374 export default {
349 name: "ReportingData", 375 name: "ReportingData",
350 components: { 376 components: {
351 DialogVue, 377 DialogVue,
352 - RevokeDialog 378 + RevokeDialog,
379 + TemplateDownloadDialog,
380 + ExportDialog,
381 + BatchModify
353 }, 382 },
354 data() { 383 data() {
355 return { 384 return {
...@@ -474,9 +503,10 @@ export default { ...@@ -474,9 +503,10 @@ export default {
474 outerVisible: false, 503 outerVisible: false,
475 dropdownName: "一键申报", 504 dropdownName: "一键申报",
476 dropdownCode: "full", 505 dropdownCode: "full",
477 -
478 -
479 revokeVisible:false, 506 revokeVisible:false,
507 + templateDownloadVisible:false,
508 + datasExportVisible:false,
509 + batchModifyVisible:false
480 }; 510 };
481 }, 511 },
482 created() { 512 created() {
...@@ -553,53 +583,92 @@ export default { ...@@ -553,53 +583,92 @@ export default {
553 //下载模板 583 //下载模板
554 dwonloadModelFile() { 584 dwonloadModelFile() {
555 this.loadings.dwonloadModelLoading = true; 585 this.loadings.dwonloadModelLoading = true;
556 - this.fileDownload 586 + this.$store.dispatch("GetInfo").then(res =>{
557 - .downLoadZip( 587 + console.log('res====', res)
558 - "api", 588 + if (res.code == 200) {
559 - "declareDataModel", 589 + console.log('port===', res.data?.port?.split(','))
560 - "申报数据模板.xlsx", 590 + if (res.data?.port?.split(',').length == 2) {
561 - "xlsx", 591 + this.templateDownloadVisible = true
562 - "get" 592 + } else {
563 - ) 593 + this.fileDownload
564 - .finally(() => { 594 + .downLoadZip(
565 - this.loadings.dwonloadModelLoading = false; 595 + "api",
566 - }); 596 + "declareDataModel",
597 + "申报数据模板.xlsx",
598 + "xlsx",
599 + "get",
600 + {type: res.data?.port}
601 + )
602 + .finally(() => {
603 + this.cancelDownload()
604 + });
605 + }
606 + }
607 + }).catch(err =>{
608 + console.log(err)
609 + })
610 +
611 + },
612 +
613 + datasDownload(dataSource){
614 + let obj = {
615 + billNo: this.sreachFormData.billNo,
616 + declareId: [],
617 + logisticsNo: this.sreachFormData.logisticsNo,
618 + orderNo: this.sreachFormData.orderNo,
619 + receiptStatus: this.sreachFormData.receiptStatus,
620 + dataSource
621 + };
622 + obj.startCreateTime = "";
623 + obj.endCreateTime = "";
624 + if (this.sreachFormData.createTime.length > 0) {
625 + obj.startCreateTime = this.sreachFormData.createTime[0];
626 + obj.endCreateTime = this.sreachFormData.createTime[1];
627 + }
628 + this.selected.forEach((item) => {
629 + obj.declareId.push(item.declareId);
630 + });
631 + exportDeclareData(obj).then((res)=>{
632 + // if (res.code === "200") {
633 + // // this.alertSuccessMsg(res.message);
634 + // } else {
635 + // console.log(res.message);
636 + // this.alertWarningMsg(res.message);
637 + // }
638 +
639 + }).catch((err)=>{
640 + console.log(err);
641 + this.alertErrorMsg(err);
642 + }).finally(res =>{
643 + this.loadings.exportDeclareLoading = false;
644 + this.datasExportVisible = false
645 + this.$refs.exportDialog.datasExportVisible = false
646 + })
567 }, 647 },
568 //导出 648 //导出
569 downloadData() { 649 downloadData() {
570 this.loadings.exportDeclareLoading = true; 650 this.loadings.exportDeclareLoading = true;
571 - let obj = { 651 + this.$store.dispatch("GetInfo").then(res =>{
572 - billNo: this.sreachFormData.billNo, 652 + console.log('res====', res)
573 - declareId: [], 653 + if (res.code == 200) {
574 - logisticsNo: this.sreachFormData.logisticsNo, 654 + console.log('port===', res.data?.port?.split(','))
575 - orderNo: this.sreachFormData.orderNo, 655 + if (res.data?.port?.split(',').length == 2) {
576 - receiptStatus: this.sreachFormData.receiptStatus, 656 + this.datasExportVisible = true
577 - }; 657 + } else {
578 - obj.startCreateTime = ""; 658 + this.datasDownload(res.data?.port)
579 - obj.endCreateTime = ""; 659 + }
580 - if (this.sreachFormData.createTime.length > 0) { 660 + }
581 - obj.startCreateTime = this.sreachFormData.createTime[0]; 661 + }).catch(err =>{
582 - obj.endCreateTime = this.sreachFormData.createTime[1]; 662 + console.log(err)
583 - } 663 + })
584 - this.selected.forEach((item) => { 664 + },
585 - obj.declareId.push(item.declareId); 665 + startDatasExport(dataSource){
586 - }); 666 + this.datasDownload(dataSource)
587 - exportDeclareData(obj).then((res)=>{ 667 + },
588 - // if (res.code === "200") { 668 + cancelDatasExport(){
589 - // // this.alertSuccessMsg(res.message); 669 + this.datasExportVisible = false
590 - // } else { 670 + this.loadings.exportDeclareLoading = false;
591 - // console.log(res.message);
592 - // this.alertWarningMsg(res.message);
593 - // }
594 - this.loadings.exportDeclareLoading = false;
595 - }).catch((err)=>{
596 - console.log(err);
597 - this.alertErrorMsg(err);
598 - this.loadings.exportDeclareLoading = false;
599 - })
600 -
601 }, 671 },
602 -
603 672
604 //申报 673 //申报
605 declareData() { 674 declareData() {
...@@ -800,7 +869,21 @@ export default { ...@@ -800,7 +869,21 @@ export default {
800 params: { data: val }, 869 params: { data: val },
801 }); 870 });
802 }, 871 },
803 - 872 + cancelDownload(){
873 + this.loadings.dwonloadModelLoading = false;
874 + this.templateDownloadVisible = false
875 + },
876 + batchModify(){
877 + if (!this.selected.length) {
878 + this.alertWarningMsg("请选择数据!");
879 + return
880 + }
881 + this.batchModifyVisible = true
882 + },
883 + cancelBatchModify(){
884 + this.batchModifyVisible = false
885 + this.search(0);
886 + }
804 }, 887 },
805 }; 888 };
806 </script> 889 </script>
......
1 +<template>
2 + <el-dialog
3 + class="entryDialog classCUploadDialog"
4 + title="导入模板下载"
5 + :visible.sync="downloadTemplateVisible"
6 + :show-close="false"
7 + width="60%"
8 + :close-on-click-modal="false"
9 + >
10 + <div>
11 + <el-form class="fedexFormStyle"
12 + ref="selectTemplateForm"
13 + :model="selectTemplateFormData"
14 + :rules="selectTemplateFormRules"
15 + label-position="left"
16 + size="small"
17 + >
18 + <Formitem label="模板类型" prop="type">
19 + <el-select
20 + type="text"
21 + v-model="selectTemplateFormData.type"
22 + clearable
23 + placeholder=""
24 + >
25 + <el-option
26 + v-for="(item, index) in $store.getters.dict.TEMPLATE_TYPE"
27 + :key="index"
28 + :label="item.itemChineseName"
29 + :value="item.itemValue"
30 + ></el-option>
31 + </el-select>
32 + </Formitem>
33 + </el-form>
34 + </div>
35 + <div class="dialogOption entrySave revokeOperation">
36 + <el-button
37 + class="entrySaveButton entrySaveButton-background revokeSubmitBtn"
38 + type="primary"
39 + @click="startDownload"
40 + >确定</el-button>
41 + <el-button
42 + class="entrySaveButton"
43 + @click="cancelDownload"
44 + >关闭</el-button>
45 + </div>
46 + </el-dialog>
47 + </template>
48 +
49 + <script>
50 + export default {
51 + props: {
52 + showDialog: {
53 + type: Boolean,
54 + default: false,
55 + }
56 + },
57 + data() {
58 + return {
59 + downloadTemplateVisible:false,
60 + selectTemplateFormData:{
61 + type:''
62 + },
63 + selectTemplateFormRules: {
64 + type: [
65 + { required: true, message: '请选择模板类型', trigger: 'change' }
66 + ],
67 + }
68 + };
69 + },
70 + watch: {
71 + showDialog(val) {
72 + if (val) {
73 + this.downloadTemplateVisible = val
74 + }
75 + },
76 + },
77 + created() {
78 + this.selectTemplateFormData.type=""
79 + },
80 + methods: {
81 + startDownload(){
82 + this.$refs.selectTemplateForm.validate((valid) => {
83 + if (valid) {
84 + console.log('datas==', this.selectTemplateFormData)
85 + this.fileDownload
86 + .downLoadZip(
87 + "api",
88 + "declareDataModel",
89 + "申报数据模板.xlsx",
90 + "xlsx",
91 + "get",
92 + {type: this.selectTemplateFormData.type}
93 + )
94 + .finally(() => {
95 + this.cancelDownload()
96 + });
97 +
98 + } else {
99 + return false;
100 + }
101 + });
102 + },
103 +
104 + cancelDownload(){
105 + this.downloadTemplateVisible = false
106 + this.selectTemplateFormData.type=""
107 + this.$emit('cancelDownload')
108 + }
109 + },
110 + };
111 + </script>
112 +
113 + <style lang="scss" scoped>
114 + @import "@/assets/styles/variables.scss";
115 + .modelItem {
116 + width: 100%;
117 + .modelItem-title {
118 + display: flex;
119 + justify-content: space-between;
120 + margin-bottom: 5px;
121 + font-size: 14px;
122 + font-weight: 600;
123 + color: #333;
124 + }
125 + }
126 + .revokeOperation{
127 + margin-bottom:25px;
128 + .revokeSubmitBtn{
129 + margin-right: 30px;
130 + }
131 + }
132 + </style>
133 +
...\ No newline at end of file ...\ No newline at end of file