作者 唐俊升

Merge remote-tracking branch 'origin/master'

  1 +import http from "../http";
  2 +
  3 +let baseUrl = 'air-server-transport'
  4 +let baseUrlResultMsg = 'air-server-transport/transport/returnmsg'
  5 +//查询海关代码,机场代码
  6 +export const selectBycustomcode = params => { return http.get(`${baseUrl}/transport/customcode/selectBycustomcode`, params); };
  7 +export const selectByairportcode = params => { return http.get(`${baseUrl}/transport/airportcode/selectByairportcode`, params); };
  8 +//在港动态信息
  9 +export const insertSelective = params => { return http.post(`${baseUrl}/transport/aircraftStaying/insertSelective`, params); };
  10 +export const updateByPrimaryKeySelective = params => { return http.post(`${baseUrl}/transport/aircraftStaying/updateByPrimaryKeySelective`, params); };
  11 +export const selectLists = params => { return http.get(`${baseUrl}/transport/aircraftStaying/selectLists`, params); };
  12 +export const sendAircraftstaying = params => { return http.post(`${baseUrl}/transport/aircraftStaying/sendAircraftstaying`, params); };
  13 +
  14 +
  15 +//查询回执列表
  16 +export const selectReturnMsgList=params=>{return http.get(`${baseUrlResultMsg}/selectReturnMsg`, params);};
  17 +
  18 +//单证申报
  19 +export const selectBillLists = params => { return http.get(`${baseUrl}/transport/bill/selectBillLists`, params); };
  20 +export const insertSelectiveBill = params => { return http.post(`${baseUrl}/transport/bill/insertSelectiveBill`, params); };
  21 +export const updateByPrimaryKeySelectiveBill = params => { return http.post(`${baseUrl}/transport/bill/updateByPrimaryKeySelectiveBill`, params); };
  22 +export const sendBillSdeclare = params => { return http.post(`${baseUrl}/transport/bill/sendBillSdeclare`, params); };
  23 +export const batchJZImport = params => { return http.postExcelData(`${baseUrl}/transport/bill/batchJZImport`, params); };
  24 +
  25 +
  26 +//预确报申报
  27 +export const selectPreList = params => { return http.get(`${baseUrl}/transport/prediction/selectList`, params); };
  28 +export const insertSelectivePre = params => { return http.post(`${baseUrl}/transport/prediction/insertSelective`, params); };
  29 +export const updateByPrimaryKeySelectivePre = params => { return http.post(`${baseUrl}/transport/prediction/updateByPrimaryKeySelective`, params); };
  30 +export const sendPrediction = params => { return http.post(`${baseUrl}/transport/prediction/sendPrediction`, params); };
  31 +export const canclePre = params => { return http.post(`${baseUrl}/transport/prediction/canclePre`, params); };
  32 +
  33 +
  34 +
  35 +
  36 +
  37 +
  38 +
  39 +
  40 +
  41 +
  42 +
  43 +
@@ -212,6 +212,12 @@ import ImportOrder from './views/exportorder/ImportOrder'; @@ -212,6 +212,12 @@ import ImportOrder from './views/exportorder/ImportOrder';
212 import ZhiDan from './views/zhidan/zhidan.vue' 212 import ZhiDan from './views/zhidan/zhidan.vue'
213 import Rate from './views/zhidan/rate.vue' 213 import Rate from './views/zhidan/rate.vue'
214 214
  215 +//运输工具2.0
  216 +import zaigang from './views/airtransport/zaigang.vue'
  217 +import gongtui from './views/airtransport/gongtui.vue'
  218 +import danzheng from './views/airtransport/danzheng.vue'
  219 +import yqdeclare from './views/airtransport/yqdeclare.vue'
  220 +
215 // 邮件风控 221 // 邮件风控
216 import MailRisk from './views/mail_risk/index.vue' 222 import MailRisk from './views/mail_risk/index.vue'
217 223
@@ -679,11 +685,11 @@ let routes = [ @@ -679,11 +685,11 @@ let routes = [
679 { 685 {
680 path: '/at', 686 path: '/at',
681 component: HomeNew, 687 component: HomeNew,
682 - name: '在港动态', 688 + name: '在港申报',
683 iconCls:'el-icon-goods', 689 iconCls:'el-icon-goods',
684 children:[ 690 children:[
685 - {path:'/dynamics',component:dynamics,name:'在港动态信息'},  
686 - {path:'/matter',component:matter,name:'物料申报管理'} 691 + {path:'/dynamics',component:dynamics,name:'在港动态申报'},
  692 + {path:'/matter',component:matter,name:'供退物料申报'}
687 ] 693 ]
688 }, 694 },
689 { 695 {
@@ -787,6 +793,18 @@ let routes = [ @@ -787,6 +793,18 @@ let routes = [
787 { path: '/page6', component: Page6, name: '综合楼空调站' }, 793 { path: '/page6', component: Page6, name: '综合楼空调站' },
788 ] 794 ]
789 }, 795 },
  796 + {
  797 + path: '/zg',
  798 + component: HomeNew,
  799 + name: '在港申报2.0',
  800 + iconCls:'el-icon-goods',
  801 + children:[
  802 + {path:'/gongtui',component:gongtui,name:'供退物料申报'},
  803 + {path:'/zaigang',component:zaigang,name:'在港动态申报'},
  804 + {path:'/danzheng',component:danzheng,name:'单证申报'},
  805 + {path:'/yqdeclare',component:yqdeclare,name:'预确报申报'}
  806 + ]
  807 + },
790 808
791 { 809 {
792 path: '*', 810 path: '*',
@@ -11,19 +11,19 @@ @@ -11,19 +11,19 @@
11 <el-form :label-position="labelPosition" :model="queryConfigure" :rules="rules" ref="queryFlight" 11 <el-form :label-position="labelPosition" :model="queryConfigure" :rules="rules" ref="queryFlight"
12 label-width="130px" class="demo-ruleForm"> 12 label-width="130px" class="demo-ruleForm">
13 <el-row> 13 <el-row>
14 - <el-col :span="5" style="margin-right: 70px"> 14 + <el-col :span="5">
15 <el-form-item label="承运人" prop="carrier" label-width="70px"> 15 <el-form-item label="承运人" prop="carrier" label-width="70px">
16 <el-input v-model="queryConfigure.carrier" style="width:120px"></el-input> 16 <el-input v-model="queryConfigure.carrier" style="width:120px"></el-input>
17 </el-form-item> 17 </el-form-item>
18 </el-col> 18 </el-col>
19 - <el-col :span="5" style="margin-right: 70px"> 19 + <el-col :span="5">
20 <el-form-item label="航班号" prop="flightno" label-width="70px"> 20 <el-form-item label="航班号" prop="flightno" label-width="70px">
21 <el-input v-model="queryConfigure.flightno" style="width:120px"></el-input> 21 <el-input v-model="queryConfigure.flightno" style="width:120px"></el-input>
22 </el-form-item> 22 </el-form-item>
23 </el-col> 23 </el-col>
24 <el-col :span="8" > 24 <el-col :span="8" >
25 - <el-button type="primary" icon="el-icon-search" @click="submitForm()">查询</el-button>  
26 - <el-button type="success" icon="el-icon-edit" @click="addForm()">新增</el-button> 25 + <el-button type="primary" @click="submitForm()">查询</el-button>
  26 + <el-button type="success" @click="addForm()">新增</el-button>
27 27
28 </el-col> 28 </el-col>
29 </el-row> 29 </el-row>
@@ -36,28 +36,19 @@ @@ -36,28 +36,19 @@
36 :data="tableData" 36 :data="tableData"
37 border 37 border
38 v-loading="tableloading" style="margin-bottom: 20px;margin-top: 20px"> 38 v-loading="tableloading" style="margin-bottom: 20px;margin-top: 20px">
39 - <el-table-column 39 + <!--<el-table-column
40 prop="carrier" 40 prop="carrier"
41 label="承运人"> 41 label="承运人">
42 - </el-table-column> 42 + </el-table-column>-->
43 <el-table-column 43 <el-table-column
44 prop="flightno" 44 prop="flightno"
45 label="航班号"> 45 label="航班号">
46 </el-table-column> 46 </el-table-column>
47 <el-table-column 47 <el-table-column
48 - prop="customscode"  
49 - label="申报关区">  
50 - </el-table-column>  
51 - <el-table-column  
52 prop="aircraftcode" 48 prop="aircraftcode"
53 label="航空注册器编号"> 49 label="航空注册器编号">
54 </el-table-column> 50 </el-table-column>
55 <el-table-column 51 <el-table-column
56 - prop="aircrafttype"  
57 - label="航空器备案类型"  
58 - show-overflow-tooltip>  
59 - </el-table-column>  
60 - <el-table-column  
61 prop="originstation" 52 prop="originstation"
62 label="航班起始站"> 53 label="航班起始站">
63 </el-table-column> 54 </el-table-column>
@@ -66,12 +57,37 @@ @@ -66,12 +57,37 @@
66 label="航班目的站"> 57 label="航班目的站">
67 </el-table-column> 58 </el-table-column>
68 <el-table-column 59 <el-table-column
  60 + prop="customscode"
  61 + label="申报关区">
  62 + </el-table-column>
  63 + <el-table-column
  64 + label="配置类型">
  65 + <template slot-scope="scope">
  66 + <span v-if="scope.row.type ==='2'">入境</span>
  67 + <span v-if="scope.row.type ==='1'">出境</span>
  68 + </template>
  69 + </el-table-column>
  70 + <!--<el-table-column
  71 + prop="aircrafttype"
  72 + label="航空器备案类型"
  73 + show-overflow-tooltip>
  74 + </el-table-column>-->
  75 +
  76 + <!--<el-table-column
69 prop="configstarttime" 77 prop="configstarttime"
70 label="配置生效时间"> 78 label="配置生效时间">
71 </el-table-column> 79 </el-table-column>
72 <el-table-column 80 <el-table-column
73 prop="configendtime" 81 prop="configendtime"
74 label="配置生效生效到期日"> 82 label="配置生效生效到期日">
  83 + </el-table-column>-->
  84 + <el-table-column
  85 + prop="entrytime"
  86 + label="入境时间">
  87 + </el-table-column>
  88 + <el-table-column
  89 + prop="departuretime"
  90 + label="出境时间">
75 </el-table-column> 91 </el-table-column>
76 <el-table-column 92 <el-table-column
77 label="配置状态"> 93 label="配置状态">
@@ -80,14 +96,8 @@ @@ -80,14 +96,8 @@
80 <span v-if="scope.row.configstatus ==='1'">生效</span> 96 <span v-if="scope.row.configstatus ==='1'">生效</span>
81 </template> 97 </template>
82 </el-table-column> 98 </el-table-column>
83 - <el-table-column  
84 - label="配置类型">  
85 - <template slot-scope="scope">  
86 - <span v-if="scope.row.type ==='2'">入境</span>  
87 - <span v-if="scope.row.type ==='1'">出境</span>  
88 - </template>  
89 - </el-table-column>  
90 - <el-table-column 99 +
  100 + <!--<el-table-column
91 prop="userid" 101 prop="userid"
92 label="创建人"> 102 label="创建人">
93 </el-table-column> 103 </el-table-column>
@@ -98,16 +108,9 @@ @@ -98,16 +108,9 @@
98 <el-table-column 108 <el-table-column
99 prop="updatedate" 109 prop="updatedate"
100 label="配置更新时间"> 110 label="配置更新时间">
101 - </el-table-column>  
102 - <el-table-column  
103 - prop="entrytime"  
104 - label="入境时间">  
105 - </el-table-column>  
106 - <el-table-column  
107 - prop="departuretime"  
108 - label="出境时间">  
109 - </el-table-column>  
110 - <el-table-column 111 + </el-table-column>-->
  112 +
  113 + <!--<el-table-column
111 prop="stayid" 114 prop="stayid"
112 label="停机位"> 115 label="停机位">
113 </el-table-column> 116 </el-table-column>
@@ -122,12 +125,12 @@ @@ -122,12 +125,12 @@
122 <el-table-column 125 <el-table-column
123 prop="remark" 126 prop="remark"
124 label="配置规则备注"> 127 label="配置规则备注">
125 - </el-table-column> 128 + </el-table-column>-->
126 <el-table-column 129 <el-table-column
127 fixed="right" 130 fixed="right"
128 prop="" 131 prop=""
129 - label="报文操作"  
130 - width="280"> 132 + label="信息操作"
  133 + width="180">
131 <template slot-scope="scope"> 134 <template slot-scope="scope">
132 <el-button 135 <el-button
133 size="mini" 136 size="mini"
@@ -187,8 +190,10 @@ @@ -187,8 +190,10 @@
187 <el-row> 190 <el-row>
188 <el-col :span="6"> 191 <el-col :span="6">
189 <el-form-item label="航空器备案类型" prop="aircrafttype" label-width="140px"> 192 <el-form-item label="航空器备案类型" prop="aircrafttype" label-width="140px">
190 - <el-input v-model="configure_editForm.aircrafttype"  
191 - ></el-input> 193 + <el-select v-model="configure_editForm.aircrafttype" placeholder="请选择">
  194 + <el-option label="通用航空器" value="1"></el-option>
  195 + <el-option label="航线航空器" value="2"></el-option>
  196 + </el-select>
192 </el-form-item> 197 </el-form-item>
193 </el-col> 198 </el-col>
194 <el-col :span="6"> 199 <el-col :span="6">
@@ -203,27 +208,27 @@ @@ -203,27 +208,27 @@
203 maxLength='3'></el-input> 208 maxLength='3'></el-input>
204 </el-form-item> 209 </el-form-item>
205 </el-col> 210 </el-col>
206 - <el-col :span="6"> 211 + <!--<el-col :span="6">
207 <el-form-item label="配置生效时间" prop="configstarttime" label-width="130px"> 212 <el-form-item label="配置生效时间" prop="configstarttime" label-width="130px">
208 <el-date-picker 213 <el-date-picker
209 v-model="configure_editForm.configstarttime" 214 v-model="configure_editForm.configstarttime"
210 type="datetime" 215 type="datetime"
211 placeholder="选择日期时间" 216 placeholder="选择日期时间"
212 - value-format="yyyyMMddhhmmss"  
213 - format="yyyyMMddhhmmss" 217 + value-format="yyyy-MM-dd HH:mm:ss"
  218 + format="yyyy-MM-dd HH:mm:ss"
214 style="width: 100%" 219 style="width: 100%"
215 :picker-options="pickerOptions"> 220 :picker-options="pickerOptions">
216 </el-date-picker> 221 </el-date-picker>
217 </el-form-item> 222 </el-form-item>
218 - </el-col> 223 + </el-col>-->
219 <el-col :span="6"> 224 <el-col :span="6">
220 <el-form-item label="配置生效到期日" prop="configendtime" label-width="140px"> 225 <el-form-item label="配置生效到期日" prop="configendtime" label-width="140px">
221 <el-date-picker 226 <el-date-picker
222 v-model="configure_editForm.configendtime" 227 v-model="configure_editForm.configendtime"
223 type="datetime" 228 type="datetime"
224 placeholder="选择日期时间" 229 placeholder="选择日期时间"
225 - value-format="yyyyMMddhhmmss"  
226 - format="yyyyMMddhhmmss" 230 + value-format="yyyy-MM-dd HH:mm:ss"
  231 + format="yyyy-MM-dd HH:mm:ss"
227 style="width: 100%" 232 style="width: 100%"
228 :picker-options="pickerOptions"> 233 :picker-options="pickerOptions">
229 </el-date-picker> 234 </el-date-picker>
@@ -247,12 +252,12 @@ @@ -247,12 +252,12 @@
247 </el-select> 252 </el-select>
248 </el-form-item> 253 </el-form-item>
249 </el-col> 254 </el-col>
250 - <el-col :span="6"> 255 + <!--<el-col :span="6">
251 <el-form-item label="创建人" prop="userid" label-width="130px"> 256 <el-form-item label="创建人" prop="userid" label-width="130px">
252 <el-input v-model="configure_editForm.userid"></el-input> 257 <el-input v-model="configure_editForm.userid"></el-input>
253 </el-form-item> 258 </el-form-item>
254 - </el-col>  
255 - <el-col :span="6"> 259 + </el-col>-->
  260 + <!--<el-col :span="6">
256 <el-form-item label="创建时间" prop="creatdate" label-width="130px"> 261 <el-form-item label="创建时间" prop="creatdate" label-width="130px">
257 <el-date-picker 262 <el-date-picker
258 v-model="configure_editForm.creatdate" 263 v-model="configure_editForm.creatdate"
@@ -277,15 +282,15 @@ @@ -277,15 +282,15 @@
277 :picker-options="pickerOptions"> 282 :picker-options="pickerOptions">
278 </el-date-picker> 283 </el-date-picker>
279 </el-form-item> 284 </el-form-item>
280 - </el-col> 285 + </el-col>-->
281 <el-col :span="6"> 286 <el-col :span="6">
282 <el-form-item label="入境时间" prop="entrytime" label-width="130px"> 287 <el-form-item label="入境时间" prop="entrytime" label-width="130px">
283 <el-date-picker 288 <el-date-picker
284 v-model="configure_editForm.entrytime" 289 v-model="configure_editForm.entrytime"
285 type="datetime" 290 type="datetime"
286 placeholder="选择日期时间" 291 placeholder="选择日期时间"
287 - value-format="yyyyMMddhhmmss"  
288 - format="yyyyMMddhhmmss" 292 + value-format="yyyy-MM-dd HH:mm:ss"
  293 + format="yyyy-MM-dd HH:mm:ss"
289 style="width:100%"> 294 style="width:100%">
290 </el-date-picker> 295 </el-date-picker>
291 </el-form-item> 296 </el-form-item>
@@ -296,8 +301,8 @@ @@ -296,8 +301,8 @@
296 v-model="configure_editForm.departuretime" 301 v-model="configure_editForm.departuretime"
297 type="datetime" 302 type="datetime"
298 placeholder="选择日期时间" 303 placeholder="选择日期时间"
299 - value-format="yyyyMMddhhmmss"  
300 - format="yyyyMMddhhmmss" 304 + value-format="yyyy-MM-dd HH:mm:ss"
  305 + format="yyyy-MM-dd HH:mm:ss"
301 style="width:100%"> 306 style="width:100%">
302 </el-date-picker> 307 </el-date-picker>
303 </el-form-item> 308 </el-form-item>
@@ -308,7 +313,7 @@ @@ -308,7 +313,7 @@
308 <el-input v-model="configure_editForm.stayid"></el-input> 313 <el-input v-model="configure_editForm.stayid"></el-input>
309 </el-form-item> 314 </el-form-item>
310 </el-col> 315 </el-col>
311 - <el-col :span="6"> 316 + <!--<el-col :span="6">
312 <el-form-item label="定时任务配置时间规则" prop="crontask" label-width="130px"> 317 <el-form-item label="定时任务配置时间规则" prop="crontask" label-width="130px">
313 <el-input v-model="configure_editForm.crontask"></el-input> 318 <el-input v-model="configure_editForm.crontask"></el-input>
314 </el-form-item> 319 </el-form-item>
@@ -322,7 +327,7 @@ @@ -322,7 +327,7 @@
322 <el-form-item label="配置规则备注" prop="remark" label-width="130px"> 327 <el-form-item label="配置规则备注" prop="remark" label-width="130px">
323 <el-input v-model="configure_editForm.remark"></el-input> 328 <el-input v-model="configure_editForm.remark"></el-input>
324 </el-form-item> 329 </el-form-item>
325 - </el-col> 330 + </el-col>-->
326 </el-form> 331 </el-form>
327 <div slot="footer" class="dialog-footer"> 332 <div slot="footer" class="dialog-footer">
328 <el-button @click="configure_dialog.addDialog = false" size="small">取 消</el-button> 333 <el-button @click="configure_dialog.addDialog = false" size="small">取 消</el-button>
@@ -396,13 +401,13 @@ @@ -396,13 +401,13 @@
396 flightno: '', 401 flightno: '',
397 customscode: '', 402 customscode: '',
398 aircraftcode: '', 403 aircraftcode: '',
399 - aircrafttype: '', 404 + aircrafttype: '1',
400 originstation: '', 405 originstation: '',
401 destinationstation: '', 406 destinationstation: '',
402 configstarttime: '', 407 configstarttime: '',
403 configendtime: '', 408 configendtime: '',
404 - configstatus: '',  
405 - type: '', 409 + configstatus: '1',
  410 + type: '2',
406 userid: '', 411 userid: '',
407 creatdate: '', 412 creatdate: '',
408 updatedate: '', 413 updatedate: '',
@@ -421,9 +426,6 @@ @@ -421,9 +426,6 @@
421 flightno: [ 426 flightno: [
422 { required: true, message: '请输入', trigger: 'change' } 427 { required: true, message: '请输入', trigger: 'change' }
423 ], 428 ],
424 - configstarttime: [  
425 - { required: true, message: '请输入', trigger: 'change' }  
426 - ],  
427 configendtime: [ 429 configendtime: [
428 { required: true, message: '请输入', trigger: 'change' } 430 { required: true, message: '请输入', trigger: 'change' }
429 ], 431 ],
@@ -433,12 +435,6 @@ @@ -433,12 +435,6 @@
433 type: [ 435 type: [
434 { required: true, message: '请输入', trigger: 'change' } 436 { required: true, message: '请输入', trigger: 'change' }
435 ], 437 ],
436 - creatdate: [  
437 - { required: true, message: '请输入', trigger: 'change' }  
438 - ],  
439 - updatedate: [  
440 - { required: true, message: '请输入', trigger: 'change' }  
441 - ],  
442 entrytime: [ 438 entrytime: [
443 { required: true, message: '请输入', trigger: 'change' } 439 { required: true, message: '请输入', trigger: 'change' }
444 ], 440 ],
@@ -460,9 +456,6 @@ @@ -460,9 +456,6 @@
460 destinationstation: [ 456 destinationstation: [
461 { required: true, message: '请输入', trigger: 'change' } 457 { required: true, message: '请输入', trigger: 'change' }
462 ], 458 ],
463 - userid: [  
464 - { required: true, message: '请输入', trigger: 'change' }  
465 - ],  
466 stayid: [ 459 stayid: [
467 { required: true, message: '请输入', trigger: 'change' } 460 { required: true, message: '请输入', trigger: 'change' }
468 ], 461 ],
  1 +<template>
  2 + <div>
  3 + <el-row :gutter="10">
  4 + <el-col :span="4">
  5 + <el-input
  6 + placeholder="航空器注册编号"
  7 + v-model="query.aircraftNo"
  8 + size="medium"
  9 + clearable>
  10 + </el-input>
  11 + </el-col>
  12 + <el-col :span="4">
  13 + <el-input
  14 + placeholder="进出境(港)航班号"
  15 + v-model="query.flightNo"
  16 + size="medium"
  17 + clearable>
  18 + </el-input>
  19 + </el-col>
  20 + <el-col :span="8">
  21 + <div class="block">
  22 + <el-date-picker
  23 + v-model="flightdate"
  24 + type="daterange"
  25 + :picker-options="pickerOptions"
  26 + range-separator="至"
  27 + start-placeholder="开始日期"
  28 + end-placeholder="结束日期"
  29 + value-format="yyyy-MM-dd"
  30 + size="medium"
  31 + align="right">
  32 + </el-date-picker>
  33 + </div>
  34 + </el-col>
  35 + <el-col :span="2">
  36 + <el-button size="medium" type="primary" @click="selectList" plain>查询</el-button>
  37 + </el-col>
  38 + <el-col :span="2">
  39 + <el-button size="medium" type="success" @click="addForm()" plain>新增</el-button>
  40 + </el-col>
  41 + <el-col :span="2">
  42 + <el-upload
  43 + class="upload-demo"
  44 + action=""
  45 + :before-upload="beforeUpload"
  46 + :http-request="uploadFile"
  47 + :show-file-list="false">
  48 + <el-button size="medium" type="success" plain>导入</el-button>
  49 + </el-upload>
  50 + </el-col>
  51 + </el-row>
  52 + <el-row :gutter="10">
  53 + <el-table
  54 + :data="tableData"
  55 + style="width: 100%"
  56 + row-key="uuid"
  57 + :expand-row-keys="expandedRowKeys"
  58 + border
  59 + stripe>
  60 + <el-table-column
  61 + align="center"
  62 + fixed="left"
  63 + label="信息操作"
  64 + width="80">
  65 + <template slot-scope="scope">
  66 + <el-button @click="ediForm(scope.row)" type="text" size="small">编辑</el-button>
  67 + </template>
  68 + </el-table-column>
  69 + <el-table-column type="expand" label="详细信息">
  70 + <template v-slot:default="{ row }">
  71 + <el-table
  72 + :data="row.billpersonList"
  73 + style="width: 70%;margin-left: 75px;margin-top: 10px"
  74 + row-key="autoId"
  75 + stripe
  76 + border
  77 + >
  78 + <el-table-column prop="name" label="姓名" />
  79 + <el-table-column width="80" prop="gender" label="性别">
  80 + <template slot-scope="scope">
  81 + {{ scope.row.gender === 'M' ? '男' : '女' }}
  82 + </template>
  83 + </el-table-column>
  84 + <el-table-column width="80" prop="nationality" label="国籍" />
  85 + <el-table-column label="职务">
  86 + <template slot-scope="scope">
  87 + {{ {
  88 + '1': '航线机长',
  89 + '2': '副驾驶',
  90 + '3': '乘务长',
  91 + '4': '安全员',
  92 + '5': '乘务员',
  93 + '6': '机械师',
  94 + '7': '随行人员',
  95 + '8': '工程师',
  96 + '9': '装载员',
  97 + '10': '押运员',
  98 + '11': '其它随机人员'
  99 + }[scope.row.gareer] || scope.row.gareer }}
  100 + </template>
  101 + </el-table-column>
  102 + <el-table-column prop="certType" :formatter="formatType" label="证件类型" />
  103 + <el-table-column prop="ceterNo" label="证件号" />
  104 + </el-table>
  105 + </template>
  106 + </el-table-column>
  107 + <el-table-column
  108 + prop="messageid"
  109 + label="编号"
  110 + width="320">
  111 + </el-table-column>
  112 +
  113 + <el-table-column
  114 + prop="aircraftNo"
  115 + label="航空器注册编号"
  116 + width="100">
  117 + </el-table-column>
  118 + <el-table-column
  119 + prop="arrivalno"
  120 + label="海关关区"
  121 + width="100">
  122 + </el-table-column>
  123 + <el-table-column
  124 + prop="flightNo"
  125 + label="进境(港)航班号"
  126 + width="120">
  127 + </el-table-column>
  128 + <el-table-column
  129 + prop="flightDate"
  130 + label="航班日期"
  131 + width="100">
  132 + </el-table-column>
  133 + <el-table-column
  134 + label="进出类型"
  135 + width="100">
  136 + <template slot-scope="scope">
  137 + {{ scope.row.accessFlag === 'D' ? '出港' : '进港' }}
  138 + </template>
  139 + </el-table-column>
  140 + <el-table-column
  141 + prop="arrivaldatetime"
  142 + label="出入(境)时间"
  143 + width="140">
  144 + </el-table-column>
  145 + <el-table-column
  146 + prop="statusMsg"
  147 + label="海关状态"
  148 + width="120">
  149 + </el-table-column>
  150 + <el-table-column
  151 + fixed="right"
  152 + label="操作"
  153 + width="200">
  154 + <template slot-scope="scope">
  155 + <el-button @click="returnlist(scope.row)" type="text" size="small">查看</el-button>
  156 + <el-button @click="sendstying(scope.row,2)" type="text" size="small">申报</el-button>
  157 + <el-button @click="sendstying(scope.row,5)" type="text" size="small">修改</el-button>
  158 + <el-button @click="sendstying(scope.row,3)" type="text" size="small">删除</el-button>
  159 + </template>
  160 + </el-table-column>
  161 + </el-table>
  162 + </el-row>
  163 + <el-row :gutter="10">
  164 + <div class="block">
  165 + <el-pagination
  166 + @size-change="handleSizeChange"
  167 + @current-change="handleCurrentChange"
  168 + :current-page="query.pageNum"
  169 + :page-sizes="[100, 200, 300, 400]"
  170 + :page-size="query.pageSize"
  171 + layout="total, sizes, prev, pager, next, jumper"
  172 + :total="total">
  173 + </el-pagination>
  174 + </div>
  175 + </el-row>
  176 + <el-row :gutter="10">
  177 + <el-dialog
  178 + title="回执列表"
  179 + :visible.sync="returnVisible"
  180 + width="55%"
  181 + :before-close="handleClose">
  182 + <el-table :data="gridData">
  183 + <el-table-column property="sendtime" label="操作时间" ></el-table-column>
  184 + <el-table-column property="createBy" label="操作人" ></el-table-column>
  185 + <el-table-column property="flightNo" label="航班号"></el-table-column>
  186 + <el-table-column property="flightDate" label="航班日期" ></el-table-column>
  187 + <el-table-column property="receiptContent" label="回执内容" ></el-table-column>
  188 + </el-table>
  189 + </el-dialog>
  190 + </el-row>
  191 + <el-row :gutter="10">
  192 + <el-dialog
  193 + :title="'单证信息'+textMap[dialogStatus]"
  194 + :visible.sync="dialogVisible"
  195 + width="80%"
  196 + center>
  197 + <el-form :model="form" :rules="rules" ref="form" label-width="130px">
  198 + <el-row :gutter="10">
  199 + <el-col :span="6">
  200 + <el-form-item label="航空注册器编号" prop="aircraftNo">
  201 + <el-input v-model="form.aircraftNo"></el-input>
  202 + </el-form-item>
  203 + </el-col>
  204 + <el-col :span="6">
  205 + <el-form-item label="航班号" prop="flightNo">
  206 + <el-input v-model="form.flightNo"></el-input>
  207 + </el-form-item>
  208 + </el-col>
  209 + <el-col :span="6">
  210 + <el-form-item label="航班日期" prop="flightDate" style="width: 100%;">
  211 + <div class="block">
  212 + <el-date-picker
  213 + v-model="form.flightDate"
  214 + type="datetime"
  215 + value-format="yyyy-MM-dd"
  216 + placeholder="yyyy-MM-dd"
  217 + style="width: 100%;">
  218 + </el-date-picker>
  219 + </div>
  220 + </el-form-item>
  221 + </el-col>
  222 + <el-col :span="6">
  223 + <el-form-item label="进出标识" prop="accessFlag">
  224 + <el-select v-model="form.accessFlag">
  225 + <el-option label="进港" value="A"></el-option>
  226 + <el-option label="出港" value="D"></el-option>
  227 + </el-select>
  228 + </el-form-item>
  229 + </el-col>
  230 + </el-row>
  231 + <el-row :gutter="10">
  232 + <el-col :span="6">
  233 + <el-form-item label="进出港口" prop="arrivalAirport">
  234 + <el-select v-model="form.arrivalAirport"
  235 + filterable
  236 + allow-create
  237 + default-first-option
  238 + remote
  239 + :remote-method="getAirportCode"
  240 + :loading="loading" placeholder="请选择">
  241 + <el-option
  242 + v-for="item in airportcodes"
  243 + :key="item.airportid"
  244 + :label="item.airportid"
  245 + :value="item.airportid">
  246 + <span style="float: left">{{ item.airportid }}</span>
  247 + <span style="float: right; color: #8492a6; font-size: 13px">-{{ item.airportname}}</span>
  248 + </el-option>
  249 + </el-select>
  250 + </el-form-item>
  251 + </el-col>
  252 + <el-col :span="6">
  253 + <el-form-item label="海关关区" prop="arrivalno">
  254 + <el-select v-model="form.arrivalno"
  255 + filterable
  256 + allow-create
  257 + default-first-option
  258 + remote
  259 + :remote-method="getCustomCode"
  260 + :loading="loading" placeholder="请选择">
  261 + <el-option
  262 + v-for="item in customcodes"
  263 + :key="item.customcode"
  264 + :label="item.customcode"
  265 + :value="item.customcode">
  266 + <span style="float: left">{{ item.customcode }}</span>
  267 + <span style="float: right; color: #8492a6; font-size: 13px">-{{ item.customname }}</span>
  268 + </el-option>
  269 + </el-select>
  270 + </el-form-item>
  271 + </el-col>
  272 + <el-col :span="6">
  273 + <el-form-item label="进出境时间" prop="arrivaldatetime" style="width: 100%;">
  274 + <el-date-picker
  275 + v-model="form.arrivaldatetime"
  276 + type="datetime"
  277 + value-format="yyyy-MM-dd HH:mm:ss"
  278 + placeholder="yyyy-MM-dd HH:mm:ss"
  279 + style="width: 100%;">
  280 + </el-date-picker>
  281 + </el-form-item>
  282 + </el-col>
  283 + <el-col :span="6">
  284 + <el-form-item label="机组人数" prop="aircrewSum">
  285 + <el-input v-model="form.aircrewSum"></el-input>
  286 + </el-form-item>
  287 + </el-col>
  288 + </el-row>
  289 + <el-row :guter="10">
  290 + <el-col :span="6">
  291 + <el-form-item label="国际旅客人数" prop="interPassengerSum">
  292 + <el-input v-model="form.interPassengerSum"></el-input>
  293 + </el-form-item>
  294 + </el-col>
  295 + <el-col :span="6">
  296 + <el-form-item label="国际行李件数" prop="interBaggageNum">
  297 + <el-input v-model="form.interBaggageNum"></el-input>
  298 + </el-form-item>
  299 + </el-col>
  300 + <el-col :span="6">
  301 + <el-form-item label="货邮件数" prop="goodsNum">
  302 + <el-input v-model="form.goodsNum"></el-input>
  303 + </el-form-item>
  304 + </el-col>
  305 + <el-col :span="6">
  306 + <el-form-item label="货邮重量(千克)" prop="goodsQuantity">
  307 + <el-input v-model="form.goodsQuantity"></el-input>
  308 + </el-form-item>
  309 + </el-col>
  310 + </el-row>
  311 + <el-row :guter="10">
  312 + <el-col :span="6">
  313 + <el-form-item label="是否有健康异常" prop="remark">
  314 + <el-select v-model="form.remark">
  315 + <el-option label="是" value="T"></el-option>
  316 + <el-option label="否" value="F"></el-option>
  317 + </el-select>
  318 + </el-form-item>
  319 + </el-col>
  320 + <el-col :span="6">
  321 + <el-form-item label="是否发现病媒生物" prop="remark1">
  322 + <el-select v-model="form.remark2">
  323 + <el-option label="是" value="T"></el-option>
  324 + <el-option label="否" value="F"></el-option>
  325 + </el-select>
  326 + </el-form-item>
  327 + </el-col>
  328 + <el-col :span="6">
  329 + <el-form-item label="是否发现外来有害生物" prop="remark2">
  330 + <el-select v-model="form.remark2">
  331 + <el-option label="是" value="T"></el-option>
  332 + <el-option label="否" value="F"></el-option>
  333 + </el-select>
  334 + </el-form-item>
  335 + </el-col>
  336 + <el-col :span="6">
  337 + <el-form-item label="是否有有效灭蚊证明" prop="remark3">
  338 + <el-select v-model="form.remark3">
  339 + <el-option label="是" value="T"></el-option>
  340 + <el-option label="否" value="F"></el-option>
  341 + </el-select>
  342 + </el-form-item>
  343 + </el-col>
  344 + </el-row>
  345 + <el-row :guter="10">
  346 + <el-col :span="18">
  347 + <el-form-item label="备注">
  348 + <el-input v-model="form.meno"></el-input>
  349 + </el-form-item>
  350 + </el-col>
  351 + <el-col :span="6">
  352 + <el-form-item label="">
  353 + <el-button @click="dialogVisible=false">取消</el-button>
  354 + <el-button type="primary" @click="dialogStatus==='create'?createData('form'):updateData('form')">暂存</el-button>
  355 + </el-form-item>
  356 + </el-col>
  357 + </el-row>
  358 + </el-form>
  359 + <el-divider content-position="left"><span style="color: #1d8ce0">机组人员信息</span>
  360 + <el-divider direction="vertical"></el-divider>
  361 + <el-button type="primary" @click="addBillperson">新增机组人员</el-button>
  362 + <el-divider direction="vertical"></el-divider></el-divider>
  363 +
  364 + <el-table
  365 + :data="tableChldren"
  366 + style="width: 80%;margin-left: 75px;margin-top: 10px"
  367 + row-key="autoId"
  368 + stripe
  369 + border>
  370 + <el-table-column prop="name" label="姓名" />
  371 + <el-table-column width="80" prop="gender" label="性别">
  372 + <template slot-scope="scope">
  373 + {{ scope.row.gender === 'M' ? '男' : '女' }}
  374 + </template>
  375 + </el-table-column>
  376 + <el-table-column width="80" prop="nationality" label="国籍" />
  377 + <el-table-column label="职务">
  378 + <template slot-scope="scope">
  379 + {{ {
  380 + '1': '航线机长',
  381 + '2': '副驾驶',
  382 + '3': '乘务长',
  383 + '4': '安全员',
  384 + '5': '乘务员',
  385 + '6': '机械师',
  386 + '7': '随行人员',
  387 + '8': '工程师',
  388 + '9': '装载员',
  389 + '10': '押运员',
  390 + '11': '其它随机人员'
  391 + }[scope.row.gareer] || scope.row.gareer }}
  392 + </template>
  393 + </el-table-column>
  394 + <el-table-column prop="certType" :formatter="formatType" label="证件类型" />
  395 + <el-table-column prop="ceterNo" label="证件号" />
  396 + <el-table-column
  397 + fixed="right"
  398 + label="操作"
  399 + width="50">
  400 + <template slot-scope="scope">
  401 + <el-button @click.native.prevent="deleteRow(scope.$index, tableChldren)" type="text" size="small">删除</el-button>
  402 + </template>
  403 + </el-table-column>
  404 + </el-table>
  405 + </el-dialog>
  406 + <el-dialog title="机组人员添加" :visible.sync="dialogFormVisible" width="70%"
  407 + center>
  408 + <el-form :model="billperson" :rules="rules" ref="billperson" label-width="100px">
  409 + <el-row :gutter="10">
  410 + <el-col :span="6">
  411 + <el-form-item label="姓名" prop="name">
  412 + <el-input v-model="billperson.name"></el-input>
  413 + </el-form-item>
  414 + </el-col>
  415 + <el-col :span="6">
  416 + <el-form-item label="性别" prop="gender">
  417 + <el-select v-model="billperson.gender">
  418 + <el-option label="男" value="M"></el-option>
  419 + <el-option label="女" value="F"></el-option>
  420 + </el-select>
  421 + </el-form-item>
  422 + </el-col>
  423 + <el-col :span="6">
  424 + <el-form-item label="国籍" prop="nationality">
  425 + <el-select v-model="billperson.nationality"
  426 + filterable
  427 + @click.native="getCountry"
  428 + @change="selectChange"
  429 + default-first-option
  430 + :loading="loading" placeholder="请选择"
  431 + style="text-transform:uppercase">
  432 + <el-option
  433 + v-for="item in countryOptions"
  434 + :key="item.countryid"
  435 + :label="item.countryid+'-'+item.countrydescchn"
  436 + :value="item.countryid">
  437 + <span style="float: left">{{ item.countryid }}</span>
  438 + <span style="float: right; color: #8492a6; font-size: 13px">{{ item.countrydescchn }}</span>
  439 + </el-option>
  440 + </el-select>
  441 + </el-form-item>
  442 + </el-col>
  443 + <el-col :span="6">
  444 + <el-form-item label="职务" prop="gareer">
  445 + <el-select v-model="billperson.gareer" placeholder="请选择">
  446 + <el-option label="1-航线机长" value="1"></el-option>
  447 + <el-option label="2-副驾驶" value="2"></el-option>
  448 + <el-option label="3-乘务长" value="3"></el-option>
  449 + <el-option label="4-安全员" value="4"></el-option>
  450 + <el-option label="5-乘务员" value="5"></el-option>
  451 + <el-option label="6-机械师" value="6"></el-option>
  452 + <el-option label="7-随行人员" value="7"></el-option>
  453 + <el-option label="8-工程师" value="8"></el-option>
  454 + <el-option label="9-装载员" value="9"></el-option>
  455 + <el-option label="10-押运员" value="10"></el-option>
  456 + <el-option label="11-其它随机人员" value="11"></el-option>
  457 + </el-select>
  458 + </el-form-item>
  459 + </el-col>
  460 + <el-col :span="6">
  461 + <el-form-item label="证件类型" prop="certType">
  462 + <el-select v-model="billperson.certType"
  463 + filterable
  464 + @click.native="getCreden"
  465 + :loading="loading" placeholder="请选择">
  466 + <el-option
  467 + v-for="item in certOptions"
  468 + :key="item.serialno"
  469 + :label="item.serialno+'-'+item.credenname"
  470 + :value="item.serialno">
  471 + <span style="float: left">{{ item.serialno }}</span>
  472 + <span style="float: right; color: #8492a6; font-size: 13px">{{ item.credenname }}</span>
  473 + </el-option>
  474 + </el-select>
  475 + </el-form-item>
  476 + </el-col>
  477 + <el-col :span="6">
  478 + <el-form-item label="证件号码" prop="ceterNo">
  479 + <el-input v-model="billperson.ceterNo" placeholder="请输入"></el-input>
  480 + </el-form-item>
  481 + </el-col>
  482 + <el-col :span="6">
  483 + <el-form-item label="备注" prop="meno">
  484 + <el-input v-model="billperson.meno" placeholder="请输入"></el-input>
  485 + </el-form-item>
  486 + </el-col>
  487 + <el-col :span="6">
  488 + <el-form-item>
  489 + <el-button type="primary" @click="addRow('billperson')">添加</el-button>
  490 + </el-form-item>
  491 + </el-col>
  492 + </el-row>
  493 +
  494 + </el-form>
  495 + </el-dialog>
  496 + </el-row>
  497 + </div>
  498 +</template>
  499 +<script>
  500 + import {
  501 + insertSelectiveBill,
  502 + selectBillLists,
  503 + selectByairportcode,
  504 + selectBycustomcode,
  505 + selectReturnMsgList, sendBillSdeclare, updateByPrimaryKeySelectiveBill,batchJZImport
  506 + } from "../../api/transport/transport2.0";
  507 + import {selectCountry, selectCreden} from "../../api/transport";
  508 + import {importExcel} from "../../api/consigner/exportOrder";
  509 +
  510 + export default{
  511 + data(){
  512 + return{
  513 + certOptions:[],
  514 + countryOptions:[],
  515 + countryid:'',
  516 + dialogFormVisible:false,
  517 + tableChldren:[],
  518 + dialogVisible: false,
  519 + dialogStatus:'',
  520 + textMap:{
  521 + update: '编辑',
  522 + create: '新增'
  523 + },
  524 + tableData:[],
  525 + expandedRowKeys: [],
  526 + query:{
  527 + aircraftNo:'',
  528 + flightNo:'',
  529 + starttime:'',
  530 + endtime:'',
  531 + pageNum:0,
  532 + pageSize:10,
  533 + },
  534 + form: {
  535 + uuid: '',
  536 + aircraftNo: '',
  537 + flightNo: '',
  538 + flightDate: '', // Use JavaScript Date object
  539 + accessFlag: 'A',
  540 + departureAirport: '',
  541 + departuredatetime: '', // Use JavaScript Date object
  542 + departureno: '',
  543 + arrivalAirport: '',
  544 + arrivaldatetime: '', // Use JavaScript Date object
  545 + arrivalno: '',
  546 + aircrewSum: 0,
  547 + interPassengerSum: 0,
  548 + localePassengerSum: 0,
  549 + interBaggageNum: 0,
  550 + localeBaggageNum: 0,
  551 + goodsNum: 0,
  552 + goodsQuantity: 0,
  553 + cargoBillNum: 0,
  554 + passengerPage: 0,
  555 + aircrewBillNum: 0,
  556 + aircrewCargoBillNum: 0,
  557 + arrivalPosition: '',
  558 + bussinessType: '',
  559 + messageid: '',
  560 + status: '',
  561 + statusMsg: '',
  562 + meno: '',
  563 + createTime: '', // Use JavaScript Date object
  564 + createBy: '',
  565 + updateTime: '', // Use JavaScript Date object
  566 + updateBy: '',
  567 + isDelete: '',
  568 + remark: 'F',
  569 + remark1: 'F',
  570 + remark2: 'F',
  571 + remark3: 'F',
  572 + billpersonList: [] // Array of objects that represent the AIR_BILLPERSON model
  573 + },
  574 + billperson: {
  575 + autoId: '',
  576 + name: '',
  577 + gender: '',
  578 + gareer: '', // Note: This might be a typo in the original Java class. It should probably be "career".
  579 + nationality: '',
  580 + certType: '',
  581 + ceterNo: '', // Note: This might also be a typo. It should probably be "centerNo" or "certNo".
  582 + createTime: '', // Use JavaScript Date object
  583 + createBy: '',
  584 + updateTime: '', // Use JavaScript Date object
  585 + updateBy: '',
  586 + meno: '',
  587 + isDelete: '0',
  588 + billsId: ''
  589 + },
  590 + flightdate:['2021-11-17', '2024-12-24'],
  591 + pickerOptions: {
  592 + shortcuts: [{
  593 + text: '最近一周',
  594 + onClick(picker) {
  595 + const end = new Date();
  596 + const start = new Date();
  597 + start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
  598 + picker.$emit('pick', [start, end]);
  599 + }
  600 + }, {
  601 + text: '最近一个月',
  602 + onClick(picker) {
  603 + const end = new Date();
  604 + const start = new Date();
  605 + start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
  606 + picker.$emit('pick', [start, end]);
  607 + }
  608 + }, {
  609 + text: '最近三个月',
  610 + onClick(picker) {
  611 + const end = new Date();
  612 + const start = new Date();
  613 + start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
  614 + picker.$emit('pick', [start, end]);
  615 + }
  616 + }]
  617 + },
  618 + total:0,
  619 + returnVisible:false,
  620 + gridData:[],
  621 + customcodes:[],
  622 + airportcodes:[],
  623 + loading:false,
  624 + rules: {
  625 + aircraftNo: [
  626 + { required: true, message: '航空注册器编号不可为空', trigger: 'blur' }
  627 + ],
  628 + flightNo: [
  629 + { required: true, message: '航班号不可为空', trigger: 'blur' }
  630 + ],
  631 + flightDate: [
  632 + { required: true, message: '航班日期不可为空', trigger: 'blur' }
  633 + ],
  634 + arrivalAirport: [
  635 + { required: true, message: '进出港口不可为空', trigger: 'blur' }
  636 + ],
  637 + arrivalno: [
  638 + { required: true, message: '海关关区不可为空', trigger: 'blur' }
  639 + ],
  640 + arrivaldatetime: [
  641 + { required: true, message: '进出境时间不可为空', trigger: 'blur' }
  642 + ],
  643 + aircrewSum: [
  644 + { required: true, message: '机组人数不可为空', trigger: 'blur' }
  645 + ],
  646 + interPassengerSum: [
  647 + { required: true, message: '国际旅客不可为空', trigger: 'blur' }
  648 + ],
  649 + interBaggageNum: [
  650 + { required: true, message: '国际行李件数不可为空', trigger: 'blur' }
  651 + ],
  652 + name: [
  653 + { required: true, message: '机组人员姓名不可为空', trigger: 'blur' }
  654 + ],
  655 + nationality: [
  656 + { required: true, message: '机组人员国籍不可为空', trigger: 'blur' }
  657 + ],
  658 + gender: [
  659 + { required: true, message: '机组人员性别不可为空', trigger: 'blur' }
  660 + ],
  661 + gareer: [
  662 + { required: true, message: '机组人员职务不可为空', trigger: 'blur' }
  663 + ],
  664 + certType: [
  665 + { required: true, message: '机组人员类型不可为空', trigger: 'blur' }
  666 + ],
  667 + ceterNo: [
  668 + { required: true, message: '机组人员证件号不可为空', trigger: 'blur' }
  669 + ],
  670 + },
  671 + }
  672 + },
  673 + methods:{
  674 + //导入订单excel
  675 + beforeUpload(file) {
  676 + // 检查文件类型
  677 + const isExcel = file.type === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' || file.type === 'application/vnd.ms-excel';
  678 + if (!isExcel) {
  679 + this.$message.error('上传文件只能是 Excel 格式!');
  680 + return false; // 取消文件上传
  681 + }
  682 + return true; // 允许上传
  683 +
  684 + },
  685 + uploadFile({ file, onSuccess, onError }){
  686 + // 生成 FormData 对象
  687 + const formData = new FormData();
  688 + formData.append('file', file);
  689 + batchJZImport(formData).then((response) => {
  690 + const res = response.data
  691 + if (res.code !== '200') {
  692 + return this.$message.error(res.msg);
  693 + }
  694 + this.$message.success(res.msg);
  695 + this.selectList();
  696 + onSuccess(response.data); // 调用 onSuccess 回调通知上传成功
  697 + }).catch(error => {
  698 + // 关闭加载
  699 + this.$message.error(error.toString())
  700 + onError(error); // 调用 onError 回调通知上传失败
  701 + })
  702 + },
  703 + addBillperson(){
  704 + this.dialogFormVisible = true;
  705 + },
  706 + addRow(formName) {
  707 + this.$refs[formName].validate((valid) => {
  708 + if (valid) {
  709 + const newMember = {
  710 + autoId: this.tableChldren.length > 0 ? this.tableChldren[this.tableChldren.length - 1].autoId + 1 : 1,
  711 + name: this.billperson.name,
  712 + gender: this.billperson.gender,
  713 + nationality: this.billperson.nationality,
  714 + gareer: this.billperson.gareer,
  715 + certType: this.billperson.certType,
  716 + ceterNo: this.billperson.ceterNo,
  717 + meno:this.billperson.meno,
  718 + createTime: '', // Use JavaScript Date object
  719 + createBy: '',
  720 + updateTime: '', // Use JavaScript Date object
  721 + updateBy: '',
  722 + isDelete: '0',
  723 + billsId: ''
  724 + };
  725 + this.tableChldren.push(newMember);
  726 + this.resetForm();
  727 + this.dialogFormVisible = false;
  728 + } else {
  729 + return false;
  730 + }
  731 + });
  732 + },
  733 + resetForm() {
  734 + this.billperson.name = '';
  735 + this.billperson.gender = '';
  736 + this.billperson.nationality = '';
  737 + this.billperson.gareer = '';
  738 + this.billperson.certType = '';
  739 + this.billperson.ceterNo = '';
  740 + },
  741 + deleteRow(index, rows) {
  742 + rows.splice(index, 1);
  743 + },
  744 + //暂存新增
  745 + createData(formName){
  746 + this.$refs[formName].validate((valid) => {
  747 + if (valid) {
  748 + this.form.departuredatetime=this.form.arrivaldatetime;
  749 + this.form.departureAirport=this.form.arrivalAirport;
  750 + insertSelectiveBill(this.form).then(res =>{
  751 + let response=res.data;
  752 + if(response.code=='200'){
  753 + this.dialogVisible=false;
  754 + this.$message.success(response.msg);
  755 + this.getList();
  756 + }else{
  757 + this.$message.error(response.msg)
  758 + }
  759 + });
  760 + } else {
  761 + return false;
  762 + }
  763 + });
  764 + },
  765 + //暂存更新
  766 + updateData(formName){
  767 + this.$refs[formName].validate((valid) => {
  768 + if (valid) {
  769 + this.form.departuredatetime=this.form.arrivaldatetime;
  770 + this.form.departureAirport=this.form.arrivalAirport;
  771 + updateByPrimaryKeySelectiveBill(this.form).then(res =>{
  772 + let response=res.data;
  773 + if(response.code=='200'){
  774 + this.dialogVisible=false;
  775 + Object.assign(this.$data, this.$options.data());
  776 + this.$message.success(response.msg);
  777 + this.getList();
  778 + }else{
  779 + this.$message.error(response.msg)
  780 + }
  781 + });
  782 + } else {
  783 + return false;
  784 + }
  785 + });
  786 + },
  787 + selectList(){
  788 + if(this.flightdate !== null && this.flightdate !== ""){
  789 + this.query.starttime = this.flightdate[0];
  790 + this.query.endtime = this.flightdate[1];
  791 + }else{
  792 + return this.$message.error('请选取时间区间')
  793 + }
  794 + selectBillLists(this.query).then((response) => {
  795 + const res = response.data
  796 + if (res.code !== '200') {
  797 + this.loading = false;
  798 + return this.$message.error('获取消息收发记录,失败!')
  799 + }
  800 + // 获取列表数据
  801 + this.tableData = res.data.list
  802 + //this.expandedRowKeys = this.tableData.map(item => item.uuid);
  803 + // 获取列表的总记录数
  804 + this.total = res.data.total
  805 + this.loading = false;
  806 + this.$message.success('获取消息收发记录,成功!');
  807 + }).catch(error => {
  808 + // 关闭加载
  809 + this.$message.error(error.toString())
  810 + })
  811 + },
  812 + addForm(){
  813 + this.dialogVisible=true;
  814 + this.dialogStatus='create';
  815 + this.form={
  816 + uuid: '',
  817 + aircraftNo: '',
  818 + flightNo: '',
  819 + flightDate: '', // Use JavaScript Date object
  820 + accessFlag: 'A',
  821 + departureAirport: '',
  822 + departuredatetime: '', // Use JavaScript Date object
  823 + departureno: '',
  824 + arrivalAirport: '',
  825 + arrivaldatetime: '', // Use JavaScript Date object
  826 + arrivalno: '',
  827 + aircrewSum: 0,
  828 + interPassengerSum: 0,
  829 + localePassengerSum: 0,
  830 + interBaggageNum: 0,
  831 + localeBaggageNum: 0,
  832 + goodsNum: 0,
  833 + goodsQuantity: 0,
  834 + cargoBillNum: 0,
  835 + passengerPage: 0,
  836 + aircrewBillNum: 0,
  837 + aircrewCargoBillNum: 0,
  838 + arrivalPosition: '',
  839 + bussinessType: '',
  840 + messageid: '',
  841 + status: '',
  842 + statusMsg: '',
  843 + meno: '',
  844 + createTime: '', // Use JavaScript Date object
  845 + createBy: '',
  846 + updateTime: '', // Use JavaScript Date object
  847 + updateBy: '',
  848 + isDelete: '',
  849 + remark: 'F',
  850 + remark1: 'F',
  851 + remark2: 'F',
  852 + remark3: 'F',
  853 + billpersonList: [] // Array of objects that represent the AIR_BILLPERSON model
  854 + };
  855 + this.tableChldren=this.form.billpersonList;
  856 + },
  857 + ediForm(row){
  858 + this.dialogVisible=true;
  859 + this.dialogStatus='update';
  860 + this.form=row;
  861 + this.tableChldren=row.billpersonList;
  862 + },
  863 + sendstying(row,FunctionCode){
  864 + const params = {
  865 + row: row,
  866 + FunctionCode: FunctionCode
  867 + };
  868 + sendBillSdeclare(params).then(res =>{
  869 + let response=res.data;
  870 + if(response.code=='200'){
  871 + this.selectList();
  872 + this.$message.success(response.msg)
  873 + }else{
  874 + this.$message.error(response.msg)
  875 + }
  876 + });
  877 + },
  878 + formatType: function(row,column){
  879 + return row.certType=='06'?'一次有效台湾居民来往大陆通行证':row.certType=='11'?'外交护照':row.certType=='12'?'公务护照'
  880 + :row.certType=='13'?'因公普通护照':row.certType=='14'?'普通护照':row.certType=='15'?'中华人民共和国旅行证'
  881 + :row.certType=='16'?'五年有效台湾居民往来大陆通行证':row.certType=='17'?'海员证':row.certType=='20'?'中华人民共和国出入境通行证'
  882 + :row.certType=='21'?'前往港澳通行证(16页,多次有效)':row.certType=='22'?'前往港澳通行证(8页,一次有效)'
  883 + :row.certType=='23'?'前往港澳通行证':row.certType=='24'?'港澳同胞回乡证或港澳居民来往内地通行证'
  884 + :row.certType=='25'?'大陆居民来往台湾通行证':row.certType=='30'?'外国人出入境通行证':row.certType=='38'?'中华人民共和国回国证明'
  885 + :row.certType=='70'?'香港特别行政区护照':row.certType=='71'?'澳门特别行政区护照'
  886 + :row.certType=='72'?'因公往来香港澳门特别行政区通行证(官员)'
  887 + :row.certType=='73'?'因公往来香港澳门特别行政区通行证(普通)':row.certType=='74'?'中华人民共和国居民身份证':row.certType=='75'?'其他证件'
  888 + :row.certType=='98'?'其他因私证件(包括联合国通行证等)'
  889 + :row.certType=='99'?'其他因私证件(包括难民证等)':'';
  890 + },
  891 + handleSizeChange(val) {
  892 + this.query.pageSize=val;
  893 + this.selectList();
  894 + },
  895 + handleCurrentChange(val) {
  896 + this.query.pageNum=val;
  897 + this.selectList();
  898 + },
  899 + //查询回执列表
  900 + returnlist(row){
  901 + this.gridData=[];
  902 + let params={messageid:row.messageid};
  903 + selectReturnMsgList(params).then(res=>{
  904 + let response=res.data.data;
  905 + this.gridData=response;
  906 + });
  907 + this.returnVisible=true;
  908 + },
  909 + handleClose() {
  910 + this.returnVisible=false;
  911 + },
  912 + //获取关区代码
  913 + getCustomCode:function(query){
  914 + this.customcodes=[];
  915 + let params={customcode:query};
  916 + this.loading = true;
  917 + selectBycustomcode(params).then(res =>{
  918 + if (res !== '') {
  919 + setTimeout(() => {
  920 + this.loading = false;
  921 + this.customcodes=res.data.data;
  922 + }, 200);
  923 + } else {
  924 + this.customcodes = [];
  925 + }
  926 +
  927 + });
  928 + },
  929 + //获取机场代码
  930 + getAirportCode:function(query){
  931 + this.airportcodes=[];
  932 + let params={airportid:query};
  933 + this.loading = true;
  934 + selectByairportcode(params).then(res =>{
  935 + if (res !== '') {
  936 + setTimeout(() => {
  937 + this.loading = false;
  938 + this.airportcodes=res.data.data;
  939 + }, 200);
  940 + } else {
  941 + this.airportcodes = [];
  942 + }
  943 +
  944 + });
  945 + },
  946 + /*获取国籍*/
  947 + getCountry:function(query){
  948 + this.countryOptions=[];
  949 + let params={countryid:query};
  950 + this.loading = true;
  951 + selectCountry(params).then(res =>{
  952 + if (res!=null) {
  953 + console.log(res.data.data)
  954 + setTimeout(() => {
  955 + this.loading = false;
  956 + this.countryOptions=res.data.data;
  957 + }, 200);
  958 + } else {
  959 + this.countryOptions = [];
  960 + }
  961 +
  962 + });
  963 + },
  964 + selectChange:function(val){
  965 + console.log(val)
  966 + this.$emit('tellFarther',val);
  967 + },
  968 + /*获取证件*/
  969 + getCreden:function(query){
  970 + this.certOptions=[];
  971 + let params={serialno:query};
  972 + this.loading = true;
  973 + selectCreden(params).then(res =>{
  974 + if (res!=null) {
  975 + console.log(res.data.data)
  976 + setTimeout(() => {
  977 + this.loading = false;
  978 + this.certOptions=res.data.data;
  979 + }, 200);
  980 + } else {
  981 + this.certOptions = [];
  982 + }
  983 +
  984 + });
  985 + },
  986 + },
  987 + mounted() {
  988 + this.expandedRowKeys = this.tableData.map(item => item.uuid);
  989 + }
  990 + }
  991 +</script>
@@ -240,7 +240,7 @@ @@ -240,7 +240,7 @@
240 <el-col :span="24"> 240 <el-col :span="24">
241 <el-form-item> 241 <el-form-item>
242 <el-button size="small" style="margin-left: 500px;width: 100px" type="info" @click="trans_dialog.addDialog = false">取消</el-button> 242 <el-button size="small" style="margin-left: 500px;width: 100px" type="info" @click="trans_dialog.addDialog = false">取消</el-button>
243 - <el-button type="primary" size="small" style="margin-left: 20px;width: 100px" @click="dialogStatus==='create'?trans_add():trans_edit()">提交</el-button> 243 + <el-button type="primary" size="small" style="margin-left: 20px;width: 100px" @click="dialogStatus==='create'?trans_add('form'):trans_edit('form')">提交</el-button>
244 </el-form-item> 244 </el-form-item>
245 </el-col> 245 </el-col>
246 </el-row> 246 </el-row>
@@ -392,8 +392,8 @@ @@ -392,8 +392,8 @@
392 }, 392 },
393 393
394 // 新增功能 394 // 新增功能
395 - trans_add() { // 进行表单的预验证  
396 - this.$refs.form.validate(valid => { 395 + trans_add(formName) { // 进行表单的预验证
  396 + this.$refs[formName].validate((valid) => {
397 // 未通过,表单预校验 397 // 未通过,表单预校验
398 if (!valid) return 398 if (!valid) return
399 addAircraftStaying(this.form).then((response) => { 399 addAircraftStaying(this.form).then((response) => {
@@ -423,9 +423,9 @@ @@ -423,9 +423,9 @@
423 }) 423 })
424 }, 424 },
425 // 编辑功能 425 // 编辑功能
426 - trans_edit() { 426 + trans_edit(formName) {
427 // 进行表单的预验证 427 // 进行表单的预验证
428 - this.$refs.form.validate(valid => { 428 + this.$refs[formName].validate((valid) => {
429 // 未通过,表单预校验 429 // 未通过,表单预校验
430 if (!valid) return 430 if (!valid) return
431 addAircraftStaying(this.form).then((response) => { 431 addAircraftStaying(this.form).then((response) => {
  1 +<template>
  2 + <el-row :gutter="20">
  3 + <el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
  4 + <el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
  5 + <el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
  6 + <el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
  7 + </el-row>
  8 +</template>
  9 +<script>
  10 + export default {
  11 + data(){
  12 + return{
  13 +
  14 + }
  15 + },
  16 + methods:{}
  17 + }
  18 +</script>
@@ -14,8 +14,8 @@ @@ -14,8 +14,8 @@
14 </el-form-item> 14 </el-form-item>
15 </el-col> 15 </el-col>
16 <el-col :span="8"> 16 <el-col :span="8">
17 - <el-form-item label="进出标识" prop="ietype" label-width="120px">  
18 - <el-select v-model="outConfigure.ietype" placeholder="" style="display:inline"> 17 + <el-form-item label="进出标识" prop="ieType" label-width="120px">
  18 + <el-select v-model="outConfigure.ieType" placeholder="" style="display:inline">
19 <el-option v-for="item in linesTypes" :key="item.value" :label="item.label" 19 <el-option v-for="item in linesTypes" :key="item.value" :label="item.label"
20 :value="item.value"></el-option> 20 :value="item.value"></el-option>
21 </el-select> 21 </el-select>
@@ -78,7 +78,7 @@ @@ -78,7 +78,7 @@
78 outConfigure:{ 78 outConfigure:{
79 username:loginUserInfo.username, 79 username:loginUserInfo.username,
80 flightNo:undefined, 80 flightNo:undefined,
81 - ietype:'2', 81 + ieType:'2',
82 reamrk:undefined, 82 reamrk:undefined,
83 // accessFlag:'2', 83 // accessFlag:'2',
84 createBy:loginUserInfo.username, 84 createBy:loginUserInfo.username,
@@ -88,7 +88,7 @@ @@ -88,7 +88,7 @@
88 flightNo: [ 88 flightNo: [
89 {required: true, message: '请输入', trigger: 'blur'} 89 {required: true, message: '请输入', trigger: 'blur'}
90 ], 90 ],
91 - ietype: [ 91 + ieType: [
92 {required: true, message: '请选择', trigger: 'change'} 92 {required: true, message: '请选择', trigger: 'change'}
93 ], 93 ],
94 }, 94 },
@@ -11,19 +11,19 @@ @@ -11,19 +11,19 @@
11 <el-form :label-position="labelPosition" :model="queryConfigure" :rules="rules" ref="queryFlight" 11 <el-form :label-position="labelPosition" :model="queryConfigure" :rules="rules" ref="queryFlight"
12 label-width="130px" class="demo-ruleForm"> 12 label-width="130px" class="demo-ruleForm">
13 <el-row> 13 <el-row>
14 - <el-col :span="5" style="margin-right: 70px"> 14 + <el-col :span="5">
15 <el-form-item label="承运人" prop="awcd" label-width="70px"> 15 <el-form-item label="承运人" prop="awcd" label-width="70px">
16 <el-input v-model="queryConfigure.awcd" style="width:120px"></el-input> 16 <el-input v-model="queryConfigure.awcd" style="width:120px"></el-input>
17 </el-form-item> 17 </el-form-item>
18 </el-col> 18 </el-col>
19 - <el-col :span="5" style="margin-right: 70px"> 19 + <el-col :span="5">
20 <el-form-item label="航班号" prop="flightNo" label-width="70px"> 20 <el-form-item label="航班号" prop="flightNo" label-width="70px">
21 <el-input v-model="queryConfigure.flightNo" style="width:120px"></el-input> 21 <el-input v-model="queryConfigure.flightNo" style="width:120px"></el-input>
22 </el-form-item> 22 </el-form-item>
23 </el-col> 23 </el-col>
24 <el-col :span="8" > 24 <el-col :span="8" >
25 - <el-button type="primary" icon="el-icon-search" @click="submitForm()">查询</el-button>  
26 - <el-button type="success" icon="el-icon-edit" @click="addForm()">新增</el-button> 25 + <el-button type="primary" @click="submitForm()">查询</el-button>
  26 + <el-button type="success" @click="addForm()">新增</el-button>
27 27
28 </el-col> 28 </el-col>
29 </el-row> 29 </el-row>
@@ -36,32 +36,19 @@ @@ -36,32 +36,19 @@
36 :data="tableData" 36 :data="tableData"
37 border 37 border
38 v-loading="tableloading" style="margin-bottom: 20px;margin-top: 20px"> 38 v-loading="tableloading" style="margin-bottom: 20px;margin-top: 20px">
39 - <el-table-column 39 + <!--<el-table-column
40 prop="awcd" 40 prop="awcd"
41 label="承运人"> 41 label="承运人">
42 - </el-table-column> 42 + </el-table-column>-->
43 <el-table-column 43 <el-table-column
44 prop="flightNo" 44 prop="flightNo"
45 label="航班号"> 45 label="航班号">
46 </el-table-column> 46 </el-table-column>
47 <el-table-column 47 <el-table-column
48 - prop="customscode"  
49 - label="申报关区">  
50 - </el-table-column>  
51 - <el-table-column  
52 prop="aircraftNo" 48 prop="aircraftNo"
53 label="航空注册器编号"> 49 label="航空注册器编号">
54 </el-table-column> 50 </el-table-column>
55 <el-table-column 51 <el-table-column
56 - prop="transportflag"  
57 - label="航空器备案类型"  
58 - show-overflow-tooltip>  
59 - </el-table-column>  
60 - <el-table-column  
61 - prop="aircraftstand"  
62 - label="停机位">  
63 - </el-table-column>  
64 - <el-table-column  
65 prop="departurePort" 52 prop="departurePort"
66 label="航班起始站"> 53 label="航班起始站">
67 </el-table-column> 54 </el-table-column>
@@ -70,16 +57,37 @@ @@ -70,16 +57,37 @@
70 label="航班目的站"> 57 label="航班目的站">
71 </el-table-column> 58 </el-table-column>
72 <el-table-column 59 <el-table-column
  60 + prop="customscode"
  61 + label="申报关区">
  62 + </el-table-column>
  63 + <el-table-column
  64 + label="配置类型">
  65 + <template slot-scope="scope">
  66 + <span v-if="scope.row.type ==='2'">入境</span>
  67 + <span v-if="scope.row.type ==='1'">出境</span>
  68 + </template>
  69 + </el-table-column>
  70 + <!--<el-table-column
  71 + prop="transportflag"
  72 + label="航空器备案类型"
  73 + show-overflow-tooltip>
  74 + </el-table-column>-->
  75 + <!--<el-table-column
  76 + prop="aircraftstand"
  77 + label="停机位">
  78 + </el-table-column>-->
  79 + <el-table-column
73 prop="departuredatetime" 80 prop="departuredatetime"
74 label="预计出境时间"> 81 label="预计出境时间">
75 </el-table-column> 82 </el-table-column>
76 <el-table-column 83 <el-table-column
77 prop="arrivaldatetime" 84 prop="arrivaldatetime"
78 label="预计入境时间"> 85 label="预计入境时间">
79 - </el-table-column><el-table-column 86 + </el-table-column>
  87 + <!--<el-table-column
80 prop="validtime" 88 prop="validtime"
81 label="配置生效到期日"> 89 label="配置生效到期日">
82 - </el-table-column> 90 + </el-table-column>-->
83 <el-table-column 91 <el-table-column
84 label="配置状态"> 92 label="配置状态">
85 <template slot-scope="scope"> 93 <template slot-scope="scope">
@@ -87,14 +95,8 @@ @@ -87,14 +95,8 @@
87 <span v-if="scope.row.status ==='1'">生效</span> 95 <span v-if="scope.row.status ==='1'">生效</span>
88 </template> 96 </template>
89 </el-table-column> 97 </el-table-column>
90 - <el-table-column  
91 - label="配置类型">  
92 - <template slot-scope="scope">  
93 - <span v-if="scope.row.type ==='2'">入境</span>  
94 - <span v-if="scope.row.type ==='1'">出境</span>  
95 - </template>  
96 - </el-table-column>  
97 - <el-table-column 98 +
  99 + <!--<el-table-column
98 prop="userid" 100 prop="userid"
99 label="创建人"> 101 label="创建人">
100 </el-table-column> 102 </el-table-column>
@@ -109,12 +111,12 @@ @@ -109,12 +111,12 @@
109 <el-table-column 111 <el-table-column
110 prop="meno" 112 prop="meno"
111 label="备注"> 113 label="备注">
112 - </el-table-column> 114 + </el-table-column>-->
113 <el-table-column 115 <el-table-column
114 fixed="right" 116 fixed="right"
115 prop="" 117 prop=""
116 - label="报文操作"  
117 - width="280"> 118 + label="信息操作"
  119 + width="180">
118 <template slot-scope="scope"> 120 <template slot-scope="scope">
119 <el-button 121 <el-button
120 size="mini" 122 size="mini"
@@ -174,9 +176,12 @@ @@ -174,9 +176,12 @@
174 <el-row> 176 <el-row>
175 <el-col :span="6"> 177 <el-col :span="6">
176 <el-form-item label="航空器备案类型" prop="transportflag" label-width="140px"> 178 <el-form-item label="航空器备案类型" prop="transportflag" label-width="140px">
177 - <el-input v-model="configure_addForm.transportflag"  
178 - ></el-input> 179 + <el-select v-model="configure_addForm.transportflag" placeholder="请选择">
  180 + <el-option label="通用航空器" value="1"></el-option>
  181 + <el-option label="航线航空器" value="2"></el-option>
  182 + </el-select>
179 </el-form-item> 183 </el-form-item>
  184 +
180 </el-col> 185 </el-col>
181 <el-col :span="6"> 186 <el-col :span="6">
182 <el-form-item label="停机位" prop="aircraftstand" label-width="120px"> 187 <el-form-item label="停机位" prop="aircraftstand" label-width="120px">
@@ -201,8 +206,8 @@ @@ -201,8 +206,8 @@
201 v-model="configure_addForm.departuredatetime" 206 v-model="configure_addForm.departuredatetime"
202 type="datetime" 207 type="datetime"
203 placeholder="选择日期时间" 208 placeholder="选择日期时间"
204 - value-format="yyyyMMddhhmmss"  
205 - format="yyyyMMddhhmmss" 209 + value-format="yyyy-MM-dd HH:mm:ss"
  210 + format="yyyy-MM-dd HH:mm:ss"
206 style="width:100%"> 211 style="width:100%">
207 </el-date-picker> 212 </el-date-picker>
208 </el-form-item> 213 </el-form-item>
@@ -213,8 +218,8 @@ @@ -213,8 +218,8 @@
213 v-model="configure_addForm.arrivaldatetime" 218 v-model="configure_addForm.arrivaldatetime"
214 type="datetime" 219 type="datetime"
215 placeholder="选择日期时间" 220 placeholder="选择日期时间"
216 - value-format="yyyyMMddhhmmss"  
217 - format="yyyyMMddhhmmss" 221 + value-format="yyyy-MM-dd HH:mm:ss"
  222 + format="yyyy-MM-dd HH:mm:ss"
218 style="width:100%"> 223 style="width:100%">
219 </el-date-picker> 224 </el-date-picker>
220 </el-form-item> 225 </el-form-item>
@@ -225,18 +230,18 @@ @@ -225,18 +230,18 @@
225 v-model="configure_addForm.validtime" 230 v-model="configure_addForm.validtime"
226 type="datetime" 231 type="datetime"
227 placeholder="选择日期时间" 232 placeholder="选择日期时间"
228 - value-format="yyyyMMddhhmmss"  
229 - format="yyyyMMddhhmmss" 233 + value-format="yyyy-MM-dd HH:mm:ss"
  234 + format="yyyy-MM-dd HH:mm:ss"
230 style="width: 100%" 235 style="width: 100%"
231 :picker-options="pickerOptions"> 236 :picker-options="pickerOptions">
232 </el-date-picker> 237 </el-date-picker>
233 </el-form-item> 238 </el-form-item>
234 </el-col> 239 </el-col>
235 - <el-col :span="6"> 240 + <!--<el-col :span="6">
236 <el-form-item label="创建人" prop="userid" label-width="120px"> 241 <el-form-item label="创建人" prop="userid" label-width="120px">
237 <el-input v-model="configure_addForm.userid"></el-input> 242 <el-input v-model="configure_addForm.userid"></el-input>
238 </el-form-item> 243 </el-form-item>
239 - </el-col> 244 + </el-col>-->
240 245
241 <el-col :span="6"> 246 <el-col :span="6">
242 <el-form-item label="配置类型" prop="type" label-width="120px"> 247 <el-form-item label="配置类型" prop="type" label-width="120px">
@@ -256,7 +261,7 @@ @@ -256,7 +261,7 @@
256 </el-select> 261 </el-select>
257 </el-form-item> 262 </el-form-item>
258 </el-col> 263 </el-col>
259 - <el-col :span="6"> 264 + <!--<el-col :span="6">
260 <el-form-item label="创建时间" prop="creatdate" label-width="120px"> 265 <el-form-item label="创建时间" prop="creatdate" label-width="120px">
261 <el-date-picker 266 <el-date-picker
262 v-model="configure_addForm.creatdate" 267 v-model="configure_addForm.creatdate"
@@ -281,9 +286,7 @@ @@ -281,9 +286,7 @@
281 :picker-options="pickerOptions"> 286 :picker-options="pickerOptions">
282 </el-date-picker> 287 </el-date-picker>
283 </el-form-item> 288 </el-form-item>
284 - </el-col>  
285 - </el-row>  
286 - <el-row> 289 + </el-col>-->
287 <el-col :span="12"> 290 <el-col :span="12">
288 <el-form-item label="星期日期" prop="schedule.options" label-width="120px"> 291 <el-form-item label="星期日期" prop="schedule.options" label-width="120px">
289 <el-select v-model="configure_addForm.schedule.options" multiple placeholder="请选择(可多选)" style="width: 100%"> 292 <el-select v-model="configure_addForm.schedule.options" multiple placeholder="请选择(可多选)" style="width: 100%">
@@ -296,11 +299,6 @@ @@ -296,11 +299,6 @@
296 </el-select> 299 </el-select>
297 </el-form-item> 300 </el-form-item>
298 </el-col> 301 </el-col>
299 - <el-col :span="12">  
300 - <el-form-item label="备注" prop="meno" label-width="120px">  
301 - <el-input v-model="configure_addForm.meno"></el-input>  
302 - </el-form-item>  
303 - </el-col>  
304 </el-row> 302 </el-row>
305 303
306 </el-form> 304 </el-form>
@@ -377,15 +375,15 @@ @@ -377,15 +375,15 @@
377 flightNo:'', 375 flightNo:'',
378 customscode:'', 376 customscode:'',
379 aircraftNo:'', 377 aircraftNo:'',
380 - transportflag:'', 378 + transportflag:'1',
381 aircraftstand:'', 379 aircraftstand:'',
382 departurePort:'', 380 departurePort:'',
383 arrivalPort:'', 381 arrivalPort:'',
384 departuredatetime:'', 382 departuredatetime:'',
385 arrivaldatetime:'', 383 arrivaldatetime:'',
386 validtime:'', 384 validtime:'',
387 - status:'',  
388 - type:'', 385 + status:'1',
  386 + type:'2',
389 userid:'', 387 userid:'',
390 creatdate:'', 388 creatdate:'',
391 updatedate:'', 389 updatedate:'',
@@ -454,21 +452,12 @@ @@ -454,21 +452,12 @@
454 validtime: [ 452 validtime: [
455 { required: true, message: '请输入', trigger: 'change' } 453 { required: true, message: '请输入', trigger: 'change' }
456 ], 454 ],
457 - userid: [  
458 - { required: true, message: '请输入', trigger: 'change' }  
459 - ],  
460 type: [ 455 type: [
461 { required: true, message: '请输入', trigger: 'change' } 456 { required: true, message: '请输入', trigger: 'change' }
462 ], 457 ],
463 status: [ 458 status: [
464 { required: true, message: '请输入', trigger: 'change' } 459 { required: true, message: '请输入', trigger: 'change' }
465 ], 460 ],
466 - creatdate: [  
467 - { required: true, message: '请输入', trigger: 'change' }  
468 - ],  
469 - updatedate: [  
470 - { required: true, message: '请输入', trigger: 'change' }  
471 - ],  
472 'schedule.options': [ 461 'schedule.options': [
473 { required: true, message: '请输入', trigger: 'change' } 462 { required: true, message: '请输入', trigger: 'change' }
474 ], 463 ],
  1 +<template>
  2 + <div>
  3 + <el-row :gutter="10">
  4 + <el-col :span="4">
  5 + <el-input
  6 + placeholder="航空器注册编号"
  7 + v-model="query.aircraftNo"
  8 + size="medium"
  9 + clearable>
  10 + </el-input>
  11 + </el-col>
  12 + <el-col :span="4">
  13 + <el-input
  14 + placeholder="进出境航班号"
  15 + v-model="query.flightNo"
  16 + size="medium"
  17 + clearable>
  18 + </el-input>
  19 + </el-col>
  20 + <el-col :span="8">
  21 + <div class="block">
  22 + <el-date-picker
  23 + v-model="flightdate"
  24 + type="daterange"
  25 + :picker-options="pickerOptions"
  26 + range-separator="至"
  27 + start-placeholder="开始日期"
  28 + end-placeholder="结束日期"
  29 + value-format="yyyy-MM-dd"
  30 + size="medium"
  31 + align="right">
  32 + </el-date-picker>
  33 + </div>
  34 + </el-col>
  35 + <el-col :span="6">
  36 + <el-select v-model="query.customDistrictNo"
  37 + filterable
  38 + allow-create
  39 + default-first-option
  40 + remote
  41 + :remote-method="getCustomCode"
  42 + size="medium"
  43 + :loading="loading" placeholder="海关关区">
  44 + <el-option
  45 + v-for="item in customcodes"
  46 + :key="item.customcode"
  47 + :label="item.customcode"
  48 + :value="item.customcode">
  49 + <span style="float: left">{{ item.customcode }}</span>
  50 + <span style="float: right; color: #8492a6; font-size: 13px">-{{ item.customname }}</span>
  51 + </el-option>
  52 + </el-select>
  53 + </el-col>
  54 + </el-row>
  55 + <el-row :gutter="10">
  56 + <el-col :span="4">
  57 + <el-select v-model="query.accessFlag" size="medium" placeholder="请选择">
  58 + <el-option label="进境" value="0"></el-option>
  59 + <el-option label="出境" value="1"></el-option>
  60 + </el-select>
  61 + </el-col>
  62 + <el-col :span="4">
  63 + <el-select v-model="query.yqtype" size="medium" placeholder="请选择">
  64 + <el-option label="预报" value="Y"></el-option>
  65 + <el-option label="确报" value="Q"></el-option>
  66 + </el-select>
  67 + </el-col>
  68 + <el-col :span="2">
  69 + <el-button size="medium" type="primary" @click="selectList" plain>查询</el-button>
  70 + </el-col>
  71 + <el-col :span="2">
  72 + <el-button size="medium" type="success" @click="addForm()" plain>新增</el-button>
  73 + </el-col>
  74 + </el-row>
  75 + <el-row :gutter="10">
  76 + <el-table
  77 + :data="tableData"
  78 + border
  79 + style="width: 100%">
  80 + <el-table-column
  81 + fixed="left"
  82 + label="信息操作"
  83 + width="100">
  84 + <template slot-scope="scope">
  85 + <el-button @click="handleClick(scope.row)" type="text" size="small">编辑</el-button>
  86 + </template>
  87 + </el-table-column>
  88 + <el-table-column
  89 + prop="messageid"
  90 + label="编号"
  91 + width="240">
  92 + </el-table-column>
  93 + <el-table-column
  94 + prop="aircraftNo"
  95 + label="航空器注册编号"
  96 + width="110">
  97 + </el-table-column>
  98 + <el-table-column
  99 + prop="flightNo"
  100 + label="进出境航班号"
  101 + width="120">
  102 + </el-table-column>
  103 + <el-table-column
  104 + prop="flightDate"
  105 + label="航班日期"
  106 + width="120">
  107 + </el-table-column>
  108 + <el-table-column
  109 + label="进出类型"
  110 + width="120">
  111 + <template slot-scope="scope">
  112 + {{ scope.row.accessFlag === '0' ? '进境' : '出境' }}
  113 + </template>
  114 + </el-table-column>
  115 + <el-table-column
  116 + label="申报类型"
  117 + width="120">
  118 + <template slot-scope="scope">
  119 + {{ scope.row.yqtype === 'Y' ? '预报' : '确报' }}
  120 + </template>
  121 + </el-table-column>
  122 + <el-table-column
  123 + label="进出境时间"
  124 + width="120">
  125 + <template slot-scope="scope">
  126 + <span v-if="scope.row.accessFlag === '0'">{{ scope.row.arrivaldatetime }}</span>
  127 + <span v-else>{{ scope.row.departuredatetime }}</span>
  128 + </template>
  129 + </el-table-column>
  130 + <el-table-column
  131 + prop="arrivalPort"
  132 + label="目的港"
  133 + width="120">
  134 + </el-table-column>
  135 + <el-table-column
  136 + prop="statusMsg"
  137 + label="海关状态"
  138 + width="120">
  139 + </el-table-column>
  140 + <el-table-column
  141 + fixed="right"
  142 + label="操作"
  143 + width="220">
  144 + <template slot-scope="scope">
  145 + <el-button @click="returnlist(scope.row)" type="text" size="small">查看</el-button>
  146 + <el-button @click="sendpre(scope.row,2)" type="text" size="small">申报</el-button>
  147 + <el-button @click="sendpre(scope.row,5)" type="text" size="small">修改</el-button>
  148 + <el-button @click="sendpre(scope.row,3)" type="text" size="small">删除</el-button>
  149 + <el-button @click="cancleSB(scope.row)" type="text" size="small">取消</el-button>
  150 + </template>
  151 + </el-table-column>
  152 + </el-table>
  153 + </el-row>
  154 + <el-row :gutter="10">
  155 + <div class="block">
  156 + <el-pagination
  157 + @size-change="handleSizeChange"
  158 + @current-change="handleCurrentChange"
  159 + :current-page="query.pageNum"
  160 + :page-sizes="[100, 200, 300, 400]"
  161 + :page-size="query.pageSize"
  162 + layout="total, sizes, prev, pager, next, jumper"
  163 + :total="total">
  164 + </el-pagination>
  165 + </div>
  166 + </el-row>
  167 + <el-row>
  168 + <el-dialog
  169 + :title="'预确报信息'+textMap[dialogStatus]"
  170 + :visible.sync="dialogVisible"
  171 + width="80%"
  172 + center>
  173 + <el-form :model="form" :rules="rules" ref="form" label-width="130px">
  174 + <el-divider content-position="left"><span style="color: #1d8ce0">报给单位</span></el-divider>
  175 + <el-row :gutter="20">
  176 + <el-col :span="6">
  177 + <el-form-item label="海关关区" prop="customDistrictNo">
  178 + <el-select v-model="form.customDistrictNo"
  179 + filterable
  180 + allow-create
  181 + default-first-option
  182 + remote
  183 + :remote-method="getCustomCode2"
  184 + :loading="loading" placeholder="请选择">
  185 + <el-option
  186 + v-for="item in customcodes2"
  187 + :key="item.customcode"
  188 + :label="item.customcode"
  189 + :value="item.customcode">
  190 + <span style="float: left">{{ item.customcode }}</span>
  191 + <span style="float: right; color: #8492a6; font-size: 13px">-{{ item.customname }}</span>
  192 + </el-option>
  193 + </el-select>
  194 + </el-form-item>
  195 + </el-col>
  196 + <el-col :span="6">
  197 + <el-form-item label="进出类型" prop="accessFlag">
  198 + <el-select v-model="form.accessFlag" placeholder="请选择">
  199 + <el-option label="进境" value="0"></el-option>
  200 + <el-option label="出境" value="1"></el-option>
  201 + </el-select>
  202 + </el-form-item>
  203 + </el-col>
  204 + <el-col :span="6">
  205 + <el-form-item label="申报类型" prop="yqtype">
  206 + <el-select v-model="form.yqtype" placeholder="请选择">
  207 + <el-option label="预报" value="Y"></el-option>
  208 + <el-option label="确报" value="Q"></el-option>
  209 + </el-select>
  210 + </el-form-item>
  211 + </el-col>
  212 + </el-row>
  213 + <el-divider content-position="left"><span style="color: #1d8ce0">航空器信息</span></el-divider>
  214 + <el-row :gutter="20">
  215 + <el-col :span="6">
  216 + <el-form-item label="航空器注册编号" prop="aircraftno">
  217 + <el-input v-model="form.aircraftNo"></el-input>
  218 + </el-form-item>
  219 + </el-col>
  220 + <el-col :span="6">
  221 + <el-form-item label="注册海关关区" prop="costomcode">
  222 + <el-select v-model="form.costomcode"
  223 + filterable
  224 + allow-create
  225 + default-first-option
  226 + remote
  227 + :remote-method="getCustomCode3"
  228 + :loading="loading" placeholder="请选择">
  229 + <el-option
  230 + v-for="item in customcodes3"
  231 + :key="item.customcode"
  232 + :label="item.customcode"
  233 + :value="item.customcode">
  234 + <span style="float: left">{{ item.customcode }}</span>
  235 + <span style="float: right; color: #8492a6; font-size: 13px">-{{ item.customname }}</span>
  236 + </el-option>
  237 + </el-select>
  238 + </el-form-item>
  239 + </el-col>
  240 + <el-col :span="6">
  241 + <el-form-item label="航空器备案类型" prop="aircrafttype">
  242 + <el-select v-model="form.aircrafttype" placeholder="请选择">
  243 + <el-option label="通用航空器" value="1"></el-option>
  244 + <el-option label="航线航空器" value="2"></el-option>
  245 + </el-select>
  246 + </el-form-item>
  247 + </el-col>
  248 + </el-row>
  249 + <el-divider content-position="left"><span style="color: #1d8ce0">航班信息</span></el-divider>
  250 + <el-row :gutter="20">
  251 + <el-col :span="6">
  252 + <el-form-item label="进出境航班号" prop="flightNo">
  253 + <el-input v-model="form.flightNo"></el-input>
  254 + </el-form-item>
  255 + </el-col>
  256 + <el-col :span="6">
  257 + <el-form-item label="航班日期" prop="flightDate" style="width: 100%;">
  258 + <div class="block">
  259 + <el-date-picker
  260 + v-model="form.flightDate"
  261 + value-format="yyyy-MM-dd"
  262 + type="date"
  263 + placeholder="选择日期"
  264 + style="width: 100%;"
  265 + ></el-date-picker>
  266 + </div>
  267 + </el-form-item>
  268 + </el-col>
  269 + <el-col :span="6">
  270 + <el-form-item label="停机位" prop="stayid">
  271 + <el-input v-model="form.stayid"></el-input>
  272 + </el-form-item>
  273 + </el-col>
  274 + <el-col :span="6">
  275 + <el-form-item label="出发港" prop="departurePort" style="width: 100%;">
  276 + <el-select v-model="form.departurePort"
  277 + filterable
  278 + allow-create
  279 + default-first-option
  280 + remote
  281 + :remote-method="getAirportCode"
  282 + :loading="loading" placeholder="请选择">
  283 + <el-option
  284 + v-for="item in airportcodes"
  285 + :key="item.airportid"
  286 + :label="item.airportid"
  287 + :value="item.airportid">
  288 + <span style="float: left">{{ item.airportid }}</span>
  289 + <span style="float: right; color: #8492a6; font-size: 13px">-{{ item.airportname}}</span>
  290 + </el-option>
  291 + </el-select>
  292 + </el-form-item>
  293 + </el-col>
  294 + <el-col :span="6">
  295 + <el-form-item label="目的港" prop="arrivalPort" style="width: 100%;">
  296 + <el-select v-model="form.arrivalPort"
  297 + filterable
  298 + allow-create
  299 + default-first-option
  300 + remote
  301 + :remote-method="getAirportCode2"
  302 + :loading="loading" placeholder="请选择">
  303 + <el-option
  304 + v-for="item in airportcodes2"
  305 + :key="item.airportid"
  306 + :label="item.airportid"
  307 + :value="item.airportid">
  308 + <span style="float: left">{{ item.airportid }}</span>
  309 + <span style="float: right; color: #8492a6; font-size: 13px">-{{ item.airportname}}</span>
  310 + </el-option>
  311 + </el-select>
  312 + </el-form-item>
  313 + </el-col>
  314 + <el-col :span="6">
  315 + <el-form-item label="出境时间" prop="departuredatetime" style="width: 100%;">
  316 + <el-date-picker
  317 + v-model="form.departuredatetime"
  318 + type="datetime"
  319 + value-format="yyyy-MM-dd HH:mm:ss"
  320 + placeholder="yyyy-MM-dd HH:mm:ss"
  321 + style="width: 100%;">
  322 + </el-date-picker>
  323 + </el-form-item>
  324 + </el-col>
  325 + <el-col :span="6">
  326 + <el-form-item label="进境时间" prop="arrivaldatetime" style="width: 100%;">
  327 + <el-date-picker
  328 + v-model="form.arrivaldatetime"
  329 + type="datetime"
  330 + value-format="yyyy-MM-dd HH:mm:ss"
  331 + placeholder="yyyy-MM-dd HH:mm:ss"
  332 + style="width: 100%;">
  333 + </el-date-picker>
  334 + </el-form-item>
  335 + </el-col>
  336 + </el-row>
  337 + <el-divider content-position="left"><span style="color: #1d8ce0">海关备注</span></el-divider>
  338 + <el-row :gutter="20">
  339 + <el-col :span="12">
  340 + <el-form-item label="海关备注">
  341 + <el-input v-model="form.meno"></el-input>
  342 + </el-form-item>
  343 + </el-col>
  344 + </el-row>
  345 + <el-divider></el-divider>
  346 + <el-row :gutter="20">
  347 + <el-col :span="12" :offset="6">
  348 + <el-form-item>
  349 + <el-button @click="dialogVisible=false">取消</el-button>
  350 + <el-button type="primary" @click="dialogStatus==='create'?createData('form'):updateData('form')">暂存</el-button>
  351 + </el-form-item>
  352 + </el-col>
  353 + </el-row>
  354 + </el-form>
  355 + </el-dialog>
  356 + </el-row>
  357 + <el-row :gutter="10">
  358 + <el-dialog
  359 + title="回执列表"
  360 + :visible.sync="returnVisible"
  361 + width="55%"
  362 + :before-close="handleClose">
  363 + <el-table :data="gridData">
  364 + <el-table-column property="sendtime" label="操作时间" ></el-table-column>
  365 + <el-table-column property="createBy" label="操作人" ></el-table-column>
  366 + <el-table-column property="flightNo" label="航班号"></el-table-column>
  367 + <el-table-column property="flightDate" label="航班日期" ></el-table-column>
  368 + <el-table-column property="receiptContent" label="回执内容" ></el-table-column>
  369 + </el-table>
  370 + </el-dialog>
  371 + </el-row>
  372 + <el-row>
  373 + <el-dialog title="航班取消申报" :visible.sync="dialogFormVisible">
  374 + <el-form :model="cancleForm">
  375 + <el-form-item label="取消原因" label-width="130px">
  376 + <el-input v-model="cancleForm.content" autocomplete="off"></el-input>
  377 + </el-form-item>
  378 + </el-form>
  379 + <div slot="footer" class="dialog-footer">
  380 + <el-button @click="dialogFormVisible = false">取 消</el-button>
  381 + <el-button type="primary" @click="canclesendpre">确 定</el-button>
  382 + </div>
  383 + </el-dialog>
  384 + </el-row>
  385 + </div>
  386 +</template>
  387 +<script>
  388 + import {
  389 + selectByairportcode,
  390 + selectBycustomcode,
  391 + selectPreList,
  392 + insertSelectivePre,
  393 + updateByPrimaryKeySelectivePre, selectReturnMsgList, canclePre,sendPrediction
  394 + } from "../../api/transport/transport2.0";
  395 +
  396 + export default {
  397 + data(){
  398 + return{
  399 + cancleForm:{
  400 + content:''
  401 + },
  402 + dialogFormVisible:false,
  403 + textMap:{
  404 + update: '编辑',
  405 + create: '新增'
  406 + },
  407 + dialogStatus:'',
  408 + dialogVisible:false,
  409 + form: {
  410 + uuid: '', // 唯一标识符
  411 + awcd: '', // 不知道具体含义,根据业务需求填充
  412 + aircraftNo: '', // 飞机编号
  413 + flightNo: '', // 航班号
  414 + flightDate: '', // 航班日期
  415 + departurePort: '', // 出发港
  416 + arrivalPort: '', // 到达港
  417 + departuredatetime: '', // 出发日期时间
  418 + departuredate: '', // 出发日期
  419 + stayid: '', // 停留ID
  420 + departureconveyancefacility: '', // 出发运输设施
  421 + arrivalconveyancefacility: '', // 到达运输设施
  422 + arrivaldatetime: '', // 到达日期时间
  423 + arrivaldate: '', // 到达日期
  424 + dischargecompleteddatetime: '', // 卸载完成日期时间
  425 + transportflag: '', // 运输标志
  426 + customDistrictNo: '', // 海关区号
  427 + cancelFlag: '', // 取消标志
  428 + accessFlag: '0', // 访问标志
  429 + meno: '', // 备注
  430 + createTime: '', // 创建时间
  431 + createBy: '', // 创建人
  432 + updateTime: '', // 更新时间
  433 + updateBy: '', // 更新人
  434 + isDelete: '0', // 是否删除
  435 + status: '', // 状态
  436 + statusMsg: '', // 状态信息
  437 + messageid: '', // 消息ID
  438 + yqtype: 'Y', // 不知道具体含义,根据业务需求填充
  439 + costomcode:'',
  440 + aircrafttype:'1',
  441 + content:''
  442 + },
  443 + tableData:[],
  444 + total:0,
  445 + query:{
  446 + aircraftNo:'',
  447 + flightNo:'',
  448 + starttime:'',
  449 + endtime:'',
  450 + customDistrictNo:'',
  451 + accessFlag:'',
  452 + yqtype:'',
  453 + pageNum:0,
  454 + pageSize:10
  455 + },
  456 + customcodes:[],
  457 + customcodes2:[],
  458 + customcodes3:[],
  459 + airportcodes:[],
  460 + airportcodes2:[],
  461 + loading:false,
  462 + flightdate:['2024-12-22','2024-12-25'],
  463 + pickerOptions: {
  464 + shortcuts: [{
  465 + text: '最近一周',
  466 + onClick(picker) {
  467 + const end = new Date();
  468 + const start = new Date();
  469 + start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
  470 + picker.$emit('pick', [start, end]);
  471 + }
  472 + }, {
  473 + text: '最近一个月',
  474 + onClick(picker) {
  475 + const end = new Date();
  476 + const start = new Date();
  477 + start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
  478 + picker.$emit('pick', [start, end]);
  479 + }
  480 + }, {
  481 + text: '最近三个月',
  482 + onClick(picker) {
  483 + const end = new Date();
  484 + const start = new Date();
  485 + start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
  486 + picker.$emit('pick', [start, end]);
  487 + }
  488 + }]
  489 + },
  490 + rules:{
  491 + aircraftNo: [
  492 + { required: true, message: '航空注册器编号不可为空', trigger: 'blur' }
  493 + ],
  494 + flightNo: [
  495 + { required: true, message: '航班号不可为空', trigger: 'blur' }
  496 + ],
  497 + flightDate: [
  498 + { required: true, message: '航班日期不可为空', trigger: 'blur' }
  499 + ],
  500 + customDistrictNo: [
  501 + { required: true, message: '海关关区不可为空', trigger: 'blur' }
  502 + ],
  503 + costomcode: [
  504 + { required: true, message: '海关关区不可为空', trigger: 'blur' }
  505 + ],
  506 + aircrafttype: [
  507 + { required: true, message: '航空器备案类型不可为空', trigger: 'blur' }
  508 + ],
  509 + stayid: [
  510 + { required: true, message: '停机位不可为空', trigger: 'blur' }
  511 + ],
  512 + departurePort: [
  513 + { required: true, message: '出发港不可为空', trigger: 'blur' }
  514 + ],
  515 + arrivalPort: [
  516 + { required: true, message: '目的港不可为空', trigger: 'blur' }
  517 + ],
  518 + departuredatetime: [
  519 + { required: true, message: '出境不可为空', trigger: 'blur' }
  520 + ],
  521 + arrivaldatetime: [
  522 + { required: true, message: '进境不可为空', trigger: 'blur' }
  523 + ],
  524 + },
  525 + returnVisible:false,
  526 + gridData:[],
  527 + row2:undefined
  528 + }
  529 + },
  530 + methods:{
  531 + cancleSB(row){
  532 + this.dialogFormVisible=true;
  533 + this.row2=row;
  534 +
  535 + },
  536 + canclesendpre(row,FunctionCode){
  537 + this.row2.content=this.cancleForm.content;
  538 + const params = {
  539 + row: this.row2,
  540 + FunctionCode: 2
  541 + };
  542 + canclePre(params).then(res =>{
  543 + let response=res.data;
  544 + if(response.code=='200'){
  545 + this.dialogFormVisible=false;
  546 + this.selectList();
  547 + this.$message.success(response.msg)
  548 + }else{
  549 + this.$message.error(response.msg)
  550 + }
  551 + });
  552 + },
  553 + sendpre(row,FunctionCode){
  554 + //this.row2.content=this.cancleForm.content;
  555 + const params = {
  556 + row: row,
  557 + FunctionCode: FunctionCode
  558 + };
  559 + sendPrediction(params).then(res =>{
  560 + let response=res.data;
  561 + if(response.code=='200'){
  562 + this.dialogFormVisible=false;
  563 + this.selectList();
  564 + this.$message.success(response.msg)
  565 + }else{
  566 + this.$message.error(response.msg)
  567 + }
  568 + });
  569 + },
  570 +
  571 + handleClose() {
  572 + this.returnVisible=false;
  573 + },
  574 + //查询回执列表
  575 + returnlist(row){
  576 + this.gridData=[];
  577 + let params={messageid:row.messageid};
  578 + selectReturnMsgList(params).then(res=>{
  579 + let response=res.data.data;
  580 + this.gridData=response;
  581 + });
  582 + this.returnVisible=true;
  583 + },
  584 + createData(formName){
  585 + this.$refs[formName].validate((valid) => {
  586 + if (valid) {
  587 + insertSelectivePre(this.form).then(res =>{
  588 + let response=res.data;
  589 + if(response.code=='200'){
  590 + this.dialogVisible=false;
  591 + this.$message.success(response.msg);
  592 + this.selectList();
  593 + }else{
  594 + this.$message.error(response.msg)
  595 + }
  596 + });
  597 + } else {
  598 + return false;
  599 + }
  600 + });
  601 + },
  602 + updateData(formName){
  603 + this.$refs[formName].validate((valid) => {
  604 + if (valid) {
  605 + this.form.departuredatetime=this.form.arrivaldatetime;
  606 + this.form.departureAirport=this.form.arrivalAirport;
  607 + updateByPrimaryKeySelectivePre(this.form).then(res =>{
  608 + let response=res.data;
  609 + if(response.code=='200'){
  610 + this.dialogVisible=false;
  611 + Object.assign(this.$data, this.$options.data());
  612 + this.$message.success(response.msg);
  613 + this.getList();
  614 + }else{
  615 + this.$message.error(response.msg)
  616 + }
  617 + });
  618 + } else {
  619 + return false;
  620 + }
  621 + });
  622 + },
  623 + //获取关区代码
  624 + getCustomCode:function(query){
  625 + this.customcodes=[];
  626 + let params={customcode:query};
  627 + this.loading = true;
  628 + selectBycustomcode(params).then(res =>{
  629 + if (res !== '') {
  630 + setTimeout(() => {
  631 + this.loading = false;
  632 + this.customcodes=res.data.data;
  633 + }, 200);
  634 + } else {
  635 + this.customcodes = [];
  636 + }
  637 +
  638 + });
  639 + },
  640 + //获取关区代码
  641 + getCustomCode2:function(query){
  642 + this.customcodes2=[];
  643 + let params={customcode:query};
  644 + this.loading = true;
  645 + selectBycustomcode(params).then(res =>{
  646 + if (res !== '') {
  647 + setTimeout(() => {
  648 + this.loading = false;
  649 + this.customcodes2=res.data.data;
  650 + }, 200);
  651 + } else {
  652 + this.customcodes2 = [];
  653 + }
  654 +
  655 + });
  656 + },
  657 + //获取关区代码
  658 + getCustomCode3:function(query){
  659 + this.customcodes3=[];
  660 + let params={customcode:query};
  661 + this.loading = true;
  662 + selectBycustomcode(params).then(res =>{
  663 + if (res !== '') {
  664 + setTimeout(() => {
  665 + this.loading = false;
  666 + this.customcodes3=res.data.data;
  667 + }, 200);
  668 + } else {
  669 + this.customcodes3 = [];
  670 + }
  671 +
  672 + });
  673 + },
  674 + //获取机场代码
  675 + getAirportCode:function(query){
  676 + this.airportcodes=[];
  677 + let params={airportid:query};
  678 + this.loading = true;
  679 + selectByairportcode(params).then(res =>{
  680 + if (res !== '') {
  681 + setTimeout(() => {
  682 + this.loading = false;
  683 + this.airportcodes=res.data.data;
  684 + }, 200);
  685 + } else {
  686 + this.airportcodes = [];
  687 + }
  688 +
  689 + });
  690 + },
  691 + //获取机场代码
  692 + getAirportCode2:function(query){
  693 + this.airportcodes2=[];
  694 + let params={airportid:query};
  695 + this.loading = true;
  696 + selectByairportcode(params).then(res =>{
  697 + if (res !== '') {
  698 + setTimeout(() => {
  699 + this.loading = false;
  700 + this.airportcodes2=res.data.data;
  701 + }, 200);
  702 + } else {
  703 + this.airportcodes2 = [];
  704 + }
  705 +
  706 + });
  707 + },
  708 + selectList(){
  709 + if(this.flightdate !== null && this.flightdate !== ""){
  710 + this.query.starttime = this.flightdate[0];
  711 + this.query.endtime = this.flightdate[1];
  712 + }else{
  713 + return this.$message.error('请选取时间区间')
  714 + }
  715 + this.loading = true;
  716 + selectPreList(this.query).then((response) => {
  717 + const res = response.data
  718 + if (res.code !== '200') {
  719 + this.loading = false;
  720 + return this.$message.error('获取消息收发记录,失败!')
  721 + }
  722 + // 获取列表数据
  723 + this.tableData = res.data.list
  724 + // 获取列表的总记录数
  725 + this.total = res.data.total
  726 + this.loading = false;
  727 + this.$message.success('获取消息收发记录,成功!');
  728 + }).catch(error => {
  729 + // 关闭加载
  730 + this.$message.error(error.toString())
  731 + })
  732 + },
  733 + //新增
  734 + addForm(){
  735 + this.dialogVisible=true;
  736 + this.dialogStatus='create';
  737 + },
  738 + handleClick(row){
  739 + this.dialogVisible=true;
  740 + this.dialogStatus='update';
  741 + this.form=row;
  742 + },
  743 + //分页
  744 + handleSizeChange(val) {
  745 + this.query.pageSize=val;
  746 + this.selectList();
  747 + },
  748 + handleCurrentChange(val) {
  749 + this.query.pageNum=val;
  750 + this.selectList();
  751 + }
  752 + },
  753 + }
  754 +</script>
  1 +<template>
  2 + <div>
  3 + <el-row :gutter="10">
  4 + <el-col :span="4">
  5 + <el-input
  6 + placeholder="航空器注册编号"
  7 + v-model="query.aircraftno"
  8 + size="medium"
  9 + clearable>
  10 + </el-input>
  11 + </el-col>
  12 + <el-col :span="4">
  13 + <el-input
  14 + placeholder="进境(港)航班号"
  15 + v-model="query.flightno"
  16 + size="medium"
  17 + clearable>
  18 + </el-input>
  19 + </el-col>
  20 + <el-col :span="8">
  21 + <div class="block">
  22 + <el-date-picker
  23 + v-model="flightdate"
  24 + type="daterange"
  25 + :picker-options="pickerOptions"
  26 + range-separator="至"
  27 + start-placeholder="开始日期"
  28 + end-placeholder="结束日期"
  29 + value-format="yyyy-MM-dd"
  30 + size="medium"
  31 + align="right">
  32 + </el-date-picker>
  33 + </div>
  34 + </el-col>
  35 + <el-col :span="2">
  36 + <el-button size="medium" type="primary" @click="selectList" plain>查询</el-button>
  37 + </el-col>
  38 + <el-col :span="2">
  39 + <el-button size="medium" type="success" @click="addForm()" plain>新增</el-button>
  40 + </el-col>
  41 + </el-row>
  42 + <el-row :gutter="10">
  43 + <el-table
  44 + :data="tableData"
  45 + border
  46 + style="width: 100%">
  47 + <el-table-column
  48 + align="center"
  49 + fixed="left"
  50 + label="信息操作"
  51 + width="80">
  52 + <template slot-scope="scope">
  53 + <el-button @click="ediForm(scope.row)" type="text" size="small">编辑</el-button>
  54 + </template>
  55 + </el-table-column>
  56 + <el-table-column
  57 + prop="messageid"
  58 + label="编号"
  59 + width="320">
  60 + </el-table-column>
  61 + <el-table-column
  62 + prop="aircraftno"
  63 + label="航空器注册编号"
  64 + width="120">
  65 + </el-table-column>
  66 + <el-table-column
  67 + prop="flightno"
  68 + label="进境(港)航班号"
  69 + width="120">
  70 + </el-table-column>
  71 + <el-table-column
  72 + prop="callport"
  73 + label="停靠港"
  74 + width="120">
  75 + </el-table-column>
  76 + <el-table-column
  77 + prop="flightdate"
  78 + label="航班日期"
  79 + width="100">
  80 + </el-table-column>
  81 + <el-table-column
  82 + prop="statusmsg"
  83 + label="海关状态"
  84 + width="120">
  85 + </el-table-column>
  86 + <el-table-column
  87 + fixed="right"
  88 + label="操作"
  89 + width="200">
  90 + <template slot-scope="scope">
  91 + <el-button @click="returnlist(scope.row)" type="text" size="small">查看</el-button>
  92 + <el-button @click="sendstying(scope.row,2)" type="text" size="small">申报</el-button>
  93 + <el-button @click="sendstying(scope.row,5)" type="text" size="small">修改</el-button>
  94 + <el-button @click="sendstying(scope.row,3)" type="text" size="small">删除</el-button>
  95 + </template>
  96 + </el-table-column>
  97 + </el-table>
  98 + </el-row>
  99 + <el-row :gutter="10">
  100 + <div class="block">
  101 + <el-pagination
  102 + @size-change="handleSizeChange"
  103 + @current-change="handleCurrentChange"
  104 + :current-page="query.pageNum"
  105 + :page-sizes="[100, 200, 300, 400]"
  106 + :page-size="query.pageSize"
  107 + layout="total, sizes, prev, pager, next, jumper"
  108 + :total="total">
  109 + </el-pagination>
  110 + </div>
  111 + </el-row>
  112 + <el-dialog
  113 + :title="'在港信息'+textMap[dialogStatus]"
  114 + :visible.sync="dialogVisible"
  115 + width="80%"
  116 + center>
  117 + <el-form :model="form" :rules="rules" ref="form" label-width="130px">
  118 + <el-divider content-position="left"><span style="color: #1d8ce0">报给单位</span></el-divider>
  119 + <el-row :gutter="20">
  120 + <el-col :span="6">
  121 + <el-form-item label="海关关区" prop="customcode">
  122 + <el-select v-model="form.customcode"
  123 + filterable
  124 + allow-create
  125 + default-first-option
  126 + remote
  127 + :remote-method="getCustomCode"
  128 + :loading="loading" placeholder="请选择">
  129 + <el-option
  130 + v-for="item in customcodes"
  131 + :key="item.customcode"
  132 + :label="item.customcode"
  133 + :value="item.customcode">
  134 + <span style="float: left">{{ item.customcode }}</span>
  135 + <span style="float: right; color: #8492a6; font-size: 13px">-{{ item.customname }}</span>
  136 + </el-option>
  137 + </el-select>
  138 + </el-form-item>
  139 + </el-col>
  140 + </el-row>
  141 + <el-divider content-position="left"><span style="color: #1d8ce0">航空器信息</span></el-divider>
  142 + <el-row :gutter="20">
  143 + <el-col :span="6">
  144 + <el-form-item label="航空器注册编号" prop="aircraftno">
  145 + <el-input v-model="form.aircraftno"></el-input>
  146 + </el-form-item>
  147 + </el-col>
  148 + <el-col :span="6">
  149 + <el-form-item label="注册海关关区">
  150 + <el-select v-model="form.registeredcustom"
  151 + filterable
  152 + allow-create
  153 + default-first-option
  154 + remote
  155 + :remote-method="getCustomCode2"
  156 + :loading="loading" placeholder="请选择">
  157 + <el-option
  158 + v-for="item in customcodes2"
  159 + :key="item.customcode"
  160 + :label="item.customcode"
  161 + :value="item.customcode">
  162 + <span style="float: left">{{ item.customcode }}</span>
  163 + <span style="float: right; color: #8492a6; font-size: 13px">-{{ item.customname }}</span>
  164 + </el-option>
  165 + </el-select>
  166 + </el-form-item>
  167 + </el-col>
  168 + <el-col :span="6">
  169 + <el-form-item label="航空器备案类型">
  170 + <el-select v-model="form.aircrafttype" placeholder="请选择">
  171 + <el-option label="通用航空器" value="1"></el-option>
  172 + <el-option label="航线航空器" value="2"></el-option>
  173 + </el-select>
  174 + </el-form-item>
  175 +
  176 + </el-col>
  177 + </el-row>
  178 + <el-divider content-position="left"><span style="color: #1d8ce0">在港申报信息</span></el-divider>
  179 + <el-row :gutter="20">
  180 + <el-col :span="6">
  181 + <el-form-item label="进境(港)航班号" prop="flightno">
  182 + <el-input v-model="form.flightno"></el-input>
  183 + </el-form-item>
  184 + </el-col>
  185 + <el-col :span="6">
  186 + <el-form-item label="航班日期" prop="flightdate" style="width: 100%;">
  187 + <div class="block">
  188 + <el-date-picker
  189 + v-model="form.flightdate"
  190 + value-format="yyyy-MM-dd"
  191 + type="date"
  192 + placeholder="选择日期"
  193 + style="width: 100%;"
  194 + ></el-date-picker>
  195 + </div>
  196 + </el-form-item>
  197 + </el-col>
  198 + <el-col :span="6">
  199 + <el-form-item label="停靠港" prop="callport" style="width: 100%;">
  200 + <el-select v-model="form.callport"
  201 + filterable
  202 + allow-create
  203 + default-first-option
  204 + remote
  205 + :remote-method="getAirportCode"
  206 + :loading="loading" placeholder="请选择">
  207 + <el-option
  208 + v-for="item in airportcodes"
  209 + :key="item.airportid"
  210 + :label="item.airportid"
  211 + :value="item.airportid">
  212 + <span style="float: left">{{ item.airportid }}</span>
  213 + <span style="float: right; color: #8492a6; font-size: 13px">-{{ item.airportname}}</span>
  214 + </el-option>
  215 + </el-select>
  216 + </el-form-item>
  217 + </el-col>
  218 + <el-col :span="6">
  219 + <el-form-item label="停机位" prop="callarea">
  220 + <el-input v-model="form.callarea"></el-input>
  221 + </el-form-item>
  222 + </el-col>
  223 + </el-row>
  224 + <el-divider content-position="left"><span style="color: #1d8ce0">备注信息</span></el-divider>
  225 + <el-row :gutter="20">
  226 + <el-col :span="6">
  227 + <el-form-item label="滞留原因">
  228 + <el-select v-model="form.reasons" placeholder="请选择">
  229 + <el-option label="移泊" value="1"></el-option>
  230 + <el-option label="待命" value="2"></el-option>
  231 + <el-option label="维修" value="3"></el-option>
  232 + <el-option label="其它" value="4"></el-option>
  233 + </el-select>
  234 + </el-form-item>
  235 + </el-col>
  236 + <el-col :span="6">
  237 + <el-form-item label="海关备注">
  238 + <el-input v-model="form.remark"></el-input>
  239 + </el-form-item>
  240 + </el-col>
  241 + </el-row>
  242 + <el-divider></el-divider>
  243 + <el-row :gutter="20">
  244 + <el-col :span="12" :offset="6">
  245 + <el-form-item>
  246 + <el-button @click="dialogVisible=false">取消</el-button>
  247 + <el-button type="primary" @click="dialogStatus==='create'?createData('form'):updateData('form')">暂存</el-button>
  248 + </el-form-item>
  249 + </el-col>
  250 + </el-row>
  251 + </el-form>
  252 + </el-dialog>
  253 + <el-dialog
  254 + title="回执列表"
  255 + :visible.sync="returnVisible"
  256 + width="55%"
  257 + :before-close="handleClose">
  258 + <el-table :data="gridData">
  259 + <el-table-column property="sendtime" label="操作时间" ></el-table-column>
  260 + <el-table-column property="createBy" label="操作人" ></el-table-column>
  261 + <el-table-column property="flightNo" label="航班号"></el-table-column>
  262 + <el-table-column property="flightDate" label="航班日期" ></el-table-column>
  263 + <el-table-column property="receiptContent" label="回执内容" ></el-table-column>
  264 + </el-table>
  265 + </el-dialog>
  266 + </div>
  267 +</template>
  268 +<script>
  269 + import {selectBycustomcode,selectByairportcode,selectLists,insertSelective,updateByPrimaryKeySelective,
  270 + selectReturnMsgList,sendAircraftstaying} from "../../api/transport/transport2.0";
  271 +
  272 + export default {
  273 + data(){
  274 + return{
  275 + returnVisible:false,
  276 + query:{
  277 + aircraftno:'',
  278 + flightno:'',
  279 + flightdate:'',
  280 + starttime:'',
  281 + endtime:'',
  282 + pageNum:0,
  283 + pageSize:10
  284 + },
  285 + customcodes:[],
  286 + customcodes2:[],
  287 + airportcodes:[],
  288 + form:{
  289 + uuid:'',
  290 + customcode:'',
  291 + aircraftno:'',
  292 + registeredcustom:'',
  293 + aircrafttype:'',
  294 + flightno:'',
  295 + flightdate:'',
  296 + callport:'',
  297 + callarea:'',
  298 + reasons:'',
  299 + remark:'',
  300 + userid:'',
  301 + status:'',
  302 + statusmsg:'',
  303 + messageid:''
  304 + },
  305 + rules: {
  306 + customcode: [
  307 + { required: true, message: '海关关区不可为空', trigger: 'blur' }
  308 + ],
  309 + aircraftno: [
  310 + { required: true, message: '航空器注册编号不可为空', trigger: 'blur' }
  311 + ],
  312 + flightno: [
  313 + { required: true, message: '进境(港)航班号不可为空', trigger: 'blur' }
  314 + ],
  315 + flightdate: [
  316 + { required: true, message: '航班日期不可为空', trigger: 'blur' }
  317 + ],
  318 + callport: [
  319 + { required: true, message: '停靠港不可为空', trigger: 'blur' }
  320 + ],
  321 + callarea: [
  322 + { required: true, message: '停机位不可为空', trigger: 'blur' }
  323 + ]
  324 + },
  325 + dialogVisible: false,
  326 + currentPage4: 4,
  327 + textMap:{
  328 + update: '编辑',
  329 + create: '新增'
  330 + },
  331 + dialogStatus:'',
  332 + loading:false,
  333 + flightdate:'',
  334 + total:0,
  335 + pickerOptions: {
  336 + shortcuts: [{
  337 + text: '最近一周',
  338 + onClick(picker) {
  339 + const end = new Date();
  340 + const start = new Date();
  341 + start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
  342 + picker.$emit('pick', [start, end]);
  343 + }
  344 + }, {
  345 + text: '最近一个月',
  346 + onClick(picker) {
  347 + const end = new Date();
  348 + const start = new Date();
  349 + start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
  350 + picker.$emit('pick', [start, end]);
  351 + }
  352 + }, {
  353 + text: '最近三个月',
  354 + onClick(picker) {
  355 + const end = new Date();
  356 + const start = new Date();
  357 + start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
  358 + picker.$emit('pick', [start, end]);
  359 + }
  360 + }]
  361 + },
  362 + tableData: [],
  363 + gridData:[]
  364 + }
  365 + },
  366 + methods:{
  367 + sendstying(row,FunctionCode){
  368 + const params = {
  369 + row: row,
  370 + FunctionCode: FunctionCode
  371 + };
  372 + sendAircraftstaying(params).then(res =>{
  373 + let response=res.data;
  374 + if(response.code=='200'){
  375 + this.selectList();
  376 + this.$message.success(response.msg)
  377 + }else{
  378 + this.$message.error(response.msg)
  379 + }
  380 + });
  381 + },
  382 + //查询回执列表
  383 + returnlist(row){
  384 + this.gridData=[];
  385 + let params={messageid:row.messageid};
  386 + selectReturnMsgList(params).then(res=>{
  387 + let response=res.data.data;
  388 + this.gridData=response;
  389 + });
  390 + this.returnVisible=true;
  391 + },
  392 + handleClose() {
  393 + this.returnVisible=false;
  394 + },
  395 + //暂存新增
  396 + createData(formName){
  397 + this.$refs[formName].validate((valid) => {
  398 + if (valid) {
  399 + insertSelective(this.form).then(res =>{
  400 + let response=res.data;
  401 + if(response.code=='200'){
  402 + this.dialogVisible=false;
  403 + this.$message.success(response.msg)
  404 + }else{
  405 + this.$message.error(response.msg)
  406 + }
  407 + });
  408 + } else {
  409 + return false;
  410 + }
  411 + });
  412 + },
  413 + //暂存更新
  414 + updateData(formName){
  415 + this.$refs[formName].validate((valid) => {
  416 + if (valid) {
  417 + updateByPrimaryKeySelective(this.form).then(res =>{
  418 + let response=res.data;
  419 + if(response.code=='200'){
  420 + this.dialogVisible=false;
  421 + Object.assign(this.$data, this.$options.data());
  422 + this.$message.success(response.msg)
  423 + }else{
  424 + this.$message.error(response.msg)
  425 + }
  426 + });
  427 + } else {
  428 + return false;
  429 + }
  430 + });
  431 + },
  432 + //查询列表
  433 + selectList(){
  434 + if(this.flightdate !== null && this.flightdate !== ""){
  435 + this.query.starttime = this.flightdate[0];
  436 + this.query.endtime = this.flightdate[1];
  437 + }else{
  438 + return this.$message.error('请选取时间区间')
  439 + }
  440 + this.loading = true;
  441 + selectLists(this.query).then((response) => {
  442 + const res = response.data
  443 + if (res.code !== '200') {
  444 + this.loading = false;
  445 + return this.$message.error('获取消息收发记录,失败!')
  446 + }
  447 + // 获取列表数据
  448 + this.tableData = res.data.list
  449 + // 获取列表的总记录数
  450 + this.total = res.data.total
  451 + this.loading = false;
  452 + this.$message.success('获取消息收发记录,成功!');
  453 + }).catch(error => {
  454 + // 关闭加载
  455 + this.$message.error(error.toString())
  456 + })
  457 +
  458 + },
  459 + //获取机场代码
  460 + getAirportCode:function(query){
  461 + this.airportcodes=[];
  462 + let params={airportid:query};
  463 + this.loading = true;
  464 + selectByairportcode(params).then(res =>{
  465 + if (res !== '') {
  466 + setTimeout(() => {
  467 + this.loading = false;
  468 + this.airportcodes=res.data.data;
  469 + }, 200);
  470 + } else {
  471 + this.airportcodes = [];
  472 + }
  473 +
  474 + });
  475 + },
  476 + //获取关区代码
  477 + getCustomCode:function(query){
  478 + this.customcodes=[];
  479 + let params={customcode:query};
  480 + this.loading = true;
  481 + selectBycustomcode(params).then(res =>{
  482 + if (res !== '') {
  483 + setTimeout(() => {
  484 + this.loading = false;
  485 + this.customcodes=res.data.data;
  486 + }, 200);
  487 + } else {
  488 + this.customcodes = [];
  489 + }
  490 +
  491 + });
  492 + },
  493 + getCustomCode2:function(query){
  494 + this.customcodes2=[];
  495 + let params={customcode:query};
  496 + this.loading = true;
  497 + selectBycustomcode(params).then(res =>{
  498 + if (res !== '') {
  499 + setTimeout(() => {
  500 + this.loading = false;
  501 + this.customcodes2=res.data.data;
  502 + }, 200);
  503 + } else {
  504 + this.customcodes2 = [];
  505 + }
  506 +
  507 + });
  508 + },
  509 + //新增
  510 + addForm(){
  511 + this.dialogVisible=true;
  512 + this.dialogStatus='create';
  513 + },
  514 + //编辑
  515 + ediForm(row){
  516 + this.dialogVisible=true;
  517 + this.dialogStatus='update';
  518 + this.form=row;
  519 + },
  520 + handleClick(row) {
  521 + },
  522 + //分页
  523 + handleSizeChange(val) {
  524 + this.query.pageSize=val;
  525 + this.selectList();
  526 + },
  527 + handleCurrentChange(val) {
  528 + this.query.pageNum=val;
  529 + this.selectList();
  530 + }
  531 + }
  532 + }
  533 +</script>
@@ -149,11 +149,30 @@ @@ -149,11 +149,30 @@
149 const header = this.columns.map(col => col.label); 149 const header = this.columns.map(col => col.label);
150 150
151 // 将 tableData 转换成二维数组,并添加到 worksheet 中 151 // 将 tableData 转换成二维数组,并添加到 worksheet 中
152 - const data = this.tableData.map(row => this.columns.map(col => row[col.prop])); 152 + const data = this.tableData.map(row =>
  153 + this.columns.map(col => {
  154 + // 如果是 costs 列,则转换为数值
  155 + if (col.prop === 'costs') {
  156 + return parseFloat(row[col.prop]) || 0; // 确保无效值转换为0
  157 + }
  158 + return row[col.prop];
  159 + })
  160 + );
153 161
154 // 使用 XLSX.utils.aoa_to_sheet 创建工作表,指定头部 162 // 使用 XLSX.utils.aoa_to_sheet 创建工作表,指定头部
155 const ws = XLSX.utils.aoa_to_sheet([header, ...data]); 163 const ws = XLSX.utils.aoa_to_sheet([header, ...data]);
156 164
  165 + // 指定每一列的数据类型
  166 + const columnTypes = this.columns.map(col => ({
  167 + t: col.prop === 'costs' ? 'n' : 's' // 'n' for number, 's' for string
  168 + }));
  169 +
  170 + // 更新工作表中的单元格类型
  171 + for (let i = 1; i <= data.length; i++) { // 从1开始,因为第0行是标题
  172 + const cellRef = XLSX.utils.encode_cell({ c: this.columns.findIndex(col => col.prop === 'costs'), r: i });
  173 + ws[cellRef].t = 'n'; // 设置单元格类型为数值
  174 + }
  175 +
157 // 添加 worksheet 到 workbook 176 // 添加 worksheet 到 workbook
158 XLSX.utils.book_append_sheet(wb, ws, 'Sheet1'); 177 XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');
159 178