作者 xudada

进港操作优化

@@ -7,3 +7,7 @@ export const getCountry = params => { return http.get(`${baseUrl}/getCountryCode @@ -7,3 +7,7 @@ export const getCountry = params => { return http.get(`${baseUrl}/getCountryCode
7 export const getByCountryCodeForName = params => { return http.post(`${baseUrl}/getByCountryCodeForName`,params)}; 7 export const getByCountryCodeForName = params => { return http.post(`${baseUrl}/getByCountryCodeForName`,params)};
8 8
9 export const getByCountryCode = params => { return http.post(`${baseUrl}/getByCountryCode`,params)}; 9 export const getByCountryCode = params => { return http.post(`${baseUrl}/getByCountryCode`,params)};
  10 +
  11 +export const getAirportCode = params =>{return http.get(`/nmms-server-import/nmms/mt1201/selectList`,params)}
  12 +
  13 +export const getCustomCode = params =>{return http.get(`/nmms-server-import/nmms/mt1201/selectCustomcode`,params)}
@@ -12,3 +12,7 @@ export const updateStatus = params => { return http.put(`${baseUrl}/updateStatus @@ -12,3 +12,7 @@ export const updateStatus = params => { return http.put(`${baseUrl}/updateStatus
12 export const updateMT3201 = params => { return http.put(`${baseUrl}/updateMt3201`,params)}; 12 export const updateMT3201 = params => { return http.put(`${baseUrl}/updateMt3201`,params)};
13 13
14 export const addMt3201 = params => { return http.post(`${baseUrl}/addMt3201`,params)}; 14 export const addMt3201 = params => { return http.post(`${baseUrl}/addMt3201`,params)};
  15 +
  16 +export const sendCreateMt3201 = params => { return http.post(`${baseUrl}/sendCreateMt3201`,params)};
  17 +
  18 +export const sendRemoveMt3201 = params => { return http.post(`${baseUrl}/sendRemoveMt3201`,params)};
@@ -12,3 +12,8 @@ export const updateStatus = params => { return http.put(`${baseUrl}/updateStatus @@ -12,3 +12,8 @@ export const updateStatus = params => { return http.put(`${baseUrl}/updateStatus
12 export const updateMT4201 = params => { return http.put(`${baseUrl}/updateMt4201`,params)}; 12 export const updateMT4201 = params => { return http.put(`${baseUrl}/updateMt4201`,params)};
13 13
14 export const addMt4201 = params => { return http.post(`${baseUrl}/addMt4201`,params)}; 14 export const addMt4201 = params => { return http.post(`${baseUrl}/addMt4201`,params)};
  15 +
  16 +
  17 +export const sendCreateMt4201 = params => { return http.post(`${baseUrl}/sendCreateMt4201`,params)};
  18 +
  19 +export const sendDeleteMt4201 = params => { return http.post(`${baseUrl}/sendDeleteMt4201`,params)};
@@ -17,3 +17,9 @@ export const getLostLoadChange = params => { return http.get(`${baseUrl}/getLost @@ -17,3 +17,9 @@ export const getLostLoadChange = params => { return http.get(`${baseUrl}/getLost
17 export const saveLostChange = params => { return http.get(`${baseUrl}/saveLostChange`, params)}; 17 export const saveLostChange = params => { return http.get(`${baseUrl}/saveLostChange`, params)};
18 18
19 export const saveLostLoad = params => { return http.put(`${baseUrl}/saveLostLoad`,params)}; 19 export const saveLostLoad = params => { return http.put(`${baseUrl}/saveLostLoad`,params)};
  20 +
  21 +export const sendDeleteMt2201 = params =>{return http.post(`${baseUrl}/sendDeleteMt2201`,params)}
  22 +
  23 +export const sendUpdateMt2201 = params =>{return http.post(`${baseUrl}/sendUpdateMt2201`,params)}
  24 +
  25 +export const sendCreateMt2201 = params =>{return http.post(`${baseUrl}/sendCreateMt2201`,params)}
@@ -12,3 +12,7 @@ export const updateStatus = params => { return http.put(`${baseUrl}/updateStatus @@ -12,3 +12,7 @@ export const updateStatus = params => { return http.put(`${baseUrl}/updateStatus
12 export const updateMt520X = params => { return http.put(`${baseUrl}/updateMt520x`,params)}; 12 export const updateMt520X = params => { return http.put(`${baseUrl}/updateMt520x`,params)};
13 13
14 export const addMt520X = params => { return http.post(`${baseUrl}/addMt520x`,params)}; 14 export const addMt520X = params => { return http.post(`${baseUrl}/addMt520x`,params)};
  15 +
  16 +export const sendCreateMt5202 = params => { return http.post(`${baseUrl}/sendCreateMt5202`,params)};
  17 +
  18 +export const sendRemoveMt5202 = params => { return http.post(`${baseUrl}/sendRemoveMt5202`,params)};
@@ -51,15 +51,15 @@ @@ -51,15 +51,15 @@
51 </el-col> 51 </el-col>
52 </el-row> 52 </el-row>
53 </div> 53 </div>
54 - <el-table v-loading="listLoading" :data="arriveData" stripe fit highlight-current-row 54 + <tree-table v-loading="listLoading" :data="arriveData" stripe fit highlight-current-row
55 style="font-size: 12px" border @selection-change="handleSelectionChange"> 55 style="font-size: 12px" border @selection-change="handleSelectionChange">
56 <el-table-column type="selection" width="55" align="center"></el-table-column> 56 <el-table-column type="selection" width="55" align="center"></el-table-column>
57 - <el-table-column label="航班号" width="70" align="center"> 57 + <el-table-column label="航班号" width="60" align="center">
58 <template slot-scope="scope"> 58 <template slot-scope="scope">
59 <span>{{scope.row.carrier}}{{scope.row.flightno}}</span> 59 <span>{{scope.row.carrier}}{{scope.row.flightno}}</span>
60 </template> 60 </template>
61 </el-table-column> 61 </el-table-column>
62 - <el-table-column label="运单号" width="120" align="center"> 62 + <el-table-column label="运单号" width="110" align="center">
63 <template slot-scope="scope"> 63 <template slot-scope="scope">
64 <span>{{scope.row.awba}}</span> 64 <span>{{scope.row.awba}}</span>
65 </template> 65 </template>
@@ -79,7 +79,7 @@ @@ -79,7 +79,7 @@
79 <span>{{scope.row.weight}}</span> 79 <span>{{scope.row.weight}}</span>
80 </template> 80 </template>
81 </el-table-column> 81 </el-table-column>
82 - <el-table-column label="货物描述" width="100" align="center"> 82 + <el-table-column label="货物描述" width="120" align="center">
83 <template slot-scope="scope"> 83 <template slot-scope="scope">
84 <span>{{scope.row.goodsname}}</span> 84 <span>{{scope.row.goodsname}}</span>
85 </template> 85 </template>
@@ -91,48 +91,58 @@ @@ -91,48 +91,58 @@
91 </el-table-column> 91 </el-table-column>
92 <el-table-column label="状态" width="100" align="center"> 92 <el-table-column label="状态" width="100" align="center">
93 <template slot-scope="scope"> 93 <template slot-scope="scope">
94 - <span v-if="scope.row.status ==='01'">未发送</span>  
95 - <span v-if="scope.row.status ==='02'">已发舱单报</span> 94 + <span v-if="scope.row.status ==='01'">接受申报</span>
  95 + <span v-if="scope.row.status ==='02'">待人工审核</span>
  96 + <span v-if="scope.row.status ==='03'">退单</span>
96 <span v-if="scope.row.status ==='05'">舱单报退单</span> 97 <span v-if="scope.row.status ==='05'">舱单报退单</span>
97 <span v-if="scope.row.status ==='06'">舱单转人工</span> 98 <span v-if="scope.row.status ==='06'">舱单转人工</span>
98 <span v-if="scope.row.status ==='07'">舱单报申报成功</span> 99 <span v-if="scope.row.status ==='07'">舱单报申报成功</span>
99 <span v-if="scope.row.status ==='08'">已发舱单删除报</span> 100 <span v-if="scope.row.status ==='08'">已发舱单删除报</span>
100 <span v-if="scope.row.status ==='09'">舱单删除报退单</span> 101 <span v-if="scope.row.status ==='09'">舱单删除报退单</span>
101 <span v-if="scope.row.status ==='10'">舱单删除报转人工</span> 102 <span v-if="scope.row.status ==='10'">舱单删除报转人工</span>
102 - <span v-if="scope.row.status ==='11'">舱单删除成功</span>  
103 - <span v-if="scope.row.status ==='12'">已发舱单修改报</span>  
104 - <span v-if="scope.row.status ==='13'">舱单修改报退单</span> 103 + <span v-if="scope.row.status ==='11'">放行</span>
  104 + <span v-if="scope.row.status ==='12'">拒装</span>
  105 + <span v-if="scope.row.status ==='13'">禁卸</span>
105 <span v-if="scope.row.status ==='14'">舱单修改报转人工</span> 106 <span v-if="scope.row.status ==='14'">舱单修改报转人工</span>
106 <span v-if="scope.row.status ==='15'">舱单修改报成功</span> 107 <span v-if="scope.row.status ==='15'">舱单修改报成功</span>
107 <span v-if="scope.row.status ==='16'">海关已存在</span> 108 <span v-if="scope.row.status ==='16'">海关已存在</span>
  109 + <span v-if="scope.row.status ==='21'">可自动发送</span>
  110 + <span v-if="scope.row.status ==='22'">未发送</span>
  111 + <span v-if="scope.row.status ==='23'">已发送新增报</span>
  112 + <span v-if="scope.row.status ==='24'">已发送删除报</span>
  113 + <span v-if="scope.row.status ==='25'">已发送修改报</span>
108 </template> 114 </template>
109 </el-table-column> 115 </el-table-column>
110 - <el-table-column prop="receipt" label="回执信息" width="180" align="center"> 116 + <el-table-column prop="receipt" label="回执信息" align="center">
111 <template slot-scope="scope"> 117 <template slot-scope="scope">
112 <span>{{scope.row.ext5}}</span> 118 <span>{{scope.row.ext5}}</span>
113 </template> 119 </template>
114 </el-table-column> 120 </el-table-column>
115 - <el-table-column prop="operation" label="操作" align="center"> 121 + <el-table-column prop="operation" label="操作" align="center" width="400">
116 <template slot-scope="scope"> 122 <template slot-scope="scope">
117 - <el-button size="mini" @click="handleSend(scope.row)">收发明细</el-button>  
118 - <el-button size="mini" type="success" @click="handleEdit(scope.row)">编辑运单</el-button>  
119 - <el-button size="mini" type="primary" @click="handleAwbSend(scope.row)"  
120 - :disabled="scope.row.status !=='00'">发送舱单报 123 + <el-button size="mini" @click="handleSendDesc(scope.row)">收发明细</el-button>
  124 + <el-button size="mini" type="success" @click="handleEdit(scope.row)">编辑</el-button>
  125 + <el-button size="mini" type="primary" @click="handleSendAwb(scope.row)"
  126 + :disabled="scope.row.status ==='23'">发送舱单报
  127 + </el-button>
  128 + <p></p>
  129 + <el-button size="mini" type="danger" v-if="isAdmin" @click="handleAwbDelete(scope.row)">删除运单
121 </el-button> 130 </el-button>
122 - <el-button size="mini" type="danger" v-if="isAdmin" @click="handleAwbDelete(scope.row)">删除运单</el-button>  
123 -  
124 <el-button size="mini" type="warning" @click="handleAwbStatus(scope.row)" 131 <el-button size="mini" type="warning" @click="handleAwbStatus(scope.row)"
125 - :disabled="scope.row.status ==='00'">修改状态 132 + :disabled="scope.row.status ==='22'">更改状态
  133 + </el-button>
  134 + <el-button size="mini" type="danger" @click="handleSendDelete(scope.row)"
  135 + :disabled="scope.row.status ==='24'">发删除报
126 </el-button> 136 </el-button>
127 </template> 137 </template>
128 </el-table-column> 138 </el-table-column>
129 - </el-table> 139 + </tree-table>
130 <div class="btnFoot"> 140 <div class="btnFoot">
131 <el-row> 141 <el-row>
132 <el-button type="primary" size="mini" v-if="arriveQuery.flightno !==undefined || arriveData.length>0" 142 <el-button type="primary" size="mini" v-if="arriveQuery.flightno !==undefined || arriveData.length>0"
133 @click="handelAddArriveInfo">新增出港运抵 143 @click="handelAddArriveInfo">新增出港运抵
134 </el-button> 144 </el-button>
135 - <el-button type="primary" size="mini" v-if="arriveModel.flightno !== undefined || arriveData.length>0" 145 + <el-button type="primary" size="mini" v-if="arriveQuery.flightno !== undefined || arriveData.length>0"
136 @click="handelBackStep">返回 146 @click="handelBackStep">返回
137 </el-button> 147 </el-button>
138 </el-row> 148 </el-row>
@@ -185,14 +195,28 @@ @@ -185,14 +195,28 @@
185 <el-row> 195 <el-row>
186 <el-col :span="7.5"> 196 <el-col :span="7.5">
187 <el-form-item label="起始站" prop="originstation"> 197 <el-form-item label="起始站" prop="originstation">
188 - <el-input v-model="originstation"  
189 - :disabled="dialogFormVisible === 'update'"></el-input> 198 + <el-select filterable clearable placeholder="请选择起始站" :remote-method="remoteMethodAirport"
  199 + allow-create v-model="originstation" remote>
  200 + <el-option v-for="item in airportCode"
  201 + :key="item.airportid" :label="item.airportid"
  202 + :value="item.airportid" :disabled="dialogFormVisible === 'update'">
  203 + <span style="float: left">{{ item.airportdescchn }}</span>
  204 + <span style="float: right; color: #8492a6; font-size: 13px">{{ item.airportid }}</span>
  205 + </el-option>
  206 + </el-select>
190 </el-form-item> 207 </el-form-item>
191 </el-col> 208 </el-col>
192 <el-col :span="7.5"> 209 <el-col :span="7.5">
193 <el-form-item label="目的站" prop="destinationstation"> 210 <el-form-item label="目的站" prop="destinationstation">
194 - <el-input v-model="destinationstation"  
195 - :disabled="dialogFormVisible === 'update'"></el-input> 211 + <el-select filterable clearable placeholder="请选择起始站" :remote-method="remoteMethodAirport"
  212 + allow-create v-model="destinationstation" remote>
  213 + <el-option v-for="item in airportCode"
  214 + :key="item.airportid" :label="item.airportid"
  215 + :value="item.airportid" :disabled="dialogFormVisible === 'update'">
  216 + <span style="float: left">{{ item.airportdescchn }}</span>
  217 + <span style="float: right; color: #8492a6; font-size: 13px">{{ item.airportid }}</span>
  218 + </el-option>
  219 + </el-select>
196 </el-form-item> 220 </el-form-item>
197 </el-col> 221 </el-col>
198 </el-row> 222 </el-row>
@@ -226,9 +250,15 @@ @@ -226,9 +250,15 @@
226 </el-col> 250 </el-col>
227 <el-col :span="7.5"> 251 <el-col :span="7.5">
228 <el-form-item label="海关关区" prop="customcode"> 252 <el-form-item label="海关关区" prop="customcode">
229 - <el-select v-model="arriveModel.customcode">  
230 - <el-option v-for="item in customcodeList " :key="item" :label="item"  
231 - :value="item"></el-option> 253 + <el-select v-model="arriveModel.customcode" placeholder="请选择关区代码" :loading="customLoading"
  254 + filterable clearable remote :remote-method="remoteMethodCustomCode"
  255 + :disabled="dialogStatus === 'addAwbh'">
  256 + <el-option v-for="item in customCodeList" :key="item.customcode"
  257 + :label="item.customcode"
  258 + :value="item.customcode">
  259 + <span style="float: left">{{ item.customcode }}</span>
  260 + <span style="float: right; color: #8492a6; font-size: 13px">{{ item.customname }}</span>
  261 + </el-option>
232 </el-select> 262 </el-select>
233 </el-form-item> 263 </el-form-item>
234 </el-col> 264 </el-col>
@@ -237,12 +267,11 @@ @@ -237,12 +267,11 @@
237 <div slot="footer" class="dialog-footer"> 267 <div slot="footer" class="dialog-footer">
238 <el-button @click="dialogFormVisible = false">取消</el-button> 268 <el-button @click="dialogFormVisible = false">取消</el-button>
239 <el-button type="primary" @click="dialogStatus==='create'?createData():updateData()">保存</el-button> 269 <el-button type="primary" @click="dialogStatus==='create'?createData():updateData()">保存</el-button>
240 - <el-button type="success" @click="SaveAndSend">保存并发送</el-button>  
241 </div> 270 </div>
242 </el-dialog> 271 </el-dialog>
243 <el-dialog title="收发明细" :visible.sync="dialogTableVisible"> 272 <el-dialog title="收发明细" :visible.sync="dialogTableVisible">
244 <el-table :data="detailData" border> 273 <el-table :data="detailData" border>
245 - <el-table-column label="操作时间" width="150"> 274 + <el-table-column label="操作时间" width="180">
246 <template slot-scope="scope"> 275 <template slot-scope="scope">
247 {{scope.row.busdate}} 276 {{scope.row.busdate}}
248 </template> 277 </template>
@@ -279,16 +308,51 @@ @@ -279,16 +308,51 @@
279 </el-table-column> 308 </el-table-column>
280 </el-table> 309 </el-table>
281 </el-dialog> 310 </el-dialog>
  311 + <el-dialog title="删除原因" :visible.sync="dialogDeleteVisible" width="30%">
  312 + <el-form ref="arriveDeleteForm" :model="respModel" :rules="arriveDeleteRules"
  313 + label-width="120px" style="margin-right: 50px">
  314 + <el-form-item label="删除原因" prop="reason">
  315 + <el-input v-model="respModel.reason" placeholder="删除原因"></el-input>
  316 + </el-form-item>
  317 + <el-form-item label="删除操作人" prop="contactName">
  318 + <el-input v-model="respModel.contactName" placeholder="操作人姓名"></el-input>
  319 + </el-form-item>
  320 + <el-form-item label="操作人Tel" prop="contactTel">
  321 + <el-input v-model="respModel.contactTel" placeholder="删除操作人联系方式"></el-input>
  322 + </el-form-item>
  323 + <el-form-item label="备注">
  324 + <el-input v-model="respModel.content" type="textarea"></el-input>
  325 + </el-form-item>
  326 + </el-form>
  327 + <div slot="footer" class="dialog-footer">
  328 + <el-button @click="dialogDeleteVisible = false">取消</el-button>
  329 + <el-button type="primary" @click="sendArriveDelete()">发送</el-button>
  330 + </div>
  331 + </el-dialog>
282 </div> 332 </div>
283 </template> 333 </template>
284 <script> 334 <script>
285 import treeTable from '@/components/TreeTable' 335 import treeTable from '@/components/TreeTable'
286 import treeToArray from '@/utils/customEval' 336 import treeToArray from '@/utils/customEval'
287 import Pagination from '@/components/Pagination' 337 import Pagination from '@/components/Pagination'
288 -  
289 - import {getMt3201ListForParam, deleteByIsDelete, updateStatus, updateMT3201, addMt3201} from '@/api/exitArrive' 338 + import {getCustomCode, getAirportCode} from "@/api/country";
  339 + import {
  340 + getMt3201ListForParam,
  341 + deleteByIsDelete,
  342 + updateStatus,
  343 + updateMT3201,
  344 + addMt3201,
  345 + sendCreateMt3201,
  346 + sendRemoveMt3201
  347 + } from '@/api/exitArrive'
290 import {Message} from "element-ui"; 348 import {Message} from "element-ui";
291 - import {validAwb, validAlphabets, validAlphabetsAndNum,validAlphabetsAndSpanceKey,validatorNum} from "@/utils/validate"; 349 + import {
  350 + validAwb,
  351 + validAlphabets,
  352 + validAlphabetsAndNum,
  353 + validAlphabetsAndSpanceKey,
  354 + validatorNum
  355 + } from "@/utils/validate";
292 import {getResponseForParam} from '@/api/responseDetail' 356 import {getResponseForParam} from '@/api/responseDetail'
293 357
294 export default { 358 export default {
@@ -314,8 +378,8 @@ @@ -314,8 +378,8 @@
314 } 378 }
315 callback() 379 callback()
316 } 380 }
317 - const validAlphabetsSpanceKey = (rule,value,callback) =>{  
318 - if(!validAlphabetsAndSpanceKey(value)){ 381 + const validAlphabetsSpanceKey = (rule, value, callback) => {
  382 + if (!validAlphabetsAndSpanceKey(value)) {
319 callback("只能输入字母、数字、空格") 383 callback("只能输入字母、数字、空格")
320 } 384 }
321 callback() 385 callback()
@@ -339,7 +403,8 @@ @@ -339,7 +403,8 @@
339 flightdate: undefined, 403 flightdate: undefined,
340 originstation: undefined, 404 originstation: undefined,
341 destinationstation: undefined, 405 destinationstation: undefined,
342 - customcode: undefined 406 + customcode: undefined,
  407 + messageType: undefined,
343 }, 408 },
344 dialogMap: { 409 dialogMap: {
345 update: '编辑出港运抵', 410 update: '编辑出港运抵',
@@ -347,11 +412,14 @@ @@ -347,11 +412,14 @@
347 }, 412 },
348 dialogTableVisible: false, 413 dialogTableVisible: false,
349 multipleSelection: [], 414 multipleSelection: [],
350 - customcodeList: [4604, 4620], 415 + customCodeList: [],
  416 + airportCode: [],
351 dialogStatus: undefined, 417 dialogStatus: undefined,
352 awbhStatus: false, 418 awbhStatus: false,
353 dialogFormVisible: false, 419 dialogFormVisible: false,
  420 + dialogDeleteVisible: false,
354 listLoading: false, 421 listLoading: false,
  422 + customLoading: false,
355 arriveRoles: { 423 arriveRoles: {
356 awba: [{required: true, trigger: 'blur', validator: validatorAwb}], 424 awba: [{required: true, trigger: 'blur', validator: validatorAwb}],
357 awbh: [{required: true, trigger: 'blur', validator: validatorAwbh}], 425 awbh: [{required: true, trigger: 'blur', validator: validatorAwbh}],
@@ -379,7 +447,24 @@ @@ -379,7 +447,24 @@
379 customcode: undefined, 447 customcode: undefined,
380 arrivetime: undefined, 448 arrivetime: undefined,
381 messageType: 'MT3201' 449 messageType: 'MT3201'
382 - } 450 + },
  451 + respModel: {
  452 + uuid: undefined,
  453 + reason: undefined,
  454 + contactName: undefined,
  455 + contactTel: undefined,
  456 + content: '',
  457 + flightNo: undefined,
  458 + awba: undefined,
  459 + customCode: undefined,
  460 + flightDate: undefined,
  461 + awbh: ''
  462 + },
  463 + arriveDeleteRules: {
  464 + reason: [{required: true, message: '删除原因不能为空', trigger: 'blur'}],
  465 + contactName: [{required: true, message: '删除操作人不能为空', trigger: 'blur'}],
  466 + contactTel: [{required: true, message: '操作人联系方式不能为空', trigger: 'blur'}]
  467 + },
383 } 468 }
384 }, 469 },
385 created() { 470 created() {
@@ -388,7 +473,6 @@ @@ -388,7 +473,6 @@
388 if (this.$route.params.flightData.awba !== undefined && this.$route.params.flightData.awba !== '') { 473 if (this.$route.params.flightData.awba !== undefined && this.$route.params.flightData.awba !== '') {
389 this.arriveQuery.awba = this.$route.params.flightData.awba.substring(0, 3) + "-" + this.$route.params.flightData.awba.substring(3) 474 this.arriveQuery.awba = this.$route.params.flightData.awba.substring(0, 3) + "-" + this.$route.params.flightData.awba.substring(3)
390 } 475 }
391 -  
392 this.arriveQuery.carrier = this.$route.params.flightData.flightno.substring(0, 2) 476 this.arriveQuery.carrier = this.$route.params.flightData.flightno.substring(0, 2)
393 this.arriveQuery.flightno = this.$route.params.flightData.flightno.substring(2) 477 this.arriveQuery.flightno = this.$route.params.flightData.flightno.substring(2)
394 this.arriveQuery.flightdate = this.$route.params.flightData.flightdate 478 this.arriveQuery.flightdate = this.$route.params.flightData.flightdate
@@ -397,7 +481,7 @@ @@ -397,7 +481,7 @@
397 this.getList() 481 this.getList()
398 } 482 }
399 let username = JSON.parse(sessionStorage.getItem('user')).username 483 let username = JSON.parse(sessionStorage.getItem('user')).username
400 - if(username === 'admin'){ 484 + if (username === 'admin') {
401 this.isAdmin = true 485 this.isAdmin = true
402 } 486 }
403 }, 487 },
@@ -575,12 +659,78 @@ @@ -575,12 +659,78 @@
575 659
576 }) 660 })
577 }, 661 },
578 - //保存并发送  
579 - SaveAndSend() { 662 + // 发送舱单报
  663 + handleSendAwb(row) {
  664 + this.$confirm("是否发送", "确认消息", {
  665 + distinguishCancelAndClose: true,
  666 + confirmButtonText: '发送',
  667 + cancelButtonText: '取消'
  668 + }).then(() => {
  669 + if (row.awbh === null) {
  670 + row.awbh = ''
  671 + }
  672 + delete row.parent
  673 + delete row.children
  674 + sendCreateMt3201(row).then(res => {
  675 + if (res.data.count > 0) {
  676 + Message.success(res.data.respMessage)
  677 + this.getList()
  678 + } else {
  679 + Message.success(res.data.respMessage)
  680 + }
  681 + })
  682 + }).catch(error => {
  683 + Message.error(error.message)
  684 + })
  685 + },
580 686
  687 + // 发送删除报
  688 + handleSendDelete(row) {
  689 + this.respModel = {
  690 + carrier: undefined,
  691 + reason: undefined,
  692 + contactName: undefined,
  693 + contactTel: undefined,
  694 + content: '',
  695 + flightNo: undefined,
  696 + awba: undefined,
  697 + customCode: undefined,
  698 + flightDate: undefined,
  699 + awbh: undefined
  700 + }
  701 + this.dialogDeleteVisible = true
  702 + this.respModel.flightNo = row.flightno
  703 + this.respModel.awba = row.awba
  704 + this.respModel.carrier = row.carrier
  705 + if (row.awbh === null) {
  706 + this.respModel.awbh = ''
  707 + } else {
  708 + this.respModel.awbh = row.awbh
  709 + }
  710 + this.respModel.customCode = row.customcode
  711 + this.respModel.flightDate = row.flightdate
  712 + this.$nextTick(() => {
  713 + this.$refs.arriveDeleteForm.clearValidate()
  714 + })
  715 + },
  716 +
  717 + sendArriveDelete() {
  718 + this.$refs.arriveDeleteForm.validate(valid => {
  719 + if (valid) {
  720 + sendRemoveMt3201(this.respModel).then(res => {
  721 + if (res.data.count > 0) {
  722 + Message.success(res.data.respMessage)
  723 + this.dialogDeleteVisible = false
  724 + this.getList()
  725 + } else {
  726 + Message.error(res.data.respMessage)
  727 + }
  728 + })
  729 + }
  730 + })
581 }, 731 },
582 // 收发明细 732 // 收发明细
583 - handleSend(row) { 733 + handleSendDesc(row) {
584 const resQuery = { 734 const resQuery = {
585 carrier: row.carrier, 735 carrier: row.carrier,
586 flightNo: row.flightno, 736 flightNo: row.flightno,
@@ -594,15 +744,7 @@ @@ -594,15 +744,7 @@
594 this.detailData = res.data 744 this.detailData = res.data
595 }) 745 })
596 }, 746 },
597 - // 发送舱单报  
598 - handleAwbSend() {  
599 -  
600 - },  
601 - // 发送修改报  
602 - handleAwbEdit() {  
603 -  
604 - },  
605 - //发送删除报 747 + //删除运单
606 handleAwbDelete(row) { 748 handleAwbDelete(row) {
607 this.$confirm("是否删除", "确认消息", { 749 this.$confirm("是否删除", "确认消息", {
608 distinguishCancelAndClose: true, 750 distinguishCancelAndClose: true,
@@ -634,25 +776,29 @@ @@ -634,25 +776,29 @@
634 }, 776 },
635 //更改状态 777 //更改状态
636 handleAwbStatus(row) { 778 handleAwbStatus(row) {
  779 +
637 this.$confirm("是否发送更改状态", "确认消息", { 780 this.$confirm("是否发送更改状态", "确认消息", {
638 distinguishCancelAndClose: true, 781 distinguishCancelAndClose: true,
639 confirmButtonText: '确认更改', 782 confirmButtonText: '确认更改',
640 cancelButtonText: '取消更改' 783 cancelButtonText: '取消更改'
641 }).then(() => { 784 }).then(() => {
642 - updateStatus(row).then(res => {  
643 - if (res.data.count > 0) {  
644 - this.$message({  
645 - type: 'success',  
646 - message: '当前运单状态已更改'  
647 - })  
648 - this.getList()  
649 - } else {  
650 - this.$message({  
651 - type: 'error',  
652 - message: '状态更改失败,请稍后重试'  
653 - })  
654 - }  
655 - }) 785 + if (row.status!==22){
  786 + row.status =22;
  787 + }
  788 + // updateStatus(row).then(res => {
  789 + // if (res.data.count > 0) {
  790 + // this.$message({
  791 + // type: 'success',
  792 + // message: '当前运单状态已更改'
  793 + // })
  794 + // this.getList()
  795 + // } else {
  796 + // this.$message({
  797 + // type: 'error',
  798 + // message: '状态更改失败,请稍后重试'
  799 + // })
  800 + // }
  801 + // })
656 802
657 }).catch(action => { 803 }).catch(action => {
658 this.$message({ 804 this.$message({
@@ -663,6 +809,41 @@ @@ -663,6 +809,41 @@
663 }) 809 })
664 }) 810 })
665 }, 811 },
  812 + //获取机场三字码
  813 + remoteMethodAirport(query) {
  814 + this.airportCode = []
  815 + if (query !== '') {
  816 + this.listLoading = true
  817 + getAirportCode({airportid: query}).then(res => {
  818 + if (res !== null) {
  819 + setTimeout(() => {
  820 + this.listLoading = false
  821 + this.airportCode = res.data.data
  822 + }, 200)
  823 + }
  824 + })
  825 + } else {
  826 + this.airportCode = []
  827 + }
  828 + },
  829 + //关区代码
  830 + remoteMethodCustomCode(query) {
  831 + this.customCodeList = []
  832 + if (query !== '') {
  833 + this.customLoading = true
  834 + getCustomCode({customcode: query}).then(res => {
  835 + if (res !== null) {
  836 + setTimeout(() => {
  837 + this.customLoading = false
  838 + this.customCodeList = res.data.data
  839 + }, 200)
  840 + }
  841 + })
  842 + } else {
  843 + this.airportCode = []
  844 + }
  845 + },
  846 +
666 // 携数据跳转 新增运抵 847 // 携数据跳转 新增运抵
667 handleAddArrive() { 848 handleAddArrive() {
668 const row = { 849 const row = {
@@ -671,7 +852,8 @@ @@ -671,7 +852,8 @@
671 this.$router.push({name: "出港航班信息", params: {scopeRow: row}}) 852 this.$router.push({name: "出港航班信息", params: {scopeRow: row}})
672 }, 853 },
673 handelBackStep() { 854 handelBackStep() {
674 - this.$router.push({name: '出港航班信息', params: {scopeRow: this.arriveModel}}) 855 + this.arriveQuery.messageType = 'MT3201'
  856 + this.$router.push({name: '出港航班信息', params: {scopeRow: this.arriveQuery}})
675 } 857 }
676 858
677 } 859 }
@@ -26,14 +26,42 @@ @@ -26,14 +26,42 @@
26 </el-date-picker> 26 </el-date-picker>
27 </el-col> 27 </el-col>
28 <el-col :span="4"> 28 <el-col :span="4">
29 - <el-input placeholder="必填" v-model="originstation">  
30 - <template slot="prepend">始发站</template>  
31 - </el-input> 29 + <el-select
  30 + :remote-method="remoteMethodAirport"
  31 + :loading="listLoading"
  32 + v-model="flight.originstation"
  33 + allow-create
  34 + filterable
  35 + remote
  36 + placeholder="请选择起始站" clearable>
  37 + <el-option
  38 + v-for="item in airportCode"
  39 + :key="item.airportid"
  40 + :label="item.airportid"
  41 + :value="item.airportid">
  42 + <span style="float: left">{{ item.airportdescchn }}</span>
  43 + <span style="float: right; color: #8492a6; font-size: 13px">{{ item.airportid }}</span>
  44 + </el-option>
  45 + </el-select>
32 </el-col> 46 </el-col>
33 <el-col :span="4" style="margin-left: 20px"> 47 <el-col :span="4" style="margin-left: 20px">
34 - <el-input placeholder="必填" v-model="destinationstation">  
35 - <template slot="prepend">目的站</template>  
36 - </el-input> 48 + <el-select
  49 + :remote-method="remoteMethodAirport"
  50 + :loading="listLoading"
  51 + v-model="flight.destinationstation"
  52 + allow-create
  53 + filterable
  54 + remote
  55 + placeholder="请选择目的站" clearable>
  56 + <el-option
  57 + v-for="item in airportCode"
  58 + :key="item.airportid"
  59 + :label="item.airportdescchn"
  60 + :value="item.airportid">
  61 + <span style="float: left">{{ item.airportdescchn }}</span>
  62 + <span style="float: right; color: #8492a6; font-size: 13px">{{ item.airportid }}</span>
  63 + </el-option>
  64 + </el-select>
37 </el-col> 65 </el-col>
38 <el-col :span="4" style="margin-left: 20px"> 66 <el-col :span="4" style="margin-left: 20px">
39 <el-input placeholder="可为空" v-model="awba"> 67 <el-input placeholder="可为空" v-model="awba">
@@ -55,6 +83,7 @@ @@ -55,6 +83,7 @@
55 83
56 <script> 84 <script>
57 import {Message} from "element-ui"; 85 import {Message} from "element-ui";
  86 + import {getCountry, getAirportCode} from "@/api/country";
58 87
59 export default { 88 export default {
60 name: 'ExitFlightDesc', 89 name: 'ExitFlightDesc',
@@ -66,14 +95,18 @@ @@ -66,14 +95,18 @@
66 originstation: undefined, 95 originstation: undefined,
67 destinationstation: undefined, 96 destinationstation: undefined,
68 awba: undefined, 97 awba: undefined,
69 - messageType:undefined 98 + messageType: undefined
70 }, 99 },
71 - btnStatus: true 100 + btnStatus: true,
  101 + listLoading: false,
  102 + airportList: [],
  103 + airportResultCode: [],
  104 + airportCode: [],
72 }; 105 };
73 }, 106 },
74 created() { 107 created() {
75 if (this.$route.params.scopeRow !== undefined) { 108 if (this.$route.params.scopeRow !== undefined) {
76 - if(this.$route.params.scopeRow.carrier === undefined){ 109 + if (this.$route.params.scopeRow.carrier === undefined) {
77 this.flight.flightno = this.$route.params.scopeRow.flightno 110 this.flight.flightno = this.$route.params.scopeRow.flightno
78 } else { 111 } else {
79 this.flight.flightno = this.$route.params.scopeRow.carrier + this.$route.params.scopeRow.flightno 112 this.flight.flightno = this.$route.params.scopeRow.carrier + this.$route.params.scopeRow.flightno
@@ -82,61 +115,68 @@ @@ -82,61 +115,68 @@
82 this.flight.originstation = this.$route.params.scopeRow.originstation 115 this.flight.originstation = this.$route.params.scopeRow.originstation
83 this.flight.destinationstation = this.$route.params.scopeRow.destinationstation 116 this.flight.destinationstation = this.$route.params.scopeRow.destinationstation
84 this.flight.messageType = this.$route.params.scopeRow.messageType 117 this.flight.messageType = this.$route.params.scopeRow.messageType
85 - if(this.$route.params.scopeRow.awba !== undefined){  
86 - this.flight.awba = this.$route.params.scopeRow.awba.replace('-','') 118 + if (this.$route.params.scopeRow.awba !== undefined) {
  119 + this.flight.awba = this.$route.params.scopeRow.awba.replace('-', '')
87 } 120 }
88 -  
89 } 121 }
90 }, 122 },
91 - computed:{  
92 - flightno : { 123 + // mounted() {
  124 + // // 延迟加载,否则会出错
  125 + // setTimeout(() => {
  126 + // this.airportResultCode = this.airportCode.map(item =>{
  127 + // return {label: item.airportdescchn,value: item.airportid}
  128 + // })
  129 + // }, 6000)
  130 + // },
  131 + computed: {
  132 + flightno: {
93 get: function () { 133 get: function () {
94 return this.flight.flightno 134 return this.flight.flightno
95 }, 135 },
96 - set: function(val){ 136 + set: function (val) {
97 this.flight.flightno = val.toUpperCase().trim() 137 this.flight.flightno = val.toUpperCase().trim()
98 } 138 }
99 }, 139 },
100 - originstation :{ 140 + originstation: {
101 get: function () { 141 get: function () {
102 return this.flight.originstation 142 return this.flight.originstation
103 }, 143 },
104 - set: function(val){ 144 + set: function (val) {
105 this.flight.originstation = val.toUpperCase().trim() 145 this.flight.originstation = val.toUpperCase().trim()
106 } 146 }
107 }, 147 },
108 - destinationstation :{ 148 + destinationstation: {
109 get: function () { 149 get: function () {
110 return this.flight.destinationstation 150 return this.flight.destinationstation
111 }, 151 },
112 - set: function(val){ 152 + set: function (val) {
113 this.flight.destinationstation = val.toUpperCase().trim() 153 this.flight.destinationstation = val.toUpperCase().trim()
114 } 154 }
115 }, 155 },
116 - awba :{ 156 + awba: {
117 get: function () { 157 get: function () {
118 return this.flight.awba 158 return this.flight.awba
119 }, 159 },
120 - set: function(val){ 160 + set: function (val) {
121 this.flight.awba = val.trim() 161 this.flight.awba = val.trim()
122 } 162 }
123 } 163 }
124 }, 164 },
125 methods: { 165 methods: {
126 nstep() { 166 nstep() {
127 - if (this.flight.flightno !== undefined && this.flight.flightno !==''&&  
128 - this.flight.flightdate !== undefined &&this.flight.flightdate !== '' &&  
129 - this.flight.destinationstation !== undefined && this.flight.destinationstation !==''&&  
130 - this.flight.originstation !== undefined && this.flight.originstation !=='') {  
131 - if(this.flight.awba !== '' && this.flight.awba !== undefined){ 167 + if (this.flight.flightno !== undefined && this.flight.flightno !== '' &&
  168 + this.flight.flightdate !== undefined && this.flight.flightdate !== '' &&
  169 + this.flight.destinationstation !== undefined && this.flight.destinationstation !== '' &&
  170 + this.flight.originstation !== undefined && this.flight.originstation !== '') {
  171 + if (this.flight.awba !== '' && this.flight.awba !== undefined) {
132 const manifest = this.flight.awba; 172 const manifest = this.flight.awba;
133 const reg = /^[0-9]{11}$/ 173 const reg = /^[0-9]{11}$/
134 - if(!reg.test(manifest)){ 174 + if (!reg.test(manifest)) {
135 Message.error("主单号只支持数字并且最多11位") 175 Message.error("主单号只支持数字并且最多11位")
136 return 176 return
137 } 177 }
138 - const num = (manifest.substring(3,10)) % 7  
139 - if(num !== eval(manifest.substring(10))){ 178 + const num = (manifest.substring(3, 10)) % 7
  179 + if (num !== eval(manifest.substring(10))) {
140 Message.error("主单号不符合模7校验") 180 Message.error("主单号不符合模7校验")
141 return 181 return
142 } 182 }
@@ -144,23 +184,39 @@ @@ -144,23 +184,39 @@
144 this.flight.awba = undefined 184 this.flight.awba = undefined
145 } 185 }
146 186
147 - if(this.flight.messageType ==="MT5201"){ 187 + if (this.flight.messageType === "MT5202") {
148 this.$router.push({name: '出港理货', params: {flightData: this.flight}}); 188 this.$router.push({name: '出港理货', params: {flightData: this.flight}});
149 } 189 }
150 - if(this.flight.messageType ==="MT4201"){ 190 + if (this.flight.messageType === "MT4201") {
151 this.$router.push({name: '出港装载', params: {flightData: this.flight}}); 191 this.$router.push({name: '出港装载', params: {flightData: this.flight}});
152 } 192 }
153 - if(this.flight.messageType ==="MT3201"){  
154 - this.$router.push({name:'出港运抵',params:{flightData: this.flight}}) 193 + if (this.flight.messageType === "MT3201") {
  194 + this.$router.push({name: '出港运抵', params: {flightData: this.flight}})
155 } 195 }
156 - if(this.flight.messageType ==="MT2201"){  
157 - this.$router.push({name:'出港预配舱单',params:{flightData: this.flight}}) 196 + if (this.flight.messageType === "MT2201") {
  197 + this.$router.push({name: '出港预配舱单', params: {flightData: this.flight}})
158 } 198 }
159 } else { 199 } else {
160 Message.warning("请将航班信息填写完整") 200 Message.warning("请将航班信息填写完整")
161 } 201 }
162 202
  203 + },
  204 + remoteMethodAirport(query) {
  205 + this.airportCode = []
  206 + if (query !== '') {
  207 + this.listLoading = true
  208 + getAirportCode({airportid: query}).then(res => {
  209 + if(res !== null){
  210 + setTimeout(() => {
  211 + this.listLoading = false
  212 + this.airportCode = res.data.data
  213 + }, 200)
  214 + }
  215 + })
  216 + } else {
  217 + this.airportCode = []
163 } 218 }
  219 + },
164 } 220 }
165 }; 221 };
166 </script> 222 </script>
@@ -37,7 +37,7 @@ @@ -37,7 +37,7 @@
37 </el-col> 37 </el-col>
38 <div class="el-btn"> 38 <div class="el-btn">
39 <el-button type="primary" size="mini" @click="handleSearch">查询</el-button> 39 <el-button type="primary" size="mini" @click="handleSearch">查询</el-button>
40 - <el-button v-if="loadingModel.flightno === undefined && loadingData.length <1" 40 + <el-button v-if="loadingQuery.flightno === undefined && loadingData.length <1"
41 type="primary" size="mini" @click="handleAddLoading">新增装载 41 type="primary" size="mini" @click="handleAddLoading">新增装载
42 </el-button> 42 </el-button>
43 </div> 43 </div>
@@ -49,9 +49,10 @@ @@ -49,9 +49,10 @@
49 <div class="grid-content content" style="margin-top: 6px">出港装载明细</div> 49 <div class="grid-content content" style="margin-top: 6px">出港装载明细</div>
50 </el-col> 50 </el-col>
51 </el-row> 51 </el-row>
52 - <tree-table v-loading="listLoading" :data="loadingData" :eval-func="func" :expand-all="true" stripe  
53 - style="font-size: 12px" border @selection-change="handleSelectionChange">  
54 - <el-table-column label="运单号" width="160" align="center"> 52 + <el-table v-loading="listLoading" :data="loadingData"stripe style="font-size: 12px"
  53 + border @selection-change="handleSelectionChange">
  54 + <el-table-column type="selection" width="60"></el-table-column>
  55 + <el-table-column label="主单号" width="160" align="center">
55 <template slot-scope="scope"> 56 <template slot-scope="scope">
56 <span>{{scope.row.awba}}</span> 57 <span>{{scope.row.awba}}</span>
57 </template> 58 </template>
@@ -78,50 +79,61 @@ @@ -78,50 +79,61 @@
78 </el-table-column> 79 </el-table-column>
79 <el-table-column label="状态" width="100" align="center"> 80 <el-table-column label="状态" width="100" align="center">
80 <template slot-scope="scope"> 81 <template slot-scope="scope">
81 - <span v-if="scope.row.status ==='01'">未发送</span>  
82 - <span v-if="scope.row.status ==='02'">已发舱单报</span> 82 + <span v-if="scope.row.status ==='01'">接受申报</span>
  83 + <span v-if="scope.row.status ==='02'">待人工审核</span>
  84 + <span v-if="scope.row.status ==='03'">退单</span>
83 <span v-if="scope.row.status ==='05'">舱单报退单</span> 85 <span v-if="scope.row.status ==='05'">舱单报退单</span>
84 <span v-if="scope.row.status ==='06'">舱单转人工</span> 86 <span v-if="scope.row.status ==='06'">舱单转人工</span>
85 <span v-if="scope.row.status ==='07'">舱单报申报成功</span> 87 <span v-if="scope.row.status ==='07'">舱单报申报成功</span>
86 <span v-if="scope.row.status ==='08'">已发舱单删除报</span> 88 <span v-if="scope.row.status ==='08'">已发舱单删除报</span>
87 <span v-if="scope.row.status ==='09'">舱单删除报退单</span> 89 <span v-if="scope.row.status ==='09'">舱单删除报退单</span>
88 <span v-if="scope.row.status ==='10'">舱单删除报转人工</span> 90 <span v-if="scope.row.status ==='10'">舱单删除报转人工</span>
89 - <span v-if="scope.row.status ==='11'">舱单删除成功</span>  
90 - <span v-if="scope.row.status ==='12'">已发舱单修改报</span>  
91 - <span v-if="scope.row.status ==='13'">舱单修改报退单</span> 91 + <span v-if="scope.row.status ==='11'">放行</span>
  92 + <span v-if="scope.row.status ==='12'">拒装</span>
  93 + <span v-if="scope.row.status ==='13'">禁卸</span>
92 <span v-if="scope.row.status ==='14'">舱单修改报转人工</span> 94 <span v-if="scope.row.status ==='14'">舱单修改报转人工</span>
93 <span v-if="scope.row.status ==='15'">舱单修改报成功</span> 95 <span v-if="scope.row.status ==='15'">舱单修改报成功</span>
94 <span v-if="scope.row.status ==='16'">海关已存在</span> 96 <span v-if="scope.row.status ==='16'">海关已存在</span>
  97 + <span v-if="scope.row.status ==='21'">可自动发送</span>
  98 + <span v-if="scope.row.status ==='22'">未发送</span>
  99 + <span v-if="scope.row.status ==='23'">已发送新增报</span>
  100 + <span v-if="scope.row.status ==='24'">已发送删除报</span>
  101 + <span v-if="scope.row.status ==='25'">已发送修改报</span>
95 </template> 102 </template>
96 </el-table-column> 103 </el-table-column>
97 - <el-table-column prop="receipt" label="回执信息" width="180" align="center"> 104 + <el-table-column label="回执信息" width="180" align="center">
98 <template slot-scope="scope"> 105 <template slot-scope="scope">
99 <span>{{scope.row.ext5}}</span> 106 <span>{{scope.row.ext5}}</span>
100 </template> 107 </template>
101 </el-table-column> 108 </el-table-column>
102 - <el-table-column prop="operation" label="操作" align="center"> 109 + <el-table-column label="操作" align="center">
103 <template slot-scope="scope"> 110 <template slot-scope="scope">
104 <el-button size="mini" @click="handleSend(scope.row)">收发明细</el-button> 111 <el-button size="mini" @click="handleSend(scope.row)">收发明细</el-button>
105 - <el-button size="mini" type="success" @click="handleEdit(scope.row)">编辑主单 112 + <el-button size="mini" type="success" @click="handleEdit(scope.row)" >编辑
106 </el-button> 113 </el-button>
107 <el-button size="mini" type="primary" @click="handleSendAwb(scope.row)" 114 <el-button size="mini" type="primary" @click="handleSendAwb(scope.row)"
108 - :disabled="scope.row.status !=='00'">发送舱单报 115 + :disabled="scope.row.status ==='23'">发送舱单报
  116 + </el-button>
  117 + <el-button size="mini" type="danger" v-if="isAdmin" @click="handleAwbDelete(scope.row)">删除运单
109 </el-button> 118 </el-button>
110 - <el-button size="mini" type="danger" v-if="isAdmin" @click="handleAwbDelete(scope.row)">删除运单</el-button>  
111 <el-button size="mini" type="warning" @click="handleAwbStatus(scope.row)" 119 <el-button size="mini" type="warning" @click="handleAwbStatus(scope.row)"
112 - :disabled="scope.row.status ==='00'">更改状态 120 + :disabled="scope.row.status ==='22'">更改状态
113 </el-button> 121 </el-button>
  122 + <el-button size="mini" type="danger" @click="handleSendDelete(scope.row)"
  123 + :disabled="scope.row.status ==='24'">发删除报</el-button>
114 </template> 124 </template>
115 </el-table-column> 125 </el-table-column>
116 - </tree-table> 126 + </el-table>
117 <div class="btnFoot"> 127 <div class="btnFoot">
118 <el-row> 128 <el-row>
119 <el-button type="primary" size="mini" 129 <el-button type="primary" size="mini"
120 - v-if="loadingModel.flightno !== undefined || loadingData.length >0" 130 + v-if="loadingQuery.flightno !== undefined || loadingData.length >0"
121 @click="handelAddLoadingInfo">新增出港装载 131 @click="handelAddLoadingInfo">新增出港装载
122 </el-button> 132 </el-button>
123 - <el-button type="primary" size="mini" v-if="loadingModel.flightno !== undefined || loadingData.length>0"  
124 - @click="handelBackStep">返回</el-button> 133 + <el-button type="primary" size="mini"
  134 + v-if="loadingQuery.flightno !== undefined || loadingData.length>0"
  135 + @click="handelBackStep">返回
  136 + </el-button>
125 </el-row> 137 </el-row>
126 </div> 138 </div>
127 <pagination v-show="total>0" :total="total" :page.sync="loadingQuery.page" :limit.sync="loadingQuery.limit" 139 <pagination v-show="total>0" :total="total" :page.sync="loadingQuery.page" :limit.sync="loadingQuery.limit"
@@ -136,7 +148,7 @@ @@ -136,7 +148,7 @@
136 <el-row> 148 <el-row>
137 <el-col :span="7.5"> 149 <el-col :span="7.5">
138 <el-form-item label="主单号" prop="awba"> 150 <el-form-item label="主单号" prop="awba">
139 - <el-input v-model="loadingModel.awba"></el-input> 151 + <el-input v-model="loadingModel.awba" :disabled="dialogStatus ==='update'"></el-input>
140 </el-form-item> 152 </el-form-item>
141 </el-col> 153 </el-col>
142 <el-col :span="7.5"> 154 <el-col :span="7.5">
@@ -155,13 +167,28 @@ @@ -155,13 +167,28 @@
155 167
156 <el-col :span="7.5"> 168 <el-col :span="7.5">
157 <el-form-item label="起始站" prop="originstation"> 169 <el-form-item label="起始站" prop="originstation">
158 - <el-input v-model="originstation"  
159 - :disabled="dialogStatus ==='update'"></el-input> 170 + <el-select filterable clearable placeholder="请选择起始站" :remote-method="remoteMethodAirport"
  171 + allow-create v-model="originstation" remote :disabled="dialogStatus ==='update'">
  172 + <el-option v-for="item in airportCode"
  173 + :key="item.airportid" :label="item.airportid"
  174 + :value="item.airportid" :disabled="dialogStatus === 'update'">
  175 + <span style="float: left">{{ item.airportdescchn }}</span>
  176 + <span style="float: right; color: #8492a6; font-size: 13px">{{ item.airportid }}</span>
  177 + </el-option>
  178 + </el-select>
160 </el-form-item> 179 </el-form-item>
161 </el-col> 180 </el-col>
162 <el-col :span="7.5"> 181 <el-col :span="7.5">
163 - <el-form-item label="目的站" prop="flightno">  
164 - <el-input v-model="destinationstation" :disabled="dialogStatus ==='update'"></el-input> 182 + <el-form-item label="目的站" prop="originstation">
  183 + <el-select filterable clearable placeholder="请选择起始站" :remote-method="remoteMethodAirport"
  184 + allow-create v-model="destinationstation" remote :disabled="dialogStatus ==='update'">
  185 + <el-option v-for="item in airportCode"
  186 + :key="item.airportid" :label="item.airportid"
  187 + :value="item.airportid" :disabled="dialogStatus === 'update'">
  188 + <span style="float: left">{{ item.airportdescchn }}</span>
  189 + <span style="float: right; color: #8492a6; font-size: 13px">{{ item.airportid }}</span>
  190 + </el-option>
  191 + </el-select>
165 </el-form-item> 192 </el-form-item>
166 </el-col> 193 </el-col>
167 <el-col :span="7.5"> 194 <el-col :span="7.5">
@@ -206,9 +233,14 @@ @@ -206,9 +233,14 @@
206 </el-col> 233 </el-col>
207 <el-col :span="7.5"> 234 <el-col :span="7.5">
208 <el-form-item label="海关关区" prop="customcode"> 235 <el-form-item label="海关关区" prop="customcode">
209 - <el-select v-model="loadingModel.customcode">  
210 - <el-option v-for="item in customcodeList " :key="item" :label="item"  
211 - :value="item"></el-option> 236 + <el-select v-model="loadingModel.customcode" placeholder="请选择关区代码"
  237 + filterable clearable remote :remote-method="remoteMethodCustomCode" :loading="customLoading"
  238 + :disabled="dialogStatus === 'addAwbh'">
  239 + <el-option v-for="item in customCodeList" :key="item.customcode" :label="item.customcode"
  240 + :value="item.customcode">
  241 + <span style="float: left">{{ item.customcode }}</span>
  242 + <span style="float: right; color: #8492a6; font-size: 13px">{{ item.customname }}</span>
  243 + </el-option>
212 </el-select> 244 </el-select>
213 </el-form-item> 245 </el-form-item>
214 </el-col> 246 </el-col>
@@ -229,12 +261,11 @@ @@ -229,12 +261,11 @@
229 <div slot="footer" class="dialog-footer"> 261 <div slot="footer" class="dialog-footer">
230 <el-button @click="dialogFormVisible = false">取消</el-button> 262 <el-button @click="dialogFormVisible = false">取消</el-button>
231 <el-button type="primary" @click="dialogStatus==='create'?createData():updateData()">保存</el-button> 263 <el-button type="primary" @click="dialogStatus==='create'?createData():updateData()">保存</el-button>
232 - <el-button type="success" @click="handleSaveAndSend">保存并发送</el-button>  
233 </div> 264 </div>
234 </el-dialog> 265 </el-dialog>
235 <el-dialog title="收发明细" :visible.sync="dialogTableVisible"> 266 <el-dialog title="收发明细" :visible.sync="dialogTableVisible">
236 <el-table :data="detailData" border> 267 <el-table :data="detailData" border>
237 - <el-table-column label="操作时间" width="150"> 268 + <el-table-column label="操作时间" width="180">
238 <template slot-scope="scope"> 269 <template slot-scope="scope">
239 {{scope.row.busdate}} 270 {{scope.row.busdate}}
240 </template> 271 </template>
@@ -271,19 +302,49 @@ @@ -271,19 +302,49 @@
271 </el-table-column> 302 </el-table-column>
272 </el-table> 303 </el-table>
273 </el-dialog> 304 </el-dialog>
  305 + <el-dialog title="删除原因" :visible.sync="dialogDeleteVisible" width="30%">
  306 + <el-form ref="loadingDeleteForm" :model="respModel" :rules="loadingDeleteRules"
  307 + label-width="120px" style="margin-right: 50px">
  308 + <el-form-item label="删除原因" prop="reason">
  309 + <el-input v-model="respModel.reason" placeholder="删除原因"></el-input>
  310 + </el-form-item>
  311 + <el-form-item label="删除操作人" prop="contactName">
  312 + <el-input v-model="respModel.contactName" placeholder="操作人姓名"></el-input>
  313 + </el-form-item>
  314 + <el-form-item label="操作人Tel" prop="contactTel">
  315 + <el-input v-model="respModel.contactTel" placeholder="删除操作人联系方式"></el-input>
  316 + </el-form-item>
  317 + <el-form-item label="备注">
  318 + <el-input v-model="respModel.content" type="textarea"></el-input>
  319 + </el-form-item>
  320 + </el-form>
  321 + <div slot="footer" class="dialog-footer">
  322 + <el-button @click="dialogDeleteVisible = false">取消</el-button>
  323 + <el-button type="primary" @click="sendLoadingDelete()">发送</el-button>
  324 + </div>
  325 + </el-dialog>
274 </div> 326 </div>
275 </div> 327 </div>
276 </template> 328 </template>
277 <script> 329 <script>
278 - import treeTable from '@/components/TreeTable'  
279 - import treeToArray from '@/utils/customEval'  
280 import Pagination from '@/components/Pagination' 330 import Pagination from '@/components/Pagination'
281 - import {getMt4201ListForParam, deleteByIsDelete, updateStatus, updateMT4201, addMt4201} from '@/api/exitLoading' 331 + import {getCustomCode,getAirportCode} from "@/api/country";
  332 + import {
  333 + getMt4201ListForParam, deleteByIsDelete, updateStatus,
  334 + updateMT4201, addMt4201, sendCreateMt4201, sendDeleteMt4201
  335 + } from '@/api/exitLoading'
282 import {Message} from "element-ui"; 336 import {Message} from "element-ui";
283 - import {validAwb, validAlphabets, validAlphabetsAndNum, validAlphabetsAndSpanceKey,validatorNum} from "@/utils/validate" 337 + import {
  338 + validAwb,
  339 + validAlphabets,
  340 + validAlphabetsAndNum,
  341 + validAlphabetsAndSpanceKey,
  342 + validatorNum
  343 + } from "@/utils/validate"
  344 + import {getResponseForParam} from '@/api/responseDetail'
284 export default { 345 export default {
285 name: "ExitLoading", 346 name: "ExitLoading",
286 - components: {treeTable, Pagination}, 347 + components: { Pagination},
287 inject: ['reload'], 348 inject: ['reload'],
288 data() { 349 data() {
289 const validatorAwb = (rule, value, callback) => { 350 const validatorAwb = (rule, value, callback) => {
@@ -304,8 +365,8 @@ @@ -304,8 +365,8 @@
304 } 365 }
305 callback() 366 callback()
306 } 367 }
307 - const validAlphabetsSpanceKey = (rule,value,callback) =>{  
308 - if(!validAlphabetsAndSpanceKey(value)){ 368 + const validAlphabetsSpanceKey = (rule, value, callback) => {
  369 + if (!validAlphabetsAndSpanceKey(value)) {
309 callback("只能输入字母、数字、空格") 370 callback("只能输入字母、数字、空格")
310 } 371 }
311 callback() 372 callback()
@@ -317,17 +378,19 @@ @@ -317,17 +378,19 @@
317 callback() 378 callback()
318 } 379 }
319 return { 380 return {
320 - func: treeToArray,  
321 total: 1, 381 total: 1,
322 - isAdmin:false, 382 + isAdmin: false,
323 dialogMap: { 383 dialogMap: {
324 update: '编辑出港装载', 384 update: '编辑出港装载',
325 create: '添加出港装载', 385 create: '添加出港装载',
326 }, 386 },
327 - customcodeList: [4604, 4620], 387 + customCodeList: [],
  388 + airportCode:[],
328 dialogStatus: undefined, 389 dialogStatus: undefined,
329 dialogTableVisible: false, 390 dialogTableVisible: false,
330 dialogFormVisible: false, 391 dialogFormVisible: false,
  392 + dialogDeleteVisible: false,
  393 + customLoading: false,
331 listLoading: false, 394 listLoading: false,
332 loadingQuery: { 395 loadingQuery: {
333 pageSize: 1, 396 pageSize: 1,
@@ -338,7 +401,8 @@ @@ -338,7 +401,8 @@
338 flightdate: undefined, 401 flightdate: undefined,
339 originstation: undefined, 402 originstation: undefined,
340 destinationstation: undefined, 403 destinationstation: undefined,
341 - customcode: undefined 404 + customcode: undefined,
  405 + messageType: undefined
342 }, 406 },
343 loadingRoles: { 407 loadingRoles: {
344 awba: [{required: true, trigger: 'blur', validator: validatorAwb}], 408 awba: [{required: true, trigger: 'blur', validator: validatorAwb}],
@@ -350,12 +414,12 @@ @@ -350,12 +414,12 @@
350 destinationstation: [{required: true, trigger: 'blur', validator: validatorAlphabets}], 414 destinationstation: [{required: true, trigger: 'blur', validator: validatorAlphabets}],
351 piece: [{type: 'number', required: true, trigger: 'change', message: '只能输入数字'}], 415 piece: [{type: 'number', required: true, trigger: 'change', message: '只能输入数字'}],
352 weight: [{type: 'number', required: true, trigger: 'change', message: '只能输入数字'}], 416 weight: [{type: 'number', required: true, trigger: 'change', message: '只能输入数字'}],
353 - customcode:[{required: true, trigger: 'change',message:'不能为空'}] 417 + customcode: [{required: true, trigger: 'change', message: '不能为空'}]
354 }, 418 },
355 loadingData: [], 419 loadingData: [],
356 detailData: [], 420 detailData: [],
357 loadingModel: { 421 loadingModel: {
358 - carrier:undefined, 422 + carrier: undefined,
359 flightno: undefined, 423 flightno: undefined,
360 flightdate: undefined, 424 flightdate: undefined,
361 originstation: undefined, 425 originstation: undefined,
@@ -369,8 +433,29 @@ @@ -369,8 +433,29 @@
369 loadingtime: undefined, 433 loadingtime: undefined,
370 messageType: 'MT4201', 434 messageType: 'MT4201',
371 awbprice: undefined, 435 awbprice: undefined,
372 - awbweight: undefined  
373 - } 436 + awbweight: undefined,
  437 + reason: undefined,
  438 + contactName: undefined,
  439 + contactTel: undefined,
  440 + content: undefined,
  441 + },
  442 + respModel: {
  443 + uuid: undefined,
  444 + reason: undefined,
  445 + contactName: undefined,
  446 + contactTel: undefined,
  447 + content: '',
  448 + flightNo: undefined,
  449 + awba: undefined,
  450 + customCode: undefined,
  451 + flightDate: undefined,
  452 + awbh: ''
  453 + },
  454 + loadingDeleteRules: {
  455 + reason: [{required: true, message: '删除原因不能为空', trigger: 'blur'}],
  456 + contactName: [{required: true, message: '删除操作人不能为空', trigger: 'blur'}],
  457 + contactTel: [{required: true, message: '操作人联系方式不能为空', trigger: 'blur'}]
  458 + },
374 } 459 }
375 }, 460 },
376 created() { 461 created() {
@@ -387,7 +472,7 @@ @@ -387,7 +472,7 @@
387 this.getList() 472 this.getList()
388 } 473 }
389 let username = JSON.parse(sessionStorage.getItem('user')).username 474 let username = JSON.parse(sessionStorage.getItem('user')).username
390 - if(username === 'admin'){ 475 + if (username === 'admin') {
391 this.isAdmin = true 476 this.isAdmin = true
392 } 477 }
393 }, 478 },
@@ -477,7 +562,7 @@ @@ -477,7 +562,7 @@
477 this.getList() 562 this.getList()
478 }, 563 },
479 // 收发明细 564 // 收发明细
480 - handleSend() { 565 + handleSend(row) {
481 const resQuery = { 566 const resQuery = {
482 carrier: row.carrier, 567 carrier: row.carrier,
483 flightNo: row.flightno, 568 flightNo: row.flightno,
@@ -494,7 +579,6 @@ @@ -494,7 +579,6 @@
494 // 编辑 弹框 579 // 编辑 弹框
495 handleEdit(row) { 580 handleEdit(row) {
496 this.loadingModel = Object.assign({}, row) 581 this.loadingModel = Object.assign({}, row)
497 - console.log(this.loadingModel)  
498 this.dialogStatus = 'update' 582 this.dialogStatus = 'update'
499 this.dialogFormVisible = true 583 this.dialogFormVisible = true
500 this.$nextTick(() => { 584 this.$nextTick(() => {
@@ -519,10 +603,75 @@ @@ -519,10 +603,75 @@
519 }, 603 },
520 604
521 // 发送舱单报 605 // 发送舱单报
522 - handleSendAwb() { 606 + handleSendAwb(row) {
523 607
  608 + this.$confirm("是否发送", "确认消息", {
  609 + distinguishCancelAndClose: true,
  610 + confirmButtonText: '发送',
  611 + cancelButtonText: '取消'
  612 + }).then(() => {
  613 + if(row.awbh === null || row.awbh === undefined){
  614 + row.awbh = ''
  615 + }
  616 + sendCreateMt4201(row).then(res => {
  617 + if (res.data.count > 0) {
  618 + Message.success(res.data.respMessage)
  619 + this.getList()
  620 + }else {
  621 + Message.success(res.data.respMessage)
  622 + }
  623 + })
  624 + }).catch(error =>{
  625 + Message.error(error.message)
  626 + })
  627 + },
  628 +
  629 + // 发送删除报
  630 + handleSendDelete(row) {
  631 + this.respModel = {
  632 + carrier: undefined,
  633 + reason: undefined,
  634 + contactName: undefined,
  635 + contactTel: undefined,
  636 + content: '',
  637 + flightNo: undefined,
  638 + awba: undefined,
  639 + customCode: undefined,
  640 + flightDate: undefined,
  641 + awbh: ''
  642 + }
  643 + this.dialogDeleteVisible = true
  644 + this.respModel.carrier = row.carrier
  645 + this.respModel.flightNo = row.flightno
  646 + this.respModel.awba = row.awba
  647 + this.respModel.customCode = row.customcode
  648 + this.respModel.flightDate = row.flightdate
  649 + if(row.awbh ===null){
  650 + this.respModel.awbh = ''
  651 + }else {
  652 + this.respModel.awbh = row.awbh
  653 + }
  654 + this.$nextTick(() => {
  655 + this.$refs.loadingDeleteForm.clearValidate()
  656 + })
524 }, 657 },
525 - // 删除 发送删除报 658 +
  659 + sendLoadingDelete() {
  660 + this.$refs.loadingDeleteForm.validate(valid => {
  661 + if (valid) {
  662 + sendDeleteMt4201(this.respModel).then(res => {
  663 + if (res.data.count > 0) {
  664 + Message.success(res.data.respMessage)
  665 + this.dialogDeleteVisible = false
  666 + this.getList()
  667 + } else {
  668 + Message.success(res.data.respMessage)
  669 + }
  670 + })
  671 + }
  672 + })
  673 + },
  674 + // 删除
526 handleAwbDelete(row) { 675 handleAwbDelete(row) {
527 this.$confirm("是否删除", "确认消息", { 676 this.$confirm("是否删除", "确认消息", {
528 distinguishCancelAndClose: true, 677 distinguishCancelAndClose: true,
@@ -559,20 +708,23 @@ @@ -559,20 +708,23 @@
559 confirmButtonText: '确认更改', 708 confirmButtonText: '确认更改',
560 cancelButtonText: '取消更改' 709 cancelButtonText: '取消更改'
561 }).then(() => { 710 }).then(() => {
562 - updateStatus(row).then(res => {  
563 - if (res.data.count > 0) {  
564 - this.$message({  
565 - type: 'success',  
566 - message: '当前运单状态已更改'  
567 - })  
568 - this.getList()  
569 - } else {  
570 - this.$message({  
571 - type: 'error',  
572 - message: '状态更改失败,请稍后重试'  
573 - })  
574 - }  
575 - }) 711 + if (row.status!==22){
  712 + row.status =22;
  713 + }
  714 + // updateStatus(row).then(res => {
  715 + // if (res.data.count > 0) {
  716 + // this.$message({
  717 + // type: 'success',
  718 + // message: '当前运单状态已更改'
  719 + // })
  720 + // this.getList()
  721 + // } else {
  722 + // this.$message({
  723 + // type: 'error',
  724 + // message: '状态更改失败,请稍后重试'
  725 + // })
  726 + // }
  727 + // })
576 728
577 }).catch(action => { 729 }).catch(action => {
578 this.$message({ 730 this.$message({
@@ -583,14 +735,10 @@ @@ -583,14 +735,10 @@
583 }) 735 })
584 }) 736 })
585 }, 737 },
586 - // 保存并发送  
587 - handleSaveAndSend() {  
588 -  
589 - },  
590 // 重置实体 738 // 重置实体
591 restModel() { 739 restModel() {
592 this.loadingModel = { 740 this.loadingModel = {
593 - carrier:undefined, 741 + carrier: undefined,
594 flightno: undefined, 742 flightno: undefined,
595 flightdate: undefined, 743 flightdate: undefined,
596 originstation: undefined, 744 originstation: undefined,
@@ -639,6 +787,40 @@ @@ -639,6 +787,40 @@
639 } 787 }
640 }) 788 })
641 }, 789 },
  790 + //获取机场三字码
  791 + remoteMethodAirport(query){
  792 + this.airportCode = []
  793 + if (query !== '') {
  794 + this.listLoading = true
  795 + getAirportCode({airportid: query}).then(res => {
  796 + if(res !== null){
  797 + setTimeout(() => {
  798 + this.listLoading = false
  799 + this.airportCode = res.data.data
  800 + }, 200)
  801 + }
  802 + })
  803 + } else {
  804 + this.airportCode = []
  805 + }
  806 + },
  807 + //关区代码
  808 + remoteMethodCustomCode(query){
  809 + this.customCodeList = []
  810 + if (query !== '') {
  811 + this.customLoading = true
  812 + getCustomCode({customcode: query}).then(res => {
  813 + if(res !== null){
  814 + setTimeout(() => {
  815 + this.customLoading = false
  816 + this.customCodeList = res.data.data
  817 + }, 200)
  818 + }
  819 + })
  820 + } else {
  821 + this.airportCode = []
  822 + }
  823 + },
642 handleAddLoading() { 824 handleAddLoading() {
643 const row = { 825 const row = {
644 'messageType': 'MT4201' 826 'messageType': 'MT4201'
@@ -646,7 +828,8 @@ @@ -646,7 +828,8 @@
646 this.$router.push({name: '出港航班信息', params: {scopeRow: row}}) 828 this.$router.push({name: '出港航班信息', params: {scopeRow: row}})
647 }, 829 },
648 handelBackStep() { 830 handelBackStep() {
649 - this.$router.push({name: '出港航班信息', params: {scopeRow: this.loadingModel}}) 831 + this.loadingQuery.messageType = 'MT4201'
  832 + this.$router.push({name: '出港航班信息', params: {scopeRow: this.loadingQuery}})
650 } 833 }
651 } 834 }
652 } 835 }
@@ -212,6 +212,7 @@ @@ -212,6 +212,7 @@
212 212
213 }, 213 },
214 handleUpdate(row){ 214 handleUpdate(row){
  215 + console.log(row.messageType )
215 if(row.messageType === 'MT2201'){ 216 if(row.messageType === 'MT2201'){
216 this.$router.push({name: '出港航班信息', params: {scopeRow: row}}) 217 this.$router.push({name: '出港航班信息', params: {scopeRow: row}})
217 } 218 }
@@ -221,7 +222,7 @@ @@ -221,7 +222,7 @@
221 if(row.messageType === 'MT4201'){ 222 if(row.messageType === 'MT4201'){
222 this.$router.push({name: '出港航班信息', params: {scopeRow: row}}) 223 this.$router.push({name: '出港航班信息', params: {scopeRow: row}})
223 } 224 }
224 - if(row.messageType === 'MT5201'){ 225 + if(row.messageType === 'MT5202'){
225 this.$router.push({name: '出港航班信息', params: {scopeRow: row}}) 226 this.$router.push({name: '出港航班信息', params: {scopeRow: row}})
226 } 227 }
227 }, 228 },
@@ -13,9 +13,9 @@ @@ -13,9 +13,9 @@
13 </el-col> 13 </el-col>
14 <el-col :span="20"> 14 <el-col :span="20">
15 <div class="grid-content"> 15 <div class="grid-content">
16 - <span class="titleSpan">航班号:{{this.listQuery.carrier}}{{this.listQuery.flightNo}}</span>  
17 - <span class="titleSpan">航班日期:{{this.listQuery.flightDate}}</span>  
18 - <span class="titleSpan">航段:{{this.listQuery.originStation}}-{{this.listQuery.destinationStation}}</span> 16 + <span class="titleSpan">航班号:{{this.preQuery.carrier}}{{this.preQuery.flightno}}</span>
  17 + <span class="titleSpan">航班日期:{{this.preQuery.flightdate}}</span>
  18 + <span class="titleSpan">航段:{{this.preQuery.originstation}}-{{this.preQuery.destinationstation}}</span>
19 </div> 19 </div>
20 </el-col> 20 </el-col>
21 </div> 21 </div>
@@ -32,12 +32,12 @@ @@ -32,12 +32,12 @@
32 <div class="grid-content"> 32 <div class="grid-content">
33 <el-col :span="4"> 33 <el-col :span="4">
34 <div class="grid-content"> 34 <div class="grid-content">
35 - <el-input v-model="listQuery.awba" placeholder="请输入主单号" clearable></el-input> 35 + <el-input v-model="preQuery.awba" placeholder="请输入主单号" clearable></el-input>
36 </div> 36 </div>
37 </el-col> 37 </el-col>
38 <div class="grid-content el-btn"> 38 <div class="grid-content el-btn">
39 <el-button type="primary" size="mini" @click="handleSerach">查询</el-button> 39 <el-button type="primary" size="mini" @click="handleSerach">查询</el-button>
40 - <el-button v-if="preModel.flightno === undefined && preData.length<1" type="primary" 40 + <el-button v-if="preQuery.flightno === undefined && preData.length<1" type="primary"
41 size="mini" 41 size="mini"
42 @click="handleAddpre">新增预配舱单 42 @click="handleAddpre">新增预配舱单
43 </el-button> 43 </el-button>
@@ -87,27 +87,33 @@ @@ -87,27 +87,33 @@
87 {{scope.row.actime}} 87 {{scope.row.actime}}
88 </template> 88 </template>
89 </el-table-column> 89 </el-table-column>
90 - <el-table-column label="代理人代码" width="120" align="center">  
91 - <template slot-scope="scope">  
92 - {{scope.row.status}}  
93 - </template>  
94 - </el-table-column> 90 + <!--<el-table-column label="代理人代码" width="120" align="center">-->
  91 + <!--<template slot-scope="scope">-->
  92 + <!--{{scope.row.status}}-->
  93 + <!--</template>-->
  94 + <!--</el-table-column>-->
95 <el-table-column label="状态" width="100" align="center"> 95 <el-table-column label="状态" width="100" align="center">
96 <template slot-scope="scope"> 96 <template slot-scope="scope">
97 - <span v-if="scope.row.status ==='01'">未发送</span>  
98 - <span v-if="scope.row.status ==='02'">已发舱单报</span> 97 + <span v-if="scope.row.status ==='01'">接受申报</span>
  98 + <span v-if="scope.row.status ==='02'">待人工审核</span>
  99 + <span v-if="scope.row.status ==='03'">退单</span>
99 <span v-if="scope.row.status ==='05'">舱单报退单</span> 100 <span v-if="scope.row.status ==='05'">舱单报退单</span>
100 <span v-if="scope.row.status ==='06'">舱单转人工</span> 101 <span v-if="scope.row.status ==='06'">舱单转人工</span>
101 <span v-if="scope.row.status ==='07'">舱单报申报成功</span> 102 <span v-if="scope.row.status ==='07'">舱单报申报成功</span>
102 <span v-if="scope.row.status ==='08'">已发舱单删除报</span> 103 <span v-if="scope.row.status ==='08'">已发舱单删除报</span>
103 <span v-if="scope.row.status ==='09'">舱单删除报退单</span> 104 <span v-if="scope.row.status ==='09'">舱单删除报退单</span>
104 <span v-if="scope.row.status ==='10'">舱单删除报转人工</span> 105 <span v-if="scope.row.status ==='10'">舱单删除报转人工</span>
105 - <span v-if="scope.row.status ==='11'">舱单删除成功</span>  
106 - <span v-if="scope.row.status ==='12'">已发舱单修改报</span>  
107 - <span v-if="scope.row.status ==='13'">舱单修改报退单</span> 106 + <span v-if="scope.row.status ==='11'">放行</span>
  107 + <span v-if="scope.row.status ==='12'">拒装</span>
  108 + <span v-if="scope.row.status ==='13'">禁卸</span>
108 <span v-if="scope.row.status ==='14'">舱单修改报转人工</span> 109 <span v-if="scope.row.status ==='14'">舱单修改报转人工</span>
109 <span v-if="scope.row.status ==='15'">舱单修改报成功</span> 110 <span v-if="scope.row.status ==='15'">舱单修改报成功</span>
110 <span v-if="scope.row.status ==='16'">海关已存在</span> 111 <span v-if="scope.row.status ==='16'">海关已存在</span>
  112 + <span v-if="scope.row.status ==='21'">可自动发送</span>
  113 + <span v-if="scope.row.status ==='22'">未发送</span>
  114 + <span v-if="scope.row.status ==='23'">已发送新增报</span>
  115 + <span v-if="scope.row.status ==='24'">已发送删除报</span>
  116 + <span v-if="scope.row.status ==='25'">已发送修改报</span>
111 </template> 117 </template>
112 </el-table-column> 118 </el-table-column>
113 <el-table-column prop="receipt" label="回执信息" align="center"> 119 <el-table-column prop="receipt" label="回执信息" align="center">
@@ -116,36 +122,38 @@ @@ -116,36 +122,38 @@
116 <el-button size="mini" @click="handleSend(scope.row)">收发明细</el-button> 122 <el-button size="mini" @click="handleSend(scope.row)">收发明细</el-button>
117 </template> 123 </template>
118 </el-table-column> 124 </el-table-column>
119 - <el-table-column label="操作" width="300"> 125 + <el-table-column label="操作" width="450">
120 <template slot-scope="scope"> 126 <template slot-scope="scope">
121 - <el-button size="mini" type="success" @click="handleEdit(scope.row)">编辑运单</el-button> 127 + <el-button size="mini" type="success" @click="handleEdit(scope.row)" >编辑</el-button>
122 <el-button size="mini" type="success" v-if="scope.row.awbh ===null" 128 <el-button size="mini" type="success" v-if="scope.row.awbh ===null"
123 @click="handleAddAwbh(scope.row)">新增分单 129 @click="handleAddAwbh(scope.row)">新增分单
124 </el-button> 130 </el-button>
125 <el-button size="mini" type="primary" @click="handleAwbSend(scope.row)" 131 <el-button size="mini" type="primary" @click="handleAwbSend(scope.row)"
126 - :disabled="scope.row.status !== '01'">发舱单报 132 + :disabled="scope.row.status === '23'">发舱单报
127 </el-button> 133 </el-button>
128 <p></p> 134 <p></p>
129 - <el-button size="mini" type="primary" @click="handleAwbEdit(scope.row)">发修改报</el-button>  
130 - 135 + <el-button size="mini" type="primary" @click="handleAwbEdit(scope.row)"
  136 + :disabled="scope.row.status ==='25'">发修改报</el-button>
131 <el-button size="mini" type="danger" v-if="isAdmin" @click="handleAwbDelete(scope.row)">删除运单</el-button> 137 <el-button size="mini" type="danger" v-if="isAdmin" @click="handleAwbDelete(scope.row)">删除运单</el-button>
132 <el-button size="mini" type="warning" @click="handleAwbStatus(scope.row)" 138 <el-button size="mini" type="warning" @click="handleAwbStatus(scope.row)"
133 - :disabled="scope.row.status === '01'">更改状态 139 + :disabled="scope.row.status === '22'">更改状态
134 </el-button> 140 </el-button>
  141 + <el-button size="mini" type="danger" @click="handleSendDelete(scope.row)"
  142 + :disabled="scope.row.status ==='24'">发删除报</el-button>
135 </template> 143 </template>
136 </el-table-column> 144 </el-table-column>
137 </tree-table> 145 </tree-table>
138 <div class="btnFoot"> 146 <div class="btnFoot">
139 <el-row> 147 <el-row>
140 - <el-button type="primary" size="mini" v-if="preData.flightno !== undefined || preData.length> 0" 148 + <el-button type="primary" size="mini" v-if="preQuery.flightno !== undefined | preData.length > 0"
141 @click="handleAddpreInfo">新增预配舱单 149 @click="handleAddpreInfo">新增预配舱单
142 </el-button> 150 </el-button>
143 <el-button type="primary" size="mini" @click="handelBackStep" 151 <el-button type="primary" size="mini" @click="handelBackStep"
144 - v-if="preModel.flightno !== undefined || preData.length >0">返回 152 + v-if="preQuery.flightno !== undefined || preData.length >0">返回
145 </el-button> 153 </el-button>
146 </el-row> 154 </el-row>
147 </div> 155 </div>
148 - <pagination v-show="total>0" :total="total" :page.sync="listQuery.pageSize" :limit.sync="listQuery.limitSize" 156 + <pagination v-show="total>0" :total="total" :page.sync="preQuery.pageSize" :limit.sync="preQuery.limitSize"
149 @pagination="getList"/> 157 @pagination="getList"/>
150 <el-dialog :title="dialogMap[dialogStatus]" :visible.sync="dialogFormVisible" width="60%"> 158 <el-dialog :title="dialogMap[dialogStatus]" :visible.sync="dialogFormVisible" width="60%">
151 <el-form ref="preFormData" :model="preModel" :rules="preRoles" label-position="right" 159 <el-form ref="preFormData" :model="preModel" :rules="preRoles" label-position="right"
@@ -192,12 +200,34 @@ @@ -192,12 +200,34 @@
192 <el-row> 200 <el-row>
193 <el-col :span="7.5"> 201 <el-col :span="7.5">
194 <el-form-item label="起始站" prop="originstation"> 202 <el-form-item label="起始站" prop="originstation">
195 - <el-input v-model="originstation" :disabled="dialogStatus === 'addAwbh'" clearable/> 203 + <el-select
  204 + filterable
  205 + clearable
  206 + placeholder="请选择起始站"
  207 + :remote-method="remoteMethodAirport"
  208 + allow-create remote
  209 + v-model="originstation"
  210 + :loading="airportLoading">
  211 + <el-option v-for="item in airportCode"
  212 + :key="item.airportid" :label="item.airportid"
  213 + :value="item.airportid" :disabled="dialogStatus === 'addAwbh'">
  214 + <span style="float: left">{{ item.airportdescchn }}</span>
  215 + <span style="float: right; color: #8492a6; font-size: 13px">{{ item.airportid }}</span>
  216 + </el-option>
  217 + </el-select>
196 </el-form-item> 218 </el-form-item>
197 </el-col> 219 </el-col>
198 <el-col :span="7.5"> 220 <el-col :span="7.5">
199 <el-form-item label="目的站" prop="destinationstation"> 221 <el-form-item label="目的站" prop="destinationstation">
200 - <el-input v-model="destinationstation" :disabled="dialogStatus === 'addAwbh'" clearable/> 222 + <el-select filterable clearable placeholder="请选择目的站" allow-create remote
  223 + v-model="destinationstation" :remote-method="remoteMethodAirport">
  224 + <el-option v-for="item in airportCode"
  225 + :key="item.airportid" :label="item.airportid"
  226 + :value="item.airportid" :disabled="dialogStatus === 'addAwbh'" >
  227 + <span style="float: left">{{ item.airportdescchn }}</span>
  228 + <span style="float: right; color: #8492a6; font-size: 13px">{{ item.airportid }}</span>
  229 + </el-option>
  230 + </el-select>
201 </el-form-item> 231 </el-form-item>
202 </el-col> 232 </el-col>
203 </el-row> 233 </el-row>
@@ -306,16 +336,20 @@ @@ -306,16 +336,20 @@
306 <el-row> 336 <el-row>
307 <el-col :span="7.5"> 337 <el-col :span="7.5">
308 <el-form-item label="关区代码" prop="customcode"> 338 <el-form-item label="关区代码" prop="customcode">
309 - <el-select v-model="preModel.customcode" class="filter-item" placeholder="请选择关区代码" 339 + <el-select v-model="preModel.customcode" placeholder="请选择关区代码"
  340 + filterable clearable :remote-method="remoteMethodCustomCode" :loading="customLoading" remote
310 :disabled="dialogStatus === 'addAwbh'"> 341 :disabled="dialogStatus === 'addAwbh'">
311 - <el-option v-for="item in customcodeList" :key="item.value" :label="item.label"  
312 - :value="item.value"></el-option> 342 + <el-option v-for="item in customCodeList" :key="item.customcode" :label="item.customcode"
  343 + :value="item.customcode">
  344 + <span style="float: left">{{ item.customcode }}</span>
  345 + <span style="float: right; color: #8492a6; font-size: 13px">{{ item.customname }}</span>
  346 + </el-option>
313 </el-select> 347 </el-select>
314 </el-form-item> 348 </el-form-item>
315 </el-col> 349 </el-col>
316 <el-col :span="7.5"> 350 <el-col :span="7.5">
317 <el-form-item label="海关状态"> 351 <el-form-item label="海关状态">
318 - <el-select v-model="preModel.awbtype" class="filter-item" placeholder="请录入货物类型"> 352 + <el-select v-model="preModel.awbinfo.awbtype" class="filter-item" placeholder="请录入货物类型">
319 <el-option v-for="item in customTypes" :key="item.value" :label="item.label" 353 <el-option v-for="item in customTypes" :key="item.value" :label="item.label"
320 :value="item.value"/> 354 :value="item.value"/>
321 </el-select> 355 </el-select>
@@ -520,16 +554,40 @@ @@ -520,16 +554,40 @@
520 <!--</el-form-item>--> 554 <!--</el-form-item>-->
521 <!--</el-col>--> 555 <!--</el-col>-->
522 </el-row> 556 </el-row>
  557 + <div v-if="dialogStatus === 'sendUpdate'">
  558 + <div class="grid-content content">
  559 + 运单信息
  560 + </div>
  561 + <el-row>
  562 + <el-col :span="7.5">
  563 + <el-form-item label="修改原因" prop="reason">
  564 + <el-input v-model="preModel.reason" clearable/>
  565 + </el-form-item>
  566 + </el-col>
  567 + <el-col :span="7.5">
  568 + <el-form-item label="修改人" prop="contactName">
  569 + <el-input v-model="preModel.contactName" clearable/>
  570 + </el-form-item>
  571 + </el-col>
  572 + <el-col :span="7.5">
  573 + <el-form-item label="修改人Tel" prop="contactTel">
  574 + <el-input v-model="preModel.contactTel" clearable maxlength="5"/>
  575 + </el-form-item>
  576 + </el-col>
  577 + </el-row>
  578 + </div>
  579 +
523 </el-form> 580 </el-form>
524 <div slot="footer" class="dialog-footer"> 581 <div slot="footer" class="dialog-footer">
525 <el-button @click="dialogFormVisible = false">取消</el-button> 582 <el-button @click="dialogFormVisible = false">取消</el-button>
526 - <el-button type="primary" @click="dialogStatus !=='create'? createData():updateData()">保存</el-button>  
527 - <el-button type="success" @click="handleSaveAndSend">保存并发送</el-button> 583 + <el-button type="primary" v-show="dialogStatus!=='sendUpdate'"
  584 + @click="dialogStatus ==='create'? createData():updateData()">保存</el-button>
  585 + <el-button type="primary" v-show="dialogStatus==='sendUpdate'" @click="sendUpdate()">发送</el-button>
528 </div> 586 </div>
529 </el-dialog> 587 </el-dialog>
530 <el-dialog title="收发明细" :visible.sync="dialogTableVisible"> 588 <el-dialog title="收发明细" :visible.sync="dialogTableVisible">
531 <el-table :data="detailData" border> 589 <el-table :data="detailData" border>
532 - <el-table-column label="操作时间" width="150"> 590 + <el-table-column label="操作时间" width="180">
533 <template slot-scope="scope"> 591 <template slot-scope="scope">
534 {{scope.row.busdate}} 592 {{scope.row.busdate}}
535 </template> 593 </template>
@@ -566,6 +624,27 @@ @@ -566,6 +624,27 @@
566 </el-table-column> 624 </el-table-column>
567 </el-table> 625 </el-table>
568 </el-dialog> 626 </el-dialog>
  627 + <el-dialog title="删除原因" :visible.sync="dialogDeleteVisble" width="30%">
  628 + <el-form ref="sendDeleteForm" :model="respModel" :rules="sendDeleteRules" label-width="120px"
  629 + style="margin-right:50px;">
  630 + <el-form-item label="删除原因" prop="reason">
  631 + <el-input v-model="respModel.reason" placeholder="删除原因"></el-input>
  632 + </el-form-item>
  633 + <el-form-item label="删除操作人" prop="contactName">
  634 + <el-input v-model="respModel.contactName" placeholder="操作人姓名"></el-input>
  635 + </el-form-item>
  636 + <el-form-item label="操作人Tel" prop="contactTel">
  637 + <el-input v-model="respModel.contactTel" placeholder="删除操作人联系方式"></el-input>
  638 + </el-form-item>
  639 + <el-form-item label="备注">
  640 + <el-input v-model="respModel.content" type="textarea"></el-input>
  641 + </el-form-item>
  642 + </el-form>
  643 + <div slot="footer" class="dialog-footer">
  644 + <el-button @click="dialogDeleteVisble = false">取消</el-button>
  645 + <el-button type="primary" @click="sendDelete()">发送</el-button>
  646 + </div>
  647 + </el-dialog>
569 </div> 648 </div>
570 </template> 649 </template>
571 <script> 650 <script>
@@ -573,8 +652,17 @@ @@ -573,8 +652,17 @@
573 import treeToArray from '@/utils/customEval' 652 import treeToArray from '@/utils/customEval'
574 import Pagination from '@/components/Pagination' 653 import Pagination from '@/components/Pagination'
575 654
576 - import {getCountry, getByCountryCode, getByCountryCodeForName} from "@/api/country";  
577 - import {getMt2201ListForParam, deleteByIsDelete, updateStatus, updateMT2201, addMt2201} from '@/api/exitPre' 655 + import {getCountry, getByCountryCode, getByCountryCodeForName,getCustomCode,getAirportCode} from "@/api/country";
  656 + import {
  657 + getMt2201ListForParam,
  658 + deleteByIsDelete,
  659 + updateStatus,
  660 + updateMT2201,
  661 + addMt2201,
  662 + sendCreateMt2201,
  663 + sendDeleteMt2201,
  664 + sendUpdateMt2201
  665 + } from '@/api/exitPre'
578 import {Message} from "element-ui"; 666 import {Message} from "element-ui";
579 import {getResponseForParam} from '@/api/responseDetail' 667 import {getResponseForParam} from '@/api/responseDetail'
580 import { 668 import {
@@ -623,16 +711,17 @@ @@ -623,16 +711,17 @@
623 return { 711 return {
624 func: treeToArray, 712 func: treeToArray,
625 total: 1, 713 total: 1,
626 - isAdmin:false,  
627 - listQuery: { 714 + isAdmin: false,
  715 + preQuery: {
628 pageSize: 1, 716 pageSize: 1,
629 limitSize: 100, 717 limitSize: 100,
630 awba: undefined, 718 awba: undefined,
631 carrier: undefined, 719 carrier: undefined,
632 - flightNo: undefined,  
633 - flightDate: undefined,  
634 - originStation: undefined,  
635 - destinationStation: undefined 720 + flightno: undefined,
  721 + flightdate: undefined,
  722 + originstation: undefined,
  723 + destinationstation: undefined,
  724 + messageType: undefined
636 }, 725 },
637 dialogMap: { 726 dialogMap: {
638 update: '编辑预配舱单', 727 update: '编辑预配舱单',
@@ -647,10 +736,14 @@ @@ -647,10 +736,14 @@
647 {label: '快件', value: '005'}], 736 {label: '快件', value: '005'}],
648 payTypes: [{label: '预付', value: '0'}, {label: '到付', value: '1'}], 737 payTypes: [{label: '预付', value: '0'}, {label: '到付', value: '1'}],
649 splitcodes: [{label: '是', value: 'T'}, {label: '否', value: 'P'}], 738 splitcodes: [{label: '是', value: 'T'}, {label: '否', value: 'P'}],
650 - customcodeList: [{label: '4604', value: '4604'}, {label: '4620', value: '4620'}], 739 + customCodeList: [],
  740 + airportCode:[],
651 dialogStatus: undefined, 741 dialogStatus: undefined,
652 dialogTableVisible: false, 742 dialogTableVisible: false,
  743 + dialogDeleteVisble: false,
653 listLoading: false, 744 listLoading: false,
  745 + customLoading:false,
  746 + airportLoading:false,
654 disabledStatus: false, 747 disabledStatus: false,
655 dialogFormVisible: false, 748 dialogFormVisible: false,
656 countryOption: [], 749 countryOption: [],
@@ -673,6 +766,9 @@ @@ -673,6 +766,9 @@
673 'awbinfo.collected': [{required: true, message: '付款方式必选', trigger: 'change'}], 766 'awbinfo.collected': [{required: true, message: '付款方式必选', trigger: 'change'}],
674 goodsname: [{required: true, trigger: 'change', validator: validAlphabetsSpanceKey}], 767 goodsname: [{required: true, trigger: 'change', validator: validAlphabetsSpanceKey}],
675 ex5: [{required: true, message: '货物描述不能为空', trigger: 'blur'}], 768 ex5: [{required: true, message: '货物描述不能为空', trigger: 'blur'}],
  769 + reason:[{required: true, message: '修改原因不能为空', trigger: 'blur'}],
  770 + contactName:[{required: true, message: '修改操作人不能为空', trigger: 'blur'}],
  771 + contactTel:[{required: true, message: '修改操作人联系方式不能为空', trigger: 'blur'}],
676 'awbinfo.sairportid': [{required: true, message: '起始航站不能为空', trigger: 'change'}], 772 'awbinfo.sairportid': [{required: true, message: '起始航站不能为空', trigger: 'change'}],
677 'awbinfo.shprname': [{required: true, message: '发货人不能为空', trigger: 'change'}], 773 'awbinfo.shprname': [{required: true, message: '发货人不能为空', trigger: 'change'}],
678 'awbinfo.shprtel': [{required: true, message: '发货电话不能为空', trigger: 'change'}], 774 'awbinfo.shprtel': [{required: true, message: '发货电话不能为空', trigger: 'change'}],
@@ -703,6 +799,9 @@ @@ -703,6 +799,9 @@
703 uldNo: undefined, 799 uldNo: undefined,
704 status: undefined, 800 status: undefined,
705 ex5: undefined, 801 ex5: undefined,
  802 + reason: undefined,
  803 + contactName: undefined,
  804 + contactTel: undefined,
706 awbinfo: { 805 awbinfo: {
707 pcs: undefined, 806 pcs: undefined,
708 weight: undefined, 807 weight: undefined,
@@ -743,6 +842,23 @@ @@ -743,6 +842,23 @@
743 awbtype: undefined 842 awbtype: undefined
744 } 843 }
745 }, 844 },
  845 + respModel: {
  846 + uuid: undefined,
  847 + reason: undefined,
  848 + contactName: undefined,
  849 + contactTel: undefined,
  850 + content: '',
  851 + flightNo: undefined,
  852 + awba: undefined,
  853 + customCode: undefined,
  854 + flightDate: undefined,
  855 + awbh: ''
  856 + },
  857 + sendDeleteRules:{
  858 + reason:[{required:true,message:'删除原因不能为空',trigger:'blur'}],
  859 + contactName:[{required:true,message:'删除操作人不能为空',trigger:'blur'}],
  860 + contactTel:[{required:true,message:'操作人联系方式不能为空',trigger:'blur'}]
  861 + },
746 preData: [], 862 preData: [],
747 detailData: [] 863 detailData: []
748 } 864 }
@@ -757,17 +873,19 @@ @@ -757,17 +873,19 @@
757 }, 873 },
758 created() { 874 created() {
759 if (this.$route.params.flightData !== undefined) { 875 if (this.$route.params.flightData !== undefined) {
760 - this.listQuery.carrier = this.$route.params.flightData.flightno.substring(0, 2)  
761 - this.listQuery.flightNo = this.$route.params.flightData.flightno.substring(2)  
762 - this.listQuery.flightDate = this.$route.params.flightData.flightdate  
763 - this.listQuery.originStation = this.$route.params.flightData.originstation  
764 - this.listQuery.destinationStation = this.$route.params.flightData.destinationstation  
765 - this.listQuery.awba = this.$route.params.flightData.awba 876 + this.preQuery.carrier = this.$route.params.flightData.flightno.substring(0, 2)
  877 + this.preQuery.flightno = this.$route.params.flightData.flightno.substring(2)
  878 + this.preQuery.flightdate = this.$route.params.flightData.flightdate
  879 + this.preQuery.originstation = this.$route.params.flightData.originstation
  880 + this.preQuery.destinationstation = this.$route.params.flightData.destinationstation
  881 + if (this.$route.params.flightData.awba !== undefined && this.$route.params.flightData.awba !== '') {
  882 + this.preQuery.awba = this.$route.params.flightData.awba.substring(0, 3) + "-" + this.$route.params.flightData.awba.substring(3)
  883 + }
766 this.getList() 884 this.getList()
767 } 885 }
768 this.getCountryList() 886 this.getCountryList()
769 let username = JSON.parse(sessionStorage.getItem('user')).username 887 let username = JSON.parse(sessionStorage.getItem('user')).username
770 - if(username === 'admin'){ 888 + if (username === 'admin') {
771 this.isAdmin = true 889 this.isAdmin = true
772 } 890 }
773 }, 891 },
@@ -981,24 +1099,24 @@ @@ -981,24 +1099,24 @@
981 // >>>>>>>>>>>>>>>>获取list集合<<<<<<<<<<<<<<<<<< 1099 // >>>>>>>>>>>>>>>>获取list集合<<<<<<<<<<<<<<<<<<
982 getList() { 1100 getList() {
983 this.listLoading = true 1101 this.listLoading = true
984 - if (this.listQuery.awba !== undefined && this.listQuery.awba !== '') {  
985 - getMt2201ListForParam(this.listQuery).then(res => { 1102 + if (this.preQuery.awba !== undefined && this.preQuery.awba !== '') {
  1103 + getMt2201ListForParam(this.preQuery).then(res => {
986 this.preData = res.data.dataList 1104 this.preData = res.data.dataList
987 this.total = res.data.count 1105 this.total = res.data.count
988 if (res.data.count > 0) { 1106 if (res.data.count > 0) {
989 - this.listQuery.carrier = this.preData[0].carrier  
990 - this.listQuery.flightNo = this.preData[0].flightno  
991 - this.listQuery.flightDate = this.preData[0].flightdate  
992 - this.listQuery.originStation = this.preData[0].originstation  
993 - this.listQuery.destinationStation = this.preData[0].destinationstation  
994 - this.listQuery.customcode = this.preData[0].customcode 1107 + this.preQuery.carrier = this.preData[0].carrier
  1108 + this.preQuery.flightno = this.preData[0].flightno
  1109 + this.preQuery.flightdate = this.preData[0].flightdate
  1110 + this.preQuery.originstation = this.preData[0].originstation
  1111 + this.preQuery.destinationstation = this.preData[0].destinationstation
  1112 + this.preQuery.customcode = this.preData[0].customcode
995 } 1113 }
996 setTimeout(() => { 1114 setTimeout(() => {
997 this.listLoading = false 1115 this.listLoading = false
998 }, 1500) 1116 }, 1500)
999 }) 1117 })
1000 } else { 1118 } else {
1001 - getMt2201ListForParam(this.listQuery).then(res => { 1119 + getMt2201ListForParam(this.preQuery).then(res => {
1002 this.preData = res.data.dataList 1120 this.preData = res.data.dataList
1003 this.total = res.data.count 1121 this.total = res.data.count
1004 setTimeout(() => { 1122 setTimeout(() => {
@@ -1072,12 +1190,12 @@ @@ -1072,12 +1190,12 @@
1072 // >>>>>>>>>>>>>>>>新增主单<<<<<<<<<<<<<<<<<< 1190 // >>>>>>>>>>>>>>>>新增主单<<<<<<<<<<<<<<<<<<
1073 handleAddpreInfo() { 1191 handleAddpreInfo() {
1074 this.restModel() 1192 this.restModel()
1075 - this.preModel.carrier = this.listQuery.carrier  
1076 - this.preModel.flightno = this.listQuery.flightno  
1077 - this.preModel.flightdate = this.listQuery.flightdate  
1078 - this.preModel.originstation = this.listQuery.originstation  
1079 - this.preModel.destinationstation = this.listQuery.carrier  
1080 - this.preModel.customcode = this.listQuery.customcode 1193 + this.preModel.carrier = this.preQuery.carrier
  1194 + this.preModel.flightno = this.preQuery.flightno
  1195 + this.preModel.flightdate = this.preQuery.flightdate
  1196 + this.preModel.originstation = this.preQuery.originstation
  1197 + this.preModel.destinationstation = this.preQuery.carrier
  1198 + this.preModel.customcode = this.preQuery.customcode
1081 this.dialogStatus = 'create' 1199 this.dialogStatus = 'create'
1082 this.dialogFormVisible = true 1200 this.dialogFormVisible = true
1083 this.$nextTick(() => { 1201 this.$nextTick(() => {
@@ -1105,19 +1223,19 @@ @@ -1105,19 +1223,19 @@
1105 }, 1223 },
1106 // >>>>>>>>>>>>>>>>搜索<<<<<<<<<<<<<<<<<< 1224 // >>>>>>>>>>>>>>>>搜索<<<<<<<<<<<<<<<<<<
1107 handleSerach() { 1225 handleSerach() {
1108 - this.listQuery.carrier = undefined  
1109 - this.listQuery.flightno = undefined  
1110 - this.listQuery.originstation = undefined  
1111 - this.listQuery.flightdate = undefined  
1112 - this.listQuery.destinationstation = undefined 1226 + this.preQuery.flightno = undefined
  1227 + this.preQuery.carrier = undefined
  1228 + this.preQuery.originstation = undefined
  1229 + this.preQuery.flightdate = undefined
  1230 + this.preQuery.destinationstation = undefined
1113 this.getList() 1231 this.getList()
1114 }, 1232 },
1115 // >>>>>>>>>>>>>>>>收发明细<<<<<<<<<<<<<<<<<< 1233 // >>>>>>>>>>>>>>>>收发明细<<<<<<<<<<<<<<<<<<
1116 handleSend(row) { 1234 handleSend(row) {
1117 const resQuery = { 1235 const resQuery = {
1118 carrier: row.carrier, 1236 carrier: row.carrier,
1119 - flightNo: row.flightno,  
1120 - flightDate: row.flightdate, 1237 + flightno: row.flightno,
  1238 + flightdate: row.flightdate,
1121 awba: row.awba, 1239 awba: row.awba,
1122 awbh: row.awbh, 1240 awbh: row.awbh,
1123 messageType: 'MT2201' 1241 messageType: 'MT2201'
@@ -1128,8 +1246,26 @@ @@ -1128,8 +1246,26 @@
1128 }) 1246 })
1129 }, 1247 },
1130 // >>>>>>>>>>>>>>>>发送舱单报<<<<<<<<<<<<<<<<<< 1248 // >>>>>>>>>>>>>>>>发送舱单报<<<<<<<<<<<<<<<<<<
1131 - handleAwbSend() {  
1132 - 1249 + handleAwbSend(row) {
  1250 + delete row.parent
  1251 + delete row.children
  1252 + this.$confirm("是否发送", "确认消息", {
  1253 + distinguishCancelAndClose: true,
  1254 + confirmButtonText: '发送',
  1255 + cancelButtonText: '取消'
  1256 + }).then(() => {
  1257 + if (row.awbh === null) {
  1258 + row.awbh = ''
  1259 + }
  1260 + sendCreateMt2201(row).then(res => {
  1261 + if (res.data.count > 0) {
  1262 + Message.success(res.data.respMessage)
  1263 + this.getList()
  1264 + } else {
  1265 + Message.error(res.data.respMessage)
  1266 + }
  1267 + })
  1268 + })
1133 }, 1269 },
1134 // >>>>>>>>>>>>>>>>更新运单数据<<<<<<<<<<<<<<<<<< 1270 // >>>>>>>>>>>>>>>>更新运单数据<<<<<<<<<<<<<<<<<<
1135 handleEdit(row) { 1271 handleEdit(row) {
@@ -1158,14 +1294,96 @@ @@ -1158,14 +1294,96 @@
1158 }) 1294 })
1159 }, 1295 },
1160 // >>>>>>>>>>>>>>>>发送修改报<<<<<<<<<<<<<<<<<< 1296 // >>>>>>>>>>>>>>>>发送修改报<<<<<<<<<<<<<<<<<<
1161 - handleAwbEdit() {  
1162 - 1297 + handleAwbEdit(row) {
  1298 + delete row.parent
  1299 + delete row.children
  1300 + this.preModel = Object.assign({}, row)
  1301 + this.dialogStatus = 'sendUpdate'
  1302 + this.dialogFormVisible = true
  1303 + this.$nextTick(() => {
  1304 + this.$refs.preFormData.clearValidate()
  1305 + })
1163 }, 1306 },
1164 - // >>>>>>>>>>>>>>>>保存并发送<<<<<<<<<<<<<<<<<<  
1165 - handleSaveAndSend() { 1307 + sendUpdate(){
  1308 + this.respModel.reason = this.preModel.reason
  1309 + this.respModel.contactName = this.preModel.contactName
  1310 + this.respModel.contactTel = this.preModel.contactTel
  1311 + //
  1312 + delete this.preModel._expanded
  1313 + delete this.preModel._level
  1314 + delete this.preModel._marginLeft
  1315 + delete this.preModel._show
  1316 + delete this.preModel._width
1166 1317
  1318 + const reason = this.preModel.reason
  1319 + const contactName = this.preModel.contactName
  1320 + const contactTel = this.preModel.contactTel
  1321 +
  1322 + this.$refs.preFormData.validate(valid =>{
  1323 + if(valid){
  1324 + delete this.preModel.reason
  1325 + delete this.preModel.contactName
  1326 + delete this.preModel.contactTel
  1327 + const map = {
  1328 + 'mt2201': this.preModel,
  1329 + 'reason' : reason,
  1330 + 'contactName': contactName,
  1331 + 'contactTel': contactTel,
  1332 + }
  1333 + sendUpdateMt2201(map).then(res =>{
  1334 + if(res.data.count >0){
  1335 + Message.success(res.data.respMessage)
  1336 + this.getList()
  1337 + this.dialogFormVisible = false
  1338 + }else {
  1339 + Message.error(res.data.respMessage)
  1340 + }
  1341 + })
  1342 + }
  1343 + })
1167 }, 1344 },
  1345 +
1168 // >>>>>>>>>>>>>>>>发送删除报<<<<<<<<<<<<<<<<<< 1346 // >>>>>>>>>>>>>>>>发送删除报<<<<<<<<<<<<<<<<<<
  1347 + handleSendDelete(row) {
  1348 + this.respModel = {
  1349 + carrier: undefined,
  1350 + reason: undefined,
  1351 + contactName: undefined,
  1352 + contactTel: undefined,
  1353 + content: '',
  1354 + flightNo: undefined,
  1355 + awba: undefined,
  1356 + customCode: undefined,
  1357 + flightDate: undefined,
  1358 + awbh: ''
  1359 + }
  1360 + this.dialogDeleteVisble = true
  1361 + this.respModel.awba = row.awba
  1362 + this.respModel.flightNo = row.flightno
  1363 + this.respModel.customCode = row.customcode
  1364 + this.respModel.awbh = row.awbh
  1365 + this.respModel.flightDate = row.flightdate
  1366 + this.respModel.carrier = row.carrier
  1367 + this.$nextTick(()=>{
  1368 + this.$refs.sendDeleteForm.clearValidate()
  1369 + })
  1370 + },
  1371 + sendDelete() {
  1372 + this.$refs.sendDeleteForm.validate(valid =>{
  1373 + if(valid){
  1374 + sendDeleteMt2201(this.respModel).then(res => {
  1375 + if(res.data.count>0){
  1376 + Message.success(res.data.respMessage)
  1377 + this.dialogDeleteVisble = false
  1378 + this.getList()
  1379 + }else {
  1380 + Message.error(res.data.respMessage)
  1381 + }
  1382 + })
  1383 + }
  1384 + })
  1385 + },
  1386 + //>>>>>>>>>>>>>>>>删除运单<<<<<<<<<<<<<<<<<<
1169 handleAwbDelete(row) { 1387 handleAwbDelete(row) {
1170 delete row.parent 1388 delete row.parent
1171 delete row.children 1389 delete row.children
@@ -1199,27 +1417,28 @@ @@ -1199,27 +1417,28 @@
1199 }, 1417 },
1200 // >>>>>>>>>>>>>>>>更改运单状态<<<<<<<<<<<<<<<<<< 1418 // >>>>>>>>>>>>>>>>更改运单状态<<<<<<<<<<<<<<<<<<
1201 handleAwbStatus(row) { 1419 handleAwbStatus(row) {
1202 - delete row.parent  
1203 - delete row.children  
1204 this.$confirm("是否发送更改状态", "确认消息", { 1420 this.$confirm("是否发送更改状态", "确认消息", {
1205 distinguishCancelAndClose: true, 1421 distinguishCancelAndClose: true,
1206 confirmButtonText: '确认更改', 1422 confirmButtonText: '确认更改',
1207 cancelButtonText: '取消更改' 1423 cancelButtonText: '取消更改'
1208 }).then(() => { 1424 }).then(() => {
1209 - updateStatus(row).then(res => {  
1210 - if (res.data.count > 0) {  
1211 - this.$message({  
1212 - type: 'success',  
1213 - message: '当前运单状态已更改'  
1214 - })  
1215 - this.getList()  
1216 - } else {  
1217 - this.$message({  
1218 - type: 'error',  
1219 - message: '状态更改失败,请稍后重试'  
1220 - })  
1221 - }  
1222 - }) 1425 + if (row.status!==22){
  1426 + row.status =22;
  1427 + }
  1428 + // updateStatus(row).then(res => {
  1429 + // if (res.data.count > 0) {
  1430 + // this.$message({
  1431 + // type: 'success',
  1432 + // message: '当前运单状态已更改'
  1433 + // })
  1434 + // this.getList()
  1435 + // } else {
  1436 + // this.$message({
  1437 + // type: 'error',
  1438 + // message: '状态更改失败,请稍后重试'
  1439 + // })
  1440 + // }
  1441 + // })
1223 1442
1224 }).catch(action => { 1443 }).catch(action => {
1225 this.$message({ 1444 this.$message({
@@ -1246,14 +1465,14 @@ @@ -1246,14 +1465,14 @@
1246 this.preModel.awbinfo.sairportid = template.awbinfo.sairportid 1465 this.preModel.awbinfo.sairportid = template.awbinfo.sairportid
1247 this.preModel.awbinfo.eairportid = template.awbinfo.eairportid 1466 this.preModel.awbinfo.eairportid = template.awbinfo.eairportid
1248 this.preModel.awbinfo.ex5 = template.awbinfo.ex5 1467 this.preModel.awbinfo.ex5 = template.awbinfo.ex5
1249 - this.listQuery.awba = template.awba  
1250 - this.listQuery.flightDate = template.flightdate  
1251 - this.listQuery.flightNo = template.flightno  
1252 - this.listQuery.originStation = template.originstation  
1253 - this.listQuery.destinationStation = template.destinationstation  
1254 - this.listQuery.customcode = template.customcode  
1255 - this.listQuery.carrier = template.carrier  
1256 - getMt2201ListForParam(this.listQuery).then(res => { 1468 + this.preQuery.awba = template.awba
  1469 + this.preQuery.flightdate = template.flightdate
  1470 + this.preQuery.flightno = template.flightno
  1471 + this.preQuery.originstation = template.originstation
  1472 + this.preQuery.destinationstation = template.destinationstation
  1473 + this.preQuery.customcode = template.customcode
  1474 + this.preQuery.carrier = template.carrier
  1475 + getMt2201ListForParam(this.preQuery).then(res => {
1257 this.awbPiece = 0 1476 this.awbPiece = 0
1258 this.awbWeight = 0 1477 this.awbWeight = 0
1259 let residuePiece = 0 1478 let residuePiece = 0
@@ -1278,7 +1497,7 @@ @@ -1278,7 +1497,7 @@
1278 }) 1497 })
1279 }, 1498 },
1280 1499
1281 - //获取城市列表 1500 + //获取国家列表
1282 getCountryList() { 1501 getCountryList() {
1283 getCountry().then(res => { 1502 getCountry().then(res => {
1284 this.countryList = res.data.dataList 1503 this.countryList = res.data.dataList
@@ -1294,22 +1513,44 @@ @@ -1294,22 +1513,44 @@
1294 .indexOf(query.toUpperCase()) > -1 1513 .indexOf(query.toUpperCase()) > -1
1295 }) 1514 })
1296 }, 200) 1515 }, 200)
1297 - // if (query.length > 1) {  
1298 - // this.selectCountry.countryCode = query  
1299 - // getByCountryCode(this.selectCountry).then(res => {  
1300 - // this.shpCompnyList = res.data.dataList  
1301 - // this.shpCompnyTypeOption = this.shpCompnyList.map(item => {  
1302 - // console.log(item)  
1303 - // return {value: item.enterpriseCode, label: item.enterpriseCode}  
1304 - // })  
1305 - // })  
1306 - // }  
1307 } else { 1516 } else {
1308 this.countryOption = [] 1517 this.countryOption = []
1309 } 1518 }
  1519 + },
  1520 + remoteMethodAirport(query){
  1521 + this.airportCode = []
  1522 + if (query !== '') {
  1523 + this.airportLoading = true
  1524 + getAirportCode({airportid: query}).then(res => {
  1525 + if(res !== null){
  1526 + setTimeout(() => {
  1527 + this.airportLoading = false
  1528 + this.airportCode = res.data.data
  1529 + }, 200)
  1530 + }
  1531 + })
  1532 + } else {
  1533 + this.airportCode = []
  1534 + }
  1535 + },
1310 1536
1311 - 1537 + remoteMethodCustomCode(query){
  1538 + this.customCodeList = []
  1539 + if (query !== '') {
  1540 + this.customLoading = true
  1541 + getCustomCode({customcode: query}).then(res => {
  1542 + if(res !== null){
  1543 + setTimeout(() => {
  1544 + this.customLoading = false
  1545 + this.customCodeList = res.data.data
  1546 + }, 200)
  1547 + }
  1548 + })
  1549 + } else {
  1550 + this.airportCode = []
  1551 + }
1312 }, 1552 },
  1553 +
1313 handleAddpre() { 1554 handleAddpre() {
1314 const row = { 1555 const row = {
1315 'messageType': 'MT2201' 1556 'messageType': 'MT2201'
@@ -1318,7 +1559,8 @@ @@ -1318,7 +1559,8 @@
1318 }, 1559 },
1319 1560
1320 handelBackStep() { 1561 handelBackStep() {
1321 - this.$router.push({name: '出港航班信息', params: {scopeRow: this.preModel}}) 1562 + this.preQuery.messageType = 'MT2201'
  1563 + this.$router.push({name: '出港航班信息', params: {scopeRow: this.preQuery}})
1322 } 1564 }
1323 } 1565 }
1324 } 1566 }
@@ -32,7 +32,7 @@ @@ -32,7 +32,7 @@
32 <div class="grid-content"> 32 <div class="grid-content">
33 <el-col :span="4"> 33 <el-col :span="4">
34 <div class="grid-content"> 34 <div class="grid-content">
35 - <el-input v-model="tidyQuery.awba" placeholder="请输入主单号"></el-input> 35 + <el-input v-model="tidyQuery.awba" placeholder="请输入主单号" clearable></el-input>
36 </div> 36 </div>
37 </el-col> 37 </el-col>
38 <div class="grid-content el-btn"> 38 <div class="grid-content el-btn">
@@ -58,7 +58,7 @@ @@ -58,7 +58,7 @@
58 <span>{{scope.row.awba}}</span> 58 <span>{{scope.row.awba}}</span>
59 </template> 59 </template>
60 </el-table-column> 60 </el-table-column>
61 - <el-table-column label="单号" width="120" align="center"> 61 + <el-table-column label="单号" width="120" align="center">
62 <template slot-scope="scope"> 62 <template slot-scope="scope">
63 <span>{{scope.row.awbh}}</span> 63 <span>{{scope.row.awbh}}</span>
64 </template> 64 </template>
@@ -80,52 +80,55 @@ @@ -80,52 +80,55 @@
80 </el-table-column> 80 </el-table-column>
81 <el-table-column label="状态" width="100" align="center"> 81 <el-table-column label="状态" width="100" align="center">
82 <template slot-scope="scope"> 82 <template slot-scope="scope">
83 - <span v-if="scope.row.status ==='01'">未发送</span>  
84 - <span v-if="scope.row.status ==='02'">已发舱单报</span> 83 + <span v-if="scope.row.status ==='01'">接受申报</span>
  84 + <span v-if="scope.row.status ==='02'">待人工审核</span>
  85 + <span v-if="scope.row.status ==='03'">退单</span>
85 <span v-if="scope.row.status ==='05'">舱单报退单</span> 86 <span v-if="scope.row.status ==='05'">舱单报退单</span>
86 <span v-if="scope.row.status ==='06'">舱单转人工</span> 87 <span v-if="scope.row.status ==='06'">舱单转人工</span>
87 <span v-if="scope.row.status ==='07'">舱单报申报成功</span> 88 <span v-if="scope.row.status ==='07'">舱单报申报成功</span>
88 - <span v-if="scope.row.status ==='08'">已发舱单删除报</span>  
89 <span v-if="scope.row.status ==='09'">舱单删除报退单</span> 89 <span v-if="scope.row.status ==='09'">舱单删除报退单</span>
90 <span v-if="scope.row.status ==='10'">舱单删除报转人工</span> 90 <span v-if="scope.row.status ==='10'">舱单删除报转人工</span>
91 - <span v-if="scope.row.status ==='11'">舱单删除成功</span>  
92 - <span v-if="scope.row.status ==='12'">已发舱单修改报</span>  
93 - <span v-if="scope.row.status ==='13'">舱单修改报退单</span> 91 + <span v-if="scope.row.status ==='11'">放行</span>
  92 + <span v-if="scope.row.status ==='12'">拒装</span>
  93 + <span v-if="scope.row.status ==='13'">禁卸</span>
94 <span v-if="scope.row.status ==='14'">舱单修改报转人工</span> 94 <span v-if="scope.row.status ==='14'">舱单修改报转人工</span>
95 <span v-if="scope.row.status ==='15'">舱单修改报成功</span> 95 <span v-if="scope.row.status ==='15'">舱单修改报成功</span>
96 <span v-if="scope.row.status ==='16'">海关已存在</span> 96 <span v-if="scope.row.status ==='16'">海关已存在</span>
  97 + <span v-if="scope.row.status ==='21'">可自动发送</span>
  98 + <span v-if="scope.row.status ==='22'">未发送</span>
  99 + <span v-if="scope.row.status ==='23'">已发送新增报</span>
  100 + <span v-if="scope.row.status ==='24'">已发送删除报</span>
  101 + <span v-if="scope.row.status ==='25'">已发送修改报</span>
97 </template> 102 </template>
98 </el-table-column> 103 </el-table-column>
99 - <el-table-column prop="receipt" label="回执信息" width="180" align="center"> 104 + <el-table-column label="回执信息" show-overflow-tooltip width="300" align="center">
100 <template slot-scope="scope"> 105 <template slot-scope="scope">
101 <span>{{scope.row.ext5}}</span> 106 <span>{{scope.row.ext5}}</span>
102 </template> 107 </template>
103 </el-table-column> 108 </el-table-column>
104 - <el-table-column prop="operation" label="操作" show-overflow-tooltip align="center"> 109 + <el-table-column prop="operation" label="操作" align="center">
105 <template slot-scope="scope"> 110 <template slot-scope="scope">
106 -  
107 <el-button size="mini" @click="handleSend(scope.row)">收发明细</el-button> 111 <el-button size="mini" @click="handleSend(scope.row)">收发明细</el-button>
108 <el-button size="mini" type="success" @click="handleEdit(scope.row)">编辑</el-button> 112 <el-button size="mini" type="success" @click="handleEdit(scope.row)">编辑</el-button>
109 <el-button size="mini" type="primary" @click="handleAwbSend(scope.row)" 113 <el-button size="mini" type="primary" @click="handleAwbSend(scope.row)"
110 - :disabled="scope.row.status !=='00'">发舱单报  
111 - </el-button> 114 + :disabled="scope.row.status ==='23'">发舱单报</el-button>
112 <el-button size="mini" type="danger" v-if="isAdmin" @click="handleAwbDelete(scope.row)">删除运单</el-button> 115 <el-button size="mini" type="danger" v-if="isAdmin" @click="handleAwbDelete(scope.row)">删除运单</el-button>
113 - 116 + <p></p>
114 <el-button size="mini" type="warning" @click="handleAwbStatus(scope.row)" 117 <el-button size="mini" type="warning" @click="handleAwbStatus(scope.row)"
115 - :disabled="scope.row.status ==='00'">更改状态  
116 - </el-button> 118 + :disabled="scope.row.status ==='22'">更改状态</el-button>
117 <el-button size="mini" type="primary" v-if="scope.row.awbh ===null" 119 <el-button size="mini" type="primary" v-if="scope.row.awbh ===null"
118 - @click="handleAddAwbh(scope.row)">新增分单  
119 - </el-button> 120 + @click="handleAddAwbh(scope.row)">新增分单</el-button>
  121 + <el-button size="mini" type="danger" @click="handleSendDelete(scope.row)"
  122 + :disabled="scope.row.status ==='24'">发删除报</el-button>
120 </template> 123 </template>
121 </el-table-column> 124 </el-table-column>
122 </tree-table> 125 </tree-table>
123 <div class="btnFoot"> 126 <div class="btnFoot">
124 <el-row> 127 <el-row>
125 - <el-button type="primary" size="mini" v-if="tidyModel.flightno !== undefined || tidyData.length> 0" 128 + <el-button type="primary" size="mini" v-if="tidyQuery.flightno !== undefined || tidyData.length> 0"
126 @click="handelAddTidyInfo">新增出港理货 129 @click="handelAddTidyInfo">新增出港理货
127 </el-button> 130 </el-button>
128 - <el-button type="primary" size="mini" v-if="tidyModel.flightno !== undefined || tidyData.length> 0" 131 + <el-button type="primary" size="mini" v-if="tidyQuery.flightno !== undefined || tidyData.length> 0"
129 @click="handelBackStep">返回 132 @click="handelBackStep">返回
130 </el-button> 133 </el-button>
131 </el-row> 134 </el-row>
@@ -174,14 +177,29 @@ @@ -174,14 +177,29 @@
174 <el-row> 177 <el-row>
175 <el-col :span="7.5"> 178 <el-col :span="7.5">
176 <el-form-item label="起始站" prop="originstation"> 179 <el-form-item label="起始站" prop="originstation">
177 - <el-input v-model="originstation"  
178 - :disabled="dialogStatus === 'update'"></el-input> 180 +
  181 + <el-select filterable clearable placeholder="请选择起始站" :remote-method="remoteMethodAirport"
  182 + allow-create v-model="originstation" remote>
  183 + <el-option v-for="item in airportCode"
  184 + :key="item.airportid" :label="item.airportid"
  185 + :value="item.airportid" :disabled="dialogStatus === 'update'">
  186 + <span style="float: left">{{ item.airportdescchn }}</span>
  187 + <span style="float: right; color: #8492a6; font-size: 13px">{{ item.airportid }}</span>
  188 + </el-option>
  189 + </el-select>
179 </el-form-item> 190 </el-form-item>
180 </el-col> 191 </el-col>
181 <el-col :span="7.5"> 192 <el-col :span="7.5">
182 <el-form-item label="目的站" prop="destinationstation"> 193 <el-form-item label="目的站" prop="destinationstation">
183 - <el-input v-model="destinationstation"  
184 - :disabled="dialogStatus === 'update'"></el-input> 194 + <el-select filterable clearable placeholder="请选择起始站" :remote-method="remoteMethodAirport"
  195 + allow-create v-model="destinationstation" remote>
  196 + <el-option v-for="item in airportCode"
  197 + :key="item.airportid" :label="item.airportid"
  198 + :value="item.airportid" :disabled="dialogStatus === 'update'">
  199 + <span style="float: left">{{ item.airportdescchn }}</span>
  200 + <span style="float: right; color: #8492a6; font-size: 13px">{{ item.airportid }}</span>
  201 + </el-option>
  202 + </el-select>
185 </el-form-item> 203 </el-form-item>
186 </el-col> 204 </el-col>
187 205
@@ -238,9 +256,14 @@ @@ -238,9 +256,14 @@
238 </el-col> 256 </el-col>
239 <el-col :span="7.5"> 257 <el-col :span="7.5">
240 <el-form-item label="海关关区" prop="customcode"> 258 <el-form-item label="海关关区" prop="customcode">
241 - <el-select v-model="tidyModel.customcode">  
242 - <el-option v-for="item in customcodeList " :key="item" :label="item"  
243 - :value="item"></el-option> 259 + <el-select v-model="tidyModel.customcode" placeholder="请选择关区代码"
  260 + filterable clearable remote :remote-method="remoteMethodCustomCode" :loading="customLoading"
  261 + :disabled="dialogStatus === 'addAwbh'">
  262 + <el-option v-for="item in customCodeList" :key="item.customcode" :label="item.customcode"
  263 + :value="item.customcode">
  264 + <span style="float: left">{{ item.customcode }}</span>
  265 + <span style="float: right; color: #8492a6; font-size: 13px">{{ item.customname }}</span>
  266 + </el-option>
244 </el-select> 267 </el-select>
245 </el-form-item> 268 </el-form-item>
246 </el-col> 269 </el-col>
@@ -249,12 +272,11 @@ @@ -249,12 +272,11 @@
249 <div slot="footer" class="dialog-footer"> 272 <div slot="footer" class="dialog-footer">
250 <el-button @click="dialogFormVisible = false">取消</el-button> 273 <el-button @click="dialogFormVisible = false">取消</el-button>
251 <el-button type="primary" @click="dialogStatus==='create'?createData():updateData()">保存</el-button> 274 <el-button type="primary" @click="dialogStatus==='create'?createData():updateData()">保存</el-button>
252 - <el-button type="success" @click="handleSaveAndSend">保存并发送</el-button>  
253 </div> 275 </div>
254 </el-dialog> 276 </el-dialog>
255 <el-dialog title="收发明细" :visible.sync="dialogTableVisible"> 277 <el-dialog title="收发明细" :visible.sync="dialogTableVisible">
256 <el-table :data="detailData" border> 278 <el-table :data="detailData" border>
257 - <el-table-column label="操作时间" width="150"> 279 + <el-table-column label="操作时间" width="180">
258 <template slot-scope="scope"> 280 <template slot-scope="scope">
259 {{scope.row.busdate}} 281 {{scope.row.busdate}}
260 </template> 282 </template>
@@ -291,7 +313,27 @@ @@ -291,7 +313,27 @@
291 </el-table-column> 313 </el-table-column>
292 </el-table> 314 </el-table>
293 </el-dialog> 315 </el-dialog>
294 - 316 + <el-dialog title="删除原因" :visible.sync="dialogDeleteVisible" width="30%">
  317 + <el-form ref="tidyDeleteForm" :model="respModel" :rules="tidyDeleteRules"
  318 + label-width="120px" style="margin-right: 50px">
  319 + <el-form-item label="删除原因" prop="reason">
  320 + <el-input v-model="respModel.reason" placeholder="删除原因"></el-input>
  321 + </el-form-item>
  322 + <el-form-item label="删除操作人" prop="contactName">
  323 + <el-input v-model="respModel.contactName" placeholder="操作人姓名"></el-input>
  324 + </el-form-item>
  325 + <el-form-item label="操作人Tel" prop="contactTel">
  326 + <el-input v-model="respModel.contactTel" placeholder="删除操作人联系方式"></el-input>
  327 + </el-form-item>
  328 + <el-form-item label="备注">
  329 + <el-input v-model="respModel.content" type="textarea"></el-input>
  330 + </el-form-item>
  331 + </el-form>
  332 + <div slot="footer" class="dialog-footer">
  333 + <el-button @click="dialogDeleteVisible = false">取消</el-button>
  334 + <el-button type="primary" @click="sendTidyDelete()">发送</el-button>
  335 + </div>
  336 + </el-dialog>
295 </div> 337 </div>
296 </template> 338 </template>
297 <script> 339 <script>
@@ -299,10 +341,14 @@ @@ -299,10 +341,14 @@
299 import treeToArray from '@/utils/customEval' 341 import treeToArray from '@/utils/customEval'
300 import Pagination from '@/components/Pagination' 342 import Pagination from '@/components/Pagination'
301 343
302 - import {getMt520XListForParam, deleteByIsDelete, updateStatus, updateMt520X, addMt520X} from '@/api/exitTidy' 344 + import {
  345 + getMt520XListForParam, deleteByIsDelete,
  346 + updateStatus, updateMt520X, addMt520X,
  347 + sendCreateMt5202,sendRemoveMt5202 } from '@/api/exitTidy'
303 import {Message} from "element-ui"; 348 import {Message} from "element-ui";
304 import {getResponseForParam} from '@/api/responseDetail' 349 import {getResponseForParam} from '@/api/responseDetail'
305 import {validAwb, validAlphabets, validAlphabetsAndNum, validAlphabetsAndSpanceKey,validatorNum} from "@/utils/validate" 350 import {validAwb, validAlphabets, validAlphabetsAndNum, validAlphabetsAndSpanceKey,validatorNum} from "@/utils/validate"
  351 + import {getCustomCode,getAirportCode} from "@/api/country";
306 352
307 export default { 353 export default {
308 name: "ExitTidy", 354 name: "ExitTidy",
@@ -348,7 +394,8 @@ @@ -348,7 +394,8 @@
348 create: '添加出港理货', 394 create: '添加出港理货',
349 addAwbh: '添加分单理货' 395 addAwbh: '添加分单理货'
350 }, 396 },
351 - customcodeList: [4604, 4620], 397 + customCodeList: [],
  398 + airportCode:[],
352 tidyQuery: { 399 tidyQuery: {
353 pageSize: 1, 400 pageSize: 1,
354 limitSize: 100, 401 limitSize: 100,
@@ -358,7 +405,8 @@ @@ -358,7 +405,8 @@
358 flightdate: undefined, 405 flightdate: undefined,
359 originstation: undefined, 406 originstation: undefined,
360 destinationstation: undefined, 407 destinationstation: undefined,
361 - customcode: undefined 408 + customcode: undefined,
  409 + messageType: undefined
362 }, 410 },
363 tidyRoles: { 411 tidyRoles: {
364 awba: [{required: true, trigger: 'blur', validator: validatorAwb}], 412 awba: [{required: true, trigger: 'blur', validator: validatorAwb}],
@@ -374,9 +422,11 @@ @@ -374,9 +422,11 @@
374 tidyData: [], 422 tidyData: [],
375 detailData: [], 423 detailData: [],
376 dialogTableVisible: false, 424 dialogTableVisible: false,
  425 + dialogDeleteVisible: false,
377 dialogStatus: undefined, 426 dialogStatus: undefined,
378 disabledStatus: false, 427 disabledStatus: false,
379 listLoading: false, 428 listLoading: false,
  429 + customLoading:false,
380 dialogFormVisible: false, 430 dialogFormVisible: false,
381 tidyModel: { 431 tidyModel: {
382 carrier: undefined, 432 carrier: undefined,
@@ -396,7 +446,25 @@ @@ -396,7 +446,25 @@
396 awbpiece: undefined, 446 awbpiece: undefined,
397 awbweight: undefined, 447 awbweight: undefined,
398 rcfdep: 'MT5202', 448 rcfdep: 'MT5202',
399 - } 449 + },
  450 + respModel : {
  451 + uuid: undefined,
  452 + reason: undefined,
  453 + contactName: undefined,
  454 + contactTel: undefined,
  455 + content: '',
  456 + flightNo: undefined,
  457 + awba: undefined,
  458 + customCode: undefined,
  459 + flightDate: undefined,
  460 + awbh: undefined,
  461 + rcfdep: 'MT5202',
  462 + },
  463 + tidyDeleteRules: {
  464 + reason: [{required: true, message: '删除原因不能为空', trigger: 'blur'}],
  465 + contactName: [{required: true, message: '删除操作人不能为空', trigger: 'blur'}],
  466 + contactTel: [{required: true, message: '操作人联系方式不能为空', trigger: 'blur'}]
  467 + },
400 } 468 }
401 }, 469 },
402 created() { 470 created() {
@@ -489,7 +557,7 @@ @@ -489,7 +557,7 @@
489 getList() { 557 getList() {
490 this.listLoading = true 558 this.listLoading = true
491 //根据是否有主单号 来给查询条件赋值 559 //根据是否有主单号 来给查询条件赋值
492 - if (this.tidyQuery.awba != undefined && this.tidyQuery.awba != '') { 560 + if (this.tidyQuery.awba !== undefined && this.tidyQuery.awba !== '') {
493 getMt520XListForParam(this.tidyQuery).then(res => { 561 getMt520XListForParam(this.tidyQuery).then(res => {
494 this.tidyData = res.data.dataList 562 this.tidyData = res.data.dataList
495 this.total = res.data.count 563 this.total = res.data.count
@@ -547,7 +615,26 @@ @@ -547,7 +615,26 @@
547 615
548 //发送舱单报 616 //发送舱单报
549 handleAwbSend(row) { 617 handleAwbSend(row) {
550 - 618 + delete row.children
  619 + delete row.parent
  620 + this.$confirm("是否发送", "确认消息", {
  621 + distinguishCancelAndClose: true,
  622 + confirmButtonText: '发送',
  623 + cancelButtonText: '取消'
  624 + }).then(() => {
  625 + delete row.messageType
  626 + console.log(row)
  627 + sendCreateMt5202(row).then(res => {
  628 + if (res.data.count > 0) {
  629 + Message.success(res.data.respMessage)
  630 + this.getList()
  631 + }else {
  632 + Message.error(res.data.respMessage)
  633 + }
  634 + })
  635 + }).catch(error =>{
  636 + Message.error(error.message)
  637 + })
551 }, 638 },
552 //新增分单理货 639 //新增分单理货
553 handleAddAwbh(row) { 640 handleAddAwbh(row) {
@@ -564,6 +651,52 @@ @@ -564,6 +651,52 @@
564 this.$refs.tidyFormData.clearValidate() 651 this.$refs.tidyFormData.clearValidate()
565 }) 652 })
566 }, 653 },
  654 + // 发删除报
  655 + handleSendDelete(row){
  656 + this.respModel = {
  657 + carrier: undefined,
  658 + reason: undefined,
  659 + contactName: undefined,
  660 + contactTel: undefined,
  661 + content: '',
  662 + flightNo: undefined,
  663 + awba: undefined,
  664 + customCode: undefined,
  665 + flightDate: undefined,
  666 + awbh: undefined,
  667 + rcfdep: 'MT5202',
  668 + }
  669 + this.dialogDeleteVisible = true
  670 + this.respModel.carrier = row.carrier
  671 + this.respModel.flightNo = row.flightno
  672 + this.respModel.awba = row.awba
  673 + this.respModel.customCode = row.customcode
  674 + this.respModel.flightDate = row.flightdate
  675 + if(row.awbh === null){
  676 + this.respModel.awbh = ''
  677 + }else {
  678 + this.respModel.awbh = row.awbh
  679 + }
  680 + this.$nextTick(() => {
  681 + this.$refs.tidyDeleteForm.clearValidate()
  682 + })
  683 + },
  684 + sendTidyDelete(){
  685 + this.$refs.tidyDeleteForm.validate(valid =>{
  686 + if(valid){
  687 + sendRemoveMt5202(this.respModel).then(res =>{
  688 + if(res.data.count >0){
  689 + Message.success(res.data.respMessage)
  690 + this.dialogDeleteVisible = false
  691 + this.getList()
  692 + }else {
  693 + Message.error(res.data.respMessage)
  694 + }
  695 + })
  696 + }
  697 + })
  698 + },
  699 +
567 // 删除当前运单 700 // 删除当前运单
568 handleAwbDelete(row) { 701 handleAwbDelete(row) {
569 delete row.parent 702 delete row.parent
@@ -575,16 +708,10 @@ @@ -575,16 +708,10 @@
575 }).then(() => { 708 }).then(() => {
576 deleteByIsDelete(row).then(res => { 709 deleteByIsDelete(row).then(res => {
577 if (res.data.count > 0) { 710 if (res.data.count > 0) {
578 - this.$message({  
579 - type: 'success',  
580 - message: '删除成功'  
581 - }) 711 + Message.success("删除成功")
582 this.getList() 712 this.getList()
583 } else { 713 } else {
584 - this.$message({  
585 - type: 'error',  
586 - message: '删除异常,请稍后重试'  
587 - }) 714 + Message.success("删除异常,请稍后重试")
588 } 715 }
589 }) 716 })
590 }).catch(action => { 717 }).catch(action => {
@@ -599,27 +726,23 @@ @@ -599,27 +726,23 @@
599 }, 726 },
600 // 更新运单为可发送状态 727 // 更新运单为可发送状态
601 handleAwbStatus(row) { 728 handleAwbStatus(row) {
602 - delete row.parent  
603 - delete row.children 729 +
604 this.$confirm("是否发送更改状态", "确认消息", { 730 this.$confirm("是否发送更改状态", "确认消息", {
605 distinguishCancelAndClose: true, 731 distinguishCancelAndClose: true,
606 confirmButtonText: '确认更改', 732 confirmButtonText: '确认更改',
607 cancelButtonText: '取消更改' 733 cancelButtonText: '取消更改'
608 }).then(() => { 734 }).then(() => {
609 - updateStatus(row).then(res => {  
610 - if (res.data.count > 0) {  
611 - this.$message({  
612 - type: 'success',  
613 - message: '当前运单状态已更改'  
614 - })  
615 - this.getList()  
616 - } else {  
617 - this.$message({  
618 - type: 'error',  
619 - message: '更新失败,请稍后重试'  
620 - })  
621 - }  
622 - }) 735 + if (row.status!==22){
  736 + row.status =22;
  737 + }
  738 + // updateStatus(row).then(res => {
  739 + // if (res.data.count > 0) {
  740 + // Message.success(res.data.respMessage)
  741 + // this.getList()
  742 + // } else {
  743 + // Message.error(res.data.respMessage)
  744 + // }
  745 + // })
623 }).catch(action => { 746 }).catch(action => {
624 this.$message({ 747 this.$message({
625 type: 'info', 748 type: 'info',
@@ -712,20 +835,51 @@ @@ -712,20 +835,51 @@
712 } 835 }
713 }) 836 })
714 }, 837 },
715 - // 保存并发送  
716 - handleSaveAndSend() {  
717 - 838 + //获取机场三字码
  839 + remoteMethodAirport(query){
  840 + this.airportCode = []
  841 + if (query !== '') {
  842 + this.listLoading = true
  843 + getAirportCode({airportid: query}).then(res => {
  844 + if(res !== null){
  845 + setTimeout(() => {
  846 + this.listLoading = false
  847 + this.airportCode = res.data.data
  848 + }, 200)
  849 + }
  850 + })
  851 + } else {
  852 + this.airportCode = []
  853 + }
  854 + },
  855 + //关区代码
  856 + remoteMethodCustomCode(query){
  857 + this.customCodeList = []
  858 + if (query !== '') {
  859 + this.customLoading = true
  860 + getCustomCode({customcode: query}).then(res => {
  861 + if(res !== null){
  862 + setTimeout(() => {
  863 + this.customLoading = false
  864 + this.customCodeList = res.data.data
  865 + }, 200)
  866 + }
  867 + })
  868 + } else {
  869 + this.airportCode = []
  870 + }
718 }, 871 },
719 // 新增理货弹框 872 // 新增理货弹框
720 handleAddTidy() { 873 handleAddTidy() {
721 - const row = {  
722 - 'messageType': 'MT5201' 874 + const query = {
  875 + 'messageType': 'MT5202'
723 } 876 }
724 - this.$router.push({name: '出港航班信息', params: {scopeRow: row}}) 877 + this.$router.push({name: '出港航班信息', params: {scopeRow: query}})
725 }, 878 },
726 // 返回 879 // 返回
727 handelBackStep() { 880 handelBackStep() {
728 - this.$router.push({name: '出港航班信息', params: {scopeRow: this.tidyModel}}) 881 + this.tidyQuery.messageType = 'MT5202'
  882 + this.$router.push({name: '出港航班信息', params: {scopeRow: this.tidyQuery}})
729 } 883 }
730 } 884 }
731 } 885 }