doctor-admin-components 1.0.13-pro.0 → 1.0.14-beta.1
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/README.md +10 -2
- package/package.json +1 -1
- package/packages/index.js +16 -0
- package/packages/src/api/biz/bizContract.js +1005 -0
- package/packages/src/api/biz/bizFileInfo.js +16 -0
- package/packages/src/api/biz/bizInvoice.js +1 -1
- package/packages/src/api/biz/bizShipment.js +18 -0
- package/packages/src/assets/images/click-show-table.png +0 -0
- package/packages/src/assets/images/more.png +0 -0
- package/packages/src/assets/images/pdf-new.png +0 -0
- package/packages/src/components/DictTag/index.vue +12 -2
- package/packages/src/components/FileUpload/contract-drag-new.vue +100 -11
- package/packages/src/i18n/en/message.json +305 -0
- package/packages/src/i18n/index.js +38 -0
- package/packages/src/i18n/zh-CN/message.json +305 -0
- package/packages/src/index.js +24 -1
- package/packages/src/utils/index.js +35 -0
- package/packages/src/views/biz/bizFileInfo/PAYMENT_VOUCHER(/"payment_voucher/", /"/344/273/230/346/254/276/345/207/255/350/257/201.ini" +222 -0
- package/packages/src/views/biz/bizFileInfo/contract copy.vue +1711 -0
- package/packages/src/views/biz/bizFileInfo/contract.vue +1783 -986
- package/packages/src/views/biz/bizFileInfo/contractFile/BillOfLadingNoTab.vue +114 -0
- package/packages/src/views/biz/bizFileInfo/contractFile/ContentTitle.vue +102 -0
- package/packages/src/views/biz/bizFileInfo/contractFile/IMGPreviewCheckBox.vue +308 -0
- package/packages/src/views/biz/bizFileInfo/contractFile/Progress.vue +85 -0
- package/packages/src/views/biz/bizFileInfo/contractFile/ProgressDetail.vue +123 -0
- package/packages/src/views/biz/bizFileInfo/contractFile/SectionSlot.vue +83 -0
- package/packages/src/views/biz/bizFileInfo/contractFile/ShowAndHide.vue +178 -0
- package/packages/src/views/biz/bizFileInfo/fileShow copy.vue +321 -0
- package/packages/src/views/biz/bizFileInfo/fileShow.vue +143 -47
- package/packages/src/views/biz/bizFileInfo/fileShowClaim.vue +1 -1
- package/packages/src/views/biz/bizShipment/add.vue +134 -29
- package/packages/src/views/biz/bizShipment/referenceAlert.vue +168 -0
- package/packages/src/views/biz/contractTracing/billInfo.vue +64 -40
- package/packages/src/views/biz/contractTracing/companyBanks.vue +228 -0
- package/packages/src/views/biz/contractTracing/contractInfo.vue +1 -1
- package/packages/src/views/biz/contractTracing/contractPdf.vue +7 -4
- package/packages/src/views/biz/contractTracing/contractSummary.vue +24 -18
- package/packages/src/views/biz/contractTracing/contractTracingDetail copy.vue +107 -0
- package/packages/src/views/biz/contractTracing/contractTracingDetail.vue +281 -31
- package/packages/src/views/biz/contractTracing/editBill.vue +22 -9
- package/packages/src/views/biz/contractTracing/purchaseInvoiceUpload.vue +153 -7
- package/packages/src/views/biz/contractTracing/shipmentPurchaseAmount.vue +14 -0
- package/packages/src/views/biz/contractTracing/subCompanyDialog.vue +8 -2
- package/packages/src/views/components/RegionPicker/Distpicker.vue +459 -0
- package/packages/src/views/components/RegionPicker/districts.js +4641 -0
- package/packages/src/views/test.vue +3 -3
|
@@ -0,0 +1,168 @@
|
|
|
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 v-if="contractId" 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, 'voidStatus': 1 }).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
|
+
console.log('form', this.form)
|
|
114
|
+
// 获取详情数据
|
|
115
|
+
const loading = this.openLoading()
|
|
116
|
+
getBizShipment(this.form.citeShipmentId).then((res) => {
|
|
117
|
+
loading.close()
|
|
118
|
+
if (res.code == 200) {
|
|
119
|
+
// 回传数据
|
|
120
|
+
let shipment = res.data
|
|
121
|
+
this.$emit('referenced', { shipment: shipment, copyFileTypeList: this.form.copyFileTypeList })
|
|
122
|
+
this.open = false
|
|
123
|
+
}
|
|
124
|
+
})
|
|
125
|
+
},
|
|
126
|
+
/** 展示按钮操作 */
|
|
127
|
+
handleOpen(shipmentList) {
|
|
128
|
+
this.reset()
|
|
129
|
+
this.shipmentList = shipmentList
|
|
130
|
+
this.open = true
|
|
131
|
+
console.log('shipmentList', shipmentList)
|
|
132
|
+
},
|
|
133
|
+
// 取消按钮
|
|
134
|
+
cancel() {
|
|
135
|
+
this.open = false
|
|
136
|
+
this.reset()
|
|
137
|
+
},
|
|
138
|
+
// 表单重置
|
|
139
|
+
reset() {
|
|
140
|
+
this.shipmentList = null
|
|
141
|
+
this.form = {
|
|
142
|
+
citeShipmentId: null,
|
|
143
|
+
copyFileTypeList: this.fileList.map((res) => res.key) // 可复用的文件
|
|
144
|
+
}
|
|
145
|
+
this.contractId = null
|
|
146
|
+
this.isSelectAll = true
|
|
147
|
+
this.blList = null
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
computed: {}
|
|
151
|
+
}
|
|
152
|
+
</script>
|
|
153
|
+
<style lang="scss" scoped>
|
|
154
|
+
// 修改为上下布局
|
|
155
|
+
.vertical-form-item {
|
|
156
|
+
display: block;
|
|
157
|
+
}
|
|
158
|
+
::v-deep .vertical-form-item .el-form-item__label {
|
|
159
|
+
text-align: left;
|
|
160
|
+
display: block;
|
|
161
|
+
margin-bottom: 5px !important; /* 根据需要调整间距 */
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
::v-deep .vertical-form-item .el-form-item__content {
|
|
165
|
+
display: block;
|
|
166
|
+
margin-left: 5px !important; /* 重置默认的margin-left,因为标签和输入控件不再水平排列 */
|
|
167
|
+
}
|
|
168
|
+
</style>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div>
|
|
3
|
-
<div v-if="
|
|
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
|
-
<
|
|
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>
|
|
@@ -246,9 +247,14 @@
|
|
|
246
247
|
</el-row>
|
|
247
248
|
</el-row>
|
|
248
249
|
|
|
249
|
-
<el-form-item :label="$t('contractDetail.destination') + ':'">{{
|
|
250
|
+
<el-form-item v-if="contract && contract.freightTerms && contract.freightTerms != 'EXW'" :label="$t('contractDetail.destination') + ':'">{{
|
|
251
|
+
contract.destination
|
|
252
|
+
}}</el-form-item>
|
|
253
|
+
<el-form-item v-else :label="'EXW Address' + ':'">{{ contract.exw }}</el-form-item>
|
|
250
254
|
|
|
251
|
-
<el-form-item :label="$t('contract.terminal') + ':'">{{
|
|
255
|
+
<el-form-item v-if="contract && contract.freightTerms && contract.freightTerms != 'EXW'" :label="$t('contract.terminal') + ':'">{{
|
|
256
|
+
form.terminal
|
|
257
|
+
}}</el-form-item>
|
|
252
258
|
|
|
253
259
|
<el-form-item :label="$t('contract.shippingMarks') + ':'">{{ form.shippingMark }}</el-form-item>
|
|
254
260
|
|
|
@@ -291,13 +297,13 @@
|
|
|
291
297
|
</template>
|
|
292
298
|
|
|
293
299
|
<script>
|
|
294
|
-
import { getBizDealRecordByAskId, updateBizDealRecord } from '../../../api/biz/bizDealRecord'
|
|
300
|
+
// import { getBizDealRecordByAskId, updateBizDealRecord } from '../../../api/biz/bizDealRecord'
|
|
295
301
|
import { exportPdf } from '../../../utils/pdf'
|
|
296
302
|
import { listBizContractCompany } from '../../../api/biz/bizContractCompany'
|
|
297
303
|
import BillPdf from './billPdf.vue'
|
|
298
304
|
import { listCompanyBillGoods } from '../../../api/biz/bizCompanyBillGoods'
|
|
299
305
|
import EditBill from './editBill.vue'
|
|
300
|
-
import { getSaleContractInfo } from '../../../api/biz/bizContract'
|
|
306
|
+
// import { getSaleContractInfo } from '../../../api/biz/bizContract'
|
|
301
307
|
|
|
302
308
|
export default {
|
|
303
309
|
name: 'BillInfo',
|
|
@@ -309,13 +315,26 @@ export default {
|
|
|
309
315
|
channel: {
|
|
310
316
|
type: String,
|
|
311
317
|
default: ''
|
|
318
|
+
},
|
|
319
|
+
// 提单指令数据
|
|
320
|
+
billData: {
|
|
321
|
+
type: Object,
|
|
322
|
+
default: null
|
|
312
323
|
}
|
|
313
324
|
},
|
|
314
325
|
components: { BillPdf, EditBill },
|
|
326
|
+
watch: {
|
|
327
|
+
billData: {
|
|
328
|
+
handler(val) {
|
|
329
|
+
this.getDealRecord(this.contract.askId)
|
|
330
|
+
},
|
|
331
|
+
immediate: true
|
|
332
|
+
}
|
|
333
|
+
},
|
|
315
334
|
data() {
|
|
316
335
|
return {
|
|
317
336
|
//
|
|
318
|
-
saleContract: null,
|
|
337
|
+
// saleContract: null,
|
|
319
338
|
// 遮罩层
|
|
320
339
|
loading: true,
|
|
321
340
|
// 弹出层标题
|
|
@@ -359,19 +378,21 @@ export default {
|
|
|
359
378
|
if (printModel == 1) {
|
|
360
379
|
this.printModel = true
|
|
361
380
|
}
|
|
362
|
-
this.getSaleContractInfo(this.contract.dealId)
|
|
381
|
+
// this.getSaleContractInfo(this.contract.dealId)
|
|
363
382
|
},
|
|
364
383
|
methods: {
|
|
365
|
-
getSaleContractInfo(dealId) {
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
},
|
|
384
|
+
// getSaleContractInfo(dealId) {
|
|
385
|
+
// getSaleContractInfo(dealId).then((res) => {
|
|
386
|
+
// this.saleContract = res.data
|
|
387
|
+
// })
|
|
388
|
+
// },
|
|
370
389
|
edit() {
|
|
371
|
-
this.getDealRecord(this.contract.askId)
|
|
390
|
+
// this.getDealRecord(this.contract.askId)
|
|
391
|
+
// 通知外层刷新数据
|
|
392
|
+
this.$emit('refresh')
|
|
372
393
|
},
|
|
373
394
|
editBill() {
|
|
374
|
-
this.$refs.editBill.handleEdit(this.
|
|
395
|
+
this.$refs.editBill.handleEdit(this.billData.contractId, this.form.dealId)
|
|
375
396
|
},
|
|
376
397
|
//子公司更新
|
|
377
398
|
changeSubCompanyList() {
|
|
@@ -437,7 +458,7 @@ export default {
|
|
|
437
458
|
//成交没收货人公司取默认 否则取收货人公司信息
|
|
438
459
|
if (!this.form.deliveryCompanyId && defaultDeliveryCompany) {
|
|
439
460
|
this.form.deliveryCompanyId = defaultDeliveryCompany.contractCompanyId
|
|
440
|
-
this.form
|
|
461
|
+
this.$set(this.form, 'deliveryCompany', defaultDeliveryCompany)
|
|
441
462
|
} else {
|
|
442
463
|
const deliveryCompany = contractCompanyList.find((item) => item.contractCompanyId == this.form.deliveryCompanyId)
|
|
443
464
|
this.$set(this.form, 'deliveryCompany', deliveryCompany)
|
|
@@ -446,7 +467,7 @@ export default {
|
|
|
446
467
|
//成交没通知人公司取默认 否则取通知人公司信息
|
|
447
468
|
if (!this.form.notifierCompanyId && notifierDeliveryCompany) {
|
|
448
469
|
this.form.notifierCompanyId = notifierDeliveryCompany.contractCompanyId
|
|
449
|
-
this.form
|
|
470
|
+
this.$set(this.form, 'notifierCompany', notifierDeliveryCompany)
|
|
450
471
|
} else {
|
|
451
472
|
const notifierCompany = contractCompanyList.find((item) => item.contractCompanyId == this.form.notifierCompanyId)
|
|
452
473
|
this.$set(this.form, 'notifierCompany', notifierCompany)
|
|
@@ -531,26 +552,29 @@ export default {
|
|
|
531
552
|
this.resetForm('form')
|
|
532
553
|
},
|
|
533
554
|
getDealRecord(askId) {
|
|
534
|
-
|
|
535
|
-
this.
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
555
|
+
// 使用新接口,传递进来的数据!
|
|
556
|
+
this.form = this.billData
|
|
557
|
+
// this.loading = false
|
|
558
|
+
// this.reset()
|
|
559
|
+
// getBizDealRecordByAskId(askId).then((response) => {
|
|
560
|
+
// this.form = response.data
|
|
561
|
+
if (this.form.buyerCompanyBillGoods) {
|
|
562
|
+
if (typeof this.form.buyerCompanyBillGoods === 'string') {
|
|
539
563
|
this.form.buyerCompanyBillGoods = JSON.parse(this.form.buyerCompanyBillGoods)
|
|
540
|
-
} else {
|
|
541
|
-
this.form.buyerCompanyBillGoods = []
|
|
542
|
-
this.addBillGoods()
|
|
543
564
|
}
|
|
544
|
-
|
|
545
|
-
this.
|
|
546
|
-
this.
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
}
|
|
565
|
+
} else {
|
|
566
|
+
this.form.buyerCompanyBillGoods = []
|
|
567
|
+
this.addBillGoods()
|
|
568
|
+
}
|
|
569
|
+
this.getContractCompanyList(this.form.buyerCompanyId)
|
|
570
|
+
this.getCompanyBillGoods(this.form.buyerCompanyId)
|
|
571
|
+
// this.form.dealRecordDetailList.map((item) => {
|
|
572
|
+
// if (item.imageList) {
|
|
573
|
+
// item.askCover = item.imageList.toString()
|
|
574
|
+
// }
|
|
575
|
+
// })
|
|
576
|
+
// this.loading = true
|
|
577
|
+
// })
|
|
554
578
|
},
|
|
555
579
|
/** 提交按钮 */
|
|
556
580
|
submitForm() {
|
|
@@ -588,20 +612,20 @@ export default {
|
|
|
588
612
|
this.download(
|
|
589
613
|
'biz/contract/downBill',
|
|
590
614
|
{
|
|
591
|
-
contractId: this.
|
|
615
|
+
contractId: this.billData.contractId,
|
|
592
616
|
templateType: command
|
|
593
617
|
},
|
|
594
|
-
`${'BLI-' + this.
|
|
618
|
+
`${'BLI-' + this.billData.contractNo + '_' + this.parseTime(new Date(), '{y}{m}{d}')}.xlsx`
|
|
595
619
|
)
|
|
596
620
|
}
|
|
597
621
|
if (command == 'PDF') {
|
|
598
622
|
this.download(
|
|
599
623
|
'biz/contract/downBill',
|
|
600
624
|
{
|
|
601
|
-
contractId: this.
|
|
625
|
+
contractId: this.billData.contractId,
|
|
602
626
|
templateType: command
|
|
603
627
|
},
|
|
604
|
-
`${'BLI-' + this.
|
|
628
|
+
`${'BLI-' + this.billData.contractNo + '_' + this.parseTime(new Date(), '{y}{m}{d}')}.pdf`
|
|
605
629
|
)
|
|
606
630
|
}
|
|
607
631
|
}
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="bank-view-container">
|
|
3
|
+
<!-- 收款账户信息-展示(业务场景:生成收付款、收付款票据) -->
|
|
4
|
+
<el-row style="padding-top: 15px; padding-left: 10px">
|
|
5
|
+
<div style="font-size: 16px; color: #222222">收款账号信息</div>
|
|
6
|
+
<div style="padding-left: 30px; padding-top: 2px">
|
|
7
|
+
选择的收款账户信息会提供给财务进行打款/对账
|
|
8
|
+
</div>
|
|
9
|
+
</el-row>
|
|
10
|
+
<!-- 列表数据 -->
|
|
11
|
+
<div
|
|
12
|
+
v-for="(bankData, i) in bankList"
|
|
13
|
+
:key="i"
|
|
14
|
+
class="bank-container"
|
|
15
|
+
:class="{ 'bank-container-select': !disableSelect && sellectIndex == i, 'bank-container-unselect': disableSelect || sellectIndex != i }"
|
|
16
|
+
@click="clickSelct(i)"
|
|
17
|
+
>
|
|
18
|
+
<el-row style="padding-bottom: 20px">
|
|
19
|
+
<el-col :span="24">
|
|
20
|
+
<div class="bank-item" style="padding-top: 5px">Swift Code:{{ bankData.swiftCode }}</div>
|
|
21
|
+
</el-col>
|
|
22
|
+
<el-col :span="24">
|
|
23
|
+
<div class="bank-item">Bank Name:{{ bankData.bankName }}</div>
|
|
24
|
+
</el-col>
|
|
25
|
+
<el-col :span="24">
|
|
26
|
+
<div class="bank-item" style="padding-bottom: 20px">Bank Address:{{ bankData.bankAddress }}</div>
|
|
27
|
+
</el-col>
|
|
28
|
+
<el-col :span="24">
|
|
29
|
+
<div class="bank-item">Beneficiary Account:{{ bankData.beneficiaryAccount }}</div>
|
|
30
|
+
</el-col>
|
|
31
|
+
<el-col :span="24">
|
|
32
|
+
<div class="bank-item">Beneficiary:{{ bankData.beneficiary }}</div>
|
|
33
|
+
</el-col>
|
|
34
|
+
<el-col :span="24">
|
|
35
|
+
<div class="bank-item">Beneficiary Address:{{ bankData.beneficiaryAddress }}</div>
|
|
36
|
+
</el-col>
|
|
37
|
+
</el-row>
|
|
38
|
+
</div>
|
|
39
|
+
<!-- 添加入口 -->
|
|
40
|
+
<div v-if="!bankList || bankList.length == 0" style="padding-left: 30px; padding-top: 10px">
|
|
41
|
+
<span>未添加收款账户信息,</span>
|
|
42
|
+
<el-button type="text" size="mini" @click="clickAdd">去添加</el-button>
|
|
43
|
+
</div>
|
|
44
|
+
<div v-else-if="bankList && bankList.length < 3" style="padding-left: 30px; padding-top: 10px">
|
|
45
|
+
<el-button type="text" size="mini" @click="clickAdd">去添加</el-button>
|
|
46
|
+
<span>收款账户信息</span>
|
|
47
|
+
</div>
|
|
48
|
+
<!-- 添加收款账户弹框 -->
|
|
49
|
+
<el-dialog title="添加收款账户" :visible.sync="open" width="800px" append-to-body :close-on-click-modal="false">
|
|
50
|
+
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
|
|
51
|
+
<el-row>
|
|
52
|
+
<el-col :span="18">
|
|
53
|
+
<el-form-item label="Swift Code" label-width="150px">
|
|
54
|
+
<el-input maxlength="500" v-model="form.swiftCode" placeholder="请输入内容" />
|
|
55
|
+
</el-form-item>
|
|
56
|
+
</el-col>
|
|
57
|
+
<el-col :span="18">
|
|
58
|
+
<el-form-item label="Bank Name" label-width="150px">
|
|
59
|
+
<el-input maxlength="500" v-model="form.bankName" placeholder="请输入内容" />
|
|
60
|
+
</el-form-item>
|
|
61
|
+
</el-col>
|
|
62
|
+
<el-col :span="18">
|
|
63
|
+
<el-form-item label="Bank Address" label-width="150px">
|
|
64
|
+
<el-input maxlength="500" v-model="form.bankAddress" placeholder="请输入内容" />
|
|
65
|
+
</el-form-item>
|
|
66
|
+
</el-col>
|
|
67
|
+
<el-col :span="18">
|
|
68
|
+
<el-form-item label="Beneficiary Account" label-width="150px">
|
|
69
|
+
<el-input maxlength="500" v-model="form.beneficiaryAccount" placeholder="请输入内容" />
|
|
70
|
+
</el-form-item>
|
|
71
|
+
</el-col>
|
|
72
|
+
<el-col :span="18">
|
|
73
|
+
<el-form-item label="Beneficiary" label-width="150px">
|
|
74
|
+
<el-input maxlength="500" v-model="form.beneficiary" placeholder="请输入内容" />
|
|
75
|
+
</el-form-item>
|
|
76
|
+
</el-col>
|
|
77
|
+
<el-col :span="18">
|
|
78
|
+
<el-form-item label="Beneficiary Address" label-width="150px">
|
|
79
|
+
<el-input maxlength="500" v-model="form.beneficiaryAddress" placeholder="请输入内容" />
|
|
80
|
+
</el-form-item>
|
|
81
|
+
</el-col>
|
|
82
|
+
</el-row>
|
|
83
|
+
</el-form>
|
|
84
|
+
<div slot="footer" class="dialog-footer">
|
|
85
|
+
<el-button @click="clickCancel">取 消</el-button>
|
|
86
|
+
<el-button type="primary" @click="clickConfirm">确 定</el-button>
|
|
87
|
+
</div>
|
|
88
|
+
</el-dialog>
|
|
89
|
+
</div>
|
|
90
|
+
</template>
|
|
91
|
+
|
|
92
|
+
<script>
|
|
93
|
+
import { insertCompanyBank, getCompanyBanks } from '../../../api/biz/bizContract'
|
|
94
|
+
|
|
95
|
+
export default {
|
|
96
|
+
name: 'CompanyBanks',
|
|
97
|
+
props: {
|
|
98
|
+
// 收款账户的公司id(目前是合同contractId)
|
|
99
|
+
companyId: {
|
|
100
|
+
type: String | Number,
|
|
101
|
+
default: null
|
|
102
|
+
},
|
|
103
|
+
// 是否禁止选择功能
|
|
104
|
+
disableSelect: {
|
|
105
|
+
type: Boolean,
|
|
106
|
+
default: false
|
|
107
|
+
},
|
|
108
|
+
// 之前选择的id
|
|
109
|
+
accountId: {
|
|
110
|
+
type: String | Number,
|
|
111
|
+
default: null
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
watch: {
|
|
115
|
+
companyId: {
|
|
116
|
+
handler(newVal, oldVal) {
|
|
117
|
+
console.log('companyId changed:', newVal)
|
|
118
|
+
this.sellectIndex = -1
|
|
119
|
+
this.getBankList()
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
accountId: {
|
|
123
|
+
handler(newVal, oldVal) {
|
|
124
|
+
console.log('accountId changed:', newVal)
|
|
125
|
+
this.handleCaclSelectIndex()
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
data() {
|
|
130
|
+
return {
|
|
131
|
+
open: false,
|
|
132
|
+
sellectIndex: -1,
|
|
133
|
+
bankList: null,
|
|
134
|
+
form: {
|
|
135
|
+
swiftCode: null,
|
|
136
|
+
bankName: null,
|
|
137
|
+
bankAddress: null,
|
|
138
|
+
beneficiaryAccount: null,
|
|
139
|
+
beneficiary: null,
|
|
140
|
+
beneficiaryAddress: null
|
|
141
|
+
},
|
|
142
|
+
rules: {}
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
created() {
|
|
146
|
+
// 获取收款账户信息
|
|
147
|
+
this.getBankList()
|
|
148
|
+
},
|
|
149
|
+
methods: {
|
|
150
|
+
restForm() {
|
|
151
|
+
this.form = {
|
|
152
|
+
swiftCode: null,
|
|
153
|
+
bankName: null,
|
|
154
|
+
bankAddress: null,
|
|
155
|
+
beneficiaryAccount: null,
|
|
156
|
+
beneficiary: null,
|
|
157
|
+
beneficiaryAddress: null
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
handleCaclSelectIndex() {
|
|
161
|
+
if (!this.disableSelect && this.accountId) {
|
|
162
|
+
this.sellectIndex = this.bankList.findIndex((item) => item.accountId == this.accountId)
|
|
163
|
+
if (this.sellectIndex == -1) {
|
|
164
|
+
console.log('pre accountId invalide')
|
|
165
|
+
this.$emit('selectBank', null)
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
},
|
|
169
|
+
getBankList() {
|
|
170
|
+
if (!this.companyId) {
|
|
171
|
+
return
|
|
172
|
+
}
|
|
173
|
+
getCompanyBanks(this.companyId).then((res) => {
|
|
174
|
+
this.bankList = res.data?.paymentAccountList
|
|
175
|
+
this.handleCaclSelectIndex()
|
|
176
|
+
})
|
|
177
|
+
},
|
|
178
|
+
clickAdd() {
|
|
179
|
+
this.restForm()
|
|
180
|
+
this.open = true
|
|
181
|
+
},
|
|
182
|
+
clickSelct(index) {
|
|
183
|
+
if (this.disableSelect) {
|
|
184
|
+
console.log('disableSelect')
|
|
185
|
+
return
|
|
186
|
+
}
|
|
187
|
+
this.sellectIndex = index
|
|
188
|
+
let data = this.bankList[index]
|
|
189
|
+
console.log('select data', data)
|
|
190
|
+
this.$emit('selectBank', data)
|
|
191
|
+
},
|
|
192
|
+
clickCancel() {
|
|
193
|
+
this.open = false
|
|
194
|
+
},
|
|
195
|
+
clickConfirm() {
|
|
196
|
+
let e = this.form
|
|
197
|
+
if (!(e.swiftCode || e.bankName || e.bankAddress || e.beneficiaryAccount || e.beneficiary || e.beneficiaryAddress)) {
|
|
198
|
+
this.$modal.msgError('请输入内容')
|
|
199
|
+
return
|
|
200
|
+
}
|
|
201
|
+
insertCompanyBank({
|
|
202
|
+
contractId: this.companyId,
|
|
203
|
+
paymentAccountList: [e]
|
|
204
|
+
}).then((res) => {
|
|
205
|
+
this.getBankList()
|
|
206
|
+
this.open = false
|
|
207
|
+
})
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
</script>
|
|
212
|
+
|
|
213
|
+
<style scoped lang="scss">
|
|
214
|
+
.bank-container {
|
|
215
|
+
background-color: rgb(240, 240, 240);
|
|
216
|
+
padding: 20px 10px 5px;
|
|
217
|
+
margin-top: 10px;
|
|
218
|
+
}
|
|
219
|
+
.bank-container-select {
|
|
220
|
+
border: 1px solid blue;
|
|
221
|
+
}
|
|
222
|
+
.bank-container-unselect {
|
|
223
|
+
border: 1px solid rgb(240, 240, 240);
|
|
224
|
+
}
|
|
225
|
+
.bank-item {
|
|
226
|
+
padding: 2px 40px 2px;
|
|
227
|
+
}
|
|
228
|
+
</style>
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
</el-table-column>
|
|
64
64
|
</el-table>
|
|
65
65
|
</el-form-item>
|
|
66
|
-
<el-button type="text" size="small" @click="handleChangeLog">历史记录</el-button>
|
|
66
|
+
<el-button type="text" v-if="channel !== 'official-website'" size="small" @click="handleChangeLog">历史记录</el-button>
|
|
67
67
|
<contract-pdf :contract="contract" :dynamicTags="dynamicTags" :customClause="customClause"></contract-pdf>
|
|
68
68
|
</el-form>
|
|
69
69
|
<contract-change-log ref="contractChangeLog"></contract-change-log>
|
|
@@ -117,14 +117,17 @@
|
|
|
117
117
|
<div v-else>{{ contract.otherPaymentTerm }}</div>
|
|
118
118
|
</el-descriptions-item>
|
|
119
119
|
<el-descriptions-item label="Price Fixing Option">
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
120
|
+
<div v-if="contract.livePriceSwitch">
|
|
121
|
+
{{ contract.livePriceDays }} Days {{ contract.livePriceForm }} cargo arrives at POD in
|
|
122
|
+
{{ contract.livePriceUsertype }}
|
|
123
|
+
{{ contract.livePriceType }}'s option
|
|
124
|
+
</div>
|
|
123
125
|
</el-descriptions-item>
|
|
124
126
|
|
|
125
127
|
<el-descriptions-item label="Origin Country/Region">{{ contract.originCountry }}</el-descriptions-item>
|
|
126
128
|
<el-descriptions-item label="Loading Country/Region">{{ contract.loadingCountry }}</el-descriptions-item>
|
|
127
|
-
<el-descriptions-item label="Destination">{{ contract.destination }}</el-descriptions-item>
|
|
129
|
+
<el-descriptions-item v-if="contract.freightTerms != 'EXW'" label="Destination">{{ contract.destination }}</el-descriptions-item>
|
|
130
|
+
<el-descriptions-item v-else label="EXW Address">{{ contract.exw }}</el-descriptions-item>
|
|
128
131
|
<el-descriptions-item label="Special Instructions">
|
|
129
132
|
{{ contract.numberOfContainersForTwenty }}x 20' Container
|
|
130
133
|
<br />
|