太平edi

dev
lilu 2 years ago
parent dbd1fd9f98
commit 496566917b

@ -647,3 +647,21 @@ export function getVesselInfoService(parameter) {
params: parameter
})
}
// 获取约号
export function getContractno(parameter) {
return axios({
url: '/Para/QuerytParaContractNoInfo',
method: 'get',
params: parameter
})
}
// 获取品名
export function getGoodsname(parameter) {
return axios({
url: '/Para/QueryParaGoodsInfo',
method: 'get',
params: parameter
})
}

@ -25,18 +25,7 @@
<a-input :allowClear="true" v-model="details.bookingEDIExt.receiveCode" />
</a-form-model-item>
</a-col>
<a-col :span="8">
<a-form-model-item
label="通知方EDI代码"
:labelCol="{ xs: { span: 24 }, sm: { span: 9 } }"
:wrapperCol="{ xs: { span: 24 }, sm: { span: 15 } }"
has-feedback
prop="bookingEDIExt.notifyCdoe"
>
<a-input :allowClear="true" v-model="details.bookingEDIExt.notifyCdoe" />
</a-form-model-item>
</a-col>
<a-col :span="8">
<!-- <a-col :span="8">
<a-form-model-item
label="销售EDI代码"
:labelCol="{ xs: { span: 24 }, sm: { span: 9 } }"
@ -46,18 +35,7 @@
>
<a-input :allowClear="true" v-model="details.bookingEDIExt.salerCode" />
</a-form-model-item>
</a-col>
<a-col :span="8">
<a-form-model-item
label="Master Bol Indicator"
:labelCol="{ xs: { span: 24 }, sm: { span: 9 } }"
:wrapperCol="{ xs: { span: 24 }, sm: { span: 15 } }"
has-feedback
prop="bookingEDIExt.masterBolIndicator"
>
<a-input :allowClear="true" v-model="details.bookingEDIExt.masterBolIndicator" />
</a-form-model-item>
</a-col>
</a-col> -->
<a-col :span="8">
<a-form-model-item
label="EMANIFEST HBL"
@ -69,28 +47,6 @@
<a-input :allowClear="true" v-model="details.bookingEDIExt.emanifestHbl" />
</a-form-model-item>
</a-col>
<a-col :span="8">
<a-form-model-item
label="收货人EDI代码"
:labelCol="{ xs: { span: 24 }, sm: { span: 9 } }"
:wrapperCol="{ xs: { span: 24 }, sm: { span: 15 } }"
has-feedback
prop="bookingEDIExt.consigneeEdiCode"
>
<a-input :allowClear="true" v-model="details.bookingEDIExt.consigneeEdiCode" />
</a-form-model-item>
</a-col>
<a-col :span="8">
<a-form-model-item
label="发货人EDI代码"
:labelCol="{ xs: { span: 24 }, sm: { span: 9 } }"
:wrapperCol="{ xs: { span: 24 }, sm: { span: 15 } }"
has-feedback
prop="bookingEDIExt.shipperEdiCode"
>
<a-input :allowClear="true" v-model="details.bookingEDIExt.shipperEdiCode" />
</a-form-model-item>
</a-col>
<a-col :span="8">
<a-form-model-item
label="EDI联系人名称"
@ -179,29 +135,6 @@
<a-input :allowClear="true" v-model="details.bookingEDIExt.opEmail" />
</a-form-model-item>
</a-col>
<a-col :span="8">
<a-form-model-item
label="ACI HBL:"
:labelCol="{ xs: { span: 24 }, sm: { span: 9 } }"
:wrapperCol="{ xs: { span: 24 }, sm: { span: 15 } }"
has-feedback
prop="bookingEDIExt.acihbl"
>
<a-input :allowClear="true" v-model="details.bookingEDIExt.acihbl" />
</a-form-model-item>
</a-col>
<a-col :span="8">
<a-form-model-item
label="S0C C0C:"
:labelCol="{ xs: { span: 24 }, sm: { span: 9 } }"
:wrapperCol="{ xs: { span: 24 }, sm: { span: 15 } }"
has-feedback
prop="bookingEDIExt.s0CC0C"
>
<a-input :allowClear="true" v-model="details.bookingEDIExt.s0CC0C" />
</a-form-model-item>
</a-col>
<a-col :span="8">
<a-form-model-item
label="商品名称"
@ -249,6 +182,17 @@
<a-input :allowClear="true" v-model="details.itncode" />
</a-form-model-item>
</a-col>
<a-col :span="8">
<a-form-model-item
label="订舱人说明"
:labelCol="{ xs: { span: 24 }, sm: { span: 9 } }"
:wrapperCol="{ xs: { span: 24 }, sm: { span: 15 } }"
has-feedback
prop="bookingEDIExt.orderRemark"
>
<a-input v-model="details.bookingEDIExt.orderRemark" />
</a-form-model-item>
</a-col>
<a-col :span="23">
<a-form-model-item
label="付款方"
@ -273,98 +217,134 @@
</a-col>
</div>
<!-- === 太平添加 start === -->
<div class="taiping" v-if="false">
<a-col :span="12">
<a-form-model-item
label="订舱人说明"
:labelCol="{ xs: { span: 24 }, sm: { span: 9 } }"
:wrapperCol="{ xs: { span: 24 }, sm: { span: 15 } }"
has-feedback
prop="bookingEDIExt.orderRemark"
>
<a-input v-model="details.bookingEDIExt.orderRemark" />
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-model-item
label="通知人EDI代码"
:labelCol="{ xs: { span: 24 }, sm: { span: 9 } }"
:wrapperCol="{ xs: { span: 24 }, sm: { span: 15 } }"
has-feedback
prop="bookingEDIExt.notifyCdoe"
>
<a-input v-model="details.bookingEDIExt.notifyCdoe" />
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-model-item
label="太平销售EDI代码"
:labelCol="{ xs: { span: 24 }, sm: { span: 9 } }"
:wrapperCol="{ xs: { span: 24 }, sm: { span: 15 } }"
has-feedback
prop="bookingEDIExt.salerCodeName"
>
<a-select default-value="CN087 | GRACE SUN" v-model="details.bookingEDIExt.salerCodeName">
<a-select-option v-for="(sales, sindex) in StoreSalesRepCode" :value="sales.NAME" :key="sindex">
{{ sales.NAME }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-model-item
label="Master Bol Indicator名称"
:labelCol="{ xs: { span: 24 }, sm: { span: 9 } }"
:wrapperCol="{ xs: { span: 24 }, sm: { span: 15 } }"
has-feedback
prop="bookingEDIExt.masterBolIndicatorName"
>
<a-select default-value="CN087 | GRACE SUN" v-model="details.bookingEDIExt.masterBolIndicatorName">
<a-select-option v-for="(master, mindex) in StoreMasterBOLIndicator" :value="master.NAME" :key="mindex">
{{ master.NAME }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-model-item
label="欧盟港口、伊朗港口、KHI"
:labelCol="{ xs: { span: 24 }, sm: { span: 9 } }"
:wrapperCol="{ xs: { span: 24 }, sm: { span: 15 } }"
has-feedback
prop="bookingEDIExt.ckhi"
>
<a-input v-model="details.bookingEDIExt.ckhi" />
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-model-item
label="南美东"
:labelCol="{ xs: { span: 24 }, sm: { span: 9 } }"
:wrapperCol="{ xs: { span: 24 }, sm: { span: 15 } }"
has-feedback
prop="bookingEDIExt.cncm"
>
<a-input v-model="details.bookingEDIExt.cncm" />
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-model-item
label="巴西线木质包装情况"
:labelCol="{ xs: { span: 24 }, sm: { span: 9 } }"
:wrapperCol="{ xs: { span: 24 }, sm: { span: 15 } }"
has-feedback
prop="bookingEDIExt.wncm"
>
<a-input v-model="details.bookingEDIExt.wncm" />
</a-form-model-item>
</a-col>
</div>
<template v-if="details.carrierid == 'PIL'">
<div class="taiping">
<a-col :span="12">
<a-form-model-item
label="收货人EDI代码"
:labelCol="{ xs: { span: 24 }, sm: { span: 9 } }"
:wrapperCol="{ xs: { span: 24 }, sm: { span: 15 } }"
has-feedback
prop="bookingEDIExt.consigneeEdiCode"
>
<a-input :allowClear="true" v-model="details.bookingEDIExt.consigneeEdiCode" />
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-model-item
label="发货人EDI代码"
:labelCol="{ xs: { span: 24 }, sm: { span: 9 } }"
:wrapperCol="{ xs: { span: 24 }, sm: { span: 15 } }"
has-feedback
prop="bookingEDIExt.shipperEdiCode"
>
<a-input :allowClear="true" v-model="details.bookingEDIExt.shipperEdiCode" />
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-model-item
label="通知方EDI代码"
:labelCol="{ xs: { span: 24 }, sm: { span: 9 } }"
:wrapperCol="{ xs: { span: 24 }, sm: { span: 15 } }"
has-feedback
prop="bookingEDIExt.notifyCdoe"
>
<a-input :allowClear="true" v-model="details.bookingEDIExt.notifyCdoe" />
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-model-item
label="太平销售EDI代码"
:labelCol="{ xs: { span: 24 }, sm: { span: 9 } }"
:wrapperCol="{ xs: { span: 24 }, sm: { span: 15 } }"
has-feedback
prop="bookingEDIExt.salerCode"
>
<a-select default-value="CN087 | GRACE SUN" v-model="details.bookingEDIExt.salerCode" @change="handleSaleChange">
<a-select-option v-for="(sales, sindex) in StoreSalesRepCode" :value="sales.NAME" :key="sindex">
{{ sales.NAME }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-model-item
label="Master Bol Indicator"
:labelCol="{ xs: { span: 24 }, sm: { span: 9 } }"
:wrapperCol="{ xs: { span: 24 }, sm: { span: 15 } }"
has-feedback
prop="bookingEDIExt.masterBolIndicator"
>
<a-select v-model="details.bookingEDIExt.masterBolIndicator" @change="handleMasterBolChange">
<a-select-option v-for="(master, mindex) in StoreMasterBOLIndicator" :value="master.NAME" :key="mindex">
{{ master.NAME }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-model-item
label="ACI HBL:"
:labelCol="{ xs: { span: 24 }, sm: { span: 9 } }"
:wrapperCol="{ xs: { span: 24 }, sm: { span: 15 } }"
has-feedback
prop="bookingEDIExt.acihbl"
>
<a-input :allowClear="true" v-model="details.bookingEDIExt.acihbl" />
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-model-item
label="S0C C0C:"
:labelCol="{ xs: { span: 24 }, sm: { span: 9 } }"
:wrapperCol="{ xs: { span: 24 }, sm: { span: 15 } }"
has-feedback
prop="bookingEDIExt.s0CC0C"
>
<a-textarea :allowClear="true" v-model="details.bookingEDIExt.s0CC0C" />
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-model-item
label="欧盟港口、伊朗港口、KHI"
:labelCol="{ xs: { span: 24 }, sm: { span: 9 } }"
:wrapperCol="{ xs: { span: 24 }, sm: { span: 15 } }"
has-feedback
prop="bookingEDIExt.ckhi"
>
<a-textarea v-model="details.bookingEDIExt.ckhi" />
</a-form-model-item>
</a-col>
</div>
<div class="taiping-2">
<a-col :span="12">
<a-form-model-item
label="南美东"
:labelCol="{ xs: { span: 24 }, sm: { span: 9 } }"
:wrapperCol="{ xs: { span: 24 }, sm: { span: 15 } }"
has-feedback
prop="bookingEDIExt.cncm"
>
<a-textarea v-model="details.bookingEDIExt.cncm" />
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-model-item
label="巴西线木质包装情况"
:labelCol="{ xs: { span: 24 }, sm: { span: 9 } }"
:wrapperCol="{ xs: { span: 24 }, sm: { span: 15 } }"
has-feedback
prop="bookingEDIExt.wncm"
>
<a-textarea v-model="details.bookingEDIExt.wncm" />
</a-form-model-item>
</a-col>
</div>
</template>
<!-- === 太平添加 END === -->
</a-row>
</a-form-model>
@ -445,6 +425,14 @@ export default {
}
});
},
handleMasterBolChange (val) {
this.details.bookingEDIExt.masterBolIndicator = val.split('|')[0]
this.details.bookingEDIExt.masterBolIndicatorName = val.split('|')[1]
},
handleSaleChange (val) {
this.details.bookingEDIExt.salerCode = val.split('|')[0]
this.details.bookingEDIExt.salerCodeName = val.split('|')[1]
}
}
}
</script>

@ -314,7 +314,8 @@ export default {
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' } ]
description: [ { required: false, message: '请输入包装种类与货名', trigger: 'change' } ],
goodsname: [ { required: false, message: '请选择品名', trigger: 'change' } ]
},
billRules: {
issuetype: [ { required: false, message: '请选择签单方式', trigger: 'change' } ],
@ -369,6 +370,10 @@ export default {
'itncode': [ { required: false, message: '请输入ITN编号', trigger: 'change' } ],
'freightpayer': [ { required: false, message: '请输入付款方', trigger: 'change' } ],
'bookingEDIExt.weiTuoFang': [ { required: false, message: '请输入委托方', trigger: 'change' } ],
'bookingEDIExt.ckhi': [ { required: false, message: '请输入欧盟港口、伊朗港口、KHI', trigger: 'change' } ],
'bookingEDIExt.cncm': [ { required: false, message: '请输入南美东', trigger: 'change' } ],
'bookingEDIExt.wncm': [ { required: false, message: '请输入巴西线木质包装情况', trigger: 'change' } ],
'bookingEDIExt.orderRemark': [ { required: false, message: '请输入订舱人说明', trigger: 'change' } ]
},
hasEdiRules: false,
tableRules: {
@ -675,6 +680,7 @@ export default {
}
//
// this.checkFrom = ['customername', 'mblno', 'carrierid', 'forwarder', 'shipper', 'consignee', 'notifyparty', 'yard', 'customser', 'marks', 'cargoid', 'hscode', 'issuetype', 'issuedate', 'soremark', 'siremark', 'bookingEDIExt.sendCode', 'bookingEDIExt.receiveCode', 'ctnall', 'ctnnum']
// this.checkFrom = ['customername', 'mblno', 'carrierid', 'goodsname', 'contractno', 'bookingEDIExt.consigneeEdiCode', 'bookingEDIExt.shipperEdiCode', 'bookingEDIExt.notifyCdoe', 'bookingEDIExt.salerCode', 'bookingEDIExt.masterBolIndicator', 'bookingEDIExt.acihbl', 'bookingEDIExt.s0CC0C', 'bookingEDIExt.ckhi', 'bookingEDIExt.cncm', 'bookingEDIExt.wncm']
Object.keys(this.basicRules).map((item, index) => {
if (this.checkFrom.includes(item)) {
this.basicRules[item][0].required = true

@ -154,7 +154,30 @@
:wrapperCol="wrapperCol2"
has-feedback
prop="contractno">
<a-input :allowClear="true" v-model="details.contractno" />
<template v-if="details.carrierid == 'PIL'">
<auto-complete
:allowClear="true"
class="customer-input"
:dropdown-match-select-width="false"
:dropdown-style="{ width: '200px' }"
v-model="details.contractno"
@select="contractnoSelect"
@change="contractnoChange"
@focus="contractnoChange"
>
<template slot="dataSource">
<a-select-option v-for="(contractno, cindex) in contractnoData" :key="cindex" :value="cindex + ''">
<div class="contractno-label">
<div class="title"> {{ contractno.contractNo }} / {{ contractno.contractName || '--' }} </div>
<div class="note"><span>{{ contractno.contractNote || '--' }}</span></div>
</div>
</a-select-option>
</template>
</auto-complete>
</template>
<template v-else>
<a-input :allowClear="true" v-model="details.contractno" />
</template>
</a-form-model-item>
</a-col>
</template>
@ -549,7 +572,8 @@ import {
DjyCustomerdetail,
BookingOrderContactSavebatch,
BookingOrderContactPage,
getVesselInfoService
getVesselInfoService,
getContractno
} from '@/api/modular/main/BookingLedger'
export default {
@ -728,7 +752,9 @@ export default {
// / - end
customerContactsData: [],
ContactType: [],
customerContactsDataList: []
customerContactsDataList: [],
//
contractnoData: []
}
},
computed: {
@ -1365,7 +1391,33 @@ export default {
xdata = xdata.slice(0, 4) + '0' + xdata.slice(4)
}
return xdata
},
// - start
getContractno(name = '') {
getContractno({
queryItem: name,
top: 50
})
.then(res => {
if (res.code === 200) {
this.contractnoData = res.data
this.$forceUpdate()
}
})
.catch(err => {
console.log(err)
})
},
contractnoSelect(value) {
this.details.contractno = this.contractnoData[Number(value)].contractNo
},
contractnoChange(value) {
if (!value) {
this.details.vessel = this.details.vessel ? this.details.vessel : ''
}
this.getContractno(value)
}
// - end
}
}
</script>
@ -1484,6 +1536,21 @@ export default {
color: #999;
}
}
.contractno-label{
.title{
height: 28px;
line-height: 28px;
font-size: 14px;
font-weight:600;
color: #666;
}
.note{
height: 22px;
line-height: 22px;
font-size: 12px;
color: #999;
}
}
// .ant-calendar-picker-input{
// padding: 0 4px;

@ -28,11 +28,28 @@
</a-col>
<a-col :span="16">
<div class="line">
<div class="left" :class="{'required':rules['description'] && rules['description'][0].required}">
<div class="left" :class="{'required':rules['description'] && rules['description'][0].required}" v-if="details.carrierid !== 'PIL'">
<div>Description of Goods</div>
<div>(包装种类与货名)</div>
</div>
<div class="input cargo-mark" >
<div class="left" v-else>
<div class="title" :class="{'required':rules['description'] && rules['description'][0].required}" >Description of Goods (包装种类与货名)</div>
<a-form-model-item has-feedback prop="goodsname" label="" :class="{'goods-name-box':rules['goodsname'] && rules['goodsname'][0].required}">
<i class="icon required" v-if="rules['goodsname'] && rules['goodsname'][0].required"></i>
<auto-complete
:allowClear="true"
:dropdown-match-select-width="false"
style="width: 75%;max-width:210px;"
:dropdown-style="{ width: '200px' }"
v-model="details.goodsname"
:data-source="goodsnameDataArr"
@select="goodsnameSelect"
@change="goodsnameChange"
@focus="goodsnameChange"
/>
</a-form-model-item>
</div>
<div class="cargo-mark" >
<div :class="{'required':rules['cargoid'] && rules['cargoid'][0].required}" style="padding-top:4px;">货物标志</div>
<a-form-model-item has-feedback prop="cargoid" label="">
<a-select :default-value="details.cargoid || 'S'" v-model="details.cargoid" style="width: 120px" @change="handleChange">
@ -45,7 +62,7 @@
</div>
<div class="input" >
<div :class="{'required':rules['hscode'] && rules['hscode'][0].required}" style="padding-top:4px;">HS编码</div>
<a-form-model-item has-feedback prop="hscode" label="">
<a-form-model-item has-feedback prop="hscode" label="" style="margin-top:-2px;">
<a-input :allowClear="true" v-model="details.hscode" />
</a-form-model-item>
</div>
@ -74,8 +91,16 @@
</a-collapse>
</template>
<script>
import {
getGoodsname
} from '@/api/modular/main/BookingLedger'
import { AutoComplete } from 'ant-design-vue'
export default {
name: '',
components: {
AutoComplete
},
props: {
details: {
type: Object,
@ -96,7 +121,23 @@ export default {
},
data() {
return {
showKey: ['1']
showKey: ['1'],
goodsnameData: []
}
},
computed: {
goodsnameDataArr() {
if (this.goodsnameData) {
const arr = []
this.goodsnameData.map((item, index) => {
if (!arr.includes(item.goodsNameEN)) {
arr.push(item.goodsNameEN)
}
})
return arr
} else {
return []
}
}
},
watch: {
@ -162,7 +203,35 @@ export default {
}
}
return tmp
},
// - start
getGoodsname(name = '') {
getGoodsname({
queryItem: name,
top: 50
})
.then(res => {
if (res.code === 200) {
this.goodsnameData = res.data
this.$forceUpdate()
}
})
.catch(err => {
console.log(err)
})
},
goodsnameSelect(value) {
const index = this.goodsnameDataArr.indexOf(value)
this.details.goodscode = this.goodsnameData[index].goodsCode
this.details.goodsname = this.goodsnameData[index].goodsNameEN
},
goodsnameChange(value) {
if (!value) {
this.details.vessel = this.details.vessel ? this.details.vessel : ''
}
this.getGoodsname(value)
}
// - end
}
}
</script>
@ -229,17 +298,38 @@ export default {
.left {
text-align: left;
display: inline-block;
width: 170px;
padding-top: 4px;
flex: 1;
.title{
padding-bottom:4px;
width: 90%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.goods-name-box{
position: relative;
padding-left: 15px;
i.icon{
position: absolute;
top: -10px;
left: -14px;
}
}
}
.input {
text-align: left;
display: inline-block;
flex: 1;
// flex: 1;
width: 170px;
}
.input.cargo-mark {
margin-left: 11%;
.cargo-mark {
// margin-left: 11%;
text-align: left;
display: inline-block;
width: 120px;
margin-right: 10px;
}
.input-box {
height: 200px;
@ -296,7 +386,7 @@ export default {
margin-top: -6px;
}
.textarea-label{
margin-top: 18px;
// margin-top: 18px;
}
.required{
padding-left: 10px;

Loading…
Cancel
Save