doctor-admin-components 1.0.14-beta.6 → 1.0.14-beta.60
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 -4
- 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/zip.js +29 -11
- package/packages/src/views/biz/bizFileInfo/contract.vue +494 -366
- 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 +82 -42
- 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 +307 -0
- package/packages/src/views/biz/contractTracing/contractClauseComponenrts/TextContent.vue +53 -0
- package/packages/src/views/biz/contractTracing/contractPdf.vue +9 -171
- 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 +346 -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 {
|
|
@@ -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') {
|
|
@@ -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>
|