作者 xudada

单证申报BUG修复,增加预报确报功能

@@ -20,6 +20,16 @@ export const selectBillLists = params => { return http.get(`${baseUrl}/transport @@ -20,6 +20,16 @@ export const selectBillLists = params => { return http.get(`${baseUrl}/transport
20 export const insertSelectiveBill = params => { return http.post(`${baseUrl}/transport/bill/insertSelectiveBill`, 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); }; 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); }; 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 +
23 33
24 34
25 35
@@ -215,6 +215,7 @@ import Rate from './views/zhidan/rate.vue' @@ -215,6 +215,7 @@ import Rate from './views/zhidan/rate.vue'
215 import zaigang from './views/airtransport/zaigang.vue' 215 import zaigang from './views/airtransport/zaigang.vue'
216 import gongtui from './views/airtransport/gongtui.vue' 216 import gongtui from './views/airtransport/gongtui.vue'
217 import danzheng from './views/airtransport/danzheng.vue' 217 import danzheng from './views/airtransport/danzheng.vue'
  218 +import yqdeclare from './views/airtransport/yqdeclare.vue'
218 219
219 let routes = [ 220 let routes = [
220 { 221 {
@@ -786,7 +787,8 @@ let routes = [ @@ -786,7 +787,8 @@ let routes = [
786 children:[ 787 children:[
787 {path:'/gongtui',component:gongtui,name:'供退物料申报'}, 788 {path:'/gongtui',component:gongtui,name:'供退物料申报'},
788 {path:'/zaigang',component:zaigang,name:'在港动态申报'}, 789 {path:'/zaigang',component:zaigang,name:'在港动态申报'},
789 - {path:'/danzheng',component:danzheng,name:'单证申报'} 790 + {path:'/danzheng',component:danzheng,name:'单证申报'},
  791 + {path:'/yqdeclare',component:yqdeclare,name:'预确报申报'}
790 ] 792 ]
791 }, 793 },
792 794
@@ -38,6 +38,16 @@ @@ -38,6 +38,16 @@
38 <el-col :span="2"> 38 <el-col :span="2">
39 <el-button size="medium" type="success" @click="addForm()" plain>新增</el-button> 39 <el-button size="medium" type="success" @click="addForm()" plain>新增</el-button>
40 </el-col> 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>
41 </el-row> 51 </el-row>
42 <el-row :gutter="10"> 52 <el-row :gutter="10">
43 <el-table 53 <el-table
@@ -492,9 +502,10 @@ @@ -492,9 +502,10 @@
492 selectBillLists, 502 selectBillLists,
493 selectByairportcode, 503 selectByairportcode,
494 selectBycustomcode, 504 selectBycustomcode,
495 - selectReturnMsgList, sendBillSdeclare, updateByPrimaryKeySelectiveBill 505 + selectReturnMsgList, sendBillSdeclare, updateByPrimaryKeySelectiveBill,batchJZImport
496 } from "../../api/transport/transport2.0"; 506 } from "../../api/transport/transport2.0";
497 import {selectCountry, selectCreden} from "../../api/transport"; 507 import {selectCountry, selectCreden} from "../../api/transport";
  508 + import {importExcel} from "../../api/consigner/exportOrder";
498 509
499 export default{ 510 export default{
500 data(){ 511 data(){
@@ -660,6 +671,35 @@ @@ -660,6 +671,35 @@
660 } 671 }
661 }, 672 },
662 methods:{ 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 + },
663 addBillperson(){ 703 addBillperson(){
664 this.dialogFormVisible = true; 704 this.dialogFormVisible = true;
665 }, 705 },
  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="sendpre">确 定</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
  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 + },
  442 + tableData:[],
  443 + total:0,
  444 + query:{
  445 + aircraftNo:'',
  446 + flightNo:'',
  447 + starttime:'',
  448 + endtime:'',
  449 + customDistrictNo:'',
  450 + accessFlag:'',
  451 + yqtype:'',
  452 + pageNum:0,
  453 + pageSize:10
  454 + },
  455 + customcodes:[],
  456 + customcodes2:[],
  457 + customcodes3:[],
  458 + airportcodes:[],
  459 + airportcodes2:[],
  460 + loading:false,
  461 + flightdate:['2024-12-22','2024-12-25'],
  462 + pickerOptions: {
  463 + shortcuts: [{
  464 + text: '最近一周',
  465 + onClick(picker) {
  466 + const end = new Date();
  467 + const start = new Date();
  468 + start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
  469 + picker.$emit('pick', [start, end]);
  470 + }
  471 + }, {
  472 + text: '最近一个月',
  473 + onClick(picker) {
  474 + const end = new Date();
  475 + const start = new Date();
  476 + start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
  477 + picker.$emit('pick', [start, end]);
  478 + }
  479 + }, {
  480 + text: '最近三个月',
  481 + onClick(picker) {
  482 + const end = new Date();
  483 + const start = new Date();
  484 + start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
  485 + picker.$emit('pick', [start, end]);
  486 + }
  487 + }]
  488 + },
  489 + rules:{
  490 + aircraftNo: [
  491 + { required: true, message: '航空注册器编号不可为空', trigger: 'blur' }
  492 + ],
  493 + flightNo: [
  494 + { required: true, message: '航班号不可为空', trigger: 'blur' }
  495 + ],
  496 + flightDate: [
  497 + { required: true, message: '航班日期不可为空', trigger: 'blur' }
  498 + ],
  499 + customDistrictNo: [
  500 + { required: true, message: '海关关区不可为空', trigger: 'blur' }
  501 + ],
  502 + costomcode: [
  503 + { required: true, message: '海关关区不可为空', trigger: 'blur' }
  504 + ],
  505 + aircrafttype: [
  506 + { required: true, message: '航空器备案类型不可为空', trigger: 'blur' }
  507 + ],
  508 + stayid: [
  509 + { required: true, message: '停机位不可为空', trigger: 'blur' }
  510 + ],
  511 + departurePort: [
  512 + { required: true, message: '出发港不可为空', trigger: 'blur' }
  513 + ],
  514 + arrivalPort: [
  515 + { required: true, message: '目的港不可为空', trigger: 'blur' }
  516 + ],
  517 + departuredatetime: [
  518 + { required: true, message: '出境不可为空', trigger: 'blur' }
  519 + ],
  520 + arrivaldatetime: [
  521 + { required: true, message: '进境不可为空', trigger: 'blur' }
  522 + ],
  523 + },
  524 + returnVisible:false,
  525 + gridData:[],
  526 + row2:undefined
  527 + }
  528 + },
  529 + methods:{
  530 + cancleSB(row){
  531 + this.dialogFormVisible=true;
  532 + this.row2=row;
  533 +
  534 + },
  535 + sendpre(){
  536 + this.row2.content=this.cancleForm.content;
  537 + const params = {
  538 + row: this.row2,
  539 + FunctionCode: 2
  540 + };
  541 + canclePre(params).then(res =>{
  542 + let response=res.data;
  543 + if(response.code=='200'){
  544 + this.dialogFormVisible=false;
  545 + this.selectList();
  546 + this.$message.success(response.msg)
  547 + }else{
  548 + this.$message.error(response.msg)
  549 + }
  550 + });
  551 + },
  552 + handleClose() {
  553 + this.returnVisible=false;
  554 + },
  555 + //查询回执列表
  556 + returnlist(row){
  557 + this.gridData=[];
  558 + let params={messageid:row.messageid};
  559 + selectReturnMsgList(params).then(res=>{
  560 + let response=res.data.data;
  561 + this.gridData=response;
  562 + });
  563 + this.returnVisible=true;
  564 + },
  565 + createData(formName){
  566 + this.$refs[formName].validate((valid) => {
  567 + if (valid) {
  568 + insertSelectivePre(this.form).then(res =>{
  569 + let response=res.data;
  570 + if(response.code=='200'){
  571 + this.dialogVisible=false;
  572 + this.$message.success(response.msg);
  573 + this.selectList();
  574 + }else{
  575 + this.$message.error(response.msg)
  576 + }
  577 + });
  578 + } else {
  579 + return false;
  580 + }
  581 + });
  582 + },
  583 + updateData(formName){
  584 + this.$refs[formName].validate((valid) => {
  585 + if (valid) {
  586 + this.form.departuredatetime=this.form.arrivaldatetime;
  587 + this.form.departureAirport=this.form.arrivalAirport;
  588 + updateByPrimaryKeySelectivePre(this.form).then(res =>{
  589 + let response=res.data;
  590 + if(response.code=='200'){
  591 + this.dialogVisible=false;
  592 + Object.assign(this.$data, this.$options.data());
  593 + this.$message.success(response.msg);
  594 + this.getList();
  595 + }else{
  596 + this.$message.error(response.msg)
  597 + }
  598 + });
  599 + } else {
  600 + return false;
  601 + }
  602 + });
  603 + },
  604 + //获取关区代码
  605 + getCustomCode:function(query){
  606 + this.customcodes=[];
  607 + let params={customcode:query};
  608 + this.loading = true;
  609 + selectBycustomcode(params).then(res =>{
  610 + if (res !== '') {
  611 + setTimeout(() => {
  612 + this.loading = false;
  613 + this.customcodes=res.data.data;
  614 + }, 200);
  615 + } else {
  616 + this.customcodes = [];
  617 + }
  618 +
  619 + });
  620 + },
  621 + //获取关区代码
  622 + getCustomCode2:function(query){
  623 + this.customcodes2=[];
  624 + let params={customcode:query};
  625 + this.loading = true;
  626 + selectBycustomcode(params).then(res =>{
  627 + if (res !== '') {
  628 + setTimeout(() => {
  629 + this.loading = false;
  630 + this.customcodes2=res.data.data;
  631 + }, 200);
  632 + } else {
  633 + this.customcodes2 = [];
  634 + }
  635 +
  636 + });
  637 + },
  638 + //获取关区代码
  639 + getCustomCode3:function(query){
  640 + this.customcodes3=[];
  641 + let params={customcode:query};
  642 + this.loading = true;
  643 + selectBycustomcode(params).then(res =>{
  644 + if (res !== '') {
  645 + setTimeout(() => {
  646 + this.loading = false;
  647 + this.customcodes3=res.data.data;
  648 + }, 200);
  649 + } else {
  650 + this.customcodes3 = [];
  651 + }
  652 +
  653 + });
  654 + },
  655 + //获取机场代码
  656 + getAirportCode:function(query){
  657 + this.airportcodes=[];
  658 + let params={airportid:query};
  659 + this.loading = true;
  660 + selectByairportcode(params).then(res =>{
  661 + if (res !== '') {
  662 + setTimeout(() => {
  663 + this.loading = false;
  664 + this.airportcodes=res.data.data;
  665 + }, 200);
  666 + } else {
  667 + this.airportcodes = [];
  668 + }
  669 +
  670 + });
  671 + },
  672 + //获取机场代码
  673 + getAirportCode2:function(query){
  674 + this.airportcodes2=[];
  675 + let params={airportid:query};
  676 + this.loading = true;
  677 + selectByairportcode(params).then(res =>{
  678 + if (res !== '') {
  679 + setTimeout(() => {
  680 + this.loading = false;
  681 + this.airportcodes2=res.data.data;
  682 + }, 200);
  683 + } else {
  684 + this.airportcodes2 = [];
  685 + }
  686 +
  687 + });
  688 + },
  689 + selectList(){
  690 + if(this.flightdate !== null && this.flightdate !== ""){
  691 + this.query.starttime = this.flightdate[0];
  692 + this.query.endtime = this.flightdate[1];
  693 + }else{
  694 + return this.$message.error('请选取时间区间')
  695 + }
  696 + this.loading = true;
  697 + selectPreList(this.query).then((response) => {
  698 + const res = response.data
  699 + if (res.code !== '200') {
  700 + this.loading = false;
  701 + return this.$message.error('获取消息收发记录,失败!')
  702 + }
  703 + // 获取列表数据
  704 + this.tableData = res.data.list
  705 + // 获取列表的总记录数
  706 + this.total = res.data.total
  707 + this.loading = false;
  708 + this.$message.success('获取消息收发记录,成功!');
  709 + }).catch(error => {
  710 + // 关闭加载
  711 + this.$message.error(error.toString())
  712 + })
  713 + },
  714 + //新增
  715 + addForm(){
  716 + this.dialogVisible=true;
  717 + this.dialogStatus='create';
  718 + },
  719 + handleClick(row){
  720 + this.dialogVisible=true;
  721 + this.dialogStatus='update';
  722 + this.form=row;
  723 + },
  724 + //分页
  725 + handleSizeChange(val) {
  726 + this.query.pageSize=val;
  727 + this.selectList();
  728 + },
  729 + handleCurrentChange(val) {
  730 + this.query.pageNum=val;
  731 + this.selectList();
  732 + }
  733 + },
  734 + }
  735 +</script>