修改问题

master
sunzehua 1 year ago
parent cc1932607f
commit 2bbfce71ad

@ -402,13 +402,57 @@
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> </a-row>
<a-row style="display: flex;" v-if="details.cargoid == 'D'"> <a-row style="display: flex;">
<div style="display: flex;flex-wrap: wrap;"> <div style="display: flex;flex-wrap: wrap;">
<div v-for="(item, index) in fileList" class="fileList" :key="index"> <div v-for="(item, index) in fileList" class="fileList" :key="index">
<span @click="handleDownFile(item)">{{ item.name }}</span> <span @click="handleDownFile(item)">{{ item.name }}</span>
</div> </div>
</div> </div>
</a-row> </a-row>
<a-row v-if="details.cargoid == 'O'">
<a-col :span="6">
<a-form-model-item
class="from-label"
label="长"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="dunno">
<div class="line-box">
{{ details.dunno }}
<span class="unit">CM</span>
</div>
</a-form-model-item>
</a-col>
<a-col :span="6">
<a-form-model-item
class="from-label"
label="宽"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="dclass">
<div class="line-box">
{{ details.dclass }}
<span class="unit">CM</span>
</div>
</a-form-model-item>
</a-col>
<a-col :span="6">
<a-form-model-item
class="from-label"
label="高"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
prop="linkman">
<div class="line-box">
{{ details.linkman }}
<span class="unit">CM</span>
</div>
</a-form-model-item>
</a-col>
</a-row>
</a-col> </a-col>
</a-row> </a-row>
</a-form-model> </a-form-model>

@ -1371,10 +1371,6 @@ export default {
const arr = this.searchData.MBLNO.split(/|,/) const arr = this.searchData.MBLNO.split(/|,/)
query.MBLNO = arr.toString() query.MBLNO = arr.toString()
} }
const firstFlag = JSON.parse(localStorage.getItem('pro__FIRSTFLAG')).value
if (firstFlag) {
query.firstFlag = true
}
if ((!queryParam.multisort || queryParam.multisort.length === 0) && this.tableOrderLabel && this.tableOrderType) { if ((!queryParam.multisort || queryParam.multisort.length === 0) && this.tableOrderLabel && this.tableOrderType) {
query.multisort = [{ query.multisort = [{
sortField: this.tableOrderLabel, sortField: this.tableOrderLabel,

@ -95,7 +95,8 @@
</a-popconfirm> </a-popconfirm>
<div class="nav"><i class="iconfont icon-shishijifei"></i>定时订舱</div> <div class="nav"><i class="iconfont icon-shishijifei"></i>定时订舱</div>
<div class="nav" @click="handleRefshYZ"> <div class="nav" @click="handleRefshYZ">
<a-spin :spinning="refshYZloading"><i class="iconfont icon-shishijifei"></i>刷新运踪</a-spin></div> <a-spin :spinning="refshYZloading"><i class="iconfont icon-shishijifei"></i>刷新运踪</a-spin>
</div>
<div class="nav"><i class="iconfont icon-xiaopiaodayin"></i>小票状态</div> <div class="nav"><i class="iconfont icon-xiaopiaodayin"></i>小票状态</div>
<div class="nav" @click="openTraceModel"><i class="iconfont icon-yunshu1"></i>运踪订阅</div> <div class="nav" @click="openTraceModel"><i class="iconfont icon-yunshu1"></i>运踪订阅</div>
<div class="nav"> <div class="nav">
@ -140,9 +141,9 @@
v-bind="gridOptions" v-bind="gridOptions"
row-class-name="line-box" row-class-name="line-box"
:height="tableHeight" :height="tableHeight"
:row-config="{isHover: true}" :row-config="{ isHover: true }"
:checkbox_config="{ checkField: 'checked'}" :checkbox_config="{ checkField: 'checked' }"
:checkbox-config="{highlight: true }" :checkbox-config="{ highlight: true }"
:scroll-x="{ gt: 10, oSize: 10, enabled: false }" :scroll-x="{ gt: 10, oSize: 10, enabled: false }"
:scroll-y="{ gt: 20, oSize: 20, enabled: true }" :scroll-y="{ gt: 20, oSize: 20, enabled: true }"
@page-change="handlePageChange" @page-change="handlePageChange"
@ -165,7 +166,7 @@
</template> </template>
<template #IsVGM="{ row }"> <template #IsVGM="{ row }">
<div v-if="row.isVGM" style="text-align: center;"> <div v-if="row.isVGM" style="text-align: center;">
<a-popover placement="topLeft" > <a-popover placement="topLeft">
<div slot="content">{{ row.isVGM }}</div> <div slot="content">{{ row.isVGM }}</div>
<i class="iconfont icon-chenggong flag-icon"></i> <i class="iconfont icon-chenggong flag-icon"></i>
</a-popover> </a-popover>
@ -173,7 +174,7 @@
</template> </template>
<template #IsZZFX="{ row }"> <template #IsZZFX="{ row }">
<div v-if="row.isZZFX" style="text-align: center;"> <div v-if="row.isZZFX" style="text-align: center;">
<a-popover placement="topLeft" > <a-popover placement="topLeft">
<div slot="content">{{ row.isZZFX }}</div> <div slot="content">{{ row.isZZFX }}</div>
<i class="iconfont icon-chenggong flag-icon"></i> <i class="iconfont icon-chenggong flag-icon"></i>
</a-popover> </a-popover>
@ -181,7 +182,7 @@
</template> </template>
<template #IsCanDan="{ row }"> <template #IsCanDan="{ row }">
<div v-if="row.isCanDan" style="text-align: center;"> <div v-if="row.isCanDan" style="text-align: center;">
<a-popover placement="topLeft" > <a-popover placement="topLeft">
<div slot="content">{{ row.isCanDan }}</div> <div slot="content">{{ row.isCanDan }}</div>
<i class="iconfont icon-chenggong flag-icon"></i> <i class="iconfont icon-chenggong flag-icon"></i>
</a-popover> </a-popover>
@ -209,10 +210,10 @@
<template #ygtETD="{ row }"> <template #ygtETD="{ row }">
<div class="etd" v-if="row.ygtETD">{{ row.ygtETD.substring(0, 10) }}</div> <div class="etd" v-if="row.ygtETD">{{ row.ygtETD.substring(0, 10) }}</div>
</template> </template>
<template #atd="{ row }"> <template #atd="{ row, rowIndex }">
<div class="atd" v-if="row.atd"> <div class="atd" v-if="row.atd">
<a-spin :spinning="row.atdLoading"> <a-spin :spinning="row.atdLoading">
<a-icon style="cursor: pointer;" @click="handleRefshAtd(row)" type="reload" /> <a-icon style="cursor: pointer;" @click="handleRefshAtd(row, rowIndex)" type="reload" />
{{ row.atd.substring(0, 10) }} {{ row.atd.substring(0, 10) }}
</a-spin> </a-spin>
</div> </div>
@ -237,18 +238,24 @@
<!-- <template #bookstatus="{ row }"> <!-- <template #bookstatus="{ row }">
<span class="book-btn" v-for="(btn,bindex) in row.bookstatus" :class="btn.staCode" :key="bindex"> {{ enmuBookingBtn(btn.staCode) }}<i>/</i></span> <span class="book-btn" v-for="(btn,bindex) in row.bookstatus" :class="btn.staCode" :key="bindex"> {{ enmuBookingBtn(btn.staCode) }}<i>/</i></span>
</template> --> </template> -->
<template #bookstatus="{ row, column }"> <template #bookstatus="{ row, column, rowIndex }">
<div style="display: flex;align-items: center;"> <div style="display: flex;align-items: center;">
<a-icon style="cursor: pointer;" @click="handleRefshYZOnce(row)" type="reload" /> <a-icon style="cursor: pointer;" @click="handleRefshYZOnce(row, rowIndex)" type="reload" />
<a-spin :spinning="row.refshYzitemLoad"> <a-spin :spinning="row.refshYzitemLoad">
<div class="billtrace-box" :class="column.resizeWidth > 240 ? 'normal-box' : 'flex-box'"> <div class="billtrace-box" :class="column.resizeWidth > 240 ? 'normal-box' : 'flex-box'">
<div class="billtrace-btn" v-for="(btn, bindex) in row.bookstatus" :class="btn.staCode" :key="bindex"> <div
class="billtrace-btn"
v-for="(btn, bindex) in row.bookstatus"
:class="btn.staCode"
: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 :class="{ active: btn.isChecked }">{{ enmuBookingBtn(btn.staCode) }}</span> <span :class="{ active: btn.isChecked }">{{ enmuBookingBtn(btn.staCode) }}</span>
</a-popover> </a-popover>
<span :class="{ active: btn.isChecked }" v-else>{{ enmuBookingBtn(btn.staCode) }}</span> <span :class="{ active: btn.isChecked }" v-else>{{ enmuBookingBtn(btn.staCode) }}</span>
<i class="iconfont icon-xiaoyoujiantou" :class="{ hide: bindex === row.bookstatus.length - 1 }"></i> <i
class="iconfont icon-xiaoyoujiantou"
:class="{ hide: bindex === row.bookstatus.length - 1 }"></i>
</div> </div>
</div> </div>
</a-spin> </a-spin>
@ -256,17 +263,16 @@
</template> </template>
<template #statuslogs="{ row, column }"> <template #statuslogs="{ row, column }">
<div v-if="row.statuslogs1"> <div v-if="row.statuslogs1">
<div <div v-if="row.statuslogs1.length > 0">
v-if="row.statuslogs1.length > 0"> <div class="billtrace-btn1">
<div class="billtrace-btn1" > <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 class="txfcSpan">提箱</span> <span class="txfcSpan">提箱</span>
<span class="txfcSpan">返场</span> <span 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>
@ -934,14 +940,43 @@ export default {
handler(nD, oD) { handler(nD, oD) {
if (nD.name === 'booking_ledger') { if (nD.name === 'booking_ledger') {
if (this.saveNeedNumber !== null) { if (this.saveNeedNumber !== null) {
PageDataByBooking({ id: this.saveNeedNumber }).then(res => {
let index = 0 let index = 0
const item = res.data.items[0]
this.gridOptions.data.forEach((ite, inde) => { this.gridOptions.data.forEach((ite, inde) => {
if (ite.id === this.saveNeedNumber) { if (ite.id === this.saveNeedNumber) {
index = inde index = inde
} }
}) })
this.getListByone(this.saveNeedNumber, index)
}
if (this.firstFlag && this.saveNeedNumber === null) {
this.getList(this.searchData)
}
}
}
}
},
created() {
this.createdInit()
},
mounted() {
this.onresize()
},
methods: {
...mapActions(['setBookingList', 'setBookingGridOptions']),
createdInit() {
this.showColumns = JSON.parse(JSON.stringify(initData.columns))
this.formAllData = JSON.parse(JSON.stringify(initData.condAllData))
this.fromTableAllData = JSON.parse(JSON.stringify(initData.columnsAllData))
this.tableHeight = document.body.clientHeight - 230
this.getConfigUser(true)
this.getCarrier()
},
bcClose() {
this.bcObj = {}
},
getListByone(listId, listIndex) {
PageDataByBooking({ id: listId }).then(res => {
const item = res.data.items[0]
const bookstatus = [ const bookstatus = [
{ staCode: 'sta_cangdan', isChecked: false }, { staCode: 'sta_cangdan', isChecked: false },
{ staCode: 'sta_haifang', isChecked: false }, { staCode: 'sta_haifang', isChecked: false },
@ -988,35 +1023,9 @@ export default {
} }
}) })
item.hasGoods = hasGoods item.hasGoods = hasGoods
this.$set(this.gridOptions.data, index, item) this.$set(this.gridOptions.data, listIndex, item)
this.$refs.xGrid.reloadData(this.gridOptions.data) this.$refs.xGrid.reloadData(this.gridOptions.data)
}) })
}
if (this.firstFlag && this.saveNeedNumber === null) {
this.getList(this.searchData)
}
}
}
}
},
created() {
this.createdInit()
},
mounted() {
this.onresize()
},
methods: {
...mapActions(['setBookingList', 'setBookingGridOptions']),
createdInit() {
this.showColumns = JSON.parse(JSON.stringify(initData.columns))
this.formAllData = JSON.parse(JSON.stringify(initData.condAllData))
this.fromTableAllData = JSON.parse(JSON.stringify(initData.columnsAllData))
this.tableHeight = document.body.clientHeight - 230
this.getConfigUser(true)
this.getCarrier()
},
bcClose() {
this.bcObj = {}
}, },
handleSubmitCopyMore(e) { handleSubmitCopyMore(e) {
e.preventDefault(); e.preventDefault();
@ -1036,7 +1045,6 @@ export default {
const pkIdArr = select.map((item, index) => { const pkIdArr = select.map((item, index) => {
return item.id return item.id
}) })
console.log(pkIdArr)
const formData = new FormData() const formData = new FormData()
formData.append('file', file) formData.append('file', file)
formData.append('bookingOrderId', pkIdArr[0]) formData.append('bookingOrderId', pkIdArr[0])
@ -1346,20 +1354,39 @@ export default {
}) })
} }
}, },
handleRefshYZOnce(row) { handleRefshYZOnce(row, rowIndex) {
const data = { const data = {
ids: row.id ids: row.id
} }
row.refshYzitemLoad = true row.refshYzitemLoad = true
this.$forceUpdate()
RefreshBillTrace(data).then(res => { RefreshBillTrace(data).then(res => {
if (res.success) { if (res.success) {
PageDataByBooking({ id: row.id }).then(ress => {
const item = ress.data.items[0]
row.refshYzitemLoad = false row.refshYzitemLoad = false
this.$forceUpdate() const bookstatus = [
{ staCode: 'sta_cangdan', isChecked: false },
{ staCode: 'sta_haifang', isChecked: false },
{ staCode: 'sta_zhuangzai', isChecked: false },
{ staCode: 'sta_mafang', isChecked: false },
{ staCode: 'sta_zhuangchuan', isChecked: false },
{ staCode: 'sta_atd', isChecked: false }
]
if (item.bookstatus.length > 0) {
bookstatus.map((book, bindex) => {
item.bookstatus.map((ite, index) => {
if (ite.staCode === book.staCode) {
bookstatus[bindex] = ite
bookstatus[bindex].isChecked = true
}
})
})
}
row.bookstatus = bookstatus
this.$message.success('操作成功') this.$message.success('操作成功')
})
} else { } else {
row.refshYzitemLoad = false row.refshYzitemLoad = false
this.$forceUpdate()
this.$message.error(res.message) this.$message.error(res.message)
} }
}) })
@ -1538,6 +1565,18 @@ export default {
if (item.label === 'ETA') { if (item.label === 'ETA') {
item.title = '目的港ETA' item.title = '目的港ETA'
} }
if (item.label === 'isVGM') {
item.title = 'VGM'
item.width = 60
}
if (item.label === 'IsZZFX') {
item.title = '装载'
item.width = 50
}
if (item.label === 'IsCanDan') {
item.title = '舱单'
item.width = 50
}
}) })
const nowTableArr = this.formTableData.map((item, index) => { const nowTableArr = this.formTableData.map((item, index) => {
if (item.field === 'operate') { if (item.field === 'operate') {
@ -1764,12 +1803,12 @@ export default {
this.init() this.init()
}) })
}, },
handleRefshAtd(row) { handleRefshAtd(row, index) {
row.atdLoading = true row.atdLoading = true
this.$forceUpdate()
refreshSailingDate({ id: row.id }).then(res => { refreshSailingDate({ id: row.id }).then(res => {
if (res.success) { if (res.success) {
row.atdLoading = false row.atdLoading = false
row.atd = res.data.atd
} else { } else {
this.$message.error(res.message) this.$message.error(res.message)
row.atdLoading = false row.atdLoading = false
@ -2409,16 +2448,24 @@ export default {
ExcuteShippingOrderCompareBatch(arr) ExcuteShippingOrderCompareBatch(arr)
.then((res) => { .then((res) => {
if (res.success) { if (res.success) {
this.spinning = false
if (!res.data.succ) { if (!res.data.succ) {
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.TaskShippingOrderCompareData = res.data.extra this.TaskShippingOrderCompareData = res.data.extra
this.TaskShippingOrderCompareData.total = res.data.total this.TaskShippingOrderCompareData.total = res.data.total
this.TaskShippingOrderCompareVisible = true this.TaskShippingOrderCompareVisible = true
PageDataByBooking({ id: data.id }).then(ress => {
const itme = ress.data.items[0]
this.spinning = false
data.lstShipOrderCompareRlt = itme.lstShipOrderCompareRlt
data.lstShipOrderCompareMode = itme.lstShipOrderCompareMode
data.lstShipOrderCompareDate = itme.lstShipOrderCompareDate
})
} else { } else {
this.$message.success(res.data.msg) this.$message.success(res.data.msg)
this.spinning = false
} }
} }
} else { } else {
@ -2909,6 +2956,7 @@ export default {
text-align: center; text-align: center;
justify-content: center; justify-content: center;
} }
.billtrace-btn { .billtrace-btn {
font-size: 12px; font-size: 12px;
height: 16px; height: 16px;
@ -2944,9 +2992,11 @@ export default {
opacity: 0; opacity: 0;
} }
} }
} }
.billtrace-btn1{
.billtrace-btn1 {
font-size: 12px; font-size: 12px;
.active { .active {
cursor: pointer; cursor: pointer;
// color: @primary-color; // color: @primary-color;
@ -3421,17 +3471,19 @@ export default {
justify-content: space-between; justify-content: space-between;
} }
} }
.txfcSpan{
.txfcSpan {
width: 140px; width: 140px;
display: inline-block; display: inline-block;
} }
.flag-icon{
.flag-icon {
color: #1d8aff; color: #1d8aff;
cursor: pointer; cursor: pointer;
font-size: 20px; font-size: 20px;
} }
/deep/ .vxe-table--render-default .vxe-body--row.row--checked{ /deep/ .vxe-table--render-default .vxe-body--row.row--checked {
background: #fff3e0 !important; background: #fff3e0 !important;
} }
</style> </style>

@ -470,24 +470,24 @@ export default {
{ {
field: 'isVGM', field: 'isVGM',
label: 'isVGM', label: 'isVGM',
width: 100, width: 60,
title: '提交VGM', title: 'VGM',
showHeaderOverflow: true, showHeaderOverflow: true,
slots: { default: 'IsVGM' } slots: { default: 'IsVGM' }
}, },
{ {
field: 'isCanDan', field: 'isCanDan',
label: 'IsCanDan', label: 'IsCanDan',
width: 80, width: 50,
title: '提单舱单', title: '舱单',
showHeaderOverflow: true, showHeaderOverflow: true,
slots: { default: 'IsCanDan' } slots: { default: 'IsCanDan' }
}, },
{ {
field: 'isZZFX', field: 'isZZFX',
label: 'IsZZFX', label: 'IsZZFX',
width: 80, width: 50,
title: '装载放行', title: '装载',
showHeaderOverflow: true, showHeaderOverflow: true,
slots: { default: 'IsZZFX' } slots: { default: 'IsZZFX' }
}, },

@ -148,8 +148,8 @@
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="6"> <a-col :span="6">
<a-form-item class="from-label" label="单证人员" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> <a-form-item class="from-label" label="单证人员" :labelCol="labelCol" :wrapperCol="wrapperCol" >
<a-select :showSearch="true" :filterOption="filterOption" v-decorator="['docid']" @focus="getUserList"> <a-select allowClear :showSearch="true" :filterOption="filterOption" v-decorator="['docid']" @focus="getUserList">
<a-select-option v-for="item in saleUserList" :key="item.id" :value="item.id"> <a-select-option v-for="item in saleUserList" :key="item.id" :value="item.id">
{{ item.name }} {{ item.name }}
</a-select-option> </a-select-option>
@ -157,9 +157,10 @@
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="6"> <a-col :span="6">
<a-form-item class="from-label" label="客服人员" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> <a-form-item class="from-label" label="客服人员" :labelCol="labelCol" :wrapperCol="wrapperCol" >
<a-select <a-select
:showSearch="true" :showSearch="true"
allowClear
:filterOption="filterOption" :filterOption="filterOption"
v-decorator="['custserviceid']" v-decorator="['custserviceid']"
@focus="getUserList" @focus="getUserList"

@ -321,8 +321,12 @@
@change="ChangeFactory" @change="ChangeFactory"
:default-active-first-option="false" :default-active-first-option="false"
:show-arrow="false" :show-arrow="false"
@search="getFactoryData"
@blur="getFactoryData"
:filter-option="filterOption" :filter-option="filterOption"
:not-found-content="null" :not-found-content="null"
:filterOption="filterOption"
allowClear
> >
<a-select-option v-for="item in inFactory" :key="item.id" :value="item.shortName"> <a-select-option v-for="item in inFactory" :key="item.id" :value="item.shortName">
{{ item.shortName }} {{ item.shortName }}
@ -1280,6 +1284,11 @@ export default {
this.truckIdData = res.data this.truckIdData = res.data
}) })
}, },
getFactoryData(name, type) {
DjyCustomerQuerytDjyCustomerInfo({ queryType: 'factory', queryItem: name }).then((res) => {
this.inFactory = res.data
})
},
filterOption(value, option) { filterOption(value, option) {
return option.componentOptions.children[0].text.indexOf(value) >= 0 return option.componentOptions.children[0].text.indexOf(value) >= 0
}, },

@ -143,7 +143,7 @@
</a-col> </a-col>
<a-col :span="6"> <a-col :span="6">
<a-form-item class="from-label" label="单证人员" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> <a-form-item class="from-label" label="单证人员" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
<a-select :showSearch="true" :filterOption="filterOption" v-decorator="['docid']" @focus="getUserList"> <a-select allowClear :showSearch="true" :filterOption="filterOption" v-decorator="['docid']" @focus="getUserList">
<a-select-option v-for="item in saleUserList" :key="item.id" :value="item.id"> <a-select-option v-for="item in saleUserList" :key="item.id" :value="item.id">
{{ item.name }} {{ item.name }}
</a-select-option> </a-select-option>
@ -154,6 +154,7 @@
<a-form-item class="from-label" label="客服人员" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> <a-form-item class="from-label" label="客服人员" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
<a-select <a-select
:showSearch="true" :showSearch="true"
allowClear
:filterOption="filterOption" :filterOption="filterOption"
v-decorator="['custserviceid']" v-decorator="['custserviceid']"
@focus="getUserList" @focus="getUserList"

Loading…
Cancel
Save