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
......
This diff is collapsed. Click to expand it.
...@@ -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(){
318 + this.$refs.editRowForm.validate((valid) => {
319 + if (valid) {
278 this.$emit('rowFormDataSave', {gnum: this.rowDatas.row.gnum, tableRowformData: this.tableRowformData}) 320 this.$emit('rowFormDataSave', {gnum: this.rowDatas.row.gnum, tableRowformData: this.tableRowformData})
279 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,8 +6,9 @@ ...@@ -6,8 +6,9 @@
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 + <section :class="{partsHidden:!isFold}">
9 <el-form 10 <el-form
10 - class="fedexFormStyle" 11 + class="fedexFormStyle fedexFormEditStyle"
11 ref="editForm" 12 ref="editForm"
12 :model="formData" 13 :model="formData"
13 :rules="formRules" 14 :rules="formRules"
...@@ -83,6 +84,7 @@ ...@@ -83,6 +84,7 @@
83 type="text" 84 type="text"
84 id="inputInner--declareCustomsCode" 85 id="inputInner--declareCustomsCode"
85 v-model="formData.declareCustomsCode" 86 v-model="formData.declareCustomsCode"
87 + filterable
86 clearable 88 clearable
87 placeholder="" 89 placeholder=""
88 > 90 >
...@@ -183,6 +185,7 @@ ...@@ -183,6 +185,7 @@
183 id="inputInner--appType" 185 id="inputInner--appType"
184 resize="none" 186 resize="none"
185 v-model="formData.appType" 187 v-model="formData.appType"
188 + disabled
186 clearable 189 clearable
187 placeholder="" 190 placeholder=""
188 ></el-input> 191 ></el-input>
...@@ -445,10 +448,10 @@ ...@@ -445,10 +448,10 @@
445 ></el-input> 448 ></el-input>
446 </Formitem> 449 </Formitem>
447 </el-col> 450 </el-col>
448 - <el-col :span="3"> 451 + <el-col :span="9">
449 <Formitem label="备注" prop="remark"> 452 <Formitem label="备注" prop="remark">
450 <el-input 453 <el-input
451 - type="text" 454 + type="textarea"
452 class="inputShadow" 455 class="inputShadow"
453 id="inputInner--remark" 456 id="inputInner--remark"
454 resize="none" 457 resize="none"
...@@ -460,6 +463,11 @@ ...@@ -460,6 +463,11 @@
460 </el-col> 463 </el-col>
461 </el-row> 464 </el-row>
462 </el-form> 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,11 +857,12 @@ ...@@ -849,11 +857,12 @@
849 857
850 //提交更新数据 858 //提交更新数据
851 submitEditedReportDatas(){ 859 submitEditedReportDatas(){
860 + this.$refs.editForm.validate((valid) => {
861 + if (valid) {
852 let data = { 862 let data = {
853 declare: this.formData, 863 declare: this.formData,
854 product: this.detailData 864 product: this.detailData
855 } 865 }
856 -
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("数据更新成功");
...@@ -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,27 +583,41 @@ export default { ...@@ -553,27 +583,41 @@ export default {
553 //下载模板 583 //下载模板
554 dwonloadModelFile() { 584 dwonloadModelFile() {
555 this.loadings.dwonloadModelLoading = true; 585 this.loadings.dwonloadModelLoading = true;
586 + this.$store.dispatch("GetInfo").then(res =>{
587 + console.log('res====', res)
588 + if (res.code == 200) {
589 + console.log('port===', res.data?.port?.split(','))
590 + if (res.data?.port?.split(',').length == 2) {
591 + this.templateDownloadVisible = true
592 + } else {
556 this.fileDownload 593 this.fileDownload
557 .downLoadZip( 594 .downLoadZip(
558 "api", 595 "api",
559 "declareDataModel", 596 "declareDataModel",
560 "申报数据模板.xlsx", 597 "申报数据模板.xlsx",
561 "xlsx", 598 "xlsx",
562 - "get" 599 + "get",
600 + {type: res.data?.port}
563 ) 601 )
564 .finally(() => { 602 .finally(() => {
565 - this.loadings.dwonloadModelLoading = false; 603 + this.cancelDownload()
566 }); 604 });
605 + }
606 + }
607 + }).catch(err =>{
608 + console.log(err)
609 + })
610 +
567 }, 611 },
568 - //导出 612 +
569 - downloadData() { 613 + datasDownload(dataSource){
570 - this.loadings.exportDeclareLoading = true;
571 let obj = { 614 let obj = {
572 billNo: this.sreachFormData.billNo, 615 billNo: this.sreachFormData.billNo,
573 declareId: [], 616 declareId: [],
574 logisticsNo: this.sreachFormData.logisticsNo, 617 logisticsNo: this.sreachFormData.logisticsNo,
575 orderNo: this.sreachFormData.orderNo, 618 orderNo: this.sreachFormData.orderNo,
576 receiptStatus: this.sreachFormData.receiptStatus, 619 receiptStatus: this.sreachFormData.receiptStatus,
620 + dataSource
577 }; 621 };
578 obj.startCreateTime = ""; 622 obj.startCreateTime = "";
579 obj.endCreateTime = ""; 623 obj.endCreateTime = "";
...@@ -591,15 +635,40 @@ export default { ...@@ -591,15 +635,40 @@ export default {
591 // console.log(res.message); 635 // console.log(res.message);
592 // this.alertWarningMsg(res.message); 636 // this.alertWarningMsg(res.message);
593 // } 637 // }
594 - this.loadings.exportDeclareLoading = false; 638 +
595 }).catch((err)=>{ 639 }).catch((err)=>{
596 console.log(err); 640 console.log(err);
597 this.alertErrorMsg(err); 641 this.alertErrorMsg(err);
642 + }).finally(res =>{
598 this.loadings.exportDeclareLoading = false; 643 this.loadings.exportDeclareLoading = false;
644 + this.datasExportVisible = false
645 + this.$refs.exportDialog.datasExportVisible = false
599 }) 646 })
600 -
601 }, 647 },
602 - 648 + //导出
649 + downloadData() {
650 + this.loadings.exportDeclareLoading = true;
651 + this.$store.dispatch("GetInfo").then(res =>{
652 + console.log('res====', res)
653 + if (res.code == 200) {
654 + console.log('port===', res.data?.port?.split(','))
655 + if (res.data?.port?.split(',').length == 2) {
656 + this.datasExportVisible = true
657 + } else {
658 + this.datasDownload(res.data?.port)
659 + }
660 + }
661 + }).catch(err =>{
662 + console.log(err)
663 + })
664 + },
665 + startDatasExport(dataSource){
666 + this.datasDownload(dataSource)
667 + },
668 + cancelDatasExport(){
669 + this.datasExportVisible = false
670 + this.loadings.exportDeclareLoading = false;
671 + },
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