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 CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "doctor-admin-components",
3
3
  "version1": "1.0.11",
4
- "version": "1.0.14-beta.81",
4
+ "version": "1.0.14-beta.85",
5
5
  "private": false,
6
6
  "main1": "lib/index.umd.min.js",
7
7
  "main": "packages/index.js",
@@ -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",
@@ -295,7 +295,8 @@
295
295
  "voucherOrReceipt": "凭证/条款",
296
296
  "weight": "重量(MT)",
297
297
  "yes": "Yes",
298
- "cndn": "Debit note & Credit note"
298
+ "cndn": "Debit note & Credit note",
299
+ "addShipment": "添加装运"
299
300
  },
300
301
  "distpicker":{
301
302
  "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"></ProgressDetail>
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" v-if="contract.quoteType != 'FIXED'">
734
+ <el-col :span="24">
726
735
  <div class="hr-class"></div>
727
736
  </el-col>
728
- <el-col :span="24" v-if="contract.quoteType != 'FIXED'">
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
- // selectFileListProp: {
2393
- // handler(val) {
2394
- // this.selectFileList = val
2395
- // },
2396
- // immediate: true,
2397
- // deep: true
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);
@@ -14,6 +14,7 @@
14
14
  <img class="progress-img" :src="info.img" alt="">
15
15
  <div class="progress-text">{{ info.text}}</div>
16
16
  </div>
17
+ <slot name="action"></slot>
17
18
  </el-col>
18
19
  <el-col :span="info.hidden ? 11 : 16">
19
20
  <div class="progress-info"
@@ -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" :rules="rules" label-position="right" label-width="80px">
14
- <el-row>
15
- <el-col :span="6">
16
- <el-form-item label="船公司" prop="shippingCompany">
17
- <el-select v-model="form.shippingCompany" placeholder="请选择船公司" clearable filterable size="small">
18
- <el-option v-for="dict in dict.type.shipping_company" :key="dict.value" :label="dict.label" :value="dict.value" />
19
- </el-select>
20
- </el-form-item>
21
- </el-col>
22
- <el-col :span="6">
23
- <el-form-item label="订舱号" prop="bookingNo">
24
- <el-input v-model="form.bookingNo" placeholder="请输入订舱号" size="small" />
25
- </el-form-item>
26
- </el-col>
27
- <el-col :span="6">
28
- <el-form-item label="提单号" prop="billOfLadingNo">
29
- <el-input v-model="form.billOfLadingNo" placeholder="请输入提单号" size="small" />
30
- </el-form-item>
31
- </el-col>
32
- <el-col :span="6">
33
- <el-form-item label="目的港" prop="destinationPort">
34
- <el-select v-model="form.destinationPort" style="width: 100%" placeholder="请选择目的港" clearable filterable size="small">
35
- <el-option v-for="(item, i) in destinationPortList" :key="i" :value="item.dictValue" :label="item.dictValue" />
36
- </el-select>
37
- </el-form-item>
38
- </el-col>
39
- <el-col :span="6">
40
- <el-form-item label="起运港" prop="originPort">
41
- <el-select v-model="form.originPort" style="width: 100%" placeholder="请选择起运港" clearable filterable size="small">
42
- <el-option v-for="(item, i) in portOptionList" :key="'origin'+i" :value="item.dictValue" :label="item.dictValue" />
43
- </el-select>
44
- </el-form-item>
45
- </el-col>
46
- <el-col :span="6">
47
- <el-form-item label="海运距离(KM)" prop="portDistance">
48
- <el-input v-decimal="2" v-model="form.portDistance" placeholder="请输入海运距离" size="small" />
49
- </el-form-item>
50
- </el-col>
51
- </el-row>
52
- <el-row>
53
- <el-col :span="6">
54
- <el-form-item label="ETD" prop="etd" label-width="100">
55
- <el-date-picker
56
- style="width: 75%"
57
- clearable
58
- size="small"
59
- v-model="form.etd"
60
- type="date"
61
- value-format="yyyy-MM-dd HH:mm:ss"
62
- placeholder="请选择预计离港日期"
63
- ></el-date-picker>
64
- </el-form-item>
65
- </el-col>
66
- <el-col :span="6">
67
- <el-form-item label="ETA" prop="eta" label-width="100">
68
- <div style="display: flex; flex-direction: row; align-items: center">
69
- <el-date-picker
70
- style="width: 75%"
71
- clearable
72
- size="small"
73
- v-model="form.eta"
74
- type="date"
75
- value-format="yyyy-MM-dd HH:mm:ss"
76
- placeholder="请选择预计到港日期"
77
- ></el-date-picker>
78
- <el-button type="text" @click="refreshUpdateTime">更新</el-button>
79
- </div>
80
- </el-form-item>
81
- </el-col>
82
- <el-col :span="6">
83
- <el-form-item label="实际到港日" prop="actualArrivalDate" label-width="90px">
84
- <el-date-picker
85
- style="width: 75%"
86
- clearable
87
- size="small"
88
- v-model="form.actualArrivalDate"
89
- type="date"
90
- value-format="yyyy-MM-dd HH:mm:ss"
91
- placeholder="请选择实际到港日"
92
- ></el-date-picker>
93
- </el-form-item>
94
- </el-col>
95
- <el-col :span="6">
96
- <el-form-item label="Loading Date" prop="loadingTime" label-width="110px">
97
- <el-date-picker
98
- style="width: 75%"
99
- clearable
100
- size="small"
101
- v-model="form.loadingTime"
102
- type="date"
103
- value-format="yyyy-MM-dd HH:mm:ss"
104
- placeholder="请选择loading Date"
105
- ></el-date-picker>
106
- </el-form-item>
107
- </el-col>
108
- </el-row>
109
- <el-row>
110
- <el-col :span="8">
111
- <el-form-item label="对应采购合同" prop="purchaseContractNo" label-width="100">
112
- <el-select v-model="form.purchaseContractNo" size="small" clearable="">
113
- <el-option v-for="item in contract.purchaseContractNos" :key="item" :label="item" :value="item" />
114
- </el-select>
115
- </el-form-item>
116
- </el-col>
117
- <el-col :span="8">
118
- <el-form-item label="ETA更新" prop="etaUpdateOn" label-width="100">
119
- <el-switch v-model="form.etaUpdateOn" active-text="自动" inactive-text="手动"> </el-switch>
120
- </el-form-item>
121
- </el-col>
122
- </el-row>
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-row v-for="(dt, index) in form.containerList" :key="'dt' + index">
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="105px">
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="105px">
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="105px">
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="105px">{{
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
- <div>
247
- {{ scope2.row.packageTareWeight ? scope2.row.packageTareWeight : '自动计算' }}
248
- </div>
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 { listDictData, portDictList } from '../../../api/biz/dictData'
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
- listDictData({
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
- portDictList().then((res) => {
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 (this.form.containerList[index].containerDetailList[k].packageList[yindex].packageGrossWeight && this.form.containerList[index].containerDetailList[k].packageList[yindex].packageNetWeight) {
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
- this.form.containerList[index].containerDetailList[k].packageList[yindex].packageNetWeight
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
- if (billInfoSummary.shippingCompany) {
1328
- this.form.shippingCompany = billInfoSummary.shippingCompany
1329
- }
1351
+ if (billInfoSummary.shippingCompany) {
1352
+ this.form.shippingCompany = billInfoSummary.shippingCompany
1353
+ }
1330
1354
 
1331
- if (billInfoSummary.bookingNo) {
1332
- this.form.bookingNo = billInfoSummary.bookingNo
1333
- }
1355
+ if (billInfoSummary.bookingNo) {
1356
+ this.form.bookingNo = billInfoSummary.bookingNo
1357
+ }
1334
1358
 
1335
- if (billInfoSummary.billOfLadingNo) {
1336
- this.form.billOfLadingNo = billInfoSummary.billOfLadingNo
1337
- }
1359
+ if (billInfoSummary.billOfLadingNo) {
1360
+ this.form.billOfLadingNo = billInfoSummary.billOfLadingNo
1361
+ }
1338
1362
 
1339
- if (billInfoSummary.destinationPort) {
1340
- this.form.destinationPort = billInfoSummary.destinationPort
1341
- }
1363
+ if (billInfoSummary.destinationPort) {
1364
+ this.form.destinationPort = billInfoSummary.destinationPort
1365
+ }
1342
1366
 
1343
- if (billInfoSummary.originPort) {
1344
- this.form.originPort = billInfoSummary.originPort
1345
- }
1367
+ if (billInfoSummary.originPort) {
1368
+ this.form.originPort = billInfoSummary.originPort
1369
+ }
1346
1370
 
1347
- if (billInfoSummary.portDistance) {
1348
- this.form.portDistance = billInfoSummary.portDistance
1349
- }
1371
+ if (billInfoSummary.portDistance) {
1372
+ this.form.portDistance = billInfoSummary.portDistance
1373
+ }
1350
1374
 
1351
- // if (billInfoSummary.actualArrivalDate) {
1352
- // this.form.actualArrivalDate = billInfoSummary.actualArrivalDate;
1353
- // }
1375
+ // if (billInfoSummary.actualArrivalDate) {
1376
+ // this.form.actualArrivalDate = billInfoSummary.actualArrivalDate;
1377
+ // }
1354
1378
 
1355
- // if (billInfoSummary.loadingTime) {
1356
- // this.form.loadingTime = billInfoSummary.loadingTime;
1357
- // }
1379
+ // if (billInfoSummary.loadingTime) {
1380
+ // this.form.loadingTime = billInfoSummary.loadingTime;
1381
+ // }
1358
1382
 
1359
- // if (billInfoSummary.etd) {
1360
- // this.form.etd = billInfoSummary.etd;
1361
- // }
1383
+ // if (billInfoSummary.etd) {
1384
+ // this.form.etd = billInfoSummary.etd;
1385
+ // }
1362
1386
 
1363
- // if (billInfoSummary.eta) {
1364
- // this.form.eta = billInfoSummary.eta;
1365
- // }
1387
+ // if (billInfoSummary.eta) {
1388
+ // this.form.eta = billInfoSummary.eta;
1389
+ // }
1366
1390
 
1367
- if (billInfoSummary?.containerOcrList?.length) {
1368
- this.form.containerList = []
1369
- billInfoSummary?.containerOcrList.forEach((containerItem, index) => {
1370
- this.form.containerList.push({
1371
- containerId: null,
1372
- shipmentId: shipmentId,
1373
- contractNo: containerItem.containerNo,
1374
- invoiceNo: containerItem.invoiceNo,
1375
- totalGoodsGrossWeight: containerItem.totalGoodsGrossWeight,
1376
- totalGoodsNetWeight: containerItem.totalGoodsNetWeight,
1377
- totalGoodsTareWeight: containerItem.totalGoodsTareWeight,
1378
- totalGoodsNumber: containerItem.totalGoodsNumber,
1379
- containerNo: containerItem.containerNo,
1380
- containerTareWeight: containerItem.totalGoodsTareWeight ? containerItem.totalGoodsTareWeight * 1000 : null,
1381
- sealNo: containerItem.sealNo,
1382
- isGenerateInvoice: null,
1383
- remark: containerItem.remark,
1384
- createTime: null,
1385
- updateTime: null,
1386
- containerDetailList: []
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 = this.$encryptId(this.contract.contractId)
176
- const encryptedDealId = this.$encryptId(this.contract.dealId)
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}`
@@ -92,8 +92,6 @@ export default {
92
92
  sellerCompanyAddress: null,
93
93
  //港口数据列表
94
94
  portDictList: [],
95
- //国家数据李北奥
96
- countryDictList: [],
97
95
  //表单
98
96
  objectionForm: {
99
97
  objection: ''