doctor-admin-components 1.0.13-beta.71 → 1.0.13-beta.72
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/packages/src/api/biz/bizContract.js +8 -0
- package/packages/src/api/biz/bizShipment.js +18 -0
- package/packages/src/components/DictTag/index.vue +12 -2
- package/packages/src/i18n/zh-CN/message.json +2 -2
- package/packages/src/views/biz/bizShipment/add.vue +70 -6
- package/packages/src/views/biz/bizShipment/referenceAlert.vue +167 -0
- package/packages/src/views/biz/contractTracing/billInfo.vue +50 -33
- package/packages/src/views/biz/contractTracing/contractTracingDetail.vue +31 -8
- package/packages/src/views/biz/contractTracing/editBill.vue +15 -5
package/package.json
CHANGED
|
@@ -9,6 +9,14 @@ export function listBizContract(query) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
+
// 查询合同的提单指令列表
|
|
13
|
+
export function getContractBlList(contractId) {
|
|
14
|
+
return request({
|
|
15
|
+
url: "/biz/contract/blList/" + contractId,
|
|
16
|
+
method: "get",
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
|
|
12
20
|
// 合同追踪列表
|
|
13
21
|
export function listContractTrace(query) {
|
|
14
22
|
return request({
|
|
@@ -60,6 +60,15 @@ export function addWithContainer(data) {
|
|
|
60
60
|
})
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
+
// 装运校验: 传提单号和订舱号
|
|
64
|
+
export function addContainerCheck(data) {
|
|
65
|
+
return request({
|
|
66
|
+
url: '/biz/shipment/checkShipment',
|
|
67
|
+
method: 'post',
|
|
68
|
+
data: data
|
|
69
|
+
})
|
|
70
|
+
}
|
|
71
|
+
|
|
63
72
|
// 修改装运
|
|
64
73
|
export function updateBizShipment(data) {
|
|
65
74
|
return request({
|
|
@@ -118,3 +127,12 @@ export function getByContractId(contractId) {
|
|
|
118
127
|
method: 'get'
|
|
119
128
|
})
|
|
120
129
|
}
|
|
130
|
+
|
|
131
|
+
// 查询作废的装运销售合同列表
|
|
132
|
+
export function haveVoidShipment(query) {
|
|
133
|
+
return request({
|
|
134
|
+
url: '/biz/contract/haveVoidShipment/list',
|
|
135
|
+
method: 'get',
|
|
136
|
+
params: query
|
|
137
|
+
})
|
|
138
|
+
}
|
|
@@ -35,6 +35,11 @@ export default {
|
|
|
35
35
|
default: null,
|
|
36
36
|
},
|
|
37
37
|
value: [Number, String, Array],
|
|
38
|
+
// 自定义拼接字符
|
|
39
|
+
appendCallback: {
|
|
40
|
+
type: Function,
|
|
41
|
+
default: null
|
|
42
|
+
}
|
|
38
43
|
},
|
|
39
44
|
computed: {
|
|
40
45
|
values() {
|
|
@@ -51,8 +56,13 @@ export default {
|
|
|
51
56
|
},
|
|
52
57
|
methods: {
|
|
53
58
|
getName(item) {
|
|
54
|
-
|
|
55
|
-
|
|
59
|
+
var str = this.isChina ? item?.label : item?.raw?.dictLabelEn
|
|
60
|
+
var append = this.appendCallback ? this.appendCallback() : null
|
|
61
|
+
if (append) {
|
|
62
|
+
str += append
|
|
63
|
+
}
|
|
64
|
+
return str
|
|
65
|
+
}
|
|
56
66
|
},
|
|
57
67
|
};
|
|
58
68
|
</script>
|
|
@@ -125,8 +125,8 @@
|
|
|
125
125
|
"Contract_Status": "合同状态",
|
|
126
126
|
"BLConfirm": "BLI确认",
|
|
127
127
|
"BL_No": "提单号:",
|
|
128
|
-
"BL_Not_Confirm": "
|
|
129
|
-
"BL_Confirmed": "
|
|
128
|
+
"BL_Not_Confirm": "BLI未确认",
|
|
129
|
+
"BL_Confirmed": "BLI已确认",
|
|
130
130
|
"BL_info_confirmed": "提单信息已确认",
|
|
131
131
|
"bl_draft_confirm": "确认提单草稿",
|
|
132
132
|
"editBLInformation": "编辑提单信息",
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="app-container">
|
|
3
3
|
<!-- 添加或修改装运对话框 -->
|
|
4
|
-
<el-dialog :
|
|
4
|
+
<el-dialog :visible.sync="open" z-index="1000" width="80%" :before-close="handleClose">
|
|
5
|
+
<slot name="">
|
|
6
|
+
<span>{{ title }}</span>
|
|
7
|
+
<span v-if="voidInvoiceList" style="color: red">【快捷转卖】:系统检测到此销售合同关联的采购合同存在【已作废】的装运,</span>
|
|
8
|
+
<el-button v-if="voidInvoiceList" @click="handleReference" size="mini" type="text">点击这里直接复制并引用</el-button>
|
|
9
|
+
</slot>
|
|
5
10
|
<el-form ref="form" :model="form" :rules="rules" label-position="right" label-width="80px">
|
|
6
11
|
<el-row>
|
|
7
12
|
<el-col :span="6">
|
|
@@ -428,26 +433,33 @@
|
|
|
428
433
|
</el-dialog>
|
|
429
434
|
|
|
430
435
|
<select-booking ref="selectBooking" @submit="setBooking" @unSubmit="unSetBooking" />
|
|
436
|
+
<!-- 引用装运 -->
|
|
437
|
+
<reference-alert @referenced="handleReferenced" ref="referenceAlert" />
|
|
431
438
|
</div>
|
|
432
439
|
</template>
|
|
433
440
|
|
|
434
441
|
<script>
|
|
435
|
-
import { listBizShipment, getBizShipment, delBizShipment, addWithContainer, updateWithContainer, updateWithContainerAndInvoice } from '../../../api/biz/bizShipment'
|
|
442
|
+
import { haveVoidShipment, listBizShipment, getBizShipment, delBizShipment, addWithContainer, addContainerCheck, updateWithContainer, updateWithContainerAndInvoice } from '../../../api/biz/bizShipment'
|
|
436
443
|
import { generateFinalInvoiceByShipmentId } from '../../../api/biz/bizInvoice'
|
|
437
444
|
import { updateBizContractDetail } from '../../../api/biz/bizContractDetail'
|
|
438
445
|
import { Loading } from 'element-ui'
|
|
439
446
|
import { listDictData } from '../../../api/biz/dictData'
|
|
440
447
|
import selectBooking from './selectBooking.vue'
|
|
441
448
|
import { listBizBooking } from '../../../api/biz/bizBooking'
|
|
449
|
+
import ReferenceAlert from './referenceAlert.vue'
|
|
450
|
+
import { MessageBox } from 'element-ui'
|
|
442
451
|
|
|
443
452
|
export default {
|
|
444
453
|
name: 'AddShipment',
|
|
445
454
|
dicts: ['shipping_company'],
|
|
446
455
|
components: {
|
|
447
|
-
selectBooking
|
|
456
|
+
selectBooking,
|
|
457
|
+
ReferenceAlert,
|
|
448
458
|
},
|
|
449
459
|
data() {
|
|
450
460
|
return {
|
|
461
|
+
// 已作废的装运合同
|
|
462
|
+
voidInvoiceList: null,
|
|
451
463
|
//目的地港口列表
|
|
452
464
|
destinationPortList: [],
|
|
453
465
|
//折叠面板
|
|
@@ -572,6 +584,20 @@ export default {
|
|
|
572
584
|
}
|
|
573
585
|
},
|
|
574
586
|
methods: {
|
|
587
|
+
// 已用的数据,赋值给form
|
|
588
|
+
handleReferenced(data) {
|
|
589
|
+
//shipment, copyFileTypeList
|
|
590
|
+
this.form = {...this.form, ...data.shipment}
|
|
591
|
+
this.form.contractIds = [data.shipment.saleContractId]
|
|
592
|
+
// 需要去掉shipmentId
|
|
593
|
+
this.form.shipmentId = null
|
|
594
|
+
this.form.citeShipmentId = data.shipment.shipmentId
|
|
595
|
+
this.form.copyFileTypeList = data.copyFileTypeList
|
|
596
|
+
},
|
|
597
|
+
//引用已作废的装运
|
|
598
|
+
handleReference() {
|
|
599
|
+
this.$refs.referenceAlert.handleOpen(this.voidInvoiceList)
|
|
600
|
+
},
|
|
575
601
|
//编辑开关
|
|
576
602
|
openEditSwitch() {
|
|
577
603
|
this.editSwitch = this.editSwitch = true
|
|
@@ -889,6 +915,13 @@ export default {
|
|
|
889
915
|
.catch((error) => {
|
|
890
916
|
console.error(error)
|
|
891
917
|
})
|
|
918
|
+
// 查询是否有可引用的
|
|
919
|
+
haveVoidShipment({contractId: contract.id})
|
|
920
|
+
.then((res) => {
|
|
921
|
+
this.voidInvoiceList = res.rows && res.rows.length > 0 ? res.rows : null
|
|
922
|
+
})
|
|
923
|
+
// 测试数据
|
|
924
|
+
// this.voidInvoiceList = [{'contractId': '1', 'contractNo':'合同号1'}]
|
|
892
925
|
},
|
|
893
926
|
/** 修改按钮操作 */
|
|
894
927
|
handleUpdate(row) {
|
|
@@ -1003,7 +1036,12 @@ export default {
|
|
|
1003
1036
|
})
|
|
1004
1037
|
},
|
|
1005
1038
|
//仅生成装运
|
|
1006
|
-
submitShipment() {
|
|
1039
|
+
async submitShipment() {
|
|
1040
|
+
// 装运前校验
|
|
1041
|
+
let resOK = await this.checkPreShipment()
|
|
1042
|
+
if (!resOK) {
|
|
1043
|
+
return
|
|
1044
|
+
}
|
|
1007
1045
|
this.$refs['form'].validate((valid) => {
|
|
1008
1046
|
if (valid) {
|
|
1009
1047
|
let loadingInstance = Loading.service({
|
|
@@ -1046,7 +1084,12 @@ export default {
|
|
|
1046
1084
|
})
|
|
1047
1085
|
},
|
|
1048
1086
|
//装运并下载
|
|
1049
|
-
handleTemplate(
|
|
1087
|
+
async handleTemplate() {
|
|
1088
|
+
// 装运前校验
|
|
1089
|
+
let resOK = await this.checkPreShipment()
|
|
1090
|
+
if (!resOK) {
|
|
1091
|
+
return
|
|
1092
|
+
}
|
|
1050
1093
|
this.submitAndDownload(command)
|
|
1051
1094
|
},
|
|
1052
1095
|
//提交并下载
|
|
@@ -1102,8 +1145,29 @@ export default {
|
|
|
1102
1145
|
fileName
|
|
1103
1146
|
)
|
|
1104
1147
|
},
|
|
1148
|
+
// 装运前校验
|
|
1149
|
+
async checkPreShipment() {
|
|
1150
|
+
let res = await addContainerCheck({
|
|
1151
|
+
'billOfLadingNo': this.form.billOfLadingNo,
|
|
1152
|
+
'bookingNo': this.form.bookingNo
|
|
1153
|
+
})
|
|
1154
|
+
if (!res.data.checkShipmentTip) {
|
|
1155
|
+
return true
|
|
1156
|
+
}
|
|
1157
|
+
let result = await MessageBox.confirm(res.data.checkShipmentTip, '提示', {
|
|
1158
|
+
confirmButtonText: '确定',
|
|
1159
|
+
cancelButtonText: '取消',
|
|
1160
|
+
type: 'warning'
|
|
1161
|
+
}).catch(err => err)
|
|
1162
|
+
return result === 'confirm'
|
|
1163
|
+
},
|
|
1105
1164
|
/** 提交按钮 */
|
|
1106
|
-
submitForm() {
|
|
1165
|
+
async submitForm() {
|
|
1166
|
+
// 装运前校验
|
|
1167
|
+
let resOK = await this.checkPreShipment()
|
|
1168
|
+
if (!resOK) {
|
|
1169
|
+
return
|
|
1170
|
+
}
|
|
1107
1171
|
this.$refs['form'].validate((valid) => {
|
|
1108
1172
|
if (valid) {
|
|
1109
1173
|
let loadingInstance = Loading.service({
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class>
|
|
3
|
+
<el-dialog :title="title" :visible.sync="open" width="75%" append-to-body>
|
|
4
|
+
<el-form ref="form" :model="form" label-width="100%">
|
|
5
|
+
<el-form-item class="vertical-form-item" :required="true" label="请选择您需要复制的装运:">
|
|
6
|
+
<el-row> 合同号 </el-row>
|
|
7
|
+
<el-row>
|
|
8
|
+
<el-select @change="selectContract" v-model="contractId" placeholder="请选择合同号">
|
|
9
|
+
<el-option v-for="(item, i) in shipmentList" :key="i" :label="item.contractNo" :value="item.contractId"></el-option>
|
|
10
|
+
</el-select>
|
|
11
|
+
</el-row>
|
|
12
|
+
<el-row v-if="contractId" style="padding-top: 15px"> 提单号 </el-row>
|
|
13
|
+
<el-row v-if="contractId">
|
|
14
|
+
<el-radio-group v-model="form.citeShipmentId">
|
|
15
|
+
<div v-for="(item, i) in blList" :key="i">
|
|
16
|
+
<el-radio :label="item.shipmentId">
|
|
17
|
+
<span>{{ item.billOfLadingNo }}</span>
|
|
18
|
+
<span v-if="item.citeNumber">(</span>
|
|
19
|
+
<span v-if="item.citeNumber" style="color: red">已被引用过{{ item.citeNumber }}次</span>
|
|
20
|
+
<span v-if="item.citeNumber">)</span>
|
|
21
|
+
</el-radio>
|
|
22
|
+
</div>
|
|
23
|
+
</el-radio-group>
|
|
24
|
+
</el-row>
|
|
25
|
+
</el-form-item>
|
|
26
|
+
|
|
27
|
+
<el-form-item class="vertical-form-item" :required="true" label="请选择您需要复制的数据或文件:">
|
|
28
|
+
<el-row> 可复用的文件如下: </el-row>
|
|
29
|
+
<el-row>
|
|
30
|
+
<el-checkbox v-model="isSelectAll" @change="selectAll" label="0">选择全部</el-checkbox>
|
|
31
|
+
</el-row>
|
|
32
|
+
<el-row>
|
|
33
|
+
<el-checkbox-group @change="selectChange" v-model="form.copyFileTypeList">
|
|
34
|
+
<el-checkbox v-for="(item, i) in fileList" :key="i" :label="item.key">{{ item.value }}</el-checkbox>
|
|
35
|
+
</el-checkbox-group>
|
|
36
|
+
</el-row>
|
|
37
|
+
</el-form-item>
|
|
38
|
+
</el-form>
|
|
39
|
+
<div slot="footer" class="dialog-footer">
|
|
40
|
+
<el-button @click="cancel">取 消</el-button>
|
|
41
|
+
<el-button type="primary" @click="submitForm">确 定</el-button>
|
|
42
|
+
</div>
|
|
43
|
+
</el-dialog>
|
|
44
|
+
</div>
|
|
45
|
+
</template>
|
|
46
|
+
|
|
47
|
+
<script>
|
|
48
|
+
import { listBizShipment, getBizShipment } from '../../../api/biz/bizShipment'
|
|
49
|
+
|
|
50
|
+
export default {
|
|
51
|
+
name: 'ReferenceAlert',
|
|
52
|
+
props: {},
|
|
53
|
+
components: {},
|
|
54
|
+
data() {
|
|
55
|
+
return {
|
|
56
|
+
// 弹出层标题
|
|
57
|
+
title: '请确认:',
|
|
58
|
+
// 是否显示弹出层
|
|
59
|
+
open: false,
|
|
60
|
+
// 表单参数
|
|
61
|
+
form: {
|
|
62
|
+
citeShipmentId: null,
|
|
63
|
+
copyFileTypeList: [] // 可复用的文件
|
|
64
|
+
},
|
|
65
|
+
// 选择的合同
|
|
66
|
+
contractId: null,
|
|
67
|
+
// 可引用的数据(销售合同列表)
|
|
68
|
+
shipmentList: null,
|
|
69
|
+
// 合同对应的提单列表
|
|
70
|
+
blList: null,
|
|
71
|
+
isSelectAll: false,
|
|
72
|
+
fileList: [
|
|
73
|
+
{ key: 'booking_data', value: '订舱资料' },
|
|
74
|
+
{ key: 'packingPhoto', value: '装箱照片' },
|
|
75
|
+
{ key: 'draft_bill_of_lading', value: '草稿提单' },
|
|
76
|
+
{ key: 'shipment_delivery_receipt', value: '正式提单' }
|
|
77
|
+
]
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
computed: {},
|
|
81
|
+
watch: {},
|
|
82
|
+
methods: {
|
|
83
|
+
selectAll(val) {
|
|
84
|
+
if (val) {
|
|
85
|
+
this.form.copyFileTypeList = this.fileList.map((res) => res.key)
|
|
86
|
+
} else {
|
|
87
|
+
this.form.copyFileTypeList = []
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
selectChange(val) {
|
|
91
|
+
this.isSelectAll = this.form.copyFileTypeList.length == 4
|
|
92
|
+
},
|
|
93
|
+
selectContract(val) {
|
|
94
|
+
this.blList = null
|
|
95
|
+
// 获取提单
|
|
96
|
+
listBizShipment({ saleContractId: val }).then((res) => {
|
|
97
|
+
this.blList = res.rows
|
|
98
|
+
})
|
|
99
|
+
},
|
|
100
|
+
|
|
101
|
+
/** 提交按钮 */
|
|
102
|
+
submitForm() {
|
|
103
|
+
// 数据校验
|
|
104
|
+
if (!this.contractId) {
|
|
105
|
+
return this.$modal.msgError('请选择合同号')
|
|
106
|
+
}
|
|
107
|
+
if (!this.form.citeShipmentId) {
|
|
108
|
+
return this.$modal.msgError('请选择提单号')
|
|
109
|
+
}
|
|
110
|
+
if (this.form.copyFileTypeList.length == 0) {
|
|
111
|
+
return this.$modal.msgError('请选择您需要复制的数据或文件')
|
|
112
|
+
}
|
|
113
|
+
// 获取详情数据
|
|
114
|
+
const loading = this.openLoading()
|
|
115
|
+
getBizShipment(this.form.citeShipmentId).then((res) => {
|
|
116
|
+
loading.close()
|
|
117
|
+
if (res.code == 200) {
|
|
118
|
+
// 回传数据
|
|
119
|
+
let shipment = res.data
|
|
120
|
+
this.$emit('referenced', { shipment: shipment, copyFileTypeList: this.form.copyFileTypeList })
|
|
121
|
+
this.open = false
|
|
122
|
+
}
|
|
123
|
+
})
|
|
124
|
+
},
|
|
125
|
+
/** 展示按钮操作 */
|
|
126
|
+
handleOpen(shipmentList) {
|
|
127
|
+
this.reset()
|
|
128
|
+
this.shipmentList = shipmentList
|
|
129
|
+
this.open = true
|
|
130
|
+
console.log('shipmentList', shipmentList)
|
|
131
|
+
},
|
|
132
|
+
// 取消按钮
|
|
133
|
+
cancel() {
|
|
134
|
+
this.open = false
|
|
135
|
+
this.reset()
|
|
136
|
+
},
|
|
137
|
+
// 表单重置
|
|
138
|
+
reset() {
|
|
139
|
+
this.shipmentList = null
|
|
140
|
+
this.form = {
|
|
141
|
+
citeShipmentId: null,
|
|
142
|
+
copyFileTypeList: [] // 可复用的文件
|
|
143
|
+
}
|
|
144
|
+
this.contractId = null
|
|
145
|
+
this.isSelectAll = false
|
|
146
|
+
this.blList = null
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
computed: {}
|
|
150
|
+
}
|
|
151
|
+
</script>
|
|
152
|
+
<style lang="scss" scoped>
|
|
153
|
+
// 修改为上下布局
|
|
154
|
+
.vertical-form-item {
|
|
155
|
+
display: block;
|
|
156
|
+
}
|
|
157
|
+
::v-deep .vertical-form-item .el-form-item__label {
|
|
158
|
+
text-align: left;
|
|
159
|
+
display: block;
|
|
160
|
+
margin-bottom: 5px !important; /* 根据需要调整间距 */
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
::v-deep .vertical-form-item .el-form-item__content {
|
|
164
|
+
display: block;
|
|
165
|
+
margin-left: 5px !important; /* 重置默认的margin-left,因为标签和输入控件不再水平排列 */
|
|
166
|
+
}
|
|
167
|
+
</style>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div>
|
|
3
|
-
<div v-if="
|
|
3
|
+
<div v-if="billData && billData.submitFlag">
|
|
4
4
|
<div class="info" id="printPdf" v-if="!printModel">
|
|
5
5
|
<el-form :model="form" ref="form" size="mini" :rules="rules">
|
|
6
6
|
<div v-if="form.shipperFlag">
|
|
@@ -49,9 +49,10 @@
|
|
|
49
49
|
</div>
|
|
50
50
|
<el-row>
|
|
51
51
|
<el-col :span="22">
|
|
52
|
-
<
|
|
52
|
+
<span class="sub-title mb20">{{ $t('contract.consigneeInfo') }}</span>
|
|
53
|
+
<span v-if="billData.blConfirmFlag == '2'" style="font-size: 16px;color: red; font-weight: bold;padding-left: 10px;"> 已作废 </span>
|
|
53
54
|
</el-col>
|
|
54
|
-
<el-col :span="2">
|
|
55
|
+
<el-col v-if="billData.blConfirmFlag != '2'" :span="2">
|
|
55
56
|
<el-button type="text" @click="editBill">
|
|
56
57
|
{{ $t('contractDetail.edit') }}
|
|
57
58
|
</el-button>
|
|
@@ -291,13 +292,13 @@
|
|
|
291
292
|
</template>
|
|
292
293
|
|
|
293
294
|
<script>
|
|
294
|
-
import { getBizDealRecordByAskId, updateBizDealRecord } from '../../../api/biz/bizDealRecord'
|
|
295
|
+
// import { getBizDealRecordByAskId, updateBizDealRecord } from '../../../api/biz/bizDealRecord'
|
|
295
296
|
import { exportPdf } from '../../../utils/pdf'
|
|
296
297
|
import { listBizContractCompany } from '../../../api/biz/bizContractCompany'
|
|
297
298
|
import BillPdf from './billPdf.vue'
|
|
298
299
|
import { listCompanyBillGoods } from '../../../api/biz/bizCompanyBillGoods'
|
|
299
300
|
import EditBill from './editBill.vue'
|
|
300
|
-
import { getSaleContractInfo } from '../../../api/biz/bizContract'
|
|
301
|
+
// import { getSaleContractInfo } from '../../../api/biz/bizContract'
|
|
301
302
|
|
|
302
303
|
export default {
|
|
303
304
|
name: 'BillInfo',
|
|
@@ -309,13 +310,26 @@ export default {
|
|
|
309
310
|
channel: {
|
|
310
311
|
type: String,
|
|
311
312
|
default: ''
|
|
313
|
+
},
|
|
314
|
+
// 提单指令数据
|
|
315
|
+
billData: {
|
|
316
|
+
type: Object,
|
|
317
|
+
default: null
|
|
312
318
|
}
|
|
313
319
|
},
|
|
314
320
|
components: { BillPdf, EditBill },
|
|
321
|
+
watch: {
|
|
322
|
+
billData: {
|
|
323
|
+
handler(val) {
|
|
324
|
+
this.getDealRecord(this.contract.askId)
|
|
325
|
+
},
|
|
326
|
+
immediate: true,
|
|
327
|
+
}
|
|
328
|
+
},
|
|
315
329
|
data() {
|
|
316
330
|
return {
|
|
317
331
|
//
|
|
318
|
-
saleContract: null,
|
|
332
|
+
// saleContract: null,
|
|
319
333
|
// 遮罩层
|
|
320
334
|
loading: true,
|
|
321
335
|
// 弹出层标题
|
|
@@ -359,19 +373,21 @@ export default {
|
|
|
359
373
|
if (printModel == 1) {
|
|
360
374
|
this.printModel = true
|
|
361
375
|
}
|
|
362
|
-
this.getSaleContractInfo(this.contract.dealId)
|
|
376
|
+
// this.getSaleContractInfo(this.contract.dealId)
|
|
363
377
|
},
|
|
364
378
|
methods: {
|
|
365
|
-
getSaleContractInfo(dealId) {
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
},
|
|
379
|
+
// getSaleContractInfo(dealId) {
|
|
380
|
+
// getSaleContractInfo(dealId).then((res) => {
|
|
381
|
+
// this.saleContract = res.data
|
|
382
|
+
// })
|
|
383
|
+
// },
|
|
370
384
|
edit() {
|
|
371
|
-
this.getDealRecord(this.contract.askId)
|
|
385
|
+
// this.getDealRecord(this.contract.askId)
|
|
386
|
+
// 通知外层刷新数据
|
|
387
|
+
this.$emit('refresh')
|
|
372
388
|
},
|
|
373
389
|
editBill() {
|
|
374
|
-
this.$refs.editBill.handleEdit(this.
|
|
390
|
+
this.$refs.editBill.handleEdit(this.billData.contractId, this.form.dealId)
|
|
375
391
|
},
|
|
376
392
|
//子公司更新
|
|
377
393
|
changeSubCompanyList() {
|
|
@@ -437,7 +453,7 @@ export default {
|
|
|
437
453
|
//成交没收货人公司取默认 否则取收货人公司信息
|
|
438
454
|
if (!this.form.deliveryCompanyId && defaultDeliveryCompany) {
|
|
439
455
|
this.form.deliveryCompanyId = defaultDeliveryCompany.contractCompanyId
|
|
440
|
-
this.form
|
|
456
|
+
this.$set(this.form, 'deliveryCompany', defaultDeliveryCompany)
|
|
441
457
|
} else {
|
|
442
458
|
const deliveryCompany = contractCompanyList.find((item) => item.contractCompanyId == this.form.deliveryCompanyId)
|
|
443
459
|
this.$set(this.form, 'deliveryCompany', deliveryCompany)
|
|
@@ -446,7 +462,7 @@ export default {
|
|
|
446
462
|
//成交没通知人公司取默认 否则取通知人公司信息
|
|
447
463
|
if (!this.form.notifierCompanyId && notifierDeliveryCompany) {
|
|
448
464
|
this.form.notifierCompanyId = notifierDeliveryCompany.contractCompanyId
|
|
449
|
-
this.form
|
|
465
|
+
this.$set(this.form, 'notifierCompany', notifierDeliveryCompany)
|
|
450
466
|
} else {
|
|
451
467
|
const notifierCompany = contractCompanyList.find((item) => item.contractCompanyId == this.form.notifierCompanyId)
|
|
452
468
|
this.$set(this.form, 'notifierCompany', notifierCompany)
|
|
@@ -531,26 +547,27 @@ export default {
|
|
|
531
547
|
this.resetForm('form')
|
|
532
548
|
},
|
|
533
549
|
getDealRecord(askId) {
|
|
534
|
-
|
|
535
|
-
this.
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
550
|
+
// 使用新接口,传递进来的数据!
|
|
551
|
+
this.form = this.billData
|
|
552
|
+
// this.loading = false
|
|
553
|
+
// this.reset()
|
|
554
|
+
// getBizDealRecordByAskId(askId).then((response) => {
|
|
555
|
+
// this.form = response.data
|
|
556
|
+
if (this.form.buyerCompanyBillGoods && (typeof this.form.buyerCompanyBillGoods === String)) {
|
|
539
557
|
this.form.buyerCompanyBillGoods = JSON.parse(this.form.buyerCompanyBillGoods)
|
|
540
558
|
} else {
|
|
541
559
|
this.form.buyerCompanyBillGoods = []
|
|
542
560
|
this.addBillGoods()
|
|
543
561
|
}
|
|
544
|
-
|
|
545
562
|
this.getContractCompanyList(this.form.buyerCompanyId)
|
|
546
563
|
this.getCompanyBillGoods(this.form.buyerCompanyId)
|
|
547
|
-
this.form.dealRecordDetailList.map((item) => {
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
})
|
|
552
|
-
this.loading = true
|
|
553
|
-
})
|
|
564
|
+
// this.form.dealRecordDetailList.map((item) => {
|
|
565
|
+
// if (item.imageList) {
|
|
566
|
+
// item.askCover = item.imageList.toString()
|
|
567
|
+
// }
|
|
568
|
+
// })
|
|
569
|
+
// this.loading = true
|
|
570
|
+
// })
|
|
554
571
|
},
|
|
555
572
|
/** 提交按钮 */
|
|
556
573
|
submitForm() {
|
|
@@ -588,20 +605,20 @@ export default {
|
|
|
588
605
|
this.download(
|
|
589
606
|
'biz/contract/downBill',
|
|
590
607
|
{
|
|
591
|
-
contractId: this.
|
|
608
|
+
contractId: this.billData.contractId,
|
|
592
609
|
templateType: command
|
|
593
610
|
},
|
|
594
|
-
`${'BLI-' + this.
|
|
611
|
+
`${'BLI-' + this.billData.contractNo + '_' + this.parseTime(new Date(), '{y}{m}{d}')}.xlsx`
|
|
595
612
|
)
|
|
596
613
|
}
|
|
597
614
|
if (command == 'PDF') {
|
|
598
615
|
this.download(
|
|
599
616
|
'biz/contract/downBill',
|
|
600
617
|
{
|
|
601
|
-
contractId: this.
|
|
618
|
+
contractId: this.billData.contractId,
|
|
602
619
|
templateType: command
|
|
603
620
|
},
|
|
604
|
-
`${'BLI-' + this.
|
|
621
|
+
`${'BLI-' + this.billData.contractNo + '_' + this.parseTime(new Date(), '{y}{m}{d}')}.pdf`
|
|
605
622
|
)
|
|
606
623
|
}
|
|
607
624
|
}
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
<div>{{ contract.reference || '--' }}</div>
|
|
20
20
|
</div>
|
|
21
21
|
<div class="tab-root">
|
|
22
|
-
<div :class="['tab', activeName == tabsItem.name ? 'active' : '']" v-for="tabsItem in
|
|
22
|
+
<div :class="['tab', activeName == tabsItem.name ? 'active' : '']" v-for="tabsItem in saleTabsArr" :key="tabsItem.id" @click="changeTabs(tabsItem)">
|
|
23
23
|
{{ tabsItem.label }}
|
|
24
24
|
</div>
|
|
25
25
|
</div>
|
|
@@ -36,11 +36,16 @@
|
|
|
36
36
|
<div class="app-container-right">
|
|
37
37
|
<contract-summary v-if="activeName == 'first'" :channel="channel"></contract-summary>
|
|
38
38
|
<contract-info v-if="activeName == 'second'" :channel="channel"></contract-info>
|
|
39
|
-
|
|
40
|
-
<
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
39
|
+
<!-- 提单指令 -->
|
|
40
|
+
<div v-if="activeName == 'third'">
|
|
41
|
+
<!-- 标题分栏 -->
|
|
42
|
+
<el-tabs v-model="activeBillIndex">
|
|
43
|
+
<el-tab-pane v-for="(bill, i) in blList" :key="i" :label="contract.contractNo+' 提单指令'" :name="i.toString()">
|
|
44
|
+
<bill-info @refresh="getBlList" :contract="contract" :billData="bill" :channel="channel"></bill-info>
|
|
45
|
+
</el-tab-pane>
|
|
46
|
+
</el-tabs>
|
|
47
|
+
</div>
|
|
48
|
+
|
|
44
49
|
<contract-file
|
|
45
50
|
v-if="activeName == 'fourth' && contract.contractType"
|
|
46
51
|
:contract="contract"
|
|
@@ -94,7 +99,7 @@
|
|
|
94
99
|
</template>
|
|
95
100
|
|
|
96
101
|
<script>
|
|
97
|
-
import { getBizContract } from '../../../api/biz/bizContract';
|
|
102
|
+
import { getBizContract, getContractBlList } from '../../../api/biz/bizContract';
|
|
98
103
|
import ContractSummary from './contractSummary.vue';
|
|
99
104
|
import BillInfo from './billInfo.vue';
|
|
100
105
|
import ContractFile from '../bizFileInfo/contract.vue';
|
|
@@ -150,9 +155,14 @@ export default {
|
|
|
150
155
|
}],
|
|
151
156
|
|
|
152
157
|
selectFileList: [],
|
|
158
|
+
// 提单指令列表
|
|
159
|
+
blList: null,
|
|
160
|
+
activeBillIndex: null,
|
|
153
161
|
};
|
|
154
162
|
},
|
|
155
|
-
computed: {
|
|
163
|
+
computed: {
|
|
164
|
+
|
|
165
|
+
},
|
|
156
166
|
watch: {},
|
|
157
167
|
created() {
|
|
158
168
|
const contractId = this.$route.params && this.$route.params.contractId;
|
|
@@ -219,8 +229,21 @@ export default {
|
|
|
219
229
|
this.buyerFlag = this.contract?.contractNo
|
|
220
230
|
?.toLowerCase()
|
|
221
231
|
?.includes('arp');
|
|
232
|
+
// 获取提单指令
|
|
233
|
+
this.getBlList()
|
|
222
234
|
});
|
|
223
235
|
},
|
|
236
|
+
getBlList() {
|
|
237
|
+
const contractId = this.$route.params && this.$route.params.contractId;
|
|
238
|
+
getContractBlList(contractId).then((res) => {
|
|
239
|
+
this.blList = res.rows
|
|
240
|
+
// 默认选中第一个
|
|
241
|
+
if (!this.activeBillIndex) {
|
|
242
|
+
this.activeBillIndex = '0'
|
|
243
|
+
}
|
|
244
|
+
})
|
|
245
|
+
},
|
|
246
|
+
|
|
224
247
|
handleClick(tab, event) {
|
|
225
248
|
console.log(tab, event);
|
|
226
249
|
},
|
|
@@ -4,10 +4,17 @@
|
|
|
4
4
|
<div class="contract">
|
|
5
5
|
<div class="info" id="printPdf">
|
|
6
6
|
<!-- <div class="title">{{ $t("contract.billTip") }}</div> -->
|
|
7
|
-
<
|
|
8
|
-
<span
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
<el-row>
|
|
8
|
+
<el-col :span="12" v-if="voidFlag">
|
|
9
|
+
<span style="font-size: 16px;color: red; font-weight: bold"> 已作废 </span>
|
|
10
|
+
</el-col>
|
|
11
|
+
<el-col :span="12" v-else>
|
|
12
|
+
<div style="padding-bottom: 20px">
|
|
13
|
+
<span style="font-size: 16px; font-weight: bold"> {{ $t('contractDetail.BLConfirm') + ':' }} </span>
|
|
14
|
+
<el-switch v-model="confirmFlag" :inactive-text="$t('contractDetail.BL_Not_Confirm')" :active-text="$t('contractDetail.BL_Confirmed')"> </el-switch>
|
|
15
|
+
</div>
|
|
16
|
+
</el-col>
|
|
17
|
+
</el-row>
|
|
11
18
|
<el-form :model="form" ref="form" size="mini" :rules="rules" label-width="130px">
|
|
12
19
|
<el-collapse v-model="expandItems">
|
|
13
20
|
<el-collapse-item name="0" v-if="channel !== 'official-website'">
|
|
@@ -298,6 +305,8 @@ export default {
|
|
|
298
305
|
open: false,
|
|
299
306
|
// 是否已确认
|
|
300
307
|
confirmFlag: false,
|
|
308
|
+
// 是否已作废
|
|
309
|
+
voidFlag: false,
|
|
301
310
|
// 表单参数
|
|
302
311
|
form: {
|
|
303
312
|
//买家公司提单货物名称
|
|
@@ -379,7 +388,8 @@ export default {
|
|
|
379
388
|
getBizContract(contractId)
|
|
380
389
|
.then((response) => {
|
|
381
390
|
this.contract = response.data
|
|
382
|
-
this.confirmFlag = this.contract.blConfirmFlag
|
|
391
|
+
this.confirmFlag = this.contract.blConfirmFlag == '1'
|
|
392
|
+
this.voidFlag = this.contract.blConfirmFlag == '2'
|
|
383
393
|
resolve(response) // 异步操作成功,解决Promise
|
|
384
394
|
})
|
|
385
395
|
.catch((error) => {
|