<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>