dev
张同海 2 years ago
commit 1678ce64f9

@ -26,7 +26,7 @@ export function BookingOrderPage (parameter) {
} }
/** /**
* 获取客户 * 获取分页查询客户
* @params ShortName * @params ShortName
*/ */
export function DjyCustomerpage (parameter) { export function DjyCustomerpage (parameter) {
@ -324,7 +324,7 @@ export function BookingOrderPage (parameter) {
*/ */
export function SendXHZ (parameter) { export function SendXHZ (parameter) {
return axios({ return axios({
url: '/BookingOrder/SendXHZ', url: '/BookingOrder/SendXHZ?bookingId=' + parameter,
method: 'post', method: 'post',
data: parameter data: parameter
}) })
@ -335,7 +335,7 @@ export function BookingOrderPage (parameter) {
*/ */
export function VgmSend (parameter) { export function VgmSend (parameter) {
return axios({ return axios({
url: '/BookingOrder/VgmSend', url: '/BookingOrder/VgmSend?bookingId=' + parameter,
method: 'post', method: 'post',
data: parameter data: parameter
}) })
@ -346,7 +346,7 @@ export function BookingOrderPage (parameter) {
*/ */
export function LetterYard (parameter) { export function LetterYard (parameter) {
return axios({ return axios({
url: '/BookingOrder/LetterYard', url: '/BookingOrder/LetterYard?bookingId=' + parameter,
method: 'get', method: 'get',
params: parameter params: parameter
}) })
@ -368,7 +368,7 @@ export function LetterYard (parameter) {
*/ */
export function SendLetterYard (parameter) { export function SendLetterYard (parameter) {
return axios({ return axios({
url: '/BookingLetteryard/SendLetterYard', url: '/BookingLetteryard/SendLetterYard?bookingId=' + parameter,
method: 'post', method: 'post',
data: parameter data: parameter
}) })
@ -379,7 +379,7 @@ export function LetterYard (parameter) {
*/ */
export function SampleBill (parameter) { export function SampleBill (parameter) {
return axios({ return axios({
url: '/BookingOrder/SampleBill', url: '/BookingOrder/SampleBill?bookingId=' + parameter,
method: 'get', method: 'get',
params: parameter params: parameter
}) })
@ -401,7 +401,7 @@ export function LetterYard (parameter) {
*/ */
export function VgmLink (parameter) { export function VgmLink (parameter) {
return axios({ return axios({
url: '/BookingOrder/VgmLink', url: '/BookingOrder/VgmLink?bookingId=' + parameter,
method: 'get', method: 'get',
params: parameter params: parameter
}) })
@ -412,7 +412,7 @@ export function LetterYard (parameter) {
*/ */
export function SampleBillPdf (parameter) { export function SampleBillPdf (parameter) {
return axios({ return axios({
url: '/BookingOrder/SampleBillPdf', url: '/BookingOrder/SampleBillPdf?bookingId=' + parameter,
method: 'get', method: 'get',
params: parameter params: parameter
}) })
@ -423,7 +423,7 @@ export function LetterYard (parameter) {
*/ */
export function TxxpLink (parameter) { export function TxxpLink (parameter) {
return axios({ return axios({
url: '/BookingOrder/TxxpLink', url: '/BookingOrder/TxxpLink?bookingId=' + parameter,
method: 'get', method: 'get',
params: parameter params: parameter
}) })
@ -434,7 +434,19 @@ export function LetterYard (parameter) {
*/ */
export function ExcuteRulesOceanBooking (parameter) { export function ExcuteRulesOceanBooking (parameter) {
return axios({ return axios({
url: '/RulesEngineClient/ExcuteRulesOceanBooking', url: '/RulesEngineClient/ExcuteRulesOceanBooking?bookingId=' + parameter,
method: 'get',
params: parameter
})
}
/**
* 付费方式
* @params Name
*/
export function GetForwarderlist (parameter) {
return axios({
url: '/commondb/forwarderlist',
method: 'get', method: 'get',
params: parameter params: parameter
}) })

@ -47,23 +47,6 @@ export default {
required: true required: true
} }
}, },
mounted() {
const data = [
{
name: 'TableDemo',
path: '/tableDemo',
hidden: false,
pid: 0,
id: 183183,
meta: {
title: '表格示例',
show: false
},
component: 'TableDemo'
}
]
this.menus.push(...data)
},
methods: { methods: {
onSelect(obj) { onSelect(obj) {
this.$emit('menuSelect', obj) this.$emit('menuSelect', obj)

@ -39,7 +39,15 @@
:wrapperCol="wrapperCol" :wrapperCol="wrapperCol"
has-feedback has-feedback
> >
<a-input placeholder="请输入订舱代理!" v-model="details.forwarder" /> <auto-complete
class="customer-input"
v-model="details.forwarder"
:data-source="forwarderDataArr"
placeholder="请输入订舱代理"
@select="forwarderSelect"
@change="forwarderChange"
/>
<!-- <a-input placeholder="请输入订舱代理" v-model="details.forwarder" /> -->
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xs="12" :sm="12" :md="12" :lg="8" :xl="6"> <a-col :xs="12" :sm="12" :md="12" :lg="8" :xl="6">
@ -205,7 +213,14 @@
</a-col> </a-col>
<a-col :xs="12" :sm="12" :md="12" :lg="8" :xl="6"> <a-col :xs="12" :sm="12" :md="12" :lg="8" :xl="6">
<a-form-item class="from-label" label="船代" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> <a-form-item class="from-label" label="船代" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
<a-input placeholder="请输入船代!" v-model="details.shipagency" /> <auto-complete
class="customer-input"
v-model="details.shipagency"
:data-source="shipagencyDataArr"
placeholder="请输入船代"
@select="shipagencySelect"
@change="shipagencyChange"
/>
</a-form-item> </a-form-item>
</a-col> </a-col>
<template v-if="type === 'ESL'"> <template v-if="type === 'ESL'">
@ -333,7 +348,13 @@
import { XCard } from '@/components' import { XCard } from '@/components'
import { AutoComplete } from 'ant-design-vue' import { AutoComplete } from 'ant-design-vue'
import { DjyCustomerpage, GetCarrierlist, GetVessellist, GetSysUserPage } from '@/api/modular/main/BookingLedger' import {
DjyCustomerpage,
GetCarrierlist,
GetVessellist,
GetSysUserPage,
GetForwarderlist
} from '@/api/modular/main/BookingLedger'
export default { export default {
name: 'BookingDetail', name: 'BookingDetail',
@ -377,6 +398,8 @@ export default {
opUserList: [], // opUserList: [], //
docUserList: [], // docUserList: [], //
custserviceUserList: [], // custserviceUserList: [], //
forwarderData: [],
shipagencyData: [],
// / - start // / - start
customerType: '', customerType: '',
customerVisible: false, customerVisible: false,
@ -476,8 +499,8 @@ export default {
if (this.customerData) { if (this.customerData) {
const arr = [] const arr = []
this.customerData.map((item, index) => { this.customerData.map((item, index) => {
if (!arr.includes(item.fullName) && item.fullName) { if (!arr.includes(item.shortName) && item.shortName) {
arr.push(item.fullName) arr.push(item.shortName)
} }
}) })
return arr return arr
@ -591,6 +614,32 @@ export default {
} else { } else {
return [] return []
} }
},
forwarderDataArr() {
if (this.forwarderData) {
const arr = []
this.forwarderData.map((item, index) => {
if (!arr.includes(item.shortName)) {
arr.push(item.shortName)
}
})
return arr
} else {
return []
}
},
shipagencyDataArr() {
if (this.shipagencyData) {
const arr = []
this.shipagencyData.map((item, index) => {
if (!arr.includes(item.name)) {
arr.push(item.name)
}
})
return arr
} else {
return []
}
} }
}, },
watch: { watch: {
@ -625,13 +674,16 @@ export default {
} }
}, },
// - start // - start
getCustomer(name = '') { getDjyCustomerpage(name = '', type, key) {
DjyCustomerpage({ DjyCustomerpage({
ShortName: name SearchValue: name,
PropString: key
}) })
.then(res => { .then(res => {
if (res.code === 200) { if (res.code === 200) {
this.customerData = res.data.rows // this.customerData = res.data.rows
this[`${type}Data`] = res.data.rows
console.log(this[`${type}DataArr`])
this.$forceUpdate() this.$forceUpdate()
} }
}) })
@ -643,10 +695,20 @@ export default {
this.details.customername = value this.details.customername = value
}, },
customerChange(value) { customerChange(value) {
this.getCustomer(value) // this.getCustomer(value)
this.getDjyCustomerpage(value, 'customer', 'djy_cust_prop')
}, },
// - end // - end
// - start
forwarderSelect(value) {
this.details.forwarder = value
},
forwarderChange(value) {
this.getDjyCustomerpage(value, 'forwarder', 'booking_agent')
},
// - end
// - start // - start
getCarrier(name = '') { getCarrier(name = '') {
GetCarrierlist({ GetCarrierlist({
@ -672,6 +734,30 @@ export default {
}, },
// - end // - end
// - start
getForwarderlist(name = '') {
GetForwarderlist({
Name: name
})
.then(res => {
if (res.code === 200) {
this.shipagencyData = res.data
this.$forceUpdate()
}
})
.catch(err => {
console.log(err)
})
},
shipagencySelect(value) {
// const index = this.shipagencyDataArr.indexOf(value)
this.details.shipagency = value
},
shipagencyChange(value) {
this.getForwarderlist(value)
},
// - end
// - start // - start
getVessel(name = '') { getVessel(name = '') {
GetVessellist({ GetVessellist({

@ -33,7 +33,7 @@
:auto-size="{ minRows: 2, maxRows: 6 }" :auto-size="{ minRows: 2, maxRows: 6 }"
style="height: 130px" style="height: 130px"
/> />
<div class="line-count" v-if="Object.keys(details).length > 1 && details.shipper.length > 0"> <div class="line-count" v-if="Object.keys(details).length > 1 && details.shipper.length > 1">
<div v-for="(num, index) in details.shipper.split('\n')" :key="index">{{ num.length }}</div> <div v-for="(num, index) in details.shipper.split('\n')" :key="index">{{ num.length }}</div>
</div> </div>
</div> </div>
@ -64,7 +64,7 @@
:auto-size="{ minRows: 2, maxRows: 6 }" :auto-size="{ minRows: 2, maxRows: 6 }"
style="height: 130px" style="height: 130px"
/> />
<div class="line-count" v-if="Object.keys(details).length > 1 && details.consignee.length > 0"> <div class="line-count" v-if="Object.keys(details).length > 1 && details.consignee.length > 1">
<div v-for="(num, index) in details.consignee.split('\n')" :key="index">{{ num.length }}</div> <div v-for="(num, index) in details.consignee.split('\n')" :key="index">{{ num.length }}</div>
</div> </div>
</div> </div>
@ -95,7 +95,7 @@
:auto-size="{ minRows: 2, maxRows: 6 }" :auto-size="{ minRows: 2, maxRows: 6 }"
style="height: 130px" style="height: 130px"
/> />
<div class="line-count" v-if="Object.keys(details).length > 1 && details.notifyparty.length > 0"> <div class="line-count" v-if="Object.keys(details).length > 1 && details.notifyparty.length > 1">
<div v-for="(num, index) in details.notifyparty.split('\n')" :key="index">{{ num.length }}</div> <div v-for="(num, index) in details.notifyparty.split('\n')" :key="index">{{ num.length }}</div>
</div> </div>
</div> </div>
@ -111,8 +111,9 @@
:labelCol="labelCol" :labelCol="labelCol"
:wrapperCol="wrapperCol" :wrapperCol="wrapperCol"
has-feedback has-feedback
style="overflow: visible;"
> >
<div style="display: flex"> <div class="yard-box" style="display: flex">
<auto-complete <auto-complete
v-model="details.yard" v-model="details.yard"
class="customer-input" class="customer-input"
@ -123,6 +124,9 @@
/> />
<i class="iconfont icon-touxiang" style="margin: 0 4px"></i> <i class="iconfont icon-touxiang" style="margin: 0 4px"></i>
<i class="iconfont icon-bianji1"></i> <i class="iconfont icon-bianji1"></i>
<div class="feeself">
<a-checkbox v-model="details.feeself"> </a-checkbox>
</div>
</div> </div>
</a-form-item> </a-form-item>
</a-col> </a-col>
@ -134,9 +138,13 @@
:wrapperCol="wrapperCol" :wrapperCol="wrapperCol"
has-feedback has-feedback
> >
<a-input <auto-complete
placeholder="请输入报关行"
v-model="details.customser" v-model="details.customser"
class="customer-input"
:data-source="customserDataArr"
placeholder="请输入报关行"
@select="customserSelect"
@change="customserChange"
/> />
</a-form-item> </a-form-item>
</a-col> </a-col>
@ -148,9 +156,13 @@
:wrapperCol="wrapperCol" :wrapperCol="wrapperCol"
has-feedback has-feedback
> >
<a-input <auto-complete
placeholder="请输入车队"
v-model="details.trucker" v-model="details.trucker"
class="customer-input"
:data-source="truckerDataArr"
placeholder="请输入车队"
@select="truckerSelect"
@change="truckerChange"
/> />
</a-form-item> </a-form-item>
</a-col> </a-col>
@ -162,9 +174,13 @@
:wrapperCol="wrapperCol" :wrapperCol="wrapperCol"
has-feedback has-feedback
> >
<a-input <auto-complete
placeholder="请输入国外代理"
v-model="details.agentid" v-model="details.agentid"
class="customer-input"
:data-source="agentidDataArr"
placeholder="请输入国外代理"
@select="agentidSelect"
@change="agentidChange"
/> />
</a-form-item> </a-form-item>
</a-col> </a-col>
@ -514,7 +530,7 @@
import { XCard } from '@/components' import { XCard } from '@/components'
import { AutoComplete } from 'ant-design-vue' import { AutoComplete } from 'ant-design-vue'
import { BookingTemplate, GetYardlist, GetPortloadlist, GetPortlist, GetPackage, BookingTemplateAdd } from '@/api/modular/main/BookingLedger' import { BookingTemplate, GetYardlist, GetPortloadlist, GetPortlist, GetPackage, BookingTemplateAdd, DjyCustomerpage } from '@/api/modular/main/BookingLedger'
export default { export default {
components: { components: {
XCard, XCard,
@ -554,6 +570,9 @@ export default {
placedeliveryData: [], // placedeliveryData: [], //
placereceiptData: [], // placereceiptData: [], //
kindpkgsData: [], kindpkgsData: [],
customserData: [], //
truckerData: [], //
agentidData: [], //
shippername: '', shippername: '',
consigneename: '', consigneename: '',
notifypartyname: '', notifypartyname: '',
@ -718,6 +737,45 @@ export default {
} else { } else {
return [] return []
} }
},
customserDataArr () {
if (this.customserData) {
const arr = []
this.customserData.map((item, index) => {
if (!arr.includes(item.shortName)) {
arr.push(item.shortName)
}
})
return arr
} else {
return []
}
},
truckerDataArr () {
if (this.truckerData) {
const arr = []
this.truckerData.map((item, index) => {
if (!arr.includes(item.shortName)) {
arr.push(item.shortName)
}
})
return arr
} else {
return []
}
},
agentidDataArr () {
if (this.agentidData) {
const arr = []
this.agentidData.map((item, index) => {
if (!arr.includes(item.shortName)) {
arr.push(item.shortName)
}
})
return arr
} else {
return []
}
} }
}, },
created() { created() {
@ -848,7 +906,7 @@ export default {
}) })
.then((res) => { .then((res) => {
if (res.code === 200) { if (res.code === 200) {
this[`${type}Data`] = res.data.splice(0, 500) this[`${type}Data`] = res.data.splice(0, 50)
this.$forceUpdate() this.$forceUpdate()
} }
}) })
@ -917,6 +975,49 @@ export default {
}, },
// - end // - end
// - start
getDjyCustomerpage (name = '', type, key) {
DjyCustomerpage({
SearchValue: name,
PropString: key
})
.then((res) => {
if (res.code === 200) {
this[`${type}Data`] = res.data.rows
console.log(this[`${type}DataArr`])
this.$forceUpdate()
}
})
.catch((err) => {
console.log(err)
})
},
customserSelect (value) {
this.details.customser = value
},
customserChange(value) {
this.getDjyCustomerpage(value, 'customser', 'customs_broker')
},
// - end
// - start
truckerSelect (value) {
this.details.trucker = value
},
truckerChange(value) {
this.getDjyCustomerpage(value, 'trucker', 'fleet')
},
// - end
// - start
agentidSelect (value) {
this.details.agentid = value
},
agentidChange(value) {
this.getDjyCustomerpage(value, 'agentid', 'out_agent')
},
// - end
// //
saveModel (type) { saveModel (type) {
this.modelVisible = true this.modelVisible = true
@ -1138,6 +1239,15 @@ ${newStr.slice(split)}`
} }
} }
} }
.yard-box{
position: relative;
}
.feeself{
position: absolute;
top: -1px;
right: -63px;
transform: scale(.8);
}
.from-label { .from-label {
margin-bottom: 10px; margin-bottom: 10px;
} }

@ -566,9 +566,7 @@ export default {
}, },
sendXHZ() { sendXHZ() {
SendXHZ({ SendXHZ(this.id)
bookingId: this.id,
})
.then((res) => { .then((res) => {
if (res.success) { if (res.success) {
this.$message.success(`下货纸发送成功`) this.$message.success(`下货纸发送成功`)
@ -582,9 +580,7 @@ export default {
}, },
vgmSend() { vgmSend() {
VgmSend({ VgmSend(this.id)
bookingId: this.id,
})
.then((res) => { .then((res) => {
if (res.success) { if (res.success) {
this.$message.success(`VGM发送成功`) this.$message.success(`VGM发送成功`)
@ -599,9 +595,7 @@ export default {
// //
getLetterYard() { getLetterYard() {
LetterYard({ LetterYard(this.id)
bookingId: this.id,
})
.then((res) => { .then((res) => {
console.log('== 放舱信息 ==', res.data) console.log('== 放舱信息 ==', res.data)
if (res.success) { if (res.success) {
@ -617,9 +611,7 @@ export default {
// //
getSampleBill() { getSampleBill() {
SampleBill({ SampleBill(this.id)
bookingId: this.id,
})
.then((res) => { .then((res) => {
console.log('== 样单信息 ==', res.data) console.log('== 样单信息 ==', res.data)
if (res.success) { if (res.success) {
@ -635,9 +627,7 @@ export default {
// VGM // VGM
getVgmLink() { getVgmLink() {
VgmLink({ VgmLink(this.id)
bookingId: this.id,
})
.then((res) => { .then((res) => {
console.log('== VGM信息 ==', res.data) console.log('== VGM信息 ==', res.data)
if (res.success) { if (res.success) {
@ -652,9 +642,7 @@ export default {
}, },
sampleBillPdf () { sampleBillPdf () {
SampleBillPdf({ SampleBillPdf(this.id)
bookingId: this.id
})
.then((res) => { .then((res) => {
if (res.success) { if (res.success) {
this.hsaBillPdf = true this.hsaBillPdf = true
@ -774,9 +762,7 @@ export default {
// //
sendLetterYard() { sendLetterYard() {
SendLetterYard({ SendLetterYard(this.id)
bookingId: this.id
})
.then((res) => { .then((res) => {
if (res.success) { if (res.success) {
this.$message.success('发送成功') this.$message.success('发送成功')
@ -790,9 +776,7 @@ export default {
}, },
TxxpLink() { TxxpLink() {
TxxpLink({ TxxpLink(this.id)
bookingId: this.id
})
.then((res) => { .then((res) => {
if (res.success) { if (res.success) {
console.log(res.data) console.log(res.data)
@ -807,9 +791,7 @@ export default {
}, },
checkFun () { checkFun () {
ExcuteRulesOceanBooking({ ExcuteRulesOceanBooking(this.id)
bookingId: this.id
})
.then((res) => { .then((res) => {
if (res.success) { if (res.success) {
this.$emit('rules', res.data.rows) this.$emit('rules', res.data.rows)

@ -57,7 +57,7 @@
</div> </div>
</template> </template>
</vxe-toolbar> </vxe-toolbar>
<vxe-grid ref="xGrid" v-bind="gridOptions" @page-change="handlePageChange"> <vxe-grid ref="xGrid" v-bind="gridOptions" @page-change="handlePageChange" @cell-dblclick="editColumns">
<template #operate="{ row }"> <template #operate="{ row }">
<vxe-button type="text" icon="vxe-icon-edit" @click="editColumns(row)"></vxe-button> <vxe-button type="text" icon="vxe-icon-edit" @click="editColumns(row)"></vxe-button>
</template> </template>
@ -67,16 +67,22 @@
</a-col> </a-col>
</a-row> </a-row>
<a-modal title="新增船公司" :width="300" :visible="addVisible" @ok="addSubmit" @cancel="addCancel"> <a-modal title="新增船公司" :width="600" :visible="addVisible" @ok="addSubmit" @cancel="addCancel">
<a-radio-group v-model="carrierRadio"> <a-radio-group v-model="carrierRadio">
<a-radio :style="radioStyle" value="CMA"> <img class="radio-logo" src="@/assets/logo/CMA.png" /> CMA </a-radio> <div class="group-label">
<a-radio :style="radioStyle" value="ESL"> <img class="radio-logo" src="@/assets/logo/ESL.jpg"/> ESL </a-radio> <div class="label-flex">
<a-radio :style="radioStyle" value="MSC"> <img class="radio-logo" src="@/assets/logo/MSC.png" /> MSC </a-radio> <a-radio :style="radioStyle" value="CMA"> <img class="radio-logo" src="@/assets/logo/CMA.png" /> CMA </a-radio>
<a-radio :style="radioStyle" value="ONE"> <img class="radio-logo" src="@/assets/logo/ONE.jpg" /> ONE </a-radio> <a-radio :style="radioStyle" value="ESL"> <img class="radio-logo" src="@/assets/logo/ESL.jpg"/> ESL </a-radio>
<a-radio :style="radioStyle" value="PIL"> <img class="radio-logo" src="@/assets/logo/PIL.jpg" /> PIL </a-radio> <a-radio :style="radioStyle" value="MSC"> <img class="radio-logo" src="@/assets/logo/MSC.png" /> MSC </a-radio>
<a-radio :style="radioStyle" value="TSL"> <img class="radio-logo" src="@/assets/logo/TSL.jpg" /> TSL </a-radio> <a-radio :style="radioStyle" value="ONE"> <img class="radio-logo" src="@/assets/logo/ONE.jpg" /> ONE </a-radio>
<a-radio :style="radioStyle" value="YML"> <img class="radio-logo" src="@/assets/logo/YML.jpg" /> YML </a-radio> </div>
<a-radio :style="radioStyle" value="SINOLINE"> <img class="radio-logo" src="@/assets/logo/waiyun.png" /> 外运 </a-radio> <div class="label-flex">
<a-radio :style="radioStyle" value="PIL"> <img class="radio-logo" src="@/assets/logo/PIL.jpg" /> PIL </a-radio>
<a-radio :style="radioStyle" value="TSL"> <img class="radio-logo" src="@/assets/logo/TSL.jpg" /> TSL </a-radio>
<a-radio :style="radioStyle" value="YML"> <img class="radio-logo" src="@/assets/logo/YML.jpg" /> YML </a-radio>
<a-radio :style="radioStyle" value="SINOLINE"> <img class="radio-logo" src="@/assets/logo/waiyun.png" /> 外运 </a-radio>
</div>
</div>
</a-radio-group> </a-radio-group>
</a-modal> </a-modal>
@ -555,4 +561,12 @@ export default {
height: 40px; height: 40px;
display: inline-block; display: inline-block;
} }
.group-label{
width: 500px;
display: flex;
.label-flex{
flex: 1;
}
}
</style> </style>

Loading…
Cancel
Save