|
|
|
@ -5,10 +5,7 @@
|
|
|
|
|
<div>
|
|
|
|
|
<TableActionBar :selectRow="getSelectRows" :reload="reload">
|
|
|
|
|
<tableActionBarRight :selectRow="getSelectRows" :reload="reload"></tableActionBarRight>
|
|
|
|
|
<Divider
|
|
|
|
|
type="vertical"
|
|
|
|
|
style="margin-top: 11px; background-color: #CED5D9;"
|
|
|
|
|
/>
|
|
|
|
|
<Divider type="vertical" style="margin-top: 11px; background-color: #CED5D9;" />
|
|
|
|
|
</TableActionBar>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
@ -103,20 +100,20 @@
|
|
|
|
|
<!-- 运踪 -->
|
|
|
|
|
<template v-if="column.dataIndex == 'bookStatus'">
|
|
|
|
|
<div @click="checkBookStatus(record.id)">
|
|
|
|
|
<div v-if="record.bookingStatus && record.bookingStatus.length">
|
|
|
|
|
<span class="iconfont icon-refresh-1-copy"></span>
|
|
|
|
|
<span v-for="(item, index) in record.bookingStatus" :key="item.id">
|
|
|
|
|
<a-tooltip placement="top">
|
|
|
|
|
<template #title>
|
|
|
|
|
<span>{{ item.statusTime }}</span>
|
|
|
|
|
</template>
|
|
|
|
|
<span>{{ item.statusName }}<span v-if="index != record.bookingStatus?.length - 1">-</span></span>
|
|
|
|
|
</a-tooltip>
|
|
|
|
|
</span>
|
|
|
|
|
</div>
|
|
|
|
|
<div v-else style="cursor: pointer;">
|
|
|
|
|
<span class="iconfont icon-refresh-1-copy"></span> 舱单-海放-装载-码放-装船-离港
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
<span 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>
|
|
|
|
|
<span @click="handleGetWebDataYZ(record, item.statusCode)" :class="{ yzActive: item.isChecked }">
|
|
|
|
|
{{ item.statusName }}
|
|
|
|
|
</span>
|
|
|
|
|
</a-tooltip>
|
|
|
|
|
<span style="cursor: pointer" @click="handleGetWebDataYZ(record, record.statusCode)"
|
|
|
|
|
:class="{ active: item.isChecked }" v-else>{{ item.statusName }}</span>
|
|
|
|
|
<span v-if="index != record.bookingStatus?.length - 1">-</span>
|
|
|
|
|
</span>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<!-- 格式单比对 -->
|
|
|
|
@ -137,14 +134,14 @@
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</a-popover>
|
|
|
|
|
<i v-if="record.lstDraftCompareRlt" title="查看比对结果" style="margin-left: 10px" @click="handleFormatContrast(record)"
|
|
|
|
|
class="icon-shiyongwendang iconfont compareIcon"></i>
|
|
|
|
|
<i v-if="record.lstDraftCompareRlt" title="查看比对结果" style="margin-left: 10px"
|
|
|
|
|
@click="handleFormatContrast(record)" class="icon-shiyongwendang iconfont compareIcon"></i>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<!-- 下货纸比对 -->
|
|
|
|
|
<template v-if="column.dataIndex == 'lstShipOrderCompareRlt'">
|
|
|
|
|
<div class="goods-status">
|
|
|
|
|
<RedoOutlined style="margin-left: 10px" @click="excuteShippingOrderCompareBatch(record)"/>
|
|
|
|
|
<RedoOutlined style="margin-left: 10px" @click="excuteShippingOrderCompareBatch(record)" />
|
|
|
|
|
<a-popover>
|
|
|
|
|
<template #content>
|
|
|
|
|
<p>
|
|
|
|
@ -164,7 +161,7 @@
|
|
|
|
|
</template>
|
|
|
|
|
<div style="cursor: pointer" @click="handleOpenResult(record)">
|
|
|
|
|
<div v-if="record.lstShipOrderCompareRlt == 'DIFF'">
|
|
|
|
|
<CloseCircleFilled :style="{ color: 'red' }" />
|
|
|
|
|
<CloseCircleFilled :style="{ color: 'red' }" />
|
|
|
|
|
</div>
|
|
|
|
|
<div v-if="record.lstShipOrderCompareRlt == 'NO_DIFF'">
|
|
|
|
|
<CheckCircleFilled :style="{ color: '#54bc25' }" />
|
|
|
|
@ -173,13 +170,13 @@
|
|
|
|
|
<CheckCircleFilled :style="{ color: 'rgb(187,37,155)' }" />
|
|
|
|
|
</div>
|
|
|
|
|
<div v-if="record.lstShipOrderCompareRlt == 'BEFORE_DIFF'">
|
|
|
|
|
<CloseCircleFilled :style="{ color: 'red' }" />
|
|
|
|
|
<CloseCircleFilled :style="{ color: 'red' }" />
|
|
|
|
|
</div>
|
|
|
|
|
<div v-if="record.lstShipOrderCompareRlt == 'NO_DIFF_U'">
|
|
|
|
|
<CheckCircleFilled :style="{ color: '#54bc25' }" />
|
|
|
|
|
</div>
|
|
|
|
|
<div v-if="record.lstShipOrderCompareRlt == 'DIFF_U'">
|
|
|
|
|
<CloseCircleFilled :style="{ color: 'red' }" />
|
|
|
|
|
<CloseCircleFilled :style="{ color: 'red' }" />
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</a-popover>
|
|
|
|
@ -279,7 +276,8 @@
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</a-modal>
|
|
|
|
|
<lstDraftCompareRlt @setLoad="setLoadCompare" @handleSuccess="compareSuccess" ref="lstDraftCompareRltRef"></lstDraftCompareRlt>
|
|
|
|
|
<lstDraftCompareRlt @setLoad="setLoadCompare" @handleSuccess="compareSuccess" ref="lstDraftCompareRltRef">
|
|
|
|
|
</lstDraftCompareRlt>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<script lang="ts" setup name="订单管理">
|
|
|
|
@ -288,7 +286,7 @@ const TableActionBar = defineAsyncComponent(() => import("./components/tableActi
|
|
|
|
|
import { CheckCircleFilled, CloseCircleFilled, RedoOutlined } from '@ant-design/icons-vue'
|
|
|
|
|
const tableActionBarRight = defineAsyncComponent(() => import("./components/tableActionBarRight.vue"))
|
|
|
|
|
import { BasicTable, useTable, TableAction } from '/@/components/Table'
|
|
|
|
|
import { PageDataByBooking, SeaExportCopy } from './api/BookingLedger.js'
|
|
|
|
|
import { PageDataByBooking, SeaExportCopy, GetWebData } from './api/BookingLedger.js'
|
|
|
|
|
import { Divider } from 'ant-design-vue'
|
|
|
|
|
import { useModal } from '/@/components/Modal'
|
|
|
|
|
import { columns, searchFormSchema } from './columns'
|
|
|
|
@ -411,6 +409,25 @@ const [registerTable, { reload, getForm, setLoading, getSelectRows }] = useTable
|
|
|
|
|
item.issueDate = formatTableData(item.issueDate)
|
|
|
|
|
item.customDate = formatTableData(item.customDate)
|
|
|
|
|
item.inspectionDate = formatTableData(item.inspectionDate)
|
|
|
|
|
const bookstatus = [
|
|
|
|
|
{ statusCode: 'status_cangdan', isChecked: false, statusName: '舱单' },
|
|
|
|
|
{ statusCode: 'status_haifang', isChecked: false, statusName: '海放' },
|
|
|
|
|
{ statusCode: 'status_zhuangzai', isChecked: false, statusName: '装载' },
|
|
|
|
|
{ statusCode: 'status_mafang', isChecked: false, statusName: '码放' },
|
|
|
|
|
{ statusCode: 'status_zhuangchuan', isChecked: false, statusName: '装船' },
|
|
|
|
|
{ statusCode: 'status_atd', isChecked: false, statusName: '离港' }
|
|
|
|
|
]
|
|
|
|
|
if (item.bookingStatus && item.bookingStatus.length > 0) {
|
|
|
|
|
bookstatus.map((book, bindex) => {
|
|
|
|
|
item.bookingStatus.map((ite, index) => {
|
|
|
|
|
if (ite.statusCode == book.statusCode) {
|
|
|
|
|
bookstatus[bindex] = ite
|
|
|
|
|
bookstatus[bindex].isChecked = true
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
item.bookingStatus = bookstatus
|
|
|
|
|
})
|
|
|
|
|
if (res?.data?.list) {
|
|
|
|
|
const ids = res.data.list.map((item) => {
|
|
|
|
@ -490,6 +507,36 @@ function moreNumSubmit() {
|
|
|
|
|
function moreNumCancel() {
|
|
|
|
|
moreNumVisible.value = false
|
|
|
|
|
}
|
|
|
|
|
const webDataTitle = ref('')
|
|
|
|
|
const webData = ref('')
|
|
|
|
|
const webDataFlag = ref(false)
|
|
|
|
|
function handleGetWebDataYZ(row, code) {
|
|
|
|
|
let webCode = ''
|
|
|
|
|
this.webData = ''
|
|
|
|
|
if (code === 'static_haifang' || code === 'static_cangdan') {
|
|
|
|
|
webCode = 'HLW_CD'
|
|
|
|
|
webDataTitle.value = '物流信息数据'
|
|
|
|
|
} else {
|
|
|
|
|
webCode = 'YGT'
|
|
|
|
|
webDataTitle.value = '云港通数据'
|
|
|
|
|
}
|
|
|
|
|
const data = {
|
|
|
|
|
bookingId: row.id,
|
|
|
|
|
webCode: webCode
|
|
|
|
|
}
|
|
|
|
|
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) => {
|
|
|
|
@ -577,16 +624,16 @@ const lstDraftCompareRltRef = ref()
|
|
|
|
|
function handleFormatContrast(row) {
|
|
|
|
|
lstDraftCompareRltRef.value.initLstDraft(row)
|
|
|
|
|
}
|
|
|
|
|
function excuteShippingOrderCompareBatch(row){
|
|
|
|
|
function excuteShippingOrderCompareBatch(row) {
|
|
|
|
|
lstDraftCompareRltRef.value.reload(row)
|
|
|
|
|
}
|
|
|
|
|
function handleOpenResult(row){
|
|
|
|
|
function handleOpenResult(row) {
|
|
|
|
|
lstDraftCompareRltRef.value.initTask(row)
|
|
|
|
|
}
|
|
|
|
|
function setLoadCompare(){
|
|
|
|
|
function setLoadCompare() {
|
|
|
|
|
setLoading(true);
|
|
|
|
|
}
|
|
|
|
|
function compareSuccess(){
|
|
|
|
|
function compareSuccess() {
|
|
|
|
|
setLoading(false);
|
|
|
|
|
reload()
|
|
|
|
|
}
|
|
|
|
@ -600,6 +647,7 @@ onMounted(() => {
|
|
|
|
|
<style lang="less">
|
|
|
|
|
.ds-sea-export-table {
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
|
|
|
|
.ant-table-footer {
|
|
|
|
|
display: none;
|
|
|
|
|
}
|
|
|
|
@ -613,6 +661,7 @@ onMounted(() => {
|
|
|
|
|
color: #257afa;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.ds-table {
|
|
|
|
|
.ant-table-body {
|
|
|
|
|
min-height: calc(100vh - 430px);
|
|
|
|
@ -625,7 +674,15 @@ onMounted(() => {
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
font-size: 15px
|
|
|
|
|
}
|
|
|
|
|
.goods-status{
|
|
|
|
|
|
|
|
|
|
.goods-status {
|
|
|
|
|
display: flex;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.yzActive {
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
color: #ff9702 !important;
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|