doctor-admin-components 1.0.13-beta.70 → 1.0.13-beta.72

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.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "doctor-admin-components",
3
3
  "version1": "1.0.11",
4
- "version": "1.0.13-beta.70",
4
+ "version": "1.0.13-beta.72",
5
5
  "private": false,
6
6
  "main1": "lib/index.umd.min.js",
7
7
  "main": "packages/index.js",
@@ -9,6 +9,14 @@ export function listBizContract(query) {
9
9
  });
10
10
  }
11
11
 
12
+ // 查询合同的提单指令列表
13
+ export function getContractBlList(contractId) {
14
+ return request({
15
+ url: "/biz/contract/blList/" + contractId,
16
+ method: "get",
17
+ });
18
+ }
19
+
12
20
  // 合同追踪列表
13
21
  export function listContractTrace(query) {
14
22
  return request({
@@ -60,6 +60,15 @@ export function addWithContainer(data) {
60
60
  })
61
61
  }
62
62
 
63
+ // 装运校验: 传提单号和订舱号
64
+ export function addContainerCheck(data) {
65
+ return request({
66
+ url: '/biz/shipment/checkShipment',
67
+ method: 'post',
68
+ data: data
69
+ })
70
+ }
71
+
63
72
  // 修改装运
64
73
  export function updateBizShipment(data) {
65
74
  return request({
@@ -118,3 +127,12 @@ export function getByContractId(contractId) {
118
127
  method: 'get'
119
128
  })
120
129
  }
130
+
131
+ // 查询作废的装运销售合同列表
132
+ export function haveVoidShipment(query) {
133
+ return request({
134
+ url: '/biz/contract/haveVoidShipment/list',
135
+ method: 'get',
136
+ params: query
137
+ })
138
+ }
@@ -35,6 +35,11 @@ export default {
35
35
  default: null,
36
36
  },
37
37
  value: [Number, String, Array],
38
+ // 自定义拼接字符
39
+ appendCallback: {
40
+ type: Function,
41
+ default: null
42
+ }
38
43
  },
39
44
  computed: {
40
45
  values() {
@@ -51,8 +56,13 @@ export default {
51
56
  },
52
57
  methods: {
53
58
  getName(item) {
54
- return this.isChina ? item?.label : item?.raw?.dictLabelEn;
55
- },
59
+ var str = this.isChina ? item?.label : item?.raw?.dictLabelEn
60
+ var append = this.appendCallback ? this.appendCallback() : null
61
+ if (append) {
62
+ str += append
63
+ }
64
+ return str
65
+ }
56
66
  },
57
67
  };
58
68
  </script>
@@ -125,8 +125,8 @@
125
125
  "Contract_Status": "合同状态",
126
126
  "BLConfirm": "BLI确认",
127
127
  "BL_No": "提单号:",
128
- "BL_Not_Confirm": "提单未确认",
129
- "BL_Confirmed": "提单已确认",
128
+ "BL_Not_Confirm": "BLI未确认",
129
+ "BL_Confirmed": "BLI已确认",
130
130
  "BL_info_confirmed": "提单信息已确认",
131
131
  "bl_draft_confirm": "确认提单草稿",
132
132
  "editBLInformation": "编辑提单信息",
@@ -1,7 +1,12 @@
1
1
  <template>
2
2
  <div class="app-container">
3
3
  <!-- 添加或修改装运对话框 -->
4
- <el-dialog :title="title" :visible.sync="open" width="80%" :before-close="handleClose">
4
+ <el-dialog :visible.sync="open" z-index="1000" width="80%" :before-close="handleClose">
5
+ <slot name="">
6
+ <span>{{ title }}</span>
7
+ <span v-if="voidInvoiceList" style="color: red">【快捷转卖】:系统检测到此销售合同关联的采购合同存在【已作废】的装运,</span>
8
+ <el-button v-if="voidInvoiceList" @click="handleReference" size="mini" type="text">点击这里直接复制并引用</el-button>
9
+ </slot>
5
10
  <el-form ref="form" :model="form" :rules="rules" label-position="right" label-width="80px">
6
11
  <el-row>
7
12
  <el-col :span="6">
@@ -428,26 +433,33 @@
428
433
  </el-dialog>
429
434
 
430
435
  <select-booking ref="selectBooking" @submit="setBooking" @unSubmit="unSetBooking" />
436
+ <!-- 引用装运 -->
437
+ <reference-alert @referenced="handleReferenced" ref="referenceAlert" />
431
438
  </div>
432
439
  </template>
433
440
 
434
441
  <script>
435
- import { listBizShipment, getBizShipment, delBizShipment, addWithContainer, updateWithContainer, updateWithContainerAndInvoice } from '../../../api/biz/bizShipment'
442
+ import { haveVoidShipment, listBizShipment, getBizShipment, delBizShipment, addWithContainer, addContainerCheck, updateWithContainer, updateWithContainerAndInvoice } from '../../../api/biz/bizShipment'
436
443
  import { generateFinalInvoiceByShipmentId } from '../../../api/biz/bizInvoice'
437
444
  import { updateBizContractDetail } from '../../../api/biz/bizContractDetail'
438
445
  import { Loading } from 'element-ui'
439
446
  import { listDictData } from '../../../api/biz/dictData'
440
447
  import selectBooking from './selectBooking.vue'
441
448
  import { listBizBooking } from '../../../api/biz/bizBooking'
449
+ import ReferenceAlert from './referenceAlert.vue'
450
+ import { MessageBox } from 'element-ui'
442
451
 
443
452
  export default {
444
453
  name: 'AddShipment',
445
454
  dicts: ['shipping_company'],
446
455
  components: {
447
- selectBooking
456
+ selectBooking,
457
+ ReferenceAlert,
448
458
  },
449
459
  data() {
450
460
  return {
461
+ // 已作废的装运合同
462
+ voidInvoiceList: null,
451
463
  //目的地港口列表
452
464
  destinationPortList: [],
453
465
  //折叠面板
@@ -572,6 +584,20 @@ export default {
572
584
  }
573
585
  },
574
586
  methods: {
587
+ // 已用的数据,赋值给form
588
+ handleReferenced(data) {
589
+ //shipment, copyFileTypeList
590
+ this.form = {...this.form, ...data.shipment}
591
+ this.form.contractIds = [data.shipment.saleContractId]
592
+ // 需要去掉shipmentId
593
+ this.form.shipmentId = null
594
+ this.form.citeShipmentId = data.shipment.shipmentId
595
+ this.form.copyFileTypeList = data.copyFileTypeList
596
+ },
597
+ //引用已作废的装运
598
+ handleReference() {
599
+ this.$refs.referenceAlert.handleOpen(this.voidInvoiceList)
600
+ },
575
601
  //编辑开关
576
602
  openEditSwitch() {
577
603
  this.editSwitch = this.editSwitch = true
@@ -889,6 +915,13 @@ export default {
889
915
  .catch((error) => {
890
916
  console.error(error)
891
917
  })
918
+ // 查询是否有可引用的
919
+ haveVoidShipment({contractId: contract.id})
920
+ .then((res) => {
921
+ this.voidInvoiceList = res.rows && res.rows.length > 0 ? res.rows : null
922
+ })
923
+ // 测试数据
924
+ // this.voidInvoiceList = [{'contractId': '1', 'contractNo':'合同号1'}]
892
925
  },
893
926
  /** 修改按钮操作 */
894
927
  handleUpdate(row) {
@@ -1003,7 +1036,12 @@ export default {
1003
1036
  })
1004
1037
  },
1005
1038
  //仅生成装运
1006
- submitShipment() {
1039
+ async submitShipment() {
1040
+ // 装运前校验
1041
+ let resOK = await this.checkPreShipment()
1042
+ if (!resOK) {
1043
+ return
1044
+ }
1007
1045
  this.$refs['form'].validate((valid) => {
1008
1046
  if (valid) {
1009
1047
  let loadingInstance = Loading.service({
@@ -1046,7 +1084,12 @@ export default {
1046
1084
  })
1047
1085
  },
1048
1086
  //装运并下载
1049
- handleTemplate(command) {
1087
+ async handleTemplate() {
1088
+ // 装运前校验
1089
+ let resOK = await this.checkPreShipment()
1090
+ if (!resOK) {
1091
+ return
1092
+ }
1050
1093
  this.submitAndDownload(command)
1051
1094
  },
1052
1095
  //提交并下载
@@ -1102,8 +1145,29 @@ export default {
1102
1145
  fileName
1103
1146
  )
1104
1147
  },
1148
+ // 装运前校验
1149
+ async checkPreShipment() {
1150
+ let res = await addContainerCheck({
1151
+ 'billOfLadingNo': this.form.billOfLadingNo,
1152
+ 'bookingNo': this.form.bookingNo
1153
+ })
1154
+ if (!res.data.checkShipmentTip) {
1155
+ return true
1156
+ }
1157
+ let result = await MessageBox.confirm(res.data.checkShipmentTip, '提示', {
1158
+ confirmButtonText: '确定',
1159
+ cancelButtonText: '取消',
1160
+ type: 'warning'
1161
+ }).catch(err => err)
1162
+ return result === 'confirm'
1163
+ },
1105
1164
  /** 提交按钮 */
1106
- submitForm() {
1165
+ async submitForm() {
1166
+ // 装运前校验
1167
+ let resOK = await this.checkPreShipment()
1168
+ if (!resOK) {
1169
+ return
1170
+ }
1107
1171
  this.$refs['form'].validate((valid) => {
1108
1172
  if (valid) {
1109
1173
  let loadingInstance = Loading.service({
@@ -0,0 +1,167 @@
1
+ <template>
2
+ <div class>
3
+ <el-dialog :title="title" :visible.sync="open" width="75%" append-to-body>
4
+ <el-form ref="form" :model="form" label-width="100%">
5
+ <el-form-item class="vertical-form-item" :required="true" label="请选择您需要复制的装运:">
6
+ <el-row> 合同号 </el-row>
7
+ <el-row>
8
+ <el-select @change="selectContract" v-model="contractId" placeholder="请选择合同号">
9
+ <el-option v-for="(item, i) in shipmentList" :key="i" :label="item.contractNo" :value="item.contractId"></el-option>
10
+ </el-select>
11
+ </el-row>
12
+ <el-row v-if="contractId" style="padding-top: 15px"> 提单号 </el-row>
13
+ <el-row v-if="contractId">
14
+ <el-radio-group v-model="form.citeShipmentId">
15
+ <div v-for="(item, i) in blList" :key="i">
16
+ <el-radio :label="item.shipmentId">
17
+ <span>{{ item.billOfLadingNo }}</span>
18
+ <span v-if="item.citeNumber">(</span>
19
+ <span v-if="item.citeNumber" style="color: red">已被引用过{{ item.citeNumber }}次</span>
20
+ <span v-if="item.citeNumber">)</span>
21
+ </el-radio>
22
+ </div>
23
+ </el-radio-group>
24
+ </el-row>
25
+ </el-form-item>
26
+
27
+ <el-form-item class="vertical-form-item" :required="true" label="请选择您需要复制的数据或文件:">
28
+ <el-row> 可复用的文件如下: </el-row>
29
+ <el-row>
30
+ <el-checkbox v-model="isSelectAll" @change="selectAll" label="0">选择全部</el-checkbox>
31
+ </el-row>
32
+ <el-row>
33
+ <el-checkbox-group @change="selectChange" v-model="form.copyFileTypeList">
34
+ <el-checkbox v-for="(item, i) in fileList" :key="i" :label="item.key">{{ item.value }}</el-checkbox>
35
+ </el-checkbox-group>
36
+ </el-row>
37
+ </el-form-item>
38
+ </el-form>
39
+ <div slot="footer" class="dialog-footer">
40
+ <el-button @click="cancel">取 消</el-button>
41
+ <el-button type="primary" @click="submitForm">确 定</el-button>
42
+ </div>
43
+ </el-dialog>
44
+ </div>
45
+ </template>
46
+
47
+ <script>
48
+ import { listBizShipment, getBizShipment } from '../../../api/biz/bizShipment'
49
+
50
+ export default {
51
+ name: 'ReferenceAlert',
52
+ props: {},
53
+ components: {},
54
+ data() {
55
+ return {
56
+ // 弹出层标题
57
+ title: '请确认:',
58
+ // 是否显示弹出层
59
+ open: false,
60
+ // 表单参数
61
+ form: {
62
+ citeShipmentId: null,
63
+ copyFileTypeList: [] // 可复用的文件
64
+ },
65
+ // 选择的合同
66
+ contractId: null,
67
+ // 可引用的数据(销售合同列表)
68
+ shipmentList: null,
69
+ // 合同对应的提单列表
70
+ blList: null,
71
+ isSelectAll: false,
72
+ fileList: [
73
+ { key: 'booking_data', value: '订舱资料' },
74
+ { key: 'packingPhoto', value: '装箱照片' },
75
+ { key: 'draft_bill_of_lading', value: '草稿提单' },
76
+ { key: 'shipment_delivery_receipt', value: '正式提单' }
77
+ ]
78
+ }
79
+ },
80
+ computed: {},
81
+ watch: {},
82
+ methods: {
83
+ selectAll(val) {
84
+ if (val) {
85
+ this.form.copyFileTypeList = this.fileList.map((res) => res.key)
86
+ } else {
87
+ this.form.copyFileTypeList = []
88
+ }
89
+ },
90
+ selectChange(val) {
91
+ this.isSelectAll = this.form.copyFileTypeList.length == 4
92
+ },
93
+ selectContract(val) {
94
+ this.blList = null
95
+ // 获取提单
96
+ listBizShipment({ saleContractId: val }).then((res) => {
97
+ this.blList = res.rows
98
+ })
99
+ },
100
+
101
+ /** 提交按钮 */
102
+ submitForm() {
103
+ // 数据校验
104
+ if (!this.contractId) {
105
+ return this.$modal.msgError('请选择合同号')
106
+ }
107
+ if (!this.form.citeShipmentId) {
108
+ return this.$modal.msgError('请选择提单号')
109
+ }
110
+ if (this.form.copyFileTypeList.length == 0) {
111
+ return this.$modal.msgError('请选择您需要复制的数据或文件')
112
+ }
113
+ // 获取详情数据
114
+ const loading = this.openLoading()
115
+ getBizShipment(this.form.citeShipmentId).then((res) => {
116
+ loading.close()
117
+ if (res.code == 200) {
118
+ // 回传数据
119
+ let shipment = res.data
120
+ this.$emit('referenced', { shipment: shipment, copyFileTypeList: this.form.copyFileTypeList })
121
+ this.open = false
122
+ }
123
+ })
124
+ },
125
+ /** 展示按钮操作 */
126
+ handleOpen(shipmentList) {
127
+ this.reset()
128
+ this.shipmentList = shipmentList
129
+ this.open = true
130
+ console.log('shipmentList', shipmentList)
131
+ },
132
+ // 取消按钮
133
+ cancel() {
134
+ this.open = false
135
+ this.reset()
136
+ },
137
+ // 表单重置
138
+ reset() {
139
+ this.shipmentList = null
140
+ this.form = {
141
+ citeShipmentId: null,
142
+ copyFileTypeList: [] // 可复用的文件
143
+ }
144
+ this.contractId = null
145
+ this.isSelectAll = false
146
+ this.blList = null
147
+ }
148
+ },
149
+ computed: {}
150
+ }
151
+ </script>
152
+ <style lang="scss" scoped>
153
+ // 修改为上下布局
154
+ .vertical-form-item {
155
+ display: block;
156
+ }
157
+ ::v-deep .vertical-form-item .el-form-item__label {
158
+ text-align: left;
159
+ display: block;
160
+ margin-bottom: 5px !important; /* 根据需要调整间距 */
161
+ }
162
+
163
+ ::v-deep .vertical-form-item .el-form-item__content {
164
+ display: block;
165
+ margin-left: 5px !important; /* 重置默认的margin-left,因为标签和输入控件不再水平排列 */
166
+ }
167
+ </style>
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <div>
3
- <div v-if="saleContract && saleContract.submitFlag">
3
+ <div v-if="billData && billData.submitFlag">
4
4
  <div class="info" id="printPdf" v-if="!printModel">
5
5
  <el-form :model="form" ref="form" size="mini" :rules="rules">
6
6
  <div v-if="form.shipperFlag">
@@ -49,9 +49,10 @@
49
49
  </div>
50
50
  <el-row>
51
51
  <el-col :span="22">
52
- <div class="sub-title mb20">{{ $t('contract.consigneeInfo') }}</div>
52
+ <span class="sub-title mb20">{{ $t('contract.consigneeInfo') }}</span>
53
+ <span v-if="billData.blConfirmFlag == '2'" style="font-size: 16px;color: red; font-weight: bold;padding-left: 10px;"> 已作废 </span>
53
54
  </el-col>
54
- <el-col :span="2">
55
+ <el-col v-if="billData.blConfirmFlag != '2'" :span="2">
55
56
  <el-button type="text" @click="editBill">
56
57
  {{ $t('contractDetail.edit') }}
57
58
  </el-button>
@@ -291,13 +292,13 @@
291
292
  </template>
292
293
 
293
294
  <script>
294
- import { getBizDealRecordByAskId, updateBizDealRecord } from '../../../api/biz/bizDealRecord'
295
+ // import { getBizDealRecordByAskId, updateBizDealRecord } from '../../../api/biz/bizDealRecord'
295
296
  import { exportPdf } from '../../../utils/pdf'
296
297
  import { listBizContractCompany } from '../../../api/biz/bizContractCompany'
297
298
  import BillPdf from './billPdf.vue'
298
299
  import { listCompanyBillGoods } from '../../../api/biz/bizCompanyBillGoods'
299
300
  import EditBill from './editBill.vue'
300
- import { getSaleContractInfo } from '../../../api/biz/bizContract'
301
+ // import { getSaleContractInfo } from '../../../api/biz/bizContract'
301
302
 
302
303
  export default {
303
304
  name: 'BillInfo',
@@ -309,13 +310,26 @@ export default {
309
310
  channel: {
310
311
  type: String,
311
312
  default: ''
313
+ },
314
+ // 提单指令数据
315
+ billData: {
316
+ type: Object,
317
+ default: null
312
318
  }
313
319
  },
314
320
  components: { BillPdf, EditBill },
321
+ watch: {
322
+ billData: {
323
+ handler(val) {
324
+ this.getDealRecord(this.contract.askId)
325
+ },
326
+ immediate: true,
327
+ }
328
+ },
315
329
  data() {
316
330
  return {
317
331
  //
318
- saleContract: null,
332
+ // saleContract: null,
319
333
  // 遮罩层
320
334
  loading: true,
321
335
  // 弹出层标题
@@ -359,19 +373,21 @@ export default {
359
373
  if (printModel == 1) {
360
374
  this.printModel = true
361
375
  }
362
- this.getSaleContractInfo(this.contract.dealId)
376
+ // this.getSaleContractInfo(this.contract.dealId)
363
377
  },
364
378
  methods: {
365
- getSaleContractInfo(dealId) {
366
- getSaleContractInfo(dealId).then((res) => {
367
- this.saleContract = res.data
368
- })
369
- },
379
+ // getSaleContractInfo(dealId) {
380
+ // getSaleContractInfo(dealId).then((res) => {
381
+ // this.saleContract = res.data
382
+ // })
383
+ // },
370
384
  edit() {
371
- this.getDealRecord(this.contract.askId)
385
+ // this.getDealRecord(this.contract.askId)
386
+ // 通知外层刷新数据
387
+ this.$emit('refresh')
372
388
  },
373
389
  editBill() {
374
- this.$refs.editBill.handleEdit(this.contract.contractId, this.form.dealId)
390
+ this.$refs.editBill.handleEdit(this.billData.contractId, this.form.dealId)
375
391
  },
376
392
  //子公司更新
377
393
  changeSubCompanyList() {
@@ -437,7 +453,7 @@ export default {
437
453
  //成交没收货人公司取默认 否则取收货人公司信息
438
454
  if (!this.form.deliveryCompanyId && defaultDeliveryCompany) {
439
455
  this.form.deliveryCompanyId = defaultDeliveryCompany.contractCompanyId
440
- this.form.deliveryCompany = defaultDeliveryCompany
456
+ this.$set(this.form, 'deliveryCompany', defaultDeliveryCompany)
441
457
  } else {
442
458
  const deliveryCompany = contractCompanyList.find((item) => item.contractCompanyId == this.form.deliveryCompanyId)
443
459
  this.$set(this.form, 'deliveryCompany', deliveryCompany)
@@ -446,7 +462,7 @@ export default {
446
462
  //成交没通知人公司取默认 否则取通知人公司信息
447
463
  if (!this.form.notifierCompanyId && notifierDeliveryCompany) {
448
464
  this.form.notifierCompanyId = notifierDeliveryCompany.contractCompanyId
449
- this.form.notifierCompany = notifierDeliveryCompany
465
+ this.$set(this.form, 'notifierCompany', notifierDeliveryCompany)
450
466
  } else {
451
467
  const notifierCompany = contractCompanyList.find((item) => item.contractCompanyId == this.form.notifierCompanyId)
452
468
  this.$set(this.form, 'notifierCompany', notifierCompany)
@@ -531,26 +547,27 @@ export default {
531
547
  this.resetForm('form')
532
548
  },
533
549
  getDealRecord(askId) {
534
- this.loading = false
535
- this.reset()
536
- getBizDealRecordByAskId(askId).then((response) => {
537
- this.form = response.data
538
- if (this.form.buyerCompanyBillGoods) {
550
+ // 使用新接口,传递进来的数据!
551
+ this.form = this.billData
552
+ // this.loading = false
553
+ // this.reset()
554
+ // getBizDealRecordByAskId(askId).then((response) => {
555
+ // this.form = response.data
556
+ if (this.form.buyerCompanyBillGoods && (typeof this.form.buyerCompanyBillGoods === String)) {
539
557
  this.form.buyerCompanyBillGoods = JSON.parse(this.form.buyerCompanyBillGoods)
540
558
  } else {
541
559
  this.form.buyerCompanyBillGoods = []
542
560
  this.addBillGoods()
543
561
  }
544
-
545
562
  this.getContractCompanyList(this.form.buyerCompanyId)
546
563
  this.getCompanyBillGoods(this.form.buyerCompanyId)
547
- this.form.dealRecordDetailList.map((item) => {
548
- if (item.imageList) {
549
- item.askCover = item.imageList.toString()
550
- }
551
- })
552
- this.loading = true
553
- })
564
+ // this.form.dealRecordDetailList.map((item) => {
565
+ // if (item.imageList) {
566
+ // item.askCover = item.imageList.toString()
567
+ // }
568
+ // })
569
+ // this.loading = true
570
+ // })
554
571
  },
555
572
  /** 提交按钮 */
556
573
  submitForm() {
@@ -588,20 +605,20 @@ export default {
588
605
  this.download(
589
606
  'biz/contract/downBill',
590
607
  {
591
- contractId: this.contract.contractId,
608
+ contractId: this.billData.contractId,
592
609
  templateType: command
593
610
  },
594
- `${'BLI-' + this.contract.contractNo + '_' + this.parseTime(new Date(), '{y}{m}{d}')}.xlsx`
611
+ `${'BLI-' + this.billData.contractNo + '_' + this.parseTime(new Date(), '{y}{m}{d}')}.xlsx`
595
612
  )
596
613
  }
597
614
  if (command == 'PDF') {
598
615
  this.download(
599
616
  'biz/contract/downBill',
600
617
  {
601
- contractId: this.contract.contractId,
618
+ contractId: this.billData.contractId,
602
619
  templateType: command
603
620
  },
604
- `${'BLI-' + this.contract.contractNo + '_' + this.parseTime(new Date(), '{y}{m}{d}')}.pdf`
621
+ `${'BLI-' + this.billData.contractNo + '_' + this.parseTime(new Date(), '{y}{m}{d}')}.pdf`
605
622
  )
606
623
  }
607
624
  }
@@ -19,7 +19,7 @@
19
19
  <div>{{ contract.reference || '--' }}</div>
20
20
  </div>
21
21
  <div class="tab-root">
22
- <div :class="['tab', activeName == tabsItem.name ? 'active' : '']" v-for="tabsItem in (contract.contractType == 'sale' ? saleTabsArr : purchaseTabsArr) " :key="tabsItem.id" @click="changeTabs(tabsItem)">
22
+ <div :class="['tab', activeName == tabsItem.name ? 'active' : '']" v-for="tabsItem in saleTabsArr" :key="tabsItem.id" @click="changeTabs(tabsItem)">
23
23
  {{ tabsItem.label }}
24
24
  </div>
25
25
  </div>
@@ -36,11 +36,16 @@
36
36
  <div class="app-container-right">
37
37
  <contract-summary v-if="activeName == 'first'" :channel="channel"></contract-summary>
38
38
  <contract-info v-if="activeName == 'second'" :channel="channel"></contract-info>
39
-
40
- <bill-info :contract="contract" v-if="activeName == 'third'"
41
- :channel="channel"
42
- ></bill-info>
43
-
39
+ <!-- 提单指令 -->
40
+ <div v-if="activeName == 'third'">
41
+ <!-- 标题分栏 -->
42
+ <el-tabs v-model="activeBillIndex">
43
+ <el-tab-pane v-for="(bill, i) in blList" :key="i" :label="contract.contractNo+' 提单指令'" :name="i.toString()">
44
+ <bill-info @refresh="getBlList" :contract="contract" :billData="bill" :channel="channel"></bill-info>
45
+ </el-tab-pane>
46
+ </el-tabs>
47
+ </div>
48
+
44
49
  <contract-file
45
50
  v-if="activeName == 'fourth' && contract.contractType"
46
51
  :contract="contract"
@@ -94,7 +99,7 @@
94
99
  </template>
95
100
 
96
101
  <script>
97
- import { getBizContract } from '../../../api/biz/bizContract';
102
+ import { getBizContract, getContractBlList } from '../../../api/biz/bizContract';
98
103
  import ContractSummary from './contractSummary.vue';
99
104
  import BillInfo from './billInfo.vue';
100
105
  import ContractFile from '../bizFileInfo/contract.vue';
@@ -150,9 +155,14 @@ export default {
150
155
  }],
151
156
 
152
157
  selectFileList: [],
158
+ // 提单指令列表
159
+ blList: null,
160
+ activeBillIndex: null,
153
161
  };
154
162
  },
155
- computed: {},
163
+ computed: {
164
+
165
+ },
156
166
  watch: {},
157
167
  created() {
158
168
  const contractId = this.$route.params && this.$route.params.contractId;
@@ -219,8 +229,21 @@ export default {
219
229
  this.buyerFlag = this.contract?.contractNo
220
230
  ?.toLowerCase()
221
231
  ?.includes('arp');
232
+ // 获取提单指令
233
+ this.getBlList()
222
234
  });
223
235
  },
236
+ getBlList() {
237
+ const contractId = this.$route.params && this.$route.params.contractId;
238
+ getContractBlList(contractId).then((res) => {
239
+ this.blList = res.rows
240
+ // 默认选中第一个
241
+ if (!this.activeBillIndex) {
242
+ this.activeBillIndex = '0'
243
+ }
244
+ })
245
+ },
246
+
224
247
  handleClick(tab, event) {
225
248
  console.log(tab, event);
226
249
  },
@@ -4,10 +4,17 @@
4
4
  <div class="contract">
5
5
  <div class="info" id="printPdf">
6
6
  <!-- <div class="title">{{ $t("contract.billTip") }}</div> -->
7
- <div style="padding-bottom: 20px">
8
- <span style="font-size: 16px; font-weight: bold"> {{ $t('contractDetail.BLConfirm') + ':' }} </span>
9
- <el-switch v-model="confirmFlag" :inactive-text="$t('contractDetail.BL_Not_Confirm')" :active-text="$t('contractDetail.BL_Confirmed')"> </el-switch>
10
- </div>
7
+ <el-row>
8
+ <el-col :span="12" v-if="voidFlag">
9
+ <span style="font-size: 16px;color: red; font-weight: bold"> 已作废 </span>
10
+ </el-col>
11
+ <el-col :span="12" v-else>
12
+ <div style="padding-bottom: 20px">
13
+ <span style="font-size: 16px; font-weight: bold"> {{ $t('contractDetail.BLConfirm') + ':' }} </span>
14
+ <el-switch v-model="confirmFlag" :inactive-text="$t('contractDetail.BL_Not_Confirm')" :active-text="$t('contractDetail.BL_Confirmed')"> </el-switch>
15
+ </div>
16
+ </el-col>
17
+ </el-row>
11
18
  <el-form :model="form" ref="form" size="mini" :rules="rules" label-width="130px">
12
19
  <el-collapse v-model="expandItems">
13
20
  <el-collapse-item name="0" v-if="channel !== 'official-website'">
@@ -298,6 +305,8 @@ export default {
298
305
  open: false,
299
306
  // 是否已确认
300
307
  confirmFlag: false,
308
+ // 是否已作废
309
+ voidFlag: false,
301
310
  // 表单参数
302
311
  form: {
303
312
  //买家公司提单货物名称
@@ -379,7 +388,8 @@ export default {
379
388
  getBizContract(contractId)
380
389
  .then((response) => {
381
390
  this.contract = response.data
382
- this.confirmFlag = this.contract.blConfirmFlag ?? false
391
+ this.confirmFlag = this.contract.blConfirmFlag == '1'
392
+ this.voidFlag = this.contract.blConfirmFlag == '2'
383
393
  resolve(response) // 异步操作成功,解决Promise
384
394
  })
385
395
  .catch((error) => {
@@ -189,7 +189,8 @@ export default {
189
189
  },
190
190
  /** 查询合同公司记录列表 */
191
191
  getList() {
192
- const loading = this.$loading.service({
192
+ let loadingInstance = this.$loading || this.$loading.service
193
+ const loading = loadingInstance({
193
194
  lock: true,
194
195
  text: 'Loading',
195
196
  spinner: 'el-icon-loading',