doctor-admin-components 1.0.14-beta.4 → 1.0.14-beta.40
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 +4 -1
- package/package.json +1 -1
- package/packages/index.js +7 -4
- package/packages/src/api/biz/bizContract.js +10 -0
- package/packages/src/api/biz/bizShipment.js +30 -1
- package/packages/src/i18n/zh-CN/message.json +1 -1
- package/packages/src/index.js +9 -2
- package/packages/src/utils/zip.js +29 -11
- package/packages/src/views/biz/bizFileInfo/contract.vue +489 -361
- package/packages/src/views/biz/bizFileInfo/contractFile/BillOfLadingNoTab.vue +9 -7
- package/packages/src/views/biz/bizFileInfo/contractFile/IMGPreviewCheckBox.vue +24 -6
- package/packages/src/views/biz/bizFileInfo/contractFile/SectionSlot.vue +11 -3
- package/packages/src/views/biz/bizFileInfo/fileShow.vue +16 -6
- package/packages/src/views/biz/bizShipment/add.vue +82 -42
- package/packages/src/views/biz/contractTracing/billInfo.vue +15 -7
- package/packages/src/views/biz/contractTracing/changrLogList.vue +67 -0
- package/packages/src/views/biz/contractTracing/companyBanks.vue +15 -5
- package/packages/src/views/biz/contractTracing/contractPdf.vue +2 -7
- package/packages/src/views/biz/contractTracing/contractSummary.vue +101 -73
- package/packages/src/views/biz/contractTracing/contractTracingDetail.vue +5 -77
- package/packages/src/views/biz/contractTracing/editBill.vue +18 -10
- package/packages/src/views/biz/contractTracing/queryDeductionRecords.vue +103 -0
- package/packages/src/views/biz/contractTracing/shipmentPurchaseAmount.vue +359 -79
- package/packages/src/views/biz/contractTracing/shipmentPurchaseAmountEditDialog.vue +176 -0
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
-->
|
|
9
9
|
<template>
|
|
10
10
|
<div class="bill-no-root" :style="open ? 'height:max-content': ''">
|
|
11
|
-
<div :class="'bill-no'" :style="shipmentIndex == shipBillNo ? { color: progressInfo.bgcolor } : ''" v-for="(
|
|
11
|
+
<div :class="'bill-no'" :style="shipmentIndex == shipBillNo ? { color:'white', fontSize: '16px', backgroundColor: progressInfo.bgcolor, border: '0' } : { color: '#231F20', fontSize: '14px', border: '1px solid #231F20', backgroundColor:'transparent' }" v-for="(
|
|
12
12
|
shipmentFileInfo, shipmentIndex
|
|
13
13
|
) in contractFileInfoData.shipmentFileInfoList" :key="shipmentIndex" @click="changeShipBillNo(shipmentIndex)">
|
|
14
14
|
|
|
@@ -81,10 +81,9 @@ export default {
|
|
|
81
81
|
.bill-no-root {
|
|
82
82
|
display: flex;
|
|
83
83
|
flex-wrap: wrap;
|
|
84
|
-
padding:0 20px;
|
|
85
84
|
width:100%;
|
|
86
85
|
position:relative;
|
|
87
|
-
height:
|
|
86
|
+
height:55px;
|
|
88
87
|
overflow:hidden;
|
|
89
88
|
|
|
90
89
|
.billOfLadingNo-more {
|
|
@@ -99,11 +98,14 @@ export default {
|
|
|
99
98
|
}
|
|
100
99
|
|
|
101
100
|
.bill-no {
|
|
102
|
-
width:23%;
|
|
103
101
|
font-size: 14px;
|
|
104
|
-
color: #
|
|
105
|
-
padding:
|
|
106
|
-
|
|
102
|
+
color: #231F20;
|
|
103
|
+
padding: 0 10px;
|
|
104
|
+
height: 40px;
|
|
105
|
+
align-content: center;
|
|
106
|
+
border-radius: 8px;
|
|
107
|
+
margin-right: 30px;
|
|
108
|
+
margin-bottom: 15px;
|
|
107
109
|
}
|
|
108
110
|
|
|
109
111
|
.bill-no-active {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @Author: zhangpengwei@1338418459736990.onaliyun.com zhangpengwei@1338418459736990.onaliyun.com
|
|
3
3
|
* @Date: 2024-02-26 10:03:01
|
|
4
4
|
* @LastEditors: zhangpengwei@1338418459736990.onaliyun.com zhangpengwei@1338418459736990.onaliyun.com
|
|
5
|
-
* @LastEditTime: 2024-
|
|
5
|
+
* @LastEditTime: 2024-07-25 18:37:49
|
|
6
6
|
* @FilePath: /doctor-admin-components 公共组件/packages/src/views/biz/bizFileInfo/IMGPreviewCheckBox.vue
|
|
7
7
|
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
|
8
8
|
-->
|
|
@@ -64,7 +64,8 @@ export default {
|
|
|
64
64
|
imgList: [],
|
|
65
65
|
srcList:[],
|
|
66
66
|
loadingInstance: null,
|
|
67
|
-
timer: null
|
|
67
|
+
timer: null,
|
|
68
|
+
hasClicked: false,
|
|
68
69
|
};
|
|
69
70
|
},
|
|
70
71
|
|
|
@@ -87,6 +88,19 @@ export default {
|
|
|
87
88
|
checkClick(index) {
|
|
88
89
|
this.imgList[index].checked = !this.imgList[index].checked;
|
|
89
90
|
},
|
|
91
|
+
clickSelectAll() {
|
|
92
|
+
this.hasClicked = !this.hasClicked
|
|
93
|
+
if (this.hasClicked) {
|
|
94
|
+
this.checkAll1()
|
|
95
|
+
} else {
|
|
96
|
+
this.cancelAll1()
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
hasSelectAll() {
|
|
100
|
+
let res = this.imgList.find((item) => item.checked);
|
|
101
|
+
// console.log('xxxxxxx', res)
|
|
102
|
+
return res
|
|
103
|
+
},
|
|
90
104
|
checkAll1() {
|
|
91
105
|
this.imgList.forEach((item) => {
|
|
92
106
|
item.checked = true;
|
|
@@ -192,9 +206,9 @@ export default {
|
|
|
192
206
|
watch: {
|
|
193
207
|
imgArr: {
|
|
194
208
|
handler(val) {
|
|
209
|
+
this.imgList = [];
|
|
210
|
+
this.srcList = [];
|
|
195
211
|
if(val.length) {
|
|
196
|
-
this.imgList = [];
|
|
197
|
-
this.srcList = [];
|
|
198
212
|
val.forEach((item) => {
|
|
199
213
|
let coverUrl = this.othersFile(item.url)
|
|
200
214
|
this.imgList.push({
|
|
@@ -204,6 +218,9 @@ export default {
|
|
|
204
218
|
});
|
|
205
219
|
this.srcList.push(coverUrl);
|
|
206
220
|
});
|
|
221
|
+
} else {
|
|
222
|
+
this.imgList = []
|
|
223
|
+
this.srcList = []
|
|
207
224
|
}
|
|
208
225
|
},
|
|
209
226
|
deep: true,
|
|
@@ -288,7 +305,7 @@ export default {
|
|
|
288
305
|
.batch-download {
|
|
289
306
|
position: absolute;
|
|
290
307
|
top: -41px;
|
|
291
|
-
left:
|
|
308
|
+
left: 650px;
|
|
292
309
|
min-width: 80px;
|
|
293
310
|
width:max-content;
|
|
294
311
|
padding:0 10px;
|
|
@@ -297,11 +314,12 @@ export default {
|
|
|
297
314
|
text-align: center;
|
|
298
315
|
border-radius: 10px;
|
|
299
316
|
background-color: #54B8FF;
|
|
317
|
+
color: white;
|
|
300
318
|
cursor: pointer;
|
|
301
319
|
font-size:12px;
|
|
302
320
|
}
|
|
303
321
|
.batch-delete {
|
|
304
|
-
left:
|
|
322
|
+
left: 740px;
|
|
305
323
|
}
|
|
306
324
|
}
|
|
307
325
|
|
|
@@ -8,14 +8,14 @@
|
|
|
8
8
|
-->
|
|
9
9
|
<template>
|
|
10
10
|
<div>
|
|
11
|
-
<div>
|
|
11
|
+
<div @click="clickOpen">
|
|
12
12
|
<slot name="header"></slot>
|
|
13
13
|
</div>
|
|
14
14
|
<div class="slot-content-root" :style="{backgroundColor:info.bgcolor}">
|
|
15
15
|
<div :style="open ? 'height:max-content' : 'height:0;overflow:hidden'">
|
|
16
16
|
<slot name="content"></slot>
|
|
17
17
|
</div>
|
|
18
|
-
<div class="arrow" @click="
|
|
18
|
+
<div class="arrow" @click="clickOpen">
|
|
19
19
|
<i v-if="open" class="el-icon-arrow-up"></i>
|
|
20
20
|
<i v-else class="el-icon-arrow-down"></i>
|
|
21
21
|
</div>
|
|
@@ -46,7 +46,14 @@ export default {
|
|
|
46
46
|
},
|
|
47
47
|
|
|
48
48
|
methods: {
|
|
49
|
-
|
|
49
|
+
// 设置状态
|
|
50
|
+
setOpen(isOpen) {
|
|
51
|
+
this.open = isOpen
|
|
52
|
+
},
|
|
53
|
+
clickOpen() {
|
|
54
|
+
this.open = !this.open
|
|
55
|
+
this.$emit('updateOpen', this.open)
|
|
56
|
+
}
|
|
50
57
|
},
|
|
51
58
|
watch: {
|
|
52
59
|
infoPro: {
|
|
@@ -64,6 +71,7 @@ export default {
|
|
|
64
71
|
|
|
65
72
|
.slot-content-root {
|
|
66
73
|
padding-bottom:25px;
|
|
74
|
+
margin-bottom: 30px;
|
|
67
75
|
background-color: #fff;
|
|
68
76
|
position: relative;
|
|
69
77
|
.arrow {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="file-info" v-if="fileInfo.url">
|
|
3
3
|
<div class="main">
|
|
4
|
-
<el-checkbox v-if="!this.hiddenOperation" label="" class="checkbox-position" @change="handleCheck" v-model="checkFlag">
|
|
4
|
+
<el-checkbox v-if="!this.hiddenOperation && !hiddenSelect" label="" class="checkbox-position" @change="handleCheck" v-model="checkFlag">
|
|
5
5
|
</el-checkbox>
|
|
6
6
|
<div class="area">
|
|
7
7
|
<div class="area-info">
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
<el-image style="width: 38px; height: 46px" :src="fileInfo.url" fit="contain" :preview-src-list="[fileInfo.url]" v-else-if="isImage(fileInfo.url)"></el-image>
|
|
10
10
|
<div class="area-file" v-else></div>
|
|
11
11
|
<div>
|
|
12
|
-
<div>
|
|
12
|
+
<div class="name-width">{{ fileInfo.fileName }}</div>
|
|
13
13
|
<div class="preview-download-root">
|
|
14
14
|
<div
|
|
15
15
|
v-if="!fileInfo.downloadUrl"
|
|
@@ -109,10 +109,18 @@ export default {
|
|
|
109
109
|
type: Boolean,
|
|
110
110
|
default: false,
|
|
111
111
|
},
|
|
112
|
+
hiddenSelect: {
|
|
113
|
+
type: Boolean,
|
|
114
|
+
default: false,
|
|
115
|
+
},
|
|
112
116
|
type: {
|
|
113
117
|
type: String,
|
|
114
118
|
default: '',
|
|
115
119
|
},
|
|
120
|
+
deleteTips: {
|
|
121
|
+
type: String,
|
|
122
|
+
default: null,
|
|
123
|
+
},
|
|
116
124
|
},
|
|
117
125
|
data() {
|
|
118
126
|
return {
|
|
@@ -129,7 +137,7 @@ export default {
|
|
|
129
137
|
form: {},
|
|
130
138
|
//上传表单
|
|
131
139
|
uploadForm: {},
|
|
132
|
-
checkFlag: false
|
|
140
|
+
checkFlag: false,
|
|
133
141
|
}
|
|
134
142
|
},
|
|
135
143
|
computed: {
|
|
@@ -203,7 +211,7 @@ export default {
|
|
|
203
211
|
handleDelete(row) {
|
|
204
212
|
const fileIds = row.fileId || this.ids
|
|
205
213
|
this.$modal
|
|
206
|
-
.confirm('是否确认删除该文件?')
|
|
214
|
+
.confirm(this.deleteTips || '是否确认删除该文件?')
|
|
207
215
|
.then(function () {
|
|
208
216
|
return delBizFileInfo(fileIds)
|
|
209
217
|
})
|
|
@@ -310,8 +318,10 @@ export default {
|
|
|
310
318
|
<style lang="scss" scoped>
|
|
311
319
|
.file-info {
|
|
312
320
|
min-width: 450px;
|
|
313
|
-
|
|
314
|
-
|
|
321
|
+
@media screen and (max-width: 768px) {
|
|
322
|
+
min-width: 300px;
|
|
323
|
+
max-width: 300px;
|
|
324
|
+
}
|
|
315
325
|
.main {
|
|
316
326
|
display: flex;
|
|
317
327
|
.checkbox-position {
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
<!-- 添加或修改装运对话框 -->
|
|
4
4
|
<el-dialog :visible.sync="open" z-index="1000" width="80%" :before-close="handleClose" :title="title">
|
|
5
5
|
<slot name="">
|
|
6
|
+
<span v-if="isDraft" style="color: red">提示: 当前打开了【{{ form.lastUpdateUserName }}】在【{{ form.updateTime }}】保存的装运草稿</span>
|
|
6
7
|
<span v-if="voidInvoiceList" style="color: red">【快捷转卖】:系统检测到此销售合同关联的采购合同存在【已作废】的装运,</span>
|
|
7
8
|
<el-button v-if="voidInvoiceList" @click="handleReference" size="mini" type="text">点击这里直接复制并引用</el-button>
|
|
8
9
|
</slot>
|
|
@@ -50,15 +51,18 @@
|
|
|
50
51
|
</el-col>
|
|
51
52
|
<el-col :span="6">
|
|
52
53
|
<el-form-item label="ETA" prop="eta" label-width="100">
|
|
53
|
-
<
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
54
|
+
<div style="display: flex; flex-direction: row; align-items: center">
|
|
55
|
+
<el-date-picker
|
|
56
|
+
style="width: 75%"
|
|
57
|
+
clearable
|
|
58
|
+
size="small"
|
|
59
|
+
v-model="form.eta"
|
|
60
|
+
type="date"
|
|
61
|
+
value-format="yyyy-MM-dd HH:mm:ss"
|
|
62
|
+
placeholder="请选择预计到港日期"
|
|
63
|
+
></el-date-picker>
|
|
64
|
+
<el-button type="text" @click="refreshUpdateTime">更新</el-button>
|
|
65
|
+
</div>
|
|
62
66
|
</el-form-item>
|
|
63
67
|
</el-col>
|
|
64
68
|
<el-col :span="6">
|
|
@@ -210,7 +214,7 @@
|
|
|
210
214
|
v-model="scope2.row.packageGrossWeight"
|
|
211
215
|
placeholder="请输入毛重"
|
|
212
216
|
size="mini"
|
|
213
|
-
|
|
217
|
+
v-decimal="3"
|
|
214
218
|
@input="limitDecimalPlaces(index, scope1.$index, scope2.$index, scope2.row, 'packageGrossWeight')"
|
|
215
219
|
></el-input>
|
|
216
220
|
</el-form-item>
|
|
@@ -229,7 +233,7 @@
|
|
|
229
233
|
v-model="scope2.row.packageTareWeight"
|
|
230
234
|
placeholder="请输入皮重"
|
|
231
235
|
size="mini"
|
|
232
|
-
|
|
236
|
+
v-decimal="3"
|
|
233
237
|
@input="limitDecimalPlaces(index, scope1.$index, scope2.$index, scope2.row, 'packageTareWeight')"
|
|
234
238
|
></el-input>
|
|
235
239
|
</el-form-item>
|
|
@@ -244,7 +248,13 @@
|
|
|
244
248
|
:rules="rules.packageNetWeight"
|
|
245
249
|
:prop="'containerList.' + index + '.containerDetailList.' + scope1.$index + '.packageList.' + scope2.$index + '.packageNetWeight'"
|
|
246
250
|
>
|
|
247
|
-
<el-input
|
|
251
|
+
<el-input
|
|
252
|
+
v-model="scope2.row.packageNetWeight"
|
|
253
|
+
placeholder="请输入净重"
|
|
254
|
+
size="mini"
|
|
255
|
+
v-decimal="3"
|
|
256
|
+
@input="limitDecimalPlaces(index, scope1.$index, scope2.$index, scope2.row, 'packageNetWeight')"
|
|
257
|
+
></el-input>
|
|
248
258
|
</el-form-item>
|
|
249
259
|
</template>
|
|
250
260
|
</el-table-column>
|
|
@@ -384,7 +394,7 @@
|
|
|
384
394
|
</el-row>
|
|
385
395
|
</el-form>
|
|
386
396
|
<div slot="footer" class="dialog-footer">
|
|
387
|
-
<el-button type="warning" @click="onSaveDraft" style="margin-right: 10px">保存草稿</el-button>
|
|
397
|
+
<el-button type="warning" @click="onSaveDraft" style="margin-right: 10px" v-if="title === '生成装运'">保存草稿</el-button>
|
|
388
398
|
<el-button type="primary" @click="submitShipment" style="margin-right: 10px">{{ title == '生成装运' ? '仅生成装运' : '保存草稿' }}</el-button>
|
|
389
399
|
<el-dropdown @command="(command) => handleTemplate(command)" trigger="click" v-if="title == '生成装运'" style="margin-right: 10px">
|
|
390
400
|
<el-button type="primary">{{ '装运并下载' }}</el-button>
|
|
@@ -448,7 +458,8 @@ import {
|
|
|
448
458
|
updateWithContainer,
|
|
449
459
|
updateWithContainerAndInvoice,
|
|
450
460
|
saveDraft,
|
|
451
|
-
getDraft
|
|
461
|
+
getDraft,
|
|
462
|
+
refreshUpdateTime
|
|
452
463
|
} from '../../../api/biz/bizShipment'
|
|
453
464
|
import { generateFinalInvoiceByShipmentId } from '../../../api/biz/bizInvoice'
|
|
454
465
|
import { updateBizContractDetail } from '../../../api/biz/bizContractDetail'
|
|
@@ -547,7 +558,8 @@ export default {
|
|
|
547
558
|
//编辑开关
|
|
548
559
|
editSwitch: false,
|
|
549
560
|
//
|
|
550
|
-
currentRow: null
|
|
561
|
+
currentRow: null,
|
|
562
|
+
isDraft: false
|
|
551
563
|
}
|
|
552
564
|
},
|
|
553
565
|
props: {
|
|
@@ -674,15 +686,15 @@ export default {
|
|
|
674
686
|
},
|
|
675
687
|
|
|
676
688
|
limitDecimalPlaces(index, scope1Index, scope2Index, data, type) {
|
|
677
|
-
let value = data[type]
|
|
678
|
-
const decimalPlaces = 3
|
|
679
|
-
if (!isNaN(value)) {
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
}
|
|
689
|
+
// let value = data[type]
|
|
690
|
+
// const decimalPlaces = 3
|
|
691
|
+
// if (!isNaN(value)) {
|
|
692
|
+
// value = parseFloat(value).toFixed(decimalPlaces)
|
|
693
|
+
// value = parseFloat(value).toString()
|
|
694
|
+
// data[type] = value
|
|
695
|
+
// }
|
|
684
696
|
if (type == 'packageGrossWeight') {
|
|
685
|
-
this.changePackageGrossWeight(index, scope1Index, scope2Index)
|
|
697
|
+
this.changePackageGrossWeight(index, scope1Index, scope2Index)
|
|
686
698
|
} else if (type == 'packageTareWeight') {
|
|
687
699
|
this.changePackageTareWeight(index, scope1Index, scope2Index)
|
|
688
700
|
} else if (type == 'packageNetWeight') {
|
|
@@ -690,21 +702,27 @@ export default {
|
|
|
690
702
|
},
|
|
691
703
|
|
|
692
704
|
changePackageGrossWeight(index, k, yindex) {
|
|
693
|
-
this.form.containerList[index].containerDetailList[k].goodsGrossWeight = this.form.containerList[index].containerDetailList[k].packageList
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
705
|
+
this.form.containerList[index].containerDetailList[k].goodsGrossWeight = this.form.containerList[index].containerDetailList[k].packageList
|
|
706
|
+
.reduce((total, item) => {
|
|
707
|
+
return total + Number(item.packageGrossWeight)
|
|
708
|
+
}, 0)
|
|
709
|
+
.toFixed(3)
|
|
710
|
+
this.form.containerList[index].totalGoodsGrossWeight = this.form.containerList[index].containerDetailList
|
|
711
|
+
.reduce((total, item) => {
|
|
712
|
+
return total + Number(item.goodsGrossWeight)
|
|
713
|
+
}, 0)
|
|
714
|
+
.toFixed(3)
|
|
699
715
|
//计算净重
|
|
700
716
|
this.form.containerList[index].containerDetailList[k].packageList[yindex].packageNetWeight = (
|
|
701
717
|
this.form.containerList[index].containerDetailList[k].packageList[yindex].packageGrossWeight -
|
|
702
718
|
this.form.containerList[index].containerDetailList[k].packageList[yindex].packageTareWeight
|
|
703
719
|
).toFixed(3)
|
|
704
720
|
|
|
705
|
-
this.form.containerList[index].containerDetailList[k].goodsNetWeight = this.form.containerList[index].containerDetailList[k].packageList
|
|
706
|
-
|
|
707
|
-
|
|
721
|
+
this.form.containerList[index].containerDetailList[k].goodsNetWeight = this.form.containerList[index].containerDetailList[k].packageList
|
|
722
|
+
.reduce((total, item) => {
|
|
723
|
+
return total + Number(item.packageNetWeight)
|
|
724
|
+
}, 0)
|
|
725
|
+
.toFixed(3)
|
|
708
726
|
|
|
709
727
|
this.form.containerList[index].totalGoodsNetWeight = this.form.containerList[index].containerDetailList
|
|
710
728
|
.reduce((total, item) => {
|
|
@@ -714,21 +732,27 @@ export default {
|
|
|
714
732
|
},
|
|
715
733
|
changePackageTareWeight(index, k, yindex) {
|
|
716
734
|
//计算皮重
|
|
717
|
-
this.form.containerList[index].containerDetailList[k].goodsTareWeight = this.form.containerList[index].containerDetailList[k].packageList
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
735
|
+
this.form.containerList[index].containerDetailList[k].goodsTareWeight = this.form.containerList[index].containerDetailList[k].packageList
|
|
736
|
+
.reduce((total, item) => {
|
|
737
|
+
return total + Number(item.packageTareWeight)
|
|
738
|
+
}, 0)
|
|
739
|
+
.toFixed(3)
|
|
740
|
+
this.form.containerList[index].totalGoodsTareWeight = this.form.containerList[index].containerDetailList
|
|
741
|
+
.reduce((total, item) => {
|
|
742
|
+
return total + Number(item.goodsTareWeight)
|
|
743
|
+
}, 0)
|
|
744
|
+
.toFixed(3)
|
|
723
745
|
//计算净重
|
|
724
746
|
this.form.containerList[index].containerDetailList[k].packageList[yindex].packageNetWeight = (
|
|
725
747
|
this.form.containerList[index].containerDetailList[k].packageList[yindex].packageGrossWeight -
|
|
726
748
|
this.form.containerList[index].containerDetailList[k].packageList[yindex].packageTareWeight
|
|
727
749
|
).toFixed(3)
|
|
728
750
|
|
|
729
|
-
this.form.containerList[index].containerDetailList[k].goodsNetWeight = this.form.containerList[index].containerDetailList[k].packageList
|
|
730
|
-
|
|
731
|
-
|
|
751
|
+
this.form.containerList[index].containerDetailList[k].goodsNetWeight = this.form.containerList[index].containerDetailList[k].packageList
|
|
752
|
+
.reduce((total, item) => {
|
|
753
|
+
return total + Number(item.packageNetWeight)
|
|
754
|
+
}, 0)
|
|
755
|
+
.toFixed(3)
|
|
732
756
|
|
|
733
757
|
this.form.containerList[index].totalGoodsNetWeight = this.form.containerList[index].containerDetailList
|
|
734
758
|
.reduce((total, item) => {
|
|
@@ -1299,13 +1323,29 @@ export default {
|
|
|
1299
1323
|
}
|
|
1300
1324
|
},
|
|
1301
1325
|
async onGetDraft() {
|
|
1302
|
-
if(this.form.contractIds) {
|
|
1326
|
+
if (this.form.contractIds) {
|
|
1303
1327
|
const contractId = this.form.contractIds[0]
|
|
1304
1328
|
const res = await getDraft(contractId)
|
|
1305
1329
|
if (res.data) {
|
|
1330
|
+
this.isDraft = true
|
|
1306
1331
|
this.form = res.data
|
|
1332
|
+
} else {
|
|
1333
|
+
this.isDraft = false
|
|
1307
1334
|
}
|
|
1308
1335
|
}
|
|
1336
|
+
},
|
|
1337
|
+
refreshUpdateTime() {
|
|
1338
|
+
if (this.form.shipmentId) {
|
|
1339
|
+
const loading = this.openLoading()
|
|
1340
|
+
refreshUpdateTime(this.form.shipmentId)
|
|
1341
|
+
.then((res) => {
|
|
1342
|
+
loading.close()
|
|
1343
|
+
this.$modal.msgSuccess('更新成功')
|
|
1344
|
+
})
|
|
1345
|
+
.catch(() => {
|
|
1346
|
+
loading.close()
|
|
1347
|
+
})
|
|
1348
|
+
}
|
|
1309
1349
|
}
|
|
1310
1350
|
}
|
|
1311
1351
|
}
|
|
@@ -198,17 +198,17 @@
|
|
|
198
198
|
<el-row>
|
|
199
199
|
<el-col :span="8">
|
|
200
200
|
<el-form-item :label="$t('contract.company') + ':'">
|
|
201
|
-
{{
|
|
201
|
+
{{ secondNotifyInfoInfo ? secondNotifyInfoInfo.companyName : ""}}
|
|
202
202
|
</el-form-item>
|
|
203
203
|
</el-col>
|
|
204
204
|
<el-col :span="8">
|
|
205
205
|
<el-form-item :label="$t('contract.taxId') + ':'">
|
|
206
|
-
{{
|
|
206
|
+
{{ secondNotifyInfoInfo ? secondNotifyInfoInfo.taxNumber : "" }}
|
|
207
207
|
</el-form-item>
|
|
208
208
|
</el-col>
|
|
209
209
|
<el-col :span="8">
|
|
210
210
|
<el-form-item :label="$t('contract.address') + ':'">
|
|
211
|
-
{{
|
|
211
|
+
{{ secondNotifyInfoInfo ? secondNotifyInfoInfo.address : "" }}
|
|
212
212
|
</el-form-item>
|
|
213
213
|
</el-col>
|
|
214
214
|
</el-row>
|
|
@@ -216,19 +216,19 @@
|
|
|
216
216
|
<el-row>
|
|
217
217
|
<el-col :span="8">
|
|
218
218
|
<el-form-item :label="$t('contract.contact') + ':'">
|
|
219
|
-
{{
|
|
219
|
+
{{ secondNotifyInfoInfo ? secondNotifyInfoInfo.contactPerson : "" }}
|
|
220
220
|
</el-form-item>
|
|
221
221
|
</el-col>
|
|
222
222
|
<el-col :span="8">
|
|
223
223
|
<el-form-item :label="$t('contract.phoneNumber') + ':'">
|
|
224
|
-
{{
|
|
224
|
+
{{ secondNotifyInfoInfo ? secondNotifyInfoInfo.phoneNumber : "" }}
|
|
225
225
|
</el-form-item>
|
|
226
226
|
</el-col>
|
|
227
227
|
<el-col :span="8"></el-col>
|
|
228
228
|
</el-row>
|
|
229
229
|
|
|
230
230
|
<el-row>
|
|
231
|
-
<el-form-item :label="$t('contract.email') + ':'">{{
|
|
231
|
+
<el-form-item :label="$t('contract.email') + ':'">{{ secondNotifyInfoInfo ? secondNotifyInfoInfo.email : "" }}</el-form-item>
|
|
232
232
|
</el-row>
|
|
233
233
|
<el-divider></el-divider>
|
|
234
234
|
<div class="sub-title mb20">{{ $t('contract.otherInfo') }}</div>
|
|
@@ -303,6 +303,7 @@ import { listBizContractCompany } from '../../../api/biz/bizContractCompany'
|
|
|
303
303
|
import BillPdf from './billPdf.vue'
|
|
304
304
|
import { listCompanyBillGoods } from '../../../api/biz/bizCompanyBillGoods'
|
|
305
305
|
import EditBill from './editBill.vue'
|
|
306
|
+
import { getSecondNotifyInfo } from '../../../api/biz/bizContract'
|
|
306
307
|
// import { getSaleContractInfo } from '../../../api/biz/bizContract'
|
|
307
308
|
|
|
308
309
|
export default {
|
|
@@ -368,7 +369,8 @@ export default {
|
|
|
368
369
|
notifierCompanyId: [{ required: true, trigger: 'blur' }],
|
|
369
370
|
goodsName: [{ required: true, trigger: 'blur' }]
|
|
370
371
|
},
|
|
371
|
-
isMobile: document.body.clientWidth <= 768
|
|
372
|
+
isMobile: document.body.clientWidth <= 768,
|
|
373
|
+
secondNotifyInfoInfo: null
|
|
372
374
|
}
|
|
373
375
|
},
|
|
374
376
|
created() {
|
|
@@ -378,6 +380,7 @@ export default {
|
|
|
378
380
|
if (printModel == 1) {
|
|
379
381
|
this.printModel = true
|
|
380
382
|
}
|
|
383
|
+
this.getSecondNotifyInfo();
|
|
381
384
|
// this.getSaleContractInfo(this.contract.dealId)
|
|
382
385
|
},
|
|
383
386
|
methods: {
|
|
@@ -436,6 +439,11 @@ export default {
|
|
|
436
439
|
}
|
|
437
440
|
})
|
|
438
441
|
},
|
|
442
|
+
getSecondNotifyInfo() {
|
|
443
|
+
getSecondNotifyInfo().then((res) => {
|
|
444
|
+
this.secondNotifyInfoInfo = res.data;
|
|
445
|
+
})
|
|
446
|
+
},
|
|
439
447
|
//更改收货人或者通知人公司时 相应显示变更
|
|
440
448
|
changeSubCompany(val, type) {
|
|
441
449
|
if (type == 'delivery') {
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
* @Author: zhangpengwei@1338418459736990.onaliyun.com zhangpengwei@1338418459736990.onaliyun.com
|
|
3
|
+
* @Date: 2024-08-19 15:46:00
|
|
4
|
+
* @LastEditors: zhangpengwei@1338418459736990.onaliyun.com zhangpengwei@1338418459736990.onaliyun.com
|
|
5
|
+
* @LastEditTime: 2024-08-21 16:19:39
|
|
6
|
+
* @FilePath: /doctor-admin-components 公共组件/packages/src/views/biz/contractTracing/shipmentPurchaseAmountEditDialog.vue
|
|
7
|
+
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
|
8
|
+
-->
|
|
9
|
+
<template>
|
|
10
|
+
<div v-if="list.length">
|
|
11
|
+
<div class="bold" style="margin-bottom:10px">历史修正记录</div>
|
|
12
|
+
<div class="wrap" v-for="listItem in list" :key="listItem.changeId">
|
|
13
|
+
<div class="row-wrap">
|
|
14
|
+
<div class="time">{{ utc2local(listItem.changeTime, 'yyyy-MM-DD HH:mm:ss') }}</div>
|
|
15
|
+
<div class="time">修改人:{{ listItem.operName }}</div>
|
|
16
|
+
</div>
|
|
17
|
+
<div class="row-wrap-1">
|
|
18
|
+
<div class="title bold">修改内容:</div>
|
|
19
|
+
<div>{{ listItem.changeContent }}</div>
|
|
20
|
+
</div>
|
|
21
|
+
<div class="row-wrap-1" v-if="listItem.changeReason">
|
|
22
|
+
<div class="title bold">修改原因:</div>
|
|
23
|
+
<div style="white-space: pre-line !important">{{ listItem.changeReason }}</div>
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
26
|
+
</div>
|
|
27
|
+
|
|
28
|
+
</template>
|
|
29
|
+
<script>
|
|
30
|
+
export default {
|
|
31
|
+
props: {
|
|
32
|
+
list: {
|
|
33
|
+
type: Array,
|
|
34
|
+
default: () => []
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
name: 'changrLogList',
|
|
38
|
+
data() {
|
|
39
|
+
return {}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
</script>
|
|
43
|
+
<style scoped lang="scss">
|
|
44
|
+
.wrap {
|
|
45
|
+
padding:10px 20px;
|
|
46
|
+
margin-bottom: 10px;
|
|
47
|
+
background-color: #f2f2f2;
|
|
48
|
+
}
|
|
49
|
+
.bold {
|
|
50
|
+
font-weight: bold;
|
|
51
|
+
}
|
|
52
|
+
.row-wrap {
|
|
53
|
+
display: flex;
|
|
54
|
+
justify-content: space-between;
|
|
55
|
+
margin-bottom: 10px;
|
|
56
|
+
.time {
|
|
57
|
+
font-size:12px;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
.row-wrap-1 {
|
|
61
|
+
display: flex;
|
|
62
|
+
margin-bottom: 10px;
|
|
63
|
+
.title {
|
|
64
|
+
min-width: 70px;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
</style>
|
|
@@ -34,15 +34,18 @@
|
|
|
34
34
|
<el-col :span="24">
|
|
35
35
|
<div class="bank-item">Beneficiary Address:{{ bankData.beneficiaryAddress }}</div>
|
|
36
36
|
</el-col>
|
|
37
|
+
<el-col :span="24">
|
|
38
|
+
<div class="bank-item" style="display:flex;"><p>Remark:</p><p style="white-space: pre-wrap;">{{ bankData.remark }}</p></div>
|
|
39
|
+
</el-col>
|
|
37
40
|
</el-row>
|
|
38
41
|
</div>
|
|
39
42
|
<!-- 添加入口 -->
|
|
40
43
|
<div v-if="!bankList || bankList.length == 0" style="padding-left: 30px; padding-top: 10px">
|
|
41
44
|
<span>未添加收款账户信息,</span>
|
|
42
|
-
<el-button type="text" size="mini" @click="clickAdd">去添加</el-button>
|
|
45
|
+
<el-button type="text" size="mini" v-hasPermi="['biz:company:payment:account:add']" @click="clickAdd">去添加</el-button>
|
|
43
46
|
</div>
|
|
44
47
|
<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>
|
|
48
|
+
<el-button type="text" size="mini" @click="clickAdd" v-hasPermi="['biz:company:payment:account:add']">去添加</el-button>
|
|
46
49
|
<span>收款账户信息</span>
|
|
47
50
|
</div>
|
|
48
51
|
<!-- 添加收款账户弹框 -->
|
|
@@ -79,6 +82,11 @@
|
|
|
79
82
|
<el-input maxlength="500" v-model="form.beneficiaryAddress" placeholder="请输入内容" />
|
|
80
83
|
</el-form-item>
|
|
81
84
|
</el-col>
|
|
85
|
+
<el-col :span="18">
|
|
86
|
+
<el-form-item label="Remark" label-width="150px">
|
|
87
|
+
<el-input maxlength="500" type="textarea" rows="4" v-model="form.remark" placeholder="请输入内容" />
|
|
88
|
+
</el-form-item>
|
|
89
|
+
</el-col>
|
|
82
90
|
</el-row>
|
|
83
91
|
</el-form>
|
|
84
92
|
<div slot="footer" class="dialog-footer">
|
|
@@ -137,7 +145,8 @@ export default {
|
|
|
137
145
|
bankAddress: null,
|
|
138
146
|
beneficiaryAccount: null,
|
|
139
147
|
beneficiary: null,
|
|
140
|
-
beneficiaryAddress: null
|
|
148
|
+
beneficiaryAddress: null,
|
|
149
|
+
remark: null,
|
|
141
150
|
},
|
|
142
151
|
rules: {}
|
|
143
152
|
}
|
|
@@ -154,7 +163,8 @@ export default {
|
|
|
154
163
|
bankAddress: null,
|
|
155
164
|
beneficiaryAccount: null,
|
|
156
165
|
beneficiary: null,
|
|
157
|
-
beneficiaryAddress: null
|
|
166
|
+
beneficiaryAddress: null,
|
|
167
|
+
remark: null,
|
|
158
168
|
}
|
|
159
169
|
},
|
|
160
170
|
handleCaclSelectIndex() {
|
|
@@ -194,7 +204,7 @@ export default {
|
|
|
194
204
|
},
|
|
195
205
|
clickConfirm() {
|
|
196
206
|
let e = this.form
|
|
197
|
-
if (!(e.swiftCode || e.bankName || e.bankAddress || e.beneficiaryAccount || e.beneficiary || e.beneficiaryAddress)) {
|
|
207
|
+
if (!(e.swiftCode || e.bankName || e.bankAddress || e.beneficiaryAccount || e.beneficiary || e.beneficiaryAddress || e.remark)) {
|
|
198
208
|
this.$modal.msgError('请输入内容')
|
|
199
209
|
return
|
|
200
210
|
}
|