张同海 2 years ago
commit 0dd69192d0

@ -622,3 +622,11 @@ export function SendTrace(parameter) {
data: parameter
})
}
export function getDjyTenantConfig(parameter) {
return axios({
url: '/DjyTenantConfig/get',
method: 'get',
params: parameter
})
}

@ -107,7 +107,8 @@ import {
BookingOrderGet,
BookingOrderUpdate,
BookingOrderAdd,
BookingOrderAddOrUpdate
BookingOrderAddOrUpdate,
getDjyTenantConfig
} from '@/api/modular/main/BookingLedger'
import { mapActions, mapGetters } from 'vuex'
import { string } from 'clipboard'
@ -511,6 +512,18 @@ export default {
}
},
getDjyTenantConfig () {
getDjyTenantConfig({
type: ''
})
.then(res => {
this.$forceUpdate()
})
.catch(err => {
console.log(err)
})
},
enmuCarrier(type) {
switch (type) {
case 'CMA':

@ -2,16 +2,18 @@
<div class="basic-info">
<x-card>
<div slot="content" style="margin-top: -5px;">
<a-form style="margin-bottom:10px;">
<!-- <a-button type="primary" @click="checkbasic"> </a-button> -->
<a-form-model style="margin-bottom:10px;" ref="basicFrom" :model="details" :rules="rules">
<a-row class="from-box" :gutter="10">
<a-col :xs="12" :sm="12" :md="12" :lg="8" :xl="8">
<a-form-item
<a-form-model-item
class="from-label"
prop="customername"
label="客户"
:labelCol="labelCol2"
:wrapperCol="wrapperCol2"
has-feedback>
<div class="customer-box">
<div class="customer-box" style="padding-right:24px;">
<auto-complete
:allowClear="true"
class="customer-input"
@ -31,15 +33,27 @@
></span>
<span class="customer-btn iconfont icon-jiahao2fill" @click="changeCustomer('add')"></span>
</div>
</a-form-item>
</a-form-model-item>
</a-col>
<a-col :xs="12" :sm="12" :md="12" :lg="8" :xl="8">
<a-form-item class="from-label" label="提单号" :labelCol="labelCol2" :wrapperCol="wrapperCol2" has-feedback>
<a-form-model-item
class="from-label"
label="提单号"
prop="mblno"
:labelCol="labelCol2"
:wrapperCol="wrapperCol2"
has-feedback>
<a-input :allowClear="true" v-model="details.mblno" :disabled="ishd" />
</a-form-item>
</a-form-model-item>
</a-col>
<a-col :xs="12" :sm="12" :md="12" :lg="8" :xl="8">
<a-form-item class="from-label" label="船公司" :labelCol="labelCol2" :wrapperCol="wrapperCol2" has-feedback>
<a-form-model-item
class="from-label"
label="船公司"
prop="carrierid"
:labelCol="labelCol2"
:wrapperCol="wrapperCol2"
has-feedback>
<!-- <auto-complete
:allowClear="true"
:data-source="carrierDataArr"
@ -58,15 +72,16 @@
{{ carrier.selectShowTab }}
</a-select-option>
</a-select>
</a-form-item>
</a-form-model-item>
</a-col>
<a-col :xs="12" :sm="12" :md="12" :lg="8" :xl="8">
<a-form-item
<a-form-model-item
class="from-label"
label="订舱代理"
:labelCol="labelCol2"
:wrapperCol="wrapperCol2"
has-feedback
prop="forwarder"
>
<auto-complete
:allowClear="true"
@ -80,55 +95,80 @@
@focus="forwarderChange"
/>
<!-- <a-input :allowClear="true" v-model="details.forwarder" /> -->
</a-form-item>
</a-form-model-item>
</a-col>
<a-col :xs="12" :sm="12" :md="12" :lg="8" :xl="8">
<a-form-item class="from-label" label="PO NO" :labelCol="labelCol2" :wrapperCol="wrapperCol2" has-feedback>
<a-form-model-item
class="from-label"
label="PO NO"
:labelCol="labelCol2"
:wrapperCol="wrapperCol2"
has-feedback
prop="pono">
<a-input :allowClear="true" v-model="details.pono" />
</a-form-item>
</a-form-model-item>
</a-col>
<a-col :xs="12" :sm="12" :md="12" :lg="8" :xl="8">
<a-form-item
<a-form-model-item
class="from-label"
label="分提单号"
:labelCol="labelCol2"
:wrapperCol="wrapperCol2"
has-feedback
prop="hblno"
>
<a-input :allowClear="true" v-model="details.hblno" />
</a-form-item>
</a-form-model-item>
</a-col>
<a-col :xs="12" :sm="12" :md="12" :lg="8" :xl="8">
<a-form-item
<a-form-model-item
class="from-label"
label="订舱编号"
:labelCol="labelCol2"
:wrapperCol="wrapperCol2"
has-feedback
prop="bookingno"
>
<a-input :allowClear="true" v-model="details.bookingno" />
</a-form-item>
</a-form-model-item>
</a-col>
<template v-if="details.carrierid === 'ESL'">
<a-col :xs="12" :sm="12" :md="12" :lg="8" :xl="8">
<a-form-item class="from-label" label="EP号" :labelCol="labelCol2" :wrapperCol="wrapperCol2" has-feedback>
<a-form-model-item
class="from-label"
label="EP号"
:labelCol="labelCol2"
:wrapperCol="wrapperCol2"
has-feedback
prop="contractno">
<a-input :allowClear="true" v-model="details.contractno" />
</a-form-item>
</a-form-model-item>
</a-col>
</template>
<template v-else>
<a-col :xs="12" :sm="12" :md="12" :lg="8" :xl="8">
<a-form-item class="from-label" label="约号" :labelCol="labelCol2" :wrapperCol="wrapperCol2" has-feedback>
<a-form-model-item
class="from-label"
label="约号"
:labelCol="labelCol2"
:wrapperCol="wrapperCol2"
has-feedback
prop="contractno">
<a-input :allowClear="true" v-model="details.contractno" />
</a-form-item>
</a-form-model-item>
</a-col>
</template>
</a-row>
<div class="from-box2">
<a-row :gutter="10">
<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-model-item
class="from-label"
label="船名"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="vessel">
<auto-complete
:allowClear="true"
class="customer-input"
@ -140,29 +180,31 @@
@change="vesselChange"
@focus="vesselChange"
/>
</a-form-item>
</a-form-model-item>
</a-col>
<template v-if="details.carrierid === 'ESL'">
<a-col :xs="12" :sm="12" :md="12" :lg="8" :xl="6">
<a-form-item
<a-form-model-item
class="from-label"
label="航线代码"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="lanecode"
>
<a-input :allowClear="true" v-model="details.lanecode" />
</a-form-item>
</a-form-model-item>
</a-col>
</template>
<template v-else>
<a-col :xs="12" :sm="12" :md="12" :lg="8" :xl="6">
<a-form-item
<a-form-model-item
class="from-label"
label="内部航次"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="voynoinner"
>
<auto-complete
:allowClear="true"
@ -175,28 +217,29 @@
@change="voynoinnerChange"
@focus="voynoinnerChange"
/>
</a-form-item>
</a-form-model-item>
</a-col>
</template>
<a-col :xs="12" :sm="12" :md="12" :lg="8" :xl="6">
<a-form-item
<a-form-model-item
class="from-label"
label="海关航次"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="voyno"
>
<a-input :allowClear="true" v-model="details.voyno" />
</a-form-item>
</a-form-model-item>
</a-col>
<a-col :xs="12" :sm="12" :md="12" :lg="8" :xl="6">
<a-form-item
<a-form-model-item
class="from-label"
label="开船日期"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="etd"
>
<div class="date-box">
<a-date-picker class="date-picker" format="YYYY-MM-DD" v-model="details.etd" @change="changeEtd">
@ -204,27 +247,34 @@
</a-date-picker>
<span class="week" v-if="etdWeek">W{{ etdWeek || '--' }}</span>
</div>
</a-form-item>
</a-form-model-item>
</a-col>
</a-row>
<a-row :gutter="10">
<a-col :xs="12" :sm="12" :md="12" :lg="8" :xl="6">
<a-form-item
<a-form-model-item
class="from-label"
label="实际开船"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="atd"
>
<div class="date-box">
<a-date-picker class="date-picker" format="YYYY-MM-DD" v-model="details.atd">
<a-icon slot="suffixIcon" type="time" style="display: none" />
</a-date-picker>
</div>
</a-form-item>
</a-form-model-item>
</a-col>
<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-model-item
class="from-label"
label="航线"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="lanename">
<auto-complete
:allowClear="true"
class="customer-input"
@ -236,10 +286,16 @@
@change="lanenameChange"
@focus="lanenameChange"
/>
</a-form-item>
</a-form-model-item>
</a-col>
<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-model-item
class="from-label"
label="船代"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="shipagency">
<auto-complete
:allowClear="true"
class="customer-input"
@ -251,31 +307,33 @@
@change="shipagencyChange"
@focus="shipagencyChange"
/>
</a-form-item>
</a-form-model-item>
</a-col>
<template v-if="details.carrierid === 'ESL'">
<a-col :xs="12" :sm="12" :md="12" :lg="8" :xl="6">
<a-form-item
<a-form-model-item
class="from-label"
label="约号"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="contractno"
>
<a-input :allowClear="true" v-model="details.contractno" />
</a-form-item>
</a-form-model-item>
</a-col>
</template>
</a-row>
</div>
<a-row class="from-box3" :gutter="10">
<a-col :xs="12" :sm="12" :md="12" :lg="8" :xl="6">
<a-form-item
<a-form-model-item
class="from-label"
label="销售人员"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="sale"
>
<auto-complete
:allowClear="true"
@ -288,15 +346,16 @@
@change="saleChange"
@focus="saleChange"
/>
</a-form-item>
</a-form-model-item>
</a-col>
<a-col :xs="12" :sm="12" :md="12" :lg="8" :xl="6">
<a-form-item
<a-form-model-item
class="from-label"
label="操作人员"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="op"
>
<auto-complete
:allowClear="true"
@ -309,15 +368,16 @@
@change="opChange"
@focus="opChange"
/>
</a-form-item>
</a-form-model-item>
</a-col>
<a-col :xs="12" :sm="12" :md="12" :lg="8" :xl="6">
<a-form-item
<a-form-model-item
class="from-label"
label="单证人员"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="doc"
>
<auto-complete
:allowClear="true"
@ -330,15 +390,16 @@
@change="docChange"
@focus="docChange"
/>
</a-form-item>
</a-form-model-item>
</a-col>
<a-col :xs="12" :sm="12" :md="12" :lg="8" :xl="6">
<a-form-item
<a-form-model-item
class="from-label"
label="客服人员"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="custservice"
>
<auto-complete
:allowClear="true"
@ -351,10 +412,10 @@
@change="custserviceChange"
@focus="custserviceChange"
/>
</a-form-item>
</a-form-model-item>
</a-col>
</a-row>
</a-form>
</a-form-model>
</div>
</x-card>
@ -650,7 +711,29 @@ export default {
// / - end
customerContactsData: [],
ContactType: [],
customerContactsDataList: []
customerContactsDataList: [],
rules: {
// customername: [ { required: true, message: '', trigger: 'blur' } ],
// mblno: [{ required: true, message: '', trigger: 'blur' }],
// carrierid: [{ required: true, message: '', trigger: 'blur' }],
// forwarder: [{ required: true, message: '', trigger: 'blur' }],
// pono: [{ required: true, message: 'PO NO', trigger: 'blur' }],
// hblno: [{ required: true, message: '', trigger: 'blur' }],
// bookingno: [{ required: true, message: '', trigger: 'blur' }],
// contractno: [{ required: true, message: 'EP/', trigger: 'blur' }],
// vessel: [{ required: true, message: '', trigger: 'blur' }],
// lanecode: [{ required: true, message: '线', trigger: 'blur' }],
// voynoinner: [{ required: true, message: '', trigger: 'blur' }],
// voyno: [{ required: true, message: '', trigger: 'blur' }],
// etd: [{ required: true, message: '', trigger: 'blur' }],
// atd: [{ required: true, message: '', trigger: 'blur' }],
// lanename: [{ required: true, message: '线', trigger: 'blur' }],
// shipagency: [{ required: true, message: '', trigger: 'blur' }],
// sale: [{ required: true, message: '', trigger: 'blur' }],
// op: [{ required: true, message: '', trigger: 'blur' }],
// doc: [{ required: true, message: '', trigger: 'blur' }],
// custservice: [{ required: true, message: '', trigger: 'blur' }]
}
}
},
computed: {
@ -823,6 +906,17 @@ export default {
this.init()
},
methods: {
checkbasic () {
this.$refs.basicFrom.validate(valid => {
console.log(valid)
if (valid) {
console.log('验证成功!');
} else {
console.log('验证失败!');
return false;
}
});
},
// ========== ==========
focusEvent2(data) {
let Arr = data
@ -1337,7 +1431,7 @@ export default {
.customer-box {
display: flex;
margin-top: 2px;
.customer-input {
flex: 1;
}
@ -1367,6 +1461,9 @@ export default {
/deep/ .date-box {
padding-top: 7px !important;
}
.ant-input[type="text"]{
height: 28px !important;
}
// .ant-calendar-picker-input{
// padding: 0 4px;

@ -4,60 +4,71 @@
<template slot="header">
<div class="base-tit"><i class="iconfont icon-goods"></i>货物信息</div>
</template>
<a-button type="primary" @click="checkbasic"> </a-button>
<div class="container cargo-info">
<a-row :gutter="20">
<a-col :span="8">
<div class="tit">
<div>Seal No.(封志号)</div>
<div>Marks & Nos.(标记与号码)</div>
</div>
<div class="bottom">
<a-textarea class="input-box" v-model="details.marks" @change="valueChange('marks')"/>
<div
class="line-count"
id="shipper-scroll-right"
v-if="Object.keys(details).length > 1 && details.marks.length > 1"
>
<div v-for="(num, index) in details.marks.split('\n')" :key="index">{{ num.length }}</div>
<a-form-model :selfUpdate="true" ref="cargoFrom" :model="details" :rules="rules">
<a-row :gutter="20">
<a-col :span="8">
<div class="tit" :class="{'required':rules['marks'] && rules['marks'].required}">
<div>Seal No.(封志号)</div>
<div>Marks & Nos.(标记与号码)</div>
</div>
</div>
</a-col>
<a-col :span="16">
<div class="line">
<div class="left">
<div>Description of Goods</div>
<div>(包装种类与货名)</div>
<a-form-model-item has-feedback prop="marks" class="textarea-label" label="">
<div class="bottom">
<a-textarea class="input-box" v-model="details.marks" @change="valueChange('marks')"/>
<div
class="line-count"
id="shipper-scroll-right"
v-if="Object.keys(details).length > 1 && details.marks.length > 1"
>
<div v-for="(num, index) in details.marks.split('\n')" :key="index">{{ num.length }}</div>
</div>
</div>
</a-form-model-item>
</a-col>
<a-col :span="16">
<div class="line">
<div class="left" :class="{'required':rules['description'] && rules['description'].required}">
<div>Description of Goods</div>
<div>(包装种类与货名)</div>
</div>
<div class="input cargo-mark" >
<div :class="{'required':rules['cargoid'] && rules['cargoid'].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">
<a-select-option value="S"> S 普通货 </a-select-option>
<a-select-option value="R"> R 冻柜 </a-select-option>
<a-select-option value="D"> D 危险品 </a-select-option>
<a-select-option value="O"> O 超限箱 </a-select-option>
</a-select>
</a-form-model-item>
</div>
<div class="input" >
<div :class="{'required':rules['hscode'] && rules['hscode'].required}" style="padding-top:4px;">HS编码</div>
<a-form-model-item has-feedback prop="hscode" label="">
<a-input :allowClear="true" v-model="details.hscode" />
</a-form-model-item>
</div>
</div>
<div class="input cargo-mark">
<div>货物标志</div>
<a-select :default-value="details.cargoid || 'S'" v-model="details.cargoid" style="width: 120px" @change="handleChange">
<a-select-option value="S"> S 普通货 </a-select-option>
<a-select-option value="R"> R 冻柜 </a-select-option>
<a-select-option value="D"> D 危险品 </a-select-option>
<a-select-option value="O"> O 超限箱 </a-select-option>
</a-select>
</div>
<div class="input">
<div>HS编码</div>
<a-input :allowClear="true" v-model="details.hscode" />
</div>
</div>
<div class="bottom">
<a-textarea class="input-box" v-model="details.description" @change="valueChange('description')"/>
<div
class="line-count"
id="shipper-scroll-right"
v-if="Object.keys(details).length > 1 && details.description.length > 1"
>
<div v-for="(num, index) in details.description.split('\n')" :key="index">{{ num.length }}</div>
</div>
</div>
</a-col>
<a-col class="num-box" :span="24">
<span class="label">件数大写: </span>
<a-input :allowClear="true" class="input-val" v-model="details.totalno" disabled placeholder="自动生成"/>
</a-col>
</a-row>
<a-form-model-item has-feedback prop="description" class="textarea-label" label="">
<div class="bottom">
<a-textarea class="input-box" v-model="details.description" @change="valueChange('description')"/>
<div
class="line-count"
id="shipper-scroll-right"
v-if="Object.keys(details).length > 1 && details.description.length > 1"
>
<div v-for="(num, index) in details.description.split('\n')" :key="index">{{ num.length }}</div>
</div>
</div>
</a-form-model-item>
</a-col>
<a-col class="num-box" :span="24">
<span class="label">件数大写: </span>
<a-input :allowClear="true" class="input-val" v-model="details.totalno" disabled placeholder="自动生成"/>
</a-col>
</a-row>
</a-form-model>
</div>
</a-collapse-panel>
</a-collapse>
@ -79,7 +90,13 @@ export default {
},
data() {
return {
showKey: ['1']
showKey: ['1'],
rules: {
// marks: [ { required: true, message: 'Seal No. Marks & Nos', trigger: 'blur' } ],
// cargoid: [ { required: true, message: '', trigger: 'blur' } ],
// hscode: [ { required: true, message: 'HS', trigger: 'blur' } ],
// description: [ { required: true, message: '', trigger: 'blur' } ]
}
}
},
watch: {
@ -110,6 +127,17 @@ export default {
},
created() {},
methods: {
checkbasic () {
this.$refs.cargoFrom.validate(valid => {
console.log(valid)
if (valid) {
console.log('验证成功!');
} else {
console.log('验证失败!');
return false;
}
});
},
handleChange(value) {
this.details.cargoid = value
},
@ -177,6 +205,7 @@ export default {
padding-top: 4px;
box-sizing: border-box;
}
.line {
text-align: left;
@ -190,6 +219,7 @@ export default {
text-align: left;
display: inline-block;
width: 170px;
padding-top: 4px;
}
.input {
@ -250,4 +280,24 @@ export default {
}
}
}
/deep/ .ant-form-explain{
margin-top: -6px;
}
.required{
padding-left: 10px;
position: relative;
&::before{
display: inline-block;
margin-right: 4px;
color: #f5222d;
font-size: 14px;
font-family: SimSun, sans-serif;
line-height: 1;
content: '*';
position: absolute;
top: 8px;
left: 0;
}
}
</style>

@ -824,8 +824,8 @@ export default {
created() {
this.init()
document.onkeydown = (event) => {
console.log("按下:"+event.key+"键:"+event.keyCode, document.activeElement);
console.log(document.activeElement);
// console.log(":"+event.key+":"+event.keyCode, document.activeElement);
// console.log(document.activeElement);
if (event.key === 'Backspace' && this.ctnallViewIndex !== null) {
const val = document.getElementsByClassName('ctnallView')[this.ctnallViewIndex].getElementsByTagName('input')[0].value
console.log('内容', val, this.ctnList)

@ -5,144 +5,150 @@
<div class="base-tit"><i class="iconfont icon-a-fahuodaifahuo"></i>收发通信息</div>
</template>
<div class="mail-info">
<a-row :gutter="10">
<a-col :xs="24" :sm="24" :md="24" :lg="10" :xl="12">
<div class="sender">
<div class="top">
<div class="name"><span class="iconfont icon-bianji"></span>发货人</div>
<auto-complete
:allowClear="true"
v-model="shippername"
class="customer-input"
:data-source="shipperDataArr"
:dropdown-match-select-width="false"
:dropdown-style="{ width: '200px' }"
@select="shipperSelect"
@change="shipperChange"
@focus="shipperChange"
/>
<a-button class="save-btn" type="link" size="small" icon="save" @click="saveModel('shipper')">
保存
</a-button>
<div class="right">
<span class="btn-circle" @click="spliceMore('shipper')" :style="{ fontSize: '14px' }">*</span>
<span class="btn" @click="changeCode(35, 'shipper')">35</span>
<span class="btn" @click="changeCode(40, 'shipper')">40</span>
<span class="btn" @click="changeCode(50, 'shipper')">50</span>
</div>
</div>
<div class="bottom">
<a-textarea
id="shipper-scroll"
:defaultValue="details.shipper"
v-model="showShipper"
:auto-size="{ minRows: 2, maxRows: 5 }"
style="height: 120px"
@blur="textareaChange($event, 'shipper')"
/>
<div
class="line-count"
id="shipper-scroll-right"
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>
</div>
</div>
<div class="consignee">
<div class="top">
<div class="name"><span class="iconfont icon-bianji"></span>收货人</div>
<auto-complete
:allowClear="true"
v-model="consigneename"
class="customer-input"
:data-source="consigneeDataArr"
:dropdown-match-select-width="false"
:dropdown-style="{ width: '200px' }"
@select="consigneeSelect"
@change="consigneeChange"
@focus="consigneeChange"
/>
<a-button class="save-btn" type="link" size="small" icon="save" @click="saveModel('consignee')"
>保存</a-button
>
<div class="right">
<span class="btn-circle" @click="spliceMore('consignee')" :style="{ fontSize: '14px' }">*</span>
<span class="btn" @click="changeCode(35, 'consignee')">35</span>
<span class="btn" @click="changeCode(40, 'consignee')">40</span>
<span class="btn" @click="changeCode(50, 'consignee')">50</span>
</div>
</div>
<div class="bottom">
<a-textarea
id="consignee-scroll"
:defaultValue="details.consignee"
v-model="showConsignee"
:auto-size="{ minRows: 2, maxRows: 5 }"
style="height: 120px"
@blur="textareaChange($event, 'consignee')"
/>
<div
class="line-count"
id="consignee-scroll-right"
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>
<!-- <a-button type="primary" @click="checkbasic"> </a-button> -->
<a-form-model :selfUpdate="true" ref="mailingFrom" :model="details" :rules="rules">
<a-row :gutter="10">
<a-col :xs="24" :sm="24" :md="24" :lg="10" :xl="12">
<a-form-model-item has-feedback prop="shipper" class="sender-label">
<div class="sender">
<div class="top">
<div class="name"><span class="iconfont icon-bianji"></span>发货人</div>
<auto-complete
:allowClear="true"
v-model="shippername"
class="customer-input"
:data-source="shipperDataArr"
:dropdown-match-select-width="false"
:dropdown-style="{ width: '200px' }"
@select="shipperSelect"
@change="shipperChange"
@focus="shipperChange"
/>
<a-button class="save-btn" type="link" size="small" icon="save" @click="saveModel('shipper')">
保存
</a-button>
<div class="right">
<span class="btn-circle" @click="spliceMore('shipper')" :style="{ fontSize: '14px' }">*</span>
<span class="btn" @click="changeCode(35, 'shipper')">35</span>
<span class="btn" @click="changeCode(40, 'shipper')">40</span>
<span class="btn" @click="changeCode(50, 'shipper')">50</span>
</div>
</div>
<div class="bottom">
<a-textarea
id="shipper-scroll"
:defaultValue="details.shipper"
v-model="showShipper"
:auto-size="{ minRows: 2, maxRows: 5 }"
style="height: 120px"
@blur="textareaChange($event, 'shipper')"
/>
<div
class="line-count"
id="shipper-scroll-right"
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>
</div>
</div>
</div>
</div>
<div class="notifier">
<div class="top">
<div class="name"><span class="iconfont icon-bianji"></span>通知人</div>
<auto-complete
:allowClear="true"
v-model="notifypartyname"
class="customer-input"
:data-source="notifyDataArr"
@select="notifySelect"
@change="notifyChange"
@focus="notifyChange"
/>
<a-button class="save-btn" type="link" size="small" icon="save" @click="saveModel('notifyparty')"
>保存</a-button
>
<div class="right">
<span class="btn-circle" @click="spliceMore('notifyparty')" :style="{ fontSize: '14px' }">*</span>
<span class="btn" @click="changeCode(35, 'notifyparty')">35</span>
<span class="btn" @click="changeCode(40, 'notifyparty')">40</span>
<span class="btn" @click="changeCode(50, 'notifyparty')">50</span>
</a-form-model-item>
<a-form-model-item has-feedback prop="consignee" class="sender-label">
<div class="consignee">
<div class="top">
<div class="name"><span class="iconfont icon-bianji"></span>收货人</div>
<auto-complete
:allowClear="true"
v-model="consigneename"
class="customer-input"
:data-source="consigneeDataArr"
:dropdown-match-select-width="false"
:dropdown-style="{ width: '200px' }"
@select="consigneeSelect"
@change="consigneeChange"
@focus="consigneeChange"
/>
<a-button class="save-btn" type="link" size="small" icon="save" @click="saveModel('consignee')"></a-button
>
<div class="right">
<span class="btn-circle" @click="spliceMore('consignee')" :style="{ fontSize: '14px' }">*</span>
<span class="btn" @click="changeCode(35, 'consignee')">35</span>
<span class="btn" @click="changeCode(40, 'consignee')">40</span>
<span class="btn" @click="changeCode(50, 'consignee')">50</span>
</div>
</div>
<div class="bottom">
<a-textarea
id="consignee-scroll"
:defaultValue="details.consignee"
v-model="showConsignee"
:auto-size="{ minRows: 2, maxRows: 5 }"
style="height: 120px"
@blur="textareaChange($event, 'consignee')"
/>
<div
class="line-count"
id="consignee-scroll-right"
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>
</div>
</div>
</div>
<div class="bottom">
<a-textarea
id="notifyparty-scroll"
:defaultValue="details.notifyparty"
:auto-size="{ minRows: 2, maxRows: 5 }"
style="height: 120px"
v-model="showNotifier"
@blur="textareaChange($event, 'notifyparty')"
/>
<div
class="line-count"
id="notifyparty-scroll-right"
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>
</a-form-model-item>
<a-form-model-item has-feedback prop="notifyparty" class="sender-label">
<div class="notifier">
<div class="top">
<div class="name"><span class="iconfont icon-bianji"></span>通知人</div>
<auto-complete
:allowClear="true"
v-model="notifypartyname"
class="customer-input"
:data-source="notifyDataArr"
@select="notifySelect"
@change="notifyChange"
@focus="notifyChange"
/>
<a-button class="save-btn" type="link" size="small" icon="save" @click="saveModel('notifyparty')"></a-button
>
<div class="right">
<span class="btn-circle" @click="spliceMore('notifyparty')" :style="{ fontSize: '14px' }">*</span>
<span class="btn" @click="changeCode(35, 'notifyparty')">35</span>
<span class="btn" @click="changeCode(40, 'notifyparty')">40</span>
<span class="btn" @click="changeCode(50, 'notifyparty')">50</span>
</div>
</div>
<div class="bottom">
<a-textarea
id="notifyparty-scroll"
:defaultValue="details.notifyparty"
:auto-size="{ minRows: 2, maxRows: 5 }"
style="height: 120px"
v-model="showNotifier"
@blur="textareaChange($event, 'notifyparty')"
/>
<div
class="line-count"
id="notifyparty-scroll-right"
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>
</div>
</div>
</div>
</div>
</a-col>
<a-col :xs="24" :sm="24" :md="24" :lg="14" :xl="12">
<a-form :selfUpdate="true">
</a-form-model-item>
</a-col>
<a-col :xs="24" :sm="24" :md="24" :lg="14" :xl="12">
<a-row :gutter="16">
<a-col :span="12">
<a-form-item
class="from-label"
<a-form-model-item
class="from-label yarn-label"
label="场站"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
style="overflow: visible"
prop="yard"
>
<div class="yard-box" style="display: flex">
<!-- <auto-complete
@ -173,15 +179,16 @@
<a-checkbox v-model="details.feeself"> </a-checkbox>
</div>
</div>
</a-form-item>
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-item
<a-form-model-item
class="from-label"
label="报关行"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="customser"
>
<auto-complete
:allowClear="true"
@ -194,15 +201,16 @@
@change="customserChange"
@focus="customserChange"
/>
</a-form-item>
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-item
<a-form-model-item
class="from-label"
label="车队"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="trucker"
>
<auto-complete
:allowClear="true"
@ -215,15 +223,16 @@
@change="truckerChange"
@focus="truckerChange"
/>
</a-form-item>
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-item
<a-form-model-item
class="from-label"
label="国外代理"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="agentid"
>
<auto-complete
:allowClear="true"
@ -236,28 +245,30 @@
@change="agentidChange"
@focus="agentidChange"
/>
</a-form-item>
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-item
<a-form-model-item
class="from-label"
label="预抵日期"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="eta"
>
<a-date-picker format="YYYY-MM-DD" v-model="details.eta">
<a-icon slot="suffixIcon" type="time" style="display: none" />
</a-date-picker>
</a-form-item>
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-item
<a-form-model-item
class="from-label"
label="截港时间"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="closingdate"
>
<a-date-picker
style="min-width:100px"
@ -268,15 +279,16 @@
>
<a-icon slot="suffixIcon" type="time" style="display: none" />
</a-date-picker>
</a-form-item>
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-item
<a-form-model-item
class="from-label"
label="截单时间"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="closedocdate"
>
<a-date-picker
style="min-width:100px"
@ -287,15 +299,16 @@
>
<a-icon slot="suffixIcon" type="time" style="display: none" />
</a-date-picker>
</a-form-item>
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-item
<a-form-model-item
class="from-label"
label="VGM时间"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="closevgmdate"
>
<a-date-picker
style="min-width:100px"
@ -306,15 +319,16 @@
>
<a-icon slot="suffixIcon" type="time" style="display: none" />
</a-date-picker>
</a-form-item>
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-item
<a-form-model-item
class="from-label"
label="收货代码"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="placereceiptid"
>
<auto-complete
:allowClear="true"
@ -327,26 +341,28 @@
@change="placereceiptChange"
@focus="placereceiptChange"
></auto-complete>
</a-form-item>
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-item
<a-form-model-item
class="from-label"
label="收货地"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="placereceipt"
>
<a-input :allowClear="true" v-model="details.placereceipt" />
</a-form-item>
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-item
<a-form-model-item
class="from-label"
label="装货港代码"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="portloadid"
>
<auto-complete
:allowClear="true"
@ -359,26 +375,28 @@
@change="portloadChange"
@focus="portloadChange"
></auto-complete>
</a-form-item>
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-item
<a-form-model-item
class="from-label"
label="装货港"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="portload"
>
<a-input :allowClear="true" v-model="details.portload" />
</a-form-item>
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-item
<a-form-model-item
class="from-label"
label="中转港代码"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="transportid"
>
<auto-complete
:allowClear="true"
@ -391,26 +409,28 @@
@change="transportChange"
@focus="transportChange"
/>
</a-form-item>
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-item
<a-form-model-item
class="from-label"
label="中转港"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="transport"
>
<a-input :allowClear="true" v-model="details.transport" />
</a-form-item>
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-item
<a-form-model-item
class="from-label"
label="卸货港代码"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="portdischargeid"
>
<auto-complete
:allowClear="true"
@ -423,26 +443,28 @@
@change="portdischargeChange"
@focus="portdischargeChange"
/>
</a-form-item>
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-item
<a-form-model-item
class="from-label"
label="卸货港"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="portdischarge"
>
<a-input :allowClear="true" v-model="details.portdischarge" />
</a-form-item>
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-item
<a-form-model-item
class="from-label"
label="目的代码"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="destinationid"
>
<auto-complete
:allowClear="true"
@ -455,26 +477,28 @@
@change="destinationChange"
@focus="destinationChange"
/>
</a-form-item>
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-item
<a-form-model-item
class="from-label"
label="目的地"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="destination"
>
<a-input :allowClear="true" v-model="details.destination" />
</a-form-item>
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-item
<a-form-model-item
class="from-label"
label="交货代码"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="placedeliveryid"
>
<auto-complete
:allowClear="true"
@ -487,37 +511,40 @@
@change="placedeliveryChange"
@focus="placedeliveryChange"
/>
</a-form-item>
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-item
<a-form-model-item
class="from-label"
label="交货地"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="placedelivery"
>
<a-input :allowClear="true" v-model="details.placedelivery" />
</a-form-item>
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-item
<a-form-model-item
class="from-label"
label="件数"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="pkgs"
>
<a-input :allowClear="true" v-model="details.pkgs" type="number" @change="changePkgs"/>
</a-form-item>
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-item
<a-form-model-item
class="from-label"
label="包装"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="kindpkgs"
>
<auto-complete
:allowClear="true"
@ -530,38 +557,40 @@
@change="kindpkgsChange"
@focus="kindpkgsChange"
/>
</a-form-item>
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-item
<a-form-model-item
class="from-label"
label="毛重"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="kgs"
>
<div class="line-box">
<a-input :allowClear="true" v-model="details.kgs" /><span class="unit">KGS</span>
</div>
</a-form-item>
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-item
<a-form-model-item
class="from-label"
label="尺寸"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="cbm"
>
<div class="line-box">
<a-input :allowClear="true" v-model="details.cbm" /><span class="unit">CBM</span>
</div>
</a-form-item>
</a-form-model-item>
</a-col>
</a-row>
</a-form>
</a-col>
</a-row>
</a-col>
</a-row>
</a-form-model>
</div>
<a-modal
@ -595,7 +624,7 @@
<a-form>
<a-row>
<a-col :span="12">
<a-form-item
<a-form-model-item
class="from-label"
label="联系人"
:labelCol="YardlabelCol"
@ -604,10 +633,10 @@
style="overflow: visible;"
>
<a-input v-model="details.yardcontract" />
</a-form-item>
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-item
<a-form-model-item
class="from-label"
label="电话"
:labelCol="YardlabelCol"
@ -616,10 +645,10 @@
style="overflow: visible;"
>
<a-input v-model="details.yardcontracttel" />
</a-form-item>
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-item
<a-form-model-item
class="from-label"
label="邮箱"
:labelCol="YardlabelCol"
@ -628,7 +657,7 @@
style="overflow: visible;"
>
<a-input v-model="details.yardcontractemail" />
</a-form-item>
</a-form-model-item>
</a-col>
</a-row>
</a-form>
@ -716,7 +745,36 @@ export default {
customerModelconfirm: false,
showShipper: '',
showConsignee: '',
showNotifier: ''
showNotifier: '',
rules: {
// shipper: [ { required: true, message: '', trigger: 'blur' } ],
// consignee: [ { required: true, message: '', trigger: 'blur' } ],
// notifyparty: [ { required: true, message: '', trigger: 'blur' } ],
// yard: [ { required: true, message: '', trigger: 'blur' } ],
// customser: [ { required: true, message: '', trigger: 'blur' } ],
// trucker: [ { required: true, message: '', trigger: 'blur' } ],
// agentid: [ { required: true, message: '', trigger: 'blur' } ],
// eta: [ { required: true, message: '', trigger: 'blur' } ],
// closingdate: [ { required: true, message: '', trigger: 'blur' } ],
// closedocdate: [ { required: true, message: '', trigger: 'blur' } ],
// closevgmdate: [ { required: true, message: 'VGM', trigger: 'blur' } ],
// placereceiptid: [ { required: true, message: '', trigger: 'blur' } ],
// placereceipt: [ { required: true, message: '', trigger: 'blur' } ],
// portloadid: [ { required: true, message: '', trigger: 'blur' } ],
// portload: [ { required: true, message: '', trigger: 'blur' } ],
// transportid: [ { required: true, message: '', trigger: 'blur' } ],
// transport: [ { required: true, message: '', trigger: 'blur' } ],
// portdischargeid: [ { required: true, message: '', trigger: 'blur' } ],
// portdischarge: [ { required: true, message: '', trigger: 'blur' } ],
// destinationid: [ { required: true, message: '', trigger: 'blur' } ],
// destination: [ { required: true, message: '', trigger: 'blur' } ],
// placedeliveryid: [ { required: true, message: '', trigger: 'blur' } ],
// placedelivery: [ { required: true, message: '', trigger: 'blur' } ],
// pkgs: [ { required: true, message: '', trigger: 'blur' } ],
// kindpkgs: [ { required: true, message: '', trigger: 'blur' } ],
// kgs: [ { required: true, message: '', trigger: 'blur' } ],
// cbm: [ { required: true, message: '', trigger: 'blur' } ],
}
}
},
watch: {
@ -963,6 +1021,17 @@ export default {
}, 2000)
},
methods: {
checkbasic () {
this.$refs.mailingFrom.validate(valid => {
console.log(valid)
if (valid) {
console.log('验证成功!');
} else {
console.log('验证失败!');
return false;
}
});
},
// ========== ==========
changeYard(type) {
if (type == 'remark') {
@ -1646,7 +1715,9 @@ export default {
.top {
margin-bottom: 15px;
min-height: 32px;
line-height: 32px;
overflow: hidden;
display: flex;
.name {
display: inline-block;
font-size: 13px;
@ -1666,6 +1737,9 @@ export default {
margin-top: 5px;
margin-right: 25px;
}
.customer-input{
flex: 1;
}
.btn {
width: 20px;
height: 20px;
@ -1733,6 +1807,9 @@ export default {
font-size: 12px;
line-height: 20px;
}
textarea{
line-height: 22px;
}
.line-count {
width: 24px;
padding-top: 3px;
@ -1753,14 +1830,37 @@ export default {
}
}
}
.sender-label{
position: relative;
margin-bottom: 0px !important;
/deep/ .ant-form-item-children-icon{
position: absolute;
top: calc(100% + 15px);
left: 0;
}
/deep/ .ant-form-explain{
padding-left: 33px;
margin-top: -15px;
}
}
.yard-box {
position: relative;
margin-top: 5px;
i {
color: @primary-color;
margin-top: -3px !important;
margin-top: -5px !important;
cursor: pointer;
}
}
.yarn-label{
position: relative;
/deep/ .ant-form-item-children-icon{
// position: absolute;
// top: 13px;
// right: 44px;
display: none;
}
}
.content {
.label {
margin-bottom: 10px;
@ -1783,6 +1883,7 @@ export default {
.line-box {
display: flex;
margin-top: 6px;
span.unit {
font-size: 12px;
color: #999;
@ -1797,5 +1898,14 @@ export default {
top: 15px !important;
right: -22px !important;
}
.yarn-label {
position: relative;
/deep/ .ant-form-item-children-icon{
// position: absolute;
// top: 13px;
// right: 15px;
display: none;
}
}
}
</style>

@ -61,11 +61,12 @@
</button>
</div>
<div
v-if="!details.hbList || details.hbList.length === 0"
class="btn-list single-view-1"
:style="{ width: '150px' }"
>
<button @click="addChild()" v-if="!details.hbList || details.hbList.length === 0"><span class="iconfont icon-zhizhishu"></span></button>
<button><span class="iconfont icon-electronic-signature"></span>自定义必填项</button>
<button @click="addChild()"><span class="iconfont icon-zhizhishu"></span>添加分</button>
<!-- <button><span class="iconfont icon-electronic-signature"></span>自定义必填项</button> -->
</div>
</a-card>

@ -500,7 +500,7 @@ export default {
this.formRes = data
},
tableMoreRefresh() {
const arr = this.formRes.MBLNO.split(/-||,|[.]/)
const arr = this.formRes.MBLNO.split(/|,/)
let val = ``
arr.map((item, index) => {
val += `${item}
@ -645,8 +645,8 @@ export default {
if (this.tableOrderType !== '') {
query.DescStr = this.tableOrderType === 'desc'
}
if (query.MBLNO && query.MBLNO.split(/-||,|[.]/).length > 0) {
const arr = this.formRes.MBLNO.split(/-||,|[.]/)
if (query.MBLNO && query.MBLNO.split(/|,/).length > 0) {
const arr = this.formRes.MBLNO.split(/|,/)
query.MBLNO = arr.toString()
}
BookingOrderPage(query)

Loading…
Cancel
Save