doctor-admin-components 1.0.14-beta.7 → 1.0.14-beta.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,13 +1,27 @@
1
1
  <template>
2
- <div class="app-container" v-if="linkId">
3
- <!--合同 装运 收获 进度显示 -->
4
- <div class="progress-root">
2
+ <div style="height: 100%;width: 100%;overflow: hidden;">
3
+ <!--合同 装运 收获 进度显示 -->
4
+ <div class="progress-root">
5
+ <div @click="handleScroll('contract_top_id')">
5
6
  <Progress :infoPro="contractProgressInfo"></Progress>
6
- <Progress :infoPro="shipProgressInfo"></Progress>
7
- <Progress :infoPro="getGoodsProgressInfo"></Progress>
8
7
  </div>
8
+ <div @click="handleScroll('contract_shipping_id')">
9
+ <Progress :infoPro="shipProgressInfo"></Progress>
10
+ </div>
11
+ <div @click="handleScroll('contract_receiving_id')">
12
+ <Progress :infoPro="getGoodsProgressInfo"></Progress>
13
+ </div>
14
+ <!-- 选择项 -->
15
+ <div class="selection-root" v-if="selectFileList.length > 0" style="background-color: rgb(237, 247, 255); border-radius: 18px;padding: 5px 12px;">
16
+ <span style="color: #54B8FF; font-weight: bold;">{{ $t('contractDetail.Selected') }} {{ selectFileList.length }} {{ $t('contractDetail.item') }}</span>
17
+ <div class="border-button border-button-blue" @click.stop="cancelAll">{{ $t('contractDetail.Deselect') }}</div>
18
+ <div class="border-button border-button-blue" @click.stop="downLoadAll">{{ $t('contractDetail.Download_All') }}</div>
19
+ <div class="border-button border-button-blue" @click.stop="deleteAll">{{ $t('contractDetail.Delete_All') }}</div>
20
+ </div>
21
+ </div>
22
+ <div class="app-container-file" style="padding: 0 20px;overflow-y: scroll;height: calc(100% - 60px)" v-if="linkId">
9
23
  <!-- 合同 -->
10
- <div style="margin-top:30px">
24
+ <div id="contract_top_id">
11
25
  <SectionSlot :infoPro="contractProgressInfo">
12
26
  <template v-slot:header>
13
27
  <div>
@@ -17,55 +31,55 @@
17
31
  <template v-slot:content>
18
32
  <div class="content-root">
19
33
  <!-- 提单指令 -->
20
- <ContentTitle :contentTitleProp="{
21
- bgButton: $t('contractDetail.blInfo'),
22
- bgTime:contractFileInfo.personalBillFileInfo && timeFormate(contractFileInfo.personalBillFileInfo),
23
- }"></ContentTitle>
24
- <el-col :span="12">
25
- <div v-if="getLastFileByList(contractFileInfo.latestBillFileInfo)">
26
- <div class="sub-title">{{ $t("contractDetail.blInfo") }}</div>
34
+ <div class="content-root-row">
35
+ <ContentTitle :contentTitleProp="{
36
+ bgButton: $t('contractDetail.blInfo'),
37
+ bgTime: personalBillFileInfo && timeFormate(personalBillFileInfo),
38
+ }"></ContentTitle>
39
+ <span v-if="contract.dealId" class="bg-history" @click="handleHistory('deal_bill,personal_deal_bill', contract.dealId, false)">{{ $t('contractDetail.view_history') }}</span>
40
+ </div>
41
+ <!-- 一个采购合同关联多个销售合 -->
42
+ <div v-for="(fileInfo, index) in contractFileInfo.bliFileInfoList" :key="'contract_'+index">
43
+ <el-col :span="24">
44
+ <div class="sub-title">{{ $t("contractDetail.blInfo") }}_{{ fileInfo.buyerContractCompanyName }}</div>
45
+ </el-col>
46
+ <el-col :span="12">
47
+ <div class="file-list" v-if="getLastFileByList(fileInfo.latestBillFileInfo)">
48
+ <file-show
49
+ :hiddenOperation="channel == 'official-website'"
50
+ @refresh="handleRefresh"
51
+ @checked="handleChecked"
52
+ @uncheck="handleUncheck"
53
+ :selectFileListProp="selectFileList"
54
+ :fileInfo="
55
+ getLastFileByList(fileInfo.latestBillFileInfo)
56
+ "
57
+ />
58
+ </div>
27
59
  <div class="file-list">
28
- <file-show
29
- :hiddenOperation="channel == 'official-website'"
30
- @refresh="handleRefresh"
31
- @checked="handleChecked"
32
- @uncheck="handleUncheck"
33
- :selectFileListProp="selectFileList"
34
- :fileInfo="
35
- getLastFileByList(contractFileInfo.latestBillFileInfo)
36
- "
37
- />
60
+ <file-show
61
+ :hiddenOperation="channel == 'official-website'"
62
+ @refresh="handleRefresh" @checked="handleChecked" @uncheck="handleUncheck" :selectFileListProp="selectFileList" :file-info="item"
63
+ v-for="(item, i) in fileInfo.personalBillFileInfo" :key="i" />
64
+ <contract-file-drag-upload
65
+ v-show="(!fileInfo.personalBillFileInfo || fileInfo.personalBillFileInfo.length == 0) && channel !== 'official-website'"
66
+ @upload="
67
+ handleUpload(
68
+ $event,
69
+ contract.dealId,
70
+ 'dealRecord',
71
+ 'personal_deal_bill'
72
+ )"
73
+ :isShowTip="false"
74
+ :uploadNameStr="$t('contractDetail.blInfo')" />
38
75
  </div>
39
- </div>
40
- <div class="file-list">
41
- <file-show
42
- :hiddenOperation="channel == 'official-website'"
43
- @refresh="handleRefresh" @checked="handleChecked" @uncheck="handleUncheck" :selectFileListProp="selectFileList" :file-info="item"
44
- v-for="(item, i) in contractFileInfo.personalBillFileInfo" :key="i" />
45
- <contract-file-drag-upload
46
- v-show="(!contractFileInfo.personalBillFileInfo || contractFileInfo.personalBillFileInfo.length == 0) && channel !== 'official-website'"
47
- @upload="
48
- handleUpload(
49
- $event,
50
- contract.dealId,
51
- 'dealRecord',
52
- 'personal_deal_bill'
53
- )
54
- ":isShowTip="false"
55
- :uploadNameStr="$t('contractDetail.blInfo')" />
56
- </div>
57
- </el-col>
58
- <el-col :span="12">
76
+ </el-col>
77
+ <el-col :span="12" class="center-status">
78
+ <i :class="fileInfo.blConfirmFlag ? 'el-icon-success success' : 'el-icon-time'"></i>
79
+ {{ fileInfo.blConfirmFlag ? $t('contractDetail.bl_confirm_true') : $t('contractDetail.blInfo_unconfirm') }}
80
+ </el-col>
81
+ </div>
59
82
 
60
- </el-col>
61
- <el-col :span="12" v-if="contractFileInfo.bliConfirmFlag" class="center-status">
62
- <i class="el-icon-success success"></i>
63
- {{ $t('contractDetail.bl_confirm_true') }}
64
- </el-col>
65
- <el-col :span="12" v-else class="center-status">
66
- <i class="el-icon-time"></i>
67
- {{ $t('contractDetail.blInfo_unconfirm') }}
68
- </el-col>
69
83
  <!-- 销售合同-回签合同 -->
70
84
  <el-col :span="24">
71
85
  <div class="hr-class"></div>
@@ -79,7 +93,7 @@
79
93
  : $t('contractDetail.purchaseContract'),
80
94
  bgTime:contractFileInfo.latestContractFileInfo && timeFormate(contractFileInfo.latestContractFileInfo)
81
95
  }"></ContentTitle>
82
- <span class="bg-history" @click="handleHistory('contract_formal')">{{ $t('contractDetail.view_history') }}</span>
96
+ <span class="bg-history" @click="handleHistory('contract_draft,contract_formal,contract_sign', linkId)">{{ $t('contractDetail.view_history') }}</span>
83
97
  </div>
84
98
  </el-col>
85
99
  <el-col :span="12" v-if="contractFileInfo.signContractFileInfo && contractFileInfo.signContractFileInfo.length">
@@ -138,7 +152,8 @@
138
152
  bgTime:contractFileInfo.proformaInvoiceFileInfo && timeFormate(contractFileInfo.proformaInvoiceFileInfo) || contractFileInfo.personalProformaInvoiceFileInfo && timeFormate(contractFileInfo.personalProformaInvoiceFileInfo)
139
153
  }">
140
154
  </ContentTitle>
141
- <span class="bg-history" v-if="channel !== 'official-website'" @click="skipInvoiceList">{{ $t('contractDetail.invoice_list') }}</span>
155
+ <span class="bg-history" @click="handleHistory('personal_proforma_invoice,proforma_invoice', contractFileInfo.proformaInvoice.id)">{{ $t('contractDetail.view_history') }}</span>
156
+ <span class="bg-history" style="padding-left: 20px;" v-if="channel !== 'official-website'" @click="skipInvoiceList">{{ $t('contractDetail.invoice_list') }}</span>
142
157
  </div>
143
158
  </el-col>
144
159
  <!-- 支付凭证 -->
@@ -283,10 +298,13 @@
283
298
  <div class="hr-class"></div>
284
299
  </el-col>
285
300
  <el-col :span="24">
286
- <ContentTitle :contentTitleProp="{
287
- bgButton: $t('contractDetail.otherFile'),
288
- bgTime: contract.contractType == 'sale' ? contractFileInfo.saleContractOtherFile && timeFormate(contractFileInfo.saleContractOtherFile) : contractFileInfo.purchaseContractOtherFile && timeFormate(contractFileInfo.purchaseContractOtherFile)
289
- }"></ContentTitle>
301
+ <div class="content-root-row">
302
+ <ContentTitle :contentTitleProp="{
303
+ bgButton: $t('contractDetail.otherFile'),
304
+ bgTime: contract.contractType == 'sale' ? contractFileInfo.saleContractOtherFile && timeFormate(contractFileInfo.saleContractOtherFile) : contractFileInfo.purchaseContractOtherFile && timeFormate(contractFileInfo.purchaseContractOtherFile)
305
+ }"></ContentTitle>
306
+ <span class="bg-history" @click="handleHistory(contract.contractType == 'sale' ? 'sale_contract_other_file' : 'purchase_contract_other_file', linkId, false)">{{ $t('contractDetail.view_history') }}</span>
307
+ </div>
290
308
  </el-col>
291
309
  <el-col :span="24">
292
310
  <!-- 销售-其他文件 -->
@@ -319,33 +337,40 @@
319
337
  />
320
338
  </div>
321
339
  </el-col>
340
+ <el-col :span="24" v-if="channel !== 'official-website'" style="padding-top: 20px;">
341
+ <span>内部文件夹</span>
342
+ <div class="file-list">
343
+ <file-show @refresh="handleRefresh" @checked="handleChecked" :hiddenOperation="channel == 'official-website'" @uncheck="handleUncheck" :selectFileListProp="selectFileList" :file-info="item"
344
+ v-for="(item, i) in contractFileInfo.contractInternalFile" :key="i" />
345
+ <contract-file-drag-upload
346
+ @upload="
347
+ handleUpload(
348
+ $event,
349
+ contract.contractId,
350
+ 'contract',
351
+ 'contract_internal_file'
352
+ )"
353
+ :isShowTip="false" uploadNameStr="内部文件" />
354
+ </div>
355
+ </el-col>
322
356
  </div>
323
357
  </template>
324
358
  </SectionSlot>
325
359
  </div>
326
- <!-- 装运 -->
327
- <div>
328
- <BillOfLadingNoTab
360
+ <!-- 提单号分栏 -->
361
+ <BillOfLadingNoTab
329
362
  :contractFileInfo="contractFileInfo"
330
363
  @changeShipBillNo="changeShipBillNo"
331
364
  :progressInfo="shipProgressInfo"
332
365
  :shipBillNoProp="shipBillNo"
333
366
  ></BillOfLadingNoTab>
367
+ <!-- 装运 -->
368
+ <div id="contract_shipping_id">
334
369
  <!-- 生成装运 -->
335
- <SectionSlot :infoPro="shipProgressInfo" v-if="contractFileInfo && !contractFileInfo.shipmentFileInfoList">
370
+ <SectionSlot @updateOpen="handleShippingUpdateOpen" :infoPro="shipProgressInfo" v-if="contractFileInfo && !contractFileInfo.shipmentFileInfoList">
336
371
  <template v-slot:header>
337
372
  <div style="position:relative">
338
373
  <ProgressDetail :infoPro="shipProgressInfo"></ProgressDetail>
339
- <!-- <div class="addshipment" @click.stop="handleGenerate"
340
- v-if="
341
- channel !== 'official-website' && contract.contractType == 'sale'
342
- "
343
- >生成装运</div> -->
344
- <!-- <div class="addshipment" @click.stop="handleGeneratePurchase"
345
- v-if="
346
- channel !== 'official-website' && contract.contractType == 'purchase'
347
- "
348
- >{{ $t("contractDetail.Generate_shipment") }}</div> -->
349
374
  </div>
350
375
  </template>
351
376
  <template v-slot:content>
@@ -363,22 +388,12 @@
363
388
  </template>
364
389
  </SectionSlot>
365
390
  <div v-else>
366
- <SectionSlot :infoPro="shipProgressInfo" v-for="(
391
+ <SectionSlot @updateOpen="handleShippingUpdateOpen" :infoPro="shipProgressInfo" v-for="(
367
392
  shipmentFileInfo, shipmentIndex
368
393
  ) in contractFileInfo.shipmentFileInfoList" :key="shipmentIndex" v-if="shipmentIndex == shipBillNo">
369
394
  <template v-slot:header>
370
395
  <div style="position:relative">
371
396
  <ProgressDetail :infoPro="shipProgressInfo"></ProgressDetail>
372
- <!-- <div class="addshipment" @click.stop="handleGenerate"
373
- v-if="
374
- channel !== 'official-website' && contract.contractType == 'sale'
375
- "
376
- >增加装运</div> -->
377
- <!-- <div class="addshipment" @click.stop="handleGeneratePurchase"
378
- v-if="
379
- channel !== 'official-website' && contract.contractType == 'purchase'
380
- "
381
- >{{ $t('contractDetail.add_shipment') }}</div> -->
382
397
  </div>
383
398
  </template>
384
399
  <template v-slot:content>
@@ -407,48 +422,101 @@
407
422
  <div class="preview-download" @click="editShipment(shipmentItemData)">{{ $t('contractDetail.edit_shipment') }}</div>
408
423
  </div>
409
424
  <!-- 订舱资料 -->
410
- <ContentTitle :contentTitleProp="{
425
+ <div class="content-root-row">
426
+ <ContentTitle :contentTitleProp="{
411
427
  bgButton: $t('contractDetail.bookingConfirmation'),
412
428
  bgTime: shipmentFileInfo.bookingConfirmation && timeFormate(shipmentFileInfo.bookingConfirmation),
413
429
  bgcolor: shipProgressInfo.bgcolor
414
-
415
430
  }">
416
431
  </ContentTitle>
417
- <div>
418
- </div>
419
- <el-col :span="24">
420
- <div class="file-list">
421
- <el-col v-if=" contract.contractType == 'sale' && (!shipmentFileInfo.bookingConfirmation || shipmentFileInfo.bookingConfirmation && shipmentFileInfo.bookingConfirmation.length == 0)" :span="12" class="center-status">
422
- <i class="el-icon-time"></i>
423
- {{ $t('contractDetail.Booking_information_to_be_updated') }}
424
- </el-col>
425
- <file-show @refresh="handleRefresh" @checked="handleChecked" :hiddenOperation="channel == 'official-website'" @uncheck="handleUncheck" :selectFileListProp="selectFileList" :file-info="item"
426
- v-for="(item, i) in shipmentFileInfo.bookingConfirmation" :key="i" />
427
- <!-- 6. 销售去掉订舱资料上传功能 https://udswem7m8c.feishu.cn/wiki/Tm4SwKcqviRkTUkKNCxc2bnBnVb -->
428
- <contract-file-drag-upload
429
- v-if="channel !== 'official-website' && contract.contractType == 'purchase'"
430
- @upload="
431
- handleUpload(
432
- $event,
433
- shipmentFileInfo.shipmentId,
434
- 'shipment',
435
- 'shipment_booking_confirmation'
436
- )
437
- " :isShowTip="false" :uploadNameStr="$t('contractDetail.bookingConfirmation')" />
438
- </div>
439
- </el-col>
432
+ <span class="bg-history" v-if="channel !== 'official-website'" @click="handleHistory(contract.contractType == 'sale' ? 'shipment_booking_confirmation,sale_shipment_internal_file' : 'shipment_booking_confirmation,purchase_shipment_internal_file', shipmentFileInfo.shipmentId, false)">{{ $t('contractDetail.view_history') }}</span>
433
+ <span class="bg-history" v-else @click="handleHistory('shipment_booking_confirmation', shipmentFileInfo.shipmentId, false)">{{ $t('contractDetail.view_history') }}</span>
434
+ </div>
435
+ <el-row>
436
+ <el-col :span="24">
437
+ <div class="file-list">
438
+ <el-col v-if=" contract.contractType == 'sale' && (!shipmentFileInfo.bookingConfirmation || shipmentFileInfo.bookingConfirmation && shipmentFileInfo.bookingConfirmation.length == 0)" :span="12" class="center-status">
439
+ <i class="el-icon-time"></i>
440
+ {{ $t('contractDetail.Booking_information_to_be_updated') }}
441
+ </el-col>
442
+ <file-show @refresh="handleRefresh" @checked="handleChecked" :hiddenOperation="channel == 'official-website'" @uncheck="handleUncheck" :selectFileListProp="selectFileList" :file-info="item"
443
+ v-for="(item, i) in shipmentFileInfo.bookingConfirmation" :key="i" />
444
+ <!-- 6. 销售去掉订舱资料上传功能 https://udswem7m8c.feishu.cn/wiki/Tm4SwKcqviRkTUkKNCxc2bnBnVb -->
445
+ <contract-file-drag-upload
446
+ v-if="channel !== 'official-website' && contract.contractType == 'purchase'"
447
+ @upload="
448
+ handleUpload(
449
+ $event,
450
+ shipmentFileInfo.shipmentId,
451
+ 'shipment',
452
+ 'shipment_booking_confirmation'
453
+ )
454
+ " :isShowTip="false" :uploadNameStr="$t('contractDetail.bookingConfirmation')" />
455
+ </div>
456
+ </el-col>
457
+ </el-row>
458
+
459
+ <el-row v-if="channel !== 'official-website'" style="padding-top: 20px;">
460
+ <el-col :span="24">
461
+ <span>内部文件夹</span>
462
+ <div class="file-list" v-if="contract.contractType == 'purchase'">
463
+ <file-show
464
+ @refresh="handleRefresh"
465
+ @checked="handleChecked"
466
+ :hiddenOperation="channel == 'official-website'"
467
+ @uncheck="handleUncheck"
468
+ :selectFileListProp="selectFileList"
469
+ :file-info="item"
470
+ v-for="(item, i) in shipmentFileInfo.purchaseShipmentInternalFile" :key="i" />
471
+ <contract-file-drag-upload
472
+ @upload="
473
+ handleUpload(
474
+ $event,
475
+ shipmentFileInfo.shipmentId,
476
+ 'shipment',
477
+ 'purchase_shipment_internal_file'
478
+ )"
479
+ :isShowTip="false" uploadNameStr="内部文件" />
480
+ </div>
481
+
482
+ <div class="file-list" v-else>
483
+ <file-show
484
+ @refresh="handleRefresh"
485
+ @checked="handleChecked"
486
+ :hiddenOperation="channel == 'official-website'"
487
+ @uncheck="handleUncheck"
488
+ :selectFileListProp="selectFileList"
489
+ :file-info="item"
490
+ v-for="(item, i) in shipmentFileInfo.saleShipmentInternalFile" :key="i" />
491
+ <contract-file-drag-upload
492
+ @upload="
493
+ handleUpload(
494
+ $event,
495
+ shipmentFileInfo.shipmentId,
496
+ 'shipment',
497
+ 'sale_shipment_internal_file'
498
+ )"
499
+ :isShowTip="false" uploadNameStr="内部文件" />
500
+ </div>
501
+
502
+ </el-col>
503
+ </el-row>
504
+
440
505
  <el-col :span="24">
441
506
  <div class="hr-class"></div>
442
507
  </el-col>
508
+
443
509
  <!-- 装箱单 -->
444
- <ContentTitle :contentTitleProp="{
445
- bgButton: $t('contractDetail.packingList'),
446
- bgTime: contract.contractType == 'purchase' ? shipmentFileInfo.purchasePersonalPackingList && timeFormate(shipmentFileInfo.purchasePersonalPackingList) : shipmentFileInfo.packingList && timeFormate(shipmentFileInfo.packingList),
447
- bgcolor: shipProgressInfo.bgcolor
448
- }"></ContentTitle>
449
- <el-row v-if="contract.contractType == 'purchase'">
450
- <div>
451
- <div class="sub-title">
510
+ <el-row>
511
+ <el-col :span="24">
512
+ <div class="content-root-row">
513
+ <ContentTitle :contentTitleProp="{
514
+ bgButton: $t('contractDetail.packingList'),
515
+ bgTime: contract.contractType == 'purchase' ? shipmentFileInfo.purchasePersonalPackingList && timeFormate(shipmentFileInfo.purchasePersonalPackingList) : shipmentFileInfo.packingList && timeFormate(shipmentFileInfo.packingList),
516
+ bgcolor: shipProgressInfo.bgcolor
517
+ }"></ContentTitle>
518
+ <span class="bg-history" @click="handleHistory('purchase_personal_shipment_packing_list', shipmentFileInfo.shipmentId)">{{ $t('contractDetail.view_history') }}</span>
519
+ <div class="sub-title" style="margin-bottom: 0;" v-if="contract.contractType == 'purchase'">
452
520
  <span style="color: #1890ff; cursor: pointer" v-if="shipmentFileInfo &&
453
521
  shipmentFileInfo.purchasePersonalPackingList &&
454
522
  shipmentFileInfo.purchasePersonalPackingList[0] &&
@@ -465,41 +533,49 @@
465
533
  shipmentFileInfo && shipmentFileInfo.shipmentId,
466
534
  'packing'
467
535
  )
468
- ">{{ identify }}
536
+ ">
537
+ <el-divider direction="vertical"></el-divider>
538
+ {{ identify }}
469
539
  </span>
470
540
  </div>
471
- <ShowAndHide :dataInfoArr="shipmentFileInfo.purchasePersonalPackingList" heightStr="100px" :HideAmount="2">
541
+ </div>
542
+ </el-col>
543
+ </el-row>
544
+ <el-row v-if="contract.contractType == 'purchase'">
545
+ <div>
546
+ <ShowAndHide :dataInfoArr="shipmentFileInfo.purchasePersonalPackingList" heightStr="94px" :HideAmount="2">
472
547
  <template>
473
- <el-col :span="24">
474
- <div class="file-list">
475
- <!-- <el-col :span="12" v-if="!shipmentFileInfo.purchasePersonalPackingList || shipmentFileInfo.purchasePersonalPackingList.length == 0" class="center-status">
476
- <i class="el-icon-time"></i>
477
- 装箱单待更新
478
- </el-col> -->
479
- <file-show :hiddenOperation="channel == 'official-website'" @refresh="handleRefresh"
480
- @checked="handleChecked" @uncheck="handleUncheck" :selectFileListProp="selectFileList" :file-info="item" v-for="(
481
- item, i
482
- ) in shipmentFileInfo.purchasePersonalPackingList" :key="i" />
483
-
484
- <contract-file-drag-upload
485
- @upload="handleUpload(
486
- $event,
487
- shipmentFileInfo.shipmentId,
488
- 'shipment',
489
- 'purchase_personal_shipment_packing_list'
490
- )"
491
- :isShowTip="false"
492
- :uploadNameStr="$t('contractDetail.packingList')"
493
- />
494
- </div>
495
- </el-col>
548
+ <div style="display: flex; justify-content: space-between;width: 100%;">
549
+ <el-col :span="12" v-if="shipmentFileInfo.purchasePersonalPackingList && shipmentFileInfo.purchasePersonalPackingList.length > 0">
550
+ <div class="file-list">
551
+ <file-show :hiddenOperation=" channel == 'official-website'" @refresh="handleRefresh"
552
+ @checked="handleChecked" @uncheck="handleUncheck" :selectFileListProp="selectFileList" :file-info="item" v-for="(
553
+ item, i
554
+ ) in shipmentFileInfo.purchasePersonalPackingList" :key="i" />
555
+ </div>
556
+ </el-col>
557
+ <el-col :span="12">
558
+ <div class="file-list">
559
+ <contract-file-drag-upload
560
+ @upload="handleUpload(
561
+ $event,
562
+ shipmentFileInfo.shipmentId,
563
+ 'shipment',
564
+ 'purchase_personal_shipment_packing_list'
565
+ )"
566
+ :isShowTip="false"
567
+ :uploadNameStr="$t('contractDetail.packingList')"
568
+ />
569
+ </div>
570
+ </el-col>
571
+ </div>
496
572
  </template>
497
573
  </ShowAndHide>
498
574
  </div>
499
575
  </el-row>
500
576
  <el-row v-if="contract.contractType == 'sale'">
501
577
  <div>
502
- <ShowAndHide :dataInfoArr="shipmentFileInfo.packingList || []" heightStr="100px" :HideAmount="2">
578
+ <ShowAndHide :dataInfoArr="shipmentFileInfo.packingList || []" heightStr="94px" :HideAmount="2">
503
579
  <el-col :span="24">
504
580
  <div class="file-list">
505
581
  <el-col :span="12" v-if="!shipmentFileInfo.packingList || shipmentFileInfo.packingList.length == 0" class="center-status">
@@ -542,14 +618,15 @@
542
618
  bgTime: containerFile.packingPhoto && timeFormate(containerFile.packingPhoto),
543
619
  bgcolor: shipProgressInfo.bgcolor
544
620
  }"></ContentTitle>
621
+ <span class="bg-history" @click="handleHistory('container_packing_photo', containerFile.containerId, false)">{{ $t('contractDetail.view_history') }}</span>
545
622
  <div v-if="containerFile && containerFile.packingPhoto.length" style="display:flex">
546
- <!-- <div style="display:flex"> -->
547
- <div class="border-button" @click.stop="allSelectContainerPackingPhoto(containerFile.containerId)">
548
- {{ $t('contractDetail.select_all') }} </div>
549
- <div class="border-button" @click.stop="cancelContainerPackingPhoto(containerFile.containerId)">{{ $t('contractDetail.Deselect') }}
550
- </div>
551
623
  <div class="border-button border-button-share"
552
- @click.stop="shareContainerUrl(containerFile.containerId)">{{ $t('contractDetail.share') }}</div>
624
+ @click.stop="shareContainerUrl(containerFile.containerId)">{{ $t('contractDetail.share') }}
625
+ </div>
626
+ <el-divider direction="vertical"></el-divider>
627
+ <div :class="hasSelectAllContainer(containerFile.containerId) ? 'border-button' : 'border-button border-button-blue'" @click.stop="clickSelectAllContainer(containerFile.containerId)">
628
+ {{ hasSelectAllContainer(containerFile.containerId) ? $t('contractDetail.select_all') : $t('contractDetail.Deselect') }}
629
+ </div>
553
630
  </div>
554
631
  </div>
555
632
  </el-col>
@@ -586,30 +663,28 @@
586
663
  <div class="hr-class"></div>
587
664
  </el-col>
588
665
  <el-col :span="24" style="display:flex;align-items:center">
589
- <ContentTitle :contentTitleProp="{
590
- bgButton: $t('contractDetail.draftBillOfLading'),
591
- bgTime: shipmentFileInfo.draftBillOfLading && timeFormate(shipmentFileInfo.draftBillOfLading),
592
- bgcolor: shipProgressInfo.bgcolor
593
- }"></ContentTitle>
594
- <span
666
+ <div class="content-root-row">
667
+ <ContentTitle :contentTitleProp="{
668
+ bgButton: $t('contractDetail.draftBillOfLading'),
669
+ bgTime: shipmentFileInfo.draftBillOfLading && timeFormate(shipmentFileInfo.draftBillOfLading),
670
+ bgcolor: shipProgressInfo.bgcolor
671
+ }"></ContentTitle>
672
+ <span class="bg-history" @click="handleHistory('draft_bill_of_lading', shipmentFileInfo.shipmentId, false)">{{ $t('contractDetail.view_history') }}</span>
673
+ </div>
674
+
675
+ <span
595
676
  style="color: #1890ff; cursor: pointer;font-size:14px"
596
- v-if="
597
- shipmentFileInfo &&
598
- shipmentFileInfo.draftBillOfLading &&
599
- shipmentFileInfo.draftBillOfLading[0] &&
600
- shipmentFileInfo.draftBillOfLading[0].url
601
- "
677
+ v-if="draftBillOfLadingUrl(shipmentFileInfo)"
602
678
  @click="
603
679
  identifyPage(
604
- shipmentFileInfo &&
605
- shipmentFileInfo.draftBillOfLading &&
606
- shipmentFileInfo.draftBillOfLading[0] &&
607
- shipmentFileInfo.draftBillOfLading[0].url,
680
+ draftBillOfLadingUrl(shipmentFileInfo),
608
681
  shipmentFileInfo && shipmentFileInfo.shipmentId,
609
682
  'draft_bill'
610
683
  )
611
684
  "
612
- >{{ identify }}</span>
685
+ >
686
+ <el-divider direction="vertical"></el-divider>
687
+ {{ identify }}</span>
613
688
  </el-col>
614
689
  <el-col :span="24">
615
690
  <el-col :span="12">
@@ -659,11 +734,14 @@
659
734
  <div class="hr-class"></div>
660
735
  </el-col>
661
736
  <el-col :span="24">
662
- <ContentTitle :contentTitleProp="{
663
- bgButton: $t('contractDetail.Copy_of_formal_bill_of_lading'),
664
- bgTime: shipmentFileInfo.originalBillOfLadingCopy && timeFormate(shipmentFileInfo.originalBillOfLadingCopy),
665
- bgcolor: shipProgressInfo.bgcolor
666
- }"></ContentTitle>
737
+ <div class="content-root-row">
738
+ <ContentTitle :contentTitleProp="{
739
+ bgButton: $t('contractDetail.Copy_of_formal_bill_of_lading'),
740
+ bgTime: shipmentFileInfo.originalBillOfLadingCopy && timeFormate(shipmentFileInfo.originalBillOfLadingCopy),
741
+ bgcolor: shipProgressInfo.bgcolor
742
+ }"></ContentTitle>
743
+ <span class="bg-history" @click="handleHistory('original_bill_of_lading_copy', shipmentFileInfo.shipmentId, false)">{{ $t('contractDetail.view_history') }}</span>
744
+ </div>
667
745
  </el-col>
668
746
  <el-col :span="24">
669
747
  <div class="file-list">
@@ -693,11 +771,14 @@
693
771
  <div class="hr-class"></div>
694
772
  </el-col>
695
773
  <el-col :span="24" v-if="contract.quoteType != 'FIXED'">
696
- <ContentTitle :contentTitleProp="{
697
- bgButton: $t('contractDetail.saleTemporaryFinallyInvoice'),
698
- bgTime: shipmentFileInfo.salePersonalTemporaryFinallyInvoice && timeFormate(shipmentFileInfo.salePersonalTemporaryFinallyInvoice),
699
- bgcolor: shipProgressInfo.bgcolor
700
- }"></ContentTitle>
774
+ <div class="content-root-row">
775
+ <ContentTitle :contentTitleProp="{
776
+ bgButton: $t('contractDetail.saleTemporaryFinallyInvoice'),
777
+ bgTime: shipmentFileInfo.salePersonalTemporaryFinallyInvoice && timeFormate(shipmentFileInfo.salePersonalTemporaryFinallyInvoice),
778
+ bgcolor: shipProgressInfo.bgcolor
779
+ }"></ContentTitle>
780
+ <span class="bg-history" @click="handleHistory(contract.contractType == 'sale' ? 'sale_personal_temporary_finally_invoice' : 'purchase_temporary_finally_invoice', shipmentFileInfo.shipmentId)">{{ $t('contractDetail.view_history') }}</span>
781
+ </div>
701
782
  <div class="sub-title">
702
783
  <span
703
784
  v-if="
@@ -706,7 +787,9 @@
706
787
  "
707
788
  style="color: #1890ff; cursor: pointer; margin-left: 10px"
708
789
  @click.stop="identifyPageBoth(shipmentFileInfo, 1)"
709
- >{{ identify }}</span>
790
+ >
791
+ <el-divider direction="vertical"></el-divider>
792
+ {{ identify }}</span>
710
793
  </div>
711
794
  <el-col :span="12" v-if="channel == 'official-website' && shipmentFileInfo.salePersonalTemporaryFinallyInvoice && shipmentFileInfo.salePersonalTemporaryFinallyInvoice.length == 0" class="center-status">
712
795
  <i class="el-icon-time"></i>
@@ -738,8 +821,8 @@
738
821
  shipmentFileInfo.shipmentId,
739
822
  'shipment',
740
823
  'sale_personal_temporary_finally_invoice'
741
- )
742
- ":isShowTip="false" :uploadNameStr="$t('contractDetail.saleTemporaryFinallyInvoice')" />
824
+ )"
825
+ :isShowTip="false" :uploadNameStr="$t('contractDetail.saleTemporaryFinallyInvoice')" />
743
826
  </div>
744
827
  <div class="file-list" v-else>
745
828
  <file-show :hiddenOperation="channel == 'official-website'" @refresh="handleRefresh"
@@ -753,8 +836,8 @@
753
836
  shipmentFileInfo.shipmentId,
754
837
  'shipment',
755
838
  'purchase_temporary_finally_invoice'
756
- )
757
- ":isShowTip="false" :uploadNameStr="$t('contractDetail.saleTemporaryFinallyInvoice')" />
839
+ )"
840
+ :isShowTip="false" :uploadNameStr="$t('contractDetail.saleTemporaryFinallyInvoice')" />
758
841
  </div>
759
842
  </div>
760
843
  </el-col>
@@ -792,12 +875,15 @@
792
875
  bgTime: contract.contractType == 'sale' ? getNewInfo && timeFormate(getNewInfo) : shipmentFileInfo.purchaseFinallyInvoice && timeFormate(shipmentFileInfo.purchaseFinallyInvoice),
793
876
  bgcolor: shipProgressInfo.bgcolor
794
877
  }"></ContentTitle>
878
+ <span class="bg-history" @click="handleHistory(contract.contractType == 'sale' ? 'sale_personal_finally_invoice,sale_finally_invoice' : 'purchase_finally_invoice', shipmentFileInfo.shipmentId)">{{ $t('contractDetail.view_history') }}</span>
795
879
  <span
796
880
  v-if="
797
881
  channel !== 'official-website' && contract.contractType == 'purchase' && shipmentFileInfo.purchaseFinallyInvoice && shipmentFileInfo.purchaseFinallyInvoice.length > 0"
798
882
  style="color: #1890ff; cursor: pointer; margin-left: 10px;font-size:14px;"
799
883
  @click.stop="identifyPageBoth(shipmentFileInfo, 2)"
800
- >{{ identify }}
884
+ >
885
+ <el-divider direction="vertical"></el-divider>
886
+ {{ identify }}
801
887
  </span>
802
888
  </div>
803
889
  <!-- <div class="sub-title"> -->
@@ -981,11 +1067,14 @@
981
1067
  </el-col>
982
1068
 
983
1069
  <el-col :span="24">
984
- <ContentTitle :contentTitleProp="{
985
- bgButton: $t('contractDetail.otherFile'),
986
- bgTime: contract.contractType == 'sale' ? shipmentFileInfo.saleShipmentOther && timeFormate(shipmentFileInfo.saleShipmentOther) : shipmentFileInfo.purchaseShipmentOther && timeFormate(shipmentFileInfo.purchaseShipmentOther),
987
- bgcolor: shipProgressInfo.bgcolor
988
- }"></ContentTitle>
1070
+ <div class="content-root-row">
1071
+ <ContentTitle :contentTitleProp="{
1072
+ bgButton: $t('contractDetail.otherFile'),
1073
+ bgTime: contract.contractType == 'sale' ? shipmentFileInfo.saleShipmentOther && timeFormate(shipmentFileInfo.saleShipmentOther) : shipmentFileInfo.purchaseShipmentOther && timeFormate(shipmentFileInfo.purchaseShipmentOther),
1074
+ bgcolor: shipProgressInfo.bgcolor
1075
+ }"></ContentTitle>
1076
+ <span class="bg-history" @click="handleHistory('sale_shipment_other', shipmentFileInfo.shipmentId, false)">{{ $t('contractDetail.view_history') }}</span>
1077
+ </div>
989
1078
  </el-col>
990
1079
  <el-col :span="24" v-if="contract.contractType == 'sale'">
991
1080
  <div class="file-list">
@@ -1026,14 +1115,9 @@
1026
1115
  </div>
1027
1116
 
1028
1117
  <!-- 收货 -->
1029
- <div>
1030
- <BillOfLadingNoTab
1031
- :contractFileInfo="contractFileInfo"
1032
- @changeShipBillNo="changeShipBillNo"
1033
- :progressInfo="getGoodsProgressInfo"
1034
- :shipBillNoProp="shipBillNo"
1035
- ></BillOfLadingNoTab>
1118
+ <div id="contract_receiving_id">
1036
1119
  <SectionSlot
1120
+ ref="SectionReceiving"
1037
1121
  :infoPro="getGoodsProgressInfo" v-for="(
1038
1122
  shipmentFileInfo, shipmentIndex
1039
1123
  ) in contractFileInfo.shipmentFileInfoList" :key="shipmentIndex" v-if="shipmentIndex == shipBillNo"
@@ -1046,76 +1130,18 @@
1046
1130
  <template v-slot:content>
1047
1131
  <div class="content-root">
1048
1132
  <div>
1049
- <!-- <div v-if="channel !== 'official-website'" style="color: #1890ff">
1050
- {{
1051
- contract.contractType == "sale"
1052
- ? "尾款收款"
1053
- : $t("contractDetail.Final_payment")
1054
- }}
1133
+ <div class="content-root-row">
1134
+ <ContentTitle :contentTitleProp="{
1135
+ bgButton: $t('contractDetail.tip7'),
1136
+ bgTime: shipmentFileInfo.deliveryReceipt && timeFormate(shipmentFileInfo.deliveryReceipt),
1137
+ bgcolor: getGoodsProgressInfo.bgcolor
1138
+ }"></ContentTitle>
1139
+ <span class="bg-history" @click="handleHistory('shipment_delivery_receipt', shipmentFileInfo.shipmentId, false)">{{ $t('contractDetail.view_history') }}</span>
1055
1140
  </div>
1056
- <div v-else class="sub-title">{{ $t("contractDetail.Final_payment") }}</div> -->
1057
- <!-- 尾款水单 -->
1058
- <!-- <el-row>
1059
- <el-col :span="24">
1060
- <div>
1061
- <ContentTitle :contentTitleProp="{
1062
- bgButton: $t('contractDetail.finalPaymentMemo'),
1063
- bgTime: shipmentFileInfo.waterBill && timeFormate(shipmentFileInfo.waterBill),
1064
- bgcolor: getGoodsProgressInfo.bgcolor
1065
- }"></ContentTitle>
1066
-
1067
- <div class="file-list" v-if="shipmentFileInfo.waterBill && shipmentFileInfo.waterBill.length">
1068
- <file-show
1069
- :hiddenOperation="channel == 'official-website'"
1070
- @refresh="handleRefresh"
1071
- @checked="handleChecked"
1072
- @uncheck="handleUncheck"
1073
- :file-info="item"
1074
- v-for="(item, i) in shipmentFileInfo.waterBill"
1075
- :key="i"
1076
- />
1077
- </div>
1078
- <div v-else class="center-status">
1079
- <i class="el-icon-time"></i>
1080
- 暂无文件
1081
- </div>
1082
- </div>
1083
- </el-col>
1084
- </el-row> -->
1085
- <!-- 汇款凭证 -->
1086
- <!-- <el-row>
1087
- <div>
1088
- <ContentTitle :contentTitleProp="{
1089
- bgButton: $t('contractDetail.swift'),
1090
- bgTime: shipmentFileInfo.voucher && timeFormate(shipmentFileInfo.voucher),
1091
- bgcolor: getGoodsProgressInfo.bgcolor
1092
- }"></ContentTitle>
1093
- <div class="file-list" v-if="shipmentFileInfo.voucher && shipmentFileInfo.voucher.length">
1094
- <file-show
1095
- :hiddenOperation="channel == 'official-website'"
1096
- @refresh="handleRefresh"
1097
- @checked="handleChecked"
1098
- @uncheck="handleUncheck"
1099
- :file-info="item"
1100
- v-for="(item, i) in shipmentFileInfo.voucher"
1101
- :key="i"
1102
- />
1103
- </div>
1104
- <div v-else class="center-status">
1105
- <i class="el-icon-time"></i>
1106
- 暂无文件
1107
- </div>
1108
- </div>
1109
- </el-row> -->
1110
- <!-- 提货凭证 -->
1111
- <ContentTitle :contentTitleProp="{
1112
- bgButton: $t('contractDetail.tip7'),
1113
- bgTime: shipmentFileInfo.deliveryReceipt && timeFormate(shipmentFileInfo.deliveryReceipt),
1114
- bgcolor: getGoodsProgressInfo.bgcolor
1115
- }"></ContentTitle>
1116
1141
  <el-col :span="24">
1117
1142
  <div class="file-list">
1118
1143
  <file-show @refresh="handleRefresh" @checked="handleChecked" @uncheck="handleUncheck"
1144
+ deleteTips="你确定要删除文件吗?删除后,电放状态将会回退到未电放?"
1119
1145
  :hiddenOperation="channel == 'official-website'"
1120
1146
  :selectFileListProp="selectFileList"
1121
1147
  :file-info="item" v-for="(item, i) in shipmentFileInfo.deliveryReceipt" :key="i" />
@@ -1146,13 +1172,8 @@
1146
1172
  </div>
1147
1173
  <!-- 索赔 -->
1148
1174
  <div v-if="contractFileInfo.claimCreateFlag">
1149
- <BillOfLadingNoTab
1150
- :contractFileInfo="contractFileInfo"
1151
- @changeShipBillNo="changeShipBillNo"
1152
- :progressInfo="shipProgressInfo"
1153
- :shipBillNoProp="shipBillNo"
1154
- ></BillOfLadingNoTab>
1155
1175
  <SectionSlot
1176
+ ref="SectionClaim"
1156
1177
  :infoPro="claimProgressInfo"
1157
1178
  v-for="(
1158
1179
  shipmentFileInfo, shipmentIndex
@@ -1167,30 +1188,21 @@
1167
1188
  <template v-slot:content>
1168
1189
  <div class="content-root">
1169
1190
  <div>
1170
- <ContentTitle :contentTitleProp="{
1171
- bgButton: !buyerFlag
1172
- ? $t('contractDetail.Credit_Note')
1173
- : $t('contractDetail.Debit_Note'),
1174
- bgTime: claimFileInfoCom && timeFormate(claimFileInfoCom),
1175
- bgcolor: claimProgressInfo.bgcolor
1176
- }"></ContentTitle>
1191
+ <div class="content-root-row">
1192
+ <ContentTitle :contentTitleProp="{
1193
+ bgButton: !buyerFlag
1194
+ ? $t('contractDetail.Credit_Note')
1195
+ : $t('contractDetail.Debit_Note'),
1196
+ bgTime: claimFileInfoCom && timeFormate(claimFileInfoCom),
1197
+ bgcolor: claimProgressInfo.bgcolor
1198
+ }"></ContentTitle>
1199
+ </div>
1177
1200
  <el-col :span="24">
1178
1201
  <div class="file-list" v-if="claimFileInfoCom">
1179
1202
  <file-show @refresh="handleRefresh" @checked="handleChecked" @uncheck="handleUncheck"
1180
1203
  :selectFileListProp="selectFileList"
1181
- :hiddenOperation="channel == 'official-website'"
1204
+ :hiddenOperation="true"
1182
1205
  :file-info="item" v-for="(item, i) in claimFileInfoCom" :key="i" />
1183
- <!-- <contract-file-drag-upload
1184
- @upload="
1185
- handleUpload(
1186
- $event,
1187
- shipmentFileInfo.shipmentId,
1188
- 'shipment',
1189
- 'shipment_delivery_receipt'
1190
- )
1191
- "
1192
- :isShowTip="false"
1193
- /> -->
1194
1206
  </div>
1195
1207
  <div v-else class="center-status">
1196
1208
  <i class="el-icon-time"></i>
@@ -1203,8 +1215,9 @@
1203
1215
  </SectionSlot>
1204
1216
  </div>
1205
1217
  <!-- cndn -->
1206
- <div style="margin-top:50px" v-if="CNbillsCom.length || DNbillsCom.length">
1218
+ <div style="margin-top:20px" v-if="CNbillsCom.length || DNbillsCom.length">
1207
1219
  <SectionSlot
1220
+ ref="SectionCNDN"
1208
1221
  :infoPro="cndnProgressInfo"
1209
1222
  >
1210
1223
  <template v-slot:header>
@@ -1227,17 +1240,6 @@
1227
1240
  :selectFileListProp="selectFileList"
1228
1241
  :hiddenOperation="true"
1229
1242
  :file-info="item" v-for="(item, i) in DNbillsCom" :key="i" />
1230
- <!-- <contract-file-drag-upload
1231
- @upload="
1232
- handleUpload(
1233
- $event,
1234
- shipmentFileInfo.shipmentId,
1235
- 'shipment',
1236
- 'shipment_delivery_receipt'
1237
- )
1238
- "
1239
- :isShowTip="false"
1240
- /> -->
1241
1243
  </div>
1242
1244
  <!-- <div v-else class="center-status">
1243
1245
  <i class="el-icon-time"></i>
@@ -1258,17 +1260,6 @@
1258
1260
  :selectFileListProp="selectFileList"
1259
1261
  :hiddenOperation="true"
1260
1262
  :file-info="item" v-for="(item, i) in CNbillsCom" :key="i" />
1261
- <!-- <contract-file-drag-upload
1262
- @upload="
1263
- handleUpload(
1264
- $event,
1265
- shipmentFileInfo.shipmentId,
1266
- 'shipment',
1267
- 'shipment_delivery_receipt'
1268
- )
1269
- "
1270
- :isShowTip="false"
1271
- /> -->
1272
1263
  </div>
1273
1264
  <!-- <div v-else class="center-status">
1274
1265
  <i class="el-icon-time"></i>
@@ -1278,7 +1269,7 @@
1278
1269
  </div>
1279
1270
  </div>
1280
1271
  </template>
1281
- </SectionSlot>
1272
+ </SectionSlot>
1282
1273
  </div>
1283
1274
 
1284
1275
  <deposit-invoice ref="depositInvoice"></deposit-invoice>
@@ -1317,6 +1308,7 @@
1317
1308
  :getContractFileInfoCallback="getContractFileInfoCallback"
1318
1309
  ></shipment-purchase-amount>
1319
1310
  </div>
1311
+ </div>
1320
1312
  </template>
1321
1313
 
1322
1314
  <script>
@@ -1360,6 +1352,7 @@ import ContentTitle from './contractFile/ContentTitle.vue';
1360
1352
  import IMGPreviewCheckBox from './contractFile/IMGPreviewCheckBox.vue'
1361
1353
  import BillOfLadingNoTab from './contractFile/BillOfLadingNoTab.vue'
1362
1354
  import ShowAndHide from './contractFile/ShowAndHide.vue'
1355
+ import { delBizFileInfo } from '../../../api/biz/bizFileInfo'
1363
1356
 
1364
1357
  let handleGenerateflag = false;
1365
1358
  let handleGenerateflag1 = false;
@@ -1400,12 +1393,12 @@ export default {
1400
1393
  type: Boolean,
1401
1394
  default: true,
1402
1395
  },
1403
- selectFileListProp: {
1404
- type: Array,
1405
- default: () => {
1406
- return [];
1407
- },
1408
- },
1396
+ // selectFileListProp: {
1397
+ // type: Array,
1398
+ // default: () => {
1399
+ // return [];
1400
+ // },
1401
+ // },
1409
1402
  },
1410
1403
  data() {
1411
1404
  return {
@@ -1514,6 +1507,7 @@ export default {
1514
1507
  url: null,
1515
1508
  ext: null,
1516
1509
  },
1510
+ selectFileList: [],
1517
1511
  // 表单参数
1518
1512
  form: {},
1519
1513
  //上传表单
@@ -1549,6 +1543,65 @@ export default {
1549
1543
  },
1550
1544
  mounted() { },
1551
1545
  methods: {
1546
+ // 装运模块状态变化,需要同步关联模块
1547
+ handleShippingUpdateOpen(isOpen) {
1548
+ console.log(this.$refs.SectionReceiving)
1549
+ console.log(this.$refs.SectionClaim)
1550
+ console.log(this.$refs.SectionCNDN)
1551
+
1552
+ this.$refs.SectionReceiving[0]?.setOpen(isOpen)
1553
+ this.$refs.SectionClaim[0]?.setOpen(isOpen)
1554
+ this.$refs.SectionCNDN?.setOpen(isOpen)
1555
+ },
1556
+ handleScroll(elementId) {
1557
+ document.getElementById(elementId).scrollIntoView()
1558
+ },
1559
+ /**
1560
+ * @description: 取消全部选择
1561
+ * @return {*}
1562
+ */
1563
+ cancelAll() {
1564
+ this.cancelAllSelectFileList()
1565
+ },
1566
+
1567
+ /**
1568
+ * @description: 全部下载
1569
+ * @return {*}
1570
+ */
1571
+ downLoadAll() {
1572
+ if (this.selectFileList.length == 0) {
1573
+ return this.$message.warning(this.$t('contractDetail.please_select_file'))
1574
+ }
1575
+ this.downloadZip()
1576
+ },
1577
+
1578
+ deleteAll() {
1579
+ console.log('==delBizFileInfo==', this.selectFileList)
1580
+ if (this.selectFileList.length == 0) {
1581
+ return this.$message.warning(this.$t('contractDetail.please_select_file'))
1582
+ }
1583
+
1584
+ this.$confirm('是否删除选中文件', '提示', {
1585
+ confirmButtonText: '确定',
1586
+ cancelButtonText: '取消',
1587
+ type: 'warning'
1588
+ })
1589
+ .then(() => {
1590
+ const ids = this.selectFileList.map((item) => item.fileId)
1591
+ delBizFileInfo(ids).then(() => {
1592
+ this.$message.success('删除成功')
1593
+ this.handleRefresh()
1594
+ })
1595
+ })
1596
+ .catch(() => {
1597
+ this.$message.info('已取消删除')
1598
+ })
1599
+ },
1600
+
1601
+ draftBillOfLadingUrl(shipmentFileInfo) {
1602
+ return shipmentFileInfo && shipmentFileInfo.draftBillOfLading && shipmentFileInfo.draftBillOfLading[0] && shipmentFileInfo.draftBillOfLading[0].url
1603
+ },
1604
+
1552
1605
  /**
1553
1606
  * @description:
1554
1607
  * @param {*} info
@@ -1562,11 +1615,19 @@ export default {
1562
1615
  }
1563
1616
  },
1564
1617
 
1565
- allSelectContainerPackingPhoto(containerId) {
1566
- this.$refs['container_packing_photo_' + containerId][0].checkAll1()
1618
+ // allSelectContainerPackingPhoto(containerId) {
1619
+ // this.$refs['container_packing_photo_' + containerId][0].checkAll1()
1620
+ // },
1621
+ // cancelContainerPackingPhoto(containerId) {
1622
+ // this.$refs['container_packing_photo_' + containerId][0].cancelAll1()
1623
+ // },
1624
+
1625
+ clickSelectAllContainer(containerId) {
1626
+ return this.$refs['container_packing_photo_' + containerId][0].clickSelectAll()
1567
1627
  },
1568
- cancelContainerPackingPhoto(containerId) {
1569
- this.$refs['container_packing_photo_' + containerId][0].cancelAll1()
1628
+
1629
+ hasSelectAllContainer(containerId) {
1630
+ return this.$refs['container_packing_photo_' + containerId] && this.$refs['container_packing_photo_' + containerId][0].hasSelectAll()
1570
1631
  },
1571
1632
 
1572
1633
  changeShipBillNo(index) {
@@ -2111,12 +2172,15 @@ export default {
2111
2172
  this.setRate(this.shipBillNo)
2112
2173
  });
2113
2174
  },
2114
- handleHistory(fileType) {
2175
+ // 合同 定金发票 尾款发票 装箱单 不需要传 visible=false,其余的均需要传
2176
+ handleHistory(fileType, linkId, visible) {
2177
+ console.log('handleHistory', fileType, linkId, visible)
2115
2178
  this.$router.push({
2116
2179
  path: '/contract/file/history',
2117
2180
  query: {
2118
- linkId: this.linkId,
2181
+ linkId: linkId,
2119
2182
  fileType: fileType,
2183
+ visible: visible === false ? "0" : null,
2120
2184
  },
2121
2185
  });
2122
2186
  },
@@ -2255,6 +2319,19 @@ export default {
2255
2319
  },
2256
2320
  },
2257
2321
  computed: {
2322
+ personalBillFileInfo: function() {
2323
+ if (this.contractFileInfo.bliFileInfoList && this.contractFileInfo.bliFileInfoList.length > 0) {
2324
+ return this.contractFileInfo.bliFileInfoList[0].personalBillFileInfo
2325
+ }
2326
+ return null
2327
+ },
2328
+ latestBillFileInfo: function() {
2329
+ if (this.contractFileInfo.bliFileInfoList && this.contractFileInfo.bliFileInfoList.length > 0) {
2330
+ return this.contractFileInfo.bliFileInfoList[0].latestBillFileInfo
2331
+ }
2332
+ return null
2333
+ },
2334
+
2258
2335
  // 销售获取最新的尾款发票
2259
2336
  getNewInfo() {
2260
2337
  // 时间比较
@@ -2331,13 +2408,13 @@ export default {
2331
2408
  },
2332
2409
  },
2333
2410
  watch: {
2334
- selectFileListProp: {
2335
- handler(val) {
2336
- this.selectFileList = val
2337
- },
2338
- immediate: true,
2339
- deep: true
2340
- },
2411
+ // selectFileListProp: {
2412
+ // handler(val) {
2413
+ // this.selectFileList = val
2414
+ // },
2415
+ // immediate: true,
2416
+ // deep: true
2417
+ // },
2341
2418
  },
2342
2419
  destroyed() {
2343
2420
  clearTimeout(this.timer);
@@ -2354,15 +2431,18 @@ export default {
2354
2431
  }
2355
2432
 
2356
2433
  .progress-root {
2434
+ padding: 0 20px;
2357
2435
  display: flex;
2436
+ height: 60px;
2437
+ background-color: white;
2438
+ width: 100%;
2439
+ align-items: center;
2358
2440
  }
2359
2441
 
2360
2442
  .selection-root {
2361
2443
  display: flex;
2362
- margin-top: 26px;
2363
2444
  justify-content: flex-start;
2364
2445
  align-items: center;
2365
- margin-bottom: 20px;
2366
2446
  }
2367
2447
 
2368
2448
  .border-button {
@@ -2380,9 +2460,18 @@ export default {
2380
2460
  cursor: pointer;
2381
2461
  }
2382
2462
 
2463
+ .border-button-blue {
2464
+ background-color: #54B8FF;
2465
+ color: white;
2466
+ border: 0;
2467
+ line-height: 21px;
2468
+ }
2469
+
2383
2470
  .border-button-share {
2384
- background: #84db4c;
2385
- border: 2px solid transparent;
2471
+ margin-right: 5px;
2472
+ background-color: #84db4c;
2473
+ border: 0;
2474
+ line-height: 21px;
2386
2475
  }
2387
2476
 
2388
2477
  .slot-content {
@@ -2408,6 +2497,26 @@ export default {
2408
2497
  }
2409
2498
  }
2410
2499
 
2500
+ .selection-root {
2501
+ margin-left: 16px;
2502
+ display: flex;
2503
+ flex-direction: row;
2504
+ align-items: center;
2505
+ margin-right: 16px;
2506
+ }
2507
+
2508
+ // .border-button {
2509
+ // padding: 0 10px;
2510
+ // width: max-content;
2511
+ // height: 21px;
2512
+ // text-align: center;
2513
+ // line-height: 17px;
2514
+ // background: #ffffff;
2515
+ // border-radius: 11px;
2516
+ // font-size: 12px;
2517
+ // border: 2px solid #d1d3d4;
2518
+ // cursor: pointer;
2519
+ // }
2411
2520
 
2412
2521
  .content-root {
2413
2522
  overflow: hidden;