作者 朱兆平

add:

1. 修复FLT和RTG的多航段的BUG和强制大小写转换的bug修复
@@ -284,8 +284,8 @@ @@ -284,8 +284,8 @@
284 <el-row style="margin-bottom: -5px"> 284 <el-row style="margin-bottom: -5px">
285 <el-col style="width: 95%"> 285 <el-col style="width: 95%">
286 <el-form-item> 286 <el-form-item>
287 - <el-input minlength="3" maxlength="3" oninput="this.value=this.value.toUpperCase()"  
288 - @keyup.native="form.cvd.cvd_currency_code.replace(/[^A-Za-z]/g,'')" 287 + <el-input minlength="3" maxlength="3"
  288 + oninput="this.value=this.value.replace(/[^A-Za-z]/g,'').toUpperCase();"
289 v-model="form.cvd.cvd_currency_code" auto-complete="off" placeholder="货币单位" size="mini"></el-input> 289 v-model="form.cvd.cvd_currency_code" auto-complete="off" placeholder="货币单位" size="mini"></el-input>
290 </el-form-item> 290 </el-form-item>
291 </el-col> 291 </el-col>
@@ -341,7 +341,7 @@ @@ -341,7 +341,7 @@
341 <el-row style="padding-top: 10px"> 341 <el-row style="padding-top: 10px">
342 <el-col :span="2" style="border-right: 1px solid #a5a5a5;border-bottom:1px solid #a5a5a5;border-left:1px solid #a5a5a5;padding-left: 5px"> 342 <el-col :span="2" style="border-right: 1px solid #a5a5a5;border-bottom:1px solid #a5a5a5;border-left:1px solid #a5a5a5;padding-left: 5px">
343 <span style="font-size: 12px"> 343 <span style="font-size: 12px">
344 - To 344 + To1
345 </span> 345 </span>
346 <el-row> 346 <el-row>
347 <el-col style="width: 95%"> 347 <el-col style="width: 95%">
@@ -359,9 +359,8 @@ @@ -359,9 +359,8 @@
359 <el-row style="margin-bottom: -5px"> 359 <el-row style="margin-bottom: -5px">
360 <el-col style="width: 95%"> 360 <el-col style="width: 95%">
361 <el-form-item> 361 <el-form-item>
362 - <el-input minlength="2" maxlength="2" oninput="this.value=this.value.toUpperCase()"  
363 - @keyup.native="form.flt.cariier.replace(/[^A-Za-z]/g,'')"  
364 - v-model="form.flt.cariier" auto-complete="off" placeholder="承运人" size="mini"></el-input> 362 + <el-input minlength="2" maxlength="2" oninput="this.value=this.value.replace(/[^A-Za-z0-9]/g,'').toUpperCase();"
  363 + v-model="form.rtg.destinationCarrier" auto-complete="off" placeholder="承运人" size="mini"></el-input>
365 </el-form-item> 364 </el-form-item>
366 </el-col> 365 </el-col>
367 </el-row> 366 </el-row>
@@ -373,7 +372,9 @@ @@ -373,7 +372,9 @@
373 <el-row style="margin-bottom: -5px"> 372 <el-row style="margin-bottom: -5px">
374 <el-col style="width: 95%"> 373 <el-col style="width: 95%">
375 <el-form-item> 374 <el-form-item>
376 - <el-input disabled auto-complete="off" placeholder="到达站" size="mini"></el-input> 375 + <el-input v-model="form.rtg.onwardAirport"
  376 + minlength="3" maxlength="3" oninput="this.value=this.value.replace(/[^A-Za-z]/g,'').toUpperCase();"
  377 + auto-complete="off" placeholder="到达站1" size="mini"></el-input>
377 </el-form-item> 378 </el-form-item>
378 </el-col> 379 </el-col>
379 </el-row> 380 </el-row>
@@ -385,7 +386,9 @@ @@ -385,7 +386,9 @@
385 <el-row style="margin-bottom: -5px"> 386 <el-row style="margin-bottom: -5px">
386 <el-col style="width: 95%"> 387 <el-col style="width: 95%">
387 <el-form-item> 388 <el-form-item>
388 - <el-input disabled auto-complete="off" placeholder="承运人" size="mini"></el-input> 389 + <el-input v-model="form.rtg.onwardCarrier"
  390 + minlength="2" maxlength="2" oninput="this.value=this.value.replace(/[^A-Za-z0-9]/g,'').toUpperCase();"
  391 + auto-complete="off" placeholder="承运人1" size="mini"></el-input>
389 </el-form-item> 392 </el-form-item>
390 </el-col> 393 </el-col>
391 </el-row> 394 </el-row>
@@ -397,7 +400,9 @@ @@ -397,7 +400,9 @@
397 <el-row style="margin-bottom: -5px"> 400 <el-row style="margin-bottom: -5px">
398 <el-col style="width: 95%"> 401 <el-col style="width: 95%">
399 <el-form-item> 402 <el-form-item>
400 - <el-input disabled auto-complete="off" placeholder="到达站" size="mini"></el-input> 403 + <el-input v-model="form.rtg.onwardAirport3"
  404 + minlength="3" maxlength="3" oninput="this.value=this.value.replace(/[^A-Za-z]/g,'').toUpperCase();"
  405 + auto-complete="off" placeholder="到达站2" size="mini"></el-input>
401 </el-form-item> 406 </el-form-item>
402 </el-col> 407 </el-col>
403 </el-row> 408 </el-row>
@@ -409,7 +414,9 @@ @@ -409,7 +414,9 @@
409 <el-row style="margin-bottom: -5px"> 414 <el-row style="margin-bottom: -5px">
410 <el-col style="width: 95%"> 415 <el-col style="width: 95%">
411 <el-form-item> 416 <el-form-item>
412 - <el-input disabled auto-complete="off" placeholder="承运人" size="mini"></el-input> 417 + <el-input v-model="form.rtg.onwardCarrier3"
  418 + minlength="2" maxlength="2" oninput="this.value=this.value.replace(/[^A-Za-z0-9]/g,'').toUpperCase();"
  419 + auto-complete="off" placeholder="承运人2" size="mini"></el-input>
413 </el-form-item> 420 </el-form-item>
414 </el-col> 421 </el-col>
415 </el-row> 422 </el-row>
@@ -447,9 +454,9 @@ @@ -447,9 +454,9 @@
447 <el-row style="margin-bottom: -5px"> 454 <el-row style="margin-bottom: -5px">
448 <el-col style="width: 95%"> 455 <el-col style="width: 95%">
449 <el-form-item> 456 <el-form-item>
450 - <el-input minlength="3" maxlength="3" oninput="this.value=this.value.toUpperCase()"  
451 - @keyup.native="form.bill.destination.replace(/[^A-Za-z]/g,'')"  
452 - v-model="form.bill.destination" auto-complete="off" placeholder="目的地机场" size="mini"> 457 + <el-input disabled minlength="3" maxlength="3"
  458 + oninput="this.value=this.value.replace(/[^A-Za-z]/g,'').toUpperCase();"
  459 + auto-complete="off" placeholder="目的地机场" size="mini">
453 460
454 </el-input> 461 </el-input>
455 </el-form-item> 462 </el-form-item>
@@ -462,8 +469,9 @@ @@ -462,8 +469,9 @@
462 </span> 469 </span>
463 <el-row> 470 <el-row>
464 <el-col style="width: 38%"> 471 <el-col style="width: 38%">
465 - <el-form-item>  
466 - <el-input v-model="form.flt.flightNumber" auto-complete="off" placeholder="航班号" size="mini"></el-input> 472 + <el-form-item prop="flightNumber">
  473 + <el-input v-model="flightNumber"
  474 + auto-complete="off" placeholder="航班号"></el-input>
467 </el-form-item> 475 </el-form-item>
468 </el-col> 476 </el-col>
469 <el-col style="width: 58%;margin-left: 5px"> 477 <el-col style="width: 58%;margin-left: 5px">
@@ -487,14 +495,16 @@ @@ -487,14 +495,16 @@
487 </span> 495 </span>
488 <el-row> 496 <el-row>
489 <el-col style="width: 38%"> 497 <el-col style="width: 38%">
490 - <el-form-item>  
491 - <el-input v-model="form.flt.flightNumber" auto-complete="off" placeholder="航班号" size="mini"></el-input> 498 + <el-form-item prop="flightNumber2">
  499 + <el-input v-model="flightNumber2"
  500 + oninput="this.value=this.value.replace(/[^A-Za-z0-9]/g,'').toUpperCase();"
  501 + auto-complete="off" placeholder="航班号" ></el-input>
492 </el-form-item> 502 </el-form-item>
493 </el-col> 503 </el-col>
494 <el-col style="width: 58%;margin-left: 5px"> 504 <el-col style="width: 58%;margin-left: 5px">
495 <el-form-item> 505 <el-form-item>
496 <el-date-picker 506 <el-date-picker
497 - v-model="form.flt.day" 507 + v-model="form.flt.day2"
498 type="date" style="width: auto" 508 type="date" style="width: auto"
499 size="mini" 509 size="mini"
500 format="dd" 510 format="dd"
@@ -815,7 +825,7 @@ Handling Information @@ -815,7 +825,7 @@ Handling Information
815 </el-col> 825 </el-col>
816 <el-col :span="14"> 826 <el-col :span="14">
817 <el-form-item> 827 <el-form-item>
818 - <el-input v-model="form.cer.cer_signature" style="width: 95%" auto-complete="off" placeholder="托运人或其代理人签字" size="mini"></el-input> 828 + <el-input v-model="form.cer.cer_signature" maxlength="20" style="width: 95%" auto-complete="off" placeholder="托运人或其代理人签字" size="mini"></el-input>
819 </el-form-item> 829 </el-form-item>
820 </el-col> 830 </el-col>
821 </el-row> 831 </el-row>
@@ -892,13 +902,14 @@ Handling Information @@ -892,13 +902,14 @@ Handling Information
892 </el-col> 902 </el-col>
893 <el-col :span="5" style="margin-left: 10px"> 903 <el-col :span="5" style="margin-left: 10px">
894 <el-form-item> 904 <el-form-item>
895 - <el-input minlength="1" maxlength="17" onkeyup="this.value=this.value.toUpperCase()" 905 + <el-input minlength="1" maxlength="17"
  906 + oninput="this.value=this.value.toUpperCase();"
896 v-model="form.isu.isu_place_or_airport_code" auto-complete="off" placeholder="签署地址" size="mini"></el-input> 907 v-model="form.isu.isu_place_or_airport_code" auto-complete="off" placeholder="签署地址" size="mini"></el-input>
897 </el-form-item> 908 </el-form-item>
898 </el-col> 909 </el-col>
899 <el-col :span="12" style="margin-left: 10px"> 910 <el-col :span="12" style="margin-left: 10px">
900 <el-form-item> 911 <el-form-item>
901 - <el-input minlength="0" maxlength="20" onkeyup="this.value=this.value.toUpperCase()" 912 + <el-input minlength="0" maxlength="20" oninput="this.value=this.value.toUpperCase()"
902 v-model="form.isu.isu_signature" auto-complete="off" placeholder="签署人或其代理人签字,盖章" size="mini"></el-input> 913 v-model="form.isu.isu_signature" auto-complete="off" placeholder="签署人或其代理人签字,盖章" size="mini"></el-input>
903 </el-form-item> 914 </el-form-item>
904 </el-col> 915 </el-col>
@@ -2041,9 +2052,15 @@ Handling Information @@ -2041,9 +2052,15 @@ Handling Information
2041 cvd_value_for_customs:'NCV', 2052 cvd_value_for_customs:'NCV',
2042 }, 2053 },
2043 flt:{ 2054 flt:{
2044 - cariier:'', 2055 + cariier:"",
2045 day:'', 2056 day:'',
2046 flightNumber:'', 2057 flightNumber:'',
  2058 + cariier2:"",
  2059 + day2:'',
  2060 + flightNumber2:'',
  2061 + cariier3:"",
  2062 + day3:'',
  2063 + flightNumber3:'',
2047 }, 2064 },
2048 isu:{ 2065 isu:{
2049 isu_day_mounth_year:'', 2066 isu_day_mounth_year:'',
@@ -2114,6 +2131,8 @@ Handling Information @@ -2114,6 +2131,8 @@ Handling Information
2114 destinationCarrier:'', 2131 destinationCarrier:'',
2115 onwardAirport:'', 2132 onwardAirport:'',
2116 onwardCarrier:'', 2133 onwardCarrier:'',
  2134 + onwardAirport3:'',
  2135 + onwardCarrier3:'',
2117 }, 2136 },
2118 shp:{ 2137 shp:{
2119 shp_contacts:[], 2138 shp_contacts:[],
@@ -2169,8 +2188,6 @@ Handling Information @@ -2169,8 +2188,6 @@ Handling Information
2169 { 2188 {
2170 validator: (rule, value, callback) => { 2189 validator: (rule, value, callback) => {
2171 const reg = /^\d{3}-\d{8}$/; // 定义正则表达式 2190 const reg = /^\d{3}-\d{8}$/; // 定义正则表达式
2172 -  
2173 -  
2174 if (value && !reg.test(value)) { 2191 if (value && !reg.test(value)) {
2175 callback(new Error('主运单号格式不正确,应为3位数字-后跟8位数字')); // 如果格式不正确,则返回错误信息 2192 callback(new Error('主运单号格式不正确,应为3位数字-后跟8位数字')); // 如果格式不正确,则返回错误信息
2176 } else { 2193 } else {
@@ -2181,6 +2198,34 @@ Handling Information @@ -2181,6 +2198,34 @@ Handling Information
2181 } 2198 }
2182 ], 2199 ],
2183 }, 2200 },
  2201 + flt:{
  2202 + flightNumber:[
  2203 + {
  2204 + validator: (rule, value, callback) => {
  2205 + const reg = /^[A-Z0-9]{0,2}[0-9]{3}\d?[A-Z0-9]?$/; // 定义正则表达式
  2206 + if (value && !reg.test(value)) {
  2207 + callback(new Error('航班格式不正确')); // 如果格式不正确,则返回错误信息
  2208 + } else {
  2209 + callback(); // 如果格式正确或值为空,则通过校验
  2210 + }
  2211 + },
  2212 + trigger: 'blur'
  2213 + }
  2214 + ],
  2215 + flightNumber2:[
  2216 + {
  2217 + validator: (rule, value, callback) => {
  2218 + const reg = /^[A-Z0-9]{0,2}[0-9]{3}\d?[A-Z0-9]?$/; // 定义正则表达式
  2219 + if (value && !reg.test(value)) {
  2220 + callback(new Error('航班格式不正确')); // 如果格式不正确,则返回错误信息
  2221 + } else {
  2222 + callback(); // 如果格式正确或值为空,则通过校验
  2223 + }
  2224 + },
  2225 + trigger: 'blur'
  2226 + }
  2227 + ]
  2228 + }
2184 }, 2229 },
2185 // 分单 2230 // 分单
2186 addForm:{ 2231 addForm:{
@@ -2531,8 +2576,6 @@ Handling Information @@ -2531,8 +2576,6 @@ Handling Information
2531 }, 2576 },
2532 //新增主运单 2577 //新增主运单
2533 addFwb() { 2578 addFwb() {
2534 - this.form.rtg.destinationCarrier=this.form.flt.cariier;  
2535 - // this.form.rtg.destinationAirport=this.form.bill.destinationAirport;  
2536 this.form.rtd.rtd_gross_weight=this.form.bill.quantity_weight; 2579 this.form.rtd.rtd_gross_weight=this.form.bill.quantity_weight;
2537 this.form.rtd.rtd_number_pieces=this.form.bill.quantity_picecs; 2580 this.form.rtd.rtd_number_pieces=this.form.bill.quantity_picecs;
2538 this.form.rtd.rtd_volume=this.form.bill.quantity_volume; 2581 this.form.rtd.rtd_volume=this.form.bill.quantity_volume;
@@ -2799,6 +2842,32 @@ Handling Information @@ -2799,6 +2842,32 @@ Handling Information
2799 this.form.ssr.ssr_request_content = lines; 2842 this.form.ssr.ssr_request_content = lines;
2800 this.ssr_content = value; // 更新视图中的数据 2843 this.ssr_content = value; // 更新视图中的数据
2801 } 2844 }
  2845 + },
  2846 + flightNumber: {
  2847 + get() {
  2848 + // 返回拼接后的完整航班号
  2849 + return this.form.flt.cariier + this.form.flt.flightNumber;
  2850 + },
  2851 + set(value) {
  2852 + // 将输入值转换为大写并去除非法字符
  2853 + const cleanedValue = value.replace(/[^A-Za-z0-9]/g, '').toUpperCase();
  2854 + // 拆分航班号
  2855 + this.form.flt.cariier = cleanedValue.slice(0, 2);
  2856 + this.form.flt.flightNumber = cleanedValue.slice(2);
  2857 + }
  2858 + },
  2859 + flightNumber2: {
  2860 + get() {
  2861 + // 返回拼接后的完整航班号
  2862 + return this.form.flt.cariier2 + this.form.flt.flightNumber2;
  2863 + },
  2864 + set(value) {
  2865 + // 将输入值转换为大写并去除非法字符
  2866 + const cleanedValue = value.replace(/[^A-Za-z0-9]/g, '').toUpperCase();
  2867 + // 拆分航班号
  2868 + this.form.flt.cariier2 = cleanedValue.slice(0, 2);
  2869 + this.form.flt.flightNumber2 = cleanedValue.slice(2);
  2870 + }
2802 } 2871 }
2803 }, 2872 },
2804 watch:{ 2873 watch:{