|
|
|
@ -109,10 +109,8 @@
|
|
|
|
|
</template>
|
|
|
|
|
<!-- 运踪 -->
|
|
|
|
|
<template v-if="column.dataIndex == 'bookStatus'">
|
|
|
|
|
<div @click="checkBookStatus(record.id)">
|
|
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
<span class="iconfont icon-refresh-1-copy"></span>
|
|
|
|
|
<span @click="checkBookStatus(record.id)" style="cursor: pointer; color: rgb(7, 231, 56);" class="iconfont icon-refresh-1-copy"></span>
|
|
|
|
|
<span v-for="(item, index) in record.bookingStatus" :key="item.id">
|
|
|
|
|
<a-tooltip placement="top" v-if="item.statusTime">
|
|
|
|
|
<template #title>{{ item.statusTime }}</template>
|
|
|
|
@ -126,6 +124,38 @@
|
|
|
|
|
</span>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<!-- 提箱返场 -->
|
|
|
|
|
<template v-if="column.dataIndex == 'statusLog'">
|
|
|
|
|
<div v-if="record.statusLog" class="txfc">
|
|
|
|
|
<div v-if="record.statusLog.length > 0">
|
|
|
|
|
<div class="billtrace-btn1 txfc" style="display: flex; align-items: center">
|
|
|
|
|
<i style="cursor: pointer; color: rgb(7, 231, 56); margin-right: 5px" @click="handleRefshYard(record.id)"
|
|
|
|
|
class="iconfont icon-refresh-1-copy"></i>
|
|
|
|
|
<a-popover trigger="click">
|
|
|
|
|
<template #content>
|
|
|
|
|
<div>
|
|
|
|
|
<span class="txfcSpan" style="width: 120px">箱号</span>
|
|
|
|
|
<span @click="handleGetWebData(record, 'YARD')" class="txfcSpan">提箱</span>
|
|
|
|
|
<span @click="handleGetWebData(record, 'YARD')" class="txfcSpan">返场</span>
|
|
|
|
|
</div>
|
|
|
|
|
<div v-for="(item, index) in record.statusLog" :key="index">
|
|
|
|
|
<span class="txfcSpan" style="width: 120px">{{ item.cntrno }}</span>
|
|
|
|
|
<span class="txfcSpan">{{ item.txOpTime }}</span>
|
|
|
|
|
<span class="txfcSpan">{{ item.fcOpTime }}</span>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<span @click="handleGetWebData(record, 'YARD')" :class="{ active: record.statusLog[0].txOpTime }">
|
|
|
|
|
提箱
|
|
|
|
|
</span>
|
|
|
|
|
<span @click="handleGetWebData(record, 'YARD')" :class="{ active: record.statusLog[0].fcOpTime }">
|
|
|
|
|
返场
|
|
|
|
|
</span>
|
|
|
|
|
</a-popover>
|
|
|
|
|
<span style="margin-left: 5px">未提:{{ record.txOpNumber }}/{{ record.statusLog.length }}</span>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<!-- 格式单比对 -->
|
|
|
|
|
<template v-if="column.dataIndex == 'lstDraftCompareRlt'">
|
|
|
|
|
<div class="goods-status">
|
|
|
|
@ -305,7 +335,7 @@ import { useMessage } from '/@/hooks/web/useMessage'
|
|
|
|
|
import { formatTableData } from '/@/hooks/web/common'
|
|
|
|
|
import { updateTableField } from '/@/hooks/component/costomForm'
|
|
|
|
|
const lstDraftCompareRlt = defineAsyncComponent(() => import("../../../components/lstDraftCompareRlt/index.vue"))
|
|
|
|
|
import { RefreshYGT } from './api/BookingLedger.js'
|
|
|
|
|
import { RefreshYGT,RefreshYard } from './api/BookingLedger.js'
|
|
|
|
|
import { useI18n } from '/@/hooks/web/useI18n'
|
|
|
|
|
const { t } = useI18n()
|
|
|
|
|
import { useAppStore } from '/@/store/modules/app'
|
|
|
|
@ -549,6 +579,26 @@ function handleGetWebDataYZ(row, code) {
|
|
|
|
|
setLoading(false)
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
function handleGetWebData(row, code) {
|
|
|
|
|
const data = {
|
|
|
|
|
bookingId: row.id,
|
|
|
|
|
webCode: code
|
|
|
|
|
}
|
|
|
|
|
webData.value = ''
|
|
|
|
|
webDataTitle.value = '场站数据'
|
|
|
|
|
setLoading(true)
|
|
|
|
|
GetWebData(data).then((res) => {
|
|
|
|
|
if (res.code === 200) {
|
|
|
|
|
webData.value = res.data
|
|
|
|
|
webDataFlag.value = true
|
|
|
|
|
} else {
|
|
|
|
|
createMessage.error(res.message)
|
|
|
|
|
}
|
|
|
|
|
setLoading(false)
|
|
|
|
|
}).catch(() => {
|
|
|
|
|
setLoading(false)
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
const bsloading = ref(false)
|
|
|
|
|
// 校验运踪状态
|
|
|
|
|
const checkBookStatus = (id) => {
|
|
|
|
@ -558,6 +608,13 @@ const checkBookStatus = (id) => {
|
|
|
|
|
reload()
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
const handleRefshYard = (id) => {
|
|
|
|
|
setLoading(true)
|
|
|
|
|
RefreshYard({ ids: [id], businessType: 1 }).then(res => {
|
|
|
|
|
reload()
|
|
|
|
|
setLoading(false)
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
const isAdvancedQuery = ref(false)
|
|
|
|
|
// const showColumns = ref({})
|
|
|
|
|
// const formAllData = ref([])
|
|
|
|
@ -659,30 +716,37 @@ onMounted(() => {
|
|
|
|
|
<style lang="less">
|
|
|
|
|
.ds-sea-export-table {
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
|
|
|
|
.TIJIAO {
|
|
|
|
|
color: #47AB00;
|
|
|
|
|
background: #F2FAE8;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.YSDAN {
|
|
|
|
|
color: #007D75;
|
|
|
|
|
background: #EDFAED;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.YFD {
|
|
|
|
|
color: #004445;
|
|
|
|
|
background: #EDFAED;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.YFC {
|
|
|
|
|
color: #257AFA;
|
|
|
|
|
background: #E6F5FF;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.YSDBC {
|
|
|
|
|
color: #8100D6;
|
|
|
|
|
background: #F8EDFF;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.YDC {
|
|
|
|
|
color: #2525BA;
|
|
|
|
|
background: #F3EDFF;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.ant-table-footer {
|
|
|
|
|
display: none;
|
|
|
|
|
}
|
|
|
|
@ -720,4 +784,21 @@ onMounted(() => {
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.billtrace-btn1 {
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
|
|
|
|
|
.active {
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
color: #ff9702 !important;
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.txfcSpan {
|
|
|
|
|
width: 140px;
|
|
|
|
|
color: black;
|
|
|
|
|
display: inline-block;
|
|
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|