doctor-admin-components 1.0.14-beta.7 → 1.0.14-beta.71
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 +14 -3
- package/packages/src/api/biz/bizContract.js +36 -9
- package/packages/src/api/biz/bizShipment.js +30 -1
- package/packages/src/i18n/zh-CN/message.json +1 -1
- package/packages/src/index.js +18 -2
- package/packages/src/utils/index.js +1 -1
- package/packages/src/utils/zip.js +29 -11
- package/packages/src/views/biz/bizFileInfo/contract.vue +510 -420
- package/packages/src/views/biz/bizFileInfo/contractFile/BillOfLadingNoTab.vue +9 -7
- package/packages/src/views/biz/bizFileInfo/contractFile/IMGPreviewCheckBox.vue +25 -10
- package/packages/src/views/biz/bizFileInfo/contractFile/SectionSlot.vue +11 -3
- package/packages/src/views/biz/bizFileInfo/fileShow.vue +11 -5
- package/packages/src/views/biz/bizShipment/add.vue +67 -38
- package/packages/src/views/biz/contractTracing/billInfo.vue +17 -9
- package/packages/src/views/biz/contractTracing/changrLogList.vue +67 -0
- package/packages/src/views/biz/contractTracing/companyBanks.vue +19 -8
- package/packages/src/views/biz/contractTracing/contractClause.vue +356 -0
- package/packages/src/views/biz/contractTracing/contractClauseComponenrts/TextContent.vue +53 -0
- package/packages/src/views/biz/contractTracing/contractPdf.vue +16 -175
- 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 +35 -27
- package/packages/src/views/biz/contractTracing/info.vue +363 -0
- package/packages/src/views/biz/contractTracing/purchaseInvoiceUpload.vue +5 -2
- package/packages/src/views/biz/contractTracing/queryDeductionRecords.vue +103 -0
- package/packages/src/views/biz/contractTracing/shipmentPurchaseAmount.vue +361 -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 {
|
|
@@ -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;
|
|
@@ -175,15 +189,15 @@ export default {
|
|
|
175
189
|
},
|
|
176
190
|
othersFile(imgUrl) {
|
|
177
191
|
if(isDoc(imgUrl)) {
|
|
178
|
-
return 'https://s3.
|
|
192
|
+
return 'https://s3.doctorscrap.com/dev/user/image_13/1ed150dc6171450d81a5e1f7b4e1253f.png'
|
|
179
193
|
} else if(isPdf(imgUrl)) {
|
|
180
|
-
return 'https://s3.
|
|
194
|
+
return 'https://s3.doctorscrap.com/dev/user/image_13/5a4b66e220794c0b8284f0a8204aac3e.png'
|
|
181
195
|
} else if(isZip(imgUrl)) {
|
|
182
|
-
return 'https://s3.
|
|
196
|
+
return 'https://s3.doctorscrap.com/dev/user/image_13/470eeab01eec430e9ed0edd81d15ace5.png'
|
|
183
197
|
} else if(isXls(imgUrl)) {
|
|
184
|
-
return 'https://s3.
|
|
198
|
+
return 'https://s3.doctorscrap.com/dev/user/image_13/caaa343a68684216be1a4d3b27d40a9d.png'
|
|
185
199
|
} else if(isPpt(imgUrl)) {
|
|
186
|
-
return 'https://s3.
|
|
200
|
+
return 'https://s3.doctorscrap.com/dev/user/image_13/b0590840eceb4162a8c07119ef2fe245.png'
|
|
187
201
|
} else {
|
|
188
202
|
return imgUrl
|
|
189
203
|
}
|
|
@@ -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({
|
|
@@ -291,7 +305,7 @@ export default {
|
|
|
291
305
|
.batch-download {
|
|
292
306
|
position: absolute;
|
|
293
307
|
top: -41px;
|
|
294
|
-
left:
|
|
308
|
+
left: 650px;
|
|
295
309
|
min-width: 80px;
|
|
296
310
|
width:max-content;
|
|
297
311
|
padding:0 10px;
|
|
@@ -300,11 +314,12 @@ export default {
|
|
|
300
314
|
text-align: center;
|
|
301
315
|
border-radius: 10px;
|
|
302
316
|
background-color: #54B8FF;
|
|
317
|
+
color: white;
|
|
303
318
|
cursor: pointer;
|
|
304
319
|
font-size:12px;
|
|
305
320
|
}
|
|
306
321
|
.batch-delete {
|
|
307
|
-
left:
|
|
322
|
+
left: 740px;
|
|
308
323
|
}
|
|
309
324
|
}
|
|
310
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 {
|
|
@@ -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"
|
|
@@ -117,6 +117,10 @@ export default {
|
|
|
117
117
|
type: String,
|
|
118
118
|
default: '',
|
|
119
119
|
},
|
|
120
|
+
deleteTips: {
|
|
121
|
+
type: String,
|
|
122
|
+
default: null,
|
|
123
|
+
},
|
|
120
124
|
},
|
|
121
125
|
data() {
|
|
122
126
|
return {
|
|
@@ -133,7 +137,7 @@ export default {
|
|
|
133
137
|
form: {},
|
|
134
138
|
//上传表单
|
|
135
139
|
uploadForm: {},
|
|
136
|
-
checkFlag: false
|
|
140
|
+
checkFlag: false,
|
|
137
141
|
}
|
|
138
142
|
},
|
|
139
143
|
computed: {
|
|
@@ -207,7 +211,7 @@ export default {
|
|
|
207
211
|
handleDelete(row) {
|
|
208
212
|
const fileIds = row.fileId || this.ids
|
|
209
213
|
this.$modal
|
|
210
|
-
.confirm('是否确认删除该文件?')
|
|
214
|
+
.confirm(this.deleteTips || '是否确认删除该文件?')
|
|
211
215
|
.then(function () {
|
|
212
216
|
return delBizFileInfo(fileIds)
|
|
213
217
|
})
|
|
@@ -314,8 +318,10 @@ export default {
|
|
|
314
318
|
<style lang="scss" scoped>
|
|
315
319
|
.file-info {
|
|
316
320
|
min-width: 450px;
|
|
317
|
-
|
|
318
|
-
|
|
321
|
+
@media screen and (max-width: 768px) {
|
|
322
|
+
min-width: 300px;
|
|
323
|
+
max-width: 300px;
|
|
324
|
+
}
|
|
319
325
|
.main {
|
|
320
326
|
display: flex;
|
|
321
327
|
.checkbox-position {
|
|
@@ -51,15 +51,18 @@
|
|
|
51
51
|
</el-col>
|
|
52
52
|
<el-col :span="6">
|
|
53
53
|
<el-form-item label="ETA" prop="eta" label-width="100">
|
|
54
|
-
<
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
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>
|
|
63
66
|
</el-form-item>
|
|
64
67
|
</el-col>
|
|
65
68
|
<el-col :span="6">
|
|
@@ -211,7 +214,7 @@
|
|
|
211
214
|
v-model="scope2.row.packageGrossWeight"
|
|
212
215
|
placeholder="请输入毛重"
|
|
213
216
|
size="mini"
|
|
214
|
-
|
|
217
|
+
v-decimal="3"
|
|
215
218
|
@input="limitDecimalPlaces(index, scope1.$index, scope2.$index, scope2.row, 'packageGrossWeight')"
|
|
216
219
|
></el-input>
|
|
217
220
|
</el-form-item>
|
|
@@ -230,7 +233,7 @@
|
|
|
230
233
|
v-model="scope2.row.packageTareWeight"
|
|
231
234
|
placeholder="请输入皮重"
|
|
232
235
|
size="mini"
|
|
233
|
-
|
|
236
|
+
v-decimal="3"
|
|
234
237
|
@input="limitDecimalPlaces(index, scope1.$index, scope2.$index, scope2.row, 'packageTareWeight')"
|
|
235
238
|
></el-input>
|
|
236
239
|
</el-form-item>
|
|
@@ -249,7 +252,7 @@
|
|
|
249
252
|
v-model="scope2.row.packageNetWeight"
|
|
250
253
|
placeholder="请输入净重"
|
|
251
254
|
size="mini"
|
|
252
|
-
|
|
255
|
+
v-decimal="3"
|
|
253
256
|
@input="limitDecimalPlaces(index, scope1.$index, scope2.$index, scope2.row, 'packageNetWeight')"
|
|
254
257
|
></el-input>
|
|
255
258
|
</el-form-item>
|
|
@@ -455,7 +458,8 @@ import {
|
|
|
455
458
|
updateWithContainer,
|
|
456
459
|
updateWithContainerAndInvoice,
|
|
457
460
|
saveDraft,
|
|
458
|
-
getDraft
|
|
461
|
+
getDraft,
|
|
462
|
+
refreshUpdateTime
|
|
459
463
|
} from '../../../api/biz/bizShipment'
|
|
460
464
|
import { generateFinalInvoiceByShipmentId } from '../../../api/biz/bizInvoice'
|
|
461
465
|
import { updateBizContractDetail } from '../../../api/biz/bizContractDetail'
|
|
@@ -682,13 +686,13 @@ export default {
|
|
|
682
686
|
},
|
|
683
687
|
|
|
684
688
|
limitDecimalPlaces(index, scope1Index, scope2Index, data, type) {
|
|
685
|
-
let value = data[type]
|
|
686
|
-
const decimalPlaces = 3
|
|
687
|
-
if (!isNaN(value)) {
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
}
|
|
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
|
+
// }
|
|
692
696
|
if (type == 'packageGrossWeight') {
|
|
693
697
|
this.changePackageGrossWeight(index, scope1Index, scope2Index)
|
|
694
698
|
} else if (type == 'packageTareWeight') {
|
|
@@ -698,21 +702,27 @@ export default {
|
|
|
698
702
|
},
|
|
699
703
|
|
|
700
704
|
changePackageGrossWeight(index, k, yindex) {
|
|
701
|
-
this.form.containerList[index].containerDetailList[k].goodsGrossWeight = this.form.containerList[index].containerDetailList[k].packageList
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
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)
|
|
707
715
|
//计算净重
|
|
708
716
|
this.form.containerList[index].containerDetailList[k].packageList[yindex].packageNetWeight = (
|
|
709
717
|
this.form.containerList[index].containerDetailList[k].packageList[yindex].packageGrossWeight -
|
|
710
718
|
this.form.containerList[index].containerDetailList[k].packageList[yindex].packageTareWeight
|
|
711
719
|
).toFixed(3)
|
|
712
720
|
|
|
713
|
-
this.form.containerList[index].containerDetailList[k].goodsNetWeight = this.form.containerList[index].containerDetailList[k].packageList
|
|
714
|
-
|
|
715
|
-
|
|
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)
|
|
716
726
|
|
|
717
727
|
this.form.containerList[index].totalGoodsNetWeight = this.form.containerList[index].containerDetailList
|
|
718
728
|
.reduce((total, item) => {
|
|
@@ -722,21 +732,27 @@ export default {
|
|
|
722
732
|
},
|
|
723
733
|
changePackageTareWeight(index, k, yindex) {
|
|
724
734
|
//计算皮重
|
|
725
|
-
this.form.containerList[index].containerDetailList[k].goodsTareWeight = this.form.containerList[index].containerDetailList[k].packageList
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
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)
|
|
731
745
|
//计算净重
|
|
732
746
|
this.form.containerList[index].containerDetailList[k].packageList[yindex].packageNetWeight = (
|
|
733
747
|
this.form.containerList[index].containerDetailList[k].packageList[yindex].packageGrossWeight -
|
|
734
748
|
this.form.containerList[index].containerDetailList[k].packageList[yindex].packageTareWeight
|
|
735
749
|
).toFixed(3)
|
|
736
750
|
|
|
737
|
-
this.form.containerList[index].containerDetailList[k].goodsNetWeight = this.form.containerList[index].containerDetailList[k].packageList
|
|
738
|
-
|
|
739
|
-
|
|
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)
|
|
740
756
|
|
|
741
757
|
this.form.containerList[index].totalGoodsNetWeight = this.form.containerList[index].containerDetailList
|
|
742
758
|
.reduce((total, item) => {
|
|
@@ -1317,6 +1333,19 @@ export default {
|
|
|
1317
1333
|
this.isDraft = false
|
|
1318
1334
|
}
|
|
1319
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
|
+
}
|
|
1320
1349
|
}
|
|
1321
1350
|
}
|
|
1322
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') {
|
|
@@ -610,7 +618,7 @@ export default {
|
|
|
610
618
|
handleTemplate(command) {
|
|
611
619
|
if (command == 'EXCEL') {
|
|
612
620
|
this.download(
|
|
613
|
-
'biz/contract/downBill',
|
|
621
|
+
'biz/contract/bli/downBill',
|
|
614
622
|
{
|
|
615
623
|
contractId: this.billData.contractId,
|
|
616
624
|
templateType: command
|
|
@@ -620,7 +628,7 @@ export default {
|
|
|
620
628
|
}
|
|
621
629
|
if (command == 'PDF') {
|
|
622
630
|
this.download(
|
|
623
|
-
'biz/contract/downBill',
|
|
631
|
+
'biz/contract/bli/downBill',
|
|
624
632
|
{
|
|
625
633
|
contractId: this.billData.contractId,
|
|
626
634
|
templateType: command
|
|
@@ -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>
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
v-for="(bankData, i) in bankList"
|
|
13
13
|
:key="i"
|
|
14
14
|
class="bank-container"
|
|
15
|
-
:class="{ 'bank-container-select':
|
|
15
|
+
:class="{ 'bank-container-select': sellectIndex == i, 'bank-container-unselect': sellectIndex != i }"
|
|
16
16
|
@click="clickSelct(i)"
|
|
17
17
|
>
|
|
18
18
|
<el-row style="padding-bottom: 20px">
|
|
@@ -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,13 +163,15 @@ 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() {
|
|
161
|
-
if (
|
|
171
|
+
if (this.accountId) {
|
|
162
172
|
this.sellectIndex = this.bankList.findIndex((item) => item.accountId == this.accountId)
|
|
163
|
-
|
|
173
|
+
console.log('---sellectIndex:', this.sellectIndex)
|
|
174
|
+
if (this.sellectIndex == -1 && !this.disableSelect) {
|
|
164
175
|
console.log('pre accountId invalide')
|
|
165
176
|
this.$emit('selectBank', null)
|
|
166
177
|
}
|
|
@@ -194,7 +205,7 @@ export default {
|
|
|
194
205
|
},
|
|
195
206
|
clickConfirm() {
|
|
196
207
|
let e = this.form
|
|
197
|
-
if (!(e.swiftCode || e.bankName || e.bankAddress || e.beneficiaryAccount || e.beneficiary || e.beneficiaryAddress)) {
|
|
208
|
+
if (!(e.swiftCode || e.bankName || e.bankAddress || e.beneficiaryAccount || e.beneficiary || e.beneficiaryAddress || e.remark)) {
|
|
198
209
|
this.$modal.msgError('请输入内容')
|
|
199
210
|
return
|
|
200
211
|
}
|