From c463d53246397b05454326e213f2844ec40b4cfc Mon Sep 17 00:00:00 2001
From: xudada <xuyonghui1118@163.com>
Date: Thu, 2 Jan 2025 19:10:26 +0800
Subject: [PATCH] 单证申报BUG修复,增加预报确报功能

---
 src/api/transport/transport2.0.js    |  10 ++++++++++
 src/routes.js                        |   4 +++-
 src/views/airtransport/danzheng.vue  |  42 +++++++++++++++++++++++++++++++++++++++++-
 src/views/airtransport/yqdeclare.vue | 735 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 789 insertions(+), 2 deletions(-)
 create mode 100644 src/views/airtransport/yqdeclare.vue

diff --git a/src/api/transport/transport2.0.js b/src/api/transport/transport2.0.js
index 13907d7..9ecb93a 100644
--- a/src/api/transport/transport2.0.js
+++ b/src/api/transport/transport2.0.js
@@ -20,6 +20,16 @@ export const selectBillLists = params => { return http.get(`${baseUrl}/transport
 export const insertSelectiveBill = params => { return http.post(`${baseUrl}/transport/bill/insertSelectiveBill`,  params); };
 export const updateByPrimaryKeySelectiveBill = params => { return http.post(`${baseUrl}/transport/bill/updateByPrimaryKeySelectiveBill`,  params); };
 export const sendBillSdeclare = params => { return http.post(`${baseUrl}/transport/bill/sendBillSdeclare`,  params); };
+export const batchJZImport = params => { return http.postExcelData(`${baseUrl}/transport/bill/batchJZImport`, params); };
+
+
+//预确报申报
+export const selectPreList = params => { return http.get(`${baseUrl}/transport/prediction/selectList`,  params); };
+export const insertSelectivePre = params => { return http.post(`${baseUrl}/transport/prediction/insertSelective`,  params); };
+export const updateByPrimaryKeySelectivePre = params => { return http.post(`${baseUrl}/transport/prediction/updateByPrimaryKeySelective`,  params); };
+export const sendPrediction = params => { return http.post(`${baseUrl}/transport/prediction/sendPrediction`,  params); };
+export const canclePre = params => { return http.post(`${baseUrl}/transport/prediction/canclePre`,  params); };
+
 
 
 
diff --git a/src/routes.js b/src/routes.js
index a179a81..8c9e710 100755
--- a/src/routes.js
+++ b/src/routes.js
@@ -215,6 +215,7 @@ import Rate from './views/zhidan/rate.vue'
 import zaigang from './views/airtransport/zaigang.vue'
 import gongtui from './views/airtransport/gongtui.vue'
 import danzheng from './views/airtransport/danzheng.vue'
+import yqdeclare from './views/airtransport/yqdeclare.vue'
 
 let routes = [
     {
@@ -786,7 +787,8 @@ let routes = [
         children:[
             {path:'/gongtui',component:gongtui,name:'供退物料申报'},
             {path:'/zaigang',component:zaigang,name:'在港动态申报'},
-            {path:'/danzheng',component:danzheng,name:'单证申报'}
+            {path:'/danzheng',component:danzheng,name:'单证申报'},
+            {path:'/yqdeclare',component:yqdeclare,name:'预确报申报'}
         ]
     },
 
diff --git a/src/views/airtransport/danzheng.vue b/src/views/airtransport/danzheng.vue
index 5236cdf..ceabed3 100644
--- a/src/views/airtransport/danzheng.vue
+++ b/src/views/airtransport/danzheng.vue
@@ -38,6 +38,16 @@
             <el-col :span="2">
                 <el-button size="medium" type="success" @click="addForm()" plain>新增</el-button>
             </el-col>
+            <el-col :span="2">
+                <el-upload
+                        class="upload-demo"
+                        action=""
+                        :before-upload="beforeUpload"
+                        :http-request="uploadFile"
+                        :show-file-list="false">
+                    <el-button size="medium" type="success" plain>导入</el-button>
+                </el-upload>
+            </el-col>
         </el-row>
         <el-row :gutter="10">
             <el-table
@@ -492,9 +502,10 @@
         selectBillLists,
         selectByairportcode,
         selectBycustomcode,
-        selectReturnMsgList, sendBillSdeclare, updateByPrimaryKeySelectiveBill
+        selectReturnMsgList, sendBillSdeclare, updateByPrimaryKeySelectiveBill,batchJZImport
     } from "../../api/transport/transport2.0";
     import {selectCountry, selectCreden} from "../../api/transport";
+    import {importExcel} from "../../api/consigner/exportOrder";
 
     export default{
         data(){
@@ -660,6 +671,35 @@
             }
         },
         methods:{
+            //导入订单excel
+            beforeUpload(file) {
+                // 检查文件类型
+                const isExcel = file.type === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' || file.type === 'application/vnd.ms-excel';
+                if (!isExcel) {
+                    this.$message.error('上传文件只能是 Excel 格式!');
+                    return false; // 取消文件上传
+                }
+                return true; // 允许上传
+
+            },
+            uploadFile({ file, onSuccess, onError }){
+                // 生成 FormData 对象
+                const formData = new FormData();
+                formData.append('file', file);
+                batchJZImport(formData).then((response) => {
+                    const res = response.data
+                    if (res.code !== '200') {
+                        return this.$message.error(res.msg);
+                    }
+                    this.$message.success(res.msg);
+                    this.selectList();
+                    onSuccess(response.data); // 调用 onSuccess 回调通知上传成功
+                }).catch(error => {
+                    // 关闭加载
+                    this.$message.error(error.toString())
+                    onError(error); // 调用 onError 回调通知上传失败
+                })
+            },
             addBillperson(){
                 this.dialogFormVisible = true;
             },
diff --git a/src/views/airtransport/yqdeclare.vue b/src/views/airtransport/yqdeclare.vue
new file mode 100644
index 0000000..4b6d448
--- /dev/null
+++ b/src/views/airtransport/yqdeclare.vue
@@ -0,0 +1,735 @@
+<template>
+    <div>
+        <el-row :gutter="10">
+            <el-col :span="4">
+                <el-input
+                        placeholder="航空器注册编号"
+                        v-model="query.aircraftNo"
+                        size="medium"
+                        clearable>
+                </el-input>
+            </el-col>
+            <el-col :span="4">
+                <el-input
+                        placeholder="进出境航班号"
+                        v-model="query.flightNo"
+                        size="medium"
+                        clearable>
+                </el-input>
+            </el-col>
+            <el-col :span="8">
+                <div class="block">
+                    <el-date-picker
+                            v-model="flightdate"
+                            type="daterange"
+                            :picker-options="pickerOptions"
+                            range-separator="至"
+                            start-placeholder="开始日期"
+                            end-placeholder="结束日期"
+                            value-format="yyyy-MM-dd"
+                            size="medium"
+                            align="right">
+                    </el-date-picker>
+                </div>
+            </el-col>
+            <el-col :span="6">
+                    <el-select v-model="query.customDistrictNo"
+                               filterable
+                               allow-create
+                               default-first-option
+                               remote
+                               :remote-method="getCustomCode"
+                               size="medium"
+                               :loading="loading" placeholder="海关关区">
+                        <el-option
+                                v-for="item in customcodes"
+                                :key="item.customcode"
+                                :label="item.customcode"
+                                :value="item.customcode">
+                            <span style="float: left">{{ item.customcode }}</span>
+                            <span style="float: right; color: #8492a6; font-size: 13px">-{{ item.customname }}</span>
+                        </el-option>
+                    </el-select>
+            </el-col>
+        </el-row>
+        <el-row :gutter="10">
+            <el-col :span="4">
+                <el-select v-model="query.accessFlag" size="medium" placeholder="请选择">
+                    <el-option label="进境" value="0"></el-option>
+                    <el-option label="出境" value="1"></el-option>
+                </el-select>
+            </el-col>
+            <el-col :span="4">
+                <el-select v-model="query.yqtype" size="medium" placeholder="请选择">
+                    <el-option label="预报" value="Y"></el-option>
+                    <el-option label="确报" value="Q"></el-option>
+                </el-select>
+            </el-col>
+            <el-col :span="2">
+                <el-button size="medium" type="primary" @click="selectList" plain>查询</el-button>
+            </el-col>
+            <el-col :span="2">
+                <el-button size="medium" type="success" @click="addForm()" plain>新增</el-button>
+            </el-col>
+        </el-row>
+        <el-row :gutter="10">
+            <el-table
+                    :data="tableData"
+                    border
+                    style="width: 100%">
+                <el-table-column
+                        fixed="left"
+                        label="信息操作"
+                        width="100">
+                    <template slot-scope="scope">
+                        <el-button @click="handleClick(scope.row)" type="text" size="small">编辑</el-button>
+                    </template>
+                </el-table-column>
+                <el-table-column
+                        prop="messageid"
+                        label="编号"
+                        width="240">
+                </el-table-column>
+                <el-table-column
+                        prop="aircraftNo"
+                        label="航空器注册编号"
+                        width="110">
+                </el-table-column>
+                <el-table-column
+                        prop="flightNo"
+                        label="进出境航班号"
+                        width="120">
+                </el-table-column>
+                <el-table-column
+                        prop="flightDate"
+                        label="航班日期"
+                        width="120">
+                </el-table-column>
+                <el-table-column
+                        label="进出类型"
+                        width="120">
+                    <template slot-scope="scope">
+                        {{ scope.row.accessFlag === '0' ? '进境' : '出境' }}
+                    </template>
+                </el-table-column>
+                <el-table-column
+                        label="申报类型"
+                        width="120">
+                    <template slot-scope="scope">
+                        {{ scope.row.yqtype === 'Y' ? '预报' : '确报' }}
+                    </template>
+                </el-table-column>
+                <el-table-column
+                        label="进出境时间"
+                        width="120">
+                    <template slot-scope="scope">
+                        <span v-if="scope.row.accessFlag === '0'">{{ scope.row.arrivaldatetime }}</span>
+                        <span v-else>{{ scope.row.departuredatetime }}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column
+                        prop="arrivalPort"
+                        label="目的港"
+                        width="120">
+                </el-table-column>
+                <el-table-column
+                        prop="statusMsg"
+                        label="海关状态"
+                        width="120">
+                </el-table-column>
+                <el-table-column
+                        fixed="right"
+                        label="操作"
+                        width="220">
+                    <template slot-scope="scope">
+                        <el-button @click="returnlist(scope.row)" type="text" size="small">查看</el-button>
+                        <el-button @click="sendpre(scope.row,2)" type="text" size="small">申报</el-button>
+                        <el-button @click="sendpre(scope.row,5)" type="text" size="small">修改</el-button>
+                        <el-button @click="sendpre(scope.row,3)" type="text" size="small">删除</el-button>
+                        <el-button @click="cancleSB(scope.row)" type="text" size="small">取消</el-button>
+                    </template>
+                </el-table-column>
+            </el-table>
+        </el-row>
+        <el-row :gutter="10">
+            <div class="block">
+                <el-pagination
+                        @size-change="handleSizeChange"
+                        @current-change="handleCurrentChange"
+                        :current-page="query.pageNum"
+                        :page-sizes="[100, 200, 300, 400]"
+                        :page-size="query.pageSize"
+                        layout="total, sizes, prev, pager, next, jumper"
+                        :total="total">
+                </el-pagination>
+            </div>
+        </el-row>
+        <el-row>
+            <el-dialog
+                    :title="'预确报信息'+textMap[dialogStatus]"
+                    :visible.sync="dialogVisible"
+                    width="80%"
+                    center>
+                <el-form :model="form" :rules="rules" ref="form" label-width="130px">
+                    <el-divider content-position="left"><span style="color: #1d8ce0">报给单位</span></el-divider>
+                    <el-row :gutter="20">
+                        <el-col :span="6">
+                            <el-form-item label="海关关区" prop="customDistrictNo">
+                                <el-select v-model="form.customDistrictNo"
+                                           filterable
+                                           allow-create
+                                           default-first-option
+                                           remote
+                                           :remote-method="getCustomCode2"
+                                           :loading="loading" placeholder="请选择">
+                                    <el-option
+                                            v-for="item in customcodes2"
+                                            :key="item.customcode"
+                                            :label="item.customcode"
+                                            :value="item.customcode">
+                                        <span style="float: left">{{ item.customcode }}</span>
+                                        <span style="float: right; color: #8492a6; font-size: 13px">-{{ item.customname }}</span>
+                                    </el-option>
+                                </el-select>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="6">
+                            <el-form-item label="进出类型" prop="accessFlag">
+                                <el-select v-model="form.accessFlag" placeholder="请选择">
+                                    <el-option label="进境" value="0"></el-option>
+                                    <el-option label="出境" value="1"></el-option>
+                                </el-select>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="6">
+                            <el-form-item label="申报类型" prop="yqtype">
+                                <el-select v-model="form.yqtype" placeholder="请选择">
+                                    <el-option label="预报" value="Y"></el-option>
+                                    <el-option label="确报" value="Q"></el-option>
+                                </el-select>
+                            </el-form-item>
+                        </el-col>
+                    </el-row>
+                    <el-divider content-position="left"><span style="color: #1d8ce0">航空器信息</span></el-divider>
+                    <el-row :gutter="20">
+                        <el-col :span="6">
+                            <el-form-item label="航空器注册编号" prop="aircraftno">
+                                <el-input v-model="form.aircraftNo"></el-input>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="6">
+                            <el-form-item label="注册海关关区" prop="costomcode">
+                                <el-select v-model="form.costomcode"
+                                           filterable
+                                           allow-create
+                                           default-first-option
+                                           remote
+                                           :remote-method="getCustomCode3"
+                                           :loading="loading" placeholder="请选择">
+                                    <el-option
+                                            v-for="item in customcodes3"
+                                            :key="item.customcode"
+                                            :label="item.customcode"
+                                            :value="item.customcode">
+                                        <span style="float: left">{{ item.customcode }}</span>
+                                        <span style="float: right; color: #8492a6; font-size: 13px">-{{ item.customname }}</span>
+                                    </el-option>
+                                </el-select>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="6">
+                            <el-form-item label="航空器备案类型" prop="aircrafttype">
+                                <el-select v-model="form.aircrafttype" placeholder="请选择">
+                                    <el-option label="通用航空器" value="1"></el-option>
+                                    <el-option label="航线航空器" value="2"></el-option>
+                                </el-select>
+                            </el-form-item>
+                        </el-col>
+                    </el-row>
+                    <el-divider content-position="left"><span style="color: #1d8ce0">航班信息</span></el-divider>
+                    <el-row :gutter="20">
+                        <el-col :span="6">
+                            <el-form-item label="进出境航班号" prop="flightNo">
+                                <el-input v-model="form.flightNo"></el-input>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="6">
+                            <el-form-item label="航班日期" prop="flightDate" style="width: 100%;">
+                                <div class="block">
+                                    <el-date-picker
+                                            v-model="form.flightDate"
+                                            value-format="yyyy-MM-dd"
+                                            type="date"
+                                            placeholder="选择日期"
+                                            style="width: 100%;"
+                                    ></el-date-picker>
+                                </div>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="6">
+                            <el-form-item label="停机位" prop="stayid">
+                                <el-input v-model="form.stayid"></el-input>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="6">
+                            <el-form-item label="出发港" prop="departurePort" style="width: 100%;">
+                                <el-select v-model="form.departurePort"
+                                           filterable
+                                           allow-create
+                                           default-first-option
+                                           remote
+                                           :remote-method="getAirportCode"
+                                           :loading="loading" placeholder="请选择">
+                                    <el-option
+                                            v-for="item in airportcodes"
+                                            :key="item.airportid"
+                                            :label="item.airportid"
+                                            :value="item.airportid">
+                                        <span style="float: left">{{ item.airportid }}</span>
+                                        <span style="float: right; color: #8492a6; font-size: 13px">-{{ item.airportname}}</span>
+                                    </el-option>
+                                </el-select>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="6">
+                            <el-form-item label="目的港" prop="arrivalPort" style="width: 100%;">
+                                <el-select v-model="form.arrivalPort"
+                                           filterable
+                                           allow-create
+                                           default-first-option
+                                           remote
+                                           :remote-method="getAirportCode2"
+                                           :loading="loading" placeholder="请选择">
+                                    <el-option
+                                            v-for="item in airportcodes2"
+                                            :key="item.airportid"
+                                            :label="item.airportid"
+                                            :value="item.airportid">
+                                        <span style="float: left">{{ item.airportid }}</span>
+                                        <span style="float: right; color: #8492a6; font-size: 13px">-{{ item.airportname}}</span>
+                                    </el-option>
+                                </el-select>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="6">
+                            <el-form-item label="出境时间" prop="departuredatetime" style="width: 100%;">
+                                <el-date-picker
+                                        v-model="form.departuredatetime"
+                                        type="datetime"
+                                        value-format="yyyy-MM-dd HH:mm:ss"
+                                        placeholder="yyyy-MM-dd HH:mm:ss"
+                                        style="width: 100%;">
+                                </el-date-picker>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="6">
+                            <el-form-item label="进境时间" prop="arrivaldatetime" style="width: 100%;">
+                                <el-date-picker
+                                        v-model="form.arrivaldatetime"
+                                        type="datetime"
+                                        value-format="yyyy-MM-dd HH:mm:ss"
+                                        placeholder="yyyy-MM-dd HH:mm:ss"
+                                        style="width: 100%;">
+                                </el-date-picker>
+                            </el-form-item>
+                        </el-col>
+                    </el-row>
+                    <el-divider content-position="left"><span style="color: #1d8ce0">海关备注</span></el-divider>
+                    <el-row :gutter="20">
+                        <el-col :span="12">
+                            <el-form-item label="海关备注">
+                                <el-input v-model="form.meno"></el-input>
+                            </el-form-item>
+                        </el-col>
+                    </el-row>
+                    <el-divider></el-divider>
+                    <el-row :gutter="20">
+                        <el-col :span="12" :offset="6">
+                            <el-form-item>
+                                <el-button @click="dialogVisible=false">取消</el-button>
+                                <el-button type="primary" @click="dialogStatus==='create'?createData('form'):updateData('form')">暂存</el-button>
+                            </el-form-item>
+                        </el-col>
+                    </el-row>
+                </el-form>
+            </el-dialog>
+        </el-row>
+        <el-row :gutter="10">
+            <el-dialog
+                    title="回执列表"
+                    :visible.sync="returnVisible"
+                    width="55%"
+                    :before-close="handleClose">
+                <el-table :data="gridData">
+                    <el-table-column property="sendtime" label="操作时间" ></el-table-column>
+                    <el-table-column property="createBy" label="操作人" ></el-table-column>
+                    <el-table-column property="flightNo" label="航班号"></el-table-column>
+                    <el-table-column property="flightDate" label="航班日期" ></el-table-column>
+                    <el-table-column property="receiptContent" label="回执内容" ></el-table-column>
+                </el-table>
+            </el-dialog>
+        </el-row>
+        <el-row>
+            <el-dialog title="航班取消申报" :visible.sync="dialogFormVisible">
+                <el-form :model="cancleForm">
+                    <el-form-item label="取消原因" label-width="130px">
+                        <el-input v-model="cancleForm.content" autocomplete="off"></el-input>
+                    </el-form-item>
+                </el-form>
+                <div slot="footer" class="dialog-footer">
+                    <el-button @click="dialogFormVisible = false">取 消</el-button>
+                    <el-button type="primary" @click="sendpre">确 定</el-button>
+                </div>
+            </el-dialog>
+        </el-row>
+    </div>
+</template>
+<script>
+    import {
+        selectByairportcode,
+        selectBycustomcode,
+        selectPreList,
+        insertSelectivePre,
+        updateByPrimaryKeySelectivePre, selectReturnMsgList, canclePre
+    } from "../../api/transport/transport2.0";
+
+    export default {
+        data(){
+            return{
+                cancleForm:{
+                    content:''
+                },
+                dialogFormVisible:false,
+                textMap:{
+                    update: '编辑',
+                    create: '新增'
+                },
+                dialogStatus:'',
+                dialogVisible:false,
+                form: {
+                    uuid: '', // 唯一标识符
+                    awcd: '', // 不知道具体含义,根据业务需求填充
+                    aircraftNo: '', // 飞机编号
+                    flightNo: '', // 航班号
+                    flightDate: '', // 航班日期
+                    departurePort: '', // 出发港
+                    arrivalPort: '', // 到达港
+                    departuredatetime: '', // 出发日期时间
+                    departuredate: '', // 出发日期
+                    stayid: '', // 停留ID
+                    departureconveyancefacility: '', // 出发运输设施
+                    arrivalconveyancefacility: '', // 到达运输设施
+                    arrivaldatetime: '', // 到达日期时间
+                    arrivaldate: '', // 到达日期
+                    dischargecompleteddatetime: '', // 卸载完成日期时间
+                    transportflag: '', // 运输标志
+                    customDistrictNo: '', // 海关区号
+                    cancelFlag: '', // 取消标志
+                    accessFlag: '0', // 访问标志
+                    meno: '', // 备注
+                    createTime: '', // 创建时间
+                    createBy: '', // 创建人
+                    updateTime: '', // 更新时间
+                    updateBy: '', // 更新人
+                    isDelete: '0', // 是否删除
+                    status: '', // 状态
+                    statusMsg: '', // 状态信息
+                    messageid: '', // 消息ID
+                    yqtype: 'Y', // 不知道具体含义,根据业务需求填充
+                    costomcode:'',
+                    aircrafttype:'1'
+                },
+                tableData:[],
+                total:0,
+                query:{
+                    aircraftNo:'',
+                    flightNo:'',
+                    starttime:'',
+                    endtime:'',
+                    customDistrictNo:'',
+                    accessFlag:'',
+                    yqtype:'',
+                    pageNum:0,
+                    pageSize:10
+                },
+                customcodes:[],
+                customcodes2:[],
+                customcodes3:[],
+                airportcodes:[],
+                airportcodes2:[],
+                loading:false,
+                flightdate:['2024-12-22','2024-12-25'],
+                pickerOptions: {
+                    shortcuts: [{
+                        text: '最近一周',
+                        onClick(picker) {
+                            const end = new Date();
+                            const start = new Date();
+                            start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
+                            picker.$emit('pick', [start, end]);
+                        }
+                    }, {
+                        text: '最近一个月',
+                        onClick(picker) {
+                            const end = new Date();
+                            const start = new Date();
+                            start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
+                            picker.$emit('pick', [start, end]);
+                        }
+                    }, {
+                        text: '最近三个月',
+                        onClick(picker) {
+                            const end = new Date();
+                            const start = new Date();
+                            start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
+                            picker.$emit('pick', [start, end]);
+                        }
+                    }]
+                },
+                rules:{
+                    aircraftNo: [
+                        { required: true, message: '航空注册器编号不可为空', trigger: 'blur' }
+                    ],
+                    flightNo: [
+                        { required: true, message: '航班号不可为空', trigger: 'blur' }
+                    ],
+                    flightDate: [
+                        { required: true, message: '航班日期不可为空', trigger: 'blur' }
+                    ],
+                    customDistrictNo: [
+                        { required: true, message: '海关关区不可为空', trigger: 'blur' }
+                    ],
+                    costomcode: [
+                        { required: true, message: '海关关区不可为空', trigger: 'blur' }
+                    ],
+                    aircrafttype: [
+                        { required: true, message: '航空器备案类型不可为空', trigger: 'blur' }
+                    ],
+                    stayid: [
+                        { required: true, message: '停机位不可为空', trigger: 'blur' }
+                    ],
+                    departurePort: [
+                        { required: true, message: '出发港不可为空', trigger: 'blur' }
+                    ],
+                    arrivalPort: [
+                        { required: true, message: '目的港不可为空', trigger: 'blur' }
+                    ],
+                    departuredatetime: [
+                        { required: true, message: '出境不可为空', trigger: 'blur' }
+                    ],
+                    arrivaldatetime: [
+                        { required: true, message: '进境不可为空', trigger: 'blur' }
+                    ],
+                },
+                returnVisible:false,
+                gridData:[],
+                row2:undefined
+            }
+        },
+        methods:{
+            cancleSB(row){
+                this.dialogFormVisible=true;
+                this.row2=row;
+
+            },
+            sendpre(){
+                this.row2.content=this.cancleForm.content;
+                const params = {
+                    row: this.row2,
+                    FunctionCode: 2
+                };
+                canclePre(params).then(res =>{
+                    let response=res.data;
+                    if(response.code=='200'){
+                        this.dialogFormVisible=false;
+                        this.selectList();
+                        this.$message.success(response.msg)
+                    }else{
+                        this.$message.error(response.msg)
+                    }
+                });
+            },
+            handleClose() {
+                this.returnVisible=false;
+            },
+            //查询回执列表
+            returnlist(row){
+                this.gridData=[];
+                let params={messageid:row.messageid};
+                selectReturnMsgList(params).then(res=>{
+                    let response=res.data.data;
+                    this.gridData=response;
+                });
+                this.returnVisible=true;
+            },
+            createData(formName){
+                this.$refs[formName].validate((valid) => {
+                    if (valid) {
+                        insertSelectivePre(this.form).then(res =>{
+                            let response=res.data;
+                            if(response.code=='200'){
+                                this.dialogVisible=false;
+                                this.$message.success(response.msg);
+                                this.selectList();
+                            }else{
+                                this.$message.error(response.msg)
+                            }
+                        });
+                    } else {
+                        return false;
+                    }
+                });
+            },
+            updateData(formName){
+                this.$refs[formName].validate((valid) => {
+                    if (valid) {
+                        this.form.departuredatetime=this.form.arrivaldatetime;
+                        this.form.departureAirport=this.form.arrivalAirport;
+                        updateByPrimaryKeySelectivePre(this.form).then(res =>{
+                            let response=res.data;
+                            if(response.code=='200'){
+                                this.dialogVisible=false;
+                                Object.assign(this.$data, this.$options.data());
+                                this.$message.success(response.msg);
+                                this.getList();
+                            }else{
+                                this.$message.error(response.msg)
+                            }
+                        });
+                    } else {
+                        return false;
+                    }
+                });
+            },
+            //获取关区代码
+            getCustomCode:function(query){
+                this.customcodes=[];
+                let params={customcode:query};
+                this.loading = true;
+                selectBycustomcode(params).then(res =>{
+                    if (res !== '') {
+                        setTimeout(() => {
+                            this.loading = false;
+                            this.customcodes=res.data.data;
+                        }, 200);
+                    } else {
+                        this.customcodes = [];
+                    }
+
+                });
+            },
+            //获取关区代码
+            getCustomCode2:function(query){
+                this.customcodes2=[];
+                let params={customcode:query};
+                this.loading = true;
+                selectBycustomcode(params).then(res =>{
+                    if (res !== '') {
+                        setTimeout(() => {
+                            this.loading = false;
+                            this.customcodes2=res.data.data;
+                        }, 200);
+                    } else {
+                        this.customcodes2 = [];
+                    }
+
+                });
+            },
+            //获取关区代码
+            getCustomCode3:function(query){
+                this.customcodes3=[];
+                let params={customcode:query};
+                this.loading = true;
+                selectBycustomcode(params).then(res =>{
+                    if (res !== '') {
+                        setTimeout(() => {
+                            this.loading = false;
+                            this.customcodes3=res.data.data;
+                        }, 200);
+                    } else {
+                        this.customcodes3 = [];
+                    }
+
+                });
+            },
+            //获取机场代码
+            getAirportCode:function(query){
+                this.airportcodes=[];
+                let params={airportid:query};
+                this.loading = true;
+                selectByairportcode(params).then(res =>{
+                    if (res !== '') {
+                        setTimeout(() => {
+                            this.loading = false;
+                            this.airportcodes=res.data.data;
+                        }, 200);
+                    } else {
+                        this.airportcodes = [];
+                    }
+
+                });
+            },
+            //获取机场代码
+            getAirportCode2:function(query){
+                this.airportcodes2=[];
+                let params={airportid:query};
+                this.loading = true;
+                selectByairportcode(params).then(res =>{
+                    if (res !== '') {
+                        setTimeout(() => {
+                            this.loading = false;
+                            this.airportcodes2=res.data.data;
+                        }, 200);
+                    } else {
+                        this.airportcodes2 = [];
+                    }
+
+                });
+            },
+            selectList(){
+                if(this.flightdate !== null && this.flightdate !== ""){
+                    this.query.starttime = this.flightdate[0];
+                    this.query.endtime = this.flightdate[1];
+                }else{
+                    return this.$message.error('请选取时间区间')
+                }
+                this.loading = true;
+                selectPreList(this.query).then((response) => {
+                    const res = response.data
+                    if (res.code !== '200') {
+                        this.loading = false;
+                        return this.$message.error('获取消息收发记录,失败!')
+                    }
+                    // 获取列表数据
+                    this.tableData = res.data.list
+                    // 获取列表的总记录数
+                    this.total = res.data.total
+                    this.loading = false;
+                    this.$message.success('获取消息收发记录,成功!');
+                }).catch(error => {
+                    // 关闭加载
+                    this.$message.error(error.toString())
+                })
+            },
+            //新增
+            addForm(){
+                this.dialogVisible=true;
+                this.dialogStatus='create';
+            },
+            handleClick(row){
+                this.dialogVisible=true;
+                this.dialogStatus='update';
+                this.form=row;
+            },
+            //分页
+            handleSizeChange(val) {
+                this.query.pageSize=val;
+                this.selectList();
+            },
+            handleCurrentChange(val) {
+                this.query.pageNum=val;
+                this.selectList();
+            }
+        },
+    }
+</script>
--
libgit2 0.24.0