Showing
10 changed files
with
5660 additions
and
0 deletions
| 1 | +<template> | ||
| 2 | + <div class="cargoAllocation"> | ||
| 3 | + <el-form | ||
| 4 | + ref="form" | ||
| 5 | + v-model="formData" | ||
| 6 | + class="form-header" | ||
| 7 | + label-position="right" | ||
| 8 | + label-width="auto" | ||
| 9 | + size="small" | ||
| 10 | + > | ||
| 11 | + <el-row type="flex" style="flexWrap: wrap !important"> | ||
| 12 | + <el-col :span="6"> | ||
| 13 | + <el-form-item label="ACCS原航班日期"> | ||
| 14 | + <el-date-picker | ||
| 15 | + class="formItem" | ||
| 16 | + type="daterange" | ||
| 17 | + range-separator="至" | ||
| 18 | + start-placeholder="开始日期" | ||
| 19 | + end-placeholder="结束日期" | ||
| 20 | + v-model="fltDate" | ||
| 21 | + :value-format="valueFormat" | ||
| 22 | + > | ||
| 23 | + </el-date-picker> | ||
| 24 | + </el-form-item> | ||
| 25 | + </el-col> | ||
| 26 | + <el-col :span="6"> | ||
| 27 | + <el-form-item label="ACCS原航班号"> | ||
| 28 | + <el-input | ||
| 29 | + v-model="fltNo" | ||
| 30 | + placeholder="请输入ACCS原航班号" | ||
| 31 | + class="formItem" | ||
| 32 | + clearable | ||
| 33 | + ></el-input> | ||
| 34 | + </el-form-item> | ||
| 35 | + </el-col> | ||
| 36 | + <el-col :span="6"> | ||
| 37 | + <el-form-item label="海关回执状态"> | ||
| 38 | + <el-select | ||
| 39 | + placeholder="不限" | ||
| 40 | + v-model="formData.customsReceiptStatusId" | ||
| 41 | + class="formItem" | ||
| 42 | + multiple | ||
| 43 | + clearable | ||
| 44 | + > | ||
| 45 | + <el-option | ||
| 46 | + v-for="item in selectData.findConditionData | ||
| 47 | + .cargoCustomsReturnStatus" | ||
| 48 | + :label="item.chineseName" | ||
| 49 | + :value="item.id" | ||
| 50 | + :key="item.id" | ||
| 51 | + > | ||
| 52 | + </el-option> | ||
| 53 | + </el-select> | ||
| 54 | + </el-form-item> | ||
| 55 | + </el-col> | ||
| 56 | + <el-col :span="6"> | ||
| 57 | + <el-form-item label="货物状态"> | ||
| 58 | + <el-select | ||
| 59 | + placeholder="不限" | ||
| 60 | + v-model="formData.statusId" | ||
| 61 | + class="formItem" | ||
| 62 | + clearable | ||
| 63 | + > | ||
| 64 | + <el-option | ||
| 65 | + v-for="item in selectData.findConditionData.cargoStatus" | ||
| 66 | + :label="item.chineseName" | ||
| 67 | + :value="item.id" | ||
| 68 | + :key="item.id" | ||
| 69 | + > | ||
| 70 | + </el-option> | ||
| 71 | + </el-select> | ||
| 72 | + </el-form-item> | ||
| 73 | + </el-col> | ||
| 74 | + <el-col :span="6"> | ||
| 75 | + <el-form-item label="运单号"> | ||
| 76 | + <el-input | ||
| 77 | + class="formItem" | ||
| 78 | + type="textarea" | ||
| 79 | + placeholder="请输入运单号(回车分割)" | ||
| 80 | + :autosize="true" | ||
| 81 | + v-model="formData.waybillNo" | ||
| 82 | + ></el-input> | ||
| 83 | + </el-form-item> | ||
| 84 | + </el-col> | ||
| 85 | + <el-col :span="6"> | ||
| 86 | + <el-form-item label="申报类别"> | ||
| 87 | + <el-select | ||
| 88 | + placeholder="不限" | ||
| 89 | + v-model="formData.typeId" | ||
| 90 | + class="formItem" | ||
| 91 | + clearable | ||
| 92 | + > | ||
| 93 | + <el-option | ||
| 94 | + v-for="item in selectData.findConditionData.cargoType" | ||
| 95 | + :label="item.chineseName" | ||
| 96 | + :value="item.id" | ||
| 97 | + :key="item.id" | ||
| 98 | + > | ||
| 99 | + </el-option> | ||
| 100 | + </el-select> | ||
| 101 | + </el-form-item> | ||
| 102 | + </el-col> | ||
| 103 | + <el-col :span="6"> | ||
| 104 | + <el-form-item label="服务类型"> | ||
| 105 | + <el-select | ||
| 106 | + placeholder="不限" | ||
| 107 | + v-model="formData.serviceTypeId" | ||
| 108 | + class="formItem" | ||
| 109 | + clearable | ||
| 110 | + > | ||
| 111 | + <el-option | ||
| 112 | + v-for="item in selectData.findConditionData.cargoServiceType" | ||
| 113 | + :label="item.chineseName" | ||
| 114 | + :value="item.id" | ||
| 115 | + :key="item.id" | ||
| 116 | + > | ||
| 117 | + </el-option> | ||
| 118 | + </el-select> | ||
| 119 | + </el-form-item> | ||
| 120 | + </el-col> | ||
| 121 | + <el-col :span="6"> | ||
| 122 | + <el-form-item label="URSA"> | ||
| 123 | + <el-input | ||
| 124 | + class="formItem" | ||
| 125 | + type="textarea" | ||
| 126 | + placeholder="S_;P_;E2" | ||
| 127 | + v-model="ursa" | ||
| 128 | + :autosize="true" | ||
| 129 | + ></el-input> | ||
| 130 | + </el-form-item> | ||
| 131 | + </el-col> | ||
| 132 | + <el-col :span="6"> | ||
| 133 | + <el-form-item label="站点"> | ||
| 134 | + <el-input | ||
| 135 | + class="formItem" | ||
| 136 | + type="textarea" | ||
| 137 | + placeholder="PVG;PEK" | ||
| 138 | + v-model="siteName" | ||
| 139 | + :autosize="true" | ||
| 140 | + ></el-input> | ||
| 141 | + </el-form-item> | ||
| 142 | + </el-col> | ||
| 143 | + <el-col :span="6"> | ||
| 144 | + <el-form-item label="重量区间"> | ||
| 145 | + <el-row> | ||
| 146 | + <el-col :span="11" | ||
| 147 | + ><el-input-number | ||
| 148 | + class="formItem" | ||
| 149 | + size="mini" | ||
| 150 | + v-model="formData.minWeight" | ||
| 151 | + :controls="false" | ||
| 152 | + :min="0" | ||
| 153 | + :precision="2" | ||
| 154 | + ></el-input-number | ||
| 155 | + ></el-col> | ||
| 156 | + <el-col class="line" :span="2">-</el-col> | ||
| 157 | + <el-col :span="11" | ||
| 158 | + ><el-input-number | ||
| 159 | + class="formItem" | ||
| 160 | + size="mini" | ||
| 161 | + v-model="formData.maxWeight" | ||
| 162 | + :controls="false" | ||
| 163 | + :min="formData.minWeight" | ||
| 164 | + :precision="2" | ||
| 165 | + ></el-input-number | ||
| 166 | + ></el-col> | ||
| 167 | + </el-row> | ||
| 168 | + </el-form-item> | ||
| 169 | + </el-col> | ||
| 170 | + <el-col :span="6"> | ||
| 171 | + <el-form-item label="件数区间"> | ||
| 172 | + <el-row> | ||
| 173 | + <el-col :span="11" | ||
| 174 | + ><el-input-number | ||
| 175 | + class="formItem" | ||
| 176 | + size="mini" | ||
| 177 | + v-model="formData.minNumber" | ||
| 178 | + :controls="false" | ||
| 179 | + :min="0" | ||
| 180 | + ></el-input-number | ||
| 181 | + ></el-col> | ||
| 182 | + <el-col class="line" :span="2">-</el-col> | ||
| 183 | + <el-col :span="11" | ||
| 184 | + ><el-input-number | ||
| 185 | + class="formItem" | ||
| 186 | + size="mini" | ||
| 187 | + v-model="formData.maxNumber" | ||
| 188 | + :controls="false" | ||
| 189 | + :min="formData.minNumber" | ||
| 190 | + ></el-input-number | ||
| 191 | + ></el-col> | ||
| 192 | + </el-row> | ||
| 193 | + </el-form-item> | ||
| 194 | + </el-col> | ||
| 195 | + <!-- <el-col :span="6"> | ||
| 196 | + <el-form-item label="航班类型"> | ||
| 197 | + <el-select | ||
| 198 | + placeholder="不限" | ||
| 199 | + v-model="formData.kindToAllocFlightId" | ||
| 200 | + class="formItem" | ||
| 201 | + clearable | ||
| 202 | + > | ||
| 203 | + <el-option | ||
| 204 | + v-for="item in selectData.fltTypes" | ||
| 205 | + :label="item.chineseName" | ||
| 206 | + v-model="item.id" | ||
| 207 | + :key="item.id" | ||
| 208 | + > | ||
| 209 | + </el-option> | ||
| 210 | + </el-select> | ||
| 211 | + </el-form-item> | ||
| 212 | + </el-col> --> | ||
| 213 | + <el-col :span="6"> | ||
| 214 | + <el-form-item label="取件日期"> | ||
| 215 | + <el-date-picker | ||
| 216 | + v-model="formData.pickUpDate" | ||
| 217 | + type="date" | ||
| 218 | + placeholder="选择日期" | ||
| 219 | + :value-format="valueFormat" | ||
| 220 | + > | ||
| 221 | + </el-date-picker> | ||
| 222 | + </el-form-item> | ||
| 223 | + </el-col> | ||
| 224 | + <el-col :span="6"> | ||
| 225 | + <el-form-item label="口岸代码"> | ||
| 226 | + <el-input | ||
| 227 | + v-model="portName" | ||
| 228 | + placeholder="请输入口岸代码" | ||
| 229 | + class="formItem" | ||
| 230 | + clearable | ||
| 231 | + ></el-input> | ||
| 232 | + </el-form-item> | ||
| 233 | + </el-col> | ||
| 234 | + <el-col :span="24"> | ||
| 235 | + <el-form-item label="Handling Code"> | ||
| 236 | + <el-empty | ||
| 237 | + description="暂无数据" | ||
| 238 | + v-if=" | ||
| 239 | + !selectData.HandlingCode || selectData.HandlingCode.length == 0 | ||
| 240 | + " | ||
| 241 | + ></el-empty> | ||
| 242 | + <el-checkbox-group v-model="handingCodes" v-else> | ||
| 243 | + <el-checkbox | ||
| 244 | + v-for="item in selectData.HandlingCode" | ||
| 245 | + :label="item.chineseName" | ||
| 246 | + v-model="item.englishName" | ||
| 247 | + :key="item.id" | ||
| 248 | + ></el-checkbox> | ||
| 249 | + </el-checkbox-group> | ||
| 250 | + </el-form-item> | ||
| 251 | + </el-col> | ||
| 252 | + <el-col :span="24"> | ||
| 253 | + <el-form-item label="Sub Category"> | ||
| 254 | + <el-empty | ||
| 255 | + description="暂无数据" | ||
| 256 | + v-if=" | ||
| 257 | + !selectData.SubCategory || selectData.SubCategory.length == 0 | ||
| 258 | + " | ||
| 259 | + ></el-empty> | ||
| 260 | + <el-checkbox-group v-model="subCategorys" v-else> | ||
| 261 | + <el-checkbox | ||
| 262 | + v-for="item in selectData.SubCategory" | ||
| 263 | + :label="item.chineseName" | ||
| 264 | + v-model="item.englishName" | ||
| 265 | + :key="item.id" | ||
| 266 | + ></el-checkbox> | ||
| 267 | + </el-checkbox-group> | ||
| 268 | + </el-form-item> | ||
| 269 | + </el-col> | ||
| 270 | + </el-row> | ||
| 271 | + <div style="margin: 0 0 0 10px"> | ||
| 272 | + <el-button | ||
| 273 | + type="primary" | ||
| 274 | + icon="el-icon-search" | ||
| 275 | + size="mini" | ||
| 276 | + :loading="loading" | ||
| 277 | + @click="select(0)" | ||
| 278 | + >查询</el-button | ||
| 279 | + > | ||
| 280 | + <el-button | ||
| 281 | + :type="downLoadingTip.downloading ? 'warning' : 'primary'" | ||
| 282 | + size="mini" | ||
| 283 | + @click="xlsx(0)" | ||
| 284 | + :loading="downLoadingTip.downloading" | ||
| 285 | + :disabled="tableData.length <= 0" | ||
| 286 | + >{{ | ||
| 287 | + downLoadingTip.downloading ? downLoadingTip.tip : "导出本页查询结果" | ||
| 288 | + }}</el-button | ||
| 289 | + > | ||
| 290 | + <el-button | ||
| 291 | + :type="downLoadingTip.downloading ? 'warning' : 'primary'" | ||
| 292 | + size="mini" | ||
| 293 | + @click="xlsx(1)" | ||
| 294 | + :loading="downLoadingTip.downloading" | ||
| 295 | + :disabled="tableData.length <= 0" | ||
| 296 | + >{{ | ||
| 297 | + downLoadingTip.downloading ? downLoadingTip.tip : "导出全部查询结果" | ||
| 298 | + }}</el-button | ||
| 299 | + > | ||
| 300 | + <el-button | ||
| 301 | + type="primary" | ||
| 302 | + size="mini" | ||
| 303 | + @click="addFit" | ||
| 304 | + :disabled="tableSelection.length <= 0" | ||
| 305 | + >添加到航班</el-button | ||
| 306 | + > | ||
| 307 | + <div class="tips"> | ||
| 308 | + <span style="paddingRight: 50px">总重量:{{ allWeight }}</span> | ||
| 309 | + <span>总件数:{{ allQty }}</span> | ||
| 310 | + </div> | ||
| 311 | + </div> | ||
| 312 | + </el-form> | ||
| 313 | + <Tables | ||
| 314 | + ref="newTables" | ||
| 315 | + :data="tableData" | ||
| 316 | + :headerData="tableHeader" | ||
| 317 | + :totalCount="totalCount" | ||
| 318 | + :loading="loading" | ||
| 319 | + :limitSize="size" | ||
| 320 | + :limitStart="formData.limitStart" | ||
| 321 | + :page="page" | ||
| 322 | + :shiftKey="shiftKey" | ||
| 323 | + height="350" | ||
| 324 | + @tableSelect="tableSelect" | ||
| 325 | + @tableSelectAll="tableSelectAll" | ||
| 326 | + @currentChange="currentChange" | ||
| 327 | + @sortChange="sortChange" | ||
| 328 | + ></Tables> | ||
| 329 | + <Dialog | ||
| 330 | + :tableData="tableSelection" | ||
| 331 | + :dialogVisible="dialogVisible" | ||
| 332 | + @dialogBeforeClose="dialogBeforeClose" | ||
| 333 | + ></Dialog> | ||
| 334 | + </div> | ||
| 335 | +</template> | ||
| 336 | + | ||
| 337 | +<script> | ||
| 338 | +import Dialog from "./info.vue"; | ||
| 339 | +import { findConditionData, findCargoAllocationData } from "@/api/cargoSelect"; | ||
| 340 | +import { allDictData } from "@/api/destinationFlight"; | ||
| 341 | +// import { findFltConditionDataApi } from "@/api/findAllFltData"; | ||
| 342 | +import { downLoadXlsx } from "@/utils/zipdownload"; | ||
| 343 | +import { upCase } from "@/utils/FedEx"; | ||
| 344 | + | ||
| 345 | +export default { | ||
| 346 | + name: "CargoAllocation", | ||
| 347 | + components: { | ||
| 348 | + Dialog, | ||
| 349 | + }, | ||
| 350 | + data() { | ||
| 351 | + return { | ||
| 352 | + formData: { | ||
| 353 | + fltDateStart: null, | ||
| 354 | + fltDateEnd: null, | ||
| 355 | + typeId: null, | ||
| 356 | + portName: null, | ||
| 357 | + statusId: null, | ||
| 358 | + kindToAllocFlightId: null, | ||
| 359 | + serviceTypeId: null, | ||
| 360 | + waybillNo: null, | ||
| 361 | + fltNo: null, | ||
| 362 | + ursaList: null, | ||
| 363 | + siteNameList: null, | ||
| 364 | + minWeight: undefined, | ||
| 365 | + maxWeight: undefined, | ||
| 366 | + minNumber: undefined, | ||
| 367 | + maxNumber: undefined, | ||
| 368 | + pickUpDate: null, | ||
| 369 | + handingCodes: null, | ||
| 370 | + subCategorys: null, | ||
| 371 | + customsReceiptStatusId: null, | ||
| 372 | + }, //查询数据 | ||
| 373 | + tableHeader: [ | ||
| 374 | + { | ||
| 375 | + type: "selection", | ||
| 376 | + name: "", | ||
| 377 | + value: "", | ||
| 378 | + width: "50", | ||
| 379 | + align: "center", | ||
| 380 | + sorTable: false, | ||
| 381 | + fixed: true, | ||
| 382 | + }, | ||
| 383 | + { | ||
| 384 | + type: "index", | ||
| 385 | + name: "", | ||
| 386 | + value: "", | ||
| 387 | + width: "50", | ||
| 388 | + align: "center", | ||
| 389 | + sorTable: false, | ||
| 390 | + fixed: false, | ||
| 391 | + }, | ||
| 392 | + { | ||
| 393 | + type: "", | ||
| 394 | + name: "口岸代码", | ||
| 395 | + value: "portName", | ||
| 396 | + width: "150", | ||
| 397 | + align: "center", | ||
| 398 | + sorTable: true, | ||
| 399 | + fixed: false, | ||
| 400 | + }, | ||
| 401 | + { | ||
| 402 | + type: "", | ||
| 403 | + name: "取件日期", | ||
| 404 | + value: "pickUpDate", | ||
| 405 | + width: "150", | ||
| 406 | + align: "center", | ||
| 407 | + sorTable: true, | ||
| 408 | + fixed: false, | ||
| 409 | + }, | ||
| 410 | + { | ||
| 411 | + type: "", | ||
| 412 | + name: "取件扫描号", | ||
| 413 | + value: "pickUpScanNo", | ||
| 414 | + width: "150", | ||
| 415 | + align: "center", | ||
| 416 | + sorTable: true, | ||
| 417 | + fixed: false, | ||
| 418 | + }, | ||
| 419 | + { | ||
| 420 | + type: "", | ||
| 421 | + name: "站点", | ||
| 422 | + value: "siteName", | ||
| 423 | + width: "150", | ||
| 424 | + align: "center", | ||
| 425 | + sorTable: true, | ||
| 426 | + fixed: false, | ||
| 427 | + }, | ||
| 428 | + { | ||
| 429 | + type: "", | ||
| 430 | + name: "运单号", | ||
| 431 | + value: "waybillNo", | ||
| 432 | + width: "150", | ||
| 433 | + align: "center", | ||
| 434 | + sorTable: true, | ||
| 435 | + fixed: false, | ||
| 436 | + }, | ||
| 437 | + { | ||
| 438 | + type: "", | ||
| 439 | + name: "总单号", | ||
| 440 | + value: "totalWaybillNo", | ||
| 441 | + width: "150", | ||
| 442 | + align: "center", | ||
| 443 | + sorTable: true, | ||
| 444 | + fixed: false, | ||
| 445 | + }, | ||
| 446 | + { | ||
| 447 | + type: "", | ||
| 448 | + name: "服务类型", | ||
| 449 | + value: "serviceTypeName", | ||
| 450 | + width: "150", | ||
| 451 | + align: "center", | ||
| 452 | + sorTable: true, | ||
| 453 | + fixed: false, | ||
| 454 | + }, | ||
| 455 | + { | ||
| 456 | + type: "", | ||
| 457 | + name: "服务代码", | ||
| 458 | + value: "serviceCode", | ||
| 459 | + width: "150", | ||
| 460 | + align: "center", | ||
| 461 | + sorTable: false, | ||
| 462 | + fixed:false, | ||
| 463 | + }, | ||
| 464 | + { | ||
| 465 | + type: "", | ||
| 466 | + name: "URSA", | ||
| 467 | + value: "ursa", | ||
| 468 | + width: "150", | ||
| 469 | + align: "center", | ||
| 470 | + sorTable: true, | ||
| 471 | + fixed: false, | ||
| 472 | + }, | ||
| 473 | + { | ||
| 474 | + type: "", | ||
| 475 | + name: "申报类型", | ||
| 476 | + value: "typeName", | ||
| 477 | + width: "150", | ||
| 478 | + align: "center", | ||
| 479 | + sorTable: true, | ||
| 480 | + fixed: false, | ||
| 481 | + }, | ||
| 482 | + { | ||
| 483 | + type: "", | ||
| 484 | + name: "HandlingCode", | ||
| 485 | + value: "handingCode", | ||
| 486 | + width: "150", | ||
| 487 | + align: "center", | ||
| 488 | + sorTable: true, | ||
| 489 | + fixed: false, | ||
| 490 | + }, | ||
| 491 | + { | ||
| 492 | + type: "", | ||
| 493 | + name: "subcategory", | ||
| 494 | + value: "subCategory", | ||
| 495 | + width: "150", | ||
| 496 | + align: "center", | ||
| 497 | + sorTable: true, | ||
| 498 | + fixed: false, | ||
| 499 | + }, | ||
| 500 | + { | ||
| 501 | + type: "", | ||
| 502 | + name: "件数", | ||
| 503 | + value: "qty", | ||
| 504 | + width: "150", | ||
| 505 | + align: "center", | ||
| 506 | + sorTable: true, | ||
| 507 | + fixed: false, | ||
| 508 | + }, | ||
| 509 | + { | ||
| 510 | + type: "", | ||
| 511 | + name: "实际重量", | ||
| 512 | + value: "actualWeight", | ||
| 513 | + width: "150", | ||
| 514 | + align: "center", | ||
| 515 | + sorTable: true, | ||
| 516 | + fixed: false, | ||
| 517 | + }, | ||
| 518 | + { | ||
| 519 | + type: "", | ||
| 520 | + name: "收件人国家代码", | ||
| 521 | + value: "consigneeCountry", | ||
| 522 | + width: "150", | ||
| 523 | + align: "center", | ||
| 524 | + sorTable: true, | ||
| 525 | + fixed: false, | ||
| 526 | + }, | ||
| 527 | + { | ||
| 528 | + type: "", | ||
| 529 | + name: "品名描述", | ||
| 530 | + value: "nameDescription", | ||
| 531 | + width: "150", | ||
| 532 | + align: "center", | ||
| 533 | + sorTable: false, | ||
| 534 | + fixed: false, | ||
| 535 | + }, | ||
| 536 | + { | ||
| 537 | + type: "", | ||
| 538 | + name: "海关回执状态", | ||
| 539 | + value: "customsReceiptStatusName", | ||
| 540 | + width: "150", | ||
| 541 | + align: "center", | ||
| 542 | + sorTable: true, | ||
| 543 | + fixed: false, | ||
| 544 | + }, | ||
| 545 | + { | ||
| 546 | + type: "", | ||
| 547 | + name: "预审状态", | ||
| 548 | + value: "preQualificationStatus", | ||
| 549 | + width: "150", | ||
| 550 | + align: "center", | ||
| 551 | + sorTable: true, | ||
| 552 | + fixed: false, | ||
| 553 | + }, | ||
| 554 | + { | ||
| 555 | + type: "", | ||
| 556 | + name: "航班预审意见", | ||
| 557 | + value: "caPretrialOpinion", | ||
| 558 | + width: "150", | ||
| 559 | + align: "center", | ||
| 560 | + sorTable: false, | ||
| 561 | + fixed: false, | ||
| 562 | + }, | ||
| 563 | + { | ||
| 564 | + type: "", | ||
| 565 | + name: "货物状态", | ||
| 566 | + value: "statusName", | ||
| 567 | + width: "150", | ||
| 568 | + align: "center", | ||
| 569 | + sorTable: true, | ||
| 570 | + fixed: false, | ||
| 571 | + }, | ||
| 572 | + { | ||
| 573 | + type: "", | ||
| 574 | + name: "终配航班号", | ||
| 575 | + value: "finalFlightNo", | ||
| 576 | + width: "150", | ||
| 577 | + align: "center", | ||
| 578 | + sorTable: true, | ||
| 579 | + fixed: false, | ||
| 580 | + }, | ||
| 581 | + { | ||
| 582 | + type: "", | ||
| 583 | + name: "终配航班日期", | ||
| 584 | + value: "finalFlightTime", | ||
| 585 | + width: "150", | ||
| 586 | + align: "center", | ||
| 587 | + sorTable: true, | ||
| 588 | + fixed: false, | ||
| 589 | + }, | ||
| 590 | + { | ||
| 591 | + type: "", | ||
| 592 | + name: "二配航班号", | ||
| 593 | + value: "twoMatchFlightNo", | ||
| 594 | + width: "150", | ||
| 595 | + align: "center", | ||
| 596 | + sorTable: true, | ||
| 597 | + fixed: false, | ||
| 598 | + }, | ||
| 599 | + { | ||
| 600 | + type: "", | ||
| 601 | + name: "二配航班日期", | ||
| 602 | + value: "twoMatchFlightTime", | ||
| 603 | + width: "150", | ||
| 604 | + align: "center", | ||
| 605 | + sorTable: true, | ||
| 606 | + fixed: false, | ||
| 607 | + }, | ||
| 608 | + { | ||
| 609 | + type: "", | ||
| 610 | + name: "预配航班号", | ||
| 611 | + value: "preplanFlightNo", | ||
| 612 | + width: "150", | ||
| 613 | + align: "center", | ||
| 614 | + sorTable: true, | ||
| 615 | + fixed: false, | ||
| 616 | + }, | ||
| 617 | + { | ||
| 618 | + type: "", | ||
| 619 | + name: "预配航班日期", | ||
| 620 | + value: "preplanFlightTime", | ||
| 621 | + width: "150", | ||
| 622 | + align: "center", | ||
| 623 | + sorTable: true, | ||
| 624 | + fixed: false, | ||
| 625 | + }, | ||
| 626 | + { | ||
| 627 | + type: "", | ||
| 628 | + name: "ACCS原航班号", | ||
| 629 | + value: "fltNoAccs", | ||
| 630 | + width: "150", | ||
| 631 | + align: "center", | ||
| 632 | + sorTable: true, | ||
| 633 | + fixed: false, | ||
| 634 | + }, | ||
| 635 | + { | ||
| 636 | + type: "", | ||
| 637 | + name: "ACCS原航班日期", | ||
| 638 | + value: "fltDateAccs", | ||
| 639 | + width: "150", | ||
| 640 | + align: "center", | ||
| 641 | + sorTable: true, | ||
| 642 | + fixed: false, | ||
| 643 | + }, | ||
| 644 | + { | ||
| 645 | + type: "", | ||
| 646 | + name: "ACCS原航线", | ||
| 647 | + value: "accsFlightRoute", | ||
| 648 | + width: "150", | ||
| 649 | + align: "center", | ||
| 650 | + sorTable: true, | ||
| 651 | + fixed: false, | ||
| 652 | + }, | ||
| 653 | + { | ||
| 654 | + type: "", | ||
| 655 | + name: "是否RDE手工录入", | ||
| 656 | + value: "manualRde", | ||
| 657 | + width: "170", | ||
| 658 | + align: "center", | ||
| 659 | + sorTable: true, | ||
| 660 | + fixed: false, | ||
| 661 | + }, | ||
| 662 | + { | ||
| 663 | + type: "", | ||
| 664 | + name: "是否自动", | ||
| 665 | + value: "cargoRulesStatus", | ||
| 666 | + width: "150", | ||
| 667 | + align: "center", | ||
| 668 | + sorTable: true, | ||
| 669 | + fixed: false, | ||
| 670 | + }, | ||
| 671 | + { | ||
| 672 | + type: "", | ||
| 673 | + name: "发件人账号", | ||
| 674 | + value: "shipperAccount", | ||
| 675 | + width: "150", | ||
| 676 | + align: "center", | ||
| 677 | + sorTable: false, | ||
| 678 | + fixed: false, | ||
| 679 | + }, | ||
| 680 | + { | ||
| 681 | + type: "", | ||
| 682 | + name: "发件公司中文名称", | ||
| 683 | + value: "shipperCompany", | ||
| 684 | + width: "150", | ||
| 685 | + align: "center", | ||
| 686 | + sorTable: false, | ||
| 687 | + fixed: false, | ||
| 688 | + }, | ||
| 689 | + { | ||
| 690 | + type: "", | ||
| 691 | + name: "始发地城市名称", | ||
| 692 | + value: "originCity", | ||
| 693 | + width: "150", | ||
| 694 | + align: "center", | ||
| 695 | + sorTable: false, | ||
| 696 | + fixed: false, | ||
| 697 | + }, | ||
| 698 | + { | ||
| 699 | + type: "", | ||
| 700 | + name: "收件地", | ||
| 701 | + value: "destinationSiteName", | ||
| 702 | + width: "150", | ||
| 703 | + align: "center", | ||
| 704 | + sorTable: false, | ||
| 705 | + fixed: false, | ||
| 706 | + }, | ||
| 707 | + { | ||
| 708 | + type: "", | ||
| 709 | + name: "尺寸", | ||
| 710 | + value: "sizeStr", | ||
| 711 | + width: "150", | ||
| 712 | + align: "center", | ||
| 713 | + sorTable: true, | ||
| 714 | + fixed: false, | ||
| 715 | + }, | ||
| 716 | + { | ||
| 717 | + type: "", | ||
| 718 | + name: "大货预审意见(是否可以配置航班)", | ||
| 719 | + value: "bigPretrialOpinion", | ||
| 720 | + width: "300", | ||
| 721 | + align: "center", | ||
| 722 | + sorTable: false, | ||
| 723 | + fixed: false, | ||
| 724 | + }, | ||
| 725 | + { | ||
| 726 | + type: "", | ||
| 727 | + name: "大货预审时间", | ||
| 728 | + value: "bigPretrialTime", | ||
| 729 | + width: "150", | ||
| 730 | + align: "center", | ||
| 731 | + sorTable: false, | ||
| 732 | + fixed: false, | ||
| 733 | + }, | ||
| 734 | + { | ||
| 735 | + type: "", | ||
| 736 | + name: "海关回执时间", | ||
| 737 | + value: "customsReceiptTime", | ||
| 738 | + width: "150", | ||
| 739 | + align: "center", | ||
| 740 | + sorTable: true, | ||
| 741 | + fixed: false, | ||
| 742 | + }, | ||
| 743 | + { | ||
| 744 | + type: "", | ||
| 745 | + name: "航班预审时间", | ||
| 746 | + value: "caPretrialTime", | ||
| 747 | + width: "150", | ||
| 748 | + align: "center", | ||
| 749 | + sorTable: true, | ||
| 750 | + fixed: false, | ||
| 751 | + }, | ||
| 752 | + { | ||
| 753 | + type: "", | ||
| 754 | + name: "创建人", | ||
| 755 | + value: "createUserName", | ||
| 756 | + width: "150", | ||
| 757 | + align: "center", | ||
| 758 | + sorTable: true, | ||
| 759 | + fixed: false, | ||
| 760 | + }, | ||
| 761 | + { | ||
| 762 | + type: "", | ||
| 763 | + name: "创建时间", | ||
| 764 | + value: "createTime", | ||
| 765 | + width: "150", | ||
| 766 | + align: "center", | ||
| 767 | + sorTable: true, | ||
| 768 | + fixed: false, | ||
| 769 | + }, | ||
| 770 | + ], //表头数据 | ||
| 771 | + tableData: [], //表格数据 | ||
| 772 | + tableSelection: [], //选中数据 | ||
| 773 | + selectData: { | ||
| 774 | + findConditionData: [], | ||
| 775 | + fltTypes: [], | ||
| 776 | + HandlingCode: [], | ||
| 777 | + SubCategory: [], | ||
| 778 | + }, //查询条件 | ||
| 779 | + fltDate: [], | ||
| 780 | + ursaList: "", | ||
| 781 | + siteNameList: "", | ||
| 782 | + handingCodes: [], | ||
| 783 | + subCategorys: [], | ||
| 784 | + valueFormat: "yyyy-MM-dd", | ||
| 785 | + totalCount: 0, | ||
| 786 | + page: 1, | ||
| 787 | + size: 100, | ||
| 788 | + allWeight: 0, | ||
| 789 | + allQty: 0, | ||
| 790 | + dialogVisible: false, | ||
| 791 | + shiftKey: false, | ||
| 792 | + createDate: null, | ||
| 793 | + loading: false, | ||
| 794 | + downLoadingTip: { | ||
| 795 | + tip: "", | ||
| 796 | + downloading: false, | ||
| 797 | + }, | ||
| 798 | + }; | ||
| 799 | + }, | ||
| 800 | + created() { | ||
| 801 | + this.seleData(); | ||
| 802 | + this.select(); | ||
| 803 | + }, | ||
| 804 | + | ||
| 805 | + mounted() { | ||
| 806 | + window.addEventListener("keydown", (code) => { | ||
| 807 | + if (code.keyCode === 16 && code.shiftKey) { | ||
| 808 | + this.shiftKey = true; | ||
| 809 | + } | ||
| 810 | + }); | ||
| 811 | + window.addEventListener("keyup", (code) => { | ||
| 812 | + if (code.keyCode === 16) { | ||
| 813 | + this.shiftKey = false; | ||
| 814 | + } | ||
| 815 | + }); | ||
| 816 | + }, | ||
| 817 | + methods: { | ||
| 818 | + //查询条件 | ||
| 819 | + async seleData() { | ||
| 820 | + // findFltConditionDataApi() | ||
| 821 | + // .then((res) => { | ||
| 822 | + // if (res.code === 200) { | ||
| 823 | + // this.selectData.fltTypes = res.data.flightType; | ||
| 824 | + // }else{ | ||
| 825 | + // this.$message({ | ||
| 826 | + // message: "查询条件不存在", | ||
| 827 | + // type: "warning", | ||
| 828 | + // }); | ||
| 829 | + // } | ||
| 830 | + // }) | ||
| 831 | + // .catch(() => {}); | ||
| 832 | + | ||
| 833 | + allDictData() | ||
| 834 | + .then((res) => { | ||
| 835 | + if (res.code === 200) { | ||
| 836 | + this.selectData.HandlingCode = res.data.handlingCode; | ||
| 837 | + this.selectData.SubCategory = res.data.subCategory; | ||
| 838 | + }else{ | ||
| 839 | + this.$message({ | ||
| 840 | + message: "查询条件不存在", | ||
| 841 | + type: "warning", | ||
| 842 | + }); | ||
| 843 | + } | ||
| 844 | + }) | ||
| 845 | + .catch(() => {}); | ||
| 846 | + | ||
| 847 | + findConditionData() | ||
| 848 | + .then((res) => { | ||
| 849 | + if (res.code == 200) { | ||
| 850 | + this.selectData.findConditionData = res.data; | ||
| 851 | + }else{ | ||
| 852 | + this.$message({ | ||
| 853 | + message: "查询条件不存在", | ||
| 854 | + type: "warning", | ||
| 855 | + }); | ||
| 856 | + } | ||
| 857 | + }) | ||
| 858 | + .catch(() => {}); | ||
| 859 | + }, | ||
| 860 | + //查询 | ||
| 861 | + async select(val) { | ||
| 862 | + this.loading = true; | ||
| 863 | + this.dataInfo(); | ||
| 864 | + if(val === 0){ | ||
| 865 | + this.page = 1; | ||
| 866 | + this.formData.page = 1; | ||
| 867 | + } | ||
| 868 | + findCargoAllocationData(this.formData) | ||
| 869 | + .then((res) => { | ||
| 870 | + this.loading = false; | ||
| 871 | + if (res.code === 200) { | ||
| 872 | + this.tableData = res.data.list; | ||
| 873 | + this.totalCount = res.data.total; | ||
| 874 | + if (res.data.list.length > 0) { | ||
| 875 | + this.tableData.forEach((item, index = 0) => { | ||
| 876 | + item.index = index; | ||
| 877 | + }); | ||
| 878 | + } else { | ||
| 879 | + this.$message({ | ||
| 880 | + message: "未查询到数据", | ||
| 881 | + type: "warning", | ||
| 882 | + }); | ||
| 883 | + } | ||
| 884 | + } else { | ||
| 885 | + this.$message({ | ||
| 886 | + message: res.msg, | ||
| 887 | + type: "warning", | ||
| 888 | + }); | ||
| 889 | + } | ||
| 890 | + }) | ||
| 891 | + .catch(() => { | ||
| 892 | + this.loading = false; | ||
| 893 | + }); | ||
| 894 | + }, | ||
| 895 | + //总和 | ||
| 896 | + cargoTotal() { | ||
| 897 | + this.allWeight = 0; | ||
| 898 | + this.allQty = 0; | ||
| 899 | + if (this.tableSelection.length > 0) { | ||
| 900 | + this.tableSelection.forEach((item) => { | ||
| 901 | + this.allWeight = this.allWeight + item.actualWeight; | ||
| 902 | + this.allQty = this.allQty + item.qty; | ||
| 903 | + }); | ||
| 904 | + this.allWeight = this.allWeight.toFixed(2); | ||
| 905 | + this.allQty = this.allQty.toFixed(); | ||
| 906 | + } | ||
| 907 | + }, | ||
| 908 | + //数据初始化 | ||
| 909 | + dataInfo() { | ||
| 910 | + this.formData.ursaList = null; | ||
| 911 | + this.formData.siteNameList = null; | ||
| 912 | + this.formData.handingCodes = null; | ||
| 913 | + this.formData.subCategorys = null; | ||
| 914 | + if (this.handingCodes.length > 0) { | ||
| 915 | + this.formData.handingCodes = this.handingCodes; | ||
| 916 | + } | ||
| 917 | + if (this.subCategorys.length > 0) { | ||
| 918 | + this.formData.subCategorys = this.subCategorys; | ||
| 919 | + } | ||
| 920 | + if (this.formData.minWeight === 0) { | ||
| 921 | + this.formData.minWeight = undefined; | ||
| 922 | + } | ||
| 923 | + if (this.formData.maxWeight === 0) { | ||
| 924 | + this.formData.maxWeight = undefined; | ||
| 925 | + } | ||
| 926 | + if (this.formData.minNumber === 0) { | ||
| 927 | + this.formData.minNumber = undefined; | ||
| 928 | + } | ||
| 929 | + if (this.formData.maxNumber === 0) { | ||
| 930 | + this.formData.maxNumber = undefined; | ||
| 931 | + } | ||
| 932 | + if (this.ursaList && this.ursaList != "") { | ||
| 933 | + this.formData.ursaList = this.ursaList.split(";" || ""); | ||
| 934 | + } | ||
| 935 | + if (this.siteNameList && this.siteNameList != "") { | ||
| 936 | + this.formData.siteNameList = this.siteNameList.split(";" || ""); | ||
| 937 | + } | ||
| 938 | + if (this.fltDate && this.fltDate.length > 0) { | ||
| 939 | + this.formData.fltDateStart = this.fltDate[0]; | ||
| 940 | + this.formData.fltDateEnd = this.fltDate[1]; | ||
| 941 | + } else { | ||
| 942 | + this.formData.fltDateStart = null; | ||
| 943 | + this.formData.fltDateEnd = null; | ||
| 944 | + } | ||
| 945 | + if ( | ||
| 946 | + this.formData.customsReceiptStatusId != null && | ||
| 947 | + this.formData.customsReceiptStatusId.length < 1 | ||
| 948 | + ) { | ||
| 949 | + this.formData.customsReceiptStatusId = null; | ||
| 950 | + } | ||
| 951 | + this.formData.page = this.page; | ||
| 952 | + this.formData.size = this.size; | ||
| 953 | + if(this.formData.waybillNo){ | ||
| 954 | + this.formData.waybillNo = this.formData.waybillNo.trim(); | ||
| 955 | + } | ||
| 956 | + }, | ||
| 957 | + //导出表格 | ||
| 958 | + xlsx(val) { | ||
| 959 | + this.downLoadingTip.downloading = true; | ||
| 960 | + this.dataInfo(); | ||
| 961 | + if (val === 0) { | ||
| 962 | + this.downLoadingTip.tip = "正在导出本页结果集"; | ||
| 963 | + downLoadXlsx("/cargo/allocationExcel", this.formData, "手动配舱表") | ||
| 964 | + .then((res) => { | ||
| 965 | + this.downLoadingTip.downloading = false; | ||
| 966 | + }) | ||
| 967 | + .catch((err) => { | ||
| 968 | + this.downLoadingTip.downloading = false; | ||
| 969 | + console.log(err); | ||
| 970 | + }); | ||
| 971 | + } else { | ||
| 972 | + this.downLoadingTip.tip = "正在导出全部结果集请耐心等待"; | ||
| 973 | + this.formData.page = null; | ||
| 974 | + this.formData.size = null; | ||
| 975 | + downLoadXlsx("/cargo/allocationExcel", this.formData, "手动配舱表") | ||
| 976 | + .then((res) => { | ||
| 977 | + this.downLoadingTip.downloading = false; | ||
| 978 | + }) | ||
| 979 | + .catch((err) => { | ||
| 980 | + this.downLoadingTip.downloading = false; | ||
| 981 | + console.log(err); | ||
| 982 | + }); | ||
| 983 | + } | ||
| 984 | + }, | ||
| 985 | + //表格选择 | ||
| 986 | + tableSelect(val) { | ||
| 987 | + this.tableSelection = val.selection; | ||
| 988 | + this.cargoTotal(); | ||
| 989 | + }, | ||
| 990 | + //表格全选 | ||
| 991 | + tableSelectAll(val) { | ||
| 992 | + this.tableSelection = val; | ||
| 993 | + this.cargoTotal(); | ||
| 994 | + }, | ||
| 995 | + //分页 | ||
| 996 | + currentChange(val) { | ||
| 997 | + this.page = val.page; | ||
| 998 | + this.select(); | ||
| 999 | + }, | ||
| 1000 | + //排序 | ||
| 1001 | + sortChange(val) { | ||
| 1002 | + let data = []; | ||
| 1003 | + let nullData = []; | ||
| 1004 | + this.tableData.forEach((item) => { | ||
| 1005 | + if (item[val.prop]) { | ||
| 1006 | + data.push(item); | ||
| 1007 | + } else { | ||
| 1008 | + nullData.push(item); | ||
| 1009 | + } | ||
| 1010 | + }); | ||
| 1011 | + data = data.sort(this.$refs.newTables.compare(val.prop, val.order)); | ||
| 1012 | + if (val.order != "ascending") { | ||
| 1013 | + this.tableData = nullData.concat(data); | ||
| 1014 | + } else { | ||
| 1015 | + this.tableData = data.concat(nullData); | ||
| 1016 | + } | ||
| 1017 | + this.tableData.forEach((item, index = 0) => { | ||
| 1018 | + item.index = index; | ||
| 1019 | + }); | ||
| 1020 | + }, | ||
| 1021 | + //添加到航班 | ||
| 1022 | + addFit() { | ||
| 1023 | + this.dialogVisible = true; | ||
| 1024 | + }, | ||
| 1025 | + //关闭弹框 | ||
| 1026 | + dialogBeforeClose(val) { | ||
| 1027 | + this.dialogVisible = val.close; | ||
| 1028 | + if (val.reload) { | ||
| 1029 | + this.tableSelection = []; | ||
| 1030 | + this.$refs.newTables.clearTable(); | ||
| 1031 | + this.cargoTotal(); | ||
| 1032 | + this.select(); | ||
| 1033 | + } | ||
| 1034 | + }, | ||
| 1035 | + }, | ||
| 1036 | + computed: { | ||
| 1037 | + fltNo: { | ||
| 1038 | + get: function () { | ||
| 1039 | + return this.formData.fltNo; | ||
| 1040 | + }, | ||
| 1041 | + set: function (val) { | ||
| 1042 | + this.formData.fltNo = upCase(val); | ||
| 1043 | + }, | ||
| 1044 | + }, | ||
| 1045 | + ursa: { | ||
| 1046 | + get: function () { | ||
| 1047 | + return this.ursaList; | ||
| 1048 | + }, | ||
| 1049 | + set: function (val) { | ||
| 1050 | + this.ursaList = upCase(val); | ||
| 1051 | + }, | ||
| 1052 | + }, | ||
| 1053 | + siteName: { | ||
| 1054 | + get: function () { | ||
| 1055 | + return this.siteNameList; | ||
| 1056 | + }, | ||
| 1057 | + set: function (val) { | ||
| 1058 | + this.siteNameList = upCase(val); | ||
| 1059 | + }, | ||
| 1060 | + }, | ||
| 1061 | + portName: { | ||
| 1062 | + get: function () { | ||
| 1063 | + return this.formData.portName; | ||
| 1064 | + }, | ||
| 1065 | + set: function (val) { | ||
| 1066 | + this.formData.portName = upCase(val); | ||
| 1067 | + }, | ||
| 1068 | + }, | ||
| 1069 | + }, | ||
| 1070 | +}; | ||
| 1071 | +</script> | ||
| 1072 | + | ||
| 1073 | +<style lang="scss"> | ||
| 1074 | +.tips { | ||
| 1075 | + display: inline-block; | ||
| 1076 | + color: #606266; | ||
| 1077 | + font-size: 14px; | ||
| 1078 | + margin-top: 10px; | ||
| 1079 | + margin-left: 50px; | ||
| 1080 | +} | ||
| 1081 | +.line { | ||
| 1082 | + text-align: center; | ||
| 1083 | +} | ||
| 1084 | +.el-empty { | ||
| 1085 | + width: 30%; | ||
| 1086 | + height: 37px; | ||
| 1087 | + padding: 0px; | ||
| 1088 | + line-height: 37px; | ||
| 1089 | + .el-empty__image { | ||
| 1090 | + width: 0px; | ||
| 1091 | + height: 0px; | ||
| 1092 | + } | ||
| 1093 | + .el-empty__description { | ||
| 1094 | + margin-top: 0px; | ||
| 1095 | + } | ||
| 1096 | +} | ||
| 1097 | +</style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | +<template> | ||
| 2 | + <div> | ||
| 3 | + <el-dialog | ||
| 4 | + title="货物配舱" | ||
| 5 | + width="80%" | ||
| 6 | + :visible.sync="dialogVisible" | ||
| 7 | + :close-on-click-modal="false" | ||
| 8 | + :append-to-body="true" | ||
| 9 | + > | ||
| 10 | + <el-divider content-position="left">已选货物信息</el-divider> | ||
| 11 | + <el-table | ||
| 12 | + :data="tableData" | ||
| 13 | + size="mini" | ||
| 14 | + height="200" | ||
| 15 | + max-height="200" | ||
| 16 | + border | ||
| 17 | + stripe | ||
| 18 | + highlight-current-row | ||
| 19 | + style="width: 100%" | ||
| 20 | + > | ||
| 21 | + <el-table-column type="index" label="序号" align="center"> | ||
| 22 | + </el-table-column> | ||
| 23 | + <el-table-column | ||
| 24 | + v-for="(item, index) in cargoHeader" | ||
| 25 | + header-align="center" | ||
| 26 | + align="center" | ||
| 27 | + :prop="item.value" | ||
| 28 | + :label="item.name" | ||
| 29 | + :key="index" | ||
| 30 | + :show-overflow-tooltip="true" | ||
| 31 | + > | ||
| 32 | + </el-table-column> | ||
| 33 | + </el-table> | ||
| 34 | + <el-form | ||
| 35 | + ref="form" | ||
| 36 | + label-position="right" | ||
| 37 | + label-width="auto" | ||
| 38 | + style="width: 400px; margin: 30px auto" | ||
| 39 | + > | ||
| 40 | + <el-form-item label="航班号" prop="fltNo"> | ||
| 41 | + <el-input | ||
| 42 | + v-model="fltNo" | ||
| 43 | + size="medium" | ||
| 44 | + placeholder="请输入航班号" | ||
| 45 | + style="width: 350px" | ||
| 46 | + ></el-input> | ||
| 47 | + </el-form-item> | ||
| 48 | + <el-form-item label="航班日期:" prop="fltDate"> | ||
| 49 | + <el-date-picker | ||
| 50 | + v-model="formData.fltDate" | ||
| 51 | + type="date" | ||
| 52 | + placeholder="选择日期" | ||
| 53 | + value-format="yyyy-MM-dd" | ||
| 54 | + size="medium" | ||
| 55 | + style="width: 350px" | ||
| 56 | + > | ||
| 57 | + </el-date-picker> | ||
| 58 | + </el-form-item> | ||
| 59 | + </el-form> | ||
| 60 | + <div slot="footer"> | ||
| 61 | + <el-button @click="dialogBeforeClose">取 消</el-button> | ||
| 62 | + <el-button type="primary" @click="submit" :loading="loading">确 定</el-button> | ||
| 63 | + </div> | ||
| 64 | + </el-dialog> | ||
| 65 | + </div> | ||
| 66 | +</template> | ||
| 67 | + | ||
| 68 | +<script> | ||
| 69 | +import { allocationFlight } from "@/api/cargoSelect"; | ||
| 70 | +import { MessageBox } from "element-ui"; | ||
| 71 | +export default { | ||
| 72 | + props: { | ||
| 73 | + dialogVisible: { | ||
| 74 | + type: Boolean, | ||
| 75 | + default: false, | ||
| 76 | + }, | ||
| 77 | + tableData: { | ||
| 78 | + type: Array, | ||
| 79 | + default: null, | ||
| 80 | + }, | ||
| 81 | + }, | ||
| 82 | + data() { | ||
| 83 | + return { | ||
| 84 | + formData: { | ||
| 85 | + ids: [], | ||
| 86 | + fltNo: undefined, | ||
| 87 | + fltDate: undefined, | ||
| 88 | + overweight: false, | ||
| 89 | + }, | ||
| 90 | + cargoHeader: [ | ||
| 91 | + { name: "口岸代码", value: "portName" }, | ||
| 92 | + { name: "运单号", value: "waybillNo" }, | ||
| 93 | + { name: "货物状态", value: "statusName" }, | ||
| 94 | + { name: "站点", value: "siteName" }, | ||
| 95 | + { name: "申报类型", value: "typeName" }, | ||
| 96 | + { name: "URSA", value: "ursa" }, | ||
| 97 | + { name: "实际重量", value: "actualWeight" }, | ||
| 98 | + { name: "件数", value: "qty" }, | ||
| 99 | + { name: "ACCS原航班号", value: "fltNoAccs" }, | ||
| 100 | + { name: "ACCS原航班日期", value: "fltDateAccs" }, | ||
| 101 | + { name: "品名描述", value: "nameDescription" }, | ||
| 102 | + { name: "是否自动", value: "cargoRulesStatus" }, | ||
| 103 | + { name: "创建人", value: "createUserName" }, | ||
| 104 | + { name: "创建时间", value: "createTime" }, | ||
| 105 | + ], | ||
| 106 | + rules: { | ||
| 107 | + fltNo: [ | ||
| 108 | + { | ||
| 109 | + required: true, | ||
| 110 | + message: "航班号不能为空", | ||
| 111 | + trigger: "blur", | ||
| 112 | + }, | ||
| 113 | + ], | ||
| 114 | + fltDate: [ | ||
| 115 | + { | ||
| 116 | + required: true, | ||
| 117 | + message: "航班日期不能为空", | ||
| 118 | + trigger: "change", | ||
| 119 | + }, | ||
| 120 | + ], | ||
| 121 | + }, | ||
| 122 | + loading:false | ||
| 123 | + }; | ||
| 124 | + }, | ||
| 125 | + methods: { | ||
| 126 | + cleaerForm() { | ||
| 127 | + this.formData = { | ||
| 128 | + ids: [], | ||
| 129 | + fltNo: undefined, | ||
| 130 | + fltDate: undefined, | ||
| 131 | + overweight: false, | ||
| 132 | + }; | ||
| 133 | + }, | ||
| 134 | + //确定配舱 | ||
| 135 | + submit() { | ||
| 136 | + this.loading = true; | ||
| 137 | + let arr = []; | ||
| 138 | + this.tableData.forEach((item) => { | ||
| 139 | + arr.push(item.id); | ||
| 140 | + }); | ||
| 141 | + this.formData.ids = arr; | ||
| 142 | + if (this.formData.fltNo && this.formData.fltDate) { | ||
| 143 | + allocationFlight(this.formData).then((res) => { | ||
| 144 | + //code 200 配舱成功 202 重量已满需要确认 其余code直接输出msg | ||
| 145 | + if (res.code === 200) { | ||
| 146 | + this.$message({ | ||
| 147 | + message: "货物配舱成功", | ||
| 148 | + type: "success", | ||
| 149 | + }); | ||
| 150 | + this.cleaerForm(); | ||
| 151 | + this.loading = false; | ||
| 152 | + this.$emit("dialogBeforeClose", { close: false, reload: true }); | ||
| 153 | + } else if (res.code === 202) { | ||
| 154 | + MessageBox.confirm(res.msg, "提示", { | ||
| 155 | + confirmButtonText: "确定", | ||
| 156 | + cancelButtonText: "取消", | ||
| 157 | + type: "warning", | ||
| 158 | + }) | ||
| 159 | + .then(() => { | ||
| 160 | + this.formData.overweight = true; //确定继续overweight变为true再次请求接口 | ||
| 161 | + allocationFlight(this.formData).then((res) => { | ||
| 162 | + if (res.code === 200) { | ||
| 163 | + this.$message({ | ||
| 164 | + message: "货物配舱成功", | ||
| 165 | + type: "success", | ||
| 166 | + }); | ||
| 167 | + } else { | ||
| 168 | + this.$message({ | ||
| 169 | + message: res.msg, | ||
| 170 | + type: "warning", | ||
| 171 | + }); | ||
| 172 | + } | ||
| 173 | + }); | ||
| 174 | + this.cleaerForm(); | ||
| 175 | + this.loading = false; | ||
| 176 | + this.$emit("dialogBeforeClose", { close: false, reload: true }); | ||
| 177 | + }) | ||
| 178 | + .catch(() => { | ||
| 179 | + //取消 取消当前配舱 | ||
| 180 | + this.$message({ | ||
| 181 | + message: "配舱已取消", | ||
| 182 | + type: "success", | ||
| 183 | + }); | ||
| 184 | + this.cleaerForm(); | ||
| 185 | + this.loading = false; | ||
| 186 | + this.$emit("dialogBeforeClose", { | ||
| 187 | + close: false, | ||
| 188 | + reload: true, | ||
| 189 | + }); | ||
| 190 | + }); | ||
| 191 | + } else { | ||
| 192 | + this.loading = false; | ||
| 193 | + this.$message({ | ||
| 194 | + message: res.msg, | ||
| 195 | + type: "warning", | ||
| 196 | + }); | ||
| 197 | + } | ||
| 198 | + }).catch(()=>{ | ||
| 199 | + this.loading = false; | ||
| 200 | + }); | ||
| 201 | + } else { | ||
| 202 | + this.loading = false; | ||
| 203 | + this.$message({ | ||
| 204 | + message: "航班号或航班日期不能为空", | ||
| 205 | + type: "warning", | ||
| 206 | + }); | ||
| 207 | + } | ||
| 208 | + }, | ||
| 209 | + dialogBeforeClose() { | ||
| 210 | + this.cleaerForm(); | ||
| 211 | + this.$emit("dialogBeforeClose", { close: false, reload: true }); | ||
| 212 | + }, | ||
| 213 | + }, | ||
| 214 | + computed: { | ||
| 215 | + fltNo: { | ||
| 216 | + get: function () { | ||
| 217 | + return this.formData.fltNo; | ||
| 218 | + }, | ||
| 219 | + set: function (val) { | ||
| 220 | + this.formData.fltNo = val.toUpperCase(); | ||
| 221 | + }, | ||
| 222 | + }, | ||
| 223 | + }, | ||
| 224 | +}; | ||
| 225 | +</script> | ||
| 226 | + | ||
| 227 | +<style> | ||
| 228 | +</style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | +<template> | ||
| 2 | + <div style="margin: 40px" class="app-container"> | ||
| 3 | + <el-form | ||
| 4 | + :inline="true" | ||
| 5 | + :model="queryParams" | ||
| 6 | + class="demo-form-inline" | ||
| 7 | + size="small" | ||
| 8 | + > | ||
| 9 | + <el-form-item label="航班号"> | ||
| 10 | + <el-input | ||
| 11 | + v-model.trim="purposeOfFlightNo" | ||
| 12 | + placeholder="航班号" | ||
| 13 | + @keyup.enter.native="getList" | ||
| 14 | + ></el-input> | ||
| 15 | + </el-form-item> | ||
| 16 | + <el-form-item label="状态"> | ||
| 17 | + <el-select v-model="queryParams.status" placeholder="状态"> | ||
| 18 | + <el-option label="有效" value="1"></el-option> | ||
| 19 | + <el-option label="停用" value="3"></el-option> | ||
| 20 | + </el-select> | ||
| 21 | + </el-form-item> | ||
| 22 | + <el-form-item> | ||
| 23 | + <el-button | ||
| 24 | + type="primary" | ||
| 25 | + icon="el-icon-search" | ||
| 26 | + @click="getList" | ||
| 27 | + size="mini" | ||
| 28 | + >查询</el-button | ||
| 29 | + > | ||
| 30 | + </el-form-item> | ||
| 31 | + </el-form> | ||
| 32 | + <el-button | ||
| 33 | + style="margin-bottom: 20px" | ||
| 34 | + type="primary" | ||
| 35 | + icon="el-icon-plus" | ||
| 36 | + size="mini" | ||
| 37 | + @click=" | ||
| 38 | + $router.push({ | ||
| 39 | + name: 'FlightAllocConfigAdd', | ||
| 40 | + params: { handle: 'add' }, | ||
| 41 | + }) | ||
| 42 | + " | ||
| 43 | + >添加</el-button | ||
| 44 | + > | ||
| 45 | + <el-table :data="flyList" v-loading="loading" size="small"> | ||
| 46 | + <el-table-column | ||
| 47 | + prop="purposeOfFlightNo" | ||
| 48 | + label="航班号" | ||
| 49 | + align="center" | ||
| 50 | + ></el-table-column> | ||
| 51 | + | ||
| 52 | + <el-table-column prop="status" label="状态" align="center"> | ||
| 53 | + <template slot-scope="scope"> | ||
| 54 | + <span v-if="scope.row.status === '0'">无效</span> | ||
| 55 | + <span v-if="scope.row.status === '1'">有效</span> | ||
| 56 | + <span v-if="scope.row.status === '2'">配置中</span> | ||
| 57 | + <span v-if="scope.row.status === '3'">停用</span> | ||
| 58 | + </template> | ||
| 59 | + </el-table-column> | ||
| 60 | + | ||
| 61 | + <el-table-column prop="createUserName" label="操作人" align="center"> | ||
| 62 | + </el-table-column> | ||
| 63 | + | ||
| 64 | + <el-table-column prop="createTime" label="更新时间" align="center"> | ||
| 65 | + </el-table-column> | ||
| 66 | + | ||
| 67 | + <el-table-column label="操作" prop="id" align="center"> | ||
| 68 | + <template slot-scope="scope"> | ||
| 69 | + <el-button | ||
| 70 | + type="text" | ||
| 71 | + size="mini" | ||
| 72 | + icon="el-icon-view" | ||
| 73 | + @click="handleClick(scope.row.id, 'detail')" | ||
| 74 | + >查看</el-button | ||
| 75 | + > | ||
| 76 | + <el-button | ||
| 77 | + type="text" | ||
| 78 | + size="mini" | ||
| 79 | + icon="el-icon-edit" | ||
| 80 | + @click="handleClick(scope.row.id, 'update')" | ||
| 81 | + >修改</el-button | ||
| 82 | + > | ||
| 83 | + <el-button | ||
| 84 | + type="text" | ||
| 85 | + size="mini" | ||
| 86 | + icon="el-icon-delete" | ||
| 87 | + @click="del(scope.row.id, scope.row.status)" | ||
| 88 | + >删除</el-button | ||
| 89 | + > | ||
| 90 | + <el-button | ||
| 91 | + type="text" | ||
| 92 | + size="mini" | ||
| 93 | + icon="el-icon-video-pause" | ||
| 94 | + @click="changeStatus(scope.row.id, 3)" | ||
| 95 | + v-if="scope.row.status == '1'" | ||
| 96 | + >停用</el-button | ||
| 97 | + > | ||
| 98 | + <el-button | ||
| 99 | + type="text" | ||
| 100 | + size="mini" | ||
| 101 | + icon="el-icon-video-play" | ||
| 102 | + @click="changeStatus(scope.row.id, 1)" | ||
| 103 | + v-else | ||
| 104 | + >启用</el-button | ||
| 105 | + > | ||
| 106 | + </template> | ||
| 107 | + </el-table-column> | ||
| 108 | + </el-table> | ||
| 109 | + <el-pagination | ||
| 110 | + @size-change="getList" | ||
| 111 | + @current-change="getList" | ||
| 112 | + :current-page.sync="curPage" | ||
| 113 | + :page-sizes="[10, 20, 30, 40]" | ||
| 114 | + :page-size.sync="limit" | ||
| 115 | + layout="prev, pager, next, jumper, sizes, total" | ||
| 116 | + :total="total" | ||
| 117 | + background | ||
| 118 | + :hide-on-single-page="true" | ||
| 119 | + style="margin-top: 40px; text-align: right" | ||
| 120 | + > | ||
| 121 | + </el-pagination> | ||
| 122 | + </div> | ||
| 123 | +</template> | ||
| 124 | + | ||
| 125 | +<script> | ||
| 126 | +import { | ||
| 127 | + findFlightNo, | ||
| 128 | + delFlightId, | ||
| 129 | + enableOrDisable, | ||
| 130 | +} from "@/api/destinationFlight"; | ||
| 131 | + | ||
| 132 | +export default { | ||
| 133 | + name: "FlightAllocConfig", | ||
| 134 | + data() { | ||
| 135 | + return { | ||
| 136 | + queryParams: { | ||
| 137 | + purposeOfFlightNo: "", | ||
| 138 | + status: "1", | ||
| 139 | + start: 0, | ||
| 140 | + limit: 10, | ||
| 141 | + }, | ||
| 142 | + flyList: [], | ||
| 143 | + curPage: 1, | ||
| 144 | + limit: 10, | ||
| 145 | + total: 0, | ||
| 146 | + loading: false, | ||
| 147 | + }; | ||
| 148 | + }, | ||
| 149 | + activated(){ | ||
| 150 | + this.getList() | ||
| 151 | + }, | ||
| 152 | + methods: { | ||
| 153 | + getList() { | ||
| 154 | + this.queryParams.limit = this.limit; | ||
| 155 | + if (this.curPage > 1) { | ||
| 156 | + this.queryParams.start = (this.curPage - 1) * this.queryParams.limit; | ||
| 157 | + } else { | ||
| 158 | + this.queryParams.start = 0; | ||
| 159 | + } | ||
| 160 | + this.loading = true; | ||
| 161 | + findFlightNo(this.queryParams).then((response) => { | ||
| 162 | + if (response.code != 200) { | ||
| 163 | + this.$message({ | ||
| 164 | + showClose: true, | ||
| 165 | + message: response.msg, | ||
| 166 | + type: "error", | ||
| 167 | + }); | ||
| 168 | + return; | ||
| 169 | + } | ||
| 170 | + this.flyList = response.data.list; | ||
| 171 | + this.total = response.data.totalCount; | ||
| 172 | + this.loading = false; | ||
| 173 | + }); | ||
| 174 | + }, | ||
| 175 | + //跳转到查看,修改页面 | ||
| 176 | + handleClick(flightiId, handle) { | ||
| 177 | + this.$router.push({ | ||
| 178 | + name: "FlightAllocConfigInfo", | ||
| 179 | + params: { handle: handle, id: flightiId }, | ||
| 180 | + }); | ||
| 181 | + }, | ||
| 182 | + //删除规则 | ||
| 183 | + del(id, status) { | ||
| 184 | + if (status == "1") { | ||
| 185 | + this.$confirm("航班规则生效中,无法删除,请停用后再操作", "警告", { | ||
| 186 | + confirmButtonText: "确定", | ||
| 187 | + showCancelButton: false, | ||
| 188 | + type: "warning", | ||
| 189 | + }); | ||
| 190 | + } else { | ||
| 191 | + this.$confirm("是否确认删除此航班规则?", "警告", { | ||
| 192 | + confirmButtonText: "确定", | ||
| 193 | + cancelButtonText: "取消", | ||
| 194 | + showCancelButton: true, | ||
| 195 | + type: "warning", | ||
| 196 | + }).then(() => { | ||
| 197 | + delFlightId(id) | ||
| 198 | + .then((res) => { | ||
| 199 | + this.$message({ | ||
| 200 | + message: res.msg, | ||
| 201 | + type: res.code === 200 ? "success" : "warning", | ||
| 202 | + }); | ||
| 203 | + this.getList(); | ||
| 204 | + }) | ||
| 205 | + .catch(() => {}); | ||
| 206 | + }); | ||
| 207 | + } | ||
| 208 | + }, | ||
| 209 | + //启用,停用 | ||
| 210 | + changeStatus(id, status) { | ||
| 211 | + let tip = status === 1 ? "启用" : "停用"; | ||
| 212 | + this.$confirm("是否确认" + tip + "此航班规则?", "警告", { | ||
| 213 | + confirmButtonText: "确定", | ||
| 214 | + cancelButtonText: "取消", | ||
| 215 | + type: "warning", | ||
| 216 | + }).then(() => { | ||
| 217 | + enableOrDisable(id, status) | ||
| 218 | + .then((res) => { | ||
| 219 | + if (res.code != 200) { | ||
| 220 | + this.msgError(res.msg); | ||
| 221 | + } else { | ||
| 222 | + this.getList(); | ||
| 223 | + this.msgSuccess(tip + "成功"); | ||
| 224 | + } | ||
| 225 | + }) | ||
| 226 | + .catch(() => {}); | ||
| 227 | + }); | ||
| 228 | + }, | ||
| 229 | + }, | ||
| 230 | + created() { | ||
| 231 | + this.getList(); | ||
| 232 | + }, | ||
| 233 | + computed: { | ||
| 234 | + purposeOfFlightNo: { | ||
| 235 | + get: function () { | ||
| 236 | + return this.queryParams.purposeOfFlightNo; | ||
| 237 | + }, | ||
| 238 | + set: function (val) { | ||
| 239 | + this.queryParams.purposeOfFlightNo = val.toUpperCase(); | ||
| 240 | + }, | ||
| 241 | + }, | ||
| 242 | + }, | ||
| 243 | +}; | ||
| 244 | +</script> | ||
| 245 | + | ||
| 246 | + |
| 1 | +<template> | ||
| 2 | + <div style="margin: 40px" v-loading="loading"> | ||
| 3 | + <div v-if="isEmpty"> | ||
| 4 | + <el-empty description="找不到这条数据!"></el-empty> | ||
| 5 | + <el-button size="small" @click="close">返回</el-button> | ||
| 6 | + </div> | ||
| 7 | + <template v-else> | ||
| 8 | + <el-form | ||
| 9 | + ref="form" | ||
| 10 | + :model="form" | ||
| 11 | + label-width="200px" | ||
| 12 | + size="small" | ||
| 13 | + :disabled="disable" | ||
| 14 | + :rules="rules" | ||
| 15 | + > | ||
| 16 | + <el-row :gutter="20"> | ||
| 17 | + <el-col :span="12"> | ||
| 18 | + <el-form-item label="航班号" prop="purposeOfFlightNo"> | ||
| 19 | + <el-input | ||
| 20 | + v-model.trim="form.purposeOfFlightNo" | ||
| 21 | + style="width: 60%" | ||
| 22 | + :disabled="nameDisabled" | ||
| 23 | + ></el-input> | ||
| 24 | + </el-form-item> | ||
| 25 | + </el-col> | ||
| 26 | + <el-col :span="12"> | ||
| 27 | + <el-form-item label="航班预审" prop="isNeedRequired"> | ||
| 28 | + <el-switch | ||
| 29 | + v-model="isNeedRequired" | ||
| 30 | + :active-value="1" | ||
| 31 | + :inactive-value="0" | ||
| 32 | + > | ||
| 33 | + </el-switch> | ||
| 34 | + </el-form-item> | ||
| 35 | + </el-col> | ||
| 36 | + </el-row> | ||
| 37 | + <el-form-item> | ||
| 38 | + <el-row :gutter="20"> | ||
| 39 | + <el-col :span="6"> | ||
| 40 | + <el-radio v-model="isLocation" label="1" size="mini" | ||
| 41 | + >站点包含</el-radio | ||
| 42 | + > | ||
| 43 | + <el-radio v-model="isLocation" label="2" size="mini" | ||
| 44 | + >站点不包含</el-radio | ||
| 45 | + > | ||
| 46 | + </el-col> | ||
| 47 | + <el-col :span="6"> | ||
| 48 | + <el-alert | ||
| 49 | + title="提示:站点之间用回车符分隔" | ||
| 50 | + type="warning" | ||
| 51 | + show-icon | ||
| 52 | + size="mini" | ||
| 53 | + :closable="false" | ||
| 54 | + style="height: 30px; width: fit-content" | ||
| 55 | + > | ||
| 56 | + </el-alert> | ||
| 57 | + </el-col> | ||
| 58 | + </el-row> | ||
| 59 | + </el-form-item> | ||
| 60 | + | ||
| 61 | + <el-form-item label="站点包含" v-show="isLocation == 1"> | ||
| 62 | + <el-input | ||
| 63 | + type="textarea" | ||
| 64 | + v-model="form.location" | ||
| 65 | + :rows="6" | ||
| 66 | + resize="none" | ||
| 67 | + style="width: 600px" | ||
| 68 | + ></el-input> | ||
| 69 | + </el-form-item> | ||
| 70 | + <el-form-item label="站点不包含" v-show="isLocation == 2"> | ||
| 71 | + <el-input | ||
| 72 | + type="textarea" | ||
| 73 | + v-model="form.notLocation" | ||
| 74 | + :rows="6" | ||
| 75 | + resize="none" | ||
| 76 | + style="width: 600px" | ||
| 77 | + ></el-input> | ||
| 78 | + </el-form-item> | ||
| 79 | + | ||
| 80 | + <el-form-item> | ||
| 81 | + <el-alert | ||
| 82 | + title="提示:URSA之间用分号分隔,例:F2;F3;P_" | ||
| 83 | + type="warning" | ||
| 84 | + show-icon | ||
| 85 | + size="mini" | ||
| 86 | + :closable="false" | ||
| 87 | + style="height: 30px; width: fit-content" | ||
| 88 | + > | ||
| 89 | + </el-alert> | ||
| 90 | + </el-form-item> | ||
| 91 | + <el-row :gutter="20"> | ||
| 92 | + <el-col :span="10"> | ||
| 93 | + <el-form-item label="URSA包含"> | ||
| 94 | + <el-input | ||
| 95 | + type="textarea" | ||
| 96 | + v-model.trim="form.includeUrsa" | ||
| 97 | + :rows="6" | ||
| 98 | + resize="none" | ||
| 99 | + ></el-input> | ||
| 100 | + </el-form-item> | ||
| 101 | + </el-col> | ||
| 102 | + <el-col :span="10"> | ||
| 103 | + <el-form-item label="URSA不包含"> | ||
| 104 | + <el-input | ||
| 105 | + type="textarea" | ||
| 106 | + v-model.trim="form.notIncludeUrsa" | ||
| 107 | + :rows="6" | ||
| 108 | + resize="none" | ||
| 109 | + ></el-input> | ||
| 110 | + </el-form-item> | ||
| 111 | + </el-col> | ||
| 112 | + </el-row> | ||
| 113 | + | ||
| 114 | + <el-form-item label="件数"> | ||
| 115 | + <el-col :span="3"> | ||
| 116 | + <el-input | ||
| 117 | + class="numberInput" | ||
| 118 | + v-model.trim="minNumOfPieces" | ||
| 119 | + ></el-input> | ||
| 120 | + <!-- <el-input-number | ||
| 121 | + v-model="minNumOfPieces" | ||
| 122 | + :precision="0" | ||
| 123 | + :controls="false" | ||
| 124 | + style="width: 100%" | ||
| 125 | + ></el-input-number> --> | ||
| 126 | + </el-col> | ||
| 127 | + <el-col style="text-align: center" :span="1">-</el-col> | ||
| 128 | + <el-col :span="3"> | ||
| 129 | + <el-input | ||
| 130 | + class="numberInput" | ||
| 131 | + v-model.trim="maxNumOfPieces" | ||
| 132 | + ></el-input> | ||
| 133 | + <!-- <el-input-number | ||
| 134 | + v-model=" | ||
| 135 | + form.maxNumOfPieces == 0 | ||
| 136 | + ? (form.maxNumOfPieces = undefined) | ||
| 137 | + : form.maxNumOfPieces | ||
| 138 | + " | ||
| 139 | + :precision="0" | ||
| 140 | + :controls="false" | ||
| 141 | + style="width: 100%" | ||
| 142 | + ></el-input-number> --> | ||
| 143 | + </el-col> | ||
| 144 | + </el-form-item> | ||
| 145 | + | ||
| 146 | + <el-form-item label="重量"> | ||
| 147 | + <el-col :span="3"> | ||
| 148 | + <el-input class="numberInput" v-model.trim="minWeight"></el-input> | ||
| 149 | + <!-- <el-input-number | ||
| 150 | + v-model=" | ||
| 151 | + form.minWeight == 0 | ||
| 152 | + ? (form.minWeight = undefined) | ||
| 153 | + : form.minWeight | ||
| 154 | + " | ||
| 155 | + :precision="2" | ||
| 156 | + :controls="false" | ||
| 157 | + style="width: 100%" | ||
| 158 | + ></el-input-number> --> | ||
| 159 | + </el-col> | ||
| 160 | + <el-col :span="1" style="text-align: center"><span>Kg</span></el-col> | ||
| 161 | + <el-col style="text-align: center" :span="1">-</el-col> | ||
| 162 | + <el-col :span="3"> | ||
| 163 | + <el-input class="numberInput" v-model.trim="maxWeight"></el-input> | ||
| 164 | + <!-- <el-input-number | ||
| 165 | + v-model=" | ||
| 166 | + form.maxWeight == 0 | ||
| 167 | + ? (form.maxWeight = undefined) | ||
| 168 | + : form.maxWeight | ||
| 169 | + " | ||
| 170 | + :precision="2" | ||
| 171 | + :controls="false" | ||
| 172 | + style="width: 100%" | ||
| 173 | + ></el-input-number> --> | ||
| 174 | + </el-col> | ||
| 175 | + <el-col :span="1" style="text-align: center"><span>Kg</span></el-col> | ||
| 176 | + </el-form-item> | ||
| 177 | + | ||
| 178 | + <el-form-item label="申报类别"> | ||
| 179 | + <el-card shadow="never" style="width: 80%"> | ||
| 180 | + <el-checkbox-group v-model="form.typeOfGoods"> | ||
| 181 | + <el-row> | ||
| 182 | + <el-col :span="2" v-for="item in cargoType" :key="item.id"> | ||
| 183 | + <el-checkbox | ||
| 184 | + :label="item.chineseName" | ||
| 185 | + :name="item.chineseName" | ||
| 186 | + > | ||
| 187 | + </el-checkbox> | ||
| 188 | + </el-col> | ||
| 189 | + </el-row> | ||
| 190 | + </el-checkbox-group> | ||
| 191 | + </el-card> | ||
| 192 | + </el-form-item> | ||
| 193 | + | ||
| 194 | + <el-form-item label="货物类型"> | ||
| 195 | + <el-card shadow="never" style="width: 80%"> | ||
| 196 | + <el-checkbox-group v-model="form.declarationCategory"> | ||
| 197 | + <el-row> | ||
| 198 | + <el-col :span="3" v-for="item in cargoStatus" :key="item.id"> | ||
| 199 | + <el-checkbox | ||
| 200 | + :label="item.chineseName" | ||
| 201 | + :name="item.chineseName" | ||
| 202 | + disabled | ||
| 203 | + ></el-checkbox> | ||
| 204 | + </el-col> | ||
| 205 | + </el-row> | ||
| 206 | + </el-checkbox-group> | ||
| 207 | + </el-card> | ||
| 208 | + </el-form-item> | ||
| 209 | + | ||
| 210 | + <el-form-item label="Service Code"> | ||
| 211 | + <el-card shadow="never" style="width: 80%"> | ||
| 212 | + <el-checkbox-group v-model="form.serviceCode"> | ||
| 213 | + <el-row> | ||
| 214 | + <el-col :span="2" v-for="item in serviceCode" :key="item.id"> | ||
| 215 | + <el-checkbox | ||
| 216 | + :label="item.englishName" | ||
| 217 | + :name="item.englishName" | ||
| 218 | + ></el-checkbox> | ||
| 219 | + </el-col> | ||
| 220 | + </el-row> | ||
| 221 | + </el-checkbox-group> | ||
| 222 | + </el-card> | ||
| 223 | + </el-form-item> | ||
| 224 | + | ||
| 225 | + <el-form-item label="Handling Code"> | ||
| 226 | + <el-card shadow="never" style="width: 80%"> | ||
| 227 | + <el-checkbox-group v-model="form.handlingCode"> | ||
| 228 | + <el-row> | ||
| 229 | + <el-col :span="3" v-for="item in handlingCode" :key="item.id"> | ||
| 230 | + <el-checkbox | ||
| 231 | + :label="item.englishName" | ||
| 232 | + :name="item.englishName" | ||
| 233 | + ></el-checkbox> | ||
| 234 | + </el-col> | ||
| 235 | + </el-row> | ||
| 236 | + </el-checkbox-group> | ||
| 237 | + </el-card> | ||
| 238 | + </el-form-item> | ||
| 239 | + | ||
| 240 | + <el-form-item label="Sub Category"> | ||
| 241 | + <el-card shadow="never" style="width: 80%"> | ||
| 242 | + <el-checkbox-group v-model="form.subCategory"> | ||
| 243 | + <el-row> | ||
| 244 | + <el-col :span="3" v-for="item in subCategory" :key="item.id"> | ||
| 245 | + <el-checkbox | ||
| 246 | + :label="item.englishName" | ||
| 247 | + :name="item.englishName" | ||
| 248 | + ></el-checkbox> | ||
| 249 | + </el-col> | ||
| 250 | + </el-row> | ||
| 251 | + </el-checkbox-group> | ||
| 252 | + </el-card> | ||
| 253 | + </el-form-item> | ||
| 254 | + | ||
| 255 | + </el-form> | ||
| 256 | + <div style="marginleft: 200px"> | ||
| 257 | + <el-button | ||
| 258 | + type="primary" | ||
| 259 | + size="small" | ||
| 260 | + v-if="$route.params.handle != 'detail'" | ||
| 261 | + @click="submit('form')" | ||
| 262 | + :loading="btnLoading" | ||
| 263 | + > | ||
| 264 | + <span v-if="$route.params.handle === 'add'">添加</span> | ||
| 265 | + <span v-else>保存</span> | ||
| 266 | + </el-button> | ||
| 267 | + <el-button size="small" @click="close">取消</el-button> | ||
| 268 | + </div> | ||
| 269 | + </template> | ||
| 270 | + </div> | ||
| 271 | +</template> | ||
| 272 | + | ||
| 273 | +<script> | ||
| 274 | +import { | ||
| 275 | + findByFlightId, | ||
| 276 | + updateOrAddFlight, | ||
| 277 | + allDictData, | ||
| 278 | + findDestinationFltRuleByActualFlight, | ||
| 279 | +} from "@/api/destinationFlight"; | ||
| 280 | + | ||
| 281 | +export default { | ||
| 282 | + name:"", | ||
| 283 | + data() { | ||
| 284 | + return { | ||
| 285 | + form: { | ||
| 286 | + minNumOfPieces: undefined, | ||
| 287 | + maxNumOfPieces: undefined, | ||
| 288 | + minWeight: undefined, | ||
| 289 | + maxWeight: undefined, | ||
| 290 | + typeOfGoods: [], | ||
| 291 | + declarationCategory: [], | ||
| 292 | + serviceCode: [], | ||
| 293 | + subCategory: [], | ||
| 294 | + handlingCode: [], | ||
| 295 | + }, | ||
| 296 | + rules: { | ||
| 297 | + purposeOfFlightNo: [ | ||
| 298 | + { | ||
| 299 | + required: true, | ||
| 300 | + message: "请输入航班号", | ||
| 301 | + trigger: "blur", | ||
| 302 | + }, | ||
| 303 | + ], | ||
| 304 | + }, | ||
| 305 | + typeOfGoods: [], | ||
| 306 | + declarationCategory: [], | ||
| 307 | + formServiceCode: [], | ||
| 308 | + formHandlingCode: [], | ||
| 309 | + formSubCategory: [], | ||
| 310 | + cargoType: [], | ||
| 311 | + cargoStatus: [], | ||
| 312 | + serviceCode: [], | ||
| 313 | + handlingCode: [], | ||
| 314 | + subCategory: [], | ||
| 315 | + isLocation: "1", | ||
| 316 | + isNeedRequired: 0, | ||
| 317 | + disable: false, | ||
| 318 | + nameDisabled: false, | ||
| 319 | + btnLoading: false, | ||
| 320 | + loading: true, | ||
| 321 | + isEmpty: false, | ||
| 322 | + routeName:"", | ||
| 323 | + dataId:"", | ||
| 324 | + handleName:"" | ||
| 325 | + }; | ||
| 326 | + }, | ||
| 327 | + methods: { | ||
| 328 | + //排序 | ||
| 329 | + sorttodo(arr, englishName) { | ||
| 330 | + var index = 1, | ||
| 331 | + newArr = [], | ||
| 332 | + length = arr.length; | ||
| 333 | + for (var i = 0; i < length; i++) { | ||
| 334 | + if (arr[i].englishName === englishName) { | ||
| 335 | + newArr[0] = arr[i]; | ||
| 336 | + } else { | ||
| 337 | + newArr[index++] = arr[i]; | ||
| 338 | + } | ||
| 339 | + } | ||
| 340 | + return newArr; | ||
| 341 | + }, | ||
| 342 | + | ||
| 343 | + submit(form) { | ||
| 344 | + this.$refs[form].validate((valid) => { | ||
| 345 | + if (!valid) { | ||
| 346 | + return false; | ||
| 347 | + } | ||
| 348 | + }); | ||
| 349 | + | ||
| 350 | + this.btnLoading = true; | ||
| 351 | + let handle = this.$route.params.handle; | ||
| 352 | + if (handle === "update") { | ||
| 353 | + //修改,获取id | ||
| 354 | + this.form.id = this.$route.params.id; | ||
| 355 | + } | ||
| 356 | + | ||
| 357 | + //调用接口 | ||
| 358 | + this.typeOfGoods = this.form.typeOfGoods; | ||
| 359 | + this.declarationCategory = this.form.declarationCategory; | ||
| 360 | + this.formServiceCode = this.form.serviceCode; | ||
| 361 | + this.formHandlingCode = this.form.handlingCode; | ||
| 362 | + this.formSubCategory = this.form.subCategory; | ||
| 363 | + this.form.isNeedRequired = this.isNeedRequired; | ||
| 364 | + if(this.form.purposeOfFlightNo){ | ||
| 365 | + this.form.purposeOfFlightNo = this.form.purposeOfFlightNo.toUpperCase(); | ||
| 366 | + } | ||
| 367 | + if (this.isLocation == 1) { | ||
| 368 | + this.form.notLocation = ""; | ||
| 369 | + } else { | ||
| 370 | + this.form.location = ""; | ||
| 371 | + } | ||
| 372 | + if ( | ||
| 373 | + this.form.includeUrsa && | ||
| 374 | + this.form.includeUrsa.length != 0 && | ||
| 375 | + this.form.notIncludeUrsa && | ||
| 376 | + this.form.notIncludeUrsa.length != 0 | ||
| 377 | + ) { | ||
| 378 | + let include = this.form.includeUrsa.split(";"); | ||
| 379 | + let notInclude = this.form.notIncludeUrsa.split(";"); | ||
| 380 | + let errorList = []; | ||
| 381 | + notInclude.forEach((element) => { | ||
| 382 | + if (element.indexOf("_") > 0) { | ||
| 383 | + errorList.push(element); | ||
| 384 | + } else { | ||
| 385 | + let flag = 0; | ||
| 386 | + for (let i = 0; i < include.length; i++) { | ||
| 387 | + if ( | ||
| 388 | + element == "" || | ||
| 389 | + (include[i].indexOf("_") > 0 && | ||
| 390 | + include[i].substring(0, 1) == element.substring(0, 1)) | ||
| 391 | + ) { | ||
| 392 | + flag = 1; | ||
| 393 | + break; | ||
| 394 | + } | ||
| 395 | + } | ||
| 396 | + if (flag == 0) { | ||
| 397 | + errorList.push(element); | ||
| 398 | + } | ||
| 399 | + } | ||
| 400 | + }); | ||
| 401 | + if (errorList.length != 0) { | ||
| 402 | + this.$message({ | ||
| 403 | + showClose: true, | ||
| 404 | + message: | ||
| 405 | + "URSA不包含中[" + | ||
| 406 | + errorList + | ||
| 407 | + "]错误,URSA不包含必须属于URSA包含中的类型", | ||
| 408 | + type: "error", | ||
| 409 | + }); | ||
| 410 | + this.btnLoading = false; | ||
| 411 | + return; | ||
| 412 | + } | ||
| 413 | + } | ||
| 414 | + updateOrAddFlight(this.form).then((response) => { | ||
| 415 | + if (response.code === 200) { | ||
| 416 | + this.$message({ | ||
| 417 | + showClose: true, | ||
| 418 | + message: "成功", | ||
| 419 | + type: "success", | ||
| 420 | + }); | ||
| 421 | + this.close(); | ||
| 422 | + } else { | ||
| 423 | + this.$message({ | ||
| 424 | + showClose: true, | ||
| 425 | + message: response.msg, | ||
| 426 | + type: "error", | ||
| 427 | + }); | ||
| 428 | + this.btnLoading = false; | ||
| 429 | + } | ||
| 430 | + }); | ||
| 431 | + this.form.typeOfGoods = this.typeOfGoods; | ||
| 432 | + this.form.declarationCategory = this.declarationCategory; | ||
| 433 | + this.form.serviceCode = this.formServiceCode; | ||
| 434 | + this.form.handlingCode = this.formHandlingCode; | ||
| 435 | + this.form.subCategory = this.formSubCategory; | ||
| 436 | + }, | ||
| 437 | + close() { | ||
| 438 | + this.removes() | ||
| 439 | + this.$store.state.tagsView.visitedViews.splice( | ||
| 440 | + this.$store.state.tagsView.visitedViews.findIndex( | ||
| 441 | + (item) => item.path === this.$route.path | ||
| 442 | + ), | ||
| 443 | + 1 | ||
| 444 | + ); | ||
| 445 | + this.$router.push({name:"FlightAllocConfig"}) | ||
| 446 | + // this.$router.push( | ||
| 447 | + // this.$store.state.tagsView.visitedViews[ | ||
| 448 | + // this.$store.state.tagsView.visitedViews.length - 1 | ||
| 449 | + // ].path | ||
| 450 | + // ); | ||
| 451 | + }, | ||
| 452 | + | ||
| 453 | + removes(){ | ||
| 454 | + if(this.routeName == "FlightAllocConfigAdd"){ | ||
| 455 | + sessionStorage.setItem("flightAdd","remove") | ||
| 456 | + }else{ | ||
| 457 | + sessionStorage.setItem("flightInfo"+this.dataId,"remove") | ||
| 458 | + } | ||
| 459 | + }, | ||
| 460 | + }, | ||
| 461 | + | ||
| 462 | + beforeDestroy(){ | ||
| 463 | + if(this.routeName == "FlightAllocConfigAdd"){ | ||
| 464 | + if(sessionStorage.getItem("flightAdd") == "remove"){ | ||
| 465 | + sessionStorage.removeItem("flightAdd") | ||
| 466 | + }else{ | ||
| 467 | + this.form.isNeedRequired = this.isNeedRequired | ||
| 468 | + sessionStorage.setItem("flightAdd",JSON.stringify(this.form)) | ||
| 469 | + } | ||
| 470 | + }else{ | ||
| 471 | + if(sessionStorage.getItem("flightInfo"+this.dataId) == "remove"){ | ||
| 472 | + sessionStorage.removeItem("flightInfo"+this.dataId) | ||
| 473 | + }else{ | ||
| 474 | + if(this.handleName == "detail"){ | ||
| 475 | + this.form.isNeedRequired = this.isNeedRequired | ||
| 476 | + sessionStorage.setItem("flightInfo"+this.dataId,JSON.stringify(this.form)) | ||
| 477 | + } | ||
| 478 | + } | ||
| 479 | + } | ||
| 480 | + }, | ||
| 481 | + | ||
| 482 | + created() { | ||
| 483 | + let handle = this.$route.params.handle; | ||
| 484 | + allDictData().then((response) => { | ||
| 485 | + if (response.code != 200) { | ||
| 486 | + this.$message({ | ||
| 487 | + showClose: true, | ||
| 488 | + message: response.msg, | ||
| 489 | + type: "error", | ||
| 490 | + }); | ||
| 491 | + return; | ||
| 492 | + } | ||
| 493 | + let dict = response.data; | ||
| 494 | + this.cargoType = dict.cargoType; | ||
| 495 | + this.cargoStatus = dict.cargoStatus; | ||
| 496 | + this.serviceCode = dict.serviceCode.sort((a, b) => | ||
| 497 | + a.englishName.localeCompare(b.englishName) | ||
| 498 | + ); | ||
| 499 | + | ||
| 500 | + this.handlingCode = this.sorttodo(dict.handlingCode, "BLANK"); | ||
| 501 | + this.subCategory = dict.subCategory; | ||
| 502 | + }); | ||
| 503 | + this.routeName = this.$route.name; | ||
| 504 | + this.dataId = this.$route.params.id; | ||
| 505 | + this.handleName = this.$route.params.handle; | ||
| 506 | + if (handle === "detail") { | ||
| 507 | + this.disable = true; | ||
| 508 | + } | ||
| 509 | + | ||
| 510 | + if (handle != "add") { | ||
| 511 | + this.nameDisabled = true; | ||
| 512 | + let id = this.$route.params.id; | ||
| 513 | + if(sessionStorage.getItem("flightInfo"+id) && this.$route.name == "FlightAllocConfigInfo" && handle != "detail"){ | ||
| 514 | + this.loading = false | ||
| 515 | + this.form = JSON.parse(sessionStorage.getItem("flightInfo"+this.$route.params.id)) | ||
| 516 | + this.isNeedRequired = this.form.isNeedRequired; | ||
| 517 | + if(this.form.notLocation != null || this.form.notLocation == ""){ | ||
| 518 | + this.isLocation = "2"; | ||
| 519 | + }else{ | ||
| 520 | + this.isLocation = "1"; | ||
| 521 | + } | ||
| 522 | + }else{ | ||
| 523 | + if (isNaN(Number(id))) { | ||
| 524 | + findDestinationFltRuleByActualFlight(id).then((response) => { | ||
| 525 | + if (response.code != 200) { | ||
| 526 | + this.$message({ | ||
| 527 | + showClose: true, | ||
| 528 | + message: response.msg, | ||
| 529 | + type: "error", | ||
| 530 | + }); | ||
| 531 | + this.isEmpty = true; | ||
| 532 | + } else if (response.data == null) { | ||
| 533 | + this.isEmpty = true; | ||
| 534 | + } else { | ||
| 535 | + let info = response.data; | ||
| 536 | + info.typeOfGoods = info.typeOfGoods | ||
| 537 | + ? info.typeOfGoods.split(";") | ||
| 538 | + : []; | ||
| 539 | + info.declarationCategory = info.declarationCategory | ||
| 540 | + ? info.declarationCategory.split(";") | ||
| 541 | + : []; | ||
| 542 | + info.serviceCode = info.serviceCode | ||
| 543 | + ? info.serviceCode.split(";") | ||
| 544 | + : []; | ||
| 545 | + info.handlingCode = info.handlingCode | ||
| 546 | + ? info.handlingCode.split(";") | ||
| 547 | + : []; | ||
| 548 | + info.subCategory = info.subCategory | ||
| 549 | + ? info.subCategory.split(";") | ||
| 550 | + : []; | ||
| 551 | + this.form = info; | ||
| 552 | + if (info.notLocation != null || info.notLocation == "") { | ||
| 553 | + this.isLocation = "2"; | ||
| 554 | + } else { | ||
| 555 | + this.isLocation = "1"; | ||
| 556 | + } | ||
| 557 | + this.isNeedRequired = info.isNeedRequired; | ||
| 558 | + } | ||
| 559 | + this.loading = false; | ||
| 560 | + }).catch(()=>{ | ||
| 561 | + this.loading = false; | ||
| 562 | + }) | ||
| 563 | + } else { | ||
| 564 | + //货物信息 | ||
| 565 | + findByFlightId(id).then((response) => { | ||
| 566 | + if (response.code != 200) { | ||
| 567 | + this.$message({ | ||
| 568 | + showClose: true, | ||
| 569 | + message: response.msg, | ||
| 570 | + type: "error", | ||
| 571 | + }); | ||
| 572 | + this.isEmpty = true; | ||
| 573 | + } else { | ||
| 574 | + let info = response.data.list; | ||
| 575 | + info.typeOfGoods = info.typeOfGoods | ||
| 576 | + ? info.typeOfGoods.split(";") | ||
| 577 | + : []; | ||
| 578 | + info.declarationCategory = info.declarationCategory | ||
| 579 | + ? info.declarationCategory.split(";") | ||
| 580 | + : []; | ||
| 581 | + info.serviceCode = info.serviceCode | ||
| 582 | + ? info.serviceCode.split(";") | ||
| 583 | + : []; | ||
| 584 | + info.handlingCode = info.handlingCode | ||
| 585 | + ? info.handlingCode.split(";") | ||
| 586 | + : []; | ||
| 587 | + info.subCategory = info.subCategory | ||
| 588 | + ? info.subCategory.split(";") | ||
| 589 | + : []; | ||
| 590 | + this.form = info; | ||
| 591 | + if (info.notLocation != null || info.notLocation == "") { | ||
| 592 | + this.isLocation = "2"; | ||
| 593 | + } else { | ||
| 594 | + this.isLocation = "1"; | ||
| 595 | + } | ||
| 596 | + let isNeedRequired = response.data.isNeedRequired; | ||
| 597 | + this.form.isNeedRequired = isNeedRequired; | ||
| 598 | + this.isNeedRequired = isNeedRequired; | ||
| 599 | + } | ||
| 600 | + this.loading = false; | ||
| 601 | + }).catch(()=>{ | ||
| 602 | + this.loading = false; | ||
| 603 | + }) | ||
| 604 | + } | ||
| 605 | + } | ||
| 606 | + } else { | ||
| 607 | + this.loading = false; | ||
| 608 | + } | ||
| 609 | + if(this.$route.name == "FlightAllocConfigAdd"){ | ||
| 610 | + if(sessionStorage.getItem("flightAdd")){ | ||
| 611 | + this.form = JSON.parse(sessionStorage.getItem("flightAdd")) | ||
| 612 | + this.isNeedRequired = this.form.isNeedRequired; | ||
| 613 | + if(this.form.notLocation != null || this.form.notLocation == ""){ | ||
| 614 | + this.isLocation = "2"; | ||
| 615 | + }else{ | ||
| 616 | + this.isLocation = "1"; | ||
| 617 | + } | ||
| 618 | + } | ||
| 619 | + } | ||
| 620 | + }, | ||
| 621 | + computed: { | ||
| 622 | + minNumOfPieces: { | ||
| 623 | + get: function () { | ||
| 624 | + return this.form.minNumOfPieces; | ||
| 625 | + }, | ||
| 626 | + set: function (val) { | ||
| 627 | + if (val == 0 || val == null || val == "-") { | ||
| 628 | + this.form.minNumOfPieces = undefined; | ||
| 629 | + } else if (!isNaN(val)) { | ||
| 630 | + this.form.minNumOfPieces = val; | ||
| 631 | + } | ||
| 632 | + }, | ||
| 633 | + }, | ||
| 634 | + maxNumOfPieces: { | ||
| 635 | + get: function () { | ||
| 636 | + return this.form.maxNumOfPieces; | ||
| 637 | + }, | ||
| 638 | + set: function (val) { | ||
| 639 | + if (val == 0 || val == null || val == "-") { | ||
| 640 | + this.form.maxNumOfPieces = undefined; | ||
| 641 | + } else if (!isNaN(val)) { | ||
| 642 | + this.form.maxNumOfPieces = val; | ||
| 643 | + } | ||
| 644 | + }, | ||
| 645 | + }, | ||
| 646 | + minWeight: { | ||
| 647 | + get: function () { | ||
| 648 | + return this.form.minWeight; | ||
| 649 | + }, | ||
| 650 | + set: function (val) { | ||
| 651 | + if (val == null || val == "-") { | ||
| 652 | + this.form.minWeight = undefined; | ||
| 653 | + } else if (!isNaN(val)) { | ||
| 654 | + this.form.minWeight = val; | ||
| 655 | + } | ||
| 656 | + }, | ||
| 657 | + }, | ||
| 658 | + maxWeight: { | ||
| 659 | + get: function () { | ||
| 660 | + return this.form.maxWeight; | ||
| 661 | + }, | ||
| 662 | + set: function (val) { | ||
| 663 | + if (val == null || val == "-") { | ||
| 664 | + this.form.maxWeight = undefined; | ||
| 665 | + } else if (!isNaN(val)) { | ||
| 666 | + this.form.maxWeight = val; | ||
| 667 | + } | ||
| 668 | + }, | ||
| 669 | + }, | ||
| 670 | + }, | ||
| 671 | +}; | ||
| 672 | +</script> | ||
| 673 | +<style rel="stylesheet/scss" lang="scss"> | ||
| 674 | +.el-textarea.is-disabled .el-textarea__inner { | ||
| 675 | + background-color: rgba(255, 255, 255, 0.5); | ||
| 676 | + color: #303133; | ||
| 677 | +} | ||
| 678 | + | ||
| 679 | +.el-input.is-disabled .el-input__inner { | ||
| 680 | + background-color: rgba(255, 255, 255, 0.5); | ||
| 681 | + color: #303133; | ||
| 682 | +} | ||
| 683 | + | ||
| 684 | +.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner { | ||
| 685 | + background-color: rgba(255, 255, 255, 0.5); | ||
| 686 | +} | ||
| 687 | + | ||
| 688 | +.el-checkbox__input.is-disabled + span.el-checkbox__label { | ||
| 689 | + color: #303133; | ||
| 690 | +} | ||
| 691 | + | ||
| 692 | +.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner::after { | ||
| 693 | + border-color: #303133; | ||
| 694 | +} | ||
| 695 | + | ||
| 696 | +.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner { | ||
| 697 | + border-color: #606266; | ||
| 698 | +} | ||
| 699 | +.numberInput { | ||
| 700 | + input { | ||
| 701 | + text-align: center; | ||
| 702 | + } | ||
| 703 | +} | ||
| 704 | +</style> |
| 1 | +<template> | ||
| 2 | + <div class="app-container"> | ||
| 3 | + <el-form :model="queryParams" ref="queryForm" :inline="true"> | ||
| 4 | + <el-form-item label="ACCS原航班"> | ||
| 5 | + <el-input | ||
| 6 | + type="text" | ||
| 7 | + v-model="upCase" | ||
| 8 | + placeholder="请输入ACCS原航班" | ||
| 9 | + clearable | ||
| 10 | + class="formItem" | ||
| 11 | + ></el-input> | ||
| 12 | + <!-- <el-input v-model="upCase" placeholder="请输入原航班" clearable size="small" /> --> | ||
| 13 | + </el-form-item> | ||
| 14 | + <el-form-item label="状态" prop="status"> | ||
| 15 | + <el-select | ||
| 16 | + v-model="queryParams.status" | ||
| 17 | + placeholder="请选择" | ||
| 18 | + clearable | ||
| 19 | + size="small" | ||
| 20 | + > | ||
| 21 | + <el-option | ||
| 22 | + v-for="dict in statusList" | ||
| 23 | + :key="dict.id" | ||
| 24 | + :label="dict.name" | ||
| 25 | + :value="dict.id" | ||
| 26 | + /> | ||
| 27 | + </el-select> | ||
| 28 | + </el-form-item> | ||
| 29 | + | ||
| 30 | + <el-form-item> | ||
| 31 | + <el-button | ||
| 32 | + type="primary" | ||
| 33 | + icon="el-icon-search" | ||
| 34 | + size="mini" | ||
| 35 | + @click="handleQuery" | ||
| 36 | + >查询ACCS原航班配置</el-button | ||
| 37 | + > | ||
| 38 | + </el-form-item> | ||
| 39 | + <br /> | ||
| 40 | + <el-form-item label="日期" prop="flightDate"> | ||
| 41 | + <el-date-picker | ||
| 42 | + value-format="yyyy-MM-dd" | ||
| 43 | + v-model="queryParams.flightDate" | ||
| 44 | + type="date" | ||
| 45 | + placeholder="选择日期" | ||
| 46 | + > | ||
| 47 | + </el-date-picker> | ||
| 48 | + </el-form-item> | ||
| 49 | + | ||
| 50 | + <el-form-item> | ||
| 51 | + <el-button | ||
| 52 | + type="primary" | ||
| 53 | + icon="el-icon-search" | ||
| 54 | + size="mini" | ||
| 55 | + @click="findSourceFlightAndFlightDate" | ||
| 56 | + >查询实际配载航班 </el-button | ||
| 57 | + >  | ||
| 58 | + <span style="color: #ff4949" | ||
| 59 | + >注:ACCS原航班+日期查询该日期的航班实际情况</span | ||
| 60 | + > | ||
| 61 | + </el-form-item> | ||
| 62 | + <br /> | ||
| 63 | + <el-form-item> | ||
| 64 | + <el-col :span="1.5"> | ||
| 65 | + <el-button | ||
| 66 | + type="primary" | ||
| 67 | + icon="el-icon-plus" | ||
| 68 | + size="mini" | ||
| 69 | + @click="handleAdd" | ||
| 70 | + >添加规则</el-button | ||
| 71 | + > | ||
| 72 | + </el-col> | ||
| 73 | +   | ||
| 74 | + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery" | ||
| 75 | + >重置</el-button | ||
| 76 | + > | ||
| 77 | + </el-form-item> | ||
| 78 | + </el-form> | ||
| 79 | + | ||
| 80 | + <el-table v-loading="loading" :data="sourceFlightRulesList"> | ||
| 81 | + <el-table-column type="index" label="序号" align="center"> | ||
| 82 | + <template slot-scope="scope">{{ scope.$index + 1 }}</template> | ||
| 83 | + </el-table-column> | ||
| 84 | + <el-table-column | ||
| 85 | + label="ACCS原航班" | ||
| 86 | + align="center" | ||
| 87 | + prop="sourceFlightNo" | ||
| 88 | + /> | ||
| 89 | + <el-table-column | ||
| 90 | + label="配载航班排序" | ||
| 91 | + align="center" | ||
| 92 | + prop="flightRank" | ||
| 93 | + width="280" | ||
| 94 | + /> | ||
| 95 | + <!-- <el-table-column label="优先级" align="center" prop="priority" /> --> | ||
| 96 | + <el-table-column | ||
| 97 | + label="周期" | ||
| 98 | + align="center" | ||
| 99 | + prop="dayOfWeek" | ||
| 100 | + width="180" | ||
| 101 | + /> | ||
| 102 | + <el-table-column | ||
| 103 | + label="状态" | ||
| 104 | + align="center" | ||
| 105 | + prop="status" | ||
| 106 | + :formatter="statusFormat" | ||
| 107 | + /> | ||
| 108 | + <el-table-column | ||
| 109 | + label="开始时间" | ||
| 110 | + align="center" | ||
| 111 | + prop="startDate" | ||
| 112 | + width="100" | ||
| 113 | + /> | ||
| 114 | + <el-table-column | ||
| 115 | + label="结束时间" | ||
| 116 | + align="center" | ||
| 117 | + prop="endDate" | ||
| 118 | + width="100" | ||
| 119 | + /> | ||
| 120 | + <el-table-column | ||
| 121 | + label="最后修改人" | ||
| 122 | + align="center" | ||
| 123 | + prop="updateUserName" | ||
| 124 | + width="100" | ||
| 125 | + /> | ||
| 126 | + <el-table-column | ||
| 127 | + label="最后修改时间" | ||
| 128 | + align="center" | ||
| 129 | + prop="updateTime" | ||
| 130 | + width="100" | ||
| 131 | + /> | ||
| 132 | + <el-table-column | ||
| 133 | + label="操作" | ||
| 134 | + align="center" | ||
| 135 | + class-name="small-padding fixed-width" | ||
| 136 | + width="180" | ||
| 137 | + fixed="right" | ||
| 138 | + > | ||
| 139 | + <template slot-scope="scope"> | ||
| 140 | + <el-button | ||
| 141 | + size="mini" | ||
| 142 | + type="text" | ||
| 143 | + icon="el-icon-edit" | ||
| 144 | + @click="handleUpdate(scope.row)" | ||
| 145 | + >修改</el-button | ||
| 146 | + > | ||
| 147 | + <el-button | ||
| 148 | + size="mini" | ||
| 149 | + type="text" | ||
| 150 | + icon="el-icon-delete" | ||
| 151 | + @click="handleDeleteorPlayorpause(scope.row, 0, '删除')" | ||
| 152 | + > | ||
| 153 | + 删除</el-button | ||
| 154 | + > | ||
| 155 | + <el-button | ||
| 156 | + size="mini" | ||
| 157 | + type="text" | ||
| 158 | + icon="el-icon-video-play" | ||
| 159 | + v-if="scope.row.status == '3'" | ||
| 160 | + @click="handleDeleteorPlayorpause(scope.row, 1, '启用')" | ||
| 161 | + >启用</el-button | ||
| 162 | + > | ||
| 163 | + <el-button | ||
| 164 | + size="mini" | ||
| 165 | + type="text" | ||
| 166 | + icon="el-icon-video-pause" | ||
| 167 | + v-if="scope.row.status != '3'" | ||
| 168 | + @click="handleDeleteorPlayorpause(scope.row, 3, '停用')" | ||
| 169 | + >停用</el-button | ||
| 170 | + > | ||
| 171 | + </template> | ||
| 172 | + </el-table-column> | ||
| 173 | + </el-table> | ||
| 174 | + | ||
| 175 | + <pagination | ||
| 176 | + v-show="total > 0" | ||
| 177 | + :total="total" | ||
| 178 | + layout=" prev, pager, next, jumper, sizes,total" | ||
| 179 | + :page.sync="queryParams.pageNum" | ||
| 180 | + :limit.sync="queryParams.limit" | ||
| 181 | + @pagination="findSourceFlightRules" | ||
| 182 | + /> | ||
| 183 | + | ||
| 184 | + <!-- 查看目的航班对话框 --> | ||
| 185 | + <el-dialog | ||
| 186 | + title="实际配载航班" | ||
| 187 | + :visible.sync="openFlightDate" | ||
| 188 | + width="70%" | ||
| 189 | + :close-on-click-modal="false" | ||
| 190 | + :append-to-body="true" | ||
| 191 | + > | ||
| 192 | + <el-table v-loading="loadingFlightDate" :data="sourceFlightAndFlightDate"> | ||
| 193 | + <el-table-column type="index" label="序号" align="center"> | ||
| 194 | + <template slot-scope="scope">{{ scope.$index + 1 }}</template> | ||
| 195 | + </el-table-column> | ||
| 196 | + <el-table-column | ||
| 197 | + label="ACCS原航班" | ||
| 198 | + align="center" | ||
| 199 | + prop="sourceFlightNo" | ||
| 200 | + /> | ||
| 201 | + <el-table-column | ||
| 202 | + label="实际配载航班" | ||
| 203 | + align="center" | ||
| 204 | + prop="actualFlight" | ||
| 205 | + width="280" | ||
| 206 | + /> | ||
| 207 | + <el-table-column label="航班日期" align="center" prop="flightDate" /> | ||
| 208 | + <el-table-column | ||
| 209 | + label="操作" | ||
| 210 | + align="center" | ||
| 211 | + class-name="small-padding fixed-width" | ||
| 212 | + width="200" | ||
| 213 | + > | ||
| 214 | + <template slot-scope="scope"> | ||
| 215 | + <el-button | ||
| 216 | + size="mini" | ||
| 217 | + type="text" | ||
| 218 | + icon="el-icon-edit" | ||
| 219 | + @click="handleClick(scope.row.actualFlight, 'detail')" | ||
| 220 | + >查看配置维度</el-button | ||
| 221 | + > | ||
| 222 | + </template> | ||
| 223 | + </el-table-column> | ||
| 224 | + </el-table> | ||
| 225 | + <div slot="footer" class="dialog-footer"> | ||
| 226 | + <el-button @click="cancelFlightDate">返 回</el-button> | ||
| 227 | + </div> | ||
| 228 | + </el-dialog> | ||
| 229 | + | ||
| 230 | + <!-- 添加或修改对话框 --> | ||
| 231 | + <el-dialog | ||
| 232 | + :title="title" | ||
| 233 | + :visible.sync="open" | ||
| 234 | + width="55%" | ||
| 235 | + :append-to-body="true" | ||
| 236 | + :close-on-click-modal="false" | ||
| 237 | + > | ||
| 238 | + <el-form ref="form" :model="form" :rules="rules" label-width="100px"> | ||
| 239 | + <el-row> | ||
| 240 | + <el-col :span="10"> | ||
| 241 | + <el-form-item label="ACCS原航班" prop="sourceFlightNo"> | ||
| 242 | + <el-input | ||
| 243 | + v-model="form.sourceFlightNo" | ||
| 244 | + placeholder="请输入ACCS原航班号" | ||
| 245 | + maxlength="10" | ||
| 246 | + /> | ||
| 247 | + </el-form-item> | ||
| 248 | + </el-col> | ||
| 249 | + </el-row> | ||
| 250 | + <el-row> | ||
| 251 | + <el-col :span="8"> | ||
| 252 | + <el-form-item label="有效开始时间" prop="startDate"> | ||
| 253 | + <el-date-picker | ||
| 254 | + clearable | ||
| 255 | + size="small" | ||
| 256 | + :picker-options="pickerOptionsStart" | ||
| 257 | + v-model="form.startDate" | ||
| 258 | + type="date" | ||
| 259 | + value-format="yyyy-MM-dd" | ||
| 260 | + placeholder="选择开始时间" | ||
| 261 | + > | ||
| 262 | + </el-date-picker> | ||
| 263 | + </el-form-item> | ||
| 264 | + </el-col> | ||
| 265 | + <el-col :span="12"> | ||
| 266 | + <el-form-item label="有效结束时间" prop="endDate"> | ||
| 267 | + <el-date-picker | ||
| 268 | + clearable | ||
| 269 | + size="small" | ||
| 270 | + :picker-options="pickerOptionsEnd" | ||
| 271 | + v-model="form.endDate" | ||
| 272 | + type="date" | ||
| 273 | + value-format="yyyy-MM-dd" | ||
| 274 | + placeholder="选择结束时间" | ||
| 275 | + > | ||
| 276 | + </el-date-picker> | ||
| 277 | + </el-form-item> | ||
| 278 | + </el-col> | ||
| 279 | + | ||
| 280 | + <el-col :span="24" style="margin-bottom: 5%"> | ||
| 281 | + <span style="color:#ff4949; margin-left: 10%" | ||
| 282 | + >提示:配载航班之间请用分号分隔【符号不区分中英文】,例:CA1053;C7433</span | ||
| 283 | + ><br /> | ||
| 284 | + <span style="color:#ff4949; margin-left: 10%" | ||
| 285 | + >提示:如果需要设置配载航班延迟或提前可以直接在目的航斑后加减【+-】天数。如:CA1053+1;CZ433-1</span | ||
| 286 | + > | ||
| 287 | + </el-col> | ||
| 288 | + <el-col :span="24"> | ||
| 289 | + <el-form-item label="配载航班" prop="flightRank"> | ||
| 290 | + <el-input | ||
| 291 | + type="textarea" | ||
| 292 | + v-model="form.flightRank" | ||
| 293 | + :rows="4" | ||
| 294 | + ></el-input> | ||
| 295 | + </el-form-item> | ||
| 296 | + </el-col> | ||
| 297 | + <el-col :span="24"> | ||
| 298 | + <el-form-item label="周期段"> | ||
| 299 | + <el-checkbox-group v-model="dayOfWeek"> | ||
| 300 | + <el-checkbox | ||
| 301 | + v-for="item in dayOfWeekList" | ||
| 302 | + :key="item" | ||
| 303 | + :label="item" | ||
| 304 | + :name="item" | ||
| 305 | + ></el-checkbox> | ||
| 306 | + </el-checkbox-group> | ||
| 307 | + </el-form-item> | ||
| 308 | + </el-col> | ||
| 309 | + </el-row> | ||
| 310 | + </el-form> | ||
| 311 | + <div slot="footer" class="dialog-footer"> | ||
| 312 | + <el-button type="primary" @click="submitForm">确 定</el-button> | ||
| 313 | + <el-button @click="cancel">取 消</el-button> | ||
| 314 | + </div> | ||
| 315 | + </el-dialog> | ||
| 316 | + </div> | ||
| 317 | +</template> | ||
| 318 | +<script> | ||
| 319 | +import { | ||
| 320 | + findSourceFlightRulesApi, | ||
| 321 | + sourceFlightRulesSaveApi, | ||
| 322 | + delOrEnableORDisableApi, | ||
| 323 | + findSourceFlightAndFlightDateApi, | ||
| 324 | +} from "@/api/sourceFlightRules"; | ||
| 325 | +export default { | ||
| 326 | + name: "FlightRandConfig", | ||
| 327 | + data() { | ||
| 328 | + return { | ||
| 329 | + // data 中设定 | ||
| 330 | + pickerOptionsStart: { | ||
| 331 | + disabledDate: (time) => { | ||
| 332 | + let endDateVal = this.form.endDate; | ||
| 333 | + if (endDateVal) { | ||
| 334 | + return ( | ||
| 335 | + time.getTime() > new Date(endDateVal).getTime() || | ||
| 336 | + time.getTime() < new Date().getTime() - 24 * 60 * 60 * 1000 | ||
| 337 | + ); | ||
| 338 | + } else { | ||
| 339 | + return time.getTime() < new Date().getTime() - 24 * 60 * 60 * 1000; | ||
| 340 | + } | ||
| 341 | + }, | ||
| 342 | + }, | ||
| 343 | + pickerOptionsEnd: { | ||
| 344 | + disabledDate: (time) => { | ||
| 345 | + let beginDateVal = this.form.startDate; | ||
| 346 | + if (beginDateVal) { | ||
| 347 | + return time.getTime() < new Date(beginDateVal).getTime(); | ||
| 348 | + } else { | ||
| 349 | + return time.getTime() < new Date().getTime() - 24 * 60 * 60 * 1000; | ||
| 350 | + } | ||
| 351 | + }, | ||
| 352 | + }, | ||
| 353 | + | ||
| 354 | + //周期段 | ||
| 355 | + dayOfWeekList: ["D1", "D2", "D3", "D4", "D5", "D6", "D7"], | ||
| 356 | + // 遮罩层 | ||
| 357 | + loading: false, | ||
| 358 | + // 遮罩层 | ||
| 359 | + loadingFlightDate: false, | ||
| 360 | + // 弹出层标题 | ||
| 361 | + title: "", | ||
| 362 | + // 总条数 | ||
| 363 | + total: 0, | ||
| 364 | + // 原航班规则数据 | ||
| 365 | + sourceFlightRulesList: [], | ||
| 366 | + //目的航班数据 | ||
| 367 | + sourceFlightAndFlightDate: [], | ||
| 368 | + statusList: [ | ||
| 369 | + { | ||
| 370 | + id: 1, | ||
| 371 | + name: "有效", | ||
| 372 | + }, | ||
| 373 | + { | ||
| 374 | + id: 3, | ||
| 375 | + name: "停用", | ||
| 376 | + }, | ||
| 377 | + ], | ||
| 378 | + // 新增修改查看规则弹出层 | ||
| 379 | + open: false, | ||
| 380 | + // 是否显示查看目的航班弹出层 | ||
| 381 | + openFlightDate: false, | ||
| 382 | + // 查询参数 | ||
| 383 | + queryParams: { | ||
| 384 | + start: 0, //当前条数【代表第几条数据 +1开始】 | ||
| 385 | + pageNum: 1, | ||
| 386 | + limit: 20, //一页显示多少条数据 | ||
| 387 | + sourceFlightNo: undefined, //原航班号 | ||
| 388 | + status: undefined, //状态 | ||
| 389 | + flightDate: undefined, //日期 | ||
| 390 | + }, | ||
| 391 | + dayOfWeek: [], | ||
| 392 | + // 表单参数 | ||
| 393 | + form: { | ||
| 394 | + dayOfWeek: [], | ||
| 395 | + }, | ||
| 396 | + // 表单校验 | ||
| 397 | + rules: { | ||
| 398 | + sourceFlightNo: [ | ||
| 399 | + { | ||
| 400 | + required: true, | ||
| 401 | + message: "ACCS原航班号不能为空", | ||
| 402 | + trigger: "blur", | ||
| 403 | + }, | ||
| 404 | + ], | ||
| 405 | + flightRank: [ | ||
| 406 | + { | ||
| 407 | + required: true, | ||
| 408 | + message: "配载航班不能为空", | ||
| 409 | + trigger: "blur", | ||
| 410 | + }, | ||
| 411 | + ], | ||
| 412 | + }, | ||
| 413 | + }; | ||
| 414 | + }, | ||
| 415 | + created() { | ||
| 416 | + this.findSourceFlightRules(); | ||
| 417 | + }, | ||
| 418 | + methods: { | ||
| 419 | + //跳转到查看,修改页面 | ||
| 420 | + handleClick(flightiId, handle) { | ||
| 421 | + this.openFlightDate = false; | ||
| 422 | + this.$router.push({ | ||
| 423 | + name: "FlightAllocConfigInfo", | ||
| 424 | + params: { | ||
| 425 | + handle: handle, | ||
| 426 | + id: flightiId, | ||
| 427 | + }, | ||
| 428 | + }); | ||
| 429 | + }, | ||
| 430 | + /** 查询原航班顺位规则*/ | ||
| 431 | + findSourceFlightRules() { | ||
| 432 | + this.loading = true; | ||
| 433 | + if (this.queryParams.pageNum > 1) { | ||
| 434 | + this.queryParams.start = | ||
| 435 | + (this.queryParams.pageNum - 1) * this.queryParams.limit; | ||
| 436 | + } else { | ||
| 437 | + this.queryParams.start = 0; | ||
| 438 | + } | ||
| 439 | + findSourceFlightRulesApi(this.queryParams).then((response) => { | ||
| 440 | + if (response.code == 200) { | ||
| 441 | + this.sourceFlightRulesList = response.data.list; | ||
| 442 | + this.total = response.data.totalCount; | ||
| 443 | + this.loading = false; | ||
| 444 | + } else { | ||
| 445 | + this.msgError(response.msg); | ||
| 446 | + } | ||
| 447 | + }); | ||
| 448 | + }, | ||
| 449 | + /** 新增按钮操作 */ | ||
| 450 | + handleAdd() { | ||
| 451 | + this.form = {}; | ||
| 452 | + this.open = true; | ||
| 453 | + this.title = "添加ACCS原航班顺位规则"; | ||
| 454 | + this.form.id = -1; | ||
| 455 | + this.dayOfWeek = []; | ||
| 456 | + }, | ||
| 457 | + /** 修改按钮操作 */ | ||
| 458 | + handleUpdate(row) { | ||
| 459 | + this.form = {}; | ||
| 460 | + this.dayOfWeek = []; | ||
| 461 | + this.open = true; | ||
| 462 | + this.title = "修改ACCS原航班顺位规则"; | ||
| 463 | + this.form = JSON.parse(JSON.stringify(row)); | ||
| 464 | + this.dayOfWeek = this.form.dayOfWeek | ||
| 465 | + ? this.form.dayOfWeek.split(";") | ||
| 466 | + : []; | ||
| 467 | + //this.form.dayOfWeek = this.form.dayOfWeek ? this.form.dayOfWeek.split(";") : []; | ||
| 468 | + }, | ||
| 469 | + /** 删除 启用 停用按钮操作 */ | ||
| 470 | + handleDeleteorPlayorpause(row, status, statusText) { | ||
| 471 | + //删除前需要停用 | ||
| 472 | + if (status === 0 && row.status != "3") { | ||
| 473 | + this.$message({ | ||
| 474 | + message: "请停用后删除", | ||
| 475 | + type: "warning", | ||
| 476 | + }); | ||
| 477 | + return; | ||
| 478 | + } | ||
| 479 | + | ||
| 480 | + this.$confirm("是否确认" + statusText + "此数据项?", "警告", { | ||
| 481 | + confirmButtonText: "确定", | ||
| 482 | + cancelButtonText: "取消", | ||
| 483 | + type: "warning", | ||
| 484 | + }).then(() => { | ||
| 485 | + let disable = { | ||
| 486 | + id: row.id, | ||
| 487 | + status: status, | ||
| 488 | + }; | ||
| 489 | + delOrEnableORDisableApi(disable) | ||
| 490 | + .then((response) => { | ||
| 491 | + if (response.code == 200) { | ||
| 492 | + this.findSourceFlightRules(); | ||
| 493 | + this.msgSuccess(statusText + "成功"); | ||
| 494 | + } else { | ||
| 495 | + this.msgError(response.msg); | ||
| 496 | + } | ||
| 497 | + }) | ||
| 498 | + .catch(() => {}); | ||
| 499 | + }); | ||
| 500 | + }, | ||
| 501 | + /** 提交按钮 */ | ||
| 502 | + submitForm: function () { | ||
| 503 | + this.$refs["form"].validate((valid) => { | ||
| 504 | + if (valid) { | ||
| 505 | + this.form.dayOfWeek = this.dayOfWeek.sort(); | ||
| 506 | + let formdata = JSON.parse(JSON.stringify(this.form)); | ||
| 507 | + formdata.sourceFlightNo = formdata.sourceFlightNo | ||
| 508 | + .trim() | ||
| 509 | + .toUpperCase(); | ||
| 510 | + formdata.flightRank = formdata.flightRank.trim().toUpperCase(); | ||
| 511 | + if (formdata.startDate === undefined || formdata.startDate == null) { | ||
| 512 | + formdata.startDate = ""; | ||
| 513 | + } | ||
| 514 | + if (formdata.endDate === undefined || formdata.endDate == null) { | ||
| 515 | + formdata.endDate = ""; | ||
| 516 | + } | ||
| 517 | + //处理数据 | ||
| 518 | + sourceFlightRulesSaveApi(formdata).then((response) => { | ||
| 519 | + if (response.code === 200) { | ||
| 520 | + this.msgSuccess("保存成功"); | ||
| 521 | + this.open = false; | ||
| 522 | + this.findSourceFlightRules(); | ||
| 523 | + } else { | ||
| 524 | + this.msgError(response.msg); | ||
| 525 | + } | ||
| 526 | + }); | ||
| 527 | + } | ||
| 528 | + }); | ||
| 529 | + }, | ||
| 530 | + // 表单重置 | ||
| 531 | + reset() { | ||
| 532 | + this.form = { | ||
| 533 | + dayOfWeek: [], | ||
| 534 | + }; | ||
| 535 | + this.resetForm("form"); | ||
| 536 | + }, | ||
| 537 | + /** 查询目的航班*/ | ||
| 538 | + findSourceFlightAndFlightDate() { | ||
| 539 | + //校验原航班号非空 | ||
| 540 | + if ( | ||
| 541 | + this.queryParams.sourceFlightNo === null || | ||
| 542 | + this.queryParams.sourceFlightNo === undefined || | ||
| 543 | + this.queryParams.sourceFlightNo.trim() === "" | ||
| 544 | + ) { | ||
| 545 | + this.$message.warning("ACCS原航班号为空"); | ||
| 546 | + return; | ||
| 547 | + } | ||
| 548 | + //校验原日期非空 | ||
| 549 | + if ( | ||
| 550 | + this.queryParams.flightDate === null || | ||
| 551 | + this.queryParams.flightDate === undefined | ||
| 552 | + ) { | ||
| 553 | + this.$message.warning("日期为空"); | ||
| 554 | + return; | ||
| 555 | + } | ||
| 556 | + this.openFlightDate = true; | ||
| 557 | + this.loadingFlightDate = true; | ||
| 558 | + this.sourceFlightAndFlightDate = []; | ||
| 559 | + findSourceFlightAndFlightDateApi(this.queryParams).then((response) => { | ||
| 560 | + if (response.code === 200) { | ||
| 561 | + this.sourceFlightAndFlightDate = response.data; | ||
| 562 | + this.loadingFlightDate = false; | ||
| 563 | + } else { | ||
| 564 | + this.msgError(response.msg); | ||
| 565 | + } | ||
| 566 | + }); | ||
| 567 | + }, | ||
| 568 | + // 目的航班弹出框返回 | ||
| 569 | + cancelFlightDate() { | ||
| 570 | + this.openFlightDate = false; | ||
| 571 | + this.findSourceFlightRules(); | ||
| 572 | + }, | ||
| 573 | + // 取消按钮 | ||
| 574 | + cancel() { | ||
| 575 | + this.open = false; | ||
| 576 | + this.findSourceFlightRules(); | ||
| 577 | + //this.reset(); | ||
| 578 | + }, | ||
| 579 | + // 状态字典翻译 | ||
| 580 | + statusFormat(row) { | ||
| 581 | + if (row.status === "1") { | ||
| 582 | + return "有效"; | ||
| 583 | + } else if (row.status === "0") { | ||
| 584 | + return "执行中"; | ||
| 585 | + } else if (row.status === "3") { | ||
| 586 | + return "停用"; | ||
| 587 | + } | ||
| 588 | + return row.status; | ||
| 589 | + }, | ||
| 590 | + /** 重置按钮操作 */ | ||
| 591 | + resetQuery() { | ||
| 592 | + this.queryParams.sourceFlightNo = undefined; | ||
| 593 | + this.resetForm("queryForm"); | ||
| 594 | + this.handleQuery(); | ||
| 595 | + }, | ||
| 596 | + /** 搜索按钮操作 */ | ||
| 597 | + handleQuery() { | ||
| 598 | + this.queryParams.pageNum = 1; | ||
| 599 | + this.queryParams.start = 0; | ||
| 600 | + this.findSourceFlightRules(); | ||
| 601 | + }, | ||
| 602 | + }, | ||
| 603 | + computed: { | ||
| 604 | + upCase: { | ||
| 605 | + get: function () { | ||
| 606 | + return this.queryParams.sourceFlightNo; | ||
| 607 | + }, | ||
| 608 | + set: function (val) { | ||
| 609 | + this.queryParams.sourceFlightNo = val.toUpperCase(); | ||
| 610 | + }, | ||
| 611 | + }, | ||
| 612 | + }, | ||
| 613 | +}; | ||
| 614 | +</script> | ||
| 615 | +<style> | ||
| 616 | +</style> |
| 1 | +<template> | ||
| 2 | + <div class="app-container"> | ||
| 3 | + <el-form | ||
| 4 | + class="form-header" | ||
| 5 | + :model="queryParams" | ||
| 6 | + label-position="right" | ||
| 7 | + label-width="auto" | ||
| 8 | + size="medium" | ||
| 9 | + > | ||
| 10 | + <el-row> | ||
| 11 | + <el-col :span="6"> | ||
| 12 | + <el-form-item label="航班日期从" prop="fltDateStart"> | ||
| 13 | + <el-date-picker | ||
| 14 | + value-format="yyyy-MM-dd" | ||
| 15 | + class="formItem" | ||
| 16 | + v-model="queryParams.fltDateStart" | ||
| 17 | + type="date" | ||
| 18 | + placeholder="选择日期" | ||
| 19 | + > | ||
| 20 | + </el-date-picker> | ||
| 21 | + </el-form-item> | ||
| 22 | + </el-col> | ||
| 23 | + <el-col :span="6"> | ||
| 24 | + <el-form-item label="到" prop="fltDateEnd"> | ||
| 25 | + <el-date-picker | ||
| 26 | + value-format="yyyy-MM-dd" | ||
| 27 | + class="formItem" | ||
| 28 | + v-model="queryParams.fltDateEnd" | ||
| 29 | + type="date" | ||
| 30 | + placeholder="选择日期" | ||
| 31 | + > | ||
| 32 | + </el-date-picker> | ||
| 33 | + </el-form-item> | ||
| 34 | + </el-col> | ||
| 35 | + <el-col :span="6"> | ||
| 36 | + <el-form-item label="航班号"> | ||
| 37 | + <el-input | ||
| 38 | + type="textarea" | ||
| 39 | + v-model="fltNo" | ||
| 40 | + clearable | ||
| 41 | + class="formItem" | ||
| 42 | + placeholder="AC001;AC002" | ||
| 43 | + rows="1" | ||
| 44 | + > | ||
| 45 | + </el-input> | ||
| 46 | + </el-form-item> | ||
| 47 | + </el-col> | ||
| 48 | + <el-col :span="6"> | ||
| 49 | + <el-form-item label="运单号"> | ||
| 50 | + <el-input | ||
| 51 | + clearable | ||
| 52 | + type="textarea" | ||
| 53 | + v-model="queryParams.waybillNo" | ||
| 54 | + class="formItem" | ||
| 55 | + placeholder="请输入运单号(回车间隔)" | ||
| 56 | + rows="1" | ||
| 57 | + ></el-input> | ||
| 58 | + </el-form-item> | ||
| 59 | + </el-col> | ||
| 60 | + <el-col :span="6"> | ||
| 61 | + <el-form-item label="站点"> | ||
| 62 | + <el-input | ||
| 63 | + type="textarea" | ||
| 64 | + v-model="siteName" | ||
| 65 | + class="formItem" | ||
| 66 | + placeholder="PVG;PEK" | ||
| 67 | + clearable | ||
| 68 | + rows="1" | ||
| 69 | + > | ||
| 70 | + </el-input> | ||
| 71 | + </el-form-item> | ||
| 72 | + </el-col> | ||
| 73 | + <el-col :span="6"> | ||
| 74 | + <el-form-item label="URSA"> | ||
| 75 | + <el-input | ||
| 76 | + clearable | ||
| 77 | + type="textarea" | ||
| 78 | + v-model="ursa" | ||
| 79 | + class="formItem" | ||
| 80 | + placeholder="S_;P_;E2" | ||
| 81 | + rows="1" | ||
| 82 | + > | ||
| 83 | + </el-input> | ||
| 84 | + </el-form-item> | ||
| 85 | + </el-col> | ||
| 86 | + <el-col :span="24"> | ||
| 87 | + <el-switch | ||
| 88 | + v-model="queryParams.reExport" | ||
| 89 | + active-color="#13ce66" | ||
| 90 | + active-text="重新导出" | ||
| 91 | + style="padding-left: 35px" | ||
| 92 | + > | ||
| 93 | + </el-switch> | ||
| 94 | + </el-col> | ||
| 95 | + </el-row> | ||
| 96 | + <div style="margin-top: 25px"> | ||
| 97 | + <el-button | ||
| 98 | + type="primary" | ||
| 99 | + icon="el-icon-search" | ||
| 100 | + size="mini" | ||
| 101 | + @click="handleQuery" | ||
| 102 | + >搜索</el-button | ||
| 103 | + > | ||
| 104 | + <el-button | ||
| 105 | + type="warning" | ||
| 106 | + :disabled="tableData.length == 0" | ||
| 107 | + @click="xlse()" | ||
| 108 | + :loading="downLoadingTip.downloading" | ||
| 109 | + icon="el-icon-download" | ||
| 110 | + size="mini" | ||
| 111 | + >{{ | ||
| 112 | + downLoadingTip.downloading ? downLoadingTip.tip : "导出" | ||
| 113 | + }}</el-button | ||
| 114 | + > | ||
| 115 | + </div> | ||
| 116 | + </el-form> | ||
| 117 | + | ||
| 118 | + <el-table | ||
| 119 | + max-height="500" | ||
| 120 | + highlight-current-row | ||
| 121 | + border | ||
| 122 | + stripe | ||
| 123 | + v-loading="loading" | ||
| 124 | + :data="tableData" | ||
| 125 | + > | ||
| 126 | + <el-table-column | ||
| 127 | + label="运单号" | ||
| 128 | + align="center" | ||
| 129 | + prop="waybillNo" | ||
| 130 | + width="150" | ||
| 131 | + /> | ||
| 132 | + <el-table-column | ||
| 133 | + :show-overflow-tooltip="true" | ||
| 134 | + label="品牌描述" | ||
| 135 | + align="center" | ||
| 136 | + prop="nameDescription" | ||
| 137 | + width="150" | ||
| 138 | + /> | ||
| 139 | + <el-table-column | ||
| 140 | + label="航班日期" | ||
| 141 | + align="center" | ||
| 142 | + prop="fltDate" | ||
| 143 | + width="150" | ||
| 144 | + /> | ||
| 145 | + <el-table-column label="航班号" align="center" prop="fltNo" /> | ||
| 146 | + <el-table-column | ||
| 147 | + label="航班路线" | ||
| 148 | + align="center" | ||
| 149 | + prop="route" | ||
| 150 | + width="150" | ||
| 151 | + /> | ||
| 152 | + <el-table-column | ||
| 153 | + label="配置航班类型" | ||
| 154 | + align="center" | ||
| 155 | + prop="kindName" | ||
| 156 | + width="130" | ||
| 157 | + /> | ||
| 158 | + <el-table-column label="尺寸" align="center" prop="sizeStr" /> | ||
| 159 | + <el-table-column label="件数" align="center" prop="qty" /> | ||
| 160 | + <el-table-column label="实际重量" align="center" prop="actualWeight" /> | ||
| 161 | + <el-table-column | ||
| 162 | + label="创建时间" | ||
| 163 | + align="center" | ||
| 164 | + prop="createTime" | ||
| 165 | + width="180" | ||
| 166 | + /> | ||
| 167 | + </el-table> | ||
| 168 | + <pagination | ||
| 169 | + v-show="total > 0" | ||
| 170 | + :total="total" | ||
| 171 | + layout=" prev, pager, next, jumper, sizes,total" | ||
| 172 | + :page.sync="queryParams.pageNum" | ||
| 173 | + :limit.sync="queryParams.limitSize" | ||
| 174 | + @pagination="findAllFltData" | ||
| 175 | + /> | ||
| 176 | + </div> | ||
| 177 | +</template> | ||
| 178 | + | ||
| 179 | +<script> | ||
| 180 | +import { findCagroPreData } from "@/api/cargoSelect"; | ||
| 181 | +import { cargoXlsxPre } from "@/utils/zipdownload"; | ||
| 182 | +export default { | ||
| 183 | + name: "CAPreQualificationExport", | ||
| 184 | + data() { | ||
| 185 | + return { | ||
| 186 | + //导出 | ||
| 187 | + downLoadingTip: { | ||
| 188 | + tip: "", | ||
| 189 | + downloading: false, | ||
| 190 | + }, | ||
| 191 | + tableData: [], //表格数据 | ||
| 192 | + // 遮罩层 | ||
| 193 | + loading: false, | ||
| 194 | + // 弹出层标题 | ||
| 195 | + title: "", | ||
| 196 | + // 总条数 | ||
| 197 | + total: 0, | ||
| 198 | + // 原航班规则数据 | ||
| 199 | + findAllFltDatList: [], | ||
| 200 | + // 新增修改查看规则弹出层 | ||
| 201 | + open: false, | ||
| 202 | + // 查询参数 | ||
| 203 | + queryParams: { | ||
| 204 | + limitStart: 0, //当前条数【代表第几条数据 +1开始】 | ||
| 205 | + pageNum: 1, | ||
| 206 | + limitSize: 20, //一页显示多少条数据 | ||
| 207 | + fltDateStart: undefined, //航班日期开始 | ||
| 208 | + fltDateEnd: undefined, //航班日期结束 | ||
| 209 | + reExport: false, | ||
| 210 | + //航班号 | ||
| 211 | + fltNo: null, | ||
| 212 | + //运单号 | ||
| 213 | + waybillNo: "", | ||
| 214 | + //站点 | ||
| 215 | + siteName: "", | ||
| 216 | + //ursa | ||
| 217 | + ursa: "", | ||
| 218 | + }, | ||
| 219 | + // 表单校验 | ||
| 220 | + rules: {}, | ||
| 221 | + }; | ||
| 222 | + }, | ||
| 223 | + created() {}, | ||
| 224 | + methods: { | ||
| 225 | + // 导出表格 | ||
| 226 | + xlse() { | ||
| 227 | + this.downLoadingTip.downloading = true; | ||
| 228 | + this.downLoadingTip.tip = "正在导出结果集请耐心等待"; | ||
| 229 | + let cargoXlse = { title: "航班预审表", cargoExportPreQueryDto: {} }; | ||
| 230 | + cargoXlse.cargoExportPreQueryDto = JSON.parse( | ||
| 231 | + JSON.stringify(this.queryParams) | ||
| 232 | + ); | ||
| 233 | + cargoXlse.cargoExportPreQueryDto.limitStart = 0; | ||
| 234 | + cargoXlse.cargoExportPreQueryDto.limitSize = -1; | ||
| 235 | + cargoXlsxPre("/cargo/excelPre", cargoXlse) | ||
| 236 | + .then(() => { | ||
| 237 | + this.downLoadingTip.downloading = false; | ||
| 238 | + this.downLoadingTip.tip = ""; | ||
| 239 | + this.progress = 100; | ||
| 240 | + }) | ||
| 241 | + .catch(() => { | ||
| 242 | + this.downLoadingTip.downloading = false; | ||
| 243 | + this.downLoadingTip.tip = ""; | ||
| 244 | + }); | ||
| 245 | + }, | ||
| 246 | + | ||
| 247 | + /** 搜索按钮操作 */ | ||
| 248 | + handleQuery() { | ||
| 249 | + this.queryParams.pageNum = 1; | ||
| 250 | + this.queryParams.start = 0; | ||
| 251 | + this.findAllFltData(); | ||
| 252 | + }, | ||
| 253 | + /** 预审信息查寻*/ | ||
| 254 | + findAllFltData() { | ||
| 255 | + this.loading = true; | ||
| 256 | + if (this.queryParams.pageNum > 1) { | ||
| 257 | + this.queryParams.limitStart = | ||
| 258 | + (this.queryParams.pageNum - 1) * this.queryParams.limitSize; | ||
| 259 | + } else { | ||
| 260 | + this.queryParams.limitStart = 0; | ||
| 261 | + } | ||
| 262 | + findCagroPreData(this.queryParams).then((response) => { | ||
| 263 | + if (response.code == 200) { | ||
| 264 | + this.tableData = response.data.list; | ||
| 265 | + this.total = response.data.totalCount; | ||
| 266 | + this.loading = false; | ||
| 267 | + } else { | ||
| 268 | + this.msgError(response.msg); | ||
| 269 | + } | ||
| 270 | + }); | ||
| 271 | + }, | ||
| 272 | + }, | ||
| 273 | + computed: { | ||
| 274 | + fltNo: { | ||
| 275 | + get: function () { | ||
| 276 | + return this.queryParams.fltNo; | ||
| 277 | + }, | ||
| 278 | + set: function (val) { | ||
| 279 | + this.queryParams.fltNo = val.toUpperCase(); | ||
| 280 | + }, | ||
| 281 | + }, | ||
| 282 | + siteName: { | ||
| 283 | + get: function () { | ||
| 284 | + return this.queryParams.siteName; | ||
| 285 | + }, | ||
| 286 | + set: function (val) { | ||
| 287 | + this.queryParams.siteName = val.toUpperCase(); | ||
| 288 | + }, | ||
| 289 | + }, | ||
| 290 | + ursa: { | ||
| 291 | + get: function () { | ||
| 292 | + return this.queryParams.ursa; | ||
| 293 | + }, | ||
| 294 | + set: function (val) { | ||
| 295 | + this.queryParams.ursa = val.toUpperCase(); | ||
| 296 | + }, | ||
| 297 | + }, | ||
| 298 | + }, | ||
| 299 | +}; | ||
| 300 | +</script> | ||
| 301 | + | ||
| 302 | +<style scoped> | ||
| 303 | +.tips { | ||
| 304 | + float: right; | ||
| 305 | + color: #606266; | ||
| 306 | + font-size: 14px; | ||
| 307 | + margin-right: 40px; | ||
| 308 | +} | ||
| 309 | +</style> |
| 1 | +<template> | ||
| 2 | + <div style="margin: 20px"> | ||
| 3 | + <el-form :inline="true" :model="form" class="demo-form-inline" size="small"> | ||
| 4 | + <el-form-item> | ||
| 5 | + <el-upload action="/caPreReviewImport/importFlight" name="file" :http-request="uploadExcel" | ||
| 6 | + :on-remove="handleRemove" :limit="1" :on-exceed="handleExceed" :file-list="fileList" accept=".xlsx" | ||
| 7 | + class="upload-demo"> | ||
| 8 | + <el-button type="primary">点击上传</el-button> | ||
| 9 | + </el-upload> | ||
| 10 | + </el-form-item> | ||
| 11 | + <el-form-item> | ||
| 12 | + <el-button type="primary" @click="downloadTempleate">下载模板</el-button> | ||
| 13 | + </el-form-item> | ||
| 14 | + </el-form> | ||
| 15 | + <div style="font-size: 12px; font-weight: 700"> | ||
| 16 | + 提示:<span style="color: #1890ff">以下为所提交的数据或出错信息</span> | ||
| 17 | + </div> | ||
| 18 | + <el-table ref="filterTable" :data="tableData" v-loading="loading" style="width: 100%; margin-top: 20px" size="small" border> | ||
| 19 | + <el-table-column label="行号" prop="line" fixed width="50" align="center"> | ||
| 20 | + </el-table-column> | ||
| 21 | + <el-table-column label="错误信息" prop="errorMessage" fixed width="300"> | ||
| 22 | + <template slot-scope="scope"> | ||
| 23 | + <div v-for="(m, key) in scope.row.errorMessage" :key="key"> | ||
| 24 | + {{ m }} | ||
| 25 | + </div> | ||
| 26 | + </template> | ||
| 27 | + </el-table-column> | ||
| 28 | + <el-table-column v-if="tableData.length == 0"></el-table-column> | ||
| 29 | + <el-table-column v-if="tableData.length > 0" label="运单号" align="center" prop="A" /> | ||
| 30 | + <el-table-column v-if="tableData.length > 0" label="品名描述" align="center" prop="B" /> | ||
| 31 | + <el-table-column v-if="tableData.length > 0" label="航班日期" align="center" prop="C" /> | ||
| 32 | + <el-table-column v-if="tableData.length > 0" label="航班号" align="center" prop="D" /> | ||
| 33 | + <el-table-column v-if="tableData.length > 0" label="预审意见" align="center" prop="E" /> | ||
| 34 | + <!-- <el-table-column v-for="(value, key) in this.tableData[0]" :key="key" | ||
| 35 | + v-if="key != 'errorMessage' && key != 'line'" :label="key" :prop="key" width="120"></el-table-column>--> | ||
| 36 | + </el-table> | ||
| 37 | + </div> | ||
| 38 | +</template> | ||
| 39 | + | ||
| 40 | +<script> | ||
| 41 | + import { | ||
| 42 | + downLoadTemplate, | ||
| 43 | + importcaPreReview, | ||
| 44 | + } from "@/api/caPreReviewImport"; | ||
| 45 | + export default { | ||
| 46 | + name:"CAPreReviewImport", | ||
| 47 | + data() { | ||
| 48 | + return { | ||
| 49 | + // 遮罩层 | ||
| 50 | + loading: false, | ||
| 51 | + flightType: [], | ||
| 52 | + form: { | ||
| 53 | + type: "", | ||
| 54 | + region: "", | ||
| 55 | + }, | ||
| 56 | + fileList: [], | ||
| 57 | + tableData: [], | ||
| 58 | + }; | ||
| 59 | + }, | ||
| 60 | + methods: { | ||
| 61 | + downloadTempleate() { | ||
| 62 | + | ||
| 63 | + let fileName = "航班预审导入模板.xlsx"; | ||
| 64 | + downLoadTemplate().then((res) => { | ||
| 65 | + if (res) { | ||
| 66 | + const blob = new Blob([res]); | ||
| 67 | + const link = document.createElement("a"); //创建a标签 | ||
| 68 | + link.download = fileName; //a标签添加属性 | ||
| 69 | + link.style.display = "none"; | ||
| 70 | + link.href = URL.createObjectURL(blob); | ||
| 71 | + document.body.appendChild(link); | ||
| 72 | + link.click(); //执行下载 | ||
| 73 | + URL.revokeObjectURL(link.href); //释放url | ||
| 74 | + document.body.removeChild(link); //释放标签 | ||
| 75 | + } else { | ||
| 76 | + this.$message.error("下载失败"); | ||
| 77 | + } | ||
| 78 | + }); | ||
| 79 | + | ||
| 80 | + }, | ||
| 81 | + uploadExcel(option) { | ||
| 82 | + //上传excel | ||
| 83 | + const file = option.file; | ||
| 84 | + this.loading=true; | ||
| 85 | + importcaPreReview(file, this.form.type).then((res) => { | ||
| 86 | + this.loading=false; | ||
| 87 | + if (res.code != 200) { | ||
| 88 | + if (res.code == 603) { | ||
| 89 | + this.$alert(res.msg, "提示", { | ||
| 90 | + confirmButtonText: "确定", | ||
| 91 | + type: "warning", | ||
| 92 | + }); | ||
| 93 | + } else { | ||
| 94 | + this.$message.error(res.msg); | ||
| 95 | + this.tableData = res.data; | ||
| 96 | + } | ||
| 97 | + } else { | ||
| 98 | + this.$message.success(res.msg); | ||
| 99 | + this.tableData = res.data; | ||
| 100 | + } | ||
| 101 | + }); | ||
| 102 | + }, | ||
| 103 | + handleRemove(file, fileList) { | ||
| 104 | + //清掉上传的文件 | ||
| 105 | + this.tableData = []; | ||
| 106 | + this.fileList = []; | ||
| 107 | + }, | ||
| 108 | + handleExceed(files) { | ||
| 109 | + //重复上传文件 | ||
| 110 | + let file = {}; | ||
| 111 | + file.file = files[0]; | ||
| 112 | + file.name = files[0].name; | ||
| 113 | + this.fileList = []; | ||
| 114 | + this.fileList.push(file); | ||
| 115 | + this.uploadExcel(file); | ||
| 116 | + }, | ||
| 117 | + }, | ||
| 118 | + created() { | ||
| 119 | + | ||
| 120 | + }, | ||
| 121 | + }; | ||
| 122 | +</script> | ||
| 123 | +<style rel="stylesheet/scss" lang="scss"> | ||
| 124 | + .upload-demo { | ||
| 125 | + float: right; | ||
| 126 | + } | ||
| 127 | + | ||
| 128 | + .el-upload-list { | ||
| 129 | + display: inline-block; | ||
| 130 | + margin-left: 10px; | ||
| 131 | + vertical-align: top; | ||
| 132 | + } | ||
| 133 | +</style> |
| 1 | +<template> | ||
| 2 | + <div style="margin: 20px"> | ||
| 3 | + <el-form :inline="true" :model="form" class="demo-form-inline" size="small"> | ||
| 4 | + <el-form-item label="航班种类"> | ||
| 5 | + <el-select v-model="form.type" placeholder="航班种类"> | ||
| 6 | + <el-option | ||
| 7 | + v-for="item in flightType" | ||
| 8 | + :key="item.id" | ||
| 9 | + :label="item.englishName" | ||
| 10 | + :value="item.code" | ||
| 11 | + >{{ item.englishName }}</el-option | ||
| 12 | + > | ||
| 13 | + </el-select> | ||
| 14 | + </el-form-item> | ||
| 15 | + <el-form-item> | ||
| 16 | + <el-upload | ||
| 17 | + action="/flightInfoImport/importFlight" | ||
| 18 | + name="file" | ||
| 19 | + :http-request="uploadExcel" | ||
| 20 | + :on-remove="handleRemove" | ||
| 21 | + :limit="1" | ||
| 22 | + :on-exceed="handleExceed" | ||
| 23 | + :file-list="fileList" | ||
| 24 | + accept=".xlsx" | ||
| 25 | + class="upload-demo" | ||
| 26 | + > | ||
| 27 | + <el-button type="primary">点击上传</el-button> | ||
| 28 | + </el-upload> | ||
| 29 | + </el-form-item> | ||
| 30 | + <el-form-item> | ||
| 31 | + <el-button type="primary" @click="downloadTempleate" | ||
| 32 | + >下载模板</el-button | ||
| 33 | + > | ||
| 34 | + </el-form-item> | ||
| 35 | + </el-form> | ||
| 36 | + <div style="font-size: 12px; font-weight: 700"> | ||
| 37 | + 提示:<span style="color: #1890ff">以下为所提交的数据或出错信息</span> | ||
| 38 | + </div> | ||
| 39 | + <el-table | ||
| 40 | + ref="filterTable" | ||
| 41 | + :data="tableData" | ||
| 42 | + style="width: 100%; margin-top: 20px" | ||
| 43 | + size="small" | ||
| 44 | + border | ||
| 45 | + > | ||
| 46 | + <el-table-column label="行号" prop="line" fixed width="50" align="center"> | ||
| 47 | + </el-table-column> | ||
| 48 | + <el-table-column label="错误信息" prop="errorMessage" fixed width="200"> | ||
| 49 | + <template slot-scope="scope"> | ||
| 50 | + <div v-for="(m, key) in scope.row.errorMessage" :key="key"> | ||
| 51 | + {{ m }} | ||
| 52 | + </div> | ||
| 53 | + </template> | ||
| 54 | + </el-table-column> | ||
| 55 | + <el-table-column v-if="tableData.length == 0"></el-table-column> | ||
| 56 | + <el-table-column | ||
| 57 | + v-for="(value, key) in this.tableData[0]" | ||
| 58 | + :key="key" | ||
| 59 | + v-if="key != 'errorMessage' && key != 'line'" | ||
| 60 | + :label="key" | ||
| 61 | + :prop="key" | ||
| 62 | + width="120" | ||
| 63 | + ></el-table-column> | ||
| 64 | + </el-table> | ||
| 65 | + </div> | ||
| 66 | +</template> | ||
| 67 | + | ||
| 68 | +<script> | ||
| 69 | +import { | ||
| 70 | + filghtKindData, | ||
| 71 | + downLoadTemplate, | ||
| 72 | + importFlight, | ||
| 73 | +} from "@/api/flightInfoImport"; | ||
| 74 | +export default { | ||
| 75 | + name: "FlightInformationImport", | ||
| 76 | + data() { | ||
| 77 | + return { | ||
| 78 | + flightType: [], | ||
| 79 | + form: { | ||
| 80 | + type: "", | ||
| 81 | + region: "", | ||
| 82 | + }, | ||
| 83 | + fileList: [], | ||
| 84 | + tableData: [], | ||
| 85 | + }; | ||
| 86 | + }, | ||
| 87 | + methods: { | ||
| 88 | + downloadTempleate() { | ||
| 89 | + let downloadType = ""; | ||
| 90 | + let fileName = ""; | ||
| 91 | + switch (this.form.type) { | ||
| 92 | + case "flightKind20": | ||
| 93 | + downloadType = "whiteTail"; | ||
| 94 | + fileName = "航班信息导入模板WhiteTail.xlsx"; | ||
| 95 | + break; | ||
| 96 | + case "flightKind30": | ||
| 97 | + downloadType = "purpleTail"; | ||
| 98 | + fileName = "航班信息导入模板PurpleTail.xlsx"; | ||
| 99 | + break; | ||
| 100 | + default: | ||
| 101 | + this.$confirm("此类航班暂无模板,请选择其他类型航班", "提示", { | ||
| 102 | + confirmButtonText: "确定", | ||
| 103 | + showCancelButton: false, | ||
| 104 | + type: "warning", | ||
| 105 | + }); | ||
| 106 | + } | ||
| 107 | + if (downloadType != "") { | ||
| 108 | + downLoadTemplate(downloadType).then((res) => { | ||
| 109 | + if (res) { | ||
| 110 | + const blob = new Blob([res]); | ||
| 111 | + const link = document.createElement("a"); //创建a标签 | ||
| 112 | + link.download = fileName; //a标签添加属性 | ||
| 113 | + link.style.display = "none"; | ||
| 114 | + link.href = URL.createObjectURL(blob); | ||
| 115 | + document.body.appendChild(link); | ||
| 116 | + link.click(); //执行下载 | ||
| 117 | + URL.revokeObjectURL(link.href); //释放url | ||
| 118 | + document.body.removeChild(link); //释放标签 | ||
| 119 | + } else { | ||
| 120 | + this.$message.error("下载失败"); | ||
| 121 | + } | ||
| 122 | + }); | ||
| 123 | + } | ||
| 124 | + }, | ||
| 125 | + uploadExcel(option) { | ||
| 126 | + //上传excel | ||
| 127 | + const file = option.file; | ||
| 128 | + importFlight(file, this.form.type).then((res) => { | ||
| 129 | + if (res.code != 200) { | ||
| 130 | + if (res.code == 603) { | ||
| 131 | + this.$alert(res.msg, "提示", { | ||
| 132 | + confirmButtonText: "确定", | ||
| 133 | + type: "warning", | ||
| 134 | + }); | ||
| 135 | + } else { | ||
| 136 | + this.$message.error(res.msg); | ||
| 137 | + this.tableData = res.data; | ||
| 138 | + } | ||
| 139 | + } else { | ||
| 140 | + this.$message.success("导入成功"); | ||
| 141 | + this.tableData = res.data; | ||
| 142 | + } | ||
| 143 | + }); | ||
| 144 | + }, | ||
| 145 | + handleRemove(file, fileList) { | ||
| 146 | + //清掉上传的文件 | ||
| 147 | + this.tableData = []; | ||
| 148 | + this.fileList = []; | ||
| 149 | + }, | ||
| 150 | + handleExceed(files) { | ||
| 151 | + //重复上传文件 | ||
| 152 | + let file = {}; | ||
| 153 | + file.file = files[0]; | ||
| 154 | + file.name = files[0].name; | ||
| 155 | + this.fileList = []; | ||
| 156 | + this.fileList.push(file); | ||
| 157 | + this.uploadExcel(file); | ||
| 158 | + }, | ||
| 159 | + }, | ||
| 160 | + created() { | ||
| 161 | + filghtKindData().then((response) => { | ||
| 162 | + if (response.code != 200) { | ||
| 163 | + this.$message({ | ||
| 164 | + message: response.msg, | ||
| 165 | + type: "error", | ||
| 166 | + }); | ||
| 167 | + } | ||
| 168 | + this.flightType = response.data; | ||
| 169 | + this.form.type = response.data[0].code; | ||
| 170 | + }); | ||
| 171 | + }, | ||
| 172 | +}; | ||
| 173 | +</script> | ||
| 174 | + | ||
| 175 | +<style rel="stylesheet/scss" lang="scss"> | ||
| 176 | +.upload-demo { | ||
| 177 | + float: right; | ||
| 178 | +} | ||
| 179 | +.el-upload-list { | ||
| 180 | + display: inline-block; | ||
| 181 | + margin-left: 10px; | ||
| 182 | + vertical-align: top; | ||
| 183 | +} | ||
| 184 | +</style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | +<template> | ||
| 2 | + <div> | ||
| 3 | + <el-form | ||
| 4 | + class="form-header" | ||
| 5 | + :model="queryParams" | ||
| 6 | + ref="queryForm" | ||
| 7 | + label-position="right" | ||
| 8 | + label-width="auto" | ||
| 9 | + size="medium" | ||
| 10 | + > | ||
| 11 | + <el-row> | ||
| 12 | + <el-col :span="6"> | ||
| 13 | + <el-form-item label="航班日期从" prop="fltDateStart"> | ||
| 14 | + <el-date-picker | ||
| 15 | + class="formItem" | ||
| 16 | + value-format="yyyy-MM-dd" | ||
| 17 | + v-model="queryParams.fltDateStart" | ||
| 18 | + type="date" | ||
| 19 | + placeholder="选择日期" | ||
| 20 | + > | ||
| 21 | + </el-date-picker> | ||
| 22 | + </el-form-item> | ||
| 23 | + </el-col> | ||
| 24 | + | ||
| 25 | + <el-col :span="6"> | ||
| 26 | + <el-form-item label="到" prop="fltDateEnd"> | ||
| 27 | + <el-date-picker | ||
| 28 | + class="formItem" | ||
| 29 | + value-format="yyyy-MM-dd" | ||
| 30 | + v-model="queryParams.fltDateEnd" | ||
| 31 | + type="date" | ||
| 32 | + placeholder="选择日期" | ||
| 33 | + > | ||
| 34 | + </el-date-picker> | ||
| 35 | + </el-form-item> | ||
| 36 | + </el-col> | ||
| 37 | + | ||
| 38 | + <el-col :span="6"> | ||
| 39 | + <el-form-item label="航班号" prop="fltNo"> | ||
| 40 | + <el-input | ||
| 41 | + class="formItem" | ||
| 42 | + v-model="queryParams.fltNo" | ||
| 43 | + placeholder="请输入航班号" | ||
| 44 | + clearable | ||
| 45 | + /> | ||
| 46 | + </el-form-item> | ||
| 47 | + </el-col> | ||
| 48 | + | ||
| 49 | + <el-col :span="6"> | ||
| 50 | + <el-form-item label="航班类型" prop="typeId"> | ||
| 51 | + <el-select | ||
| 52 | + class="formItem" | ||
| 53 | + v-model="queryParams.typeId" | ||
| 54 | + placeholder="请选择航班类型" | ||
| 55 | + clearable | ||
| 56 | + > | ||
| 57 | + <el-option | ||
| 58 | + v-for="dict in flightTypelist" | ||
| 59 | + :key="dict.id" | ||
| 60 | + :label="dict.chineseName" | ||
| 61 | + :value="dict.id" | ||
| 62 | + /> | ||
| 63 | + </el-select> | ||
| 64 | + </el-form-item> | ||
| 65 | + </el-col> | ||
| 66 | + | ||
| 67 | + <el-col :span="6"> | ||
| 68 | + <el-form-item label="航班状态" prop="statusId"> | ||
| 69 | + <el-select | ||
| 70 | + class="formItem" | ||
| 71 | + v-model="queryParams.statusId" | ||
| 72 | + placeholder="请选择航班状态" | ||
| 73 | + clearable | ||
| 74 | + > | ||
| 75 | + <el-option | ||
| 76 | + v-for="dict in flightStatuslist" | ||
| 77 | + :key="dict.id" | ||
| 78 | + :label="dict.chineseName" | ||
| 79 | + :value="dict.id" | ||
| 80 | + /> | ||
| 81 | + </el-select> | ||
| 82 | + </el-form-item> | ||
| 83 | + </el-col> | ||
| 84 | + | ||
| 85 | + <el-col :span="6"> | ||
| 86 | + <el-form-item label="航班种类" prop="flightKindId"> | ||
| 87 | + <el-select | ||
| 88 | + class="formItem" | ||
| 89 | + v-model="queryParams.flightKindId" | ||
| 90 | + placeholder="请选择航班种类" | ||
| 91 | + clearable | ||
| 92 | + > | ||
| 93 | + <el-option | ||
| 94 | + v-for="dict in flightKindlist" | ||
| 95 | + :key="dict.id" | ||
| 96 | + :label="dict.chineseName" | ||
| 97 | + :value="dict.id" | ||
| 98 | + /> | ||
| 99 | + </el-select> | ||
| 100 | + </el-form-item> | ||
| 101 | + </el-col> | ||
| 102 | + </el-row> | ||
| 103 | + | ||
| 104 | + <el-button | ||
| 105 | + type="primary" | ||
| 106 | + icon="el-icon-search" | ||
| 107 | + size="mini" | ||
| 108 | + @click="handleQuery" | ||
| 109 | + >搜索</el-button | ||
| 110 | + > | ||
| 111 | + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery" | ||
| 112 | + >重置</el-button | ||
| 113 | + > | ||
| 114 | + <el-button | ||
| 115 | + type="primary" | ||
| 116 | + icon="el-icon-plus" | ||
| 117 | + size="mini" | ||
| 118 | + @click="handleAdd" | ||
| 119 | + >新增</el-button | ||
| 120 | + > | ||
| 121 | + <el-button | ||
| 122 | + type="danger" | ||
| 123 | + icon="el-icon-delete" | ||
| 124 | + size="mini" | ||
| 125 | + :disabled="multiple" | ||
| 126 | + @click="handleDelete" | ||
| 127 | + >删除 | ||
| 128 | + </el-button> | ||
| 129 | + <el-button | ||
| 130 | + type="primary" | ||
| 131 | + icon="el-icon-circle-check" | ||
| 132 | + size="mini" | ||
| 133 | + @click="handleFlightStatus('flightStatus10')" | ||
| 134 | + >自动配舱开启</el-button | ||
| 135 | + > | ||
| 136 | + <el-button | ||
| 137 | + type="primary" | ||
| 138 | + icon="el-icon-circle-close" | ||
| 139 | + size="mini" | ||
| 140 | + @click="handleFlightStatus('flightStatus80')" | ||
| 141 | + >自动配舱关闭</el-button | ||
| 142 | + > | ||
| 143 | + </el-form> | ||
| 144 | + <!-- <el-row :gutter="10" class="mb8"> | ||
| 145 | + <el-col :span="1.5"> | ||
| 146 | + <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd">新增</el-button> | ||
| 147 | + </el-col> | ||
| 148 | + <el-col :span="1.5"> | ||
| 149 | + <el-button type="success" icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate">修改 | ||
| 150 | + </el-button> | ||
| 151 | + </el-col> | ||
| 152 | + <el-col :span="1.5"> | ||
| 153 | + <el-button type="danger" icon="el-icon-delete" size="mini" :disabled="multiple">删除 | ||
| 154 | + </el-button> | ||
| 155 | + </el-col> | ||
| 156 | + </el-row> --> | ||
| 157 | + <el-table | ||
| 158 | + height="550" | ||
| 159 | + highlight-current-row | ||
| 160 | + border | ||
| 161 | + stripe | ||
| 162 | + v-loading="loading" | ||
| 163 | + :data="findAllFltDatList" | ||
| 164 | + size="small" | ||
| 165 | + @selection-change="handleSelectionChange" | ||
| 166 | + > | ||
| 167 | + <el-table-column type="selection" width="55" align="center" /> | ||
| 168 | + <el-table-column | ||
| 169 | + label="航班日期" | ||
| 170 | + align="center" | ||
| 171 | + prop="fltDate" | ||
| 172 | + width="120" | ||
| 173 | + /> | ||
| 174 | + <el-table-column | ||
| 175 | + label="航班起飞时间" | ||
| 176 | + align="center" | ||
| 177 | + prop="takeOffTime" | ||
| 178 | + width="120" | ||
| 179 | + /> | ||
| 180 | + <el-table-column label="航班号" align="center" prop="fltNo" width="150"/> | ||
| 181 | + <el-table-column label="航班路线" align="center" prop="route" width="150" /> | ||
| 182 | + <el-table-column | ||
| 183 | + label="航班类型" | ||
| 184 | + align="center" | ||
| 185 | + prop="typeName" | ||
| 186 | + width="100" | ||
| 187 | + /> | ||
| 188 | + <el-table-column | ||
| 189 | + label="航班种类" | ||
| 190 | + align="center" | ||
| 191 | + prop="flightKindName" | ||
| 192 | + width="130" | ||
| 193 | + /> | ||
| 194 | + <el-table-column label="航班状态" align="center" prop="statusName" /> | ||
| 195 | + <el-table-column | ||
| 196 | + label="总重量" | ||
| 197 | + align="center" | ||
| 198 | + prop="totalWeight" | ||
| 199 | + width="130" | ||
| 200 | + /> | ||
| 201 | + <el-table-column | ||
| 202 | + label="原始重量(KG)" | ||
| 203 | + align="center" | ||
| 204 | + prop="originalWeight" | ||
| 205 | + width="130" | ||
| 206 | + /> | ||
| 207 | + <el-table-column | ||
| 208 | + label="总体积(cm³)" | ||
| 209 | + align="center" | ||
| 210 | + prop="totalVolume" | ||
| 211 | + width="130" | ||
| 212 | + /> | ||
| 213 | + <el-table-column | ||
| 214 | + label="是否限制一票一件" | ||
| 215 | + align="center" | ||
| 216 | + prop="ticketToPiece" | ||
| 217 | + width="150" | ||
| 218 | + :formatter="ticketToPieceFormat" | ||
| 219 | + /> | ||
| 220 | + <el-table-column | ||
| 221 | + label="是否需要预审" | ||
| 222 | + align="center" | ||
| 223 | + prop="needRequired" | ||
| 224 | + width="150" | ||
| 225 | + :formatter="needRequiredFormat" | ||
| 226 | + /> | ||
| 227 | + <el-table-column | ||
| 228 | + label="额外增重百分比" | ||
| 229 | + align="center" | ||
| 230 | + prop="extraWeightPercent" | ||
| 231 | + width="150" | ||
| 232 | + /> | ||
| 233 | + <el-table-column | ||
| 234 | + label="高价百分比" | ||
| 235 | + align="center" | ||
| 236 | + prop="highPriceWeightPercent" | ||
| 237 | + width="150" | ||
| 238 | + /> | ||
| 239 | + <el-table-column | ||
| 240 | + label="低价百分比" | ||
| 241 | + align="center" | ||
| 242 | + prop="lowPriceWeightPercent" | ||
| 243 | + width="150" | ||
| 244 | + /> | ||
| 245 | + <el-table-column | ||
| 246 | + label="是否开启高地价" | ||
| 247 | + align="center" | ||
| 248 | + prop="highLowPriceFlg" | ||
| 249 | + width="150" | ||
| 250 | + :formatter="highLowPriceFlgFormat" | ||
| 251 | + /> | ||
| 252 | + <el-table-column | ||
| 253 | + label="已配重量" | ||
| 254 | + align="center" | ||
| 255 | + prop="alloctedWeight" | ||
| 256 | + width="150" | ||
| 257 | + /> | ||
| 258 | + <el-table-column | ||
| 259 | + label="已配体积(cm³)" | ||
| 260 | + align="center" | ||
| 261 | + prop="alloctedVolume" | ||
| 262 | + width="150" | ||
| 263 | + /> | ||
| 264 | + <el-table-column | ||
| 265 | + label="航班优先级" | ||
| 266 | + align="center" | ||
| 267 | + prop="priorityName" | ||
| 268 | + width="150" | ||
| 269 | + /> | ||
| 270 | + <el-table-column | ||
| 271 | + label="配舱优先级" | ||
| 272 | + align="center" | ||
| 273 | + prop="priorityRuleName" | ||
| 274 | + width="150" | ||
| 275 | + /> | ||
| 276 | + <el-table-column | ||
| 277 | + label="创建人" | ||
| 278 | + align="center" | ||
| 279 | + prop="createUserName" | ||
| 280 | + width="120" | ||
| 281 | + /> | ||
| 282 | + <el-table-column | ||
| 283 | + label="创建时间" | ||
| 284 | + align="center" | ||
| 285 | + prop="createTime" | ||
| 286 | + width="155" | ||
| 287 | + /> | ||
| 288 | + | ||
| 289 | + <!-- <el-table-column label="创建时间" align="center" prop="createTime" width="155"> | ||
| 290 | + <template slot-scope="scope"> | ||
| 291 | + <span>{{ renderTime(scope.row.createTime) }}</span> | ||
| 292 | + </template> | ||
| 293 | + </el-table-column> --> | ||
| 294 | + <el-table-column | ||
| 295 | + label="最后修改人" | ||
| 296 | + align="center" | ||
| 297 | + prop="lastModifyUserName" | ||
| 298 | + width="155" | ||
| 299 | + /> | ||
| 300 | + <!-- <el-table-column label="最后修改时间" align="center" prop="lastModifyTime" width="155"> | ||
| 301 | + <template slot-scope="scope"> | ||
| 302 | + <span>{{ renderTime(scope.row.lastModifyTime) }}</span> | ||
| 303 | + </template> | ||
| 304 | + </el-table-column> --> | ||
| 305 | + <el-table-column | ||
| 306 | + label="最后修改时间" | ||
| 307 | + align="center" | ||
| 308 | + prop="lastModifyTime" | ||
| 309 | + width="120" | ||
| 310 | + /> | ||
| 311 | + | ||
| 312 | + <el-table-column | ||
| 313 | + v-if="findAllFltDatList.length > 0" | ||
| 314 | + label="操作" | ||
| 315 | + align="center" | ||
| 316 | + class-name="small-padding fixed-width" | ||
| 317 | + width="130" | ||
| 318 | + fixed="right" | ||
| 319 | + > | ||
| 320 | + <template slot-scope="scope"> | ||
| 321 | + <el-button | ||
| 322 | + size="mini" | ||
| 323 | + type="text" | ||
| 324 | + icon="el-icon-edit" | ||
| 325 | + @click="handleUpdate(scope.row)" | ||
| 326 | + >修改</el-button | ||
| 327 | + > | ||
| 328 | + <!-- <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row,'删除')"> | ||
| 329 | + 删除</el-button> --> | ||
| 330 | + </template> | ||
| 331 | + </el-table-column> | ||
| 332 | + </el-table> | ||
| 333 | + | ||
| 334 | + <pagination | ||
| 335 | + v-show="total > 0" | ||
| 336 | + :total="total" | ||
| 337 | + layout=" prev, pager, next, jumper, sizes,total" | ||
| 338 | + :page.sync="queryParams.pageNum" | ||
| 339 | + :limit.sync="queryParams.limitSize" | ||
| 340 | + @pagination="findAllFltData" | ||
| 341 | + /> | ||
| 342 | + | ||
| 343 | + <!-- 添加或修改对话框 --> | ||
| 344 | + <el-dialog | ||
| 345 | + :title="title" | ||
| 346 | + :visible.sync="open" | ||
| 347 | + width="60%" | ||
| 348 | + :close-on-click-modal="false" | ||
| 349 | + :append-to-body="true" | ||
| 350 | + > | ||
| 351 | + <el-form | ||
| 352 | + ref="form" | ||
| 353 | + :model="form" | ||
| 354 | + :rules="rules" | ||
| 355 | + label-position="right" | ||
| 356 | + label-width="auto" | ||
| 357 | + > | ||
| 358 | + <el-row> | ||
| 359 | + <el-col :span="12"> | ||
| 360 | + <el-form-item label="航班号" prop="fltNo"> | ||
| 361 | + <el-input | ||
| 362 | + @blur="blurfltNo" | ||
| 363 | + :disabled="formdisabled.fltNo" | ||
| 364 | + style="width: 93%" | ||
| 365 | + v-model="form.fltNo" | ||
| 366 | + placeholder="请输入航班号" | ||
| 367 | + /> | ||
| 368 | + </el-form-item> | ||
| 369 | + </el-col> | ||
| 370 | + <!-- <el-col :span="1">  </el-col> --> | ||
| 371 | + <el-col :span="12"> | ||
| 372 | + <el-form-item label="航班日期" prop="fltDate"> | ||
| 373 | + <el-date-picker | ||
| 374 | + :disabled="formdisabled.fltDate" | ||
| 375 | + clearable | ||
| 376 | + size="small" | ||
| 377 | + v-model="form.fltDate" | ||
| 378 | + type="date" | ||
| 379 | + value-format="yyyy-MM-dd" | ||
| 380 | + placeholder="选择航班日期" | ||
| 381 | + > | ||
| 382 | + </el-date-picker> | ||
| 383 | + </el-form-item> | ||
| 384 | + </el-col> | ||
| 385 | + | ||
| 386 | + <el-col :span="12"> | ||
| 387 | + <el-form-item label="航班路线" prop="route"> | ||
| 388 | + <el-input | ||
| 389 | + style="width: 93%" | ||
| 390 | + v-model="form.route" | ||
| 391 | + placeholder="请输入航班路线" | ||
| 392 | + /> | ||
| 393 | + </el-form-item> | ||
| 394 | + </el-col> | ||
| 395 | + | ||
| 396 | + <el-col :span="12"> | ||
| 397 | + <el-form-item label="航班种类" prop="kindId"> | ||
| 398 | + <el-select v-model="form.kindId" placeholder="请选择航班种类"> | ||
| 399 | + <el-option | ||
| 400 | + v-for="item in flightKindlist" | ||
| 401 | + :key="item.id" | ||
| 402 | + :label="item.chineseName" | ||
| 403 | + :value="item.id" | ||
| 404 | + > | ||
| 405 | + </el-option> | ||
| 406 | + </el-select> | ||
| 407 | + </el-form-item> | ||
| 408 | + </el-col> | ||
| 409 | + <el-col :span="12"> | ||
| 410 | + <el-form-item label="航班类型" prop="typeId"> | ||
| 411 | + <el-select v-model="form.typeId" placeholder="请选择航班类型"> | ||
| 412 | + <el-option | ||
| 413 | + v-for="item in flightTypelist" | ||
| 414 | + :key="item.id" | ||
| 415 | + :label="item.chineseName" | ||
| 416 | + :value="item.id" | ||
| 417 | + > | ||
| 418 | + </el-option> | ||
| 419 | + </el-select> | ||
| 420 | + </el-form-item> | ||
| 421 | + </el-col> | ||
| 422 | + <el-col :span="12"> | ||
| 423 | + <el-form-item label="航班状态" prop="statusId"> | ||
| 424 | + <el-select | ||
| 425 | + :disabled="true" | ||
| 426 | + v-model="form.statusId" | ||
| 427 | + placeholder="请选择航班状态" | ||
| 428 | + > | ||
| 429 | + <el-option | ||
| 430 | + v-for="item in flightStatuslist" | ||
| 431 | + :key="item.id" | ||
| 432 | + :label="item.chineseName" | ||
| 433 | + :value="item.id" | ||
| 434 | + > | ||
| 435 | + </el-option> | ||
| 436 | + </el-select> | ||
| 437 | + </el-form-item> | ||
| 438 | + </el-col> | ||
| 439 | + <el-col :span="12"> | ||
| 440 | + <el-form-item label="原始重量(KG)" prop="originalWeight"> | ||
| 441 | + <el-input-number | ||
| 442 | + @change="LowHighAvailable" | ||
| 443 | + placeholder="请输入原始重量(KG)" | ||
| 444 | + style="width: 93%" | ||
| 445 | + v-model="form.originalWeight" | ||
| 446 | + ></el-input-number> | ||
| 447 | + </el-form-item> | ||
| 448 | + </el-col> | ||
| 449 | + | ||
| 450 | + <el-col :span="12"> | ||
| 451 | + <el-form-item label="额外增重百分比" prop="extraWeightPercent"> | ||
| 452 | + <el-input-number | ||
| 453 | + @change="LowHighAvailable" | ||
| 454 | + placeholder="请输入额外增重百分比" | ||
| 455 | + style="width: 93%" | ||
| 456 | + v-model="form.extraWeightPercent" | ||
| 457 | + ></el-input-number> | ||
| 458 | + </el-form-item> | ||
| 459 | + </el-col> | ||
| 460 | + | ||
| 461 | + <el-col :span="12"> | ||
| 462 | + <el-form-item label="是否开启高低价" prop="highLowPriceFlg"> | ||
| 463 | + <el-switch | ||
| 464 | + @change="LowHighAvailable" | ||
| 465 | + v-model="form.highLowPriceFlg" | ||
| 466 | + active-color="#13ce66" | ||
| 467 | + > | ||
| 468 | + </el-switch> | ||
| 469 | + </el-form-item> | ||
| 470 | + </el-col> | ||
| 471 | + | ||
| 472 | + <!-- 是否需要预审,1:预审,0:取消预审 --> | ||
| 473 | + <el-col :span="12"> | ||
| 474 | + <el-form-item label="是否预审" prop="isNeedRequired"> | ||
| 475 | + <el-switch | ||
| 476 | + :disabled="true" | ||
| 477 | + v-model="form.isNeedRequired" | ||
| 478 | + active-color="#13ce66" | ||
| 479 | + > | ||
| 480 | + </el-switch> | ||
| 481 | + </el-form-item> | ||
| 482 | + </el-col> | ||
| 483 | + | ||
| 484 | + <el-col :span="12"> | ||
| 485 | + <el-form-item label="高价百分比" prop="highPriceWeightPercent"> | ||
| 486 | + <el-input-number | ||
| 487 | + :disabled="ishighPriceWeightPercent" | ||
| 488 | + @change="LowHighAvailable" | ||
| 489 | + placeholder="请输入高价百分比" | ||
| 490 | + style="width: 93%" | ||
| 491 | + v-model="form.highPriceWeightPercent" | ||
| 492 | + ></el-input-number> | ||
| 493 | + </el-form-item> | ||
| 494 | + </el-col> | ||
| 495 | + | ||
| 496 | + <el-col :span="12"> | ||
| 497 | + <el-form-item label="低价百分比" prop="lowPriceWeightPercent"> | ||
| 498 | + <el-input-number | ||
| 499 | + :disabled="true" | ||
| 500 | + placeholder="请输入低价百分比" | ||
| 501 | + style="width: 93%" | ||
| 502 | + v-model="form.lowPriceWeightPercent" | ||
| 503 | + ></el-input-number> | ||
| 504 | + </el-form-item> | ||
| 505 | + </el-col> | ||
| 506 | + | ||
| 507 | + <el-col :span="12"> | ||
| 508 | + <el-form-item label="高价可配重量" prop="highAvailableWeight"> | ||
| 509 | + <el-input-number | ||
| 510 | + :disabled="true" | ||
| 511 | + placeholder="请输入高价可配重量" | ||
| 512 | + style="width: 93%" | ||
| 513 | + v-model="form.highAvailableWeight" | ||
| 514 | + :precision="2" | ||
| 515 | + ></el-input-number> | ||
| 516 | + </el-form-item> | ||
| 517 | + </el-col> | ||
| 518 | + <el-col :span="12"> | ||
| 519 | + <el-form-item label="低价可配重量" prop="lowAvailableWeight"> | ||
| 520 | + <el-input-number | ||
| 521 | + :disabled="true" | ||
| 522 | + placeholder="请输入低价可配重量" | ||
| 523 | + style="width: 93%" | ||
| 524 | + v-model="form.lowAvailableWeight" | ||
| 525 | + :precision="2" | ||
| 526 | + ></el-input-number> | ||
| 527 | + </el-form-item> | ||
| 528 | + </el-col> | ||
| 529 | + | ||
| 530 | + <el-col :span="12"> | ||
| 531 | + <el-form-item label="高价已配重量" prop="highAllocatedWeight"> | ||
| 532 | + <el-input-number | ||
| 533 | + :disabled="true" | ||
| 534 | + placeholder="请输入高价已配重量" | ||
| 535 | + style="width: 93%" | ||
| 536 | + v-model="form.highAllocatedWeight" | ||
| 537 | + :precision="2" | ||
| 538 | + ></el-input-number> | ||
| 539 | + </el-form-item> | ||
| 540 | + </el-col> | ||
| 541 | + <el-col :span="12"> | ||
| 542 | + <el-form-item label="低价已配重量" prop="lowAllocatedWeight"> | ||
| 543 | + <el-input-number | ||
| 544 | + :disabled="true" | ||
| 545 | + placeholder="请输入低价已配重量" | ||
| 546 | + style="width: 93%" | ||
| 547 | + v-model="form.lowAllocatedWeight" | ||
| 548 | + :precision="2" | ||
| 549 | + ></el-input-number> | ||
| 550 | + </el-form-item> | ||
| 551 | + </el-col> | ||
| 552 | + <el-col :span="12"> | ||
| 553 | + <el-form-item label="已配总重量" prop="alloctedWeight"> | ||
| 554 | + <el-input-number | ||
| 555 | + :disabled="true" | ||
| 556 | + placeholder="请输入已配总重量" | ||
| 557 | + style="width: 93%" | ||
| 558 | + v-model="form.alloctedWeight" | ||
| 559 | + :precision="2" | ||
| 560 | + ></el-input-number> | ||
| 561 | + </el-form-item> | ||
| 562 | + </el-col> | ||
| 563 | + </el-row> | ||
| 564 | + </el-form> | ||
| 565 | + <div slot="footer" class="dialog-footer"> | ||
| 566 | + <el-button type="primary" @click="submitForm">确 定</el-button> | ||
| 567 | + <el-button @click="cancel">取 消</el-button> | ||
| 568 | + </div> | ||
| 569 | + </el-dialog> | ||
| 570 | + | ||
| 571 | + <el-dialog | ||
| 572 | + title="未删除成功航班" | ||
| 573 | + width="40%" | ||
| 574 | + center | ||
| 575 | + :visible.sync="dialogTableVisible" | ||
| 576 | + :close-on-click-modal="false" :append-to-body="true" | ||
| 577 | + > | ||
| 578 | + <el-table :data="gridData"> | ||
| 579 | + <el-table-column | ||
| 580 | + property="fltNo" | ||
| 581 | + label="航班号" | ||
| 582 | + width="150" | ||
| 583 | + ></el-table-column> | ||
| 584 | + <el-table-column | ||
| 585 | + property="fltDate" | ||
| 586 | + label="航班日期" | ||
| 587 | + width="200" | ||
| 588 | + ></el-table-column> | ||
| 589 | + <el-table-column | ||
| 590 | + property="alloctedWeight" | ||
| 591 | + label="已配重量" | ||
| 592 | + width="200" | ||
| 593 | + ></el-table-column> | ||
| 594 | + </el-table> | ||
| 595 | + </el-dialog> | ||
| 596 | + </div> | ||
| 597 | +</template> | ||
| 598 | + | ||
| 599 | +<script> | ||
| 600 | +import { | ||
| 601 | + delFlight, | ||
| 602 | + findFltConditionDataApi, | ||
| 603 | + findAllFltDataApi, | ||
| 604 | + findFltById, | ||
| 605 | + saveOrUpdate, | ||
| 606 | + findFltCommonConf, | ||
| 607 | + updateStatusBatch, | ||
| 608 | +} from "@/api/findAllFltData"; | ||
| 609 | +export default { | ||
| 610 | + name: "FlightInformationMaintenance", | ||
| 611 | + data() { | ||
| 612 | + return { | ||
| 613 | + gridData: [], | ||
| 614 | + dialogTableVisible: false, | ||
| 615 | + //高价百分比是否打开 | ||
| 616 | + ishighPriceWeightPercent: true, | ||
| 617 | + //form属性禁用状态 | ||
| 618 | + formdisabled: { | ||
| 619 | + //航班号 | ||
| 620 | + fltNo: false, | ||
| 621 | + //航班日期 | ||
| 622 | + fltDate: false, | ||
| 623 | + //航班路线 | ||
| 624 | + route: false, | ||
| 625 | + //航班种类 | ||
| 626 | + kindId: false, | ||
| 627 | + //航班类型 | ||
| 628 | + typeId: false, | ||
| 629 | + //原始重量 | ||
| 630 | + originalWeight: false, | ||
| 631 | + }, | ||
| 632 | + | ||
| 633 | + //航班种类 | ||
| 634 | + flightKindlist: [], | ||
| 635 | + //航班状态 | ||
| 636 | + flightStatuslist: [], | ||
| 637 | + //航班类型 | ||
| 638 | + flightTypelist: [], | ||
| 639 | + // 选中数组 | ||
| 640 | + ids: [], | ||
| 641 | + // 非单个禁用 | ||
| 642 | + single: true, | ||
| 643 | + // 非多个禁用 | ||
| 644 | + multiple: true, | ||
| 645 | + | ||
| 646 | + // 遮罩层 | ||
| 647 | + loading: false, | ||
| 648 | + // 遮罩层 | ||
| 649 | + loadingFlightDate: false, | ||
| 650 | + // 弹出层标题 | ||
| 651 | + title: "", | ||
| 652 | + // 总条数 | ||
| 653 | + total: 0, | ||
| 654 | + // 原航班规则数据 | ||
| 655 | + findAllFltDatList: [], | ||
| 656 | + //目的航班数据 | ||
| 657 | + sourceFlightAndFlightDate: [], | ||
| 658 | + statusList: [ | ||
| 659 | + { | ||
| 660 | + id: 1, | ||
| 661 | + name: "有效", | ||
| 662 | + }, | ||
| 663 | + { | ||
| 664 | + id: 3, | ||
| 665 | + name: "停用", | ||
| 666 | + }, | ||
| 667 | + ], | ||
| 668 | + // 新增修改查看规则弹出层 | ||
| 669 | + open: false, | ||
| 670 | + // 是否显示查看目的航班弹出层 | ||
| 671 | + openFlightDate: false, | ||
| 672 | + // 查询参数 | ||
| 673 | + queryParams: { | ||
| 674 | + limitStart: 0, //当前条数【代表第几条数据 +1开始】 | ||
| 675 | + pageNum: 1, | ||
| 676 | + limitSize: 20, //一页显示多少条数据 | ||
| 677 | + fltDateStart: undefined, //航班日期开始 | ||
| 678 | + fltDateEnd: undefined, //航班日期结束 | ||
| 679 | + typeId: undefined, //航班类型 | ||
| 680 | + statusId: undefined, //航班状态 | ||
| 681 | + flightKindId: undefined, //航班种类 | ||
| 682 | + fltNo: undefined, //航班号,要大写 | ||
| 683 | + }, | ||
| 684 | + | ||
| 685 | + // 表单参数 | ||
| 686 | + form: {}, | ||
| 687 | + // 表单校验 | ||
| 688 | + rules: { | ||
| 689 | + fltNo: [ | ||
| 690 | + { | ||
| 691 | + required: true, | ||
| 692 | + message: "ACCS原航班号不能为空", | ||
| 693 | + trigger: "blur", | ||
| 694 | + }, | ||
| 695 | + ], | ||
| 696 | + fltDate: [ | ||
| 697 | + { | ||
| 698 | + required: true, | ||
| 699 | + message: "航班日期不能为空", | ||
| 700 | + trigger: "blur", | ||
| 701 | + }, | ||
| 702 | + ], | ||
| 703 | + kindId: [ | ||
| 704 | + { | ||
| 705 | + required: true, | ||
| 706 | + message: "航班种类不能为空", | ||
| 707 | + trigger: "change", | ||
| 708 | + }, | ||
| 709 | + ], | ||
| 710 | + originalWeight: [ | ||
| 711 | + { | ||
| 712 | + required: true, | ||
| 713 | + message: "原始重量(KG)不能为空", | ||
| 714 | + trigger: "blur", | ||
| 715 | + }, | ||
| 716 | + ], | ||
| 717 | + }, | ||
| 718 | + }; | ||
| 719 | + }, | ||
| 720 | + created() { | ||
| 721 | + //查询条件数据源 | ||
| 722 | + this.findFltConditionData(); | ||
| 723 | + this.findAllFltData(); | ||
| 724 | + }, | ||
| 725 | + methods: { | ||
| 726 | + //输入航班号后 | ||
| 727 | + blurfltNo() { | ||
| 728 | + if ( | ||
| 729 | + this.form.fltNo != null && | ||
| 730 | + this.form.fltNo != undefined && | ||
| 731 | + this.form.fltNo != "" | ||
| 732 | + ) { | ||
| 733 | + this.form.fltNo = this.form.fltNo.toUpperCase(); | ||
| 734 | + findFltCommonConf(this.form).then((response) => { | ||
| 735 | + if (response.code == 200) { | ||
| 736 | + //额外增重百分比:根据已存在的相同航班号对应的最新值进行设置,如果无相同航班号,按照默认设置为0,不可编辑 | ||
| 737 | + if ( | ||
| 738 | + response.data != null && | ||
| 739 | + response.data.extraWeightPercent != null && | ||
| 740 | + response.data.extraWeightPercent != undefined | ||
| 741 | + ) { | ||
| 742 | + this.$set( | ||
| 743 | + this.form, | ||
| 744 | + "extraWeightPercent", | ||
| 745 | + response.data.extraWeightPercent | ||
| 746 | + ); | ||
| 747 | + // this.form.extraWeightPercent=response.data.extraWeightPercent; | ||
| 748 | + } else { | ||
| 749 | + this.$set(this.form, "extraWeightPercent", 0); | ||
| 750 | + //this.form.extraWeightPercent=response.data.extraWeightPercent=0; | ||
| 751 | + } | ||
| 752 | + //是否开启高低价:根据已存在的相同航班号对应的最新值进行设置,如果无相同航班号,按照默认设置‘是否开启高低价’ 为是,不可编辑 | ||
| 753 | + if ( | ||
| 754 | + response.data != null && | ||
| 755 | + response.data.highLowPriceFlg != null && | ||
| 756 | + response.data.highLowPriceFlg != undefined | ||
| 757 | + ) { | ||
| 758 | + this.form.highLowPriceFlg = | ||
| 759 | + response.data.highLowPriceFlg === 1 ? true : false; | ||
| 760 | + } else { | ||
| 761 | + this.$set(this.form, "highLowPriceFlg", true); | ||
| 762 | + //this.form.highLowPriceFlg = true; | ||
| 763 | + } | ||
| 764 | + //是否预审:根据已存在的相同航班号对应的最新值进行设置,如果无相同航班号,按照默认设置‘是否预审’ 为否,不可编辑; | ||
| 765 | + if ( | ||
| 766 | + response.data != null && | ||
| 767 | + response.data.isNeedRequired != null && | ||
| 768 | + response.data.isNeedRequired != undefined | ||
| 769 | + ) { | ||
| 770 | + this.form.isNeedRequired = | ||
| 771 | + response.data.isNeedRequired === 1 ? true : false; | ||
| 772 | + } else { | ||
| 773 | + this.form.isNeedRequired = false; | ||
| 774 | + } | ||
| 775 | + //高/低价百分比:根据已存在的相同航班号对应的最新值进行设置,如果无相同航班号,按照默认设置‘高价百分比’60%,‘低价百分比’40%,不可编辑 | ||
| 776 | + if ( | ||
| 777 | + response.data != null && | ||
| 778 | + response.data.highPriceWeightPercent != null && | ||
| 779 | + response.data.highPriceWeightPercent != undefined | ||
| 780 | + ) { | ||
| 781 | + this.form.highPriceWeightPercent = | ||
| 782 | + response.data.highPriceWeightPercent; | ||
| 783 | + } else { | ||
| 784 | + this.form.highPriceWeightPercent = 60; | ||
| 785 | + } | ||
| 786 | + if ( | ||
| 787 | + response.data != null && | ||
| 788 | + response.data.lowPriceWeightPercent != null && | ||
| 789 | + response.data.lowPriceWeightPercent != undefined | ||
| 790 | + ) { | ||
| 791 | + this.form.lowPriceWeightPercent = | ||
| 792 | + response.data.lowPriceWeightPercent; | ||
| 793 | + } else { | ||
| 794 | + this.form.lowPriceWeightPercent = 40; | ||
| 795 | + } | ||
| 796 | + this.LowHighAvailable(); | ||
| 797 | + } else { | ||
| 798 | + this.msgError(response.msg); | ||
| 799 | + } | ||
| 800 | + }); | ||
| 801 | + } | ||
| 802 | + }, | ||
| 803 | + // 是否一票一件 | ||
| 804 | + ticketToPieceFormat(row) { | ||
| 805 | + if (row.ticketToPiece === 1) { | ||
| 806 | + return "是"; | ||
| 807 | + } else { | ||
| 808 | + return "否"; | ||
| 809 | + } | ||
| 810 | + return row.ticketToPiece; | ||
| 811 | + }, | ||
| 812 | + // 是否需要预审 1 预审 0 取消预审 | ||
| 813 | + needRequiredFormat(row) { | ||
| 814 | + if (row.needRequired === 1) { | ||
| 815 | + return "是"; | ||
| 816 | + } else { | ||
| 817 | + return "否"; | ||
| 818 | + } | ||
| 819 | + return row.ticketToPiece; | ||
| 820 | + }, | ||
| 821 | + //是否开启高低价 | ||
| 822 | + highLowPriceFlgFormat(row) { | ||
| 823 | + if (row.highLowPriceFlg === 1) { | ||
| 824 | + return "开启"; | ||
| 825 | + } else { | ||
| 826 | + return "未开启"; | ||
| 827 | + } | ||
| 828 | + return row.ticketToPiece; | ||
| 829 | + }, | ||
| 830 | + //时间格式化 | ||
| 831 | + renderTime(date) { | ||
| 832 | + var dateee = new Date(date).toJSON(); | ||
| 833 | + return new Date(+new Date(dateee) + 8 * 3600 * 1000) | ||
| 834 | + .toISOString() | ||
| 835 | + .replace(/T/g, " ") | ||
| 836 | + .replace(/\.[\d]{3}Z/, ""); | ||
| 837 | + }, | ||
| 838 | + //查询条件数据源 | ||
| 839 | + findFltConditionData() { | ||
| 840 | + findFltConditionDataApi().then((response) => { | ||
| 841 | + if (response.code == 200) { | ||
| 842 | + //航班种类 | ||
| 843 | + this.flightKindlist = response.data.flightKind; | ||
| 844 | + //航班类型 | ||
| 845 | + this.flightTypelist = response.data.flightType; | ||
| 846 | + //航班状态 | ||
| 847 | + this.flightStatuslist = response.data.flightStatus; | ||
| 848 | + } else { | ||
| 849 | + this.msgError(response.msg); | ||
| 850 | + } | ||
| 851 | + }); | ||
| 852 | + }, | ||
| 853 | + | ||
| 854 | + // 多选框选中数据 | ||
| 855 | + handleSelectionChange(selection) { | ||
| 856 | + this.ids = selection.map((item) => item.id); | ||
| 857 | + this.single = selection.length != 1; | ||
| 858 | + this.multiple = !selection.length; | ||
| 859 | + }, | ||
| 860 | + | ||
| 861 | + /** 航班信息维护查询*/ | ||
| 862 | + findAllFltData() { | ||
| 863 | + this.loading = true; | ||
| 864 | + if (this.queryParams.pageNum > 1) { | ||
| 865 | + this.queryParams.limitStart = | ||
| 866 | + (this.queryParams.pageNum - 1) * this.queryParams.limitSize; | ||
| 867 | + } else { | ||
| 868 | + this.queryParams.limitStart = 0; | ||
| 869 | + } | ||
| 870 | + if ( | ||
| 871 | + this.queryParams.fltNo != null && | ||
| 872 | + this.queryParams.fltNo != undefined && | ||
| 873 | + this.queryParams.fltNo != "" | ||
| 874 | + ) { | ||
| 875 | + this.queryParams.fltNo = this.queryParams.fltNo.toUpperCase(); | ||
| 876 | + } | ||
| 877 | + | ||
| 878 | + findAllFltDataApi(this.queryParams).then((response) => { | ||
| 879 | + if (response.code == 200) { | ||
| 880 | + this.findAllFltDatList = response.data.list; | ||
| 881 | + this.total = response.data.totalCount; | ||
| 882 | + this.loading = false; | ||
| 883 | + } else { | ||
| 884 | + this.msgError(response.msg); | ||
| 885 | + } | ||
| 886 | + }); | ||
| 887 | + }, | ||
| 888 | + /** 新增按钮操作 */ | ||
| 889 | + handleAdd() { | ||
| 890 | + this.reset(); | ||
| 891 | + this.open = true; | ||
| 892 | + this.title = "添加航班信息"; | ||
| 893 | + this.form.id = null; | ||
| 894 | + this.form.statusId = this.flightStatuslist[0].id; | ||
| 895 | + this.form.alloctedWeight = 0; //已配重量 | ||
| 896 | + this.form.lowAllocatedWeight = 0; //低价已配重量 | ||
| 897 | + this.form.highAllocatedWeight = 0; //高价已配重量 | ||
| 898 | + | ||
| 899 | + //航班号 | ||
| 900 | + this.formdisabled.fltNo = false; | ||
| 901 | + //航班日期 | ||
| 902 | + this.formdisabled.fltDate = false; | ||
| 903 | + //航班路线 | ||
| 904 | + this.formdisabled.route = false; | ||
| 905 | + //航班种类 | ||
| 906 | + this.formdisabled.kindId = false; | ||
| 907 | + //航班类型 | ||
| 908 | + this.formdisabled.typeId = false; | ||
| 909 | + //原始重量 | ||
| 910 | + this.formdisabled.originalWeight = false; | ||
| 911 | + }, | ||
| 912 | + //计算高地价可配 | ||
| 913 | + LowHighAvailable() { | ||
| 914 | + //判断是否开启高地价 | ||
| 915 | + if (this.form.highLowPriceFlg) { | ||
| 916 | + this.ishighPriceWeightPercent = false; | ||
| 917 | + let Weight = 0; | ||
| 918 | + //计算实际重量 | ||
| 919 | + if ( | ||
| 920 | + this.form.highPriceWeightPercent > 0 || | ||
| 921 | + this.form.lowPriceWeightPercent > 0 | ||
| 922 | + ) { | ||
| 923 | + Weight = this.Weightall(); | ||
| 924 | + } | ||
| 925 | + //高价可配 | ||
| 926 | + if (this.form.highPriceWeightPercent >= 0) { | ||
| 927 | + this.$set( | ||
| 928 | + this.form, | ||
| 929 | + "lowPriceWeightPercent", | ||
| 930 | + 100 - this.form.highPriceWeightPercent | ||
| 931 | + ); | ||
| 932 | + this.$set( | ||
| 933 | + this.form, | ||
| 934 | + "highAvailableWeight", | ||
| 935 | + (Weight - this.form.alloctedWeight) * | ||
| 936 | + (this.form.highPriceWeightPercent / 100) | ||
| 937 | + ); | ||
| 938 | + // this.form.HighAvailableWeight = Weightall * (this.form.highPriceWeightPercent / 100) | ||
| 939 | + } else if ( | ||
| 940 | + this.title == "修改航班信息" && | ||
| 941 | + this.form.highPriceWeightPercent > 0 | ||
| 942 | + ) { | ||
| 943 | + if (this.form.highAvailableWeight) { | ||
| 944 | + this.$set( | ||
| 945 | + this.form, | ||
| 946 | + "highAvailableWeight", | ||
| 947 | + this.form.highAvailableWeight | ||
| 948 | + ); | ||
| 949 | + } else { | ||
| 950 | + this.$set( | ||
| 951 | + this.form, | ||
| 952 | + "highAvailableWeight", | ||
| 953 | + (Weight - this.form.alloctedWeight) * | ||
| 954 | + (this.form.highPriceWeightPercent / 100) | ||
| 955 | + ); | ||
| 956 | + } | ||
| 957 | + } else { | ||
| 958 | + this.$set(this.form, "highAvailableWeight", 0); | ||
| 959 | + // this.form.HighAvailableWeight = 0; | ||
| 960 | + } | ||
| 961 | + //低价可配 | ||
| 962 | + if (this.form.lowPriceWeightPercent > 0) { | ||
| 963 | + this.$set( | ||
| 964 | + this.form, | ||
| 965 | + "lowAvailableWeight", | ||
| 966 | + Weight - this.form.alloctedWeight - this.form.highAvailableWeight | ||
| 967 | + ); | ||
| 968 | + //this.form.lowAvailableWeight = Weightall - this.form.HighAvailableWeight; | ||
| 969 | + } else if ( | ||
| 970 | + this.title == "修改航班信息" && | ||
| 971 | + this.form.lowPriceWeightPercent > 0 | ||
| 972 | + ) { | ||
| 973 | + if (this.form.lowAvailableWeight) { | ||
| 974 | + this.$set( | ||
| 975 | + this.form, | ||
| 976 | + "lowAvailableWeight", | ||
| 977 | + this.form.lowAvailableWeight | ||
| 978 | + ); | ||
| 979 | + } else { | ||
| 980 | + this.$set( | ||
| 981 | + this.form, | ||
| 982 | + "lowAvailableWeight", | ||
| 983 | + Weight - this.form.alloctedWeight - this.form.highAvailableWeight | ||
| 984 | + ); | ||
| 985 | + } | ||
| 986 | + } else { | ||
| 987 | + this.$set(this.form, "lowAvailableWeight", 0); | ||
| 988 | + // this.form.lowAvailableWeight = 0; | ||
| 989 | + } | ||
| 990 | + } else { | ||
| 991 | + this.ishighPriceWeightPercent = true; | ||
| 992 | + } | ||
| 993 | + }, | ||
| 994 | + //计算实际重量 | ||
| 995 | + Weightall() { | ||
| 996 | + let Weight = 0; | ||
| 997 | + if (this.form.extraWeightPercent > 0) { | ||
| 998 | + Weight = | ||
| 999 | + this.form.originalWeight + | ||
| 1000 | + this.form.originalWeight * (this.form.extraWeightPercent / 100); | ||
| 1001 | + } else { | ||
| 1002 | + Weight = this.form.originalWeight; | ||
| 1003 | + } | ||
| 1004 | + return Weight; | ||
| 1005 | + }, | ||
| 1006 | + | ||
| 1007 | + /** 修改按钮操作 */ | ||
| 1008 | + handleUpdate(row) { | ||
| 1009 | + this.reset(); | ||
| 1010 | + this.open = true; | ||
| 1011 | + this.title = "修改航班信息"; | ||
| 1012 | + //航班号 | ||
| 1013 | + this.formdisabled.fltNo = true; | ||
| 1014 | + //航班日期 | ||
| 1015 | + this.formdisabled.fltDate = true; | ||
| 1016 | + //根据ID查item | ||
| 1017 | + findFltById(row).then((response) => { | ||
| 1018 | + if (response.code == 200) { | ||
| 1019 | + this.form = response.data; | ||
| 1020 | + //是否开启高地价 | ||
| 1021 | + this.form.highLowPriceFlg = | ||
| 1022 | + this.form.highLowPriceFlg === 1 ? true : false; | ||
| 1023 | + //是否预审 | ||
| 1024 | + this.form.isNeedRequired = | ||
| 1025 | + this.form.isNeedRequired === 1 ? true : false; | ||
| 1026 | + // 计算高地价可配 | ||
| 1027 | + this.LowHighAvailable(); | ||
| 1028 | + } else { | ||
| 1029 | + this.msgError(response.msg); | ||
| 1030 | + } | ||
| 1031 | + }); | ||
| 1032 | + }, | ||
| 1033 | + /** 删除按钮操作 */ | ||
| 1034 | + handleDelete(row) { | ||
| 1035 | + const fIds = this.ids; | ||
| 1036 | + this.$confirm("是否确认删除所选数据?", "警告", { | ||
| 1037 | + confirmButtonText: "确定", | ||
| 1038 | + cancelButtonText: "取消", | ||
| 1039 | + type: "warning", | ||
| 1040 | + }) | ||
| 1041 | + .then(() => { | ||
| 1042 | + return delFlight(fIds); | ||
| 1043 | + }) | ||
| 1044 | + .then((response) => { | ||
| 1045 | + this.findAllFltData(); | ||
| 1046 | + if (response.data.length > 0) { | ||
| 1047 | + this.gridData = response.data; | ||
| 1048 | + this.$confirm(response.msg, "提示", { | ||
| 1049 | + confirmButtonText: "查看删除失败航班信息", | ||
| 1050 | + cancelButtonText: "取消", | ||
| 1051 | + type: "warning", | ||
| 1052 | + center: true, | ||
| 1053 | + }) | ||
| 1054 | + .then(() => { | ||
| 1055 | + this.dialogTableVisible = true; | ||
| 1056 | + }) | ||
| 1057 | + .catch(() => {}); | ||
| 1058 | + } else { | ||
| 1059 | + this.msgSuccess(response.msg); | ||
| 1060 | + } | ||
| 1061 | + }) | ||
| 1062 | + .catch(() => {}); | ||
| 1063 | + }, | ||
| 1064 | + | ||
| 1065 | + /** 提交按钮 */ | ||
| 1066 | + submitForm: function () { | ||
| 1067 | + this.$refs["form"].validate((valid) => { | ||
| 1068 | + if (valid) { | ||
| 1069 | + let formdata = JSON.parse(JSON.stringify(this.form)); | ||
| 1070 | + | ||
| 1071 | + //高价百分比和低价百分比和不可以大于100 | ||
| 1072 | + if ( | ||
| 1073 | + this.form.highLowPriceFlg && | ||
| 1074 | + (formdata.highPriceWeightPercent > 100 || | ||
| 1075 | + formdata.highPriceWeightPercent < 0) | ||
| 1076 | + ) { | ||
| 1077 | + this.$message.warning("请正确填写高低价百分比"); | ||
| 1078 | + return; | ||
| 1079 | + } | ||
| 1080 | + //已删除的无法修改 | ||
| 1081 | + //拿到已删除的id | ||
| 1082 | + let statusId = 0; | ||
| 1083 | + this.flightStatuslist.map((item) => { | ||
| 1084 | + // this.unitList 是你 select option遍历的集合 e 是选中的id | ||
| 1085 | + if (item.chineseName === "已删除") { | ||
| 1086 | + statusId = item.id; | ||
| 1087 | + return; | ||
| 1088 | + } | ||
| 1089 | + }); | ||
| 1090 | + if (statusId === formdata.statusId) { | ||
| 1091 | + this.$message.warning("已删除的航班无法修改"); | ||
| 1092 | + return; | ||
| 1093 | + } | ||
| 1094 | + //是否开启高地价 | ||
| 1095 | + formdata.highLowPriceFlg = formdata.highLowPriceFlg ? 1 : 0; | ||
| 1096 | + //是否预审 | ||
| 1097 | + formdata.isNeedRequired = formdata.isNeedRequired ? 1 : 0; | ||
| 1098 | + //处理数据 | ||
| 1099 | + saveOrUpdate(formdata).then((response) => { | ||
| 1100 | + if (response.code === 200) { | ||
| 1101 | + this.msgSuccess("保存成功"); | ||
| 1102 | + this.open = false; | ||
| 1103 | + this.findAllFltData(); | ||
| 1104 | + } else { | ||
| 1105 | + this.msgError(response.msg); | ||
| 1106 | + } | ||
| 1107 | + }); | ||
| 1108 | + } | ||
| 1109 | + }); | ||
| 1110 | + }, | ||
| 1111 | + // 表单重置 | ||
| 1112 | + reset() { | ||
| 1113 | + this.form = {}; | ||
| 1114 | + this.resetForm("form"); | ||
| 1115 | + }, | ||
| 1116 | + // 取消按钮 | ||
| 1117 | + cancel() { | ||
| 1118 | + this.open = false; | ||
| 1119 | + this.findAllFltData(); | ||
| 1120 | + this.reset(); | ||
| 1121 | + }, | ||
| 1122 | + | ||
| 1123 | + /** 重置按钮操作 */ | ||
| 1124 | + resetQuery() { | ||
| 1125 | + this.resetForm("queryForm"); | ||
| 1126 | + this.handleQuery(); | ||
| 1127 | + }, | ||
| 1128 | + /** 搜索按钮操作 */ | ||
| 1129 | + handleQuery() { | ||
| 1130 | + this.queryParams.pageNum = 1; | ||
| 1131 | + this.queryParams.start = 0; | ||
| 1132 | + this.findAllFltData(); | ||
| 1133 | + }, | ||
| 1134 | + //批量开启/关闭航班 | ||
| 1135 | + handleFlightStatus(status) { | ||
| 1136 | + let handle = status == "flightStatus80" ? "关闭" : "开启"; | ||
| 1137 | + if (this.ids.length == 0) { | ||
| 1138 | + this.msgError("请选择批量" + handle + "的航班"); | ||
| 1139 | + return; | ||
| 1140 | + } | ||
| 1141 | + let data = {}; | ||
| 1142 | + data.status = status; | ||
| 1143 | + data.updateIds = this.ids; | ||
| 1144 | + | ||
| 1145 | + updateStatusBatch(data).then((response) => { | ||
| 1146 | + if (response.code === 200) { | ||
| 1147 | + this.msgSuccess(handle + "成功"); | ||
| 1148 | + this.findAllFltData(); | ||
| 1149 | + } else { | ||
| 1150 | + this.msgError(response.msg); | ||
| 1151 | + } | ||
| 1152 | + }); | ||
| 1153 | + }, | ||
| 1154 | + }, | ||
| 1155 | +}; | ||
| 1156 | +</script> | ||
| 1157 | + | ||
| 1158 | +<style> | ||
| 1159 | +.el-table--striped .el-table__body tr.el-table__row--striped.current-row td, | ||
| 1160 | +.el-table__body tr.current-row > td { | ||
| 1161 | + background-color: #a0cfff; | ||
| 1162 | +} | ||
| 1163 | + | ||
| 1164 | +.el-table--striped .el-table__body tr.hover-row.el-table__row--striped > td, | ||
| 1165 | +.el-table__body tr.hover-row > td { | ||
| 1166 | + background-color: #d9ecff !important; | ||
| 1167 | +} | ||
| 1168 | +</style> |
| 1 | +<template> | ||
| 2 | + <div class="cargoPage"> | ||
| 3 | + <el-form | ||
| 4 | + ref="cargoForm" | ||
| 5 | + class="form-header" | ||
| 6 | + label-position="right" | ||
| 7 | + label-width="auto" | ||
| 8 | + size="small" | ||
| 9 | + :model="formData" | ||
| 10 | + > | ||
| 11 | + <el-row type="flex" style="flexWrap: wrap!important"> | ||
| 12 | + <el-col :span="6"> | ||
| 13 | + <el-form-item label="配舱航班日期"> | ||
| 14 | + <el-date-picker | ||
| 15 | + class="formItem" | ||
| 16 | + v-model="cargoPlaneTime" | ||
| 17 | + type="daterange" | ||
| 18 | + range-separator="至" | ||
| 19 | + start-placeholder="开始日期" | ||
| 20 | + end-placeholder="结束日期" | ||
| 21 | + :value-format="valueFormat" | ||
| 22 | + > | ||
| 23 | + </el-date-picker> | ||
| 24 | + </el-form-item> | ||
| 25 | + </el-col> | ||
| 26 | + <el-col :span="6"> | ||
| 27 | + <el-form-item label="配载航班号"> | ||
| 28 | + <el-input type="textarea" v-model="cargoPlaneNo" class="formItem" placeholder="AC001;AC002" :autosize="true"></el-input> | ||
| 29 | + </el-form-item> | ||
| 30 | + </el-col> | ||
| 31 | + <el-col :span="6"> | ||
| 32 | + <el-form-item label="海关回执状态"> | ||
| 33 | + <el-select | ||
| 34 | + placeholder="不限" | ||
| 35 | + v-model="formData.customsReceiptStatusId" | ||
| 36 | + class="formItem" | ||
| 37 | + multiple | ||
| 38 | + clearable | ||
| 39 | + > | ||
| 40 | + <el-option | ||
| 41 | + v-for="item in findConditionData.cargoCustomsReturnStatus" | ||
| 42 | + :label="item.chineseName" | ||
| 43 | + :value="item.id" | ||
| 44 | + :key="item.id" | ||
| 45 | + > | ||
| 46 | + </el-option> | ||
| 47 | + </el-select> | ||
| 48 | + </el-form-item> | ||
| 49 | + </el-col> | ||
| 50 | + <el-col :span="6"> | ||
| 51 | + <el-form-item label="运单号"> | ||
| 52 | + <el-input | ||
| 53 | + type="textarea" | ||
| 54 | + v-model="formData.waybillNo" | ||
| 55 | + class="formItem" | ||
| 56 | + placeholder="请输入运单号(回车间隔)" | ||
| 57 | + :autosize="true" | ||
| 58 | + ></el-input> | ||
| 59 | + </el-form-item> | ||
| 60 | + </el-col> | ||
| 61 | + <el-col :span="6"> | ||
| 62 | + <el-form-item label="申报类别"> | ||
| 63 | + <el-select | ||
| 64 | + placeholder="不限" | ||
| 65 | + v-model="formData.typeId" | ||
| 66 | + class="formItem" | ||
| 67 | + clearable | ||
| 68 | + > | ||
| 69 | + <el-option | ||
| 70 | + v-for="item in findConditionData.cargoType" | ||
| 71 | + :label="item.chineseName" | ||
| 72 | + :value="item.id" | ||
| 73 | + :key="item.id" | ||
| 74 | + > | ||
| 75 | + </el-option> | ||
| 76 | + </el-select> | ||
| 77 | + </el-form-item> | ||
| 78 | + </el-col> | ||
| 79 | + <el-col :span="6"> | ||
| 80 | + <el-form-item label="服务类型"> | ||
| 81 | + <el-select | ||
| 82 | + placeholder="不限" | ||
| 83 | + v-model="formData.serviceTypeId" | ||
| 84 | + class="formItem" | ||
| 85 | + filterable | ||
| 86 | + clearable | ||
| 87 | + > | ||
| 88 | + <el-option | ||
| 89 | + v-for="item in findConditionData.cargoServiceType" | ||
| 90 | + :label="item.chineseName" | ||
| 91 | + :value="item.id" | ||
| 92 | + :key="item.id" | ||
| 93 | + > | ||
| 94 | + </el-option> | ||
| 95 | + </el-select> | ||
| 96 | + </el-form-item> | ||
| 97 | + </el-col> | ||
| 98 | + <el-col :span="6"> | ||
| 99 | + <el-form-item label="URSA"> | ||
| 100 | + <el-input | ||
| 101 | + type="textarea" | ||
| 102 | + v-model="ursa" | ||
| 103 | + class="formItem" | ||
| 104 | + placeholder="S_;P_;E2" | ||
| 105 | + :autosize="true" | ||
| 106 | + ></el-input> | ||
| 107 | + </el-form-item> | ||
| 108 | + </el-col> | ||
| 109 | + <el-col :span="6"> | ||
| 110 | + <el-form-item label="站点"> | ||
| 111 | + <el-input | ||
| 112 | + type="textarea" | ||
| 113 | + v-model="siteName" | ||
| 114 | + class="formItem" | ||
| 115 | + placeholder="PVG;PEK" | ||
| 116 | + :autosize="true" | ||
| 117 | + ></el-input> | ||
| 118 | + </el-form-item> | ||
| 119 | + </el-col> | ||
| 120 | + <el-col :span="24" v-show="formShow"> | ||
| 121 | + <el-row type="flex" style="flexWrap: wrap!important"> | ||
| 122 | + <el-col :span="6"> | ||
| 123 | + <el-form-item label="ACCS原航班日期"> | ||
| 124 | + <el-date-picker | ||
| 125 | + class="formItem" | ||
| 126 | + v-model="flightTime" | ||
| 127 | + type="daterange" | ||
| 128 | + range-separator="至" | ||
| 129 | + start-placeholder="开始日期" | ||
| 130 | + end-placeholder="结束日期" | ||
| 131 | + :value-format="valueFormat" | ||
| 132 | + > | ||
| 133 | + </el-date-picker> | ||
| 134 | + </el-form-item> | ||
| 135 | + </el-col> | ||
| 136 | + <el-col :span="6"> | ||
| 137 | + <el-form-item label="ACCS原航班号"> | ||
| 138 | + <el-input type="text" v-model="fltNo" class="formItem" placeholder="请输入ACCS航班号"></el-input> | ||
| 139 | + </el-form-item> | ||
| 140 | + </el-col> | ||
| 141 | + <el-col :span="6"> | ||
| 142 | + <el-form-item label="取件日期"> | ||
| 143 | + <el-date-picker | ||
| 144 | + class="formItem" | ||
| 145 | + v-model="formData.pickUpDate" | ||
| 146 | + type="date" | ||
| 147 | + placeholder="选择日期" | ||
| 148 | + :value-format="valueFormat" | ||
| 149 | + > | ||
| 150 | + </el-date-picker> | ||
| 151 | + </el-form-item> | ||
| 152 | + </el-col> | ||
| 153 | + <el-col :span="6"> | ||
| 154 | + <el-form-item label="创建日期"> | ||
| 155 | + <el-date-picker | ||
| 156 | + class="formItem" | ||
| 157 | + v-model="createDate" | ||
| 158 | + type="daterange" | ||
| 159 | + range-separator="至" | ||
| 160 | + start-placeholder="开始日期" | ||
| 161 | + end-placeholder="结束日期" | ||
| 162 | + :value-format="valueFormat" | ||
| 163 | + > | ||
| 164 | + </el-date-picker> | ||
| 165 | + </el-form-item> | ||
| 166 | + </el-col> | ||
| 167 | + <el-col :span="6"> | ||
| 168 | + <el-form-item label="货物状态"> | ||
| 169 | + <el-select | ||
| 170 | + placeholder="不限" | ||
| 171 | + v-model="formData.statusId" | ||
| 172 | + class="formItem" | ||
| 173 | + filterable | ||
| 174 | + clearable | ||
| 175 | + > | ||
| 176 | + <el-option | ||
| 177 | + v-for="item in findConditionData.cargoStatus" | ||
| 178 | + :label="item.chineseName" | ||
| 179 | + :value="item.id" | ||
| 180 | + :key="item.id" | ||
| 181 | + > | ||
| 182 | + </el-option> | ||
| 183 | + </el-select> | ||
| 184 | + </el-form-item> | ||
| 185 | + </el-col> | ||
| 186 | + <el-col :span="6"> | ||
| 187 | + <el-form-item label="是否自动"> | ||
| 188 | + <el-select | ||
| 189 | + placeholder="不限" | ||
| 190 | + v-model="formData.allocationTypeId" | ||
| 191 | + class="formItem" | ||
| 192 | + clearable | ||
| 193 | + > | ||
| 194 | + <el-option | ||
| 195 | + label="手动" | ||
| 196 | + value="1" | ||
| 197 | + > | ||
| 198 | + </el-option> | ||
| 199 | + <el-option | ||
| 200 | + label="自动" | ||
| 201 | + value="2" | ||
| 202 | + > | ||
| 203 | + </el-option> | ||
| 204 | + </el-select> | ||
| 205 | + </el-form-item> | ||
| 206 | + </el-col> | ||
| 207 | + </el-row> | ||
| 208 | + </el-col> | ||
| 209 | + </el-row> | ||
| 210 | + <div style="paddingLeft: 10px;marginTop:20px"> | ||
| 211 | + <el-button | ||
| 212 | + type="primary" | ||
| 213 | + icon="el-icon-search" | ||
| 214 | + size="small" | ||
| 215 | + :loading="tableLoading" | ||
| 216 | + @click="select(0)" | ||
| 217 | + >查询</el-button | ||
| 218 | + > | ||
| 219 | + <el-button :type="downLoadingTip.downloading?'warning':'primary'" size="small" @click="xlse(0)" :disabled="tableData.length==0" :loading="downLoadingTip.downloading" | ||
| 220 | + >{{downLoadingTip.downloading?downLoadingTip.tip:"导出本页查询结果"}}</el-button | ||
| 221 | + > | ||
| 222 | + <el-button :type="downLoadingTip.downloading?'warning':'primary'" size="small" @click="xlse(1)" :disabled="tableData.length==0" :loading="downLoadingTip.downloading" | ||
| 223 | + >{{downLoadingTip.downloading?downLoadingTip.tip:"导出全部查询结果"}}</el-button | ||
| 224 | + > | ||
| 225 | + <span style="marginLeft:20px;color:#ffba00">全部导出上限80000条数据</span> | ||
| 226 | + <el-progress v-if="progress!=0" class="progress" :stroke-width="12" :show-text="true" :percentage="progress" :status="progress == 100?'success':'warning'"></el-progress> | ||
| 227 | + <div class="tips"> | ||
| 228 | + <span style="paddingRight: 50px">总重量:{{ allWeight }}</span> | ||
| 229 | + <span>总件数:{{ allQty }}</span> | ||
| 230 | + </div> | ||
| 231 | + <div class="formShow" @click="formShow = !formShow"><i class="el-icon-s-tools"></i>{{formShow?'收起条件':'更多条件'}}</div> | ||
| 232 | + </div> | ||
| 233 | + </el-form> | ||
| 234 | + <Tables | ||
| 235 | + ref="newTables" | ||
| 236 | + :data="tableData" | ||
| 237 | + :headerData="tableHeader" | ||
| 238 | + :totalCount="totalCount" | ||
| 239 | + :loading="tableLoading" | ||
| 240 | + :limitSize="limitSize" | ||
| 241 | + :limitStart="limitStart" | ||
| 242 | + :page="page" | ||
| 243 | + :shiftKey="shiftKey" | ||
| 244 | + height="550" | ||
| 245 | + @tableSelect="tableSelect" | ||
| 246 | + @tableSelectAll="tableSelectAll" | ||
| 247 | + @currentChange="currentChange" | ||
| 248 | + @sortChange="sortChange" | ||
| 249 | + ></Tables> | ||
| 250 | + </div> | ||
| 251 | +</template> | ||
| 252 | + | ||
| 253 | +<script> | ||
| 254 | +import { findConditionData, findCargoData } from "@/api/cargoSelect"; | ||
| 255 | +import { downLoadXlsx } from "@/utils/zipdownload"; | ||
| 256 | +import { upCase } from "@/utils/FedEx" | ||
| 257 | + | ||
| 258 | +export default { | ||
| 259 | + name:"QueryCargo", | ||
| 260 | + data() { | ||
| 261 | + return { | ||
| 262 | + formData: { | ||
| 263 | + fltDateStart: "", | ||
| 264 | + fltDateEnd: "", | ||
| 265 | + prematchFltDateStart: "", | ||
| 266 | + prematchFltDateEnd: "", | ||
| 267 | + createTimeStart: null, | ||
| 268 | + createTimeEnd: null, | ||
| 269 | + pickUpDate: null, | ||
| 270 | + waybillNo: "", | ||
| 271 | + siteName: "", | ||
| 272 | + fltNo: "", | ||
| 273 | + mawbCode: "", | ||
| 274 | + ursa: "", | ||
| 275 | + typeId: null, | ||
| 276 | + statusId: null, | ||
| 277 | + serviceTypeId: null, | ||
| 278 | + allocationTypeId: null, | ||
| 279 | + kindToAllocFlightId: null, | ||
| 280 | + historyAllocaCargoTypeId: null, | ||
| 281 | + dataSources: "", | ||
| 282 | + customsReceiptStatusId: null, | ||
| 283 | + big: null, | ||
| 284 | + cargoPlaneNo:null, | ||
| 285 | + cargoPlaneStart:null, | ||
| 286 | + cargoPlaneEnd:null, | ||
| 287 | + limitStart: 1, | ||
| 288 | + limitSize:100, | ||
| 289 | + }, //表单数据 | ||
| 290 | + tableHeader: [ | ||
| 291 | + { | ||
| 292 | + type: "selection", | ||
| 293 | + name: "", | ||
| 294 | + value: "", | ||
| 295 | + width: "50", | ||
| 296 | + align: "center", | ||
| 297 | + sorTable: false, | ||
| 298 | + fixed:true, | ||
| 299 | + }, | ||
| 300 | + { | ||
| 301 | + type: "index", | ||
| 302 | + name: "", | ||
| 303 | + value: "", | ||
| 304 | + width: "50", | ||
| 305 | + align: "center", | ||
| 306 | + sorTable: false, | ||
| 307 | + fixed:false, | ||
| 308 | + }, | ||
| 309 | + { | ||
| 310 | + type: "", | ||
| 311 | + name: "口岸代码", | ||
| 312 | + value: "portName", | ||
| 313 | + width: "150", | ||
| 314 | + align: "center", | ||
| 315 | + sorTable: true, | ||
| 316 | + fixed:false, | ||
| 317 | + }, | ||
| 318 | + { | ||
| 319 | + type: "", | ||
| 320 | + name: "取件日期", | ||
| 321 | + value: "pickUpDate", | ||
| 322 | + width: "150", | ||
| 323 | + align: "center", | ||
| 324 | + sorTable: true, | ||
| 325 | + fixed:false, | ||
| 326 | + }, | ||
| 327 | + { | ||
| 328 | + type: "", | ||
| 329 | + name: "取件扫描号", | ||
| 330 | + value: "pickUpScanNo", | ||
| 331 | + width: "150", | ||
| 332 | + align: "center", | ||
| 333 | + sorTable: true, | ||
| 334 | + fixed:false, | ||
| 335 | + }, | ||
| 336 | + { | ||
| 337 | + type: "", | ||
| 338 | + name: "站点", | ||
| 339 | + value: "siteName", | ||
| 340 | + width: "150", | ||
| 341 | + align: "center", | ||
| 342 | + sorTable: true, | ||
| 343 | + fixed:false, | ||
| 344 | + }, | ||
| 345 | + { | ||
| 346 | + type: "", | ||
| 347 | + name: "运单号", | ||
| 348 | + value: "waybillNo", | ||
| 349 | + width: "150", | ||
| 350 | + align: "center", | ||
| 351 | + sorTable: true, | ||
| 352 | + fixed:false, | ||
| 353 | + }, | ||
| 354 | + { | ||
| 355 | + type: "", | ||
| 356 | + name: "总单号", | ||
| 357 | + value: "totalWaybillNo", | ||
| 358 | + width: "150", | ||
| 359 | + align: "center", | ||
| 360 | + sorTable: true, | ||
| 361 | + fixed:false, | ||
| 362 | + }, | ||
| 363 | + { | ||
| 364 | + type: "", | ||
| 365 | + name: "服务类型", | ||
| 366 | + value: "serviceTypeName", | ||
| 367 | + width: "150", | ||
| 368 | + align: "center", | ||
| 369 | + sorTable: true, | ||
| 370 | + fixed:false, | ||
| 371 | + }, | ||
| 372 | + { | ||
| 373 | + type: "", | ||
| 374 | + name: "服务代码", | ||
| 375 | + value: "serviceCode", | ||
| 376 | + width: "150", | ||
| 377 | + align: "center", | ||
| 378 | + sorTable: false, | ||
| 379 | + fixed:false, | ||
| 380 | + }, | ||
| 381 | + { | ||
| 382 | + type: "", | ||
| 383 | + name: "URSA", | ||
| 384 | + value: "ursa", | ||
| 385 | + width: "150", | ||
| 386 | + align: "center", | ||
| 387 | + sorTable: true, | ||
| 388 | + fixed:false, | ||
| 389 | + }, | ||
| 390 | + { | ||
| 391 | + type: "", | ||
| 392 | + name: "申报类型", | ||
| 393 | + value: "typeName", | ||
| 394 | + width: "150", | ||
| 395 | + align: "center", | ||
| 396 | + sorTable: true, | ||
| 397 | + fixed:false, | ||
| 398 | + }, | ||
| 399 | + { | ||
| 400 | + type: "", | ||
| 401 | + name: "HandlingCode", | ||
| 402 | + value: "handingCode", | ||
| 403 | + width: "150", | ||
| 404 | + align: "center", | ||
| 405 | + sorTable: true, | ||
| 406 | + fixed:false, | ||
| 407 | + }, | ||
| 408 | + { | ||
| 409 | + type: "", | ||
| 410 | + name: "subcategory", | ||
| 411 | + value: "subCategory", | ||
| 412 | + width: "150", | ||
| 413 | + align: "center", | ||
| 414 | + sorTable: true, | ||
| 415 | + fixed:false, | ||
| 416 | + }, | ||
| 417 | + { | ||
| 418 | + type: "", | ||
| 419 | + name: "件数", | ||
| 420 | + value: "qty", | ||
| 421 | + width: "150", | ||
| 422 | + align: "center", | ||
| 423 | + sorTable: true, | ||
| 424 | + fixed:false, | ||
| 425 | + }, | ||
| 426 | + { | ||
| 427 | + type: "", | ||
| 428 | + name: "实际重量", | ||
| 429 | + value: "actualWeight", | ||
| 430 | + width: "150", | ||
| 431 | + align: "center", | ||
| 432 | + sorTable: true, | ||
| 433 | + fixed:false, | ||
| 434 | + }, | ||
| 435 | + { | ||
| 436 | + type: "", | ||
| 437 | + name: "收件人国家代码", | ||
| 438 | + value: "consigneeCountry", | ||
| 439 | + width: "150", | ||
| 440 | + align: "center", | ||
| 441 | + sorTable: true, | ||
| 442 | + fixed:false, | ||
| 443 | + }, | ||
| 444 | + { | ||
| 445 | + type: "", | ||
| 446 | + name: "品名描述", | ||
| 447 | + value: "nameDescription", | ||
| 448 | + width: "150", | ||
| 449 | + align: "center", | ||
| 450 | + sorTable: false, | ||
| 451 | + fixed:false, | ||
| 452 | + }, | ||
| 453 | + { | ||
| 454 | + type: "", | ||
| 455 | + name: "海关回执状态", | ||
| 456 | + value: "customsReceiptStatusName", | ||
| 457 | + width: "150", | ||
| 458 | + align: "center", | ||
| 459 | + sorTable: true, | ||
| 460 | + fixed:false, | ||
| 461 | + }, | ||
| 462 | + { | ||
| 463 | + type: "", | ||
| 464 | + name: "预审状态", | ||
| 465 | + value: "preQualificationStatus", | ||
| 466 | + width: "150", | ||
| 467 | + align: "center", | ||
| 468 | + sorTable: true, | ||
| 469 | + fixed:false, | ||
| 470 | + }, | ||
| 471 | + { | ||
| 472 | + type: "", | ||
| 473 | + name: "航班预审意见", | ||
| 474 | + value: "caPretrialOpinion", | ||
| 475 | + width: "150", | ||
| 476 | + align: "center", | ||
| 477 | + sorTable: false, | ||
| 478 | + fixed:false, | ||
| 479 | + }, | ||
| 480 | + { | ||
| 481 | + type: "", | ||
| 482 | + name: "货物状态", | ||
| 483 | + value: "statusName", | ||
| 484 | + width: "150", | ||
| 485 | + align: "center", | ||
| 486 | + sorTable: true, | ||
| 487 | + fixed:false, | ||
| 488 | + }, | ||
| 489 | + { | ||
| 490 | + type: "", | ||
| 491 | + name: "终配航班号", | ||
| 492 | + value: "finalFlightNo", | ||
| 493 | + width: "150", | ||
| 494 | + align: "center", | ||
| 495 | + sorTable: true, | ||
| 496 | + fixed:false, | ||
| 497 | + }, | ||
| 498 | + { | ||
| 499 | + type: "", | ||
| 500 | + name: "终配航班日期", | ||
| 501 | + value: "finalFlightTime", | ||
| 502 | + width: "150", | ||
| 503 | + align: "center", | ||
| 504 | + sorTable: true, | ||
| 505 | + fixed:false, | ||
| 506 | + }, | ||
| 507 | + { | ||
| 508 | + type: "", | ||
| 509 | + name: "二配航班号", | ||
| 510 | + value: "twoMatchFlightNo", | ||
| 511 | + width: "150", | ||
| 512 | + align: "center", | ||
| 513 | + sorTable: true, | ||
| 514 | + fixed:false, | ||
| 515 | + }, | ||
| 516 | + { | ||
| 517 | + type: "", | ||
| 518 | + name: "二配航班日期", | ||
| 519 | + value: "twoMatchFlightTime", | ||
| 520 | + width: "150", | ||
| 521 | + align: "center", | ||
| 522 | + sorTable: true, | ||
| 523 | + fixed:false, | ||
| 524 | + }, | ||
| 525 | + { | ||
| 526 | + type: "", | ||
| 527 | + name: "预配航班号", | ||
| 528 | + value: "preplanFlightNo", | ||
| 529 | + width: "150", | ||
| 530 | + align: "center", | ||
| 531 | + sorTable: true, | ||
| 532 | + fixed:false, | ||
| 533 | + }, | ||
| 534 | + { | ||
| 535 | + type: "", | ||
| 536 | + name: "预配航班日期", | ||
| 537 | + value: "preplanFlightTime", | ||
| 538 | + width: "150", | ||
| 539 | + align: "center", | ||
| 540 | + sorTable: true, | ||
| 541 | + fixed:false, | ||
| 542 | + }, | ||
| 543 | + { | ||
| 544 | + type: "", | ||
| 545 | + name: "ACCS原航班号", | ||
| 546 | + value: "fltNoAccs", | ||
| 547 | + width: "150", | ||
| 548 | + align: "center", | ||
| 549 | + sorTable: true, | ||
| 550 | + fixed:false, | ||
| 551 | + }, | ||
| 552 | + { | ||
| 553 | + type: "", | ||
| 554 | + name: "ACCS原航班日期", | ||
| 555 | + value: "fltDateAccs", | ||
| 556 | + width: "150", | ||
| 557 | + align: "center", | ||
| 558 | + sorTable: true, | ||
| 559 | + fixed:false, | ||
| 560 | + }, | ||
| 561 | + { | ||
| 562 | + type: "", | ||
| 563 | + name: "ACCS原航线", | ||
| 564 | + value: "accsFlightRoute", | ||
| 565 | + width: "150", | ||
| 566 | + align: "center", | ||
| 567 | + sorTable: true, | ||
| 568 | + fixed:false, | ||
| 569 | + }, | ||
| 570 | + { | ||
| 571 | + type: "", | ||
| 572 | + name: "是否RDE手工录入", | ||
| 573 | + value: "manualRde", | ||
| 574 | + width: "170", | ||
| 575 | + align: "center", | ||
| 576 | + sorTable: true, | ||
| 577 | + fixed:false, | ||
| 578 | + }, | ||
| 579 | + { | ||
| 580 | + type: "", | ||
| 581 | + name: "是否自动", | ||
| 582 | + value: "cargoRulesStatus", | ||
| 583 | + width: "150", | ||
| 584 | + align: "center", | ||
| 585 | + sorTable: true, | ||
| 586 | + fixed:false, | ||
| 587 | + }, | ||
| 588 | + { | ||
| 589 | + type: "", | ||
| 590 | + name: "发件人账号", | ||
| 591 | + value: "shipperAccount", | ||
| 592 | + width: "150", | ||
| 593 | + align: "center", | ||
| 594 | + sorTable: false, | ||
| 595 | + fixed:false, | ||
| 596 | + }, | ||
| 597 | + { | ||
| 598 | + type: "", | ||
| 599 | + name: "发件公司中文名称", | ||
| 600 | + value: "shipperCompany", | ||
| 601 | + width: "150", | ||
| 602 | + align: "center", | ||
| 603 | + sorTable: false, | ||
| 604 | + fixed:false, | ||
| 605 | + }, | ||
| 606 | + { | ||
| 607 | + type: "", | ||
| 608 | + name: "始发地城市名称", | ||
| 609 | + value: "originCity", | ||
| 610 | + width: "150", | ||
| 611 | + align: "center", | ||
| 612 | + sorTable: false, | ||
| 613 | + fixed:false, | ||
| 614 | + }, | ||
| 615 | + { | ||
| 616 | + type: "", | ||
| 617 | + name: "收件地", | ||
| 618 | + value: "destinationSiteName", | ||
| 619 | + width: "150", | ||
| 620 | + align: "center", | ||
| 621 | + sorTable: false, | ||
| 622 | + fixed:false, | ||
| 623 | + }, | ||
| 624 | + { | ||
| 625 | + type: "", | ||
| 626 | + name: "尺寸", | ||
| 627 | + value: "sizeStr", | ||
| 628 | + width: "150", | ||
| 629 | + align: "center", | ||
| 630 | + sorTable: true, | ||
| 631 | + fixed:false, | ||
| 632 | + }, | ||
| 633 | + { | ||
| 634 | + type: "", | ||
| 635 | + name: "大货预审意见(是否可以配置航班)", | ||
| 636 | + value: "bigPretrialOpinion", | ||
| 637 | + width: "300", | ||
| 638 | + align: "center", | ||
| 639 | + sorTable: false, | ||
| 640 | + fixed:false, | ||
| 641 | + }, | ||
| 642 | + { | ||
| 643 | + type: "", | ||
| 644 | + name: "大货预审时间", | ||
| 645 | + value: "bigPretrialTime", | ||
| 646 | + width: "150", | ||
| 647 | + align: "center", | ||
| 648 | + sorTable: false, | ||
| 649 | + fixed:false, | ||
| 650 | + }, | ||
| 651 | + { | ||
| 652 | + type: "", | ||
| 653 | + name: "海关回执时间", | ||
| 654 | + value: "customsReceiptTime", | ||
| 655 | + width: "150", | ||
| 656 | + align: "center", | ||
| 657 | + sorTable: true, | ||
| 658 | + fixed:false, | ||
| 659 | + }, | ||
| 660 | + { | ||
| 661 | + type: "", | ||
| 662 | + name: "航班预审时间", | ||
| 663 | + value: "caPretrialTime", | ||
| 664 | + width: "150", | ||
| 665 | + align: "center", | ||
| 666 | + sorTable: true, | ||
| 667 | + fixed:false, | ||
| 668 | + }, | ||
| 669 | + { | ||
| 670 | + type: "", | ||
| 671 | + name: "创建人", | ||
| 672 | + value: "createUserName", | ||
| 673 | + width: "150", | ||
| 674 | + align: "center", | ||
| 675 | + sorTable: true, | ||
| 676 | + fixed:false, | ||
| 677 | + }, | ||
| 678 | + { | ||
| 679 | + type: "", | ||
| 680 | + name: "创建时间", | ||
| 681 | + value: "createTime", | ||
| 682 | + width: "150", | ||
| 683 | + align: "center", | ||
| 684 | + sorTable: true, | ||
| 685 | + fixed:false, | ||
| 686 | + }, | ||
| 687 | + ], //表头数据 | ||
| 688 | + findConditionData: {}, //货物查询条件 | ||
| 689 | + tableData: [], //表格数据 | ||
| 690 | + allWeight: 0, | ||
| 691 | + allQty: 0, | ||
| 692 | + shiftKey: false, | ||
| 693 | + valueFormat: "yyyy-MM-dd", | ||
| 694 | + tableLoading: false, | ||
| 695 | + downLoadingTip:{ | ||
| 696 | + tip:"", | ||
| 697 | + downloading:false, | ||
| 698 | + }, | ||
| 699 | + totalCount: 0, | ||
| 700 | + selectTable: [], | ||
| 701 | + flightTime: [], | ||
| 702 | + prepalyFlightTime: [], | ||
| 703 | + cargoPlaneTime:[], | ||
| 704 | + createDate: [], | ||
| 705 | + limitStart: 1, | ||
| 706 | + limitSize: 100, //无限制-1 | ||
| 707 | + page:1, | ||
| 708 | + progress:0, | ||
| 709 | + formShow:false, | ||
| 710 | + }; | ||
| 711 | + }, | ||
| 712 | + created() { | ||
| 713 | + // 查询条件 | ||
| 714 | + findConditionData().then((res) => { | ||
| 715 | + if (res.code == 200) { | ||
| 716 | + this.findConditionData = res.data; | ||
| 717 | + } else { | ||
| 718 | + this.$message({ | ||
| 719 | + message: "查询条件不存在", | ||
| 720 | + type: "warning", | ||
| 721 | + }); | ||
| 722 | + } | ||
| 723 | + }); | ||
| 724 | + }, | ||
| 725 | + | ||
| 726 | + mounted() { | ||
| 727 | + window.addEventListener("keydown", (code) => { | ||
| 728 | + if (code.keyCode === 16 && code.shiftKey) { | ||
| 729 | + this.shiftKey = true; | ||
| 730 | + } | ||
| 731 | + }); | ||
| 732 | + window.addEventListener("keyup", (code) => { | ||
| 733 | + if (code.keyCode === 16) { | ||
| 734 | + this.shiftKey = false; | ||
| 735 | + } | ||
| 736 | + }); | ||
| 737 | + }, | ||
| 738 | + | ||
| 739 | + methods: { | ||
| 740 | + clear() { | ||
| 741 | + this.$refs.cargoForm.resetFields(); | ||
| 742 | + }, | ||
| 743 | + //查询 | ||
| 744 | + select(val) { | ||
| 745 | + this.tableData = []; | ||
| 746 | + this.allWeight = 0; | ||
| 747 | + this.allQty = 0; | ||
| 748 | + this.tableLoading = true; | ||
| 749 | + this.dataInfo(); | ||
| 750 | + if(val === 0){ | ||
| 751 | + this.formData.limitStart = 1; | ||
| 752 | + this.limitStart = 1; | ||
| 753 | + this.page = 1; | ||
| 754 | + } | ||
| 755 | + findCargoData(this.formData).then((res) => { | ||
| 756 | + if (res.code == 200) { | ||
| 757 | + this.tableData = res.data.list; | ||
| 758 | + this.totalCount = res.data.totalCount; | ||
| 759 | + if (res.data.list.length > 0) { | ||
| 760 | + for (let i = 0; i < this.tableData.length; i++) { | ||
| 761 | + this.tableData[i].index = i; | ||
| 762 | + } | ||
| 763 | + } else { | ||
| 764 | + this.$message({ | ||
| 765 | + message: "未查询到数据", | ||
| 766 | + type: "warning", | ||
| 767 | + }); | ||
| 768 | + } | ||
| 769 | + } else { | ||
| 770 | + this.$message({ | ||
| 771 | + message: res.msg, | ||
| 772 | + type: "warning", | ||
| 773 | + }); | ||
| 774 | + } | ||
| 775 | + this.tableLoading = false; | ||
| 776 | + }).catch(()=>{ | ||
| 777 | + this.tableLoading = false; | ||
| 778 | + }); | ||
| 779 | + this.$refs.newTables.clearTable(); | ||
| 780 | + this.cargoTotal(); | ||
| 781 | + }, | ||
| 782 | + //数据初始化 | ||
| 783 | + dataInfo(){ | ||
| 784 | + if(this.formData.customsReceiptStatusId != null && this.formData.customsReceiptStatusId.length < 1){ | ||
| 785 | + this.formData.customsReceiptStatusId = null; | ||
| 786 | + } | ||
| 787 | + if (this.createDate != null && this.createDate.length > 0) { | ||
| 788 | + this.formData.createTimeStart = this.createDate[0]; | ||
| 789 | + this.formData.createTimeEnd = this.createDate[1]; | ||
| 790 | + }else{ | ||
| 791 | + this.formData.createTimeStart = null; | ||
| 792 | + this.formData.createTimeEnd = null; | ||
| 793 | + } | ||
| 794 | + if (this.prepalyFlightTime != null && this.prepalyFlightTime.length > 0) { | ||
| 795 | + this.formData.prematchFltDateStart = this.prepalyFlightTime[0]; | ||
| 796 | + this.formData.prematchFltDateEnd = this.prepalyFlightTime[1]; | ||
| 797 | + }else{ | ||
| 798 | + this.formData.prematchFltDateStart =""; | ||
| 799 | + this.formData.prematchFltDateEnd = ""; | ||
| 800 | + } | ||
| 801 | + if (this.flightTime != null && this.flightTime.length > 0) { | ||
| 802 | + this.formData.fltDateStart = this.flightTime[0]; | ||
| 803 | + this.formData.fltDateEnd = this.flightTime[1]; | ||
| 804 | + }else{ | ||
| 805 | + this.formData.fltDateStart = ""; | ||
| 806 | + this.formData.fltDateEnd = ""; | ||
| 807 | + } | ||
| 808 | + if(this.cargoPlaneTime != null && this.cargoPlaneTime.length > 0){ | ||
| 809 | + this.formData.cargoPlaneStart = this.cargoPlaneTime[0]; | ||
| 810 | + this.formData.cargoPlaneEnd = this.cargoPlaneTime[1]; | ||
| 811 | + }else{ | ||
| 812 | + this.formData.cargoPlaneStart = null; | ||
| 813 | + this.formData.cargoPlaneEnd = null; | ||
| 814 | + } | ||
| 815 | + if(this.formData.waybillNo){ | ||
| 816 | + this.formData.waybillNo = this.formData.waybillNo.trim(); | ||
| 817 | + } | ||
| 818 | + this.formData.limitStart = this.limitStart; | ||
| 819 | + this.formData.limitSize = 100; | ||
| 820 | + }, | ||
| 821 | + //总和 | ||
| 822 | + cargoTotal(){ | ||
| 823 | + this.allWeight = 0; | ||
| 824 | + this.allQty = 0; | ||
| 825 | + if(this.selectTable.length > 0){ | ||
| 826 | + this.selectTable.forEach(item=>{ | ||
| 827 | + this.allWeight = this.allWeight + item.actualWeight; | ||
| 828 | + this.allQty = this.allQty + item.qty; | ||
| 829 | + }) | ||
| 830 | + this.allWeight = this.allWeight.toFixed(2); | ||
| 831 | + this.allQty = this.allQty.toFixed(); | ||
| 832 | + } | ||
| 833 | + }, | ||
| 834 | + //表格多选 | ||
| 835 | + tableSelect(val){ | ||
| 836 | + this.selectTable = val.selection; | ||
| 837 | + this.cargoTotal(); | ||
| 838 | + }, | ||
| 839 | + //表格全选 | ||
| 840 | + tableSelectAll(val){ | ||
| 841 | + this.selectTable = val; | ||
| 842 | + this.cargoTotal(); | ||
| 843 | + }, | ||
| 844 | + //分页 | ||
| 845 | + currentChange(val){ | ||
| 846 | + this.formData.limitStart = val.start; | ||
| 847 | + this.limitStart = val.start; | ||
| 848 | + this.page = val.page; | ||
| 849 | + this.select() | ||
| 850 | + }, | ||
| 851 | + //排序 | ||
| 852 | + sortChange(val){ | ||
| 853 | + let data = [] | ||
| 854 | + let nullData = [] | ||
| 855 | + this.tableData.forEach(item=>{ | ||
| 856 | + if(item[val.prop]){ | ||
| 857 | + data.push(item) | ||
| 858 | + }else{ | ||
| 859 | + nullData.push(item) | ||
| 860 | + } | ||
| 861 | + }) | ||
| 862 | + data = data.sort(this.$refs.newTables.compare(val.prop,val.order)) | ||
| 863 | + if(val.order != "ascending"){ | ||
| 864 | + this.tableData = nullData.concat(data) | ||
| 865 | + }else{ | ||
| 866 | + this.tableData = data.concat(nullData) | ||
| 867 | + } | ||
| 868 | + this.tableData.forEach((item, index = 0) => { | ||
| 869 | + item.index = index; | ||
| 870 | + }); | ||
| 871 | + }, | ||
| 872 | + // 导出表格 | ||
| 873 | + xlse(page) { | ||
| 874 | + this.progress = 1; | ||
| 875 | + this.downLoadingTip.downloading = true; | ||
| 876 | + let cargoXlse = {title:"货物导出表",cargoConditionDto:{}}; | ||
| 877 | + this.dataInfo(); | ||
| 878 | + cargoXlse.cargoConditionDto = this.formData; | ||
| 879 | + cargoXlse.cargoConditionDto.limitSize = this.limitSize; | ||
| 880 | + | ||
| 881 | + if (page == 0) { | ||
| 882 | + this.downLoadingTip.tip = "正在导出本页结果集" | ||
| 883 | + cargoXlse.cargoConditionDto.limitStart = this.limitStart; | ||
| 884 | + downLoadXlsx("/cargo/excel",cargoXlse,"货物表").then(()=>{ | ||
| 885 | + this.downLoadingTip.downloading = false; | ||
| 886 | + this.downLoadingTip.tip = "" | ||
| 887 | + this.progress = 100; | ||
| 888 | + }).catch(()=>{ | ||
| 889 | + this.downLoadingTip.downloading = false; | ||
| 890 | + this.downLoadingTip.tip = ""; | ||
| 891 | + }) | ||
| 892 | + } else { | ||
| 893 | + if(this.totalCount < 80000){ | ||
| 894 | + this.downLoadingTip.tip = "正在导出全部结果集请耐心等待" | ||
| 895 | + cargoXlse.cargoConditionDto.limitStart = 0; | ||
| 896 | + cargoXlse.cargoConditionDto.limitSize = -1; | ||
| 897 | + downLoadXlsx("/cargo/excel",cargoXlse,"货物表").then(()=>{ | ||
| 898 | + this.downLoadingTip.downloading = false; | ||
| 899 | + this.downLoadingTip.tip = "" | ||
| 900 | + this.progress = 100; | ||
| 901 | + }).catch(()=>{ | ||
| 902 | + this.downLoadingTip.downloading = false; | ||
| 903 | + this.downLoadingTip.tip = "" | ||
| 904 | + }) | ||
| 905 | + }else{ | ||
| 906 | + this.downLoadingTip.downloading = false; | ||
| 907 | + this.$message({ | ||
| 908 | + message: "导出数据量过大,请不要超过8万条", | ||
| 909 | + type: "warning", | ||
| 910 | + }); | ||
| 911 | + } | ||
| 912 | + } | ||
| 913 | + }, | ||
| 914 | + }, | ||
| 915 | + computed: { | ||
| 916 | + fltNo: { | ||
| 917 | + get: function () { | ||
| 918 | + return this.formData.fltNo; | ||
| 919 | + }, | ||
| 920 | + set: function (val) { | ||
| 921 | + this.formData.fltNo = upCase(val); | ||
| 922 | + }, | ||
| 923 | + }, | ||
| 924 | + siteName: { | ||
| 925 | + get: function () { | ||
| 926 | + return this.formData.siteName; | ||
| 927 | + }, | ||
| 928 | + set: function (val) { | ||
| 929 | + this.formData.siteName = upCase(val); | ||
| 930 | + }, | ||
| 931 | + }, | ||
| 932 | + ursa: { | ||
| 933 | + get: function () { | ||
| 934 | + return this.formData.ursa; | ||
| 935 | + }, | ||
| 936 | + set: function (val) { | ||
| 937 | + this.formData.ursa = upCase(val); | ||
| 938 | + }, | ||
| 939 | + }, | ||
| 940 | + cargoPlaneNo:{ | ||
| 941 | + get: function () { | ||
| 942 | + return this.formData.cargoPlaneNo; | ||
| 943 | + }, | ||
| 944 | + set: function (val) { | ||
| 945 | + this.formData.cargoPlaneNo = upCase(val); | ||
| 946 | + }, | ||
| 947 | + } | ||
| 948 | + }, | ||
| 949 | +}; | ||
| 950 | +</script> | ||
| 951 | + | ||
| 952 | +<style scoped> | ||
| 953 | +.tips { | ||
| 954 | + display: inline-block; | ||
| 955 | + color: #606266; | ||
| 956 | + font-size: 14px; | ||
| 957 | + margin-top: 10px; | ||
| 958 | + margin-left: 50px; | ||
| 959 | +} | ||
| 960 | +.progress{ | ||
| 961 | + width:200px; | ||
| 962 | + display: inline-block; | ||
| 963 | + margin:0 0 0 20px; | ||
| 964 | +} | ||
| 965 | +.formShow{ | ||
| 966 | + width: max-content; | ||
| 967 | + height:48px; | ||
| 968 | + line-height: 48px; | ||
| 969 | + font-weight: 900; | ||
| 970 | + color: rgb(64, 158, 255); | ||
| 971 | + font-size: 14px; | ||
| 972 | + float: right; | ||
| 973 | + margin-right:20px; | ||
| 974 | +} | ||
| 975 | +</style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
-
Please register or login to post a comment