|
|
|
@ -29,14 +29,20 @@
|
|
|
|
|
<div class="order-title">
|
|
|
|
|
<i class="iconfont icon-dingdan"></i> 当前分单号: <span>{{ editDetails.hblno }}</span>
|
|
|
|
|
</div>
|
|
|
|
|
<sedOperationArea :details="editDetails" :scrollTop="scrollTop" :class="scrollTop < 100 ? 'normal-nav' : 'fixed-nav'" @save="saveFun" @copy="copyFun"></sedOperationArea>
|
|
|
|
|
<sedOperationArea
|
|
|
|
|
:details="editDetails"
|
|
|
|
|
:scrollTop="scrollTop"
|
|
|
|
|
:class="scrollTop < 100 ? 'normal-nav' : 'fixed-nav'"
|
|
|
|
|
@save="saveFun"
|
|
|
|
|
@copy="copyFun"
|
|
|
|
|
></sedOperationArea>
|
|
|
|
|
<ul class="sec-parent-tabs-box">
|
|
|
|
|
<div class="parents-tabs-top">
|
|
|
|
|
<li @click="changeParentTabs('1')" :class="{ 'active':mainOrderActiveKey === '1' }">
|
|
|
|
|
<li @click="changeParentTabs('1')" :class="{ active: mainOrderActiveKey === '1' }">
|
|
|
|
|
<input type="radio" name="tabs" id="stab1" checked />
|
|
|
|
|
<label class="tabs-label" for="tab1">基础信息</label>
|
|
|
|
|
</li>
|
|
|
|
|
<li @click="changeParentTabs('2')" :class="{ 'active':mainOrderActiveKey === '2' }">
|
|
|
|
|
<li @click="changeParentTabs('2')" :class="{ active: mainOrderActiveKey === '2' }">
|
|
|
|
|
<input type="radio" name="tabs" id="stab2" />
|
|
|
|
|
<label class="tabs-label" for="tab2">EDI补充信息</label>
|
|
|
|
|
</li>
|
|
|
|
@ -64,11 +70,29 @@
|
|
|
|
|
@pkgsEnCapital="pkgsEnCapitalFun"
|
|
|
|
|
></mailingInfo>
|
|
|
|
|
<!-- 货物信息 -->
|
|
|
|
|
<cargoInfo ref="cargoInfo" :details="editDetails" :rules="cargoRules" :inSave="inSave" @changeDetail="changeDetailFun"></cargoInfo>
|
|
|
|
|
<cargoInfo
|
|
|
|
|
ref="cargoInfo"
|
|
|
|
|
:details="editDetails"
|
|
|
|
|
:rules="cargoRules"
|
|
|
|
|
:inSave="inSave"
|
|
|
|
|
@changeDetail="changeDetailFun"
|
|
|
|
|
></cargoInfo>
|
|
|
|
|
<!-- 签单信息 -->
|
|
|
|
|
<billInfo ref="billInfo" :details="editDetails" :rules="billRules" :inSave="inSave" @changeDetail="changeDetailFun"></billInfo>
|
|
|
|
|
<billInfo
|
|
|
|
|
ref="billInfo"
|
|
|
|
|
:details="editDetails"
|
|
|
|
|
:rules="billRules"
|
|
|
|
|
:inSave="inSave"
|
|
|
|
|
@changeDetail="changeDetailFun"
|
|
|
|
|
></billInfo>
|
|
|
|
|
<!-- 备注信息 -->
|
|
|
|
|
<remarksInfo ref="remarksInfo" :details="editDetails" :rules="remarksRules" :inSave="inSave" @changeDetail="changeDetailFun"></remarksInfo>
|
|
|
|
|
<remarksInfo
|
|
|
|
|
ref="remarksInfo"
|
|
|
|
|
:details="editDetails"
|
|
|
|
|
:rules="remarksRules"
|
|
|
|
|
:inSave="inSave"
|
|
|
|
|
@changeDetail="changeDetailFun"
|
|
|
|
|
></remarksInfo>
|
|
|
|
|
<!-- 箱型 -->
|
|
|
|
|
<goodsTable
|
|
|
|
|
ref="goodsTable"
|
|
|
|
@ -160,7 +184,7 @@ import goodsTable from '../modules/goodsTable'
|
|
|
|
|
// import basicItem from './basicItem'
|
|
|
|
|
import ediMore from './ediMore'
|
|
|
|
|
|
|
|
|
|
import { BookingOrderUpdate, BookingOrderAdd } from '@/api/modular/main/BookingLedger'
|
|
|
|
|
import { BookingOrderUpdate, BookingOrderAdd, BookingOrderGet } from '@/api/modular/main/BookingLedger'
|
|
|
|
|
export default {
|
|
|
|
|
name: 'SedOrder',
|
|
|
|
|
props: {
|
|
|
|
@ -213,7 +237,7 @@ export default {
|
|
|
|
|
inSecLoad: false,
|
|
|
|
|
mainOrderActiveKey: '1',
|
|
|
|
|
basicRules: {
|
|
|
|
|
customername: [ { required: false, message: '请选择委托单位', trigger: 'change' } ],
|
|
|
|
|
customername: [{ required: false, message: '请选择委托单位', trigger: 'change' }],
|
|
|
|
|
mblno: [{ required: false, message: '请输入提单号', trigger: 'change' }],
|
|
|
|
|
carrierid: [{ required: false, message: '请选择船公司', trigger: 'change' }],
|
|
|
|
|
forwarder: [{ required: false, message: '请输入订舱代理', trigger: 'change' }],
|
|
|
|
@ -235,67 +259,67 @@ export default {
|
|
|
|
|
custservice: [{ required: false, message: '请选择客服人员', trigger: 'change' }]
|
|
|
|
|
},
|
|
|
|
|
mailingRules: {
|
|
|
|
|
shipper: [ { required: false, message: '请输入发货人', trigger: 'submit' } ],
|
|
|
|
|
consignee: [ { required: false, message: '请输入收货人', trigger: 'submit' } ],
|
|
|
|
|
notifyparty: [ { required: false, message: '请输入通知人', trigger: 'submit' } ],
|
|
|
|
|
yard: [ { required: false, message: '请输入场站', trigger: 'change' } ],
|
|
|
|
|
customser: [ { required: false, message: '请输入报关行', trigger: 'change' } ],
|
|
|
|
|
trucker: [ { required: false, message: '请输入车队', trigger: 'change' } ],
|
|
|
|
|
agentname: [ { required: false, message: '请输入国外代理', trigger: 'change' } ],
|
|
|
|
|
eta: [ { required: false, message: '请选择预抵日期', trigger: 'change' } ],
|
|
|
|
|
closingdate: [ { required: false, message: '请选择截港时间', trigger: 'change' } ],
|
|
|
|
|
closedocdate: [ { required: false, message: '请选择截单时间', trigger: 'change' } ],
|
|
|
|
|
closevgmdate: [ { required: false, message: '请选择VGM时间', trigger: 'change' } ],
|
|
|
|
|
placereceiptid: [ { required: false, message: '请选择收货代码', trigger: 'change' } ],
|
|
|
|
|
placereceipt: [ { required: false, message: '请选择收货地', trigger: 'change' } ],
|
|
|
|
|
portloadid: [ { required: false, message: '请选择装货港代码', trigger: 'change' } ],
|
|
|
|
|
portload: [ { required: false, message: '请选择装货港', trigger: 'change' } ],
|
|
|
|
|
transportid: [ { required: false, message: '请选择中转港代码', trigger: 'change' } ],
|
|
|
|
|
transport: [ { required: false, message: '请选择中转港', trigger: 'change' } ],
|
|
|
|
|
portdischargeid: [ { required: false, message: '请选择卸货港代码', trigger: 'change' } ],
|
|
|
|
|
portdischarge: [ { required: false, message: '请选择卸货港', trigger: 'change' } ],
|
|
|
|
|
destinationid: [ { required: false, message: '请选择目的代码', trigger: 'change' } ],
|
|
|
|
|
destination: [ { required: false, message: '请选择目的地', trigger: 'change' } ],
|
|
|
|
|
placedeliveryid: [ { required: false, message: '请选择交货代码', trigger: 'change' } ],
|
|
|
|
|
placedelivery: [ { required: false, message: '请选择交货地', trigger: 'change' } ],
|
|
|
|
|
pkgs: [ { required: false, message: '请输入件数', trigger: 'change' } ],
|
|
|
|
|
kindpkgs: [ { required: false, message: '请输入包装', trigger: 'change' } ],
|
|
|
|
|
kgs: [ { required: false, message: '请输入毛重', trigger: 'change' } ],
|
|
|
|
|
cbm: [ { required: false, message: '请输入尺寸', trigger: 'change' } ],
|
|
|
|
|
shipper: [{ required: false, message: '请输入发货人', trigger: 'submit' }],
|
|
|
|
|
consignee: [{ required: false, message: '请输入收货人', trigger: 'submit' }],
|
|
|
|
|
notifyparty: [{ required: false, message: '请输入通知人', trigger: 'submit' }],
|
|
|
|
|
yard: [{ required: false, message: '请输入场站', trigger: 'change' }],
|
|
|
|
|
customser: [{ required: false, message: '请输入报关行', trigger: 'change' }],
|
|
|
|
|
trucker: [{ required: false, message: '请输入车队', trigger: 'change' }],
|
|
|
|
|
agentname: [{ required: false, message: '请输入国外代理', trigger: 'change' }],
|
|
|
|
|
eta: [{ required: false, message: '请选择预抵日期', trigger: 'change' }],
|
|
|
|
|
closingdate: [{ required: false, message: '请选择截港时间', trigger: 'change' }],
|
|
|
|
|
closedocdate: [{ required: false, message: '请选择截单时间', trigger: 'change' }],
|
|
|
|
|
closevgmdate: [{ required: false, message: '请选择VGM时间', trigger: 'change' }],
|
|
|
|
|
placereceiptid: [{ required: false, message: '请选择收货代码', trigger: 'change' }],
|
|
|
|
|
placereceipt: [{ required: false, message: '请选择收货地', trigger: 'change' }],
|
|
|
|
|
portloadid: [{ required: false, message: '请选择装货港代码', trigger: 'change' }],
|
|
|
|
|
portload: [{ required: false, message: '请选择装货港', trigger: 'change' }],
|
|
|
|
|
transportid: [{ required: false, message: '请选择中转港代码', trigger: 'change' }],
|
|
|
|
|
transport: [{ required: false, message: '请选择中转港', trigger: 'change' }],
|
|
|
|
|
portdischargeid: [{ required: false, message: '请选择卸货港代码', trigger: 'change' }],
|
|
|
|
|
portdischarge: [{ required: false, message: '请选择卸货港', trigger: 'change' }],
|
|
|
|
|
destinationid: [{ required: false, message: '请选择目的代码', trigger: 'change' }],
|
|
|
|
|
destination: [{ required: false, message: '请选择目的地', trigger: 'change' }],
|
|
|
|
|
placedeliveryid: [{ required: false, message: '请选择交货代码', trigger: 'change' }],
|
|
|
|
|
placedelivery: [{ required: false, message: '请选择交货地', trigger: 'change' }],
|
|
|
|
|
pkgs: [{ required: false, message: '请输入件数', trigger: 'change' }],
|
|
|
|
|
kindpkgs: [{ required: false, message: '请输入包装', trigger: 'change' }],
|
|
|
|
|
kgs: [{ required: false, message: '请输入毛重', trigger: 'change' }],
|
|
|
|
|
cbm: [{ required: false, message: '请输入尺寸', trigger: 'change' }]
|
|
|
|
|
},
|
|
|
|
|
cargoRules: {
|
|
|
|
|
marks: [ { required: false, message: '请输入Seal No. Marks & Nos', trigger: 'change' } ],
|
|
|
|
|
cargoid: [ { required: false, message: '请选择货物标志', trigger: 'change' } ],
|
|
|
|
|
hscode: [ { required: false, message: '请输入HS编码', trigger: 'change' } ],
|
|
|
|
|
description: [ { required: false, message: '请输入包装种类与货名', trigger: 'change' } ]
|
|
|
|
|
marks: [{ required: false, message: '请输入Seal No. Marks & Nos', trigger: 'change' }],
|
|
|
|
|
cargoid: [{ required: false, message: '请选择货物标志', trigger: 'change' }],
|
|
|
|
|
hscode: [{ required: false, message: '请输入HS编码', trigger: 'change' }],
|
|
|
|
|
description: [{ required: false, message: '请输入包装种类与货名', trigger: 'change' }]
|
|
|
|
|
},
|
|
|
|
|
billRules: {
|
|
|
|
|
issuetype: [ { required: false, message: '请选择签单方式', trigger: 'change' } ],
|
|
|
|
|
issuedate: [ { required: false, message: '请选择签单日期', trigger: 'change' } ],
|
|
|
|
|
issuetype: [{ required: false, message: '请选择签单方式', trigger: 'change' }],
|
|
|
|
|
issuedate: [{ required: false, message: '请选择签单日期', trigger: 'change' }],
|
|
|
|
|
// issueplace: [ { required: false, message: '请选择签单地点', trigger: 'change' } ],
|
|
|
|
|
issueplaceid: [ { required: false, message: '请输入签单地代码', trigger: 'change' } ],
|
|
|
|
|
nobill: [ { required: false, message: '请选择提单份数', trigger: 'change' } ],
|
|
|
|
|
copynobill: [ { required: false, message: '请选择副本份数', trigger: 'change' } ],
|
|
|
|
|
prepardat: [ { required: false, message: '请选择预付地点', trigger: 'change' } ],
|
|
|
|
|
payableat: [ { required: false, message: '请选择到付地点', trigger: 'change' } ],
|
|
|
|
|
blfrt: [ { required: false, message: '请选择付费方式', trigger: 'change' } ],
|
|
|
|
|
thirdpayaddr: [ { required: false, message: '请输入第三付款地', trigger: 'change' } ],
|
|
|
|
|
service: [ { required: false, message: '请选择运输条款', trigger: 'change' } ],
|
|
|
|
|
reeferf: [ { required: false, message: '请输入冷藏通风量', trigger: 'change' } ],
|
|
|
|
|
tempset: [ { required: false, message: '请输入温度', trigger: 'change' } ],
|
|
|
|
|
tempid: [ { required: false, message: '请选择温度单位', trigger: 'change' } ],
|
|
|
|
|
tempmin: [ { required: false, message: '请输入最低温度', trigger: 'change' } ],
|
|
|
|
|
tempmax: [ { required: false, message: '请输入最高温度', trigger: 'change' } ],
|
|
|
|
|
humidity: [ { required: false, message: '请输入湿度', trigger: 'change' } ],
|
|
|
|
|
dclass: [ { required: false, message: '请输入危险品等级', trigger: 'change' } ],
|
|
|
|
|
dunno: [ { required: false, message: '请输入危险品编号', trigger: 'change' } ],
|
|
|
|
|
dpage: [ { required: false, message: '请输入危险品页号', trigger: 'change' } ],
|
|
|
|
|
dlabel: [ { required: false, message: '请输入危险品标签', trigger: 'change' } ],
|
|
|
|
|
linkman: [ { required: false, message: '请输入危险品联系人', trigger: 'change' } ],
|
|
|
|
|
issueplaceid: [{ required: false, message: '请输入签单地代码', trigger: 'change' }],
|
|
|
|
|
nobill: [{ required: false, message: '请选择提单份数', trigger: 'change' }],
|
|
|
|
|
copynobill: [{ required: false, message: '请选择副本份数', trigger: 'change' }],
|
|
|
|
|
prepardat: [{ required: false, message: '请选择预付地点', trigger: 'change' }],
|
|
|
|
|
payableat: [{ required: false, message: '请选择到付地点', trigger: 'change' }],
|
|
|
|
|
blfrt: [{ required: false, message: '请选择付费方式', trigger: 'change' }],
|
|
|
|
|
thirdpayaddr: [{ required: false, message: '请输入第三付款地', trigger: 'change' }],
|
|
|
|
|
service: [{ required: false, message: '请选择运输条款', trigger: 'change' }],
|
|
|
|
|
reeferf: [{ required: false, message: '请输入冷藏通风量', trigger: 'change' }],
|
|
|
|
|
tempset: [{ required: false, message: '请输入温度', trigger: 'change' }],
|
|
|
|
|
tempid: [{ required: false, message: '请选择温度单位', trigger: 'change' }],
|
|
|
|
|
tempmin: [{ required: false, message: '请输入最低温度', trigger: 'change' }],
|
|
|
|
|
tempmax: [{ required: false, message: '请输入最高温度', trigger: 'change' }],
|
|
|
|
|
humidity: [{ required: false, message: '请输入湿度', trigger: 'change' }],
|
|
|
|
|
dclass: [{ required: false, message: '请输入危险品等级', trigger: 'change' }],
|
|
|
|
|
dunno: [{ required: false, message: '请输入危险品编号', trigger: 'change' }],
|
|
|
|
|
dpage: [{ required: false, message: '请输入危险品页号', trigger: 'change' }],
|
|
|
|
|
dlabel: [{ required: false, message: '请输入危险品标签', trigger: 'change' }],
|
|
|
|
|
linkman: [{ required: false, message: '请输入危险品联系人', trigger: 'change' }]
|
|
|
|
|
},
|
|
|
|
|
remarksRules: {
|
|
|
|
|
soremark: [ { required: false, message: '请输入订舱备注', trigger: 'change' } ],
|
|
|
|
|
siremark: [ { required: false, message: '请输入截单备注', trigger: 'change' } ],
|
|
|
|
|
soremark: [{ required: false, message: '请输入订舱备注', trigger: 'change' }],
|
|
|
|
|
siremark: [{ required: false, message: '请输入截单备注', trigger: 'change' }]
|
|
|
|
|
},
|
|
|
|
|
ediRules: {
|
|
|
|
|
'bookingEDIExt.sendCode': [{ required: false, message: '请输入发送方EDI代码', trigger: 'change' }],
|
|
|
|
@ -406,9 +430,9 @@ export default {
|
|
|
|
|
this.$emit('changeHB', this.sedOrderList)
|
|
|
|
|
}
|
|
|
|
|
// if (nval !== oval) {
|
|
|
|
|
// localStorage.setItem(`${this.id}`, true)
|
|
|
|
|
// this.sedOrderList[this.editIndex].isNoSave = true
|
|
|
|
|
// console.log(this.editIndex, this.sedOrderList[this.editIndex].isNoSave)
|
|
|
|
|
// localStorage.setItem(`${this.id}`, true)
|
|
|
|
|
// this.sedOrderList[this.editIndex].isNoSave = true
|
|
|
|
|
// console.log(this.editIndex, this.sedOrderList[this.editIndex].isNoSave)
|
|
|
|
|
// }
|
|
|
|
|
},
|
|
|
|
|
deep: true
|
|
|
|
@ -426,7 +450,7 @@ export default {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
checkFrom (nval, oval) {
|
|
|
|
|
checkFrom(nval, oval) {
|
|
|
|
|
this.checkFromInit()
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
@ -463,7 +487,7 @@ export default {
|
|
|
|
|
// }, 1500)
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
|
|
|
|
checkFromInit () {
|
|
|
|
|
checkFromInit() {
|
|
|
|
|
Object.keys(this.basicRules).map((item, index) => {
|
|
|
|
|
if (this.checkFrom.includes(item)) {
|
|
|
|
|
this.basicRules[item][0].required = true
|
|
|
|
@ -586,6 +610,14 @@ export default {
|
|
|
|
|
this.bookingOrderAdd()
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
FnBookingOrderGet() {
|
|
|
|
|
BookingOrderGet({
|
|
|
|
|
id: this.id
|
|
|
|
|
}).then(res => {
|
|
|
|
|
this.editDetails = { ...res.data.hbList[this.editIndex] }
|
|
|
|
|
this.$forceUpdate()
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
bookingOrderUpdate() {
|
|
|
|
|
if (!this.editDetails.hblno) {
|
|
|
|
@ -675,6 +707,7 @@ export default {
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
this.inSave = false
|
|
|
|
|
}, 1000)
|
|
|
|
|
this.FnBookingOrderGet()
|
|
|
|
|
this.$forceUpdate()
|
|
|
|
|
} else {
|
|
|
|
|
this.$message.error(res.message)
|
|
|
|
@ -783,6 +816,7 @@ export default {
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
this.inSave = false
|
|
|
|
|
}, 1000)
|
|
|
|
|
this.FnBookingOrderGet()
|
|
|
|
|
this.$forceUpdate()
|
|
|
|
|
} else {
|
|
|
|
|
this.$message.error(res.message)
|
|
|
|
@ -838,10 +872,10 @@ export default {
|
|
|
|
|
openNav() {
|
|
|
|
|
this.showSecNav = !this.showSecNav
|
|
|
|
|
},
|
|
|
|
|
pkgsEnCapitalFun (data) {
|
|
|
|
|
pkgsEnCapitalFun(data) {
|
|
|
|
|
this.editDetails.totalno = data
|
|
|
|
|
},
|
|
|
|
|
changeMainTab (e) {
|
|
|
|
|
changeMainTab(e) {
|
|
|
|
|
this.mainOrderActiveKey = e
|
|
|
|
|
},
|
|
|
|
|
changeParentTabs(type) {
|
|
|
|
@ -1126,21 +1160,24 @@ export default {
|
|
|
|
|
transition: 0.5s all;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/deep/ .ant-select-selection__clear{
|
|
|
|
|
/deep/ .ant-select-selection__clear {
|
|
|
|
|
right: 10px !important;
|
|
|
|
|
margin-top: -4px !important;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/deep/ form .has-feedback :not(.ant-input-group-addon) > .ant-select .ant-select-selection__clear{
|
|
|
|
|
/deep/ form .has-feedback :not(.ant-input-group-addon) > .ant-select .ant-select-selection__clear {
|
|
|
|
|
right: 10px !important;
|
|
|
|
|
margin-top: -4px !important;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/deep/ form .has-feedback .ant-input-affix-wrapper .ant-input-suffix{
|
|
|
|
|
/deep/ form .has-feedback .ant-input-affix-wrapper .ant-input-suffix {
|
|
|
|
|
right: 0px !important;
|
|
|
|
|
padding-right: 10px;
|
|
|
|
|
}
|
|
|
|
|
/deep/ form .has-feedback .ant-calendar-picker-icon, form .has-feedback .ant-time-picker-icon, form .has-feedback .ant-calendar-picker-clear, form .has-feedback .ant-time-picker-clear{
|
|
|
|
|
/deep/ form .has-feedback .ant-calendar-picker-icon,
|
|
|
|
|
form .has-feedback .ant-time-picker-icon,
|
|
|
|
|
form .has-feedback .ant-calendar-picker-clear,
|
|
|
|
|
form .has-feedback .ant-time-picker-clear {
|
|
|
|
|
right: 10px !important;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -1188,8 +1225,9 @@ export default {
|
|
|
|
|
// color: @primary-color;
|
|
|
|
|
// font-size: 14px;
|
|
|
|
|
// }
|
|
|
|
|
.active{
|
|
|
|
|
input, label{
|
|
|
|
|
.active {
|
|
|
|
|
input,
|
|
|
|
|
label {
|
|
|
|
|
top: 0;
|
|
|
|
|
background: #fff;
|
|
|
|
|
color: @primary-color;
|
|
|
|
@ -1215,5 +1253,4 @@ export default {
|
|
|
|
|
// display: block;
|
|
|
|
|
// }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
</style>
|
|
|
|
|