更新和川现场问题

master
sunzehua 12 months ago
parent 808dd0d99a
commit 5ed454b48d

@ -4,10 +4,10 @@ VUE_APP_PREVIEW=true
# VUE_APP_API_BASE_URL=http://127.0.0.1:5000
# VUE_APP_API_BASE_URL=http://60.209.125.238:25805
# 和川大简云正式
# VUE_APP_API_BASE_URL=http://47.104.85.216:12345/api
VUE_APP_API_BASE_URL=http://47.104.85.216:12345/api
# VUE_APP_API_BASE_URL=http://localhost:5010
# 和川大简云测试
VUE_APP_API_BASE_URL=http://60.209.125.238:35100
# VUE_APP_API_BASE_URL=http://60.209.125.238:35100
# 大简云
# VUE_APP_API_BASE_URL=http://47.104.222.4:5020

@ -7,11 +7,11 @@ VUE_APP_PREVIEW=true
# process.env.VUE_APP_API_BASE_URL
# 和川大简云正式
# VUE_APP_API_BASE_URL=http://47.104.85.216:12345/api
# VUE_APP_SOCKET_BASE_URL=http://47.104.85.216:12345/api
VUE_APP_API_BASE_URL=http://47.104.85.216:12345/api
VUE_APP_SOCKET_BASE_URL=http://47.104.85.216:12345/api
# 和川大简云测试
VUE_APP_API_BASE_URL=http://60.209.125.238:35100
VUE_APP_SOCKET_BASE_URL=http://60.209.125.238:35100
# VUE_APP_API_BASE_URL=http://60.209.125.238:35100
# VUE_APP_SOCKET_BASE_URL=http://60.209.125.238:35100
# # 大简云
# VUE_APP_API_BASE_URL=http://47.104.222.4:5020
# VUE_APP_SOCKET_BASE_URL=http://47.104.222.4:5020

@ -3,13 +3,13 @@ VUE_APP_PREVIEW=true
# VUE_APP_API_BASE_URL=http://60.209.125.238:25805
# VUE_APP_SOCKET_BASE_URL=http://60.209.125.238:25805
# 和川大简云正式
# VUE_APP_API_BASE_URL=http://47.104.85.216:12345/api
# VUE_APP_SOCKET_BASE_URL=http://47.104.85.216:12345/api
VUE_APP_API_BASE_URL=http://47.104.85.216:12345/api
VUE_APP_SOCKET_BASE_URL=http://47.104.85.216:12345/api
# VUE_APP_API_BASE_URL=http://localhost:5010
# VUE_APP_SOCKET_BASE_URL=http://localhost:5010
# 和川大简云测试
VUE_APP_API_BASE_URL=http://60.209.125.238:35100
VUE_APP_SOCKET_BASE_URL=http://60.209.125.238:35100
# VUE_APP_API_BASE_URL=http://60.209.125.238:35100
# VUE_APP_SOCKET_BASE_URL=http://60.209.125.238:35100
# 大简云
# VUE_APP_API_BASE_URL=http://47.104.222.4:5020
# VUE_APP_SOCKET_BASE_URL=http://47.104.222.4:5020

@ -1239,4 +1239,12 @@ export function ListAgentByCarrier(parameter) {
method: 'get',
params: parameter
})
}
export function listYardBwCarrier(parameter) {
return axios({
url: '/BookingCarrierRelation/ListYardByCarrier',
method: 'get',
params: parameter
})
}

@ -32,6 +32,7 @@ const getters = {
saveNeedCar: state => state.booking.saveNeedCar,
lineList: state => state.booking.lineList,
agentFilter: state => state.booking.agentFilter,
yardFilter: state => state.booking.yardFilter,
bookingInitData: state => state.booking.bookingInitData,
sourceList: state => state.booking.sourceList,
countryList: state => state.booking.countryList,

@ -21,6 +21,7 @@ const booking = {
dpTreeList: [],
copyPages: { number: 0, path: '' },
yardList: [],
yardFilter: {},
statusDIct: [],
projectDict: [],
saveNeedNumber: '',
@ -34,7 +35,7 @@ const booking = {
lineList: [],
sourceList: [],
countryList: [],
agentFilter: [],
agentFilter: {},
saveNeedCar: '',
bookingInitData: {
customernameInitList: [],
@ -133,6 +134,9 @@ const booking = {
},
SET_AgentFilter: (state, list) => {
state.agentFilter = list
},
SET_YardFilter: (state, list) => {
state.yardFilter = list
}
},

@ -19,14 +19,12 @@
@blur="getSelectBlur"
@select="selectOption"
@change="(value, option) => debounce(this.handleChange, 200, option)"
@search="debounce(handleSearch, 300, $event)"
>
@search="debounce(handleSearch, 300, $event)">
<a-select-option
v-for="(item, index) in selectList"
:key="index"
:value="item[showLabel[0]] + index + 3"
:label="item[showLabel[0]]"
>
:label="item[showLabel[0]]">
<template v-if="type === 'contractno'">
<div class="contractno-label">
<div class="title">{{ item.contractNo }} / {{ item.contractName || '--' }}</div>
@ -141,7 +139,8 @@ export default {
'bookingInitData',
'sourceList',
'countryList',
'agentFilter'
'agentFilter',
'yardFilter'
])
},
watch: {
@ -419,12 +418,12 @@ export default {
} else {
setTimeout(() => {
const num = op.data.key
this.value = this.selectList[num][this.showLabel[0]]
this.$emit('change', {
type: this.type,
res: this.selectList[num]
})
}, 100)
this.value = this.selectList[num][this.showLabel[0]]
this.$emit('change', {
type: this.type,
res: this.selectList[num]
})
}, 100)
}
},
getSelectFirst(e, canClick = true) {
@ -454,8 +453,25 @@ export default {
'shippercountry'
].includes(this.type)
) {
this.selectList = this.emnuData(this.type)
this.inLoading = false
if (this.type === 'yard') {
if (this.yardFilter.length === 0) {
this.selectList = this.yardList
} else {
const arr = []
this.yardFilter.forEach(item => {
this.yardList.forEach(ite => {
if (ite.code == item.yardCode) {
arr.push(ite)
}
})
})
this.selectList = arr
}
} else {
this.selectList = this.emnuData(this.type)
this.inLoading = false
}
return false
}
// 线lineName,
@ -465,12 +481,40 @@ export default {
this.setLineList()
return false
}
if (this.searchApi === 'DjyCustomerSuggest') {
this.selectList = []
}
if (!e) {
console.log('首次搜索内容', e, this.type, this.bookingInitData)
if (this.type === 'forwarder') {
this.inLoading = true
const arr = []
this.selectList = []
setTimeout(() => {
if (this.agentFilter.length === 0) {
setTimeout(() => {
this.inLoading = false
this.selectList = this.bookingInitData[`${this.type}InitList`]
}, 100);
} else {
this.agentFilter.forEach(item => {
this.bookingInitData[`${this.type}InitList`].forEach(ite => {
if (ite.codeName == item.agentCode) {
arr.push(ite)
}
})
})
setTimeout(() => {
this.inLoading = false
this.selectList = arr
}, 100);
}
}, 900);
return false
}
if (
![
'vessel',
'forwarder',
'lineName',
'notifypartycountry',
'consigneecountry',
@ -481,7 +525,6 @@ export default {
].includes(this.type) &&
this.bookingInitData[`${this.type}InitList`].length > 0
) {
console.log(this.bookingInitData[`${this.type}InitList`])
this.selectList = this.bookingInitData[`${this.type}InitList`]
return false
}
@ -498,21 +541,23 @@ export default {
this.inLoading = true
this.getFromSelectData(this.emnuSelectApi(this.searchApi), this.searchQuery).then(data => {
if (data.rows) {
// if (this.searchApi === 'DjyCustomerSuggest') {
// if (this.agentFilter.length === 0) {
// this.selectList = data.rows
// } else {
// this.agentFilter.forEach(item=>{
// data.rows.forEach(ite=>{
// if(ite.codeName==item.shortName)
// })
// })
// console.log(this.selectList, data.rows)
// }
// } else {
// this.selectList = data.rows
// }
this.selectList = data.rows
if (this.searchApi === 'DjyCustomerSuggest') {
if (this.agentFilter.length === 0) {
this.selectList = data.rows
} else {
const arr = []
this.agentFilter.forEach(item => {
data.rows.forEach(ite => {
if (ite.codeName == item.agentCode) {
arr.push(ite)
}
})
})
this.selectList = arr
}
} else {
this.selectList = data.rows
}
} else {
this.selectList = data
}
@ -540,12 +585,30 @@ export default {
}
})
}
this.inLoading = true
this.getFromSelectData(this.emnuSelectApi(this.searchApi), this.searchQuery).then(data => {
if (data.rows) {
this.selectList = data.rows
if (this.searchApi === 'DjyCustomerSuggest') {
if (this.agentFilter.length === 0) {
this.selectList = data.rows
} else {
const arr = []
this.agentFilter.forEach(item => {
data.rows.forEach(ite => {
if (ite.codeName == item.agentCode) {
arr.push(ite)
}
})
})
this.selectList = arr
}
} else {
this.selectList = data.rows
}
} else {
this.selectList = data
}
this.inLoading = false
})
}
},
@ -596,6 +659,7 @@ export default {
font-weight: 600;
color: #666;
}
.note {
height: 22px;
line-height: 22px;
@ -614,6 +678,7 @@ export default {
border-bottom: 1px dashed #ddd;
margin-bottom: 4px;
}
.voyno,
.etd {
height: 22px;
@ -625,10 +690,12 @@ export default {
.select-content {
display: flex;
.select-input {
flex: 1;
position: relative;
overflow: hidden;
.select_overlap {
cursor: pointer;
height: 32px;
@ -641,11 +708,13 @@ export default {
opacity: 0;
}
}
.copy-btn {
width: 24px;
text-align: center;
color: #bbb;
font-size: 13px;
&:hover {
color: @primary-color;
}

@ -163,7 +163,7 @@ import {
getDjyTenantConfig,
GetAllData,
DeleteBookingOrder,
DeleteLetterYard,
listYardBwCarrier,
ListAgentByCarrier
} from '@/api/modular/main/BookingLedger'
import { mapActions, mapGetters } from 'vuex'
@ -618,6 +618,7 @@ export default {
if (!this.$route.query.copyId) {
const $data = JSON.parse(JSON.stringify(this.historyData[`copy-${newId}`]))
this.bookingDetails = $data.bookingDetails
this.oldBookingDetails = JSON.parse(JSON.stringify(this.bookingDetails))
this.excuteRules = $data.excuteRules
this.excuteRulesType = $data.excuteRulesType
this.isAdd = $data.isAdd
@ -626,6 +627,7 @@ export default {
} else {
const $data = JSON.parse(JSON.stringify(this.historyData[`copy-${newId}-${this.$route.query.copyId}`]))
this.bookingDetails = $data.bookingDetails
this.oldBookingDetails = JSON.parse(JSON.stringify(this.bookingDetails))
this.excuteRules = $data.excuteRules
this.excuteRulesType = $data.excuteRulesType
this.isAdd = $data.isAdd
@ -663,6 +665,7 @@ export default {
this.inChildLoading = false
}, 500)
this.isLockBooking = false
this.getFilter()
this.$forceUpdate()
} else if (
Object.keys(this.historyData).includes(`add-${this.$route.query.addNum}`) &&
@ -670,6 +673,7 @@ export default {
) {
const $data = JSON.parse(JSON.stringify(this.historyData[`add-${this.$route.query.addNum}`]))
this.bookingDetails = $data.bookingDetails
this.oldBookingDetails = JSON.parse(JSON.stringify(this.bookingDetails))
this.excuteRules = $data.excuteRules
this.excuteRulesType = $data.excuteRulesType
this.isAdd = $data.isAdd
@ -709,6 +713,7 @@ export default {
this.inChildLoading = false
}, 500)
this.isLockBooking = false
this.getFilter()
this.$forceUpdate()
} else if (Object.keys(this.historyData).includes(newId)) {
this.id = this.$route.query.id
@ -748,8 +753,10 @@ export default {
sale: $data.bookingDetails.sale
}
this.bookingDetails = { ...JSON.parse(JSON.stringify(initDetail)), ...copyData }
this.oldBookingDetails = JSON.parse(JSON.stringify(this.bookingDetails))
} else {
this.bookingDetails = $data.bookingDetails
this.oldBookingDetails = JSON.parse(JSON.stringify(this.bookingDetails))
if (this.topDown) {
this.getDetail()
}
@ -784,6 +791,7 @@ export default {
this.inChildLoading = false
}, 1300);
}, 500)
this.getFilter()
if (!this.bookingDetails.extendState) {
this.isLockBooking = false
} else {
@ -814,8 +822,6 @@ export default {
this.$refs.basicInfo.$refs.basicFrom.clearValidate()
this.$refs.mailingInfo.$refs.mailingFrom.clearValidate()
this.$refs.cargoInfo.$refs.cargoFrom.clearValidate()
// this.$refs.billInfo.$refs.billFrom.clearValidate()
// this.$refs.remarksInfo.$refs.remarkFrom.clearValidate()
},
init() {
this.bookingDetails = JSON.parse(JSON.stringify(initDetail))
@ -832,6 +838,7 @@ export default {
this.bookingDetails.carrierid = this.type
this.bookingDetails.carrier = this.type
this.isLockBooking = false
this.getFilter()
this.getDefaultVal()
setTimeout(() => {
if (Object.keys(this.$refs).includes('sedOrder')) {
@ -856,7 +863,6 @@ export default {
.then(res => {
const defaultData = JSON.parse(res.data.configJson)
this.defaultData = defaultData
console.log(defaultData)
const Fn = item => {
const field = item.field.split('.')
let label = field[1].toLowerCase()
@ -1048,7 +1054,14 @@ export default {
console.log(err)
})
},
getFilter() {
ListAgentByCarrier({ carrierCode: this.bookingDetails.carrierid }).then(res => {
this.$store.commit('SET_AgentFilter', res.data)
})
listYardBwCarrier({ carrierCode: this.bookingDetails.carrierid }).then(res => {
this.$store.commit('SET_YardFilter', res.data)
})
},
enmuCarrier(type) {
switch (type) {
case 'CMA':
@ -1100,9 +1113,6 @@ export default {
this.$message.destroy()
this.setDeatilsFun(res, false)
this.$store.commit('SET_SAVETOPDOWN', false)
ListAgentByCarrier({ carrierCode: this.bookingDetails.carrierid }).then(res => {
this.$store.commit('SET_AgentFilter', res.data)
})
})
.catch(err => {
console.log(err)
@ -1205,6 +1215,7 @@ export default {
this.$set(this.historyData, `copyMore-${this.id}`, hisData)
}
// this.getDefaultVal()
this.getFilter()
this.inPageLoading = false
setTimeout(() => {
setTimeout(() => {
@ -1390,9 +1401,11 @@ export default {
}
})
this.saveBtnFlag = true
const changedFields = this.diffObj(this.oldBookingDetails, this.bookingDetails)
if (changedFields) {
_data.changedFields = Object.keys(changedFields.new_val)
if (this.oldBookingDetails.log) {
delete this.oldBookingDetails.log
}
if (this.oldBookingDetails.goodsStatus) {
delete this.oldBookingDetails.goodsStatus
}
if (_data.log) {
delete _data.log
@ -1400,6 +1413,25 @@ export default {
if (_data.goodsStatus) {
delete _data.goodsStatus
}
const changedFields = this.diffObj(this.oldBookingDetails, _data)
if (changedFields.new_val.bookingEDIExt) {
delete changedFields.new_val.bookingEDIExt
}
if (changedFields.new_val.ctnInputs) {
delete changedFields.new_val.ctnInputs
}
if (changedFields.new_val.extendState) {
delete changedFields.new_val.extendState
}
if (changedFields.new_val.item) {
delete changedFields.new_val.item
}
if (changedFields.new_val.hbList) {
delete changedFields.new_val.hbList
}
if (changedFields) {
_data.changedFields = Object.keys(changedFields.new_val)
}
BookingOrderSave(_data)
.then(res => {
if (res.success) {

@ -8,19 +8,17 @@
ref="basicFrom"
:selfUpdate="true"
:model="details"
:rules="rules"
>
<a-row class="from-box" >
<a-col :xs="12" :sm="12" :md="12" :lg="{span: '4-8'}" :xl="{span: '4-8'}">
:rules="rules">
<a-row class="from-box">
<a-col :xs="12" :sm="12" :md="12" :lg="{ span: '4-8' }" :xl="{ span: '4-8' }">
<a-form-model-item
class="from-label"
prop="customername"
label="委托单位"
:labelCol="labelCol4"
:wrapperCol="wrapperCol4"
has-feedback
>
<div class="customer-box" >
has-feedback>
<div class="customer-box">
<selectView
type="customername"
:defaultVal="details.customername"
@ -31,27 +29,24 @@
:disabled="BookingLockOrder['CUSTOMERNAME'] && isLockBooking"
:isCopy="true"
@change="getSelectViewRes"
style="flex: 1; margin-top: -4px"
></selectView>
style="flex: 1; margin-top: -4px"></selectView>
<span
class="customer-btn iconfont icon-touxiang"
@click.stop="changeCustomer('select')"
:style="{ paddingRight: '0px' }"
></span>
:style="{ paddingRight: '0px' }"></span>
<span class="customer-btn iconfont icon-jiahao2fill" @click.stop="changeCustomer('add')"></span>
</div>
</a-form-model-item>
</a-col>
<a-col :xs="12" :sm="12" :md="12" :lg="{span: '4-8'}" :xl="{span: '4-8'}">
<a-col :xs="12" :sm="12" :md="12" :lg="{ span: '4-8' }" :xl="{ span: '4-8' }">
<a-form-model-item
class="from-label"
prop="thirdPay"
label="第三方"
:labelCol="labelCol2"
:wrapperCol="wrapperCol2"
has-feedback
>
<div class="customer-box" >
has-feedback>
<div class="customer-box">
<selectView
type="thirdPay"
:defaultVal="details.thirdPay"
@ -62,32 +57,33 @@
:openSearch="true"
:isCopy="true"
@change="getSelectViewRes"
style="flex: 1; margin-top: -4px"
></selectView>
style="flex: 1; margin-top: -4px"></selectView>
</div>
</a-form-model-item>
</a-col>
<a-col :xs="12" :sm="12" :md="12" :lg="{span: '4-8'}" :xl="{span: '4-8'}">
<a-col :xs="12" :sm="12" :md="12" :lg="{ span: '4-8' }" :xl="{ span: '4-8' }">
<a-form-model-item
class="from-label"
label="PO NO"
:labelCol="labelCol2"
:wrapperCol="wrapperCol2"
has-feedback
prop="pono"
>
<inputView :ishd="BookingLockOrder['pono'] && isLockBooking" type="pono" :parentVal="details.pono" @getInputChange="inputChange" />
prop="pono">
<inputView
:ishd="BookingLockOrder['pono'] && isLockBooking"
type="pono"
:parentVal="details.pono"
@getInputChange="inputChange" />
</a-form-model-item>
</a-col>
<a-col :xs="12" :sm="12" :md="12" :lg="{span: '4-8'}" :xl="{span: '4-8'}">
<a-col :xs="12" :sm="12" :md="12" :lg="{ span: '4-8' }" :xl="{ span: '4-8' }">
<a-form-model-item
class="from-label"
label="船公司"
prop="carrierid"
:labelCol="labelCol2"
:wrapperCol="wrapperCol2"
has-feedback
>
has-feedback>
<selectView
ref="carrierid"
type="carrierid"
@ -98,91 +94,104 @@
:disabled="BookingLockOrder['carrier'] && isLockBooking"
:openSearch="false"
@change="getSelectViewRes"
style="flex: 1; margin-top: -4px"
></selectView>
style="flex: 1; margin-top: -4px"></selectView>
</a-form-model-item>
</a-col>
<a-col :xs="12" :sm="12" :md="12" :lg="{span: '4-8'}" :xl="{span: '4-8'}">
<a-col :xs="12" :sm="12" :md="12" :lg="{ span: '4-8' }" :xl="{ span: '4-8' }">
<a-form-model-item
class="from-label"
label="是否占舱"
:labelCol="{ xs: { span: 24 },
sm: { span: 9 },
md: { span: 9 }}"
:wrapperCol="{ xs: { span: 24 },
sm: { span: 12 },
md: { span: 12 }}"
:labelCol="{
xs: { span: 24 },
sm: { span: 9 },
md: { span: 9 }
}"
:wrapperCol="{
xs: { span: 24 },
sm: { span: 12 },
md: { span: 12 }
}"
has-feedback
prop="zhanCangFlag"
>
prop="zhanCangFlag">
<div class="date-box">
<a-radio-group :disabled="BookingLockOrder['zhanCangFlag'] && isLockBooking" size="small" v-model="details.zhanCangFlag">
<a-radio-group
:disabled="BookingLockOrder['zhanCangFlag'] && isLockBooking"
size="small"
v-model="details.zhanCangFlag">
<a-radio size="small" value="是"> </a-radio>
<a-radio size="small" value="否"> </a-radio>
</a-radio-group>
</div>
</a-form-model-item>
</a-col>
<a-col :xs="12" :sm="12" :md="12" :lg="{span: '4-8'}" :xl="{span: '4-8'}">
<a-col :xs="12" :sm="12" :md="12" :lg="{ span: '4-8' }" :xl="{ span: '4-8' }">
<a-form-model-item
class="from-label"
label="订舱编号"
:labelCol="labelCol4"
:wrapperCol="wrapperCol4"
has-feedback
prop="custno"
>
<inputView :ishd="BookingLockOrder['custno'] && isLockBooking" type="custno" :parentVal="details.custno" @getInputChange="inputChange" />
prop="custno">
<inputView
:ishd="BookingLockOrder['custno'] && isLockBooking"
type="custno"
:parentVal="details.custno"
@getInputChange="inputChange" />
</a-form-model-item>
</a-col>
<a-col :xs="12" :sm="12" :md="12" :lg="{span: '4-8'}" :xl="{span: '4-8'}">
<a-col :xs="12" :sm="12" :md="12" :lg="{ span: '4-8' }" :xl="{ span: '4-8' }">
<a-form-model-item
class="from-label"
label="提单号"
prop="mblno"
:labelCol="labelCol2"
:wrapperCol="wrapperCol2"
has-feedback
>
<inputView type="mblno" :parentVal="details.mblno" :ishd="BookingLockOrder['mblno'] && isLockBooking" @getInputChange="inputChange" />
has-feedback>
<inputView
type="mblno"
:parentVal="details.mblno"
:ishd="BookingLockOrder['mblno'] && isLockBooking"
@getInputChange="inputChange" />
</a-form-model-item>
</a-col>
<a-col :xs="12" :sm="12" :md="12" :lg="{span: '4-8'}" :xl="{span: '4-8'}">
<a-col :xs="12" :sm="12" :md="12" :lg="{ span: '4-8' }" :xl="{ span: '4-8' }">
<a-form-model-item
class="from-label"
label="分提单号"
:labelCol="labelCol2"
:wrapperCol="wrapperCol2"
has-feedback
prop="hblno"
>
<inputView :ishd="BookingLockOrder['hblno'] && isLockBooking" type="hblno" :parentVal="details.hblno" @getInputChange="inputChange" />
prop="hblno">
<inputView
:ishd="BookingLockOrder['hblno'] && isLockBooking"
type="hblno"
:parentVal="details.hblno"
@getInputChange="inputChange" />
</a-form-model-item>
</a-col>
<a-col :xs="12" :sm="12" :md="12" :lg="{span: '4-8'}" :xl="{span: '4-8'}">
<a-col :xs="12" :sm="12" :md="12" :lg="{ span: '4-8' }" :xl="{ span: '4-8' }">
<a-form-model-item
class="from-label"
label="订舱代理"
:labelCol="labelCol2"
:wrapperCol="wrapperCol2"
has-feedback
prop="forwarder"
>
prop="forwarder">
<selectView
type="forwarder"
:defaultVal="details.forwarder"
:agentFilter="agentFilter"
searchApi="DjyCustomerSuggest"
:disabled="BookingLockOrder['forwarder'] && isLockBooking"
:searchQuery="{ keyword: '', type: 'booking_agent' }"
:showLabel="['shortName']"
:openSearch="true"
@change="getSelectViewRes"
style="flex: 1; margin-top: -4px"
></selectView>
style="flex: 1; margin-top: -4px"></selectView>
</a-form-model-item>
</a-col>
<template v-if="details.carrierid != 'ESL'">
<a-col :xs="12" :sm="12" :md="12" :lg="{span: '4-8'}" :xl="{span: '4-8'}">
<a-col :xs="12" :sm="12" :md="12" :lg="{ span: '4-8' }" :xl="{ span: '4-8' }">
<a-form-model-item
class="from-label"
label="运费协议号"
@ -197,10 +206,9 @@
md: { span: 14 }
}"
has-feedback
prop="contractno"
>
prop="contractno">
<div class="copy-box">
<template >
<template>
<autoView
class="copy-input"
type="contractno"
@ -208,17 +216,16 @@
:defaultVal="details.contractno"
:dropdownStyle="{ width: '300px' }"
searchApi="getContractno"
:searchQuery="{ queryItem: '', top: 50, laneCName: this.details.lineName,carrier: this.details.carrierid,pod: this.details.destinationid }"
:searchQuery="{ queryItem: '', top: 50, laneCName: this.details.lineName, carrier: this.details.carrierid, pod: this.details.destinationid }"
:showLabel="['contractNo']"
@select="getAutoViewRes"
></autoView>
@select="getAutoViewRes"></autoView>
</template>
</div>
</a-form-model-item>
</a-col>
</template>
<template v-if="details.carrierid === 'ESL'">
<a-col :xs="12" :sm="12" :md="12" :lg="{span: '4-8'}" :xl="{span: '4-8'}">
<a-col :xs="12" :sm="12" :md="12" :lg="{ span: '4-8' }" :xl="{ span: '4-8' }">
<a-form-model-item
class="from-label"
label="运费协议号"
@ -233,10 +240,9 @@
md: { span: 12 }
}"
has-feedback
prop="contractno"
>
prop="contractno">
<div class="copy-box">
<template >
<template>
<autoView
class="copy-input"
type="contractno"
@ -244,55 +250,59 @@
:disabled="BookingLockOrder['contractno'] && isLockBooking"
:dropdownStyle="{ width: '300px' }"
searchApi="getContractno"
:searchQuery="{ queryItem: '', top: 50, laneCName: this.details.lineName,carrier: this.details.carrierid,pod: this.details.destinationid }"
:searchQuery="{ queryItem: '', top: 50, laneCName: this.details.lineName, carrier: this.details.carrierid, pod: this.details.destinationid }"
:showLabel="['contractNo']"
@select="getAutoViewRes"
></autoView>
@select="getAutoViewRes"></autoView>
</template>
</div>
</a-form-model-item>
</a-col>
</template>
<template v-if="details.carrierid === 'ESL'">
<a-col :xs="12" :sm="12" :md="12" :lg="{span: '4-8'}" :xl="{span: '4-8'}">
<a-col :xs="12" :sm="12" :md="12" :lg="{ span: '4-8' }" :xl="{ span: '4-8' }">
<a-form-model-item
class="from-label"
label="EP号"
:labelCol="labelCol4"
:wrapperCol="wrapperCol4"
has-feedback
prop="epCode"
>
<inputView :ishd="BookingLockOrder['epCode'] && isLockBooking" type="epCode" :parentVal="details.epCode" @getInputChange="inputChange" />
prop="epCode">
<inputView
:ishd="BookingLockOrder['epCode'] && isLockBooking"
type="epCode"
:parentVal="details.epCode"
@getInputChange="inputChange" />
</a-form-model-item>
</a-col>
</template>
<template v-if="['VOLTA', 'WHL', 'CSL', 'MSC','VOL'].includes(details.carrierid)">
<a-col :xs="12" :sm="12" :md="12" :lg="{span: '4-8'}" :xl="{span: '4-8'}">
<template v-if="['VOLTA', 'WHL', 'CSL', 'MSC', 'VOL'].includes(details.carrierid)">
<a-col :xs="12" :sm="12" :md="12" :lg="{ span: '4-8' }" :xl="{ span: '4-8' }">
<a-form-model-item
class="from-label"
label="真提单号"
:labelCol="labelCol4"
:wrapperCol="wrapperCol4"
has-feedback
prop="tmblno"
>
<inputView :ishd="BookingLockOrder['tmblno'] && isLockBooking" type="tmblno" :parentVal="details.tmblno" @getInputChange="inputChange" />
prop="tmblno">
<inputView
:ishd="BookingLockOrder['tmblno'] && isLockBooking"
type="tmblno"
:parentVal="details.tmblno"
@getInputChange="inputChange" />
</a-form-model-item>
</a-col>
</template>
</a-row>
<div class="from-box2">
<a-row >
<a-col :xs="12" :sm="12" :md="12" :lg="{span: '4-8'}" :xl="5">
<a-row>
<a-col :xs="12" :sm="12" :md="12" :lg="{ span: '4-8' }" :xl="5">
<a-form-model-item
class="from-label"
label="开船日期"
:labelCol="labelCol4"
:wrapperCol="wrapperCol4"
has-feedback
prop="etd"
>
prop="etd">
<div class="date-box">
<datePickerView
class="date-picker"
@ -301,29 +311,27 @@
type="etd"
format="YYYY-MM-DD"
@dateChange="dateChangeFun"
style="margin-top: -5px"
></datePickerView>
style="margin-top: -5px"></datePickerView>
<span class="week" v-if="etdWeek && etdWeek !== 'NaN'">W{{ etdWeek || '--' }}</span>
</div>
</a-form-model-item>
</a-col>
<a-col :xs="12" :sm="12" :md="12" :lg="{span: '4-8'}" :xl="6">
<a-col :xs="12" :sm="12" :md="12" :lg="{ span: '4-8' }" :xl="6">
<a-form-model-item
class="from-label"
label="船名"
:labelCol=" {
:labelCol="{
xs: { span: 24 },
sm: { span: 4 },
md: { span: 4 }
}"
:wrapperCol=" {
:wrapperCol="{
xs: { span: 24 },
sm: { span: 20 },
md: { span: 20 }
}"
has-feedback
prop="vessel"
>
prop="vessel">
<div class="copy-box">
<selectView
class="copy-input"
@ -339,80 +347,91 @@
}"
:showLabel="['vessel']"
:openSearch="true"
@change="getSelectViewRes"
></selectView>
@change="getSelectViewRes"></selectView>
</div>
</a-form-model-item>
</a-col>
<template v-if="details.carrierid === 'ESL'">
<a-col :xs="12" :sm="12" :md="8" :lg="{span: '4-8'}" :xl="4">
<a-col :xs="12" :sm="12" :md="8" :lg="{ span: '4-8' }" :xl="4">
<a-form-model-item
class="from-label"
label="内部航次"
:labelCol="labelCol2"
:wrapperCol="wrapperCol2"
has-feedback
prop="voynoinner"
>
prop="voynoinner">
<!-- 内部航次暂无接口 暂时改为输入框 -->
<inputView :ishd="true" type="voynoinner" :parentVal="details.voynoinner" @getInputChange="inputChange" />
<inputView
:ishd="true"
type="voynoinner"
:parentVal="details.voynoinner"
@getInputChange="inputChange" />
</a-form-model-item>
</a-col>
</template>
<template v-else>
<a-col :xs="12" :sm="12" :md="8" :lg="{span: '4-8'}" :xl="4">
<a-col :xs="12" :sm="12" :md="8" :lg="{ span: '4-8' }" :xl="4">
<a-form-model-item
class="from-label"
label="内部航次"
:labelCol="labelCol2"
:wrapperCol="wrapperCol2"
has-feedback
prop="voynoinner"
>
prop="voynoinner">
<!-- 内部航次暂无接口 暂时改为输入框 -->
<inputView :ishd="true" type="voynoinner" :parentVal="details.voynoinner" @getInputChange="inputChange" />
<inputView
:ishd="true"
type="voynoinner"
:parentVal="details.voynoinner"
@getInputChange="inputChange" />
</a-form-model-item>
</a-col>
</template>
<template v-if="details.carrierid === 'ESL'">
<a-col :xs="12" :sm="12" :md="12" :lg="{span: '4-8'}" :xl="4">
<a-col :xs="12" :sm="12" :md="12" :lg="{ span: '4-8' }" :xl="4">
<a-form-model-item
class="from-label"
label="航次"
:labelCol="labelCol2"
:wrapperCol="wrapperCol2"
has-feedback
prop="voyno"
>
prop="voyno">
<inputView :ishd="true" type="voyno" :parentVal="details.voyno" @getInputChange="inputChange" />
</a-form-model-item>
</a-col>
</template>
<template v-else>
<a-col :xs="12" :sm="12" :md="12" :lg="{span: '4-8'}" :xl="4">
<a-col :xs="12" :sm="12" :md="12" :lg="{ span: '4-8' }" :xl="4">
<a-form-model-item
class="from-label"
label="海关航次"
:labelCol="labelCol2"
:wrapperCol="wrapperCol2"
has-feedback
prop="voyno"
>
<inputView :ishd="true" ref="voyno" type="voyno" :parentVal="details.voyno" @getInputChange="inputChange" />
prop="voyno">
<inputView
:ishd="true"
ref="voyno"
type="voyno"
:parentVal="details.voyno"
@getInputChange="inputChange" />
</a-form-model-item>
</a-col>
</template>
<a-col :xs="12" :sm="12" :md="12" :lg="{span: '4-8'}" :xl="4">
<a-col :xs="12" :sm="12" :md="12" :lg="{ span: '4-8' }" :xl="4">
<a-form-model-item
class="from-label"
label="船司航线"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="lanename"
>
prop="lanename">
<!-- 航线暂无接口 暂时改为输入框-->
<inputView :ishd="BookingLockOrder['lanename'] && isLockBooking" type="lanename" :parentVal="details.lanename" @getInputChange="inputChange" />
<inputView
:ishd="BookingLockOrder['lanename'] && isLockBooking"
type="lanename"
:parentVal="details.lanename"
@getInputChange="inputChange" />
</a-form-model-item>
</a-col>
</a-row>
@ -424,8 +443,7 @@
:labelCol="userLabelCol"
:wrapperCol="userWrapperCol"
has-feedback
prop="sale"
>
prop="sale">
<selectView
type="sale"
:disabled="true"
@ -434,8 +452,8 @@
:searchQuery="{ name: '' }"
:showLabel="['name']"
:openSearch="true"
@change="getSelectViewRes"
></selectView>
@change="getSelectViewRes">
</selectView>
</a-form-model-item>
</a-col>
<a-col :xs="12" :sm="12" :md="12" :lg="8" :xl="4">
@ -445,8 +463,7 @@
:labelCol="userLabelCol1"
:wrapperCol="userWrapperCol1"
has-feedback
prop="custservice"
>
prop="custservice">
<selectView
type="custservice"
:defaultVal="details.custservice"
@ -455,8 +472,8 @@
:searchQuery="{ name: '' }"
:showLabel="['name']"
:openSearch="true"
@change="getSelectViewRes"
></selectView>
@change="getSelectViewRes">
</selectView>
</a-form-model-item>
</a-col>
<a-col :xs="12" :sm="12" :md="12" :lg="8" :xl="4">
@ -466,8 +483,7 @@
:labelCol="userLabelCol1"
:wrapperCol="userWrapperCol1"
has-feedback
prop="op"
>
prop="op">
<selectView
type="op"
:defaultVal="details.op"
@ -476,8 +492,7 @@
:searchQuery="{ name: '' }"
:showLabel="['name']"
:openSearch="true"
@change="getSelectViewRes"
></selectView>
@change="getSelectViewRes"></selectView>
</a-form-model-item>
</a-col>
<a-col :xs="12" :sm="12" :md="12" :lg="8" :xl="4">
@ -487,8 +502,7 @@
:labelCol="userLabelCol1"
:wrapperCol="userWrapperCol1"
has-feedback
prop="doc"
>
prop="doc">
<selectView
type="doc"
:defaultVal="details.doc"
@ -497,8 +511,7 @@
:searchQuery="{ name: '' }"
:showLabel="['name']"
:openSearch="true"
@change="getSelectViewRes"
></selectView>
@change="getSelectViewRes"></selectView>
</a-form-model-item>
</a-col>
<a-col :xs="12" :sm="12" :md="12" :lg="8" :xl="4">
@ -508,8 +521,7 @@
:labelCol="userLabelCol"
:wrapperCol="userWrapperCol"
has-feedback
prop="route"
>
prop="route">
<selectView
type="route"
:defaultVal="details.route"
@ -519,8 +531,7 @@
:showLabel="['name']"
:openSearch="true"
:isCopy="true"
@change="getSelectViewRes"
></selectView>
@change="getSelectViewRes"></selectView>
</a-form-model-item>
</a-col>
<a-col :xs="12" :sm="12" :md="12" :lg="8" :xl="4">
@ -530,8 +541,7 @@
:labelCol="userLabelCol"
:wrapperCol="userWrapperCol"
has-feedback
prop="lineManage"
>
prop="lineManage">
<selectView
type="lineManage"
:defaultVal="details.lineManage"
@ -540,8 +550,8 @@
:searchQuery="{ name: '' }"
:showLabel="['name']"
:openSearch="true"
@change="getSelectViewRes"
></selectView>
@change="getSelectViewRes">
</selectView>
</a-form-model-item>
</a-col>
</a-row>
@ -553,9 +563,12 @@
:labelCol="labelCol3"
:wrapperCol="wrapperCol3"
has-feedback
prop="czRemark"
>
<inputView :ishd="BookingLockOrder['czRemark'] && isLockBooking" type="czRemark" :parentVal="details.czRemark" @getInputChange="inputChange" />
prop="czRemark">
<inputView
:ishd="BookingLockOrder['czRemark'] && isLockBooking"
type="czRemark"
:parentVal="details.czRemark"
@getInputChange="inputChange" />
</a-form-model-item>
</a-col>
<a-col :xs="24" :sm="9" :md="9" :lg="9" :xl="8">
@ -565,9 +578,12 @@
:labelCol="labelCol3"
:wrapperCol="wrapperCol3"
has-feedback
prop="dzRemark"
>
<inputView :ishd="BookingLockOrder['dzRemark'] && isLockBooking" type="dzRemark" :parentVal="details.dzRemark" @getInputChange="inputChange" />
prop="dzRemark">
<inputView
:ishd="BookingLockOrder['dzRemark'] && isLockBooking"
type="dzRemark"
:parentVal="details.dzRemark"
@getInputChange="inputChange" />
</a-form-model-item>
</a-col>
<a-col :xs="24" :sm="6" :md="6" :lg="6" :xl="8">
@ -577,9 +593,12 @@
:labelCol="labelCol3"
:wrapperCol="wrapperCol3"
has-feedback
prop="shenQingXiangShi"
>
<inputView :ishd="BookingLockOrder['shenQingXiangShi'] && isLockBooking" type="shenQingXiangShi" :parentVal="details.shenQingXiangShi" @getInputChange="inputChange" />
prop="shenQingXiangShi">
<inputView
:ishd="BookingLockOrder['shenQingXiangShi'] && isLockBooking"
type="shenQingXiangShi"
:parentVal="details.shenQingXiangShi"
@getInputChange="inputChange" />
</a-form-model-item>
</a-col>
</a-row>
@ -594,8 +613,7 @@
:confirmLoading="customerModelconfirm"
:maskClosable="false"
@ok="handleModelSubmit"
@cancel="handleModelCancel"
>
@cancel="handleModelCancel">
<template slot="footer">
<a-button key="back" @click="handleModelCancel"> </a-button>
</template>
@ -618,8 +636,7 @@
rowKeyFieldName="rowKey"
:rowStyleOption="rowStyleOption"
:checkbox-option="checkboxOption"
:clipboard-option="clipboardOption"
/>
:clipboard-option="clipboardOption" />
<div class="table-no-data" v-if="tableData.length == 0"></div>
</div>
</template>
@ -637,7 +654,9 @@ import {
DjyCustomerdetail,
BookingOrderContactSavebatch,
BookingOrderContactPage,
DjyCustomerContacts
DjyCustomerContacts,
listYardBwCarrier,
ListAgentByCarrier
} from '@/api/modular/main/BookingLedger'
import { mapGetters } from 'vuex'
let timer
@ -681,6 +700,12 @@ export default {
isLockBooking: {
type: Boolean,
default: false
},
agentFilter: {
type: Array,
default: () => {
return []
}
}
},
data() {
@ -760,7 +785,7 @@ export default {
},
cellAutofillOption: true,
editOption: {
cellValueChange: ({ row, column }) => {}
cellValueChange: ({ row, column }) => { }
},
checkboxOption: {
hideSelectAll: false,
@ -1217,6 +1242,12 @@ export default {
} else if (type === 'carrierid') {
this.details.carrier = res.enName || ''
this.details.carrierid = res.code || ''
ListAgentByCarrier({ carrierCode: this.details.carrierid }).then(res => {
this.$store.commit('SET_AgentFilter', res.data)
})
listYardBwCarrier({ carrierCode: this.details.carrierid }).then(res => {
this.$store.commit('SET_YardFilter', res.data)
})
setTimeout(() => {
this.$refs.vesselView.handleSearch('')
}, 600)
@ -1237,15 +1268,15 @@ export default {
}
if (res.voyno) {
if (res.voyno.includes('1MA')) {
this.details.voyno = res.voyno.replace('1MA', '') || ''
} else {
if (res.voyno.includes('1NC')) {
this.details.voyno = res.voyno.replace('1NC', '') || ''
this.details.voyno = res.voyno.replace('1MA', '') || ''
} else {
this.details.voyno = res.voyno || ''
if (res.voyno.includes('1NC')) {
this.details.voyno = res.voyno.replace('1NC', '') || ''
} else {
this.details.voyno = res.voyno || ''
}
}
}
}
this.details.voynoinner = res.voynoInside || ''
} else if (type === 'shipagency') {
this.details.shipagency = res.name || ''
@ -1291,6 +1322,7 @@ export default {
/deep/ .ant-form-explain {
display: none !important;
}
/deep/ .ant-form-item-children-icon .anticon-check-circle {
display: none;
}
@ -1298,10 +1330,12 @@ export default {
<style lang="less" scoped>
@import url('../index.less');
@import url('../style/basicInfo.less');
.ant-col-xl-4-8{
.ant-col-xl-4-8 {
width: 20%;
}
/deep/ .ant-card-body{
padding-left: 10px !important;
}
/deep/ .ant-card-body {
padding-left: 10px !important;
}
</style>

@ -28,13 +28,31 @@
<button @click="openModel('cutOff')" :style="{ marginLeft: '4px' }">
<span class="iconfont icon-daibanshixiang"></span>截单
</button>
<button @click="openModel('vgm')"><span class="iconfont icon-dingdan"></span>VGM</button>
<a-popconfirm
title="您当前未选择服务项目,是否继续操作?"
:visible="visible1"
ok-text="是"
cancel-text="否"
@visibleChange="handleVisibleChange1"
@confirm="openModel('vgm')"
>
<button ><span class="iconfont icon-dingdan"></span>VGM</button>
</a-popconfirm>
<button @click="openModel('trace')">
<span class="iconfont icon-yunshu1" style="font-size:18px;"></span>运踪
</button>
<button @click="openPreOrderFun">
<span class="iconfont icon-yunshu1" style="font-size:18px;"></span>舱单
</button>
<a-popconfirm
title="您当前未选择服务项目,是否继续操作?"
:visible="visible"
ok-text="是"
cancel-text="否"
@visibleChange="handleVisibleChange"
@confirm="openPreOrderFun"
>
<button >
<span class="iconfont icon-yunshu1" style="font-size:18px;"></span>舱单
</button>
</a-popconfirm>
<button @click="openModel('paper')">
<span class="iconfont icon-zhizhishu" style="font-size:18px;"></span>下货纸
</button>
@ -1157,6 +1175,7 @@ export default {
id: this.$route.query.id,
labelCol: { span: 6 },
voltaData: [],
visible1: false,
voltaColumns: [
{
dataIndex: 'sNo',
@ -1538,14 +1557,20 @@ export default {
],
traceValue: [],
traceModalVisible: false,
visible: false,
cateCode: '',
spinning: false,
yardSelectData: null,
initCabinSendData: []
initCabinSendData: [],
serviceItem: []
}
},
mounted() {
this.BCvData = [...this.CvData]
this.serviceItem = []
this.$bus.$on('bookingServiceItem', val => {
this.serviceItem = val
})
},
watch: {
scale() {
@ -1734,6 +1759,40 @@ export default {
}
})
},
handleVisibleChange(visible) {
if (!visible) {
this.visible = false;
return;
}
const arr = []
this.serviceItem.forEach(item => {
if (item.isYield) {
arr.push(1)
}
})
if (arr.length === 0) {
this.visible = true;
} else {
this.openPreOrderFun()
}
},
handleVisibleChange1(visible) {
if (!visible) {
this.visible1 = false;
return;
}
const arr = []
this.serviceItem.forEach(item => {
if (item.isYield) {
arr.push(1)
}
})
if (arr.length === 0) {
this.visible1 = true;
} else {
this.openModel('vgm')
}
},
getSelectViewRes({ type, res }) {
if (type === 'customername') {
this.hisSearch.customername = res.shortName || ''

@ -153,7 +153,7 @@
<div v-if="changeGoods && !serive.isBr" class="goods-box">
<div class="goods-content" :class="{ active: serive.isYield }" @click="saveGoodsStatus(serive)">
<!-- <a-icon type="check-circle" /> -->
<a-icon v-if="serive.isYield" class="serve-icon" type="check-circle" theme="filled" />
<a-icon v-if="serive.isYield" class="serve-icon" type="check-circle" theme="filled" />
<div v-else class="round">
</div>
<div class="showName">{{ serive.showName }}</div>
@ -761,6 +761,7 @@ export default {
GetSeryiceProjectList(data).then(res => {
if (res.data.succ) {
this.bookingServiceItem = res.data.ext
this.$bus.$emit('bookingServiceItem', res.data.ext)
} else {
this.$message.error(res.data.msg)
}

@ -4417,5 +4417,6 @@ export default {
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
pointer-events: auto;
padding: 20px;
z-index: 999;
}
</style>

Loading…
Cancel
Save