|
|
|
@ -279,22 +279,25 @@
|
|
|
|
|
</a-popconfirm>
|
|
|
|
|
</template>
|
|
|
|
|
<template #bookstatus="{ row, column, rowIndex }">
|
|
|
|
|
<div style="display: flex;align-items: center;">
|
|
|
|
|
<div style="display: flex; align-items: center">
|
|
|
|
|
<a-icon
|
|
|
|
|
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)"
|
|
|
|
|
type="reload" />
|
|
|
|
|
type="reload"
|
|
|
|
|
/>
|
|
|
|
|
<a-spin :spinning="row.refshYzitemLoad">
|
|
|
|
|
<div
|
|
|
|
|
:style="row.isBookingYZ == 0 ? 'padding-left:14px' : ''"
|
|
|
|
|
class="billtrace-box"
|
|
|
|
|
:class="column.resizeWidth > 240 ? 'normal-box' : 'flex-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">
|
|
|
|
|
:key="bindex"
|
|
|
|
|
>
|
|
|
|
|
<a-popover placement="topLeft" v-if="btn.staTime">
|
|
|
|
|
<div slot="content">{{ btn.staTime }}</div>
|
|
|
|
|
<span @click="handleGetWebDataYZ(row, btn.staCode)" :class="{ active: btn.isChecked }">{{
|
|
|
|
@ -302,13 +305,16 @@
|
|
|
|
|
}}</span>
|
|
|
|
|
</a-popover>
|
|
|
|
|
<span
|
|
|
|
|
style="cursor: pointer;"
|
|
|
|
|
style="cursor: pointer"
|
|
|
|
|
@click="handleGetWebDataYZ(row, btn.staCode)"
|
|
|
|
|
:class="{ active: btn.isChecked }"
|
|
|
|
|
v-else>{{ enmuBookingBtn(btn.staCode) }}</span>
|
|
|
|
|
v-else
|
|
|
|
|
>{{ enmuBookingBtn(btn.staCode) }}</span
|
|
|
|
|
>
|
|
|
|
|
<i
|
|
|
|
|
class="iconfont icon-xiaoyoujiantou"
|
|
|
|
|
:class="{ hide: bindex === row.bookstatus.length - 1 }"></i>
|
|
|
|
|
:class="{ hide: bindex === row.bookstatus.length - 1 }"
|
|
|
|
|
></i>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</a-spin>
|
|
|
|
@ -317,34 +323,41 @@
|
|
|
|
|
<template #statuslogs="{ row, column }">
|
|
|
|
|
<div v-if="row.statuslogs1">
|
|
|
|
|
<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-popover placement="topLeft">
|
|
|
|
|
<div slot="content">
|
|
|
|
|
<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>
|
|
|
|
|
</div>
|
|
|
|
|
<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.fcopTime }}</span>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div
|
|
|
|
|
@click="handleGetWebData(row, 'YARD')"
|
|
|
|
|
:class="{ active: row.statuslogs1[0].txopTime }">
|
|
|
|
|
:class="{ active: row.statuslogs1[0].txopTime }"
|
|
|
|
|
>
|
|
|
|
|
提箱
|
|
|
|
|
</div>
|
|
|
|
|
<div
|
|
|
|
|
@click="handleGetWebData(row, 'YARD')"
|
|
|
|
|
:class="{ active: row.statuslogs1[0].fcopTime }">
|
|
|
|
|
:class="{ active: row.statuslogs1[0].fcopTime }"
|
|
|
|
|
>
|
|
|
|
|
返场
|
|
|
|
|
</div>
|
|
|
|
|
</a-popover>
|
|
|
|
|
</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>
|
|
|
|
@ -360,13 +373,19 @@
|
|
|
|
|
</template>
|
|
|
|
|
<template #txxp="{ row }">
|
|
|
|
|
<div style="display: flex;align-items: center;">
|
|
|
|
|
<span style="margin-right: 10px;cursor: pointer;color: #36cfc9;" class="iconfont icon-dayinxiaopiao" @click="TxxpLink(row)"></span>
|
|
|
|
|
<div v-if="row.extendState" style="display: flex;align-items: center;">
|
|
|
|
|
<span
|
|
|
|
|
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>{{ row.extendState.txxpBeginTime.substring(0,16) }}</div>
|
|
|
|
|
<div>{{ row.extendState.txxpEndTime.substring(0,16) }}</div>
|
|
|
|
|
<div v-if="row.extendState && row.extendState.txxpEndTime">{{ row.extendState.txxpEndTime.substring(0, 16) }}</div>
|
|
|
|
|
<div> <a @click="openStop(row)" style="font-size: 12px;" href="javascript:;">修改到期时间</a></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>
|
|
|
|
|
</template>
|
|
|
|
@ -389,7 +408,7 @@
|
|
|
|
|
比对时间: <span>{{ row.lstShipOrderCompareDate }}</span>
|
|
|
|
|
</p>
|
|
|
|
|
</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'">
|
|
|
|
|
<a-icon type="close-circle" :style="{ color: 'red' }" />
|
|
|
|
|
</div>
|
|
|
|
@ -417,7 +436,8 @@
|
|
|
|
|
<a-icon
|
|
|
|
|
class="TablelstShipOrderCompareRltRedo"
|
|
|
|
|
@click="excuteShippingOrderCompareBatch(row)"
|
|
|
|
|
type="redo" />
|
|
|
|
|
type="redo"
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<template #lstDraftCompareRlt="{ row }">
|
|
|
|
@ -442,7 +462,8 @@
|
|
|
|
|
title="查看比对结果"
|
|
|
|
|
class="TablelstShipOrderCompareRltRedo"
|
|
|
|
|
@click="handleFormatContrast(row)"
|
|
|
|
|
type="diff" />
|
|
|
|
|
type="diff"
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<template #goodsStatusList="{ row }">
|
|
|
|
@ -607,16 +628,28 @@
|
|
|
|
|
:title="TaskShippingOrderCompareData.isExistsDiff ? '下货纸比对(有差异)' : '下货纸比对(正常)'"
|
|
|
|
|
@cancel="TaskShippingOrderCompareHandleCancel"
|
|
|
|
|
:visible="TaskShippingOrderCompareVisible"
|
|
|
|
|
width="40%">
|
|
|
|
|
class="formatSheetModal"
|
|
|
|
|
width="40%"
|
|
|
|
|
>
|
|
|
|
|
<template slot="footer">
|
|
|
|
|
<a-button key="back" @click="TaskShippingOrderCompareHandleCancel"> 关闭 </a-button>
|
|
|
|
|
</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">
|
|
|
|
|
{{ TaskShippingOrderCompareData.compareTime }}
|
|
|
|
|
<span v-if="TaskShippingOrderCompareData.isExistsDiff">
|
|
|
|
|
比对异常 合计
|
|
|
|
|
<span class="TaskShippingOrderCompareSpan">{{ TaskShippingOrderCompareData.total }}</span>
|
|
|
|
|
条
|
|
|
|
|
<a v-if="TaskShippingOrderCompareData.lstShipOrderCompareRlt === 'DIFF'" href="javascript:;" @click="openPersonal">人工处理</a>
|
|
|
|
|
</span>
|
|
|
|
|
</p>
|
|
|
|
|
<div class="TaskShippingOrderCompareMainBox">
|
|
|
|
@ -638,7 +671,8 @@
|
|
|
|
|
class="TaskShippingOrderCompareMainList"
|
|
|
|
|
v-for="(item, index) in TaskShippingOrderCompareData.showDetailList"
|
|
|
|
|
:key="index"
|
|
|
|
|
v-show="item.pCode != 'ContaList'">
|
|
|
|
|
v-show="item.pCode != 'ContaList'"
|
|
|
|
|
>
|
|
|
|
|
<p>{{ item.fieldName }}:</p>
|
|
|
|
|
<p>{{ item.reqVal }}</p>
|
|
|
|
|
<p v-if="item.msg">
|
|
|
|
@ -664,8 +698,10 @@
|
|
|
|
|
v-for="(item, index) in TaskShippingOrderCompareData.showDetailList"
|
|
|
|
|
:key="index"
|
|
|
|
|
v-show="item.pCode == 'ContaList'"
|
|
|
|
|
:class="item.fieldName == '箱号' ? 'TaskShippingOrderCompareMainList BoxNo' : 'TaskShippingOrderCompareMainList'
|
|
|
|
|
">
|
|
|
|
|
:class="
|
|
|
|
|
item.fieldName == '箱号' ? 'TaskShippingOrderCompareMainList BoxNo' : 'TaskShippingOrderCompareMainList'
|
|
|
|
|
"
|
|
|
|
|
>
|
|
|
|
|
<p>{{ item.fieldName }}:</p>
|
|
|
|
|
<p>{{ item.reqVal }}</p>
|
|
|
|
|
<p v-if="item.msg">
|
|
|
|
@ -683,212 +719,261 @@
|
|
|
|
|
:title="formatSheet.isExistsDiff ? '格式单比对(有差异)' : '格式单比对(正常)'"
|
|
|
|
|
@cancel="formatSheetVisible = false"
|
|
|
|
|
:visible="formatSheetVisible"
|
|
|
|
|
width="90%">
|
|
|
|
|
class="formatSheetModal"
|
|
|
|
|
width="90%"
|
|
|
|
|
>
|
|
|
|
|
<template slot="footer">
|
|
|
|
|
<a-button key="back" @click="formatSheetVisible = false"> 关闭 </a-button>
|
|
|
|
|
</template>
|
|
|
|
|
<div style="display: flex;">
|
|
|
|
|
<div style="width:55%">
|
|
|
|
|
<div>
|
|
|
|
|
<div
|
|
|
|
|
v-if="formatSheet.total > 0"
|
|
|
|
|
style="display: flex;justify-content: space-between;"
|
|
|
|
|
class="TaskShippingOrderCompareP">
|
|
|
|
|
<div>
|
|
|
|
|
{{ formatSheet.compareTime }}
|
|
|
|
|
<span v-if="formatSheet.isExistsDiff">
|
|
|
|
|
比对异常 合计
|
|
|
|
|
<span class="TaskShippingOrderCompareSpan">{{ formatSheet.total }}</span>
|
|
|
|
|
条
|
|
|
|
|
</span>
|
|
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
显示全部
|
|
|
|
|
<a-switch :checked="formatFlag" @change="formatFlag = !formatFlag" />
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div style="display: flex;align-items: flex-start;" v-else>
|
|
|
|
|
<a-icon
|
|
|
|
|
style="color: rgb(82,196,26);font-size: 50px;margin-top: 5px;"
|
|
|
|
|
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 style="margin:10px 0" v-if="formatSheet.manualFeedBackResult">
|
|
|
|
|
{{ formatSheet.manualFeedBackResult.operTime }}
|
|
|
|
|
【人工修正】 {{ formatSheet.manualFeedBackResult.operUser }},
|
|
|
|
|
【原因】{{ formatSheet.manualFeedBackResult.reason }},
|
|
|
|
|
【备注】 {{ formatSheet.manualFeedBackResult.operNote }}
|
|
|
|
|
</div>
|
|
|
|
|
<div style="display: flex">
|
|
|
|
|
<div style="width: 55%">
|
|
|
|
|
<div>
|
|
|
|
|
<div
|
|
|
|
|
v-if="formatSheet.total > 0"
|
|
|
|
|
style="display: flex; justify-content: space-between"
|
|
|
|
|
class="TaskShippingOrderCompareP"
|
|
|
|
|
>
|
|
|
|
|
<div>
|
|
|
|
|
{{ formatSheet.compareTime }}
|
|
|
|
|
<span v-if="formatSheet.isExistsDiff">
|
|
|
|
|
比对异常 合计
|
|
|
|
|
<span class="TaskShippingOrderCompareSpan">{{ formatSheet.total }}</span>
|
|
|
|
|
条
|
|
|
|
|
<a v-if="formatSheet.lstDraftCompareRlt === 'DIFF'" href="javascript:;" @click="openPersonal">人工处理</a>
|
|
|
|
|
</span>
|
|
|
|
|
</div>
|
|
|
|
|
<div
|
|
|
|
|
v-for="(item, index) in formatSheet.showDetailList"
|
|
|
|
|
: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>
|
|
|
|
|
显示全部
|
|
|
|
|
<a-switch :checked="formatFlag" @change="formatFlag = !formatFlag" />
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="TaskShippingOrderCompareMain">
|
|
|
|
|
<div>
|
|
|
|
|
<div>
|
|
|
|
|
<p>箱信息</p>
|
|
|
|
|
<div style="width: 100%;height: 1px;border-bottom: 1px dashed;margin: 5px 0;"></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div style="display: flex; align-items: flex-start" v-else>
|
|
|
|
|
<a-icon
|
|
|
|
|
style="color: rgb(82, 196, 26); font-size: 50px; margin-top: 5px"
|
|
|
|
|
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
|
|
|
|
|
v-for="(item, index) in formatSheet.showDetailList"
|
|
|
|
|
:key="index"
|
|
|
|
|
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 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 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
|
|
|
|
|
v-for="(item, index) in formatSheet.showDetailList"
|
|
|
|
|
: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 v-if="!formatFlag && formatSheet.total == 0"></div>
|
|
|
|
|
<div v-if="formatFlag" class="TaskShippingOrderCompareMainBox" style="height: 600px;">
|
|
|
|
|
<div class="TaskShippingOrderCompareMain">
|
|
|
|
|
<div class="TaskShippingOrderCompareMainHeader">
|
|
|
|
|
<div class="TaskShippingOrderCompareMain">
|
|
|
|
|
<div>
|
|
|
|
|
<p>提单号</p>
|
|
|
|
|
<div style="width: 100%;height: 1px;border-bottom: 1px dashed;margin: 5px 0;"></div>
|
|
|
|
|
<p>{{ formatSheet.mBlNo }}</p>
|
|
|
|
|
</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>
|
|
|
|
|
<p>箱信息</p>
|
|
|
|
|
<div style="width: 100%; height: 1px; border-bottom: 1px dashed; margin: 5px 0"></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
|
|
|
|
|
v-for="(item, index) in formatSheet.showDetailList"
|
|
|
|
|
:key="index"
|
|
|
|
|
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 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 v-if="!formatFlag && formatSheet.total == 0"></div>
|
|
|
|
|
<div v-if="formatFlag" 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
|
|
|
|
|
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">
|
|
|
|
|
<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;"
|
|
|
|
|
style="color: rgb(194, 5, 5); font-size: 18px; margin-right: 35px"
|
|
|
|
|
type="close-circle"
|
|
|
|
|
theme="filled" />
|
|
|
|
|
theme="filled"
|
|
|
|
|
/>
|
|
|
|
|
</p>
|
|
|
|
|
<p style="padding-top: 4px;" v-else>
|
|
|
|
|
<p style="padding-top: 4px" v-else>
|
|
|
|
|
<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"
|
|
|
|
|
theme="filled" />
|
|
|
|
|
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>
|
|
|
|
|
<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 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 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 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>
|
|
|
|
|
<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>
|
|
|
|
|
<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>
|
|
|
|
|
</a-modal>
|
|
|
|
|
<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">
|
|
|
|
|
<iframe :src="txxpUrl" width="800" height="600" frameborder="0"></iframe>
|
|
|
|
|
</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">
|
|
|
|
|
<iframe frameborder="0" height="700px" style="width: 100%;" :srcdoc="webData">
|
|
|
|
|
<!-- <div v-html="webData" style="overflow: hidden;"></div> -->
|
|
|
|
@ -1281,6 +1394,7 @@ import {
|
|
|
|
|
GetVessellist,
|
|
|
|
|
SendTrace,
|
|
|
|
|
getVesselInfoService,
|
|
|
|
|
SaveDraftComparellanual,
|
|
|
|
|
GetPortlist,
|
|
|
|
|
GetPortloadlist,
|
|
|
|
|
BookingOrderBachUpdate,
|
|
|
|
@ -1316,7 +1430,10 @@ import {
|
|
|
|
|
BachUpdateShipagency,
|
|
|
|
|
TxxpLink,
|
|
|
|
|
DownloadOriginal,
|
|
|
|
|
SubmitTelex
|
|
|
|
|
SubmitTelex,
|
|
|
|
|
RefreshYard,
|
|
|
|
|
RefreshYGT,
|
|
|
|
|
SetTxxpEndTime
|
|
|
|
|
} from '@/api/modular/main/BookingLedger'
|
|
|
|
|
|
|
|
|
|
import initData from '../../BookingLedger/list/modules/initData'
|
|
|
|
@ -1346,7 +1463,15 @@ export default {
|
|
|
|
|
return {
|
|
|
|
|
spinning: false,
|
|
|
|
|
isUpload: false,
|
|
|
|
|
txxpEndLoad: false,
|
|
|
|
|
txxpEndFlag: false,
|
|
|
|
|
stopTxxpTime: '',
|
|
|
|
|
telxLoad: false,
|
|
|
|
|
personal: {},
|
|
|
|
|
personalFlag: false,
|
|
|
|
|
formatContRow: {},
|
|
|
|
|
formatType: '',
|
|
|
|
|
formatTitle: '',
|
|
|
|
|
fileLoading: false,
|
|
|
|
|
webDataTitle: '',
|
|
|
|
|
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) {
|
|
|
|
|
row.refshYzitemLoad = true
|
|
|
|
|
RefreshBillTrace('ids=' + row.id).then(res => {
|
|
|
|
|
RefreshYGT('ids=' + row.id).then(res => {
|
|
|
|
|
if (res.success) {
|
|
|
|
|
PageDataByBooking({ id: row.id }).then(ress => {
|
|
|
|
|
const item = ress.data.items[0]
|
|
|
|
@ -2167,6 +2317,35 @@ export default {
|
|
|
|
|
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
|
|
|
|
|
getCarrier() {
|
|
|
|
|
const Rdata = data => {
|
|
|
|
@ -2303,14 +2482,19 @@ export default {
|
|
|
|
|
},
|
|
|
|
|
handleOpenResult(row) {
|
|
|
|
|
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.data.succ) {
|
|
|
|
|
this.spinning = false
|
|
|
|
|
this.$message.success(res.data.msg)
|
|
|
|
|
} else {
|
|
|
|
|
if (res.data.extra) {
|
|
|
|
|
this.formatType = 'SHIPORDER'
|
|
|
|
|
this.formatTitle = '下货纸比对-人工处理'
|
|
|
|
|
this.TaskShippingOrderCompareData = res.data.extra
|
|
|
|
|
this.TaskShippingOrderCompareData.lstShipOrderCompareRlt = row.lstShipOrderCompareRlt
|
|
|
|
|
this.TaskShippingOrderCompareData.total = res.data.total
|
|
|
|
|
this.TaskShippingOrderCompareVisible = true
|
|
|
|
|
this.spinning = false
|
|
|
|
@ -2908,6 +3092,34 @@ export default {
|
|
|
|
|
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() {
|
|
|
|
|
const select = this.$refs.xGrid.getCheckboxRecords()
|
|
|
|
|
const pkIdArr = select.map((item, index) => {
|
|
|
|
@ -2955,6 +3167,10 @@ export default {
|
|
|
|
|
addBooking() {
|
|
|
|
|
this.addVisible = !this.addVisible
|
|
|
|
|
},
|
|
|
|
|
openPersonal() {
|
|
|
|
|
this.personalFlag = true
|
|
|
|
|
this.personal = {}
|
|
|
|
|
},
|
|
|
|
|
copyBooking() {
|
|
|
|
|
const select = this.$refs.xGrid.getCheckboxRecords()
|
|
|
|
|
const pkIdArr = select.map((item, index) => {
|
|
|
|
@ -3076,8 +3292,12 @@ export default {
|
|
|
|
|
},
|
|
|
|
|
handleFormatContrast(row) {
|
|
|
|
|
this.spinning = true
|
|
|
|
|
this.formatContRow = row
|
|
|
|
|
this.formatType = 'DRAFT'
|
|
|
|
|
this.formatTitle = '格式单比对-人工处理'
|
|
|
|
|
this.pdfUrl = ''
|
|
|
|
|
GetDraftCompareResultInfo({ bookingid: row.id }).then(res => {
|
|
|
|
|
this.TaskShippingOrderCompareData = {}
|
|
|
|
|
GetDraftCompareResultInfo({ bookingid: row.id }).then((res) => {
|
|
|
|
|
if (res.success) {
|
|
|
|
|
if (!res.data.succ) {
|
|
|
|
|
this.spinning = false
|
|
|
|
@ -3085,10 +3305,11 @@ export default {
|
|
|
|
|
} else {
|
|
|
|
|
if (res.data.extra) {
|
|
|
|
|
this.formatSheet = res.data.extra
|
|
|
|
|
this.formatSheet.lstDraftCompareRlt = row.lstDraftCompareRlt
|
|
|
|
|
this.formatSheet.total = res.data.total
|
|
|
|
|
this.formatSheetVisible = true
|
|
|
|
|
const arr = []
|
|
|
|
|
this.formatSheet.showDetailList.forEach(item => {
|
|
|
|
|
this.formatSheet.showDetailList.forEach((item) => {
|
|
|
|
|
if (item.pCode === 'ContaList' && item.isDiff) {
|
|
|
|
|
arr.push(1)
|
|
|
|
|
}
|
|
|
|
@ -3104,7 +3325,7 @@ export default {
|
|
|
|
|
this.spinning = false
|
|
|
|
|
if (res.data.extra3) {
|
|
|
|
|
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.formatPdf = this.pdfUrl
|
|
|
|
|
this.pdfLoading = false
|
|
|
|
|