客户操作+格式单对比+提箱返场

master
sunzehua 7 months ago
parent 21c0e2e966
commit 46b0579529

12
.env

@ -1,8 +1,8 @@
NODE_ENV=production NODE_ENV=production
VUE_APP_PREVIEW=true VUE_APP_PREVIEW=true
VUE_APP_TYPE = 'customer' # VUE_APP_TYPE = 'customer'
# VUE_APP_TYPE = 'hechuan' # VUE_APP_TYPE = 'hechuan'
# VUE_APP_TYPE = 'yunyingduan' VUE_APP_TYPE = 'yunyingduan'
# VUE_APP_TYPE = 'gangjie' # VUE_APP_TYPE = 'gangjie'
# 打包部署的三个端 客户端customer 和川端hechuan 运营端djy # 打包部署的三个端 客户端customer 和川端hechuan 运营端djy
@ -19,16 +19,16 @@ VUE_APP_TYPE = 'customer'
# VUE_APP_SOCKET_BASE_URL=http://60.209.125.238:30813 # VUE_APP_SOCKET_BASE_URL=http://60.209.125.238:30813
# 运营端测试 # 运营端测试
# VUE_APP_API_BASE_URL=http://60.209.125.238:30814 VUE_APP_API_BASE_URL=http://60.209.125.238:30814
# VUE_APP_SOCKET_BASE_URL=http://60.209.125.238:30814 VUE_APP_SOCKET_BASE_URL=http://60.209.125.238:30814
# 港捷 # 港捷
# VUE_APP_API_BASE_URL=http://118.190.144.189:5001 # VUE_APP_API_BASE_URL=http://118.190.144.189:5001
# VUE_APP_SOCKET_BASE_URL=http://118.190.144.189:5001 # VUE_APP_SOCKET_BASE_URL=http://118.190.144.189:5001
# 客户端正式 # 客户端正式
VUE_APP_API_BASE_URL=http://118.190.144.189:6001 # VUE_APP_API_BASE_URL=http://118.190.144.189:6001
VUE_APP_SOCKET_BASE_URL=http://118.190.144.189:6001 # VUE_APP_SOCKET_BASE_URL=http://118.190.144.189:6001
# 运营端正式 # 运营端正式
# VUE_APP_API_BASE_URL=http://118.190.144.189:6002 # VUE_APP_API_BASE_URL=http://118.190.144.189:6002

@ -19,8 +19,8 @@ VUE_APP_TYPE = 'yunyingduan'
# VUE_APP_SOCKET_BASE_URL=http://60.209.125.238:30813 # VUE_APP_SOCKET_BASE_URL=http://60.209.125.238:30813
# 运营端测试 # 运营端测试
VUE_APP_API_BASE_URL=http://60.209.125.238:30814 # VUE_APP_API_BASE_URL=http://60.209.125.238:30814
VUE_APP_SOCKET_BASE_URL=http://60.209.125.238:30814 # VUE_APP_SOCKET_BASE_URL=http://60.209.125.238:30814
# VUE_APP_API_BASE_URL=http://192.168.0.80:7373/ # VUE_APP_API_BASE_URL=http://192.168.0.80:7373/
# VUE_APP_SOCKET_BASE_URL=http://192.168.0.80:7373/ # VUE_APP_SOCKET_BASE_URL=http://192.168.0.80:7373/
@ -30,8 +30,8 @@ VUE_APP_SOCKET_BASE_URL=http://60.209.125.238:30814
# VUE_APP_SOCKET_BASE_URL=http://118.190.144.189:5001 # VUE_APP_SOCKET_BASE_URL=http://118.190.144.189:5001
# 运营端正式 # 运营端正式
# VUE_APP_API_BASE_URL=http://118.190.144.189:6002 VUE_APP_API_BASE_URL=http://118.190.144.189:6002
# VUE_APP_SOCKET_BASE_URL=http://118.190.144.189:6002 VUE_APP_SOCKET_BASE_URL=http://118.190.144.189:6002
# 客户端正式 # 客户端正式
# VUE_APP_API_BASE_URL=http://118.190.144.189:6001 # VUE_APP_API_BASE_URL=http://118.190.144.189:6001

@ -956,6 +956,27 @@ export function RefreshBillTrace(parameter) {
}) })
} }
export function SetTxxpEndTime(parameter) {
return axios({
url: '/BookingOrder/SetTxxpEndTime',
method: 'post',
params: parameter
})
}
export function RefreshYGT(parameter) {
return axios({
url: '/BookingYunZong/RefreshYGT?' + parameter,
method: 'post'
})
}
export function RefreshYard(parameter) {
return axios({
url: '/BookingYunZong/RefreshYard?' + parameter,
method: 'post'
})
}
export function GetToDoBCList(parameter) { export function GetToDoBCList(parameter) {
return axios({ return axios({
url: '/TaskManageBC/GetToDoBCList', url: '/TaskManageBC/GetToDoBCList',
@ -1168,6 +1189,14 @@ export function GetDraftCompareResultInfo(parameter) {
}) })
} }
export function SaveDraftComparellanual(parameter) {
return axios({
url: '/TaskDraftCompare/SaveDraftCompareManual',
method: 'post',
data: parameter
})
}
export function GetShippingOrderCompareResult(parameter) { export function GetShippingOrderCompareResult(parameter) {
return axios({ return axios({
url: '/TaskShippingOrderCompare/GetShippingOrderCompareResult', url: '/TaskShippingOrderCompare/GetShippingOrderCompareResult',

@ -373,10 +373,10 @@
<a-button type="danger" @click="showFlag = false">取消</a-button> <a-button type="danger" @click="showFlag = false">取消</a-button>
</template> </template>
</a-modal> </a-modal>
<a-modal title="检索船期" :visible="visible" width="1200px" @cancel="visible = false"> <a-modal title="检索船期" :footer="null" :visible="visible" width="1200px" @cancel="visible = false">
<div style="display: flex;align-items: center;"> <div style="display: flex;align-items: center;">
<a-row style="width:90%"> <a-row style="width:95%">
<a-form-model :model="searchForm" :label-col="{ span: 7 }" :wrapper-col="{ span: 17 }"> <a-form-model :model="searchForm" :label-col="{ span: 6 }" :wrapper-col="{ span: 15 }">
<a-col :span="6"> <a-col :span="6">
<a-form-model-item label="始发地"> <a-form-model-item label="始发地">
{{ this.form.placeOfReceiptCityName }} {{ this.form.placeOfReceiptCityName }}
@ -387,19 +387,33 @@
{{ this.form.placeOfDeliveryCityName }} {{ this.form.placeOfDeliveryCityName }}
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="6"> <a-col :span="3">
<a-form-model-item label="箱型">
<a-select
show-search
v-model="searchForm.isoEquipmentCode"
:filter-option="filterOption"
size="small"
style="width: 100%">
<a-select-option v-for="(item, index) in ctnallList" :key="index" :value="item.code">
{{ item.name }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :span="4">
<a-form-model-item label="船名"> <a-form-model-item label="船名">
<a-input v-model="searchForm.vesselName" /> <a-input size="small" v-model="searchForm.vesselName" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="6"> <a-col :span="4">
<a-form-model-item label="航次号"> <a-form-model-item label="航次号">
<a-input v-model="searchForm.carrierDepartureVoyageNumber" /> <a-input size="small" v-model="searchForm.carrierDepartureVoyageNumber" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-form-model> </a-form-model>
</a-row> </a-row>
<a-button style="margin-left: 20px;" @click="handleOpenCQ" type="primary">检索</a-button> <a-button style="margin-left: 10px;" @click="handleOpenCQ" type="primary">检索</a-button>
</div> </div>
<a-spin :spinning="cqLoading"> <a-spin :spinning="cqLoading">
<div class="box" v-for="(item, index) in shipList" :key="index"> <div class="box" v-for="(item, index) in shipList" :key="index">
@ -497,6 +511,7 @@ import {
CheckWarningBatchCopy, maskCopy CheckWarningBatchCopy, maskCopy
} from '@/api/modular/main/BookingLedger' } from '@/api/modular/main/BookingLedger'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import moment from 'moment'
export default { export default {
data() { data() {
return { return {
@ -514,7 +529,9 @@ export default {
mskType: '', mskType: '',
mskNumber: '', mskNumber: '',
mskCopyId: '', mskCopyId: '',
searchForm: {}, searchForm: {
isoEquipmentCode: ''
},
formLoading: false, formLoading: false,
shipData: [], shipData: [],
contractnoList: [], contractnoList: [],
@ -614,6 +631,8 @@ export default {
importServiceMode: this.form.importServiceMode, importServiceMode: this.form.importServiceMode,
vesselOperatorCarrierCode: this.form.carrierCode, vesselOperatorCarrierCode: this.form.carrierCode,
startDate: this.form.earliestDepartureDate, startDate: this.form.earliestDepartureDate,
carrierCollectionOriginGeoID: this.form.carrierCollectionOriginGeoID,
carrierDeliveryDestinationGeoID: this.form.carrierDeliveryDestinationGeoID,
...this.searchForm ...this.searchForm
} }
SearchShipSailingSchedule(data).then(res => { SearchShipSailingSchedule(data).then(res => {
@ -639,15 +658,20 @@ export default {
this.mskCopyId = copyId this.mskCopyId = copyId
this.getContractnoList() this.getContractnoList()
this.shipData = [] this.shipData = []
//
if (!id) { if (!id) {
this.form = { this.form = {
ctns: [], ctns: [
{ ctnSufferWeight: 15000, ctnNum: 1, ctnCode: '22G1', ctnName: '20GP' },
{ ctnSufferWeight: 15000, ctnNum: 1, ctnCode: '45G11', ctnName: '40HC' }
],
isReefer: false, isReefer: false,
productCode: 'MaerskContract', productCode: 'MaerskContract',
carrierCode: 'MAEU', carrierCode: 'MAEU',
isBookingPartOwnPrice: true, isBookingPartOwnPrice: true,
importServiceMode: 'CY', importServiceMode: 'CY',
exportServiceMode: 'CY', exportServiceMode: 'CY',
earliestDepartureDate: moment().format('YYYY-MM-DD'),
cargoType: 'DRY', cargoType: 'DRY',
sender: 'BOOKAPI', sender: 'BOOKAPI',
commodityCodeType: 'MaerskCode' commodityCodeType: 'MaerskCode'
@ -739,6 +763,7 @@ export default {
handleSelectCQ(item) { handleSelectCQ(item) {
this.shipData = [] this.shipData = []
this.form.originDepartureDateTimeLocal = item.etd this.form.originDepartureDateTimeLocal = item.etd
this.form.isoEquipmentCode = this.searchForm.isoEquipmentCode
this.form.destinationArrivalDateTimeLocal = item.atd this.form.destinationArrivalDateTimeLocal = item.atd
this.form.placeOfReceiptUnLocCode = item.orignUNLocationCode this.form.placeOfReceiptUnLocCode = item.orignUNLocationCode
this.form.placeOfDeliveryUnLocCode = item.deliveryUNLocationCode this.form.placeOfDeliveryUnLocCode = item.deliveryUNLocationCode
@ -748,6 +773,19 @@ export default {
this.form.estSailingDays = item.days this.form.estSailingDays = item.days
this.form.transportMode = item.transportMode this.form.transportMode = item.transportMode
this.form.carrierProductId = item.carrierProductId this.form.carrierProductId = item.carrierProductId
const arr = []
if (this.form.ctns.length > 0) {
this.form.ctns.forEach(item => {
if (item.ctnCode === this.searchForm.isoEquipmentCode) {
arr.push(1)
}
})
} else {
this.form.ctns.push({ ctnCode: this.searchForm.isoEquipmentCode, ctnNum: 1, ctnSufferWeight: 0 })
}
if (arr.length === 0) {
this.form.ctns.push({ ctnCode: this.searchForm.isoEquipmentCode, ctnNum: 1, ctnSufferWeight: 0 })
}
this.shipData.push(item) this.shipData.push(item)
this.visible = false this.visible = false
this.$forceUpdate() this.$forceUpdate()
@ -782,6 +820,7 @@ export default {
}); });
}, },
handleSave() { handleSave() {
console.log(this.form);
this.$refs.form.validate(valid => { this.$refs.form.validate(valid => {
if (valid) { if (valid) {
this.form.carrierId = 'MSK' this.form.carrierId = 'MSK'
@ -858,6 +897,7 @@ export default {
this.portloadList.forEach(item => { this.portloadList.forEach(item => {
if (item.carrierGeoID === val) { if (item.carrierGeoID === val) {
this.form.placeOfReceiptCityName = item.cityName this.form.placeOfReceiptCityName = item.cityName
this.form.carrierCollectionOriginGeoID = item.carrierGeoID
this.form.placeOfReceiptCountryCode = item.countryCode this.form.placeOfReceiptCountryCode = item.countryCode
this.form.userPlaceOfReceiptUnLocCode = item.unLocationCode this.form.userPlaceOfReceiptUnLocCode = item.unLocationCode
this.form.userPlaceOfReceiptCityName = item.cityName this.form.userPlaceOfReceiptCityName = item.cityName
@ -872,6 +912,7 @@ export default {
if (item.carrierGeoID === val) { if (item.carrierGeoID === val) {
this.form.placeOfDeliveryCityName = item.cityName this.form.placeOfDeliveryCityName = item.cityName
this.form.placeOfDeliveryCountryCode = item.countryCode this.form.placeOfDeliveryCountryCode = item.countryCode
this.form.carrierDeliveryDestinationGeoID = item.carrierGeoID
this.form.userPlaceOfDeliveryUnLocCode = item.unLocationCode this.form.userPlaceOfDeliveryUnLocCode = item.unLocationCode
this.form.userPlaceOfDeliveryCityName = item.cityName this.form.userPlaceOfDeliveryCityName = item.cityName
this.form.userPlaceOfDeliveryCountryCode = item.countryCode this.form.userPlaceOfDeliveryCountryCode = item.countryCode

@ -492,7 +492,11 @@
</a-row> </a-row>
<a-row> <a-row>
其他信息 其他信息
<div>账号{{ details.extendData.Account }}&nbsp;&nbsp;&nbsp;密码{{ details.extendData.Password }}</div> <div>
账号{{ details.extendData.Account }}&nbsp;&nbsp;&nbsp;
密码{{ details.extendData.Password }}&nbsp;&nbsp;&nbsp;
邮箱{{ details.extendData.OpMail }}
</div>
</a-row> </a-row>
</a-form-model> </a-form-model>
</div> </div>

@ -519,21 +519,15 @@
<a-col :xs="12" :sm="12" :md="12" :lg="8" :xl="4"> <a-col :xs="12" :sm="12" :md="12" :lg="8" :xl="4">
<a-form-model-item <a-form-model-item
class="from-label" class="from-label"
label="航线操作" label="客户操作"
:labelCol="userLabelCol" :labelCol="userLabelCol"
:wrapperCol="userWrapperCol" :wrapperCol="userWrapperCol"
has-feedback has-feedback
prop="route"> prop="bookingUserName">
<selectView <inputView
type="route" type="bookingUserName"
:defaultVal="details.route" :parentVal="details.bookingUserName"
:disabled="BookingLockOrder['route'] && isLockBooking" @getInputChange="inputChange" />
searchApi="GetSysUserPage"
:searchQuery="{ name: '' }"
:showLabel="['name']"
:openSearch="true"
:isCopy="true"
@change="getSelectViewRes"></selectView>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :xs="12" :sm="12" :md="12" :lg="8" :xl="4"> <a-col :xs="12" :sm="12" :md="12" :lg="8" :xl="4">
@ -934,9 +928,10 @@ export default {
}, },
deep: true deep: true
}, },
'$route.query': { '$route': {
immediate: true, immediate: true,
handler(nD, oD) { handler(nD, oD) {
console.log(this.$route,111)
this.id = this.$route.query.id this.id = this.$route.query.id
if (this.$route.name === 'BookingDetail') { if (this.$route.name === 'BookingDetail') {
this.init() this.init()

@ -2362,7 +2362,7 @@ export default {
document.body.removeChild(cInput); document.body.removeChild(cInput);
}, },
editColumns(row) { editColumns(row) {
this.$router.push({ name: 'BookingDetail', query: { id: row.id, type: row.carrierid, mblno: row.mblno } }) this.$router.push({ name: 'BookingDetail', query: { id: row.id, type: row.carrierid, mblno: row.mblno ? row.mblno : '' } })
}, },
getList(queryParam = {}, isInit = false, isAdd = 'normal') { getList(queryParam = {}, isInit = false, isAdd = 'normal') {
this.$set(this.gridOptions, 'loading', true) this.$set(this.gridOptions, 'loading', true)

@ -4,10 +4,12 @@
<a-card :bordered="false" :bodyStyle="{ padding: '10px 20px' }"> <a-card :bordered="false" :bodyStyle="{ padding: '10px 20px' }">
<div class="from-line"> <div class="from-line">
<div class="left" v-if="!isLockBooking"> <div class="left" v-if="!isLockBooking">
<a-button class="btn btn-add" type="primary" @click="addboxLine"> <span style="margin-right: 5px;" <a-button class="btn btn-add" type="primary" @click="addboxLine"> <span
class="iconfont icon-zhizhishu"></span>添加</a-button> style="margin-right: 5px;"
class="iconfont icon-zhizhishu"></span>添加</a-button>
<a-button class="btn btn-delete" @click="removeLine" :style="{ marginRight: '20px' }"><span <a-button class="btn btn-delete" @click="removeLine" :style="{ marginRight: '20px' }"><span
style="margin-right: 5px;" class="iconfont icon-shanchu1"></span>删除</a-button> style="margin-right: 5px;"
class="iconfont icon-shanchu1"></span>删除</a-button>
<a-button class="btn btn-more-name" type="primary" @click="openDialog" :disabled="tableData.length === 0"> <a-button class="btn btn-more-name" type="primary" @click="openDialog" :disabled="tableData.length === 0">
<a-icon type="appstore" />多品名 <a-icon type="appstore" />多品名
</a-button> </a-button>
@ -23,15 +25,24 @@
<a-button class="btn btn-weight" type="primary" @click="arrowsWeight"> <a-button class="btn btn-weight" type="primary" @click="arrowsWeight">
<a-icon type="arrows-alt" />展开箱量 <a-icon type="arrows-alt" />展开箱量
</a-button> </a-button>
<a-button class="btn btn-add" type="primary" @click="handleRefsh"><span style="margin-right: 5px;" <a-button class="btn btn-add" type="primary" @click="handleRefsh"><span
class="iconfont icon-shuaxin"></span>刷新</a-button> style="margin-right: 5px;"
class="iconfont icon-shuaxin"></span>刷新</a-button>
</div> </div>
<div v-if="details.autoYardImport && !details.autoYardImport.isRead" <div
v-if="details.autoYardImport && !details.autoYardImport.isRead"
style="display: inline-block;margin-left: 10px;padding-top: 5px;"> style="display: inline-block;margin-left: 10px;padding-top: 5px;">
<a-icon v-if="details.autoYardImport && details.autoYardImport.status == ''" @click="handleOpen" <a-icon
type="check-circle" theme="filled" style="color: green;font-size: 19px;cursor: pointer;" /> v-if="details.autoYardImport && details.autoYardImport.status == '已导入'"
<a-icon v-if="details.autoYardImport && details.autoYardImport.status == ''" @click="handleOpen" @click="handleOpen"
type="exclamation-circle" theme="filled" type="check-circle"
theme="filled"
style="color: green;font-size: 19px;cursor: pointer;" />
<a-icon
v-if="details.autoYardImport && details.autoYardImport.status == '未导入'"
@click="handleOpen"
type="exclamation-circle"
theme="filled"
style="color: rgb(197, 194, 16);font-size: 19px;cursor: pointer;" /> style="color: rgb(197, 194, 16);font-size: 19px;cursor: pointer;" />
</div> </div>
<div class="table-right"> <div class="table-right">
@ -44,9 +55,18 @@
</div> </div>
<div v-if="tableLoaded"> <div v-if="tableLoaded">
<!-- rowKeyFieldName="rowKey" --> <!-- rowKeyFieldName="rowKey" -->
<ve-table :columns="columns" :table-data="tableData" borderY ref="tableRef" style="min-width: 970" <ve-table
:cell-autofill-option="cellAutofillOption" :editOption="editOption" :rowKeyFieldName="rowKeyName" :columns="columns"
:rowStyleOption="rowStyleOption" :checkbox-option="checkboxOption" :clipboard-option="clipboardOption" :table-data="tableData"
borderY
ref="tableRef"
style="min-width: 970"
:cell-autofill-option="cellAutofillOption"
:editOption="editOption"
:rowKeyFieldName="rowKeyName"
:rowStyleOption="rowStyleOption"
:checkbox-option="checkboxOption"
:clipboard-option="clipboardOption"
:cellSelectionOption="cellSelectionOption" /> :cellSelectionOption="cellSelectionOption" />
<div class="table-no-data" v-if="tableData.length === 0"></div> <div class="table-no-data" v-if="tableData.length === 0"></div>
</div> </div>
@ -54,10 +74,19 @@
</a-card> </a-card>
</a-spin> </a-spin>
<a-modal title="多品名维护" width="80%" :visible="moreVisible" :confirmLoading="moreModelconfirm" :maskClosable="false" <a-modal
title="多品名维护"
width="80%"
:visible="moreVisible"
:confirmLoading="moreModelconfirm"
:maskClosable="false"
@cancel="handleModelCancel"> @cancel="handleModelCancel">
<div class="model-content"> <div class="model-content">
<ve-table style="width: 100%" :columns="modelColumns" :table-data="tableData" :radio-option="radioOption" <ve-table
style="width: 100%"
:columns="modelColumns"
:table-data="tableData"
:radio-option="radioOption"
row-key-field-name="rowKey" /> row-key-field-name="rowKey" />
<div class="model-botton-box"> <div class="model-botton-box">
<a-button class="btn" type="primary" @click="addChildData"></a-button> <a-button class="btn" type="primary" @click="addChildData"></a-button>
@ -65,9 +94,15 @@
<a-button class="btn" type="primary" @click="saveChildData"></a-button> <a-button class="btn" type="primary" @click="saveChildData"></a-button>
</div> </div>
<div class="model-child-table"> <div class="model-child-table">
<ve-table :columns="childColumns" :table-data="childTableData" borderY <ve-table
:cell-autofill-option="cellAutofillOption" :editOption="editChildOption" rowKeyFieldName="rowKey" :columns="childColumns"
:rowStyleOption="rowStyleOption" :checkbox-option="checkChildboxOption" :table-data="childTableData"
borderY
:cell-autofill-option="cellAutofillOption"
:editOption="editChildOption"
rowKeyFieldName="rowKey"
:rowStyleOption="rowStyleOption"
:checkbox-option="checkChildboxOption"
:clipboard-option="clipboardChildOption" /> :clipboard-option="clipboardChildOption" />
<div class="table-no-data" v-if="childTableData.length === 0"></div> <div class="table-no-data" v-if="childTableData.length === 0"></div>
</div> </div>
@ -1910,15 +1945,17 @@ export default {
data.map((item, index) => { data.map((item, index) => {
const _data = { const _data = {
rowKey: lastNum + index, rowKey: lastNum + index,
weightype: '', weightype: ''
weighkgs: ''
} }
ctnSetArr.forEach(ite => { ctnSetArr.forEach(ite => {
if (ite.code !== 'KINDPKGS') { if (ite.code === 'KINDPKGS') {
_data[ite.intoName] = item[ite.code]
} else {
_data.kindpkgs = kindpkgsOld || item.KINDPKGS _data.kindpkgs = kindpkgsOld || item.KINDPKGS
} }
if (ite.code === 'WEIGHKGS') {
const setWeighkgs = this.calc(Number(item.KGS), Number(item.TAREWEIGHT), '+')
_data.weighkgs = setWeighkgs
}
_data[ite.intoName] = item[ite.code]
}) })
addTable.push(_data) addTable.push(_data)
}) })

@ -279,22 +279,25 @@
</a-popconfirm> </a-popconfirm>
</template> </template>
<template #bookstatus="{ row, column, rowIndex }"> <template #bookstatus="{ row, column, rowIndex }">
<div style="display: flex;align-items: center;"> <div style="display: flex; align-items: center">
<a-icon <a-icon
v-if="row.isBookingYZ != 0" v-if="row.isBookingYZ != 0"
style="cursor: pointer;color: rgb(7, 231, 56);" style="cursor: pointer; color: rgb(7, 231, 56)"
@click="handleRefshYZOnce(row, rowIndex)" @click="handleRefshYZOnce(row, rowIndex)"
type="reload" /> type="reload"
/>
<a-spin :spinning="row.refshYzitemLoad"> <a-spin :spinning="row.refshYzitemLoad">
<div <div
:style="row.isBookingYZ == 0 ? 'padding-left:14px' : ''" :style="row.isBookingYZ == 0 ? 'padding-left:14px' : ''"
class="billtrace-box" class="billtrace-box"
:class="column.resizeWidth > 240 ? 'normal-box' : 'flex-box'"> :class="column.resizeWidth > 240 ? 'normal-box' : 'flex-box'"
>
<div <div
class="billtrace-btn" class="billtrace-btn"
v-for="(btn, bindex) in row.bookstatus" v-for="(btn, bindex) in row.bookstatus"
:class="btn.staCode" :class="btn.staCode"
:key="bindex"> :key="bindex"
>
<a-popover placement="topLeft" v-if="btn.staTime"> <a-popover placement="topLeft" v-if="btn.staTime">
<div slot="content">{{ btn.staTime }}</div> <div slot="content">{{ btn.staTime }}</div>
<span @click="handleGetWebDataYZ(row, btn.staCode)" :class="{ active: btn.isChecked }">{{ <span @click="handleGetWebDataYZ(row, btn.staCode)" :class="{ active: btn.isChecked }">{{
@ -302,13 +305,16 @@
}}</span> }}</span>
</a-popover> </a-popover>
<span <span
style="cursor: pointer;" style="cursor: pointer"
@click="handleGetWebDataYZ(row, btn.staCode)" @click="handleGetWebDataYZ(row, btn.staCode)"
:class="{ active: btn.isChecked }" :class="{ active: btn.isChecked }"
v-else>{{ enmuBookingBtn(btn.staCode) }}</span> v-else
>{{ enmuBookingBtn(btn.staCode) }}</span
>
<i <i
class="iconfont icon-xiaoyoujiantou" class="iconfont icon-xiaoyoujiantou"
:class="{ hide: bindex === row.bookstatus.length - 1 }"></i> :class="{ hide: bindex === row.bookstatus.length - 1 }"
></i>
</div> </div>
</div> </div>
</a-spin> </a-spin>
@ -317,34 +323,41 @@
<template #statuslogs="{ row, column }"> <template #statuslogs="{ row, column }">
<div v-if="row.statuslogs1"> <div v-if="row.statuslogs1">
<div v-if="row.statuslogs1.length > 0"> <div v-if="row.statuslogs1.length > 0">
<div class="billtrace-btn1" style="display: flex;align-items: center;"> <div class="billtrace-btn1" style="display: flex; align-items: center">
<a-icon
style="cursor: pointer; color: rgb(7, 231, 56); margin-right: 5px"
@click="handleRefshYard(row)"
type="reload"
/>
<a-spin :spinning="row.webDataLoad"> <a-spin :spinning="row.webDataLoad">
<a-popover placement="topLeft"> <a-popover placement="topLeft">
<div slot="content"> <div slot="content">
<div> <div>
<span class="txfcSpan" style="width: 120px;">箱号</span> <span class="txfcSpan" style="width: 120px">箱号</span>
<span @click="handleGetWebData(row, 'YARD')" class="txfcSpan">提箱</span> <span @click="handleGetWebData(row, 'YARD')" class="txfcSpan">提箱</span>
<span @click="handleGetWebData(row, 'YARD')" class="txfcSpan">返场</span> <span @click="handleGetWebData(row, 'YARD')" class="txfcSpan">返场</span>
</div> </div>
<div v-for="(item, index) in row.statuslogs1" :key="index"> <div v-for="(item, index) in row.statuslogs1" :key="index">
<span class="txfcSpan" style="width: 120px;">{{ item.cntrno }}</span> <span class="txfcSpan" style="width: 120px">{{ item.cntrno }}</span>
<span class="txfcSpan">{{ item.txopTime }}</span> <span class="txfcSpan">{{ item.txopTime }}</span>
<span class="txfcSpan">{{ item.fcopTime }}</span> <span class="txfcSpan">{{ item.fcopTime }}</span>
</div> </div>
</div> </div>
<div <div
@click="handleGetWebData(row, 'YARD')" @click="handleGetWebData(row, 'YARD')"
:class="{ active: row.statuslogs1[0].txopTime }"> :class="{ active: row.statuslogs1[0].txopTime }"
>
提箱 提箱
</div> </div>
<div <div
@click="handleGetWebData(row, 'YARD')" @click="handleGetWebData(row, 'YARD')"
:class="{ active: row.statuslogs1[0].fcopTime }"> :class="{ active: row.statuslogs1[0].fcopTime }"
>
返场 返场
</div> </div>
</a-popover> </a-popover>
</a-spin> </a-spin>
<span style="margin-left: 10px;">未提{{ row.txopNumber }}/{{ row.statuslogs1.length }}</span> <span style="margin-left: 5px">未提{{ row.txopNumber }}/{{ row.statuslogs1.length }}</span>
</div> </div>
</div> </div>
</div> </div>
@ -360,13 +373,19 @@
</template> </template>
<template #txxp="{ row }"> <template #txxp="{ row }">
<div style="display: flex;align-items: center;"> <div style="display: flex;align-items: center;">
<span style="margin-right: 10px;cursor: pointer;color: #36cfc9;" class="iconfont icon-dayinxiaopiao" @click="TxxpLink(row)"></span> <span
<div v-if="row.extendState" style="display: flex;align-items: center;"> style="margin-right: 10px;cursor: pointer;color: #36cfc9;"
class="iconfont icon-dayinxiaopiao"
@click="TxxpLink(row)"></span>
<div style="display: flex;align-items: center;">
<div> <div>
<div>{{ row.extendState.txxpBeginTime.substring(0,16) }}</div> <div v-if="row.extendState && row.extendState.txxpEndTime">{{ row.extendState.txxpEndTime.substring(0, 16) }}</div>
<div>{{ row.extendState.txxpEndTime.substring(0,16) }}</div> <div> <a @click="openStop(row)" style="font-size: 12px;" href="javascript:;">修改到期时间</a></div>
</div> </div>
<div v-if="row.extendState.txxpPdfUrl" @click="handleLookPdf(row)" style="cursor: pointer;color: #36cfc9;margin-left:10px;"></div> <div
v-if="row.extendState && row.extendState.txxpPdfUrl"
@click="handleLookPdf(row)"
style="cursor: pointer;color: #36cfc9;margin-left:10px;">查看</div>
</div> </div>
</div> </div>
</template> </template>
@ -389,7 +408,7 @@
比对时间: <span>{{ row.lstShipOrderCompareDate }}</span> 比对时间: <span>{{ row.lstShipOrderCompareDate }}</span>
</p> </p>
</template> </template>
<div style="cursor: pointer;" @click="handleOpenResult(row)" v-if="row.lstShipOrderCompareRlt"> <div style="cursor: pointer" @click="handleOpenResult(row)" v-if="row.lstShipOrderCompareRlt">
<div v-if="row.lstShipOrderCompareRlt == 'DIFF'"> <div v-if="row.lstShipOrderCompareRlt == 'DIFF'">
<a-icon type="close-circle" :style="{ color: 'red' }" /> <a-icon type="close-circle" :style="{ color: 'red' }" />
</div> </div>
@ -417,7 +436,8 @@
<a-icon <a-icon
class="TablelstShipOrderCompareRltRedo" class="TablelstShipOrderCompareRltRedo"
@click="excuteShippingOrderCompareBatch(row)" @click="excuteShippingOrderCompareBatch(row)"
type="redo" /> type="redo"
/>
</div> </div>
</template> </template>
<template #lstDraftCompareRlt="{ row }"> <template #lstDraftCompareRlt="{ row }">
@ -442,7 +462,8 @@
title="查看比对结果" title="查看比对结果"
class="TablelstShipOrderCompareRltRedo" class="TablelstShipOrderCompareRltRedo"
@click="handleFormatContrast(row)" @click="handleFormatContrast(row)"
type="diff" /> type="diff"
/>
</div> </div>
</template> </template>
<template #goodsStatusList="{ row }"> <template #goodsStatusList="{ row }">
@ -607,16 +628,28 @@
:title="TaskShippingOrderCompareData.isExistsDiff ? '下货纸比对(有差异)' : '下货纸比对(正常)'" :title="TaskShippingOrderCompareData.isExistsDiff ? '下货纸比对(有差异)' : '下货纸比对(正常)'"
@cancel="TaskShippingOrderCompareHandleCancel" @cancel="TaskShippingOrderCompareHandleCancel"
:visible="TaskShippingOrderCompareVisible" :visible="TaskShippingOrderCompareVisible"
width="40%"> class="formatSheetModal"
width="40%"
>
<template slot="footer"> <template slot="footer">
<a-button key="back" @click="TaskShippingOrderCompareHandleCancel"> </a-button> <a-button key="back" @click="TaskShippingOrderCompareHandleCancel"> </a-button>
</template> </template>
<div
style="margin:10px 0;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;"
:title="TaskShippingOrderCompareData.manualFeedBackResult.operNote"
v-if="TaskShippingOrderCompareData.manualFeedBackResult">
{{ TaskShippingOrderCompareData.manualFeedBackResult.operTime }}
人工修正 {{ TaskShippingOrderCompareData.manualFeedBackResult.operUser }}
原因{{ TaskShippingOrderCompareData.manualFeedBackResult.reason }}
备注 {{ TaskShippingOrderCompareData.manualFeedBackResult.operNote }}
</div>
<p class="TaskShippingOrderCompareP"> <p class="TaskShippingOrderCompareP">
{{ TaskShippingOrderCompareData.compareTime }} {{ TaskShippingOrderCompareData.compareTime }}
<span v-if="TaskShippingOrderCompareData.isExistsDiff"> <span v-if="TaskShippingOrderCompareData.isExistsDiff">
比对异常 合计 比对异常 合计
<span class="TaskShippingOrderCompareSpan">{{ TaskShippingOrderCompareData.total }}</span> <span class="TaskShippingOrderCompareSpan">{{ TaskShippingOrderCompareData.total }}</span>
<a v-if="TaskShippingOrderCompareData.lstShipOrderCompareRlt === 'DIFF'" href="javascript:;" @click="openPersonal"></a>
</span> </span>
</p> </p>
<div class="TaskShippingOrderCompareMainBox"> <div class="TaskShippingOrderCompareMainBox">
@ -638,7 +671,8 @@
class="TaskShippingOrderCompareMainList" class="TaskShippingOrderCompareMainList"
v-for="(item, index) in TaskShippingOrderCompareData.showDetailList" v-for="(item, index) in TaskShippingOrderCompareData.showDetailList"
:key="index" :key="index"
v-show="item.pCode != 'ContaList'"> v-show="item.pCode != 'ContaList'"
>
<p>{{ item.fieldName }}:</p> <p>{{ item.fieldName }}:</p>
<p>{{ item.reqVal }}</p> <p>{{ item.reqVal }}</p>
<p v-if="item.msg"> <p v-if="item.msg">
@ -664,8 +698,10 @@
v-for="(item, index) in TaskShippingOrderCompareData.showDetailList" v-for="(item, index) in TaskShippingOrderCompareData.showDetailList"
:key="index" :key="index"
v-show="item.pCode == 'ContaList'" v-show="item.pCode == 'ContaList'"
:class="item.fieldName == '箱号' ? 'TaskShippingOrderCompareMainList BoxNo' : 'TaskShippingOrderCompareMainList' :class="
"> item.fieldName == '箱号' ? 'TaskShippingOrderCompareMainList BoxNo' : 'TaskShippingOrderCompareMainList'
"
>
<p>{{ item.fieldName }}:</p> <p>{{ item.fieldName }}:</p>
<p>{{ item.reqVal }}</p> <p>{{ item.reqVal }}</p>
<p v-if="item.msg"> <p v-if="item.msg">
@ -683,212 +719,261 @@
:title="formatSheet.isExistsDiff ? '格式单比对(有差异)' : '格式单比对(正常)'" :title="formatSheet.isExistsDiff ? '格式单比对(有差异)' : '格式单比对(正常)'"
@cancel="formatSheetVisible = false" @cancel="formatSheetVisible = false"
:visible="formatSheetVisible" :visible="formatSheetVisible"
width="90%"> class="formatSheetModal"
width="90%"
>
<template slot="footer"> <template slot="footer">
<a-button key="back" @click="formatSheetVisible = false"> 关闭 </a-button> <a-button key="back" @click="formatSheetVisible = false"> 关闭 </a-button>
</template> </template>
<div style="display: flex;"> <div>
<div style="width:55%"> <div style="margin:10px 0" v-if="formatSheet.manualFeedBackResult">
<div> {{ formatSheet.manualFeedBackResult.operTime }}
<div 人工修正 {{ formatSheet.manualFeedBackResult.operUser }}
v-if="formatSheet.total > 0" 原因{{ formatSheet.manualFeedBackResult.reason }}
style="display: flex;justify-content: space-between;" 备注 {{ formatSheet.manualFeedBackResult.operNote }}
class="TaskShippingOrderCompareP"> </div>
<div> <div style="display: flex">
{{ formatSheet.compareTime }} <div style="width: 55%">
<span v-if="formatSheet.isExistsDiff"> <div>
比对异常 合计 <div
<span class="TaskShippingOrderCompareSpan">{{ formatSheet.total }}</span> v-if="formatSheet.total > 0"
style="display: flex; justify-content: space-between"
</span> class="TaskShippingOrderCompareP"
</div> >
<div> <div>
显示全部 {{ formatSheet.compareTime }}
<a-switch :checked="formatFlag" @change="formatFlag = !formatFlag" /> <span v-if="formatSheet.isExistsDiff">
</div> 比对异常 合计
</div> <span class="TaskShippingOrderCompareSpan">{{ formatSheet.total }}</span>
<div style="display: flex;align-items: flex-start;" v-else>
<a-icon <a v-if="formatSheet.lstDraftCompareRlt === 'DIFF'" href="javascript:;" @click="openPersonal"></a>
style="color: rgb(82,196,26);font-size: 50px;margin-top: 5px;" </span>
type="check-circle"
theme="filled" />
<div style="margin-left: 20px;">
<div style="font-weight: bold;font-size: 22px;">格式单比对(正常)</div>
<div style="font-weight: bold;">提单号:{{ formatSheet.mBlNo }}</div>
<div style="font-weight: bold;">{{ formatSheet.compareTime }}</div>
</div>
<div style="margin:5px 0px 0px 40px">
显示全部
<a-switch :checked="formatFlag" @change="formatFlag = !formatFlag" />
</div>
</div>
<div
v-if="!formatFlag && formatSheet.total > 0"
class="TaskShippingOrderCompareMainBox"
style="height: 600px;">
<div class="TaskShippingOrderCompareMain">
<div class="TaskShippingOrderCompareMainHeader">
<div>
<p>提单号</p>
<div style="width: 100%;height: 1px;border-bottom: 1px dashed;margin: 5px 0;"></div>
<p>{{ formatSheet.mBlNo }}</p>
</div>
</div> </div>
<div <div>
v-for="(item, index) in formatSheet.showDetailList" 显示全部
:key="index" <a-switch :checked="formatFlag" @change="formatFlag = !formatFlag" />
style="display: flex;margin-top: 15px;"
v-show="item.pCode != 'ContaList' && item.isDiff">
<p style="padding-top: 4px;" v-if="item.msg">
<a-icon
style="color: rgb(194,5,5);font-size: 18px;margin-right: 35px;"
type="close-circle"
theme="filled" />
</p>
<p v-if="item.isDiff" style="width: 90px;margin-right: 20px;">{{ item.fieldName }}:</p>
<div v-if="item.isDiff" style="width:60%">
<div style="display: flex;">
<a-icon style="margin-top: 4px;margin-right: 5px;color: rgb(0,153,204);" type="right-circle" />
<span style="margin-right: 10px;font-weight: bold;width: 42px;flex-shrink:0;">本地</span>
<div style="margin-bottom: 15px;">{{ item.reqVal }}</div>
</div>
<div style="display: flex;">
<a-icon style="margin-top: 4px;margin-right: 5px;color: rgb(100,163,90);" type="right-circle" />
<span style="margin-right: 10px;font-weight: bold;width: 42px;flex-shrink:0;">格式单</span>
<div v-html="item.mergeHtml"></div>
</div>
</div>
</div> </div>
</div> </div>
<div class="TaskShippingOrderCompareMain"> <div style="display: flex; align-items: flex-start" v-else>
<div> <a-icon
<div> style="color: rgb(82, 196, 26); font-size: 50px; margin-top: 5px"
<p>箱信息</p> type="check-circle"
<div style="width: 100%;height: 1px;border-bottom: 1px dashed;margin: 5px 0;"></div> theme="filled"
</div> />
<div style="margin-left: 20px">
<div style="font-weight: bold; font-size: 22px">格式单比对(正常)</div>
<div style="font-weight: bold">提单号:{{ formatSheet.mBlNo }}</div>
<div style="font-weight: bold">{{ formatSheet.compareTime }}</div>
</div> </div>
<div <div style="margin: 5px 0px 0px 40px">
v-for="(item, index) in formatSheet.showDetailList" 显示全部
:key="index" <a-switch :checked="formatFlag" @change="formatFlag = !formatFlag" />
v-show="(item.pCode == 'ContaList' && item.isDiff) || item.fieldName == '箱号'" </div>
style="display: flex;margin-top: 15px;align-items: flex-start;"> </div>
<div v-if="item.fieldName == '箱号' && formatSheet.isShowCntall">:{{ item.primaryKey }}</div> <div
<p style="padding-top: 4px;" v-if="item.msg && item.isDiff && item.fieldName != '箱号'"> v-if="!formatFlag && formatSheet.total > 0"
<a-icon class="TaskShippingOrderCompareMainBox"
style="color: rgb(194,5,5);font-size: 18px;margin-right: 35px;" style="height: 600px"
type="close-circle" >
theme="filled" /> <div class="TaskShippingOrderCompareMain">
</p> <div class="TaskShippingOrderCompareMainHeader">
<p v-if="item.isDiff && item.fieldName != '箱号'" style="width: 90px;margin-right: 20px;">{{ <div>
item.fieldName }}:</p> <p>提单号</p>
<div v-if="item.isDiff && item.fieldName != '箱号'" style="width:60%"> <div style="width: 100%; height: 1px; border-bottom: 1px dashed; margin: 5px 0"></div>
<div style="display: flex;"> <p>{{ formatSheet.mBlNo }}</p>
<a-icon style="margin-top: 4px;margin-right: 5px;color: rgb(0,153,204);" type="right-circle" />
<span style="margin-right: 10px;font-weight: bold;width: 42px;flex-shrink:0;">本地</span>
<div style="margin-bottom: 15px;">{{ item.reqVal }}</div>
</div> </div>
<div style="display: flex;"> </div>
<a-icon style="margin-top: 4px;margin-right: 5px;color: rgb(100,163,90);" type="right-circle" /> <div
<span style="margin-right: 10px;font-weight: bold;width: 42px;flex-shrink:0;">格式单</span> v-for="(item, index) in formatSheet.showDetailList"
<div v-html="item.mergeHtml"></div> :key="index"
style="display: flex; margin-top: 15px"
v-show="item.pCode != 'ContaList' && item.isDiff"
>
<p style="padding-top: 4px" v-if="item.msg">
<a-icon
style="color: rgb(194, 5, 5); font-size: 18px; margin-right: 35px"
type="close-circle"
theme="filled"
/>
</p>
<p v-if="item.isDiff" style="width: 90px; margin-right: 20px">{{ item.fieldName }}:</p>
<div v-if="item.isDiff" style="width: 60%">
<div style="display: flex">
<a-icon
style="margin-top: 4px; margin-right: 5px; color: rgb(0, 153, 204)"
type="right-circle"
/>
<span style="margin-right: 10px; font-weight: bold; width: 42px; flex-shrink: 0">本地</span>
<div style="margin-bottom: 15px">{{ item.reqVal }}</div>
</div>
<div style="display: flex">
<a-icon
style="margin-top: 4px; margin-right: 5px; color: rgb(100, 163, 90)"
type="right-circle"
/>
<span style="margin-right: 10px; font-weight: bold; width: 42px; flex-shrink: 0">格式单</span>
<div v-html="item.mergeHtml"></div>
</div>
</div> </div>
</div> </div>
</div> </div>
</div> <div class="TaskShippingOrderCompareMain">
</div>
<div v-if="!formatFlag && formatSheet.total == 0"></div>
<div v-if="formatFlag" class="TaskShippingOrderCompareMainBox" style="height: 600px;">
<div class="TaskShippingOrderCompareMain">
<div class="TaskShippingOrderCompareMainHeader">
<div> <div>
<p>提单号</p> <div>
<div style="width: 100%;height: 1px;border-bottom: 1px dashed;margin: 5px 0;"></div> <p>箱信息</p>
<p>{{ formatSheet.mBlNo }}</p> <div style="width: 100%; height: 1px; border-bottom: 1px dashed; margin: 5px 0"></div>
</div>
</div>
<div
v-for="(item, index) in formatSheet.showDetailList"
:key="index"
style="display: flex;margin-top: 15px;"
v-show="item.pCode != 'ContaList'">
<p style="padding-top: 4px;" v-if="item.msg">
<a-icon
style="color: rgb(194,5,5);font-size: 18px;margin-right: 35px;"
type="close-circle"
theme="filled" />
</p>
<p style="padding-top: 4px;" v-else>
<a-icon
style="color: rgb(0,153,68);font-size: 18px;margin-right: 35px;"
type="check-circle"
theme="filled" />
</p>
<p style="width: 90px;margin-right: 20px;">{{ item.fieldName }}:</p>
<div style="width:60%">
<div style="display: flex;">
<a-icon style="margin-top: 4px;margin-right: 5px;color: rgb(0,153,204);" type="right-circle" />
<span style="margin-right: 10px;font-weight: bold;width: 42px;flex-shrink:0;">本地</span>
<div style="margin-bottom: 15px;">{{ item.reqVal }}</div>
</div> </div>
<div style="display: flex;"> </div>
<a-icon style="margin-top: 4px;margin-right: 5px;color: rgb(100,163,90);" type="right-circle" /> <div
<span style="margin-right: 10px;font-weight: bold;width: 42px;flex-shrink:0;">格式单</span> v-for="(item, index) in formatSheet.showDetailList"
<div v-if="item.isDiff" v-html="item.mergeHtml"></div> :key="index"
<div v-else v-html="item.targetVal"></div> v-show="(item.pCode == 'ContaList' && item.isDiff) || item.fieldName == '箱号'"
style="display: flex; margin-top: 15px; align-items: flex-start"
>
<div v-if="item.fieldName == '箱号' && formatSheet.isShowCntall">:{{ item.primaryKey }}</div>
<p style="padding-top: 4px" v-if="item.msg && item.isDiff && item.fieldName != '箱号'">
<a-icon
style="color: rgb(194, 5, 5); font-size: 18px; margin-right: 35px"
type="close-circle"
theme="filled"
/>
</p>
<p v-if="item.isDiff && item.fieldName != '箱号'" style="width: 90px; margin-right: 20px">
{{ item.fieldName }}:
</p>
<div v-if="item.isDiff && item.fieldName != '箱号'" style="width: 60%">
<div style="display: flex">
<a-icon
style="margin-top: 4px; margin-right: 5px; color: rgb(0, 153, 204)"
type="right-circle"
/>
<span style="margin-right: 10px; font-weight: bold; width: 42px; flex-shrink: 0">本地</span>
<div style="margin-bottom: 15px">{{ item.reqVal }}</div>
</div>
<div style="display: flex">
<a-icon
style="margin-top: 4px; margin-right: 5px; color: rgb(100, 163, 90)"
type="right-circle"
/>
<span style="margin-right: 10px; font-weight: bold; width: 42px; flex-shrink: 0">格式单</span>
<div v-html="item.mergeHtml"></div>
</div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="TaskShippingOrderCompareMain"> <div v-if="!formatFlag && formatSheet.total == 0"></div>
<div> <div v-if="formatFlag" class="TaskShippingOrderCompareMainBox" style="height: 600px">
<div> <div class="TaskShippingOrderCompareMain">
<p>箱信息</p> <div class="TaskShippingOrderCompareMainHeader">
<div style="width: 100%;height: 1px;border-bottom: 1px dashed;margin: 5px 0;"></div> <div>
<!-- <div>箱号:{{ formatSheet.primaryKey }}</div> --> <p>提单号</p>
<div style="width: 100%; height: 1px; border-bottom: 1px dashed; margin: 5px 0"></div>
<p>{{ formatSheet.mBlNo }}</p>
</div>
</div> </div>
</div> <div
<div v-for="(item, index) in formatSheet.showDetailList"
v-for="(item, index) in formatSheet.showDetailList" :key="index"
:key="index" style="display: flex; margin-top: 15px"
v-show="item.pCode == 'ContaList'" v-show="item.pCode != 'ContaList'"
style="display: flex;margin-top: 15px;align-items: flex-start;"> >
<div v-if="item.fieldName == '箱号'">:{{ item.primaryKey }}</div> <p style="padding-top: 4px" v-if="item.msg">
<div style="display: flex;align-items: flex-start;" v-else>
<p style="padding-top: 4px;" v-if="item.msg">
<a-icon <a-icon
style="color: rgb(194,5,5);font-size: 18px;margin-right: 35px;" style="color: rgb(194, 5, 5); font-size: 18px; margin-right: 35px"
type="close-circle" type="close-circle"
theme="filled" /> theme="filled"
/>
</p> </p>
<p style="padding-top: 4px;" v-else> <p style="padding-top: 4px" v-else>
<a-icon <a-icon
style="color: rgb(0,153,68);font-size: 18px;margin-right: 35px;" style="color: rgb(0, 153, 68); font-size: 18px; margin-right: 35px"
type="check-circle" type="check-circle"
theme="filled" /> theme="filled"
/>
</p> </p>
<p style="width: 90px;margin-right: 20px;flex-shrink:0">{{ item.fieldName }}:</p> <p style="width: 90px; margin-right: 20px">{{ item.fieldName }}:</p>
<div style="width:60%"> <div style="width: 60%">
<div style="display: flex;"> <div style="display: flex">
<a-icon style="margin-top: 4px;margin-right: 5px;color: rgb(0,153,204);" type="right-circle" /> <a-icon
<span style="margin-right: 10px;font-weight: bold;width: 42px;flex-shrink:0;">本地</span> style="margin-top: 4px; margin-right: 5px; color: rgb(0, 153, 204)"
<div style="margin-bottom: 15px;">{{ item.reqVal }}</div> type="right-circle"
/>
<span style="margin-right: 10px; font-weight: bold; width: 42px; flex-shrink: 0">本地</span>
<div style="margin-bottom: 15px">{{ item.reqVal }}</div>
</div> </div>
<div style="display: flex;"> <div style="display: flex">
<a-icon style="margin-top: 4px;margin-right: 5px;color: rgb(100,163,90);" type="right-circle" /> <a-icon
<span style="margin-right: 10px;font-weight: bold;width: 42px;flex-shrink:0;">格式单</span> style="margin-top: 4px; margin-right: 5px; color: rgb(100, 163, 90)"
type="right-circle"
/>
<span style="margin-right: 10px; font-weight: bold; width: 42px; flex-shrink: 0">格式单</span>
<div v-if="item.isDiff" v-html="item.mergeHtml"></div> <div v-if="item.isDiff" v-html="item.mergeHtml"></div>
<div v-else v-html="item.targetVal"></div> <div v-else v-html="item.targetVal"></div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="TaskShippingOrderCompareMain">
<div>
<div>
<p>箱信息</p>
<div style="width: 100%; height: 1px; border-bottom: 1px dashed; margin: 5px 0"></div>
<!-- <div>箱号:{{ formatSheet.primaryKey }}</div> -->
</div>
</div>
<div
v-for="(item, index) in formatSheet.showDetailList"
:key="index"
v-show="item.pCode == 'ContaList'"
style="display: flex; margin-top: 15px; align-items: flex-start"
>
<div v-if="item.fieldName == '箱号'">:{{ item.primaryKey }}</div>
<div style="display: flex; align-items: flex-start" v-else>
<p style="padding-top: 4px" v-if="item.msg">
<a-icon
style="color: rgb(194, 5, 5); font-size: 18px; margin-right: 35px"
type="close-circle"
theme="filled"
/>
</p>
<p style="padding-top: 4px" v-else>
<a-icon
style="color: rgb(0, 153, 68); font-size: 18px; margin-right: 35px"
type="check-circle"
theme="filled"
/>
</p>
<p style="width: 90px; margin-right: 20px; flex-shrink: 0">{{ item.fieldName }}:</p>
<div style="width: 60%">
<div style="display: flex">
<a-icon
style="margin-top: 4px; margin-right: 5px; color: rgb(0, 153, 204)"
type="right-circle"
/>
<span style="margin-right: 10px; font-weight: bold; width: 42px; flex-shrink: 0">本地</span>
<div style="margin-bottom: 15px">{{ item.reqVal }}</div>
</div>
<div style="display: flex">
<a-icon
style="margin-top: 4px; margin-right: 5px; color: rgb(100, 163, 90)"
type="right-circle"
/>
<span style="margin-right: 10px; font-weight: bold; width: 42px; flex-shrink: 0">格式单</span>
<div v-if="item.isDiff" v-html="item.mergeHtml"></div>
<div v-else v-html="item.targetVal"></div>
</div>
</div>
</div>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>
<a-spin class="padUrl" style="width: 100%; min-height: 600px" :spinning="pdfLoading">
<iframe style="width: 100%; height: 100%" :src="formatPdf" frameborder="0"></iframe>
</a-spin>
</div> </div>
<a-spin class="padUrl" style="width: 100%;min-height: 600px;" :spinning="pdfLoading">
<iframe style="width: 100%;height: 100%;" :src="formatPdf" frameborder="0"></iframe>
</a-spin>
</div> </div>
</a-modal> </a-modal>
<a-modal :maskClosable="false" :width="1700" :visible="addVisible" @ok="addSubmit" @cancel="addCancel"> <a-modal :maskClosable="false" :width="1700" :visible="addVisible" @ok="addSubmit" @cancel="addCancel">
@ -1241,6 +1326,34 @@
<a-modal title="提箱小票" width="900px" :visible="txxpUrlFlag" :footer="null" @cancel="txxpUrlFlag = false"> <a-modal title="提箱小票" width="900px" :visible="txxpUrlFlag" :footer="null" @cancel="txxpUrlFlag = false">
<iframe :src="txxpUrl" width="800" height="600" frameborder="0"></iframe> <iframe :src="txxpUrl" width="800" height="600" frameborder="0"></iframe>
</a-modal> </a-modal>
<a-modal title="修改到期时间" width="400px" @ok="handleStopTxxpTime" :visible="txxpEndFlag" @cancel="txxpEndFlag = false">
<a-spin :spinning="txxpEndLoad">
<a-date-picker
valueFormat="YYYY-MM-DD HH:mm:ss"
showTime
style="width: 100%;"
v-model="stopTxxpTime"
/>
</a-spin>
</a-modal>
<a-modal
:title="formatTitle"
width="900px"
:visible="personalFlag"
@ok="handleSubPer"
@cancel="personalFlag = false"
>
修正说明
<a-textarea v-model="personal.notes" :auto-size="{ minRows: 4, maxRows: 8 }" />
<div style="display: flex; align-items: center; margin-top: 20px">
原因
<div style="margin-left: 20px">
<a-checkbox v-model="personal.isOCRError"></a-checkbox>
<a-checkbox v-model="personal.isEditError"></a-checkbox>
<a-checkbox v-model="personal.isAgentError"></a-checkbox>
</div>
</div>
</a-modal>
<a-modal :title="webDataTitle" width="1400px" :visible="webDataFlag" :footer="null" @cancel="webDataFlag = false"> <a-modal :title="webDataTitle" width="1400px" :visible="webDataFlag" :footer="null" @cancel="webDataFlag = false">
<iframe frameborder="0" height="700px" style="width: 100%;" :srcdoc="webData"> <iframe frameborder="0" height="700px" style="width: 100%;" :srcdoc="webData">
<!-- <div v-html="webData" style="overflow: hidden;"></div> --> <!-- <div v-html="webData" style="overflow: hidden;"></div> -->
@ -1281,6 +1394,7 @@ import {
GetVessellist, GetVessellist,
SendTrace, SendTrace,
getVesselInfoService, getVesselInfoService,
SaveDraftComparellanual,
GetPortlist, GetPortlist,
GetPortloadlist, GetPortloadlist,
BookingOrderBachUpdate, BookingOrderBachUpdate,
@ -1316,7 +1430,10 @@ import {
BachUpdateShipagency, BachUpdateShipagency,
TxxpLink, TxxpLink,
DownloadOriginal, DownloadOriginal,
SubmitTelex SubmitTelex,
RefreshYard,
RefreshYGT,
SetTxxpEndTime
} from '@/api/modular/main/BookingLedger' } from '@/api/modular/main/BookingLedger'
import initData from '../../BookingLedger/list/modules/initData' import initData from '../../BookingLedger/list/modules/initData'
@ -1346,7 +1463,15 @@ export default {
return { return {
spinning: false, spinning: false,
isUpload: false, isUpload: false,
txxpEndLoad: false,
txxpEndFlag: false,
stopTxxpTime: '',
telxLoad: false, telxLoad: false,
personal: {},
personalFlag: false,
formatContRow: {},
formatType: '',
formatTitle: '',
fileLoading: false, fileLoading: false,
webDataTitle: '', webDataTitle: '',
serviceFlag: false, serviceFlag: false,
@ -2101,9 +2226,34 @@ export default {
}) })
} }
}, },
handleRefshYard(row) {
row.webDataLoad = true
RefreshYard('ids=' + row.id).then(res => {
if (res.success) {
PageDataByBooking({ id: row.id }).then(ress => {
const item = ress.data.items[0]
row.webDataLoad = false
row.statuslogs1 = item.statuslogs1
if (row.statuslogs1.length > 0) {
let num1 = row.statuslogs1.length
row.statuslogs1.forEach(item => {
if (item.txopTime) {
num1 -= 1
}
})
row.txopNumber = num1
}
this.$message.success('操作成功')
})
} else {
row.webDataLoad = false
this.$message.error(res.message)
}
})
},
handleRefshYZOnce(row, rowIndex) { handleRefshYZOnce(row, rowIndex) {
row.refshYzitemLoad = true row.refshYzitemLoad = true
RefreshBillTrace('ids=' + row.id).then(res => { RefreshYGT('ids=' + row.id).then(res => {
if (res.success) { if (res.success) {
PageDataByBooking({ id: row.id }).then(ress => { PageDataByBooking({ id: row.id }).then(ress => {
const item = ress.data.items[0] const item = ress.data.items[0]
@ -2167,6 +2317,35 @@ export default {
this.$refs.xGrid.sort(key, sort) this.$refs.xGrid.sort(key, sort)
} }
}, },
openStop(row) {
this.txxpEndFlag = true
this.stopRow = row
this.stopTxxpTime = ''
},
handleStopTxxpTime() {
const data = {
extId: this.stopRow.extendState ? this.stopRow.extendState.id : 0,
bookId: this.stopRow.id,
date: this.stopTxxpTime
}
this.txxpEndLoad = true
SetTxxpEndTime(data).then(res => {
if (res.success) {
this.$message.success('操作成功')
this.stopRow.extendState = {}
this.stopRow.extendState.txxpEndTime = this.stopTxxpTime
PageDataByBooking({ id: this.stopRow.id }).then(res => {
const item = res.data.items[0]
this.stopRow.extendState = item.extendState
this.$forceUpdate()
})
} else {
this.$message.error(res.message)
}
this.txxpEndFlag = false
this.txxpEndLoad = false
})
},
// - start // - start
getCarrier() { getCarrier() {
const Rdata = data => { const Rdata = data => {
@ -2303,14 +2482,19 @@ export default {
}, },
handleOpenResult(row) { handleOpenResult(row) {
this.spinning = true this.spinning = true
GetShippingOrderCompareResult({ bookingId: row.id }).then(res => { this.formatContRow = row
this.formatSheet = {}
GetShippingOrderCompareResult({ bookingId: row.id }).then((res) => {
if (res.success) { if (res.success) {
if (!res.data.succ) { if (!res.data.succ) {
this.spinning = false this.spinning = false
this.$message.success(res.data.msg) this.$message.success(res.data.msg)
} else { } else {
if (res.data.extra) { if (res.data.extra) {
this.formatType = 'SHIPORDER'
this.formatTitle = '下货纸比对-人工处理'
this.TaskShippingOrderCompareData = res.data.extra this.TaskShippingOrderCompareData = res.data.extra
this.TaskShippingOrderCompareData.lstShipOrderCompareRlt = row.lstShipOrderCompareRlt
this.TaskShippingOrderCompareData.total = res.data.total this.TaskShippingOrderCompareData.total = res.data.total
this.TaskShippingOrderCompareVisible = true this.TaskShippingOrderCompareVisible = true
this.spinning = false this.spinning = false
@ -2908,6 +3092,34 @@ export default {
console.log(err) console.log(err)
}) })
}, },
handleSubPer() {
const data = {
bookingId: this.formatSheet.origPKId || this.TaskShippingOrderCompareData.origPKId,
mblNo: this.formatSheet.mBlNo || this.TaskShippingOrderCompareData.mBlNo,
taskCompareId: this.formatSheet.taskCompareId || this.TaskShippingOrderCompareData.taskCompareId,
compareType: this.formatType,
compareTime: this.personal.compareTime,
isOCRError: this.personal.isOCRError ? 1 : 0,
isEditError: this.personal.isEditError ? 1 : 0,
isAgentError: this.personal.isAgentError ? 1 : 0,
notes: this.personal.notes
}
SaveDraftComparellanual(data).then(res => {
if (res.success) {
this.$message.success('操作成功')
this.formatSheetVisible = false
this.TaskShippingOrderCompareVisible = false
this.personalFlag = false
if (this.formatType === 'DRAFT') {
this.formatContRow.lstDraftCompareRlt = 'NO DIFF'
} else {
this.formatContRow.lstShipOrderCompareRlt = 'NO_DIFF'
}
} else {
this.$message.error(res.message)
}
})
},
handleOpenShip() { handleOpenShip() {
const select = this.$refs.xGrid.getCheckboxRecords() const select = this.$refs.xGrid.getCheckboxRecords()
const pkIdArr = select.map((item, index) => { const pkIdArr = select.map((item, index) => {
@ -2955,6 +3167,10 @@ export default {
addBooking() { addBooking() {
this.addVisible = !this.addVisible this.addVisible = !this.addVisible
}, },
openPersonal() {
this.personalFlag = true
this.personal = {}
},
copyBooking() { copyBooking() {
const select = this.$refs.xGrid.getCheckboxRecords() const select = this.$refs.xGrid.getCheckboxRecords()
const pkIdArr = select.map((item, index) => { const pkIdArr = select.map((item, index) => {
@ -3076,8 +3292,12 @@ export default {
}, },
handleFormatContrast(row) { handleFormatContrast(row) {
this.spinning = true this.spinning = true
this.formatContRow = row
this.formatType = 'DRAFT'
this.formatTitle = '格式单比对-人工处理'
this.pdfUrl = '' this.pdfUrl = ''
GetDraftCompareResultInfo({ bookingid: row.id }).then(res => { this.TaskShippingOrderCompareData = {}
GetDraftCompareResultInfo({ bookingid: row.id }).then((res) => {
if (res.success) { if (res.success) {
if (!res.data.succ) { if (!res.data.succ) {
this.spinning = false this.spinning = false
@ -3085,10 +3305,11 @@ export default {
} else { } else {
if (res.data.extra) { if (res.data.extra) {
this.formatSheet = res.data.extra this.formatSheet = res.data.extra
this.formatSheet.lstDraftCompareRlt = row.lstDraftCompareRlt
this.formatSheet.total = res.data.total this.formatSheet.total = res.data.total
this.formatSheetVisible = true this.formatSheetVisible = true
const arr = [] const arr = []
this.formatSheet.showDetailList.forEach(item => { this.formatSheet.showDetailList.forEach((item) => {
if (item.pCode === 'ContaList' && item.isDiff) { if (item.pCode === 'ContaList' && item.isDiff) {
arr.push(1) arr.push(1)
} }
@ -3104,7 +3325,7 @@ export default {
this.spinning = false this.spinning = false
if (res.data.extra3) { if (res.data.extra3) {
this.pdfLoading = true this.pdfLoading = true
BookingOrderDownload({ id: res.data.extra3 }).then(res => { BookingOrderDownload({ id: res.data.extra3 }).then((res) => {
this.pdfUrl = window.URL.createObjectURL(new Blob([res], { type: 'application/pdf;charset=utf-8' })) this.pdfUrl = window.URL.createObjectURL(new Blob([res], { type: 'application/pdf;charset=utf-8' }))
this.formatPdf = this.pdfUrl this.formatPdf = this.pdfUrl
this.pdfLoading = false this.pdfLoading = false

@ -938,9 +938,11 @@ export default {
immediate: true, immediate: true,
handler(nD, oD) { handler(nD, oD) {
this.id = this.$route.query.id this.id = this.$route.query.id
if (this.$route.name === 'BookingDetail') { if (process.env.VUE_APP_TYPE === 'hechuan') {
if (this.$route.name === 'BookingDetail') {
this.init() this.init()
} }
}
} }
} }
}, },

File diff suppressed because it is too large Load Diff

@ -1037,3 +1037,7 @@
padding: 20px; padding: 20px;
z-index: 999; z-index: 999;
} }
.formatSheetModal /deep/ .ant-modal-body{
padding-top: 0px !important;
}

@ -729,7 +729,7 @@ export default {
}, },
deep: true deep: true
}, },
'$route.query': { '$route': {
immediate: true, immediate: true,
handler(nD, oD) { handler(nD, oD) {
this.id = this.$route.query.id this.id = this.$route.query.id

@ -2189,7 +2189,7 @@ export default {
document.body.removeChild(cInput); document.body.removeChild(cInput);
}, },
editColumns(row) { editColumns(row) {
this.$router.push({ name: 'BookingDetail', query: { id: row.id, type: row.carrierid, mblno: row.mblno } }) this.$router.push({ name: 'BookingDetail', query: { id: row.id, type: row.carrierid, mblno: row.mblno ? row.mblno : '' } })
}, },
getList(queryParam = {}, isInit = false, isAdd = 'normal') { getList(queryParam = {}, isInit = false, isAdd = 'normal') {
this.$set(this.gridOptions, 'loading', true) this.$set(this.gridOptions, 'loading', true)

@ -99,7 +99,7 @@ export default {
code: record.code, code: record.code,
enName: record.enName, enName: record.enName,
cnName: record.cnName, cnName: record.cnName,
// ediCode: record.ediCode, ediCode: record.ediCode,
description: record.description, description: record.description,
remark: record.remark remark: record.remark
}) })

@ -181,7 +181,7 @@
<vxe-toolbar> <vxe-toolbar>
<template #buttons> <template #buttons>
<vxe-button @click="insertEvent(-1)"></vxe-button> <vxe-button @click="insertEvent(-1)"></vxe-button>
<vxe-button @click="$refs.xTable.removeCheckboxRow()"></vxe-button> <vxe-button @click="handleDelete"></vxe-button>
<vxe-button icon="vxe-icon-save" @click="saveEvent"></vxe-button> <vxe-button icon="vxe-icon-save" @click="saveEvent"></vxe-button>
</template> </template>
</vxe-toolbar> </vxe-toolbar>
@ -198,7 +198,7 @@
<vxe-column type="checkbox" width="60"></vxe-column> <vxe-column type="checkbox" width="60"></vxe-column>
<vxe-column field="Ffield" title="对象名" :edit-render="{}"> <vxe-column field="Ffield" title="对象名" :edit-render="{}">
<template #edit="{ row }"> <template #edit="{ row }">
<vxe-select v-model="row.Ffield" style="width: 100%" placeholder="请选择对象名"> <vxe-select @change="roleChangeEvent($event, row)" v-model="row.Ffield" style="width: 100%" placeholder="请选择对象名">
<vxe-option <vxe-option
v-for="(item, index) in fieldList" v-for="(item, index) in fieldList"
:key="index" :key="index"
@ -343,7 +343,7 @@ export default {
focusEvent1(row) { focusEvent1(row) {
this.visible1 = false this.visible1 = false
this.fieldData = [] this.fieldData = []
let fieldData = [] const fieldData = []
Object.keys(this.data1).forEach(ele => { Object.keys(this.data1).forEach(ele => {
this.fieldList.forEach(e => { this.fieldList.forEach(e => {
if (e.name == row.Ffield) { if (e.name == row.Ffield) {
@ -379,7 +379,8 @@ export default {
saveEvent() { saveEvent() {
const $table = this.$refs.xTable const $table = this.$refs.xTable
const { insertRecords, removeRecords, updateRecords } = $table.getRecordset() const { insertRecords, removeRecords, updateRecords } = $table.getRecordset()
let tableData = [] const tableData = []
const arr = []
this.tableData.forEach(item => { this.tableData.forEach(item => {
this.fieldList.forEach(item2 => { this.fieldList.forEach(item2 => {
if (item.Ffield == item2.name) { if (item.Ffield == item2.name) {
@ -389,8 +390,15 @@ export default {
}) })
} }
}) })
if (!item.fieldName) {
arr.push(1)
}
}) })
let children = [...tableData, ...insertRecords] if (arr.length > 0) {
this.$message.warning('请选择字段名称')
return false
}
const children = [...tableData, ...insertRecords]
if (removeRecords.length) { if (removeRecords.length) {
children.forEach((item, index) => { children.forEach((item, index) => {
removeRecords.forEach(ele => { removeRecords.forEach(ele => {
@ -409,6 +417,7 @@ export default {
}) })
}) })
} }
console.log(children, this.fieldList)
BookingTemplateAddOrUpdateExcelTemplate({ BookingTemplateAddOrUpdateExcelTemplate({
pid: this.ExcelPid, pid: this.ExcelPid,
children children
@ -478,7 +487,7 @@ export default {
}, },
columnChange(data) { columnChange(data) {
this.ColumnsQuery = [...data] this.ColumnsQuery = [...data]
let Data = [] const Data = []
data.forEach(item => { data.forEach(item => {
if (item.checked) { if (item.checked) {
Data.push(item.dataIndex) Data.push(item.dataIndex)
@ -491,13 +500,27 @@ export default {
console.log(res) console.log(res)
}) })
}, },
handleDelete() {
const selectRecords = this.$refs.xTable.getCheckboxRecords()
for (let i = 0; i < selectRecords.length; i++) {
const delIndex = this.tableData.indexOf(selectRecords[i])
if (delIndex != -1) {
this.tableData.splice(delIndex, 1)
i--;
}
}
},
roleChangeEvent(row, row1) {
console.log(row, row1)
row1.fieldName = ''
},
columnChange1(data) { columnChange1(data) {
this.TableType = true this.TableType = true
this.TableColumns = data this.TableColumns = data
this.$nextTick(() => { this.$nextTick(() => {
this.TableType = false this.TableType = false
}) })
let Data = [] const Data = []
data.forEach(item => { data.forEach(item => {
if (item.checked) { if (item.checked) {
Data.push(item.dataIndex) Data.push(item.dataIndex)
@ -557,7 +580,7 @@ export default {
columns.forEach(item => { columns.forEach(item => {
item.checked = false item.checked = false
}) })
let Arr = [] const Arr = []
JSON.parse(res.data.configJson).forEach(item => { JSON.parse(res.data.configJson).forEach(item => {
columns.forEach(item2 => { columns.forEach(item2 => {
if (item2.dataIndex == item) { if (item2.dataIndex == item) {
@ -590,7 +613,7 @@ export default {
columns.forEach(item => { columns.forEach(item => {
this.ColumnsQuery.push({ ...item, checked: false }) this.ColumnsQuery.push({ ...item, checked: false })
}) })
let Arr = [] const Arr = []
JSON.parse(res.data.configJson).forEach(item => { JSON.parse(res.data.configJson).forEach(item => {
this.ColumnsQuery.forEach(item2 => { this.ColumnsQuery.forEach(item2 => {
if (item == item2.dataIndex) { if (item == item2.dataIndex) {
@ -622,7 +645,7 @@ export default {
}, },
FnGetData() { FnGetData() {
this.loading = true this.loading = true
let Data = {} const Data = {}
BookingPrintTemplatePage({ ...this.queryParam, ...Data }).then(res => { BookingPrintTemplatePage({ ...this.queryParam, ...Data }).then(res => {
this.loadData = res.data.rows this.loadData = res.data.rows
this.loading = false this.loading = false

@ -11,7 +11,8 @@
{ "name": "货重", "code": "KGS","intoName": "kgs","type":"ctn","checked":false }, { "name": "货重", "code": "KGS","intoName": "kgs","type":"ctn","checked":false },
{ "name": "尺码", "code": "CBM","intoName": "cbm","type":"ctn","checked":false }, { "name": "尺码", "code": "CBM","intoName": "cbm","type":"ctn","checked":false },
{ "name": "皮重", "code": "TAREWEIGHT","intoName": "tareweight","type":"ctn","checked":false }, { "name": "皮重", "code": "TAREWEIGHT","intoName": "tareweight","type":"ctn","checked":false },
{ "name": "称重日期", "code": "WEIGHDATE","intoName": "weighdate","type":"ctn","checked":false } { "name": "称重日期", "code": "WEIGHDATE","intoName": "weighdate","type":"ctn","checked":false },
{ "name": "称重重量", "code": "WEIGHKGS","intoName": "WEIGHKGS","type":"ctn","checked":false }
] ]
}, },
{ {

@ -30,6 +30,18 @@
<a-input size="small" placeholder="请输入模板名称" v-model="queryParam.TemplateName" /> <a-input size="small" placeholder="请输入模板名称" v-model="queryParam.TemplateName" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :md="6" :sm="24">
<a-form-item label="合约号">
<a-input size="small" placeholder="请输入合约号" v-model="queryParam.ContractNO" />
</a-form-item>
</a-col>
</a-row>
<a-row>
<a-col :md="6" :sm="24">
<a-form-item label="订舱账号">
<a-input size="small" placeholder="请输入订舱账号" v-model="queryParam.BookingAccount" />
</a-form-item>
</a-col>
</a-row> </a-row>
</a-col> </a-col>
<a-col :md="4" :sm="24"> <a-col :md="4" :sm="24">
@ -146,6 +158,16 @@ export default {
align: 'center', align: 'center',
field: 'templateName' field: 'templateName'
}, },
{
title: '合约号',
align: 'center',
field: 'contractNO'
},
{
title: '订舱编号',
align: 'center',
field: 'bookingAccount'
},
{ {
title: '是否启用', title: '是否启用',
align: 'center', align: 'center',
@ -195,6 +217,16 @@ export default {
align: 'center', align: 'center',
field: 'templateName' field: 'templateName'
}, },
{
title: '合约号',
align: 'center',
field: 'contractNO'
},
{
title: '订舱编号',
align: 'center',
field: 'bookingAccount'
},
{ {
title: '是否启用', title: '是否启用',
align: 'center', align: 'center',

Loading…
Cancel
Save