<template>
    <el-container>
        <el-main style="background-color: white">
            <!--检索条目部分-->
            <el-row class="row-bg">
                <el-col :span="24">
                    <div class="grid-content content">航班信息</div>
                </el-col>
                <el-col :span="24">
                    <div class="grid-content co">
                        <el-col :span="1">
                            <div class="grid-content"></div>
                        </el-col>
                        <el-col :span="20">
                            <div class="grid-content">
                                <span>航班号:{{defaultQuery.flightno}}</span>
                                <span>航班日期:{{defaultQuery.flightdate}}</span>
                                <span>航段:{{defaultQuery.originstation}}-{{defaultQuery.destinationstation}}</span>
                            </div>
                        </el-col>
                    </div>
                </el-col>
                <el-col :span="24">
                    <div class="grid-content content">进港舱单查询</div>
                </el-col>
                <el-col :span="24">
                    <div class="grid-content co">
                        <el-col :span="1">
                            <div class="grid-content"></div>
                        </el-col>
                        <el-col :span="22">
                            <div class="grid-content">
                                <el-col :span="4.5" class="pub">
                                    <div class="grid-content">
                                        <el-input v-model="defaultQuery.awba" placeholder="请输入主单号"></el-input>
                                    </div>
                                </el-col>
                                <el-col :span="1.5" class="pub">
                                    <div class="grid-content">
                                        <el-button type="primary" size="mini" v-on:click="getList">查询</el-button>
                                    </div>
                                </el-col>
                                <el-col :span="4" class="pub">
                                    <div class="grid-content">
                                        <el-dropdown @command="handleCommand">
                                            <el-button  size="mini" type="primary">
                                                导出文件<i class="el-icon-arrow-down el-icon--right"></i>
                                            </el-button>
                                            <el-dropdown-menu slot="dropdown">
                                                <el-dropdown-item command="PDF">导出PDF</el-dropdown-item>
                                                <el-dropdown-item command="EXCEL">导出EXCEL</el-dropdown-item>
                                            </el-dropdown-menu>
                                        </el-dropdown>
                                    </div>
                                </el-col>
                            </div>
                        </el-col>
                    </div>
                </el-col>
                <el-col :span="24">
                    <div class="grid-content content" style="margin-top: 6px">舱单明细</div>
                </el-col>
            </el-row>
            <!--查询列表部分-->
            <el-row>
                <el-col :span="24">
                    <template>
                        <el-table
                                class="table"
                                id="pdfDom"
                                v-loading="tableloading"
                                ref="multipleTable"
                                :data="tableData"
                                tooltip-effect="dark"
                                style="width: 100%"
                                @selection-change="handleSelectionChange"
                                row-key="uuid"
                                border
                                default-expand-all
                                :tree-props="{children: 'children', hasChildren: 'hasChildren'}">
                            <el-table-column
                                    type="selection"
                                    width="50">
                            </el-table-column>
                                <el-table-column
                                        label="运单号"
                                        width="185"
                                        >
                                    <template slot-scope="scope">
                                        <span v-if="scope.row.awbh==''||scope.row.awbh==null">
                                            {{scope.row.awba}}
                                        </span>
                                        <span v-else>
                                            {{scope.row.awbh}}
                                        </span>
                                    </template>
                                </el-table-column>
                            <el-table-column
                                    prop="awbinfo.pcs"
                                    label="总件数"
                                    width="70"
                                    show-overflow-tooltip>
                            </el-table-column>
                            <el-table-column
                                    prop="awbinfo.weight"
                                    label="总重量"
                                    width="70"
                                    show-overflow-tooltip>
                            </el-table-column>
                            <el-table-column
                                    prop="piece"
                                    label="舱单件数"
                                    width="80"
                                    show-overflow-tooltip>
                            </el-table-column>
                            <el-table-column
                                    prop="weight"
                                    label="舱单重量"
                                    width="80"
                                    show-overflow-tooltip>
                            </el-table-column>
                            <el-table-column
                                    prop="goodsname"
                                    label="货品名称"
                                    width="140">
                            </el-table-column>
                            <el-table-column
                                    prop="status"
                                    label="状态"
                                    width="100" :formatter="formatStatus">
                            </el-table-column>
                            <el-table-column
                                    label="回执内容"
                                    width="250">
                                <template slot-scope="scope">
                                    <span v-if="scope.row.status=='01' || scope.row.status=='11'" style="color: #67C23A">
                                        {{scope.row.ext5}}
                                    </span>
                                    <span v-else-if="scope.row.status=='02' || scope.row.status=='03'" style="color: #E6A23C">
                                        {{scope.row.ext5}}
                                    </span>
                                    <span v-else-if="scope.row.status=='12' || scope.row.status=='13'" style="color: #F56C6C">
                                        {{scope.row.ext5}}
                                    </span>
                                    <span v-else style="color: #909399;">
                                        {{scope.row.ext5}}
                                    </span>
                                </template>
                            </el-table-column>
                            <el-table-column
                                    prop="operation"
                                    label="操作"
                                    width="850"
                                    show-overflow-tooltip>
                                <template slot-scope="scope">
                                    <el-button
                                            size="mini"
                                            type="primary"
                                            @click="handleDetail(scope.$index, scope.row)">收发明细
                                    </el-button>
                                    <el-button
                                            v-if="scope.row.awbh==''||scope.row.awbh==null"
                                            size="mini"
                                            type="primary"
                                            @click="handleEdit(scope.$index, scope.row)">编辑主单
                                    </el-button>
                                    <el-button
                                            v-else
                                            size="mini"
                                            type="primary"
                                            @click="handleFen(scope.$index, scope.row)">编辑分单
                                    </el-button>
                                    <el-button
                                            size="mini"
                                            type="primary"
                                            @click="handleSend(scope.$index, scope.row)"
                                            :disabled="btSendStatusFormater(scope.row.status)">发送舱单报
                                    </el-button>
                                    <el-button
                                            size="mini"
                                            type="primary"
                                            @click="handleUpdate(scope.$index, scope.row)"
                                            :disabled="btEditStatusFormater(scope.row.status)">发送舱单修改报
                                    </el-button>
                                    <el-button
                                            size="mini"
                                            type="primary"
                                            @click="handleDelete(scope.$index, scope.row)"
                                            :disabled="btDeleStatusFormater(scope.row.status)">发送舱单删除报
                                    </el-button>
                                    <el-button
                                            v-if="scope.row.awbh==''||scope.row.awbh==null"
                                            size="mini"
                                            type="primary"
                                            @click="Importallocation(scope.$index, scope.row)">分拨申请
                                    </el-button>
                                    <el-button
                                            v-else
                                            disabled=""
                                            size="mini"
                                            type="primary"
                                            @click="Importallocation(scope.$index, scope.row)">分拨申请
                                    </el-button>
                                    <el-button
                                            v-if="scope.row.awbh==''||scope.row.awbh==null"
                                            size="mini"
                                            type="primary"
                                            @click="Allocatearrive(scope.$index, scope.row)">分拨运抵
                                    </el-button>
                                    <el-button
                                            v-else
                                            disabled=""
                                            size="mini"
                                            type="primary"
                                            @click="Allocatearrive(scope.$index, scope.row)">分拨运抵
                                    </el-button>
                                    <el-button
                                            size="mini"
                                            type="primary"
                                            @click="UpdateStatus(scope.$index, scope.row)">更改状态
                                    </el-button>
                                </template>
                            </el-table-column>
                        </el-table>
                    </template>
                </el-col>
            </el-row>
            <!--编辑主单-->
            <el-dialog :title="'原始舱单信息'+textMap[dialogStatus]" :visible.sync="outerVisible" width="90%">
                <el-form :model="ruleForm" :rules="rules" ref="ruleForm" :label-position="labelPosition"
                         label-width="78px" size="mini">
                    <!--航班信息部分-->
                    <el-row class="flightInfo">
                        <el-col :span="24">
                            <div class="grid-content content">航班信息</div>
                        </el-col>
                        <el-row class="flightInfo">
                            <el-col :span="4">
                                <el-form-item label="运单号" prop="awba">
                                    <div v-if="dialogStatus === 'update'">
                                        <el-input disabled="" v-model="ruleForm.awba"></el-input>
                                    </div>
                                    <div v-else>
                                        <el-input v-model="ruleForm.awba"></el-input>
                                    </div>
                                </el-form-item>
                            </el-col>
                            <el-col :span="4">
                                <el-form-item label="航班号" prop="flightno">
                                        <el-input disabled="" v-model="ruleForm.flightno"></el-input>
                                </el-form-item>
                            </el-col>
                            <el-col :span="5">
                                <el-form-item label="航班日期" required>
                                    <el-col :span="24">
                                        <el-form-item prop="flightdate">
                                                <el-date-picker disabled="" type="date" placeholder="选择日期" :clearable="false"
                                                                v-model="ruleForm.flightdate"
                                                                style="width: 100%;"></el-date-picker>
                                        </el-form-item>
                                    </el-col>
                                </el-form-item>
                            </el-col>
                            <el-col :span="4">
                                <el-form-item label="航段" prop="originstation">
                                        <el-input disabled="" v-model="ruleForm.originstation"></el-input>
                                </el-form-item>
                            </el-col>
                            <el-col :span="4">
                                <el-form-item label="是否分批" prop="splitcode">
                                    <el-select v-model="ruleForm.splitcode" placeholder="">
                                        <el-option v-for="item in splitcodes" :key="item.value" :label="item.label"
                                                   :value="item.value"></el-option>
                                    </el-select>
                                </el-form-item>
                            </el-col>
                            <el-col :span="3">
                                <el-button size="mini" type="primary" @click="dialogStatus==='create'?createData('ruleForm'):updateData('ruleForm')" style="float: right">保存</el-button>
                            </el-col>
                        </el-row>
                        <el-row class="flightInfo">
                            <el-col :span="4">
                                <div v-if="FenStatus === 'addAwbh'">
                                <el-form-item label="分单号" prop="awbh">
                                        <el-input v-model="ruleForm.awbh"></el-input>
                                </el-form-item>
                                    </div>
                                <div v-else>
                                    <el-form-item style="display: none" label="分单号" prop="awbh">
                                        <el-input v-model="ruleForm.awbh"></el-input>
                                    </el-form-item>
                                </div>
                            </el-col>
                        </el-row>
                    </el-row>
                    <!--运单信息部分-->
                    <el-row class="flightInfo">
                        <el-col :span="24">
                            <div class="grid-content content">运单信息</div>
                        </el-col>
                    </el-row>
                    <!--航程信息部分-->
                    <el-row class="flightInfo">
                        <el-col :span="24">
                            <el-divider content-position="left">航程信息</el-divider>
                        </el-col>
                    </el-row>
                    <el-row style="margin-bottom: 0px;">
                        <el-col :span="3">
                            <el-form-item label="起始站" prop="awbinfo.sairportid" >
                                <el-input v-model="ruleForm.awbinfo.sairportid" onkeyup="this.value=this.value.toUpperCase()"></el-input>
                            </el-form-item>
                        </el-col>
                        <el-col :span="3">
                            <el-form-item label="承运人1" prop="awbinfo.by1">
                                <el-input v-model="ruleForm.awbinfo.by1" onkeyup="this.value=this.value.toUpperCase()"></el-input>
                            </el-form-item>
                        </el-col>
                        <el-col :span="3">
                            <el-form-item label="到达站1" prop="awbinfo.dest1">
                                <el-input v-model="ruleForm.awbinfo.dest1"></el-input>
                            </el-form-item>
                        </el-col>
                        <el-col :span="3">
                            <el-form-item label="承运人2" prop="awbinfo.by2">
                                <el-input v-model="ruleForm.awbinfo.by2" onkeyup="this.value=this.value.toUpperCase()"></el-input>
                            </el-form-item>
                        </el-col>
                        <el-col :span="3">
                            <el-form-item label="到达站2" prop="awbinfo.dest2">
                                <el-input v-model="ruleForm.awbinfo.dest2" onkeyup="this.value=this.value.toUpperCase()"></el-input>
                            </el-form-item>
                        </el-col>
                        <el-col :span="3">
                            <el-form-item label="承运人3" prop="awbinfo.by3">
                                <el-input v-model="ruleForm.awbinfo.by3" onkeyup="this.value=this.value.toUpperCase()"></el-input>
                            </el-form-item>
                        </el-col>
                        <el-col :span="3">
                            <el-form-item label="到达站3" prop="awbinfo.dest3">
                                <el-input v-model="ruleForm.awbinfo.dest3" onkeyup="this.value=this.value.toUpperCase()"></el-input>
                            </el-form-item>
                        </el-col>
                        <el-col :span="3">
                            <el-form-item label="目的站" prop="awbinfo.eairportid">
                                <el-input v-model="ruleForm.awbinfo.eairportid" onkeyup="this.value=this.value.toUpperCase()"></el-input>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <!--货物信息部分-->
                    <el-row class="flightInfo">
                        <el-col :span="24">
                            <el-divider content-position="left">货物信息</el-divider>
                        </el-col>
                    </el-row>
                    <el-row style="margin-bottom: 0px;">
                        <el-row class="product">
                            <el-col :span="6">
                                <el-form-item label="总件数" prop="awbinfo.pcs">
                                    <el-input type="number" v-model="ruleForm.awbinfo.pcs" ></el-input>
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="总重量" prop="awbinfo.weight">
                                    <el-input type="number" v-model="ruleForm.awbinfo.weight"></el-input>
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="舱单件数" prop="piece">
                                    <el-input type="number" v-model="ruleForm.piece"></el-input>
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="舱单重量" prop="weight">
                                    <el-input type="number" v-model="ruleForm.weight"></el-input>
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row class="product">
                            <el-col :span="6">
                                <el-form-item label="特货代码" prop="specopeid">
                                    <el-input v-model="ruleForm.awbinfo.specopeid"></el-input>
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="付费方式" prop="paymodel">
                                    <el-select v-model="ruleForm.awbinfo.paymodel" placeholder="" style="display:inline">
                                        <el-option v-for="item in paymodel" :key="item.value" :label="item.label"
                                                   :value="item.value"></el-option>
                                    </el-select>
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="海关状态" prop="awbinfo.awbtype">
                                    <el-select v-model="ruleForm.awbinfo.awbtype" placeholder="" style="display:inline">
                                        <el-option v-for="(item,index) in customext5" :key="index" :label="item.label"
                                                   :value="item.value"></el-option>
                                    </el-select>
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="海关关区" prop="customcode">
                                    <el-select v-model="ruleForm.customcode"
                                               filterable
                                               allow-create
                                               default-first-option
                                               remote
                                               :remote-method="remoteMethod2"
                                               :loading="loading" placeholder="请选择" style="display:inline">
                                        <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-form-item>
                            </el-col>
                        </el-row>
                        <el-row class="product">
                            <el-col :span="12">
                                <el-form-item label="货物描述" prop="goodsname">
                                    <el-input v-model="ruleForm.goodsname"></el-input>
                                </el-form-item>
                            </el-col>
                        </el-row>
                    </el-row>
                    <!--发货人信息部分-->
                    <el-row class="flightInfo">
                        <el-col :span="24">
                            <el-divider content-position="left">发货人信息</el-divider>
                        </el-col>
                    </el-row>
                    <el-row style="margin-bottom: 0px;">
                        <el-col :span="6">
                            <el-form-item label="发货人称" prop="awbinfo.shprname">
                                <el-input v-model="ruleForm.awbinfo.shprname"></el-input>
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="国家代码" prop="awbinfo.shprcountyr">
                                <el-select v-model="ruleForm.awbinfo.shprcountyr"
                                           filterable
                                           allow-create
                                           default-first-option
                                           remote
                                           :remote-method="remoteMethod"
                                           :loading="loading" placeholder="请选择">
                                    <el-option
                                            v-for="item in shprcountyrs"
                                            :key="item.countryCode"
                                            :label="item.countryCode"
                                            :value="item.countryCode">
                                        <span style="float: left">{{ item.countryNameCn }}</span>
                                        <span style="float: right; color: #8492a6; font-size: 13px">{{ item.countryCode }}</span>
                                    </el-option>
                                </el-select>
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="地址" prop="awbinfo.shpraddress">
                                <el-input v-model="ruleForm.awbinfo.shpraddress"></el-input>
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="电话" prop="awbinfo.shprtel">
                                <el-input v-model="ruleForm.awbinfo.shprtel"></el-input>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <!--收货人信息部分-->
                    <el-row class="flightInfo">
                        <el-col :span="24">
                            <el-divider content-position="left">收货人信息</el-divider>
                        </el-col>
                    </el-row>
                    <el-row style="margin-bottom: 5px">
                        <el-col :span="6">
                            <el-form-item label="收货人称" prop="awbinfo.cnsnname">
                                <el-input v-model="ruleForm.awbinfo.cnsnname"></el-input>
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">

                            <el-form-item label="国家代码" prop="awbinfo.cnscountyr">
                                <el-select v-model="ruleForm.awbinfo.cnscountyr"
                                           filterable
                                           allow-create
                                           default-first-option
                                           remote
                                           :remote-method="remoteMethod"
                                           :loading="loading" placeholder="请选择">
                                    <el-option
                                            v-for="item in cnscountyrs"
                                            :key="item.countryCode"
                                            :label="item.countryCode"
                                            :value="item.countryCode">
                                        <span style="float: left">{{ item.countryNameCn }}</span>
                                        <span style="float: right; color: #8492a6; font-size: 13px">{{ item.countryCode }}</span>
                                    </el-option>
                                </el-select>
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="地址" prop="awbinfo.cnsnaddress">
                                <el-input v-model="ruleForm.awbinfo.cnsnaddress"></el-input>
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="电话" prop="awbinfo.cnsntel">
                                <el-input v-model="ruleForm.awbinfo.cnsntel"></el-input>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <!--分单信息部分-->
                    <el-row class="flightInfo">
                        <el-col :span="24">
                            <div class="grid-content content" v-if="dialogStatus === 'update'">
                                <span>航班信息</span>
                                <el-button type="primary" v-on:click="addFen('ruleForm')" size="mini">新增分单</el-button>
                            </div>
                            <div class="grid-content content" v-else>
                                <span>航班信息</span>
                                <el-button type="primary" disabled="" @click="innerVisible = true" size="mini">新增分单</el-button>
                            </div>
                        </el-col>
                    </el-row>
                    <!--分单列表-->
                    <el-row>
                        <el-col :span="24">
                            <template>
                                <el-table
                                        :data="tableData2"
                                        style="width: 100%">
                                    <el-table-column
                                            prop="awbh"
                                            label="分单号"
                                            width="150">
                                    </el-table-column>
                                    <el-table-column
                                            prop="pcs"
                                            label="件数"
                                            width="120">
                                    </el-table-column>
                                    <el-table-column
                                            prop="wei"
                                            label="重量"
                                            width="120">
                                    </el-table-column>
                                    <el-table-column
                                            prop="piece"
                                            label="舱单件数"
                                            width="120">
                                    </el-table-column>
                                    <el-table-column
                                            prop="weight"
                                            label="舱单重量"
                                            width="120">
                                    </el-table-column>
                                    <el-table-column
                                            prop="goodsname"
                                            label="货物名称"
                                            width="300">
                                    </el-table-column>
                                    <el-table-column
                                            fixed="right"
                                            label="操作"
                                            width="130">
                                        <template slot-scope="scope">
                                            <el-button @click="handleClick(scope.row)" type="text" size="small">编辑
                                            </el-button>
                                        </template>
                                    </el-table-column>
                                </el-table>
                            </template>
                        </el-col>
                    </el-row>
                </el-form>
            </el-dialog>
            <!--footer部分-->
            <el-row>
                <el-col :span="2.5" class="pub">
                    <div class="grid-content">
                        <el-button type="primary" size="mini" v-on:click="addOrig">新增原始舱单</el-button>
                    </div>
                </el-col>
                <el-col :span="2.5" class="pub">
                    <div class="grid-content">
                        <el-button type="primary" size="mini">批量发送删除报</el-button>
                    </div>
                </el-col>
                <el-col :span="2" class="pub">
                    <div class="grid-content">
                        <el-button type="primary" @click="back" size="mini">返回</el-button>
                    </div>
                </el-col>
                <el-col :span="2.5" class="pub">
                    <div class="grid-content"><span>主单数:{{sumNmmsCount}}</span></div>
                </el-col>
                <el-col :span="3.5" class="pub">
                    <div class="grid-content"><span>舱单总件数:{{sumNmmsPrice}}</span></div>
                </el-col>
                <el-col :span="4" class="pub">
                    <div class="grid-content"><span>舱单总重量:{{sumNmmsWeight}}</span></div>
                </el-col>
            </el-row>
            <!--对话提示框-->
            <el-row>
                <el-dialog
                        title="系统提示"
                        :visible.sync="centerDialogVisible"
                        width="30%"
                        center>
                    <span>{{msg}}</span>
                      <span slot="footer" class="dialog-footer">
                          <el-button @click="centerDialogVisible = false">取 消</el-button>
                        <el-button type="primary" @click="centerDialogVisible = false">确 定</el-button>
                      </span>
                </el-dialog>
            </el-row>
            <!--发送删除报修改报提示框-->
            <el-row>
                <el-dialog :title="'提交'+Reason[udStatus]+'信息'" :visible.sync="dialogFormVisible">
                    <el-form :model="Udform" :rules="udrules" ref="Udform" class="demo-ruleForm">
                        <el-form-item label="操作原因" prop="operreason">
                            <el-input type="textarea" v-model="Udform.operreason"></el-input>
                        </el-form-item>
                        <el-form-item label="操作人" prop="operperson">
                            <el-input v-model="Udform.operperson"></el-input>
                        </el-form-item>
                        <el-form-item label="联系电话" prop="opertel">
                            <el-input v-model="Udform.opertel"></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="udStatus==='delete'?deleteUdForm('Udform'):updateUdForm('Udform')">确 定</el-button>
                    </div>
                </el-dialog>
            </el-row>
            <!--明细列表弹出框-->
            <el-row>
                <el-dialog title="回执明细列表" :visible.sync="dialogTableVisible" width="70%">
                    <el-table :data="gridData">
                        <el-table-column property="busdate" label="时间" width="160"></el-table-column>
                        <el-table-column property="operusername" label="操作人" width="130"></el-table-column>
                        <el-table-column property="buspiece" label="发送件数" width="130"></el-table-column>
                        <el-table-column property="busweight" label="发送重量" width="130"></el-table-column>
                        <el-table-column property="cusrestext" label="回执内容"></el-table-column>
                    </el-table>
                </el-dialog>
            </el-row>
        </el-main>
    </el-container>
</template>
<!--自定义CSS样式-->
<style scoped>
    .grid-content {
        height: 36px;
        line-height: 36px;
    }
    .el-dialog__body{text-align: center}
    .content {
        border-left: 4px #409EFF solid;
        padding-left: 10px;
        background-color: #f9fafc;
        margin-bottom: 2px
    }

    .row-bg, .co {
        background-color: white;
    }

    span {
        font-weight: bold;
        margin-right: 35px;
    }

    .el-table td, .el-table th {
        text-align: center
    }

    .el-form-item {
        margin-bottom: 2px;
    }

    .flightInfo {
        margin-bottom: 0px
    }

    .el-dialog__body {
        padding: 10px 20px;
    }

    .el-col {
        margin-right: 0px
    }

    .product {
        margin-bottom: 5px;
    }

    .pub {
        margin-right: 10px;
    }
    .el-dropdown {
        vertical-align: top;
    }
    .el-dropdown + .el-dropdown {
        margin-left: 15px;
    }
    .el-icon-arrow-down {
        font-size: 12px;
    }
</style>

<script>
    import { getMt1201List,addMt1201,ediMt1201,getFenList,getCountryCode,selectCustomcode,sendCreateMt1201,sendEditeMt1201,sendRemoveMt1201 } from '../../api/mt1201'
    import{addResponse,selectResponseList} from "../../api/InResponse";
    import FileSaver from "file-saver";
    import XLSX from "xlsx";
    import htmlToPdf from "../../api/htmlToPdf";
    import loginUserInfo from '@/api/base.js'
    export default {
        data() {
            /*初始数据*/
            return {
                defaultQuery:{
                    flightno: undefined,
                    flightdate: undefined,
                    originstation: undefined,
                    destinationstation: undefined,
                    awba: undefined
                },
                LoginUserInfo: loginUserInfo,
                FenQuery:{
                    flightno: undefined,
                    flightdate: undefined,
                    originstation: undefined,
                    destinationstation: undefined,
                    awba: undefined
                },
                tableData: [],
                tableData2: [],
                multipleSelection: [],
                outerVisible: false,
                innerVisible: false,
                dialogStatus:'',
                textMap:{
                    update: '编辑',
                    create: '添加'
                },
                Reason:{
                    update: '修改',
                    delete: '删除'
                },
                ruleForm: {
                    awba: undefined,
                    awbh: undefined,
                    passage: undefined,
                    customcode: undefined,
                    flightno: undefined,
                    flightdate: undefined,
                    originstation: undefined,
                    destinationstation: undefined,
                    piece: undefined,
                    weight: undefined,
                    goodsname: undefined,
                    splitcode: 'T',
                    isDelete:0,
                    uldType: undefined,
                    uldNo: undefined,
                    status: '22',
                    awbinfo: {
                        specopeid: undefined,
                        shprname: undefined,
                        shprmobiletype: undefined,
                        shprtel: undefined,
                        shpraddress: undefined,
                        shprcountyr: undefined,
                        shpcomidpre: undefined,
                        shpcomidpno: undefined,
                        cnsnname: undefined,
                        cnsrmobiletype: undefined,
                        cnsntel: undefined,
                        cnsnaddress: undefined,
                        cnscountyr: undefined,
                        cnscomidpre: undefined,
                        cnscomidno: undefined,
                        cnsrctcname: undefined,
                        cnsrctctel: undefined,
                        cargonm: undefined,
                        sairportid: '',
                        dest1city: undefined,
                        by1: undefined,
                        dest1: undefined,
                        by2: undefined,
                        dest2: undefined,
                        by3: undefined,
                        dest3: undefined,
                        eairportid: undefined,
                        csgcustomerid: undefined,
                        paymodel: 'PP',
                        pcs: undefined,
                        weight: undefined,
                        awbtype:'001',
                    },
                    userinfo: {
                        username: '11111'
                    },
                    waybill:undefined,
                    customText:undefined
                },
                paymodel:[{value:'PP',label:'预付'},{value:'CC',label:'到付'}],
                customext5:  [
                    {value:'001',label:'普通货物'},
                    {value:'002',label:'国际转运货物'},
                    {value:'003',label:'国内转关'},
                    {value:'004',label:'空箱'},
                    {value:'005',label:'快件'}],
                customcodes:[],
                customcode:'',
                rules: {
                    waybill: [{required: true, message: '请输入运单号', trigger: 'blur'}],
                    flightno: [{required: true, message: '航班号必须输入', trigger: 'blur'}],
                    flightdate: [{required: true, message: '航班日期必须选择', trigger: 'blur'}],
                    originstation: [{required: true, message: '航段必须输入', trigger: 'blur'}],
                    splitcode: [{required: true, message: '必须选择', trigger: 'blur'}],
                    piece: [{required: true, message: '舱单件数必须输入且为数字', trigger: 'blur'}],
                    weight: [{required: true, message: '舱单重量必须输入且为数字', trigger: 'blur'}],
                    'awbinfo.sairportid': [{required: true, message: '起始站必须输入', trigger: 'blur'}],
                    'awbinfo.eairportid': [{required: true, message: '目的站必须输入', trigger: 'blur'}],
                    'awbinfo.by1': [{required: true, message: '第一承运人必须输入', trigger: 'blur'}],
                    'awbinfo.dest1': [{required: true, message: '第一到达站人必须输入', trigger: 'blur'}],
                    'awbinfo.pcs': [{required: true, message: '总件数必须输入且为数字', trigger: 'blur'}],
                    'awbinfo.weight': [{required: true, message: '总重量必须输入且为数字', trigger: 'blur'}],
                    'awbinfo.shprname': [{required: true, message: '发货人不能为空', trigger: 'blur'}],
                    'awbinfo.shprtel': [{required: true, message: '发货电话不能为空', trigger: 'blur'}],
                    'awbinfo.shpraddress': [{required: true, message: '发货地址不能为空', trigger: 'blur'}],
                    'awbinfo.shprcountyr': [{required: true, message: '国家代码不能为空', trigger: 'change'}],
                    'awbinfo.cnsnname': [{required: true, message: '收货人不能为空', trigger: 'blur'}],
                    'awbinfo.cnsntel': [{required: true, message: '收货电话不能为空', trigger: 'blur'}],
                    'awbinfo.cnsnaddress': [{required: true, message: '收获地址不能为空', trigger: 'blur'}],
                    'awbinfo.cnscountyr': [{required: true, message: '国家代码不能为空', trigger: 'change'}],
                    'awbinfo.paymodel':[{required: true, message: '付费方式必须选择', trigger: 'change'}],
                    'awbinfo.awbtype':[{required: true, message: '海关状态必须选择', trigger: 'change'}],
                    customcode:[{required: true, message: '海关关区必须选择', trigger: 'change'}],
                    goodsname:[{required: true, message: '货物描述必须填写', trigger: 'blur'}]
                },
                labelPosition: 'left',
                splitcodes: [{value:'T',label:'否'},{value:'P',label:'是'}],
                shprcountyrs:[],
                cnscountyrs:[],
                countryCode:'',
                msg:'',
                code:'',
                centerDialogVisible:false,
                FenStatus:'',
                sumNmmsCount:0,
                sumNmmsPrice:0,
                sumNmmsWeight:0,
                dialogFormVisible: false,
                formLabelWidth: '100px',
                Udform:{
                    operreason:'',
                    operperson:'',
                    opertel:'',
                    flightdate:'',
                    flightno:'',
                    carrier:'',
                    awbano:'',
                    awbhno:'',
                    bustype:'',
                    busdate:'',
                    busweight:'',
                    buspiece:'',
                    opertype:'',
                    cusrestext:''
                },
                udrules:{
                    operreason: [{required: true, message: '请输入操作原因', trigger: 'blur'}],
                    operperson: [{required: true, message: '请输入操作人', trigger: 'blur'}],
                    opertel: [{required: true, message: '请输入操作人联系电话', trigger: 'blur'}],
                },
                udStatus:'',
                loading:false,
                temprows:{},
                dialogTableVisible:false,
                gridData:[],
                tableloading:true,
                htmlTitle:''
            }
        },
        methods: {
            //导出PDF,EXCEL文件
            handleCommand(command) {
                if(command=='EXCEL'){
                    this.$message('正在为您下载' + command+'文件');
                    this.downLoad();
                }else{
                    this.htmlTitle=this.defaultQuery.flightno+this.defaultQuery.flightdate;
                    htmlToPdf.downloadPDF(document.querySelector('#pdfDom'), this.htmlTitle)
                    this.$message('正在为您下载' + command+'文件');
                    //this.getPdf();
                }
            },
            downLoad(){
                var wb = XLSX.utils.table_to_book(document.querySelector(".table"));
                var wbout = XLSX.write(wb, {
                    bookType: "xlsx",
                    bookSST: true,
                    type: "array"
                });
                try {
                    FileSaver.saveAs(
                        new Blob([wbout], { type: "application/octet-stream" }),
                        this.defaultQuery.flightno+this.defaultQuery.flightdate+ ".xlsx" //  name+'.xlsx'表示导出的excel表格名字
                    );
                } catch (e) {
                    if (typeof console !== "undefined") console.log(e, wbout);
                }
                return wbout;
            },
            //回执收发明细
            handleDetail(index,row){
                if(row.flightno.length>4){
                    row.flightno=row.flightno.substring(2);
                }
                let params={awbano:row.awba,awbhno:row.awbh,carrier:row.carrier,flightno:row.flightno,flightdate:row.flightdate,bustype:'MT1201'}
                selectResponseList(params).then(res=>{
                    this.dialogTableVisible=true;
                    let response=res.data.data;
                        this.gridData=response;
                        console.log(response)
                });
            },
            //更改状态
            UpdateStatus(column,row){
                this.$confirm("是否发送更改状态", "确认消息", {
                    distinguishCancelAndClose: true,
                    confirmButtonText: '确认更改',
                    cancelButtonText: '取消更改'
                }).then(() => {
                    row.status = '22';
                }).catch(action => {
                    this.$message({
                        type: 'info',
                        message: action === 'cancel'
                            ? '取消状态更改'
                            : '状态更改取消'
                    })
                })
            },
            //状态识别
            formatStatus: function(row,column){
               return row.status=='01'?'接受申报':row.status=='02'?'待人工审核':row.status=='03'?'退单'
                   :row.status=='11'?'放行':row.status=='12'?'拒装':row.status=='13'?'禁卸'
                   :row.status=='21'?'可自动发送':row.status=='22'?'未发送':row.status=='23'?'已发送新增报'
                   :row.status=='24'?'已发送删除报':row.status=='25'?'已发送修改报':'';
            },
            //发送舱单报按钮,删除,修改判定事件
            btSendStatusFormater:(status) => {
                if(status=='23' || status=='24'||status=='25'){
                     return true;
                }else if(status=='22' ) {
                    return false;
                }
            },
            btEditStatusFormater:(status) => {
                if(status=='23' || status=='24'||status=='25'){
                    return true;
                }else if(status=='22' ) {
                    return false;
                }
            },
            btDeleStatusFormater:(status) => {
                if(status=='23' || status=='24'||status=='25'){
                    return true;
                }else if(status=='22' ) {
                    return false;
                }
            },
            /*多选框功能*/
            handleSelectionChange(val) {
                this.multipleSelection = val;
                console.log(val)
            },
            /*编辑主单信息*/
            handleEdit(index, row){
                this.outerVisible = true;
                this.dialogStatus='update';
                this.FenStatus='ediAwbh';
                this.ruleForm=row;
                this.ruleForm.originstation=this.defaultQuery.originstation+"-"+this.defaultQuery.destinationstation;
                this.ruleForm.flightno=this.defaultQuery.flightno;
                this.FenQuery.awba=row.awba;
                this.FenQuery.flightno= row.flightno;
                this.FenQuery.flightdate=row.flightdate
                this.FenQuery.originstation=this.defaultQuery.originstation;
                this.FenQuery.destinationstation=row.destinationstation;
                this.getFenList(this.FenQuery);
            },
            /*编辑分单信息*/
            handleFen(index,row){
                this.outerVisible = true;
                this.dialogStatus='update';
                this.FenStatus='addAwbh';
                this.ruleForm=row;
                this.ruleForm.flightno=row.carrier+row.flightno;
                this.ruleForm.originstation=row.originstation+"-"+row.destinationstation;

            },
            //发送舱单报
            handleSend(index,row){
                if(row.flightno.length>4){
                    row.flightno=row.flightno.substring(2)
                }else{
                    row.flightno=row.flightno;
                }
                const map = {'mt1201':row,'username':loginUserInfo.username}
                sendCreateMt1201(map).then(res=>{
                    let response=res.data;
                    //console.log(res);
                    this.code=response.code;
                    if(this.code=='200'){
                        row.status='23'
                        row.customText='舱单报发送成功';
                        this.outerVisible = false;
                        this.centerDialogVisible=true;
                        this.msg=response.msg;
                    }else{
                        this.outerVisible = false;
                        this.centerDialogVisible=true;
                        this.msg=response.msg;
                    }
                });
            },
            //发送舱单删除报
            handleDelete(index,row){
                this.udStatus='delete';
                this.dialogFormVisible=true;
                this.Udform.awbano=row.awba;
                this.Udform.awbhno=row.awbh;
                this.Udform.carrier=row.carrier;
                this.Udform.flightno=row.flightno.substring(2);
                this.Udform.flightdate=row.flightdate;
                this.Udform.bustype='MT1201';
                this.Udform.busdate=Date.parse(new Date());
                this.Udform.busweight=row.weight;
                this.Udform.buspiece=row.piece;
                this.Udform.opertype='发送舱单删除报';
                if(row.flightno.length>4){
                    row.flightno=row.flightno.substring(2);
                }
                this.temprows= row;
            },
            //提交发送舱单删除报表单
            deleteUdForm(formName){
                this.$refs[formName].validate((valid) => {
                    if (valid) {
                        const map = {'flightNo':this.temprows.flightno,
                            'flightDate':this.temprows.flightdate,
                            'awba':this.temprows.awba,
                            'content':'',
                            'customCode':this.temprows.customcode,
                            'awbh':this.temprows.awbh,
                            'reason' :this.Udform.operreason,
                            'contactName':this.Udform.operperson,
                            'contactTel':this.Udform.opertel,
                            'carrier':this.Udform.carrier,
                            'username':loginUserInfo.username}
                        sendRemoveMt1201(map).then(res=>{
                            let response=res.data;
                            //console.log(res);
                            this.code=response.code;
                            if(this.code=='200'){
                                this.temprows.status='24';
                                this.temprows.customText='舱单删除报发送成功';
                                this.dialogFormVisible=false;
                                this.outerVisible = false;
                                this.centerDialogVisible=true;
                                this.msg=response.msg;
                            }else{
                                this.dialogFormVisible=false;
                                this.outerVisible = false;
                                this.centerDialogVisible=true;
                                this.msg=response.msg;
                            }
                        });
                    } else {
                        console.log('error submit!!');
                        return false;
                    }
                });

            },
            /*发送舱单修改报*/
            handleUpdate(index,row){
                this.udStatus='update';
                this.dialogFormVisible=true;
                this.Udform.awbano=row.awba;
                this.Udform.awbhno=row.awbh;
                this.Udform.carrier=row.carrier;
                this.Udform.flightno=row.flightno.substring(2);
                this.Udform.flightdate=row.flightdate;
                this.Udform.bustype='MT1201';
                this.Udform.busdate=Date.parse(new Date());
                this.Udform.busweight=row.weight;
                this.Udform.buspiece=row.piece;
                this.Udform.opertype='发送舱单修改报';
                if(row.flightno.length>4){
                    row.flightno=row.flightno.substring(2);
                }else{
                    row.flightno=row.flightno;
                };
                this.temprows=row;
            },
            //提交发送舱单修改报表单
            updateUdForm(formName){
                this.$refs[formName].validate((valid) => {
                    if (valid) {
                        const map = {'mt1201':this.temprows,
                            'reason' :this.Udform.operreason,
                            'contactName':this.Udform.operperson,
                            'contactTel':this.Udform.opertel,
                            'username':loginUserInfo.username}
                        sendEditeMt1201(map).then(res=>{
                            let response=res.data;
                            //console.log(res);
                            this.code=response.code;
                            if(this.code=='200'){
                                this.temprows.status='25'
                                this.temprows.customText='舱单修改报发送成功';
                                this.dialogFormVisible=false;
                                this.outerVisible = false;
                                this.centerDialogVisible=true;
                                this.msg=response.msg;
                            }else{
                                this.dialogFormVisible=false;
                                this.outerVisible = false;
                                this.centerDialogVisible=true;
                                this.msg=response.msg;
                            }
                        });
                    } else {
                        console.log('error submit!!');
                        return false;
                    }
                });

            },
            /*编辑分单列表信息*/
            handleClick(row) {
                this.outerVisible = true;
                this.dialogStatus='update';
                this.FenStatus='addAwbh';
                this.ruleForm=row;
                this.ruleForm.flightno=row.carrier+row.flightno;
                this.ruleForm.originstation=row.originstation+"-"+row.destinationstation;
            },
            /*获取默认值*/
            getDefaultData(){
                this.defaultQuery.flightno = JSON.parse(this.$route.query.flightno);
                this.defaultQuery.flightdate = JSON.parse(this.$route.query.flightdate);
                this.defaultQuery.originstation = JSON.parse(this.$route.query.originstation);
                this.defaultQuery.destinationstation = JSON.parse(this.$route.query.destinationstation);
                this.defaultQuery.awba=JSON.parse(this.$route.query.awba);

            },
            /*获取默认数据列表*/
            getList(){
                getMt1201List(this.defaultQuery).then(res =>{
                    this.sumNmmsCount=0;
                    this.sumNmmsPrice=0;
                    this.sumNmmsWeight=0;
                    let response=res.data.data;
                    this.tableData=response;
                    this.tableloading=false;
                    response.forEach((item,i) => {
                        if(item.awba!=null&&item.awbh=="");
                        this.sumNmmsCount=Number(this.sumNmmsCount)+1;
                        this.sumNmmsPrice=Number(this.sumNmmsPrice)+Number(item.piece);
                        this.sumNmmsWeight=Number(Number(this.sumNmmsWeight)+Number(item.weight)).toFixed(2);
                    })
                });
            },
            /*获取国家代码*/
            remoteMethod:function(query){
                this.shprcountyrs=[];
                this.cnscountyrs=[];
                let params={countryCode:query};
                this.loading = true;
                getCountryCode(params).then(res =>{
                    if (res !== '') {
                        setTimeout(() => {
                            this.loading = false;
                            this.shprcountyrs=res.data.data;
                            this.cnscountyrs=res.data.data;
                        }, 200);
                    } else {
                        this.shprcountyrs = [];
                        this.cnscountyrs=[];
                    }

                });
            },
            //获取关区代码
            remoteMethod2:function(query){
                this.customcodes=[];
                let params={customcode:query};
                this.loading = true;
                selectCustomcode(params).then(res =>{
                    if (res !== '') {
                        setTimeout(() => {
                            this.loading = false;
                            this.customcodes=res.data.data;
                        }, 200);
                    } else {
                        this.customcodes = [];
                    }

                });
            },
            //新增原始舱单按钮
            addOrig(){
                this.dialogStatus="create";
                this.outerVisible = true;
                this.FenStatus='ediAwbh';
                this.ruleForm.flightno=JSON.parse(this.$route.query.flightno);
                this.ruleForm.flightdate=JSON.parse(this.$route.query.flightdate);
                this.ruleForm.originstation=JSON.parse(this.$route.query.originstation)+"-"+JSON.parse(this.$route.query.destinationstation);
            },
            //新增原始分单
            addFen(formName){
                this.dialogStatus="create";
                this.outerVisible = true;
                this.FenStatus='addAwbh';
            },
            //新增原始舱单数据
            createData:function(formName){
                let _this = this;
                this.$refs[formName].validate((valid) => {
                    if (valid) {
                        _this.ruleForm.userinfo = {
                            username: ''
                        }
                        _this.ruleForm.userinfo.username=_this.LoginUserInfo.username;
                        _this.ruleForm.status='22';
                        addMt1201(_this.ruleForm).then(res=>{
                            let response=res.data;
                            _this.code=response.code;
                            if(_this.code=='200'){
                                _this.outerVisible = false;
                                _this.$refs[formName].resetFields();
                                _this.centerDialogVisible=true;
                                _this.msg=response.msg;
                                _this.getList();
                            }else{
                                _this.outerVisible = false;
                                _this.centerDialogVisible=true;
                                _this.$refs[formName].resetFields();
                                _this.msg=response.msg;
                            }
                    });
                    } else {
                        console.log('error submit!!');
                return false;
            }
            });

            },
            //修改原始舱单数据
            updateData: function(formName){
                let _this = this;
                this.$refs[formName].validate((valid) => {
                    if (valid) {
                        _this.ruleForm.userinfo = {
                            username: ''
                        }
                        _this.ruleForm.userinfo.username=_this.LoginUserInfo.username;
                        ediMt1201(_this.ruleForm).then(res=>{
                            let response=res.data;
                        //console.log(res);
                        _this.code=response.code;
                        if(_this.code=='200'){
                            _this.outerVisible = false;
                            _this.centerDialogVisible=true;
                            _this.msg=response.msg;
                            _this.getList();
                        }else{
                            _this.outerVisible = false;
                            _this.centerDialogVisible=true;
                            _this.msg=response.msg;
                        }
                    });
                    } else {
                        console.log('error submit!!');
                return false;
            }
            });
            },
            //获取分单列表
            getFenList(data){
                getFenList(data).then(res =>{
                    //console.log(res);
                    let response=res.data.data;
                this.tableData2=response;
            });
            },
            //分拨申请
            Importallocation(index,row){
                this.$router.push({name:'进港分拨',params:{carrier:row.carrier,flightno:row.flightno,awba:row.awba,flightdate:row.flightdate,
                    turnpiece:row.awbinfo.pcs,turnweight:row.awbinfo.weight,customcode:row.customcode}});

            },
            //分拨运抵
            Allocatearrive(index,row){
                this.$router.push({name:'分拨运抵',params:{carrier:row.carrier,flightno:row.flightno,awba:row.awba,flightdate:row.flightdate,
                    turnpiece:row.awbinfo.pcs,turnweight:row.awbinfo.weight,customcode:row.customcode,goodsname:row.goodsname}});
            },
            //返回上一层
            back(){
                this.$router.go(-1);
            },

        },
        /*渲染方法*/
        mounted(){
            this.getDefaultData();
            this.getList();
        }
    }
</script>