doctor-admin-components 1.0.14-beta.81 → 1.0.14-beta.85
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 +1 -1
- package/packages/src/api/biz/dictData.js +9 -0
- package/packages/src/i18n/en/message.json +2 -1
- package/packages/src/i18n/zh-CN/message.json +2 -1
- package/packages/src/views/biz/bizContract/detail.vue +2 -0
- package/packages/src/views/biz/bizFileInfo/contract.vue +46 -11
- package/packages/src/views/biz/bizFileInfo/contractFile/ProgressDetail.vue +1 -0
- package/packages/src/views/biz/bizShipment/add.vue +237 -213
- package/packages/src/views/biz/contractTracing/contractInfo.vue +3 -2
- package/packages/src/views/biz/contractTracing/contractPdf.vue +0 -2
package/package.json
CHANGED
|
@@ -77,4 +77,13 @@ export function countryDictList() {
|
|
|
77
77
|
url: '/tb/dict/data/countryDictList',
|
|
78
78
|
method: 'post',
|
|
79
79
|
})
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// 获取港口列表-树
|
|
83
|
+
export function getPortTree(query) {
|
|
84
|
+
return request({
|
|
85
|
+
url: '/tb/dict/data/portTree',
|
|
86
|
+
method: 'get',
|
|
87
|
+
params: query
|
|
88
|
+
})
|
|
80
89
|
}
|
|
@@ -295,7 +295,8 @@
|
|
|
295
295
|
"voucherOrReceipt": "Voucher/Receipt",
|
|
296
296
|
"weight": "weight(MT)",
|
|
297
297
|
"yes": "Yes",
|
|
298
|
-
"cndn": "Debit note & Credit note"
|
|
298
|
+
"cndn": "Debit note & Credit note",
|
|
299
|
+
"addShipment": "Add Shipment"
|
|
299
300
|
},
|
|
300
301
|
"distpicker":{
|
|
301
302
|
"province": "Province",
|
|
@@ -506,6 +506,8 @@ import CompanyList from './companyList.vue'
|
|
|
506
506
|
import { updateCompanyInfo } from '../../../api/biz/companyInfo'
|
|
507
507
|
import { portDictList, listDictData } from '../../../api/biz/dictData'
|
|
508
508
|
import ContractCompanyList from './contractCompanyList.vue'
|
|
509
|
+
|
|
510
|
+
// 已废弃
|
|
509
511
|
export default {
|
|
510
512
|
name: 'contractDetail',
|
|
511
513
|
dicts: ['freight_terms', 'cmx_month'],
|
|
@@ -371,7 +371,16 @@
|
|
|
371
371
|
<SectionSlot @updateOpen="handleShippingUpdateOpen" :infoPro="shipProgressInfo" v-if="contractFileInfo && !contractFileInfo.shipmentFileInfoList">
|
|
372
372
|
<template v-slot:header>
|
|
373
373
|
<div style="position:relative">
|
|
374
|
-
<ProgressDetail :infoPro="shipProgressInfo"
|
|
374
|
+
<ProgressDetail :infoPro="shipProgressInfo">
|
|
375
|
+
<template slot="action" v-if="contract.contractType == 'purchase'">
|
|
376
|
+
<div style="position: absolute; margin-left: 15px;bottom: 5px;">
|
|
377
|
+
<el-select v-model="selectSaleContractId" placeholder="请选择" size="mini">
|
|
378
|
+
<el-option v-for="item in contract.associationContractList" :key="item.contractId" :label="item.contractNo" :value="item.contractId"></el-option>
|
|
379
|
+
</el-select>
|
|
380
|
+
<el-button class="ml5" type="success" size="mini" icon="el-icon-plus" @click.stop="handleAddShipment" circle></el-button>
|
|
381
|
+
</div>
|
|
382
|
+
</template>
|
|
383
|
+
</ProgressDetail>
|
|
375
384
|
</div>
|
|
376
385
|
</template>
|
|
377
386
|
<template v-slot:content>
|
|
@@ -722,10 +731,10 @@
|
|
|
722
731
|
</el-col>
|
|
723
732
|
</el-col>
|
|
724
733
|
<!-- 临时尾款发票 -->
|
|
725
|
-
<el-col :span="24"
|
|
734
|
+
<el-col :span="24">
|
|
726
735
|
<div class="hr-class"></div>
|
|
727
736
|
</el-col>
|
|
728
|
-
<el-col :span="24"
|
|
737
|
+
<el-col :span="24">
|
|
729
738
|
<div class="content-root-row" style="display: flex;">
|
|
730
739
|
<ContentTitle :contentTitleProp="{
|
|
731
740
|
bgButton: $t('contractDetail.saleTemporaryFinallyInvoice'),
|
|
@@ -1521,7 +1530,9 @@ export default {
|
|
|
1521
1530
|
//参考采购价
|
|
1522
1531
|
shipmentPurchaseAmountMessage: '',
|
|
1523
1532
|
loadingInstance: null,
|
|
1524
|
-
purchaseBalanceMoney: null
|
|
1533
|
+
purchaseBalanceMoney: null,
|
|
1534
|
+
// 新增:选择关联合同
|
|
1535
|
+
selectSaleContractId: null,
|
|
1525
1536
|
};
|
|
1526
1537
|
},
|
|
1527
1538
|
created() {
|
|
@@ -1547,6 +1558,30 @@ export default {
|
|
|
1547
1558
|
},
|
|
1548
1559
|
mounted() { },
|
|
1549
1560
|
methods: {
|
|
1561
|
+
handleAddShipment() {
|
|
1562
|
+
if (!this.selectSaleContractId) {
|
|
1563
|
+
return this.$message.warning('请选择关联的销售合同')
|
|
1564
|
+
}
|
|
1565
|
+
// 弹框二次确认
|
|
1566
|
+
this.$confirm('是否添加空白装运', '提示', {
|
|
1567
|
+
confirmButtonText: '确定',
|
|
1568
|
+
cancelButtonText: '取消',
|
|
1569
|
+
type: 'warning'
|
|
1570
|
+
})
|
|
1571
|
+
.then(() => {
|
|
1572
|
+
// 添加装运接口
|
|
1573
|
+
addBizShipment({
|
|
1574
|
+
purchaseContractId: this.contract.contractId,
|
|
1575
|
+
saleContractId: this.selectSaleContractId,
|
|
1576
|
+
}).then(() => {
|
|
1577
|
+
this.$message.success('添加成功')
|
|
1578
|
+
this.handleRefresh()
|
|
1579
|
+
})
|
|
1580
|
+
})
|
|
1581
|
+
.catch((e) => {
|
|
1582
|
+
console.log(e)
|
|
1583
|
+
})
|
|
1584
|
+
},
|
|
1550
1585
|
// 装运模块状态变化,需要同步关联模块
|
|
1551
1586
|
handleShippingUpdateOpen(isOpen) {
|
|
1552
1587
|
this.$refs.SectionReceiving && this.$refs.SectionReceiving[0]?.setOpen(isOpen)
|
|
@@ -2389,13 +2424,13 @@ export default {
|
|
|
2389
2424
|
},
|
|
2390
2425
|
},
|
|
2391
2426
|
watch: {
|
|
2392
|
-
|
|
2393
|
-
|
|
2394
|
-
|
|
2395
|
-
|
|
2396
|
-
|
|
2397
|
-
|
|
2398
|
-
|
|
2427
|
+
contract: {
|
|
2428
|
+
handler(val) {
|
|
2429
|
+
this.selectSaleContractId = val.associationContractList[0].contractId
|
|
2430
|
+
},
|
|
2431
|
+
immediate: true,
|
|
2432
|
+
deep: true
|
|
2433
|
+
},
|
|
2399
2434
|
},
|
|
2400
2435
|
destroyed() {
|
|
2401
2436
|
clearTimeout(this.timer);
|
|
@@ -2,124 +2,140 @@
|
|
|
2
2
|
<div class="app-container">
|
|
3
3
|
<!-- 添加或修改装运对话框 -->
|
|
4
4
|
<el-dialog :visible.sync="open" z-index="1000" width="80%" :before-close="handleClose" :title="title">
|
|
5
|
+
<template slot="title">
|
|
6
|
+
<strong style="font-size: 18px;">{{ form.shipmentId ? '修改装运' : title }}</strong>
|
|
7
|
+
<span style="color: red">(注意“目的港”、“起运港”两个字段,如果为空,可参考后面括号内的值进行选择)</span>
|
|
8
|
+
</template>
|
|
5
9
|
<slot name="billOfLadingUpload"></slot>
|
|
6
10
|
<slot name="">
|
|
7
11
|
<span v-if="isDraft" style="color: red">提示: 当前打开了【{{ form.lastUpdateUserName }}】在【{{ form.updateTime }}】保存的装运草稿</span>
|
|
8
12
|
<span v-if="voidInvoiceList" style="color: red">【快捷转卖】:系统检测到此销售合同关联的采购合同存在【已作废】的装运,</span>
|
|
9
13
|
<el-button v-if="voidInvoiceList" @click="handleReference" size="mini" type="text">点击这里直接复制并引用</el-button>
|
|
10
14
|
</slot>
|
|
11
|
-
|
|
15
|
+
|
|
12
16
|
<div v-if="reason" style="color: #f00; padding-left: 60px; margin-bottom: 10px">{{ reason }}</div>
|
|
13
|
-
<el-form ref="form" :model="form" :
|
|
14
|
-
<el-
|
|
15
|
-
<el-
|
|
16
|
-
<el-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
<
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
<el-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
17
|
+
<el-form ref="form" :model="form" :inline="true" :rules="rules">
|
|
18
|
+
<el-form-item label="船公司" prop="shippingCompany">
|
|
19
|
+
<el-select v-model="form.shippingCompany" placeholder="请选择船公司" clearable filterable size="small">
|
|
20
|
+
<el-option v-for="dict in dict.type.shipping_company" :key="dict.value" :label="dict.label" :value="dict.value" />
|
|
21
|
+
</el-select>
|
|
22
|
+
</el-form-item>
|
|
23
|
+
|
|
24
|
+
<el-form-item label="订舱号" prop="bookingNo">
|
|
25
|
+
<el-input v-model="form.bookingNo" placeholder="请输入订舱号" size="small" />
|
|
26
|
+
</el-form-item>
|
|
27
|
+
|
|
28
|
+
<el-form-item label="提单号" prop="billOfLadingNo">
|
|
29
|
+
<el-input v-model="form.billOfLadingNo" placeholder="请输入提单号" size="small" />
|
|
30
|
+
</el-form-item>
|
|
31
|
+
<el-form-item label="目的港" prop="destinationPort">
|
|
32
|
+
<!-- <el-select v-model="form.destinationPort" style="width: 100%" placeholder="请选择目的港" clearable filterable size="small">
|
|
33
|
+
<el-option v-for="(item, i) in destinationPortList" :key="i" :value="item.dictValue" :label="item.dictValue" />
|
|
34
|
+
</el-select> -->
|
|
35
|
+
<el-cascader
|
|
36
|
+
v-model="form.destinationPort"
|
|
37
|
+
:options="destinationPortList"
|
|
38
|
+
:props="{
|
|
39
|
+
multiple: false,
|
|
40
|
+
label: 'dictLabel',
|
|
41
|
+
value: 'dictValue',
|
|
42
|
+
emitPath: false
|
|
43
|
+
}"
|
|
44
|
+
placeholder="请选择目的港"
|
|
45
|
+
:show-all-levels="false"
|
|
46
|
+
:filter-method="filterPortMethod"
|
|
47
|
+
clearable
|
|
48
|
+
filterable
|
|
49
|
+
></el-cascader>
|
|
50
|
+
<span>({{ form.destinationPort }})</span>
|
|
51
|
+
</el-form-item>
|
|
52
|
+
|
|
53
|
+
<el-form-item label="起运港" prop="originPort">
|
|
54
|
+
<!-- <el-select v-model="form.originPort" style="width: 100%" placeholder="请选择起运港" clearable filterable size="small">
|
|
55
|
+
<el-option v-for="(item, i) in portOptionList" :key="'origin'+i" :value="item.dictValue" :label="item.dictValue" />
|
|
56
|
+
</el-select> -->
|
|
57
|
+
<el-cascader
|
|
58
|
+
v-model="form.originPort"
|
|
59
|
+
:options="portOptionList"
|
|
60
|
+
:props="{
|
|
61
|
+
multiple: false,
|
|
62
|
+
label: 'dictLabel',
|
|
63
|
+
value: 'dictValue',
|
|
64
|
+
emitPath: false
|
|
65
|
+
}"
|
|
66
|
+
placeholder="请选择起运港"
|
|
67
|
+
:show-all-levels="false"
|
|
68
|
+
:filter-method="filterPortMethod"
|
|
69
|
+
clearable
|
|
70
|
+
filterable
|
|
71
|
+
></el-cascader>
|
|
72
|
+
<span>({{ form.originPort }})</span>
|
|
73
|
+
</el-form-item>
|
|
74
|
+
|
|
75
|
+
<el-form-item label="海运距离(KM)" prop="portDistance">
|
|
76
|
+
<el-input v-decimal="2" v-model="form.portDistance" placeholder="请输入海运距离" size="small" />
|
|
77
|
+
</el-form-item>
|
|
78
|
+
|
|
79
|
+
<el-form-item label="ETD" prop="etd" label-width="100">
|
|
80
|
+
<el-date-picker
|
|
81
|
+
style="width: 75%"
|
|
82
|
+
clearable
|
|
83
|
+
size="small"
|
|
84
|
+
v-model="form.etd"
|
|
85
|
+
type="date"
|
|
86
|
+
value-format="yyyy-MM-dd HH:mm:ss"
|
|
87
|
+
placeholder="请选择预计离港日期"
|
|
88
|
+
></el-date-picker>
|
|
89
|
+
</el-form-item>
|
|
90
|
+
|
|
91
|
+
<el-form-item label="ETA" prop="eta" label-width="100">
|
|
92
|
+
<div style="display: flex; flex-direction: row; align-items: center">
|
|
93
|
+
<el-date-picker
|
|
94
|
+
style="width: 75%"
|
|
95
|
+
clearable
|
|
96
|
+
size="small"
|
|
97
|
+
v-model="form.eta"
|
|
98
|
+
type="date"
|
|
99
|
+
value-format="yyyy-MM-dd HH:mm:ss"
|
|
100
|
+
placeholder="请选择预计到港日期"
|
|
101
|
+
></el-date-picker>
|
|
102
|
+
<el-button type="text" class="ml5" @click="refreshUpdateTime">更新</el-button>
|
|
103
|
+
</div>
|
|
104
|
+
</el-form-item>
|
|
105
|
+
|
|
106
|
+
<el-form-item label="实际到港日" prop="actualArrivalDate" label-width="90px">
|
|
107
|
+
<el-date-picker
|
|
108
|
+
style="width: 75%"
|
|
109
|
+
clearable
|
|
110
|
+
size="small"
|
|
111
|
+
v-model="form.actualArrivalDate"
|
|
112
|
+
type="date"
|
|
113
|
+
value-format="yyyy-MM-dd HH:mm:ss"
|
|
114
|
+
placeholder="请选择实际到港日"
|
|
115
|
+
></el-date-picker>
|
|
116
|
+
</el-form-item>
|
|
117
|
+
|
|
118
|
+
<el-form-item label="Loading Date" prop="loadingTime" label-width="110px">
|
|
119
|
+
<el-date-picker
|
|
120
|
+
style="width: 75%"
|
|
121
|
+
clearable
|
|
122
|
+
size="small"
|
|
123
|
+
v-model="form.loadingTime"
|
|
124
|
+
type="date"
|
|
125
|
+
value-format="yyyy-MM-dd HH:mm:ss"
|
|
126
|
+
placeholder="请选择loading Date"
|
|
127
|
+
></el-date-picker>
|
|
128
|
+
</el-form-item>
|
|
129
|
+
|
|
130
|
+
<el-form-item label="对应采购合同" prop="purchaseContractNo" label-width="100">
|
|
131
|
+
<el-select v-model="form.purchaseContractNo" size="small" clearable="">
|
|
132
|
+
<el-option v-for="item in contract.purchaseContractNos" :key="item" :label="item" :value="item" />
|
|
133
|
+
</el-select>
|
|
134
|
+
</el-form-item>
|
|
135
|
+
<el-form-item label="ETA更新" prop="etaUpdateOn" label-width="100">
|
|
136
|
+
<el-switch v-model="form.etaUpdateOn" active-text="自动" inactive-text="手动"> </el-switch>
|
|
137
|
+
</el-form-item>
|
|
138
|
+
|
|
123
139
|
<el-table stripe :data="contractDetailList" border>
|
|
124
140
|
<el-table-column label="序号" type="index" align="center"></el-table-column>
|
|
125
141
|
<el-table-column label="货物名称" align="center" prop="askName" show-overflow-tooltip></el-table-column>
|
|
@@ -138,12 +154,13 @@
|
|
|
138
154
|
</el-table-column>
|
|
139
155
|
</el-table>
|
|
140
156
|
<el-row>
|
|
141
|
-
<div style="font-weight: bolder">
|
|
157
|
+
<div style="font-weight: bolder" class="mt10">
|
|
142
158
|
{{ '实发总柜数:' + contract.numberOfContainersForTwentyOrForty + '柜' }}
|
|
143
159
|
</div>
|
|
144
160
|
</el-row>
|
|
145
161
|
<el-divider></el-divider>
|
|
146
|
-
<el-
|
|
162
|
+
<el-button v-if="!form.containerList || form.containerList.length==0" icon="el-icon-plus" size="mini" type="warning" circle @click="addContainerRow"></el-button>
|
|
163
|
+
<el-row v-else v-for="(dt, index) in form.containerList" :key="'dt' + index">
|
|
147
164
|
<el-row>
|
|
148
165
|
<el-col :span="2">
|
|
149
166
|
<div style="font-weight: bolder; margin-top: 10px">
|
|
@@ -179,7 +196,7 @@
|
|
|
179
196
|
</el-row>
|
|
180
197
|
<el-row>
|
|
181
198
|
<el-col :span="6">
|
|
182
|
-
<el-form-item label="总货物毛重(t)" :prop="'containerList.' + index + '.totalGoodsGrossWeight'" :rules="subrules.totalGoodsGrossWeight" label-width="
|
|
199
|
+
<el-form-item label="总货物毛重(t)" :prop="'containerList.' + index + '.totalGoodsGrossWeight'" :rules="subrules.totalGoodsGrossWeight" label-width="110px">
|
|
183
200
|
<el-input v-if="editSwitch" size="mini" v-model="dt.totalGoodsGrossWeight" type="number"></el-input>
|
|
184
201
|
<div v-else>
|
|
185
202
|
{{ dt.totalGoodsGrossWeight ? dt.totalGoodsGrossWeight : '自动计算' }}
|
|
@@ -187,7 +204,7 @@
|
|
|
187
204
|
</el-form-item>
|
|
188
205
|
</el-col>
|
|
189
206
|
<el-col :span="6">
|
|
190
|
-
<el-form-item label="总货物皮重(t)" :prop="'containerList.' + index + '.totalGoodsTareWeight'" :rules="subrules.totalGoodsTareWeight" label-width="
|
|
207
|
+
<el-form-item label="总货物皮重(t)" :prop="'containerList.' + index + '.totalGoodsTareWeight'" :rules="subrules.totalGoodsTareWeight" label-width="110px">
|
|
191
208
|
<el-input v-if="editSwitch" size="mini" v-model="dt.totalGoodsTareWeight" type="number"></el-input>
|
|
192
209
|
<div v-else>
|
|
193
210
|
{{ dt.totalGoodsTareWeight ? dt.totalGoodsTareWeight : '自动计算' }}
|
|
@@ -195,7 +212,7 @@
|
|
|
195
212
|
</el-form-item>
|
|
196
213
|
</el-col>
|
|
197
214
|
<el-col :span="6">
|
|
198
|
-
<el-form-item label="总货物净重(t)" :prop="'containerList.' + index + '.totalGoodsNetWeight'" :rules="subrules.totalGoodsNetWeight" label-width="
|
|
215
|
+
<el-form-item label="总货物净重(t)" :prop="'containerList.' + index + '.totalGoodsNetWeight'" :rules="subrules.totalGoodsNetWeight" label-width="110px">
|
|
199
216
|
<el-input v-if="editSwitch" size="mini" v-model="dt.totalGoodsNetWeight" type="number"></el-input>
|
|
200
217
|
<div v-else>
|
|
201
218
|
{{ dt.totalGoodsNetWeight ? dt.totalGoodsNetWeight : '自动计算' }}
|
|
@@ -203,7 +220,7 @@
|
|
|
203
220
|
</el-form-item>
|
|
204
221
|
</el-col>
|
|
205
222
|
<el-col :span="6">
|
|
206
|
-
<el-form-item label="总货物件数" :prop="'containerList.' + index + '.totalGoodsNumber'" :rules="subrules.totalGoodsNumber" label-width="
|
|
223
|
+
<el-form-item label="总货物件数" :prop="'containerList.' + index + '.totalGoodsNumber'" :rules="subrules.totalGoodsNumber" label-width="110px">{{
|
|
207
224
|
dt.totalGoodsNumber ? dt.totalGoodsNumber : '自动计算'
|
|
208
225
|
}}</el-form-item>
|
|
209
226
|
</el-col>
|
|
@@ -243,9 +260,9 @@
|
|
|
243
260
|
:rules="rules.packageTareWeight"
|
|
244
261
|
:prop="'containerList.' + index + '.containerDetailList.' + scope1.$index + '.packageList.' + scope2.$index + '.packageTareWeight'"
|
|
245
262
|
>
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
263
|
+
<div>
|
|
264
|
+
{{ scope2.row.packageTareWeight ? scope2.row.packageTareWeight : '自动计算' }}
|
|
265
|
+
</div>
|
|
249
266
|
<!-- <el-input
|
|
250
267
|
v-model="scope2.row.packageTareWeight"
|
|
251
268
|
placeholder="请输入皮重"
|
|
@@ -483,7 +500,7 @@ import { updateBizContractDetail } from '../../../api/biz/bizContractDetail'
|
|
|
483
500
|
import { queryPurchaseContracts } from '../../../api/biz/bizContract'
|
|
484
501
|
|
|
485
502
|
import { Loading } from 'element-ui'
|
|
486
|
-
import {
|
|
503
|
+
import { getPortTree } from '../../../api/biz/dictData'
|
|
487
504
|
import selectBooking from './selectBooking.vue'
|
|
488
505
|
import { listBizBooking } from '../../../api/biz/bizBooking'
|
|
489
506
|
import ReferenceAlert from './referenceAlert.vue'
|
|
@@ -502,7 +519,7 @@ export default {
|
|
|
502
519
|
voidInvoiceList: null,
|
|
503
520
|
//目的地港口列表
|
|
504
521
|
destinationPortList: [],
|
|
505
|
-
portOptionList:[],
|
|
522
|
+
portOptionList: [],
|
|
506
523
|
//折叠面板
|
|
507
524
|
activeName: ['1'],
|
|
508
525
|
//折叠面板
|
|
@@ -607,12 +624,12 @@ export default {
|
|
|
607
624
|
}
|
|
608
625
|
},
|
|
609
626
|
mounted() {
|
|
610
|
-
const channel = new BroadcastChannel('ocrInfo-channnel')
|
|
611
|
-
channel.addEventListener('message', event => {
|
|
627
|
+
const channel = new BroadcastChannel('ocrInfo-channnel')
|
|
628
|
+
channel.addEventListener('message', (event) => {
|
|
612
629
|
console.log('event:', event.data)
|
|
613
630
|
this.OCRDataFilling(event.data)
|
|
614
631
|
// channel.close();
|
|
615
|
-
})
|
|
632
|
+
})
|
|
616
633
|
},
|
|
617
634
|
computed: {
|
|
618
635
|
containerList() {
|
|
@@ -645,17 +662,21 @@ export default {
|
|
|
645
662
|
}
|
|
646
663
|
},
|
|
647
664
|
methods: {
|
|
665
|
+
filterPortMethod(node, keyword) {
|
|
666
|
+
// console.log('node:', node, "keyword:", keyword)
|
|
667
|
+
return node.data.dictValue.toLowerCase().indexOf(keyword.toLowerCase()) !== -1 || node.data.dictLabel.indexOf(keyword) !== -1
|
|
668
|
+
},
|
|
648
669
|
getPortDatas() {
|
|
649
670
|
if (this.destinationPortList.length == 0) {
|
|
650
|
-
|
|
671
|
+
getPortTree({
|
|
651
672
|
dictType: 'DESTINATION PORT'
|
|
652
673
|
}).then((res) => {
|
|
653
|
-
this.destinationPortList = res.rows
|
|
674
|
+
this.destinationPortList = res.rows || []
|
|
654
675
|
})
|
|
655
676
|
}
|
|
656
677
|
if (this.portOptionList.length == 0) {
|
|
657
|
-
|
|
658
|
-
this.portOptionList = res.rows
|
|
678
|
+
getPortTree().then((res) => {
|
|
679
|
+
this.portOptionList = res.rows || []
|
|
659
680
|
})
|
|
660
681
|
}
|
|
661
682
|
},
|
|
@@ -743,7 +764,6 @@ export default {
|
|
|
743
764
|
if (type == 'packageGrossWeight') {
|
|
744
765
|
this.changePackageGrossWeight(index, scope1Index, scope2Index)
|
|
745
766
|
} else if (type == 'packageTareWeight') {
|
|
746
|
-
|
|
747
767
|
} else if (type == 'packageNetWeight') {
|
|
748
768
|
this.changePackageNetWeight(index, scope1Index, scope2Index)
|
|
749
769
|
}
|
|
@@ -765,10 +785,13 @@ export default {
|
|
|
765
785
|
},
|
|
766
786
|
//计算皮重
|
|
767
787
|
changePackageTareWeight(index, k, yindex) {
|
|
768
|
-
if (
|
|
788
|
+
if (
|
|
789
|
+
this.form.containerList[index].containerDetailList[k].packageList[yindex].packageGrossWeight &&
|
|
790
|
+
this.form.containerList[index].containerDetailList[k].packageList[yindex].packageNetWeight
|
|
791
|
+
) {
|
|
769
792
|
this.form.containerList[index].containerDetailList[k].packageList[yindex].packageTareWeight = (
|
|
770
793
|
this.form.containerList[index].containerDetailList[k].packageList[yindex].packageGrossWeight -
|
|
771
|
-
|
|
794
|
+
this.form.containerList[index].containerDetailList[k].packageList[yindex].packageNetWeight
|
|
772
795
|
).toFixed(3)
|
|
773
796
|
// 小于0,则为0
|
|
774
797
|
if (this.form.containerList[index].containerDetailList[k].packageList[yindex].packageTareWeight < 0) {
|
|
@@ -912,8 +935,8 @@ export default {
|
|
|
912
935
|
bookingNo: null,
|
|
913
936
|
billOfLadingNo: null,
|
|
914
937
|
destinationPort: null,
|
|
915
|
-
originPort: null,
|
|
916
|
-
portDistance: null,
|
|
938
|
+
originPort: null, // 添加
|
|
939
|
+
portDistance: null, // 添加
|
|
917
940
|
purchaseContractNo: null,
|
|
918
941
|
etd: null,
|
|
919
942
|
eta: null,
|
|
@@ -924,11 +947,11 @@ export default {
|
|
|
924
947
|
containerList: [],
|
|
925
948
|
etaUpdateOn: true,
|
|
926
949
|
loadingTime: this.utc2local(new Date(), 'yyyy-MM-DD HH:mm:ss'),
|
|
927
|
-
bookingId: null,
|
|
928
|
-
citeShipmentId: null,
|
|
929
|
-
copyFileTypeList: null,
|
|
930
|
-
containerNum: 0,
|
|
931
|
-
contractIds: null
|
|
950
|
+
bookingId: null, // 添加
|
|
951
|
+
citeShipmentId: null, // 添加
|
|
952
|
+
copyFileTypeList: null, // 添加
|
|
953
|
+
containerNum: 0, // 添加
|
|
954
|
+
contractIds: null // 添加
|
|
932
955
|
}
|
|
933
956
|
this.contract = {
|
|
934
957
|
purchaseContractNos: null
|
|
@@ -1045,7 +1068,9 @@ export default {
|
|
|
1045
1068
|
},
|
|
1046
1069
|
/** 修改按钮操作 */
|
|
1047
1070
|
handleUpdate(row) {
|
|
1071
|
+
console.log("shipment handleUpdate:", row)
|
|
1048
1072
|
this.reset()
|
|
1073
|
+
this.getPortDatas()
|
|
1049
1074
|
const shipmentId = row.shipmentId
|
|
1050
1075
|
this.$emit('openFullscreenLoading')
|
|
1051
1076
|
getBizShipment(shipmentId).then((response) => {
|
|
@@ -1055,7 +1080,6 @@ export default {
|
|
|
1055
1080
|
this.contractDetailList = contract.contractDetailList.map((v) => {
|
|
1056
1081
|
return { ...v, selected: false }
|
|
1057
1082
|
})
|
|
1058
|
-
|
|
1059
1083
|
var purchaseContractNos = contract?.purchaseContractNos
|
|
1060
1084
|
if (typeof purchaseContractNos == 'string') {
|
|
1061
1085
|
purchaseContractNos = purchaseContractNos?.split(',')
|
|
@@ -1324,91 +1348,91 @@ export default {
|
|
|
1324
1348
|
},
|
|
1325
1349
|
OCRDataFilling(billInfoSummary, shipmentId = null) {
|
|
1326
1350
|
if (billInfoSummary?.shipmentOcrType) {
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1351
|
+
if (billInfoSummary.shippingCompany) {
|
|
1352
|
+
this.form.shippingCompany = billInfoSummary.shippingCompany
|
|
1353
|
+
}
|
|
1330
1354
|
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1355
|
+
if (billInfoSummary.bookingNo) {
|
|
1356
|
+
this.form.bookingNo = billInfoSummary.bookingNo
|
|
1357
|
+
}
|
|
1334
1358
|
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1359
|
+
if (billInfoSummary.billOfLadingNo) {
|
|
1360
|
+
this.form.billOfLadingNo = billInfoSummary.billOfLadingNo
|
|
1361
|
+
}
|
|
1338
1362
|
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1363
|
+
if (billInfoSummary.destinationPort) {
|
|
1364
|
+
this.form.destinationPort = billInfoSummary.destinationPort
|
|
1365
|
+
}
|
|
1342
1366
|
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1367
|
+
if (billInfoSummary.originPort) {
|
|
1368
|
+
this.form.originPort = billInfoSummary.originPort
|
|
1369
|
+
}
|
|
1346
1370
|
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1371
|
+
if (billInfoSummary.portDistance) {
|
|
1372
|
+
this.form.portDistance = billInfoSummary.portDistance
|
|
1373
|
+
}
|
|
1350
1374
|
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1375
|
+
// if (billInfoSummary.actualArrivalDate) {
|
|
1376
|
+
// this.form.actualArrivalDate = billInfoSummary.actualArrivalDate;
|
|
1377
|
+
// }
|
|
1354
1378
|
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
|
|
1379
|
+
// if (billInfoSummary.loadingTime) {
|
|
1380
|
+
// this.form.loadingTime = billInfoSummary.loadingTime;
|
|
1381
|
+
// }
|
|
1358
1382
|
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1383
|
+
// if (billInfoSummary.etd) {
|
|
1384
|
+
// this.form.etd = billInfoSummary.etd;
|
|
1385
|
+
// }
|
|
1362
1386
|
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1387
|
+
// if (billInfoSummary.eta) {
|
|
1388
|
+
// this.form.eta = billInfoSummary.eta;
|
|
1389
|
+
// }
|
|
1366
1390
|
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
})
|
|
1388
|
-
if (containerItem?.containerDetailOcrList?.length) {
|
|
1389
|
-
containerItem?.containerDetailOcrList.forEach((containerDetailItem, index2) => {
|
|
1390
|
-
this.form.containerList[index].containerDetailList.push({
|
|
1391
|
-
contractDetailId: null,
|
|
1392
|
-
askDetailId: null,
|
|
1393
|
-
askName: containerDetailItem.askName,
|
|
1394
|
-
goodsNetWeight: containerDetailItem.goodsNetWeight,
|
|
1395
|
-
goodsTareWeight: containerDetailItem.goodsTareWeight,
|
|
1396
|
-
goodsGrossWeight: containerDetailItem.goodsGrossWeight,
|
|
1397
|
-
goodsNumber: containerDetailItem.goodsNumber,
|
|
1398
|
-
packageList: [
|
|
1399
|
-
{
|
|
1400
|
-
packageNetWeight: containerDetailItem.goodsNetWeight,
|
|
1401
|
-
packageTareWeight: containerDetailItem.goodsTareWeight,
|
|
1402
|
-
packageGrossWeight: containerDetailItem.goodsGrossWeight,
|
|
1403
|
-
remark: containerDetailItem.remark
|
|
1404
|
-
}
|
|
1405
|
-
]
|
|
1406
|
-
})
|
|
1407
|
-
})
|
|
1408
|
-
}
|
|
1391
|
+
if (billInfoSummary?.containerOcrList?.length) {
|
|
1392
|
+
this.form.containerList = []
|
|
1393
|
+
billInfoSummary?.containerOcrList.forEach((containerItem, index) => {
|
|
1394
|
+
this.form.containerList.push({
|
|
1395
|
+
containerId: null,
|
|
1396
|
+
shipmentId: shipmentId,
|
|
1397
|
+
contractNo: containerItem.containerNo,
|
|
1398
|
+
invoiceNo: containerItem.invoiceNo,
|
|
1399
|
+
totalGoodsGrossWeight: containerItem.totalGoodsGrossWeight,
|
|
1400
|
+
totalGoodsNetWeight: containerItem.totalGoodsNetWeight,
|
|
1401
|
+
totalGoodsTareWeight: containerItem.totalGoodsTareWeight,
|
|
1402
|
+
totalGoodsNumber: containerItem.totalGoodsNumber,
|
|
1403
|
+
containerNo: containerItem.containerNo,
|
|
1404
|
+
containerTareWeight: containerItem.totalGoodsTareWeight ? containerItem.totalGoodsTareWeight * 1000 : null,
|
|
1405
|
+
sealNo: containerItem.sealNo,
|
|
1406
|
+
isGenerateInvoice: null,
|
|
1407
|
+
remark: containerItem.remark,
|
|
1408
|
+
createTime: null,
|
|
1409
|
+
updateTime: null,
|
|
1410
|
+
containerDetailList: []
|
|
1409
1411
|
})
|
|
1410
|
-
|
|
1412
|
+
if (containerItem?.containerDetailOcrList?.length) {
|
|
1413
|
+
containerItem?.containerDetailOcrList.forEach((containerDetailItem, index2) => {
|
|
1414
|
+
this.form.containerList[index].containerDetailList.push({
|
|
1415
|
+
contractDetailId: null,
|
|
1416
|
+
askDetailId: null,
|
|
1417
|
+
askName: containerDetailItem.askName,
|
|
1418
|
+
goodsNetWeight: containerDetailItem.goodsNetWeight,
|
|
1419
|
+
goodsTareWeight: containerDetailItem.goodsTareWeight,
|
|
1420
|
+
goodsGrossWeight: containerDetailItem.goodsGrossWeight,
|
|
1421
|
+
goodsNumber: containerDetailItem.goodsNumber,
|
|
1422
|
+
packageList: [
|
|
1423
|
+
{
|
|
1424
|
+
packageNetWeight: containerDetailItem.goodsNetWeight,
|
|
1425
|
+
packageTareWeight: containerDetailItem.goodsTareWeight,
|
|
1426
|
+
packageGrossWeight: containerDetailItem.goodsGrossWeight,
|
|
1427
|
+
remark: containerDetailItem.remark
|
|
1428
|
+
}
|
|
1429
|
+
]
|
|
1430
|
+
})
|
|
1431
|
+
})
|
|
1432
|
+
}
|
|
1433
|
+
})
|
|
1411
1434
|
}
|
|
1435
|
+
}
|
|
1412
1436
|
}
|
|
1413
1437
|
}
|
|
1414
1438
|
}
|
|
@@ -75,6 +75,7 @@ import { listBizInvoice } from '../../../api/biz/bizInvoice'
|
|
|
75
75
|
import { listBizContractDispute } from '../../../api/biz/bizContractDispute'
|
|
76
76
|
import ContractPdf from './contractPdf.vue'
|
|
77
77
|
import FileShow from '../bizFileInfo/fileShow.vue'
|
|
78
|
+
import { encryptId } from '../../../utils/index.js';
|
|
78
79
|
|
|
79
80
|
export default {
|
|
80
81
|
name: 'ContractInfo',
|
|
@@ -172,8 +173,8 @@ export default {
|
|
|
172
173
|
if (this.lang == 'zh') {
|
|
173
174
|
lang = 'zh-CN'
|
|
174
175
|
}
|
|
175
|
-
const encryptedContractId =
|
|
176
|
-
const encryptedDealId =
|
|
176
|
+
const encryptedContractId = encryptId(this.contract.contractId)
|
|
177
|
+
const encryptedDealId = encryptId(this.contract.dealId)
|
|
177
178
|
|
|
178
179
|
window.open(
|
|
179
180
|
`${url}${this.contract.dealId}&contractId=${this.contract.contractId}&language=${lang}&encryptedContractId=${encryptedContractId}&encryptedDealId=${encryptedDealId}`
|