作者 zhangFan

添加验证js,修改进港原始界面

@@ -36,6 +36,38 @@ export function validAlphabets(str) { @@ -36,6 +36,38 @@ export function validAlphabets(str) {
36 } 36 }
37 37
38 /** 38 /**
  39 + * 航班校验
  40 + */
  41 +export function validFlightNo(str) {
  42 + const reg = /^[A-Z0-9]{6,7}$/
  43 + if(!reg.test(str)){
  44 + return false
  45 + }
  46 + const flightNoPre = /^[A-Z]+$/
  47 + if(!flightNoPre.test(str.substring(0,2))){
  48 + return false
  49 + } else {
  50 + return true
  51 + }
  52 +}
  53 +
  54 +/**
  55 + * 主单校验
  56 + */
  57 +export function validAwb(str) {
  58 + const reg = /^[0-9\-]{12}$/
  59 + if(!reg.test(str)){
  60 + return false
  61 + }
  62 + const result = str.split("-")[1]
  63 + const num = (result.substring(0,7)) % 7
  64 + if(num === eval(str.substring(11)) ){
  65 + return true
  66 + } else {
  67 + return false
  68 + }
  69 +}
  70 +/**
39 * validate email 71 * validate email
40 * @param email 72 * @param email
41 * @returns {boolean} 73 * @returns {boolean}
@@ -10,14 +10,14 @@ @@ -10,14 +10,14 @@
10 <el-select v-model="listQuery.customcode" class="filter-item" placeholder="请选择关区代码"> 10 <el-select v-model="listQuery.customcode" class="filter-item" placeholder="请选择关区代码">
11 <el-option v-for="item in manifestCustoms" :key="item" :label="item" :value="item"></el-option> 11 <el-option v-for="item in manifestCustoms" :key="item" :label="item" :value="item"></el-option>
12 </el-select> 12 </el-select>
13 - <el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="handleFilter">{{ 13 + <el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="handleSearch">{{
14 $t('table.search') }} 14 $t('table.search') }}
15 </el-button> 15 </el-button>
16 <el-button class="filter-item" style="margin-left: 10px;" type="primary" icon="el-icon-edit" 16 <el-button class="filter-item" style="margin-left: 10px;" type="primary" icon="el-icon-edit"
17 @click="handleCreate">{{ $t('table.add') }} 17 @click="handleCreate">{{ $t('table.add') }}
18 </el-button> 18 </el-button>
19 <el-button class="filter-item" style="margin-left: 10px;" type="primary" icon="el-icon-message" 19 <el-button class="filter-item" style="margin-left: 10px;" type="primary" icon="el-icon-message"
20 - @click="handleCreate">批量发送 20 + @click="handleDelList">批量发送
21 </el-button> 21 </el-button>
22 </div> 22 </div>
23 <tree-table :data="orgData" :eval-func="func" :eval-args="args" :expand-all="expandAll" stripe 23 <tree-table :data="orgData" :eval-func="func" :eval-args="args" :expand-all="expandAll" stripe
@@ -67,7 +67,7 @@ @@ -67,7 +67,7 @@
67 <!--<el-tag :type="scope.row.status | statusFilter">{{ scope.row.status }}</el-tag>--> 67 <!--<el-tag :type="scope.row.status | statusFilter">{{ scope.row.status }}</el-tag>-->
68 <!--</template>--> 68 <!--</template>-->
69 <!--</el-table-column>--> 69 <!--</el-table-column>-->
70 - <el-table-column label="回执内容" width="300px" align="center"> 70 + <el-table-column label="回执内容" align="center">
71 <template slot-scope="scope"> 71 <template slot-scope="scope">
72 <span>{{ scope.row.customText }}</span> 72 <span>{{ scope.row.customText }}</span>
73 <!--<div>--> 73 <!--<div>-->
@@ -75,27 +75,14 @@ @@ -75,27 +75,14 @@
75 <!--</div>--> 75 <!--</div>-->
76 </template> 76 </template>
77 </el-table-column> 77 </el-table-column>
78 - <el-table-column :label="$t('table.actions')" align="center"> 78 + <el-table-column :label="$t('table.actions')" width="500px" align="center">
79 <template slot-scope="scope"> 79 <template slot-scope="scope">
80 - <el-button type="primary" size="mini" @click="handleUpdate(scope.row)">快速编辑</el-button>  
81 - <el-button v-if="scope.row.status!='41301'" size="mini" type="success"  
82 - @click="handleModifyStatus(scope.row,'41301')">{{ $t('table.publish') }}  
83 - </el-button>  
84 - <el-button v-if="scope.row.status!='10002'" size="mini"  
85 - @click="handleModifyStatus(scope.row,'10002')">客服反馈  
86 - </el-button>  
87 - <el-button v-if="scope.row.status=='10002'" size="mini" type="danger"  
88 - @click="handleModifyStatus(scope.row,'deleted')">{{ $t('table.delete') }}  
89 - </el-button>  
90 - <el-switch  
91 - v-model="scope.row.resend"  
92 - @change="handleSwitch(scope.row)"  
93 - active-color="#13ce66"  
94 - inactive-color="#ff4949"  
95 - :key="scope.row.id"  
96 - active-text="可发"  
97 - inactive-text="禁发">  
98 - </el-switch> 80 + <el-button type="primary" size="mini" @click="handleUpdate(scope.row)">编辑</el-button>
  81 + <el-button size="mini" type="success" @click="handleSend(scope.row)">发送</el-button>
  82 + <el-button size="mini" @click="handleFeedBack(scope.row)">客服反馈</el-button>
  83 + <el-button size="mini" type="danger" @click="handleDel(scope.$index,scope.row)">删除</el-button>
  84 + <el-button size="mini" type="warning" @click="handleSwitch(scope.row)">更改状态</el-button>
  85 + <el-button size="mini" type="primary" v-if="scope.row.awbh ===null" @click="handleAddAwbh(scope.row)">新增分单</el-button>
99 </template> 86 </template>
100 </el-table-column> 87 </el-table-column>
101 </tree-table> 88 </tree-table>
@@ -114,52 +101,27 @@ @@ -114,52 +101,27 @@
114 <el-row> 101 <el-row>
115 <el-col :span="10"> 102 <el-col :span="10">
116 <el-form-item label="航班号" prop="flightno"> 103 <el-form-item label="航班号" prop="flightno">
117 - <div v-if="dialogStatus === 'update'">  
118 - <el-input disabled="" v-model="flightno"/>  
119 - </div>  
120 - <div v-else>  
121 - <el-input v-model="flightno"/>  
122 - </div>  
123 - 104 + <el-input :disabled="dialogStatus !== 'create'" v-model="flightno"/>
124 </el-form-item> 105 </el-form-item>
125 </el-col> 106 </el-col>
126 <el-col :span="10"> 107 <el-col :span="10">
127 <el-form-item label="航班日期" prop="flightdate"> 108 <el-form-item label="航班日期" prop="flightdate">
128 - <div v-if="dialogStatus === 'update'">  
129 - <el-date-picker disabled="" :picker-options="pickerOptions"  
130 - v-model="temp.flightdate" align="right" 109 + <el-date-picker :disabled="dialogStatus !== 'create'" :picker-options="pickerOptions"
131 value-format="yyyy-MM-dd" 110 value-format="yyyy-MM-dd"
  111 + v-model="temp.flightdate" align="right"
132 type="date" placeholder="请输入航班日期" style="width: 87%"/> 112 type="date" placeholder="请输入航班日期" style="width: 87%"/>
133 - </div>  
134 - <div v-else>  
135 - <el-date-picker :picker-options="pickerOptions" v-model="temp.flightdate"  
136 - align="right" value-format="yyyy-MM-dd"  
137 - type="date" placeholder="请输入航班日期" style="width: 87%"/>  
138 - </div>  
139 </el-form-item> 113 </el-form-item>
140 </el-col> 114 </el-col>
141 </el-row> 115 </el-row>
142 <el-row> 116 <el-row>
143 <el-col :span="10"> 117 <el-col :span="10">
144 - <div v-if="dialogStatus === 'update'">  
145 <el-form-item label="起始站" prop="originstation"> 118 <el-form-item label="起始站" prop="originstation">
146 - <el-input disabled="" v-model="originstation"/> 119 + <el-input :disabled="dialogStatus !== 'create'" v-model="originstation"/>
147 </el-form-item> 120 </el-form-item>
148 - </div>  
149 - <div v-else>  
150 - <el-form-item label="起始站" prop="originstation">  
151 - <el-input v-model="originstation"/>  
152 - </el-form-item>  
153 - </div>  
154 </el-col> 121 </el-col>
155 <el-col :span="10"> 122 <el-col :span="10">
156 <el-form-item label="目的站" prop="destinationstation"> 123 <el-form-item label="目的站" prop="destinationstation">
157 - <div v-if="dialogStatus === 'update'">  
158 - <el-input disabled="" v-model="destinationstation"/>  
159 - </div>  
160 - <div v-else prop="destinationstation">  
161 - <el-input v-model="destinationstation"/>  
162 - </div> 124 + <el-input :disabled="dialogStatus !== 'create'" v-model="destinationstation"/>
163 </el-form-item> 125 </el-form-item>
164 </el-col> 126 </el-col>
165 </el-row> 127 </el-row>
@@ -168,8 +130,10 @@ @@ -168,8 +130,10 @@
168 <el-form-item label="是否分批" prop="splitcode"> 130 <el-form-item label="是否分批" prop="splitcode">
169 <el-select v-model="temp.splitcode" class="filter-item" placeholder="请选择是否分批" 131 <el-select v-model="temp.splitcode" class="filter-item" placeholder="请选择是否分批"
170 style="width: 93%"> 132 style="width: 93%">
171 - <el-option v-for="item in splitcodes" :key="item" :label="item"  
172 - :value="item"></el-option> 133 + <el-option v-for="item in splitcodes" :key="item.value" :label="item.value"
  134 + :value="item.value">
  135 + <span>{{item.label}}</span>
  136 + </el-option>
173 </el-select> 137 </el-select>
174 </el-form-item> 138 </el-form-item>
175 </el-col> 139 </el-col>
@@ -189,51 +153,52 @@ @@ -189,51 +153,52 @@
189 </el-form-item> 153 </el-form-item>
190 </el-col> 154 </el-col>
191 <el-col :span="10"> 155 <el-col :span="10">
192 - <el-form-item label="目的地" prop="awbinfo.eairportid">  
193 - <el-input v-model="eairportid"/> 156 + <el-form-item label="目的地" prop="destinationstation">
  157 + <el-input v-model="destinationstation"/>
194 </el-form-item> 158 </el-form-item>
195 </el-col> 159 </el-col>
196 160
197 </el-row> 161 </el-row>
198 <el-row> 162 <el-row>
  163 + <el-row>
199 <el-col :span="10"> 164 <el-col :span="10">
200 - <el-form-item label="承运人1" prop="awbinfo.by1">  
201 - <el-input v-model="by1"/> 165 + <el-form-item label="承运人" prop="carrier">
  166 + <el-input v-model="carrier"/>
202 </el-form-item> 167 </el-form-item>
203 </el-col> 168 </el-col>
204 <el-col :span="10"> 169 <el-col :span="10">
205 - <el-form-item label="到达航站1" prop="awbinfo.dest1">  
206 - <el-input v-model="dest1"></el-input> 170 + <el-form-item label="到达航站" prop="awbinfo.eairportid">
  171 + <el-input v-model="eairportid"/>
207 </el-form-item> 172 </el-form-item>
208 </el-col> 173 </el-col>
209 174
210 </el-row> 175 </el-row>
211 - <el-row>  
212 <el-col :span="10"> 176 <el-col :span="10">
213 - <el-form-item label="承运人2">  
214 - <el-input v-model="by2"/> 177 + <el-form-item label="承运人1" >
  178 + <el-input v-model="by1"/>
215 </el-form-item> 179 </el-form-item>
216 </el-col> 180 </el-col>
217 <el-col :span="10"> 181 <el-col :span="10">
218 - <el-form-item label="到达航站2">  
219 - <el-input v-model="dest2"/> 182 + <el-form-item label="到达航站1">
  183 + <el-input v-model="dest1"></el-input>
220 </el-form-item> 184 </el-form-item>
221 </el-col> 185 </el-col>
222 186
223 </el-row> 187 </el-row>
224 <el-row> 188 <el-row>
225 <el-col :span="10"> 189 <el-col :span="10">
226 - <el-form-item label="承运人3">  
227 - <el-input v-model="by3"/> 190 + <el-form-item label="承运人2">
  191 + <el-input v-model="by2"/>
228 </el-form-item> 192 </el-form-item>
229 </el-col> 193 </el-col>
230 <el-col :span="10"> 194 <el-col :span="10">
231 - <el-form-item label="到达航站3">  
232 - <el-input v-model="dest3"/> 195 + <el-form-item label="到达航站2">
  196 + <el-input v-model="dest2"/>
233 </el-form-item> 197 </el-form-item>
234 </el-col> 198 </el-col>
235 199
236 </el-row> 200 </el-row>
  201 +
237 </div> 202 </div>
238 <div class="tags"> 203 <div class="tags">
239 <el-tag type="info" effect="plain"> 204 <el-tag type="info" effect="plain">
@@ -243,26 +208,14 @@ @@ -243,26 +208,14 @@
243 <div class="row-bg"> 208 <div class="row-bg">
244 <el-row> 209 <el-row>
245 <el-col :span="10"> 210 <el-col :span="10">
246 - <div v-if="dialogStatus === 'update'">  
247 - <el-form-item label="主单号">  
248 - <el-input disabled="" v-model="temp.awba"/>  
249 - </el-form-item>  
250 - </div>  
251 - <div v-else>  
252 <el-form-item label="主单号" prop="awba"> 211 <el-form-item label="主单号" prop="awba">
253 - <el-input v-model="temp.awba"/> 212 + <el-input :disabled="dialogStatus !== 'create'" v-model="awba"/>
254 </el-form-item> 213 </el-form-item>
255 - </div>  
256 </el-col> 214 </el-col>
257 215
258 <el-col :span="10"> 216 <el-col :span="10">
259 - <el-form-item label="分单号" >  
260 - <div v-if="dialogStatus === 'update' ">  
261 - <el-input disabled v-model="awbh"/>  
262 - </div>  
263 - <div v-else>  
264 - <el-input v-model="awbh"/>  
265 - </div> 217 + <el-form-item label="分单号">
  218 + <el-input :disabled="dialogStatus !== 'addAwh'" v-model="awbh"/>
266 </el-form-item> 219 </el-form-item>
267 </el-col> 220 </el-col>
268 </el-row> 221 </el-row>
@@ -290,8 +243,8 @@ @@ -290,8 +243,8 @@
290 </el-form-item> 243 </el-form-item>
291 </el-col> 244 </el-col>
292 <el-col :span="10"> 245 <el-col :span="10">
293 - <el-form-item label="海关状态" prop="goodsType">  
294 - <el-select v-model="temp.goodsType" class="filter-item" placeholder="请录入货物类型" 246 + <el-form-item label="海关状态" prop="ex5">
  247 + <el-select v-model="temp.ex5" class="filter-item" placeholder="请录入货物类型"
295 style="width: 93%"> 248 style="width: 93%">
296 <el-option v-for="item in customTypes" :key="item" :label="item" :value="item"/> 249 <el-option v-for="item in customTypes" :key="item" :label="item" :value="item"/>
297 </el-select> 250 </el-select>
@@ -490,7 +443,7 @@ @@ -490,7 +443,7 @@
490 443
491 <div slot="footer" class="dialog-footer"> 444 <div slot="footer" class="dialog-footer">
492 <el-button @click="dialogFormVisible = false">{{ $t('table.cancel') }}</el-button> 445 <el-button @click="dialogFormVisible = false">{{ $t('table.cancel') }}</el-button>
493 - <el-button type="primary" @click="dialogStatus==='create'?createData():updateData()">{{ 446 + <el-button type="primary" @click="dialogStatus==='update'?createData():updateData()">{{
494 $t('table.confirm') }} 447 $t('table.confirm') }}
495 </el-button> 448 </el-button>
496 </div> 449 </div>
@@ -512,11 +465,7 @@ @@ -512,11 +465,7 @@
512 import {addMt1201, updateMT1201, updateStatus, deleteByIsDelete, getMt1201ListForParam} from '@/api/orgManifest' 465 import {addMt1201, updateMT1201, updateStatus, deleteByIsDelete, getMt1201ListForParam} from '@/api/orgManifest'
513 import {Message} from "element-ui"; 466 import {Message} from "element-ui";
514 467
515 -  
516 - treeTable.expandAll = {  
517 - type: Boolean,  
518 - default: false  
519 - } 468 + import {validAwb, validFlightNo} from '@/utils/validate'
520 469
521 export default { 470 export default {
522 name: 'OrgManifest', 471 name: 'OrgManifest',
@@ -539,12 +488,24 @@ @@ -539,12 +488,24 @@
539 } 488 }
540 }, 489 },
541 data() { 490 data() {
  491 + const validatorAwb = (rule, value, callback) =>{
  492 + if(!validAwb(value)){
  493 + callback("请正确书写主单号")
  494 + }
  495 + callback()
  496 + }
  497 + const validatorFlightno = (rule, value, callback) =>{
  498 + if(!validFlightNo(value)){
  499 + callback("请正确书写航班号")
  500 + }
  501 + callback()
  502 + }
542 return { 503 return {
543 func: treeToArray, 504 func: treeToArray,
544 expandAll: true, 505 expandAll: true,
545 total: 0, 506 total: 0,
546 loading: false, 507 loading: false,
547 - listLoading: true, 508 + listLoading: false,
548 downloadLoading: false, 509 downloadLoading: false,
549 multipleSelection: [], 510 multipleSelection: [],
550 dialogFormVisible: false, 511 dialogFormVisible: false,
@@ -556,7 +517,8 @@ @@ -556,7 +517,8 @@
556 goodsPackage: goodsPackage, 517 goodsPackage: goodsPackage,
557 textMap: { 518 textMap: {
558 update: '编辑', 519 update: '编辑',
559 - create: '添加' 520 + create: '添加',
  521 + addAwbh:'新增分单'
560 }, 522 },
561 listQuery: { 523 listQuery: {
562 pageSize: 1, 524 pageSize: 1,
@@ -566,11 +528,13 @@ @@ -566,11 +528,13 @@
566 flightdate: undefined, 528 flightdate: undefined,
567 customcode: undefined 529 customcode: undefined
568 }, 530 },
  531 + //实体对象声明最好使用undefined,后台不会更改数据库默认值
569 temp: { 532 temp: {
570 awba: undefined, 533 awba: undefined,
571 awbh: undefined, 534 awbh: undefined,
572 customcode: undefined, 535 customcode: undefined,
573 flightno: undefined, 536 flightno: undefined,
  537 + carrier: undefined,
574 flightdate: undefined, 538 flightdate: undefined,
575 originstation: undefined, 539 originstation: undefined,
576 destinationstation: undefined, 540 destinationstation: undefined,
@@ -581,6 +545,7 @@ @@ -581,6 +545,7 @@
581 uldType: undefined, 545 uldType: undefined,
582 uldNo: undefined, 546 uldNo: undefined,
583 status: undefined, 547 status: undefined,
  548 + ex5:undefined,
584 awbinfo: { 549 awbinfo: {
585 specopeid: undefined, 550 specopeid: undefined,
586 shprname: undefined, 551 shprname: undefined,
@@ -588,7 +553,7 @@ @@ -588,7 +553,7 @@
588 shprtel: undefined, 553 shprtel: undefined,
589 shpraddress: undefined, 554 shpraddress: undefined,
590 shprcountyr: undefined, 555 shprcountyr: undefined,
591 - shpcomidpre:undefined, 556 + shpcomidpre: undefined,
592 shpcomidpno: undefined, 557 shpcomidpno: undefined,
593 cnsnname: undefined, 558 cnsnname: undefined,
594 cnsrmobiletype: undefined, 559 cnsrmobiletype: undefined,
@@ -616,7 +581,7 @@ @@ -616,7 +581,7 @@
616 manifestCustoms: ['4604', '4620', '4613'], 581 manifestCustoms: ['4604', '4620', '4613'],
617 customTypes: ['普通货物', '国际转运货物', '国内转关', '空箱', '快件'], 582 customTypes: ['普通货物', '国际转运货物', '国内转关', '空箱', '快件'],
618 payTypes: [{label: '预付', value: '0'}, {label: '到付', value: '1'}], 583 payTypes: [{label: '预付', value: '0'}, {label: '到付', value: '1'}],
619 - splitcodes: ['是', '否'], 584 + splitcodes:[{label: '是', value: 'T'}, {label: '否', value: 'P'}],
620 orgData: [], 585 orgData: [],
621 countryList: [], 586 countryList: [],
622 countryResultList: [], 587 countryResultList: [],
@@ -666,14 +631,14 @@ @@ -666,14 +631,14 @@
666 destinationstation: [{required: true, message: '运单目的地必须输入', trigger: 'change'}], 631 destinationstation: [{required: true, message: '运单目的地必须输入', trigger: 'change'}],
667 originstation: [{required: true, message: '运单起始站必须数据', trigger: 'change'}], 632 originstation: [{required: true, message: '运单起始站必须数据', trigger: 'change'}],
668 flightdate: [{required: true, message: '航班日期必须输入', trigger: 'change'}], 633 flightdate: [{required: true, message: '航班日期必须输入', trigger: 'change'}],
669 - flightno: [{required: true, message: '航班号必须输入', trigger: 'change'}], 634 + flightno: [{required: true, trigger: 'blur', validator: validatorFlightno}],
  635 + carrier: [{required: true, trigger: 'blur', message: '承运人不能为空'}],
670 customcode: [{required: true, message: '关区代码必须选择', trigger: 'change'}], 636 customcode: [{required: true, message: '关区代码必须选择', trigger: 'change'}],
671 - awba: [{required: true, message: '运单号必须输入', trigger: 'change'}], 637 + awba: [{required: true, trigger:'blur', validator: validatorAwb}],
672 'awbinfo.collected': [{required: true, message: '付款方式必选', trigger: 'change'}], 638 'awbinfo.collected': [{required: true, message: '付款方式必选', trigger: 'change'}],
673 goodsname: [{required: true, message: '货物描述不能为空', trigger: 'change'}], 639 goodsname: [{required: true, message: '货物描述不能为空', trigger: 'change'}],
  640 + ex5: [{required: true, message: '货物描述不能为空', trigger: 'change'}],
674 'awbinfo.sairportid': [{required: true, message: '起始航站不能为空', trigger: 'change'}], 641 'awbinfo.sairportid': [{required: true, message: '起始航站不能为空', trigger: 'change'}],
675 - 'awbinfo.by1': [{required: true, message: '承运人不能为空', trigger: 'change'}],  
676 - 'awbinfo.dest1': [{required: true, message: '到达航站不能为空', trigger: 'change'}],  
677 'awbinfo.shprname': [{required: true, message: '发货人不能为空', trigger: 'change'}], 642 'awbinfo.shprname': [{required: true, message: '发货人不能为空', trigger: 'change'}],
678 'awbinfo.shprtel': [{required: true, message: '发货电话不能为空', trigger: 'change'}], 643 'awbinfo.shprtel': [{required: true, message: '发货电话不能为空', trigger: 'change'}],
679 'awbinfo.shpraddress': [{required: true, message: '发货地址不能为空', trigger: 'change'}], 644 'awbinfo.shpraddress': [{required: true, message: '发货地址不能为空', trigger: 'change'}],
@@ -702,211 +667,231 @@ @@ -702,211 +667,231 @@
702 667
703 }, 1000) 668 }, 1000)
704 }, 669 },
705 - computed:{ 670 + computed: {
  671 + awba: {
  672 + get: function () {
  673 + return this.temp.awba
  674 + },
  675 + set: function (val) {
  676 + if(val.length==3){
  677 + val = val+"-"
  678 + }
  679 + this.temp.awba = val.trim()
  680 + }
  681 + },
706 awbh: { 682 awbh: {
707 - get: function (){ 683 + get: function () {
708 return this.temp.awbh 684 return this.temp.awbh
709 }, 685 },
710 - set: function (val){  
711 - this.temp.awbh = val.toUpperCase() 686 + set: function (val) {
  687 + this.temp.awbh = val.toUpperCase().trim()
712 } 688 }
713 }, 689 },
714 flightno: { 690 flightno: {
715 - get: function (){ 691 + get: function () {
716 return this.temp.flightno 692 return this.temp.flightno
717 }, 693 },
718 - set: function (val){  
719 - this.temp.flightno = val.toUpperCase() 694 + set: function (val) {
  695 + this.temp.flightno = val.toUpperCase().trim()
  696 + }
  697 + },
  698 + carrier:{
  699 + get: function () {
  700 + return this.temp.carrier
  701 + },
  702 + set: function (val) {
  703 + this.temp.carrier = val.toUpperCase().trim()
720 } 704 }
721 }, 705 },
722 originstation: { 706 originstation: {
723 - get: function (){ 707 + get: function () {
724 return this.temp.originstation 708 return this.temp.originstation
725 }, 709 },
726 - set: function (val){  
727 - this.temp.originstation = val.toUpperCase() 710 + set: function (val) {
  711 + this.temp.originstation = val.toUpperCase().trim()
728 } 712 }
729 }, 713 },
730 destinationstation: { 714 destinationstation: {
731 - get: function (){ 715 + get: function () {
732 return this.temp.destinationstation 716 return this.temp.destinationstation
733 }, 717 },
734 - set: function (val){  
735 - this.temp.destinationstation = val.toUpperCase() 718 + set: function (val) {
  719 + this.temp.destinationstation = val.toUpperCase().trim()
736 } 720 }
737 }, 721 },
  722 +
738 goodsname: { 723 goodsname: {
739 - get: function (){ 724 + get: function () {
740 return this.temp.goodsname 725 return this.temp.goodsname
741 }, 726 },
742 - set: function (val){  
743 - this.temp.goodsname = val.toUpperCase() 727 + set: function (val) {
  728 + this.temp.goodsname = val.toUpperCase().trim()
744 } 729 }
745 }, 730 },
746 specopeid: { 731 specopeid: {
747 - get: function (){ 732 + get: function () {
748 return this.temp.awbinfo.specopeid 733 return this.temp.awbinfo.specopeid
749 }, 734 },
750 - set: function (val){  
751 - this.temp.awbinfo.specopeid = val.toUpperCase() 735 + set: function (val) {
  736 + this.temp.awbinfo.specopeid = val.toUpperCase().trim()
752 } 737 }
753 }, 738 },
754 shprname: { 739 shprname: {
755 - get: function (){ 740 + get: function () {
756 return this.temp.awbinfo.shprname 741 return this.temp.awbinfo.shprname
757 }, 742 },
758 - set: function (val){  
759 - this.temp.awbinfo.shprname = val.toUpperCase() 743 + set: function (val) {
  744 + this.temp.awbinfo.shprname = val.toUpperCase().trim()
760 } 745 }
761 }, 746 },
762 shpraddress: { 747 shpraddress: {
763 - get: function (){ 748 + get: function () {
764 return this.temp.awbinfo.shpraddress 749 return this.temp.awbinfo.shpraddress
765 }, 750 },
766 - set: function (val){  
767 - this.temp.awbinfo.shpraddress = val.toUpperCase() 751 + set: function (val) {
  752 + this.temp.awbinfo.shpraddress = val.toUpperCase().trim()
768 } 753 }
769 }, 754 },
770 shprcountyr: { 755 shprcountyr: {
771 - get: function (){ 756 + get: function () {
772 return this.temp.awbinfo.shprcountyr 757 return this.temp.awbinfo.shprcountyr
773 }, 758 },
774 - set: function (val){  
775 - this.temp.awbinfo.shprcountyr = val.toUpperCase() 759 + set: function (val) {
  760 + this.temp.awbinfo.shprcountyr = val.toUpperCase().trim()
776 } 761 }
777 }, 762 },
778 shpcomidpre: { 763 shpcomidpre: {
779 - get: function (){ 764 + get: function () {
780 return this.temp.awbinfo.shpcomidpre 765 return this.temp.awbinfo.shpcomidpre
781 }, 766 },
782 - set: function (val){  
783 - this.temp.awbinfo.shpcomidpre = val.toUpperCase() 767 + set: function (val) {
  768 + this.temp.awbinfo.shpcomidpre = val.toUpperCase().trim()
784 } 769 }
785 }, 770 },
786 shpcomidpno: { 771 shpcomidpno: {
787 - get: function (){ 772 + get: function () {
788 return this.temp.awbinfo.shpcomidpno 773 return this.temp.awbinfo.shpcomidpno
789 }, 774 },
790 - set: function (val){  
791 - this.temp.awbinfo.shpcomidpno = val.toUpperCase() 775 + set: function (val) {
  776 + this.temp.awbinfo.shpcomidpno = val.toUpperCase().trim()
792 } 777 }
793 }, 778 },
794 cnsnname: { 779 cnsnname: {
795 - get: function (){ 780 + get: function () {
796 return this.temp.awbinfo.cnsnname 781 return this.temp.awbinfo.cnsnname
797 }, 782 },
798 - set: function (val){  
799 - this.temp.awbinfo.cnsnname = val.toUpperCase() 783 + set: function (val) {
  784 + this.temp.awbinfo.cnsnname = val.toUpperCase().trim()
800 } 785 }
801 }, 786 },
802 cnsnaddress: { 787 cnsnaddress: {
803 - get: function (){ 788 + get: function () {
804 return this.temp.awbinfo.cnsnaddress 789 return this.temp.awbinfo.cnsnaddress
805 }, 790 },
806 - set: function (val){  
807 - this.temp.awbinfo.cnsnaddress = val.toUpperCase() 791 + set: function (val) {
  792 + this.temp.awbinfo.cnsnaddress = val.toUpperCase().trim()
808 } 793 }
809 }, 794 },
810 cnscountyr: { 795 cnscountyr: {
811 - get: function (){ 796 + get: function () {
812 return this.temp.awbinfo.cnscountyr 797 return this.temp.awbinfo.cnscountyr
813 }, 798 },
814 - set: function (val){  
815 - this.temp.awbinfo.cnscountyr = val.toUpperCase() 799 + set: function (val) {
  800 + this.temp.awbinfo.cnscountyr = val.toUpperCase().trim()
816 } 801 }
817 }, 802 },
818 cnscomidno: { 803 cnscomidno: {
819 - get: function (){ 804 + get: function () {
820 return this.temp.awbinfo.cnscomidno 805 return this.temp.awbinfo.cnscomidno
821 }, 806 },
822 - set: function (val){  
823 - this.temp.awbinfo.cnscomidno = val.toUpperCase() 807 + set: function (val) {
  808 + this.temp.awbinfo.cnscomidno = val.toUpperCase().trim()
824 } 809 }
825 }, 810 },
826 cnsrctcname: { 811 cnsrctcname: {
827 - get: function (){ 812 + get: function () {
828 return this.temp.awbinfo.cnsrctcname 813 return this.temp.awbinfo.cnsrctcname
829 }, 814 },
830 - set: function (val){  
831 - this.temp.awbinfo.cnsrctcname = val.toUpperCase() 815 + set: function (val) {
  816 + this.temp.awbinfo.cnsrctcname = val.toUpperCase().trim()
832 } 817 }
833 }, 818 },
834 sairportid: { 819 sairportid: {
835 - get: function (){ 820 + get: function () {
836 return this.temp.awbinfo.sairportid 821 return this.temp.awbinfo.sairportid
837 }, 822 },
838 - set: function (val){  
839 - this.temp.awbinfo.sairportid = val.toUpperCase() 823 + set: function (val) {
  824 + this.temp.awbinfo.sairportid = val.toUpperCase().trim()
840 } 825 }
841 }, 826 },
842 by1: { 827 by1: {
843 - get: function (){ 828 + get: function () {
844 return this.temp.awbinfo.by1 829 return this.temp.awbinfo.by1
845 }, 830 },
846 - set: function (val){  
847 - this.temp.awbinfo.by1 = val.toUpperCase() 831 + set: function (val) {
  832 + this.temp.awbinfo.by1 = val.toUpperCase().trim()
848 } 833 }
849 }, 834 },
850 dest1: { 835 dest1: {
851 - get: function (){ 836 + get: function () {
852 return this.temp.awbinfo.dest1 837 return this.temp.awbinfo.dest1
853 }, 838 },
854 - set: function (val){  
855 - this.temp.awbinfo.dest1 = val.toUpperCase() 839 + set: function (val) {
  840 + this.temp.awbinfo.dest1 = val.toUpperCase().trim()
856 } 841 }
857 }, 842 },
858 by2: { 843 by2: {
859 - get: function (){ 844 + get: function () {
860 return this.temp.awbinfo.by2 845 return this.temp.awbinfo.by2
861 }, 846 },
862 - set: function (val){  
863 - this.temp.awbinfo.by2= val.toUpperCase() 847 + set: function (val) {
  848 + this.temp.awbinfo.by2 = val.toUpperCase().trim()
864 } 849 }
865 }, 850 },
866 dest2: { 851 dest2: {
867 - get: function (){ 852 + get: function () {
868 return this.temp.awbinfo.dest2 853 return this.temp.awbinfo.dest2
869 }, 854 },
870 - set: function (val){  
871 - this.temp.awbinfo.dest2= val.toUpperCase() 855 + set: function (val) {
  856 + this.temp.awbinfo.dest2 = val.toUpperCase().trim()
872 } 857 }
873 }, 858 },
874 by3: { 859 by3: {
875 - get: function (){ 860 + get: function () {
876 return this.temp.awbinfo.by3 861 return this.temp.awbinfo.by3
877 }, 862 },
878 - set: function (val){  
879 - this.temp.awbinfo.by3= val.toUpperCase() 863 + set: function (val) {
  864 + this.temp.awbinfo.by3 = val.toUpperCase().trim()
880 } 865 }
881 }, 866 },
882 dest3: { 867 dest3: {
883 - get: function (){ 868 + get: function () {
884 return this.temp.awbinfo.dest3 869 return this.temp.awbinfo.dest3
885 }, 870 },
886 - set: function (val){  
887 - this.temp.awbinfo.dest3= val.toUpperCase() 871 + set: function (val) {
  872 + this.temp.awbinfo.dest3 = val.toUpperCase().trim()
888 } 873 }
889 }, 874 },
890 eairportid: { 875 eairportid: {
891 - get: function (){ 876 + get: function () {
892 return this.temp.awbinfo.eairportid 877 return this.temp.awbinfo.eairportid
893 }, 878 },
894 - set: function (val){  
895 - this.temp.awbinfo.eairportid= val.toUpperCase() 879 + set: function (val) {
  880 + this.temp.awbinfo.eairportid = val.toUpperCase().trim()
896 } 881 }
897 }, 882 },
898 cnscomidpre: { 883 cnscomidpre: {
899 - get: function (){ 884 + get: function () {
900 return this.temp.awbinfo.cnscomidpre 885 return this.temp.awbinfo.cnscomidpre
901 }, 886 },
902 - set: function (val){  
903 - this.temp.awbinfo.cnscomidpre= val.toUpperCase() 887 + set: function (val) {
  888 + this.temp.awbinfo.cnscomidpre = val.toUpperCase().trim()
904 } 889 }
905 } 890 }
906 }, 891 },
907 watch: { 892 watch: {
908 'temp.awbinfo.cnscountyr': function (newValue, oldValue) { 893 'temp.awbinfo.cnscountyr': function (newValue, oldValue) {
909 - if (newValue != null && newValue!='') { 894 + if (newValue != null && newValue != '') {
910 this.selectCountry.countryCode = newValue 895 this.selectCountry.countryCode = newValue
911 getByCountryCode(this.selectCountry).then(res => { 896 getByCountryCode(this.selectCountry).then(res => {
912 this.temp.awbinfo.cnscomidpre = res.data.dataList[0].enterpriseCode 897 this.temp.awbinfo.cnscomidpre = res.data.dataList[0].enterpriseCode
@@ -914,7 +899,7 @@ @@ -914,7 +899,7 @@
914 } 899 }
915 }, 900 },
916 'temp.awbinfo.shprcountyr': function (newValue, oldValue) { 901 'temp.awbinfo.shprcountyr': function (newValue, oldValue) {
917 - if (newValue != null && newValue!='') { 902 + if (newValue != null && newValue != '') {
918 this.selectCountry.countryCode = newValue 903 this.selectCountry.countryCode = newValue
919 getByCountryCode(this.selectCountry).then(res => { 904 getByCountryCode(this.selectCountry).then(res => {
920 this.temp.awbinfo.shpcomidpre = res.data.dataList[0].enterpriseCode 905 this.temp.awbinfo.shpcomidpre = res.data.dataList[0].enterpriseCode
@@ -923,6 +908,8 @@ @@ -923,6 +908,8 @@
923 } 908 }
924 }, 909 },
925 methods: { 910 methods: {
  911 + // >>>>>>>>>>>>>>>>页面加载运行<<<<<<<<<<<<<<<<<<
  912 + //获取MT1201列表
926 getList() { 913 getList() {
927 getMt1201ListForParam(this.listQuery).then(res => { 914 getMt1201ListForParam(this.listQuery).then(res => {
928 this.total = res.data.count 915 this.total = res.data.count
@@ -932,14 +919,20 @@ @@ -932,14 +919,20 @@
932 }, 1.5 * 1000) 919 }, 1.5 * 1000)
933 }) 920 })
934 }, 921 },
  922 + //获取城市列表
935 getCountryList() { 923 getCountryList() {
936 getCountry().then(res => { 924 getCountry().then(res => {
937 this.countryList = res.data.dataList 925 this.countryList = res.data.dataList
938 }) 926 })
939 }, 927 },
  928 + // >>>>>>>>>>>>>>>>页面加载运行<<<<<<<<<<<<<<<<<<
  929 +
  930 +
940 message(row) { 931 message(row) {
941 this.$message.info(row.event) 932 this.$message.info(row.event)
942 }, 933 },
  934 +
  935 +
943 sortChange(data) { 936 sortChange(data) {
944 const {prop, order} = data 937 const {prop, order} = data
945 if (prop === 'id') { 938 if (prop === 'id') {
@@ -952,14 +945,31 @@ @@ -952,14 +945,31 @@
952 } else { 945 } else {
953 this.listQuery.sort = '-id' 946 this.listQuery.sort = '-id'
954 } 947 }
955 - this.handleFilter() 948 + this.handleSearch()
956 }, 949 },
957 handleDownload() { 950 handleDownload() {
958 951
959 }, 952 },
960 - handleFilter() { 953 +
  954 + // >>>>>>>>>>>>>>>>批量删除<<<<<<<<<<<<<<<<<<
  955 + handleSelectionChange(val) {
  956 + this.multipleSelection = val
  957 + },
  958 + handleDelList() {
  959 + const val = this.multipleSelection
  960 + if (val) {
  961 + val.forEach((val, index) => {
  962 +
  963 + })
  964 + }
  965 + },
  966 +
  967 + // >>>>>>>>>>>>>>>>搜索<<<<<<<<<<<<<<<<<<
  968 + handleSearch() {
961 this.getList() 969 this.getList()
962 }, 970 },
  971 +
  972 + // >>>>>>>>>>>>>>>>更新数据<<<<<<<<<<<<<<<<<<
963 handleUpdate(row) { 973 handleUpdate(row) {
964 this.temp = Object.assign({}, row) // copy obj 974 this.temp = Object.assign({}, row) // copy obj
965 this.dialogStatus = 'update' 975 this.dialogStatus = 'update'
@@ -968,17 +978,31 @@ @@ -968,17 +978,31 @@
968 this.$refs.formData.clearValidate() 978 this.$refs.formData.clearValidate()
969 }) 979 })
970 }, 980 },
971 - handleModifyStatus(row, status) { 981 + updateData() {
  982 + this.$refs.formData.validate(valid => {
  983 + if (valid) {
  984 + updateMT1201(this.temp).then(res => {
  985 + if (res.data.count > 0) {
  986 + this.dialogFormVisible = false
  987 + this.getList()
  988 + Message.success(res.data.respMessage)
  989 + } else {
  990 + Message.success("数据异常清稍后重试")
  991 + }
  992 + })
  993 + }
  994 + })
  995 + },
  996 +
  997 + // >>>>>>>>>>>>>>>>客服反馈<<<<<<<<<<<<<<<<<<
  998 + handleFeedBack(row) {
972 this.$message({ 999 this.$message({
973 - message: '操作成功', 1000 + message: '操作成功,请前往微信查看',
974 type: 'success' 1001 type: 'success'
975 }) 1002 })
976 - row.status = status  
977 }, 1003 },
978 1004
979 - handleSelectionChange(val) {  
980 - this.multipleSelection = val  
981 - }, 1005 + // >>>>>>>>>>>>>>>>重置实体<<<<<<<<<<<<<<<<<<
982 resetTemp() { 1006 resetTemp() {
983 this.temp = { 1007 this.temp = {
984 awba: undefined, 1008 awba: undefined,
@@ -1001,7 +1025,7 @@ @@ -1001,7 +1025,7 @@
1001 shprtel: undefined, 1025 shprtel: undefined,
1002 shpraddress: undefined, 1026 shpraddress: undefined,
1003 shprcountyr: undefined, 1027 shprcountyr: undefined,
1004 - shpcomidpre:undefined, 1028 + shpcomidpre: undefined,
1005 shpcomidpno: undefined, 1029 shpcomidpno: undefined,
1006 cnsnname: undefined, 1030 cnsnname: undefined,
1007 cnsrmobiletype: undefined, 1031 cnsrmobiletype: undefined,
@@ -1027,6 +1051,8 @@ @@ -1027,6 +1051,8 @@
1027 } 1051 }
1028 } 1052 }
1029 }, 1053 },
  1054 +
  1055 + // >>>>>>>>>>>>>>>>新增数据<<<<<<<<<<<<<<<<<<
1030 handleCreate() { 1056 handleCreate() {
1031 this.resetTemp() 1057 this.resetTemp()
1032 this.dialogStatus = 'create' 1058 this.dialogStatus = 'create'
@@ -1035,13 +1061,31 @@ @@ -1035,13 +1061,31 @@
1035 this.$refs.formData.clearValidate() 1061 this.$refs.formData.clearValidate()
1036 }) 1062 })
1037 }, 1063 },
  1064 + createData() {
  1065 + this.$refs.formData.validate(valid => {
  1066 + if (valid) {
  1067 + addMt1201(this.temp).then(res => {
  1068 + if (res.data.count > 0) {
  1069 + this.dialogFormVisible = false
  1070 + this.getList()
  1071 + Message.success(res.data.respMessage)
  1072 + } else {
  1073 + Message.success("数据异常清稍后重试")
  1074 + }
  1075 + })
  1076 +
  1077 + }
  1078 + })
  1079 + },
  1080 +
  1081 + // >>>>>>>>>>>>>>>>下拉远程搜索<<<<<<<<<<<<<<<<<<
1038 remoteMethod(query) { 1082 remoteMethod(query) {
1039 if (query !== '') { 1083 if (query !== '') {
1040 this.loading = true 1084 this.loading = true
1041 setTimeout(() => { 1085 setTimeout(() => {
1042 this.loading = false 1086 this.loading = false
1043 this.countryOption = this.countryResultList.filter(item => { 1087 this.countryOption = this.countryResultList.filter(item => {
1044 - return item.value.toUpperCase() 1088 + return item.value.toUpperCase().trim()
1045 .indexOf(query.toUpperCase()) > -1 1089 .indexOf(query.toUpperCase()) > -1
1046 }) 1090 })
1047 }, 200) 1091 }, 200)
@@ -1061,68 +1105,98 @@ @@ -1061,68 +1105,98 @@
1061 1105
1062 1106
1063 }, 1107 },
  1108 +
  1109 + // >>>>>>>>>>>>>>>>更新发送状态<<<<<<<<<<<<<<<<<<
1064 handleSwitch(row) { 1110 handleSwitch(row) {
1065 - console.log(row) 1111 + this.$confirm("是否发送更改状态", "确认消息", {
  1112 + distinguishCancelAndClose: true,
  1113 + confirmButtonText: '确认更改',
  1114 + cancelButtonText: '取消更改'
  1115 + }).then(() => {
  1116 + this.$message({
  1117 + type: 'success',
  1118 + message: '状态更改成功'
  1119 + })
  1120 + }).catch(action => {
  1121 + this.$message({
  1122 + type: 'info',
  1123 + message: action === 'cancel'
  1124 + ? '取消状态更改'
  1125 + : '停留在当前页面'
  1126 + })
  1127 + })
1066 }, 1128 },
1067 1129
1068 - createData() {  
1069 - this.$refs.formData.validate(valid =>{  
1070 - if(valid){  
1071 - addMt1201(this.temp).then(res => {  
1072 - if(res.data.count>0){  
1073 - this.dialogFormVisible = false  
1074 - this.getList()  
1075 - Message.success(res.data.respMessage)  
1076 - }else {  
1077 - Message.success("数据异常清稍后重试")  
1078 - } 1130 + // >>>>>>>>>>>>>>>>删除<<<<<<<<<<<<<<<<<<
  1131 + handleDel(index, row) {
  1132 + this.$confirm("是否删除", "确认消息", {
  1133 + distinguishCancelAndClose: true,
  1134 + confirmButtonText: '删除',
  1135 + cancelButtonText: '取消'
  1136 + }).then(() => {
  1137 + deleteByIsDelete(row).then(res => {
  1138 + if (res.data.count > 0) {
  1139 + this.$message({
  1140 + type: 'success',
  1141 + message: '删除成功'
1079 }) 1142 })
1080 -  
1081 - } 1143 + this.orgData.splice(index, 1)
  1144 + } else {
  1145 + this.$message({
  1146 + type: 'danger',
  1147 + message: '删除异常,请稍后重试'
1082 }) 1148 })
1083 - },  
1084 - updateData() {  
1085 - this.$refs.formData.validate(valid => {  
1086 - if (valid) {  
1087 - updateMT1201(this.temp).then(res => {  
1088 - if(res.data.count>0){  
1089 - this.dialogFormVisible = false  
1090 - this.getList()  
1091 - Message.success(res.data.respMessage)  
1092 - }else {  
1093 - Message.success("数据异常清稍后重试")  
1094 } 1149 }
1095 }) 1150 })
1096 - } 1151 + }).catch(action => {
  1152 + this.$message({
  1153 + type: 'info',
  1154 + message: action === 'cancel'
  1155 + ? '取消删除'
  1156 + : '停留在当前页面'
  1157 + })
1097 }) 1158 })
1098 - }  
1099 - }  
1100 - }  
1101 -</script>  
1102 -<style scoped>  
1103 1159
  1160 + },
1104 1161
1105 - .bg-purple {  
1106 - background: #d3dce6;  
1107 - } 1162 + // >>>>>>>>>>>>>>>>发送<<<<<<<<<<<<<<<<<<
  1163 + handleSend(row) {
  1164 + console.log(row)
  1165 + },
  1166 + // >>>>>>>>>>>>>>>>新增分单<<<<<<<<<<<<<<<<<<
  1167 + handleAddAwbh(row){
  1168 + const template = Object.assign({}, row) // copy obj
  1169 + console.log(template)
  1170 + this.temp.awba = template.awba
  1171 + this.temp.flightdate = template.flightdate
  1172 + this.temp.flightno = template.flightno
  1173 + this.temp.destinationstation = template.destinationstation
  1174 + this.temp.customcode = template.customcode
  1175 + this.temp.carrier = template.carrier
  1176 + this.temp.awbinfo.shprcountyr = template.awbinfo.shprcountyr
  1177 + this.temp.originstation = template.originstation
  1178 + this.temp.goodsname = template.goodsname
  1179 + this.temp.awbinfo.collected = template.awbinfo.collected
  1180 + this.temp.awbinfo.sairportid = template.awbinfo.sairportid
  1181 + this.temp.awbinfo.eairportid = template.awbinfo.eairportid
  1182 + this.temp.awbinfo.ex5 = template.awbinfo.ex5
1108 1183
1109 - .el-row {  
1110 - margin-bottom: 0px; 1184 + this.dialogStatus = 'addAwh'
  1185 + this.dialogFormVisible = true
  1186 + this.$nextTick(() => {
  1187 + this.$refs.formData.clearValidate()
  1188 + })
1111 } 1189 }
1112 1190
1113 - .el-dialog .el-dialog--samll {  
1114 - width: 60%;  
1115 } 1191 }
1116 - 1192 + }
  1193 +</script>
  1194 +<style scoped>
1117 .row-bg { 1195 .row-bg {
1118 padding: 10px 0; 1196 padding: 10px 0;
1119 background-color: #f9fafc; 1197 background-color: #f9fafc;
1120 } 1198 }
1121 1199
1122 - .el-progress.is-warning .el-progress-bar__inner {  
1123 - background-color: #E6A23C  
1124 - }  
1125 -  
1126 .remark textarea { 1200 .remark textarea {
1127 width: 575px; 1201 width: 575px;
1128 } 1202 }
@@ -1136,5 +1210,9 @@ @@ -1136,5 +1210,9 @@
1136 margin-top: 10px; 1210 margin-top: 10px;
1137 margin-bottom: 10px; 1211 margin-bottom: 10px;
1138 } 1212 }
  1213 +
  1214 + .disabledClass {
  1215 + }
  1216 +
1139 </style> 1217 </style>
1140 1218