|
|
@ -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,63 +940,13 @@ 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
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})
|
|
|
|
})
|
|
|
|
const bookstatus = [
|
|
|
|
this.getListByone(this.saveNeedNumber, index)
|
|
|
|
{ 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
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (item.bsstatusname) {
|
|
|
|
|
|
|
|
const arr = JSON.parse(localStorage.getItem('pro__DICT_TYPE_TREE_DATA'))
|
|
|
|
|
|
|
|
if (arr) {
|
|
|
|
|
|
|
|
let arrColor = ''
|
|
|
|
|
|
|
|
arr.value.forEach(ite => {
|
|
|
|
|
|
|
|
if (ite.code == 'booking_goods_status') {
|
|
|
|
|
|
|
|
arrColor = ite
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
if (arrColor) {
|
|
|
|
|
|
|
|
arrColor.children.forEach(ite => {
|
|
|
|
|
|
|
|
if (ite.name == item.bsstatusname) {
|
|
|
|
|
|
|
|
item.bsstatusnameColor = ite.remark
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
item.bookstatus = bookstatus
|
|
|
|
|
|
|
|
item.refshYzitemLoad = false
|
|
|
|
|
|
|
|
item.atdLoading = false
|
|
|
|
|
|
|
|
let hasGoods = 0
|
|
|
|
|
|
|
|
item.goodsStatusList.map((gitem, gindex) => {
|
|
|
|
|
|
|
|
if (gitem.finishTime || gitem.remark) {
|
|
|
|
|
|
|
|
hasGoods++
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
item.hasGoods = hasGoods
|
|
|
|
|
|
|
|
this.$set(this.gridOptions.data, index, item)
|
|
|
|
|
|
|
|
this.$refs.xGrid.reloadData(this.gridOptions.data)
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (this.firstFlag && this.saveNeedNumber === null) {
|
|
|
|
if (this.firstFlag && this.saveNeedNumber === null) {
|
|
|
|
this.getList(this.searchData)
|
|
|
|
this.getList(this.searchData)
|
|
|
@ -1018,6 +974,59 @@ export default {
|
|
|
|
bcClose() {
|
|
|
|
bcClose() {
|
|
|
|
this.bcObj = {}
|
|
|
|
this.bcObj = {}
|
|
|
|
},
|
|
|
|
},
|
|
|
|
|
|
|
|
getListByone(listId, listIndex) {
|
|
|
|
|
|
|
|
PageDataByBooking({ id: listId }).then(res => {
|
|
|
|
|
|
|
|
const item = res.data.items[0]
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (item.bsstatusname) {
|
|
|
|
|
|
|
|
const arr = JSON.parse(localStorage.getItem('pro__DICT_TYPE_TREE_DATA'))
|
|
|
|
|
|
|
|
if (arr) {
|
|
|
|
|
|
|
|
let arrColor = ''
|
|
|
|
|
|
|
|
arr.value.forEach(ite => {
|
|
|
|
|
|
|
|
if (ite.code == 'booking_goods_status') {
|
|
|
|
|
|
|
|
arrColor = ite
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
if (arrColor) {
|
|
|
|
|
|
|
|
arrColor.children.forEach(ite => {
|
|
|
|
|
|
|
|
if (ite.name == item.bsstatusname) {
|
|
|
|
|
|
|
|
item.bsstatusnameColor = ite.remark
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
item.bookstatus = bookstatus
|
|
|
|
|
|
|
|
item.refshYzitemLoad = false
|
|
|
|
|
|
|
|
item.atdLoading = false
|
|
|
|
|
|
|
|
let hasGoods = 0
|
|
|
|
|
|
|
|
item.goodsStatusList.map((gitem, gindex) => {
|
|
|
|
|
|
|
|
if (gitem.finishTime || gitem.remark) {
|
|
|
|
|
|
|
|
hasGoods++
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
item.hasGoods = hasGoods
|
|
|
|
|
|
|
|
this.$set(this.gridOptions.data, listIndex, item)
|
|
|
|
|
|
|
|
this.$refs.xGrid.reloadData(this.gridOptions.data)
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
},
|
|
|
|
handleSubmitCopyMore(e) {
|
|
|
|
handleSubmitCopyMore(e) {
|
|
|
|
e.preventDefault();
|
|
|
|
e.preventDefault();
|
|
|
|
this.copyMoreForm.validateFields((err, values) => {
|
|
|
|
this.copyMoreForm.validateFields((err, values) => {
|
|
|
@ -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,23 +1354,42 @@ 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 {
|
|
|
|
})
|
|
|
|
row.refshYzitemLoad = false
|
|
|
|
} else {
|
|
|
|
this.$forceUpdate()
|
|
|
|
row.refshYzitemLoad = false
|
|
|
|
this.$message.error(res.message)
|
|
|
|
this.$message.error(res.message)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})
|
|
|
|
})
|
|
|
|
},
|
|
|
|
},
|
|
|
|
setSort(item) {
|
|
|
|
setSort(item) {
|
|
|
|
if (Array.isArray(JSON.parse(item.configJson))) {
|
|
|
|
if (Array.isArray(JSON.parse(item.configJson))) {
|
|
|
@ -1374,13 +1401,13 @@ export default {
|
|
|
|
this.tableOrderType = sort ? 'desc' : 'asc'
|
|
|
|
this.tableOrderType = sort ? 'desc' : 'asc'
|
|
|
|
const newArr = []
|
|
|
|
const newArr = []
|
|
|
|
this.sortLabelList.forEach(item => {
|
|
|
|
this.sortLabelList.forEach(item => {
|
|
|
|
newArr.push({
|
|
|
|
newArr.push({
|
|
|
|
sortField: item.sortField,
|
|
|
|
sortField: item.sortField,
|
|
|
|
descSort: item.descSort
|
|
|
|
descSort: item.descSort
|
|
|
|
|
|
|
|
})
|
|
|
|
})
|
|
|
|
})
|
|
|
|
})
|
|
|
|
this.searchData.multisort = newArr
|
|
|
|
this.searchData.multisort = newArr
|
|
|
|
this.$refs.xGrid.sort(key, sort)
|
|
|
|
this.$refs.xGrid.sort(key, sort)
|
|
|
|
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
this.tableOrderLabel = ''
|
|
|
|
this.tableOrderLabel = ''
|
|
|
|
this.tableOrderType = ''
|
|
|
|
this.tableOrderType = ''
|
|
|
@ -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
|
|
|
@ -1873,8 +1912,8 @@ export default {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if ((!this.searchData.multisort || this.searchData.multisort.length === 0) &&
|
|
|
|
if ((!this.searchData.multisort || this.searchData.multisort.length === 0) &&
|
|
|
|
(!queryParam.multisort || queryParam.multisort.length === 0) &&
|
|
|
|
(!queryParam.multisort || queryParam.multisort.length === 0) &&
|
|
|
|
this.tableOrderLabel && this.tableOrderType) {
|
|
|
|
this.tableOrderLabel && this.tableOrderType) {
|
|
|
|
query.multisort = [{
|
|
|
|
query.multisort = [{
|
|
|
|
sortField: this.tableOrderLabel,
|
|
|
|
sortField: this.tableOrderLabel,
|
|
|
|
descSort: this.tableOrderType === 'desc'
|
|
|
|
descSort: this.tableOrderType === 'desc'
|
|
|
@ -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,51 +2956,54 @@ 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;
|
|
|
|
width: 30%;
|
|
|
|
width: 30%;
|
|
|
|
display: flex;
|
|
|
|
display: flex;
|
|
|
|
|
|
|
|
|
|
|
|
span {
|
|
|
|
span {
|
|
|
|
flex: 1;
|
|
|
|
flex: 1;
|
|
|
|
text-align: right;
|
|
|
|
text-align: right;
|
|
|
|
color: #999;
|
|
|
|
color: #999;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
i {
|
|
|
|
i {
|
|
|
|
font-size: 12px;
|
|
|
|
font-size: 12px;
|
|
|
|
color: #ccc;
|
|
|
|
color: #ccc;
|
|
|
|
flex: 1;
|
|
|
|
flex: 1;
|
|
|
|
text-align: center;
|
|
|
|
text-align: center;
|
|
|
|
|
|
|
|
|
|
|
|
&.hide {
|
|
|
|
&.hide {
|
|
|
|
opacity: 0;
|
|
|
|
opacity: 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.active {
|
|
|
|
.active {
|
|
|
|
cursor: pointer;
|
|
|
|
cursor: pointer;
|
|
|
|
// color: @primary-color;
|
|
|
|
// color: @primary-color;
|
|
|
|
color: #ff9702;
|
|
|
|
color: #ff9702;
|
|
|
|
font-weight: bold;
|
|
|
|
font-weight: bold;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
&:nth-of-type(3) {
|
|
|
|
&:nth-of-type(3) {
|
|
|
|
i {
|
|
|
|
i {
|
|
|
|
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;
|
|
|
|
color: #ff9702 !important;
|
|
|
|
color: #ff9702 !important;
|
|
|
|
font-weight: bold;
|
|
|
|
font-weight: bold;
|
|
|
|
font-size: 12px;
|
|
|
|
font-size: 12px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/deep/ .ant-form-item {
|
|
|
|
/deep/ .ant-form-item {
|
|
|
@ -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>
|
|
|
|