张同海 2 years ago
commit 091345211f

@ -1,6 +1,6 @@
<template>
<a-modal
title="表单自定义"
:title="type === 'table' ? '表头自定义' : '查询条件自定义'"
:width="900"
:visible="visible"
:confirmLoading="confirmLoading"

@ -182,7 +182,7 @@
prop="bookingEDIExt.orderRemark"
>
<!-- <a-input v-model="details.bookingEDIExt.orderRemark" /> -->
<inputView type="orderRemark" placeholder="订舱人说明或ESL BP CODE" :parentVal="details.bookingEDIExt.orderRemark" @getInputChange="inputChange"/>
<inputView type="orderRemark" :placeholder="'订舱人说明或ESL BP CODE'" :parentVal="details.bookingEDIExt.orderRemark" @getInputChange="inputChange"/>
</a-form-model-item>
</a-col>
<a-col :span="23">
@ -342,7 +342,7 @@
prop="bookingEDIExt.masterBolIndicator"
>
<a-select size="small" v-model="details.bookingEDIExt.masterBolIndicator" @change="handleMasterBolChange">
<a-select-option v-for="(master, mindex) in StoreMasterBOLIndicator" :value="master.NAME" :key="mindex">
<a-select-option v-for="(master, mindex) in StoreMasterBOLIndicator" :value="mindex" :key="mindex">
{{ master.NAME }}
</a-select-option>
</a-select>
@ -507,8 +507,8 @@ export default {
});
},
handleMasterBolChange (val) {
this.details.bookingEDIExt.masterBolIndicator = val.split('|')[0]
this.details.bookingEDIExt.masterBolIndicatorName = val.split('|')[1]
this.details.bookingEDIExt.masterBolIndicator = this.StoreMasterBOLIndicator[val].ID
this.details.bookingEDIExt.masterBolIndicatorName = this.StoreMasterBOLIndicator[val].NAME
},
handleSaleChange (val) {
this.details.bookingEDIExt.salerCode = val.split('|')[0]

@ -1,6 +1,6 @@
<template>
<div class="booking-detail" style="margin-top:0;">
<a-row :gutter="24" :class="showSecNav ? 'show-content' : 'hide-content'">
<a-row :gutter="24" :class="showSecNav ? 'show-content' : 'hide-content'" style="margin-left:0;">
<div class="nav-min-icon" v-if="!showSecNav" @click="openNav"><i class="iconfont icon-liebiao"></i></div>
<a-col :span="showSecNav ? 5 : 0" v-if="showSecNav">
<div class="sed-order-list">
@ -24,16 +24,78 @@
</div>
</div>
</a-col>
<a-col :span="showSecNav ? 19 : 24">
<a-col :span="showSecNav ? 19 : 24" style="padding-left:0;">
<template v-if="editDetails">
<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>
<a-tabs type="card" :activeKey="mainOrderActiveKey" @change="changeMainTab">
<ul class="sec-parent-tabs-box">
<div class="parents-tabs-top">
<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' }">
<input type="radio" name="tabs" id="stab2" />
<label class="tabs-label" for="tab2">EDI补充信息</label>
</li>
</div>
<div class="parents-tabs-content">
<div id="tab-content1" class="tab-content" v-show="mainOrderActiveKey === '1'">
<div class="pane-box">
<!-- 基本信息 -->
<basicInfo
ref="basicInfo"
:type="type"
:details="editDetails"
:rules="basicRules"
:ishd="true"
:inSave="inSave"
@changeDetail="changeDetailFun"
></basicInfo>
<!-- 收发通信息 -->
<mailingInfo
ref="mailingInfo"
:details="editDetails"
:rules="mailingRules"
:inSave="inSave"
@changeDetail="changeDetailFun"
@pkgsEnCapital="pkgsEnCapitalFun"
></mailingInfo>
<!-- 货物信息 -->
<cargoInfo ref="cargoInfo" :details="editDetails" :rules="cargoRules" :inSave="inSave" @changeDetail="changeDetailFun"></cargoInfo>
<!-- 签单信息 -->
<billInfo ref="billInfo" :details="editDetails" :rules="billRules" :inSave="inSave" @changeDetail="changeDetailFun"></billInfo>
<!-- 备注信息 -->
<remarksInfo ref="remarksInfo" :details="editDetails" :rules="remarksRules" :inSave="inSave" @changeDetail="changeDetailFun"></remarksInfo>
<!-- 箱型 -->
<goodsTable
ref="goodsTable"
:details="editDetails"
:rules="tableRules"
:inSave="inSave"
pType="secOrder"
@changeDetail="changeDetailFun"
></goodsTable>
</div>
</div>
<div id="tab-content2" class="tab-content" v-show="mainOrderActiveKey === '2'">
<ediMore
class="pane-box"
ref="ediMore"
:rules="ediRules"
:details="editDetails"
:inSave="inSave"
@changeDetail="changeDetailFun"
v-if="!inPageLoading"
></ediMore>
</div>
</div>
</ul>
<!-- <a-tabs type="card" :activeKey="mainOrderActiveKey" @change="changeMainTab">
<a-tab-pane key="1" tab="基础信息">
<div class="pane-box">
<!-- 基本信息 -->
<basicInfo
ref="basicInfo"
:type="type"
@ -43,7 +105,6 @@
:inSave="inSave"
@changeDetail="changeDetailFun"
></basicInfo>
<!-- 收发通信息 -->
<mailingInfo
ref="mailingInfo"
:details="editDetails"
@ -52,13 +113,9 @@
@changeDetail="changeDetailFun"
@pkgsEnCapital="pkgsEnCapitalFun"
></mailingInfo>
<!-- 货物信息 -->
<cargoInfo ref="cargoInfo" :details="editDetails" :rules="cargoRules" :inSave="inSave" @changeDetail="changeDetailFun"></cargoInfo>
<!-- 签单信息 -->
<billInfo ref="billInfo" :details="editDetails" :rules="billRules" :inSave="inSave" @changeDetail="changeDetailFun"></billInfo>
<!-- 备注信息 -->
<remarksInfo ref="remarksInfo" :details="editDetails" :rules="remarksRules" :inSave="inSave" @changeDetail="changeDetailFun"></remarksInfo>
<!-- 箱型 -->
<goodsTable
ref="goodsTable"
:details="editDetails"
@ -80,7 +137,7 @@
v-if="!inPageLoading"
></ediMore>
</a-tab-pane>
</a-tabs>
</a-tabs> -->
</template>
<template v-else>
<div class="sed-no-data">
@ -786,6 +843,9 @@ export default {
changeMainTab (e) {
this.mainOrderActiveKey = e
},
changeParentTabs(type) {
this.mainOrderActiveKey = type
}
}
}
</script>
@ -825,7 +885,7 @@ export default {
position: relative;
}
.nav-min-icon {
width: 50px;
width: 48px;
height: 50px;
text-align: center;
font-size: 24px;
@ -842,7 +902,7 @@ export default {
.sed-order-list {
background: #fff;
box-shadow: 0 0 10px #eee;
padding: 10px 20px;
padding: 10px 20px 10px 20px;
// height: 100%;
height: calc(100vh - 240px);
display: flex;
@ -1083,4 +1143,76 @@ export default {
right: 10px !important;
}
.sec-parent-tabs-box {
width: 100%;
// float: none;
list-style: none;
position: relative;
text-align: left;
padding: 29px 18px 0 0;
.parents-tabs-top {
position: absolute;
top: 0;
left: 0;
li {
float: left;
}
input[type='radio'] {
position: absolute;
top: -9999px;
left: -9999px;
}
.tabs-label {
display: block;
padding: 4px 10px;
border-radius: 2px 2px 0 0;
font-size: 12px;
font-weight: normal;
text-transform: uppercase;
background: #fafafa;
color: #999;
cursor: pointer;
position: relative;
top: 3px;
-webkit-transition: all 0.1s;
-moz-transition: all 0.1s;
-o-transition: all 0.1s;
transition: all 0.1s;
// transition: all 0.2s ease-in-out;
margin-right: 4px;
}
// [id^='stab']:checked + label {
// top: 0;
// background: #fff;
// color: @primary-color;
// font-size: 14px;
// }
.active{
input, label{
top: 0;
background: #fff;
color: @primary-color;
font-size: 14px;
}
}
}
.parents-tabs-content {
width: 100%;
overflow: hidden;
white-space: nowrap;
vertical-align: top;
.tab-content {
display: inline-block;
vertical-align: top;
transition: 0.5s all;
overflow: hidden;
width: 100%;
padding: 10px 0;
}
}
// [id^="tab"]:checked ~ [id^="tab-content"] {
// display: block;
// }
}
</style>

@ -1054,6 +1054,7 @@ export default {
let FnOk = () => {
const _data = JSON.parse(JSON.stringify(that.bookingDetails))
delete _data.hbList
this.$message.loading({ content: '保存中...' })
BookingOrderAddOrUpdate(_data)
.then(res => {
if (res.success) {
@ -1245,6 +1246,7 @@ export default {
let FnOk = () => {
const _data = JSON.parse(JSON.stringify(that.bookingDetails))
delete _data.hbList
this.$message.loading({ content: '保存中...' })
BookingOrderAddOrUpdate(_data)
.then(res => {
if (res.success) {

@ -554,7 +554,7 @@
<a-col :xs="12" :sm="12" :md="12" :lg="8" :xl="6">
<a-form-model-item
class="from-label"
label="航线操作"
label="航线"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback

@ -6,6 +6,7 @@
:type="inputType"
v-model="value"
:disabled="ishd"
:placeholder="placeholder"
@blur="inputBlur"
@change="inputChange"
/>
@ -32,6 +33,10 @@ export default {
type: String,
default: 'text'
},
placeholder: {
type: String,
default: ''
}
},
data() {
return {

@ -9,7 +9,7 @@
<a-form-model :selfUpdate="true" ref="mailingFrom" :model="details" :rules="rules">
<a-row :gutter="10">
<a-col class="left-sender-box" :xs="24" :sm="24" :md="24" :lg="10" :xl="11">
<a-form-model-item has-feedback prop="shipper" class="sender-label">
<a-form-model-item has-feedback prop="shipper" class="sender-label" style="overflow: hidden;">
<div class="sender">
<div class="top" :class="{ required: rules['shipper'] && rules['shipper'][0].required }">
<div class="name"><span class="iconfont icon-bianji"></span>发货人</div>
@ -61,7 +61,7 @@
</div>
</div>
</a-form-model-item>
<a-form-model-item has-feedback prop="consignee" class="sender-label">
<a-form-model-item has-feedback prop="consignee" class="sender-label" style="overflow: hidden;">
<div class="consignee">
<div class="top" :class="{ required: rules['consignee'] && rules['consignee'][0].required }">
<div class="name"><span class="iconfont icon-bianji"></span>收货人</div>
@ -113,7 +113,7 @@
</div>
</div>
</a-form-model-item>
<a-form-model-item has-feedback prop="notifyparty" class="sender-label">
<a-form-model-item has-feedback prop="notifyparty" class="sender-label" style="overflow: hidden;">
<div class="notifier">
<div class="top" :class="{ required: rules['notifyparty'] && rules['notifyparty'][0].required }">
<div class="name"><span class="iconfont icon-bianji"></span>通知人</div>
@ -1882,7 +1882,7 @@ export default {
}
},
getTextareaChange({ type, value }) {
// console.log('== ==', type, value)
console.log('== 输入框更新 ==', type, value)
this.details[type] = value
// console.log(this.details[type])
this.$forceUpdate()
@ -2179,6 +2179,7 @@ export default {
left: 0;
}
/deep/ .ant-form-explain {
display: none;
padding-left: 33px;
margin-top: -15px;
margin-bottom: 10px;
@ -2491,5 +2492,11 @@ form .has-feedback .ant-time-picker-clear {
line-height: 36px !important;
}
}
// .sender-label{
// .ant-form-explain{
// display: none !important;
// }
// }
// }
</style>

@ -474,7 +474,13 @@ import {
getVesselInfoService,
GetYardlist,
GetSysUserPage,
DjyCustomerpage
DjyCustomerpage,
GetCtn,
GetPackage,
Codeissuetypelist,
GetFrt,
GetService,
GetForwarderlist
} from '@/api/modular/main/BookingLedger'
import columnSetting from '@/components/tableColumnSetting'
import formLabel from './modules/formLabel'
@ -805,14 +811,20 @@ export default {
}
this.formData.map((item, index) => {
this.$set(this.formRes, item.label, this.formRes[item.label] || '')
// select
const fun = this.emnuSelectApi(item.label)
// debugger
if (fun) {
this.getFromSelectData(fun).then((data) => {
item.dataList = data
this.$refs[`fromlabel-${item.label}`][0].$data.dataList = data
})
// select
if (item.type === 'select') {
const fun = this.emnuSelectApi(item.label)
if (fun) {
this.getFromSelectData(fun).then((data) => {
item.dataList = data
this.$refs[`fromlabel-${item.label}`][0].$data.dataList = data
})
} else if (['NOBILL', 'CARGOID'].includes(item.label)) {
item.dataList = item.data
setTimeout(() => {
this.$refs[`fromlabel-${item.label}`][0].$data.dataList = item.data
}, 300)
}
}
})
if (!isReset) {
@ -833,6 +845,12 @@ export default {
return GetCarrierlist
case 'YARDID':
return GetYardlist
case 'CNTRTOTAL':
return GetCtn
case 'KINDPKGS':
return GetPackage
case 'ISSUETYPE':
return Codeissuetypelist
}
},
//
@ -1350,7 +1368,7 @@ export default {
//
getCompleteListFun ({ form, value }) {
let query = {}
if (['VESSEL', 'PORTDISCHARGE', 'PORTLOAD', 'PLACERECEIPT', 'DESTINATION', 'PLACEDELIVERY'].includes(form.label)) {
if (['VESSEL', 'PORTDISCHARGE', 'PORTLOAD', 'PLACERECEIPT', 'DESTINATION', 'PLACEDELIVERY', 'PAYABLEAT', 'BLFRT', 'ISSUEPLACE', 'PREPARDAT', 'SERVICE', 'SHIPAGENCY'].includes(form.label)) {
//
query = {
KeyWord: value
@ -1378,12 +1396,22 @@ export default {
SearchValue: value,
PropString: 'customs_broker'
}
} else if (form.label === 'AGENTID') {
query = {
SearchValue: value,
PropString: 'out_agent'
}
} else if (form.label === 'TRUCKER') {
query = {
SearchValue: value,
PropString: 'fleet'
}
}
const fun = this.emnuCompleteApi(form.label)
if (fun) {
this.getFromSelectData(this.emnuCompleteApi(form.label), query).then((data) => {
console.log(data)
if (['CUSTOMERNAME', 'FORWARDER', 'CUSTOMSER'].includes(form.label)) {
if (['CUSTOMERNAME', 'FORWARDER', 'CUSTOMSER', 'AGENTID', 'TRUCKER'].includes(form.label)) {
this.$refs[`fromlabel-${form.label}`][0].$data.dataSourceList = data.rows
} else {
this.$refs[`fromlabel-${form.label}`][0].$data.dataSourceList = data
@ -1422,6 +1450,22 @@ export default {
return GetSysUserPage
case 'CUSTOMSER':
return DjyCustomerpage
case 'PAYABLEAT':
return GetPortlist
case 'BLFRT':
return GetFrt
case 'ISSUEPLACE':
return GetPortloadlist
case 'PREPARDAT':
return GetPortloadlist
case 'SERVICE':
return GetService
case 'AGENTID':
return DjyCustomerpage
case 'TRUCKER':
return DjyCustomerpage
case 'SHIPAGENCY':
return GetForwarderlist
}
}

@ -19,7 +19,7 @@
:filter-option="filterOption"
@change="debounce(handleSelectChange, 300, $event)"
>
<template v-if="['CARRIER', 'YARDID'].includes(labelData.label)">
<template v-if="['CARRIER', 'YARDID', 'ISSUETYPE', 'CARGOID'].includes(labelData.label)">
<a-select-option v-for="(sitem,sindex) in dataList" :key="sindex">
{{ sitem[labelData.showLabel2] }}/ {{ sitem[labelData.showLabel] }}
</a-select-option>

@ -84,13 +84,13 @@ export default {
{ field: 'route', label: 'ROUTE', width: 120, title: '航线操作', showHeaderOverflow: true, sortable: true },
// 以下未核实台账字段里是否有该字段
{ field: 'lanecode', label: 'LANECODE', width: 120, title: '航线代码', showHeaderOverflow: true, sortable: true },
{ field: 'shipperid', label: 'SHIPPERID', width: 120, title: '发货人代码', showHeaderOverflow: true, sortable: true },
{ field: 'notifypartyid', label: 'NOTIFYPARTYID', width: 120, title: '通知人代码', showHeaderOverflow: true, sortable: true },
{ field: 'notifypartY2', label: 'NOTIFYPARTY2', width: 120, title: '第二通知人', showHeaderOverflow: true, sortable: true },
{ field: 'consigneeid', label: 'CONSIGNEEID', width: 120, title: '收货人代码', showHeaderOverflow: true, sortable: true },
{ field: 'shipperid', label: 'SHIPPERID', width: 120, title: '发货人代码', showHeaderOverflow: true, sortable: true }, // 台账无字段
{ field: 'notifypartyid', label: 'NOTIFYPARTYID', width: 120, title: '通知人代码', showHeaderOverflow: true, sortable: true }, // 台账无字段
{ field: 'notifypartY2', label: 'NOTIFYPARTY2', width: 120, title: '第二通知人', showHeaderOverflow: true, sortable: true }, // 台账无,详情有
{ field: 'consigneeid', label: 'CONSIGNEEID', width: 120, title: '收货人代码', showHeaderOverflow: true, sortable: true }, // 台账无字段
{ field: 'closedocdate', label: 'CLOSEDOCDATE', width: 120, title: '截单日期', showHeaderOverflow: true, sortable: true },
{ field: 'bsdate', label: 'BSDATE', width: 120, title: '业务日期', showHeaderOverflow: true, sortable: true },
{ field: 'vesselid', label: 'VESSELID', width: 120, title: '船舶呼号', showHeaderOverflow: true, sortable: true },
{ field: 'bsdate', label: 'BSDATE', width: 120, title: '业务日期', showHeaderOverflow: true, sortable: true }, // 台账无字段
{ field: 'vesselid', label: 'VESSELID', width: 120, title: '船舶呼号', showHeaderOverflow: true, sortable: true }, // 台账无字段
{ field: 'closevgmdate', label: 'CLOSEVGMDATE', width: 120, title: '截VGM时间', showHeaderOverflow: true, sortable: true },
{ field: 'placereceipt', label: 'PLACERECEIPT', width: 120, title: '收货地', showHeaderOverflow: true, sortable: true },
{ field: 'placereceiptid', label: 'PLACERECEIPTID', width: 120, title: '收货地代码', showHeaderOverflow: true, sortable: true },
@ -148,6 +148,74 @@ export default {
{ title: '交货地代码', align: 'center', width: 120, label: 'PLACEDELIVERYID', type: 'input' },
{ title: '装货港代码', align: 'center', width: 120, label: 'PORTLOADID', type: 'input' },
{ title: '卸货港代码', align: 'center', width: 120, label: 'PORTDISCHARGEID', type: 'input' },
{ title: '航线操作', align: 'center', width: 120, label: 'ROUTE', type: 'complete', showLabel: 'name' }
{ title: '航线操作', align: 'center', width: 120, label: 'ROUTE', type: 'complete', showLabel: 'name' },
// 新增字段
{ title: '件数', align: 'center', width: 160, label: 'PKGS', type: 'input' },
{ title: '重量', align: 'center', width: 160, label: 'KGS', type: 'input' },
{ title: '尺码', align: 'center', width: 160, label: 'CBM', type: 'input' },
{ title: 'HS编码', align: 'center', width: 160, label: 'HSCODE', type: 'input' },
{ title: '航线', align: 'center', width: 160, label: 'LANENAME', type: 'input' },
{ title: '设置温度', align: 'center', width: 160, label: 'TEMPSET', type: 'input' },
{ title: '通风度', align: 'center', width: 160, label: 'REEFERF', type: 'input' },
{ title: '付款方', align: 'center', width: 160, label: 'FREIGHTPAYER', type: 'input' },
{ title: '唛头', align: 'center', width: 160, label: 'MARKS', type: 'input' },
{ title: '危险品编号', align: 'center', width: 160, label: 'DUNNO', type: 'input' },
// 东胜添加
{ title: '箱号', align: 'center', width: 160, label: 'CNTRNO', type: 'input' },
{ title: '封号', align: 'center', width: 160, label: 'SEALNO', type: 'input' },
{ title: '创建人', align: 'center', width: 160, label: 'CreatedUserName', type: 'input' },
// 以下需要加模糊搜索
{ title: '到付地点', align: 'center', width: 160, label: 'PAYABLEAT', type: 'complete', showLabel: 'enName' },
{ title: '付费方式', align: 'center', width: 160, label: 'BLFRT', type: 'complete', showLabel: 'enName' },
{ title: '签单地点', align: 'center', width: 160, label: 'ISSUEPLACE', type: 'complete', showLabel: 'enName' },
{ title: '预付地点', align: 'center', width: 160, label: 'PREPARDAT', type: 'complete', showLabel: 'enName' },
{ title: '运输条款', align: 'center', width: 160, label: 'SERVICE', type: 'complete', showLabel: 'name' },
{ title: '国外代理', align: 'center', width: 160, label: 'AGENTID', type: 'complete', showLabel: 'shortName' },
{ title: '车队', align: 'center', width: 160, label: 'TRUCKER', type: 'complete', showLabel: 'shortName' },
{ title: '船代', align: 'center', width: 160, label: 'SHIPAGENCY', type: 'complete', showLabel: 'name' },
// 以下为下拉加载
{ title: '箱型', align: 'center', width: 120, label: 'CNTRTOTAL', type: 'select', showLabel: 'name' },
{ title: '包装', align: 'center', width: 120, label: 'KINDPKGS', type: 'select', showLabel: 'name' },
{ title: '签单方式', align: 'center', width: 160, label: 'ISSUETYPE', type: 'select', showLabel: 'enName', showLabel2: 'cnName' },
{
title: '提单份数',
align: 'center',
width: 160,
label: 'NOBILL',
type: 'select',
showLabel: 'name',
data: [
{ name: 'ONE' },
{ name: 'TWO' },
{ name: 'THREE' },
{ name: 'FOUR' },
{ name: 'FIVE' },
{ name: 'SIX' },
{ name: 'SEVEN' },
{ name: 'EIGHT' },
{ name: 'NINE' },
{ name: 'TEN' }
]
},
{
title: '货物标识',
align: 'center',
width: 160,
label: 'CARGOID',
type: 'select',
showLabel: 'code',
showLabel2: 'name',
data: [
{ code: 'S', name: '普通货' },
{ code: 'R', name: '冻柜' },
{ code: 'D', name: '危险品' },
{ code: 'O', name: '超限箱' }
]
},
// 以下为日期区间
{ title: '签单日期', align: 'center', width: 160, label: 'ISSUEDATE', type: 'dateRange', resLabel: ['BISSUEDATE', 'EISSUEDATE'] }
]
}

Loading…
Cancel
Save