|
|
@ -11,9 +11,9 @@
|
|
|
|
<a-col
|
|
|
|
<a-col
|
|
|
|
:md="6"
|
|
|
|
:md="6"
|
|
|
|
:lg="6"
|
|
|
|
:lg="6"
|
|
|
|
:xl="4"
|
|
|
|
:xl="!advanced?3:4"
|
|
|
|
:key="findex"
|
|
|
|
:key="findex"
|
|
|
|
v-show="(findex < 4 && !advanced) || advanced"
|
|
|
|
v-show="(findex < 6 && !advanced) || advanced"
|
|
|
|
class="from-label">
|
|
|
|
class="from-label">
|
|
|
|
<a-form-item style="padding-left: 10px; padding-right: 10px" :label="formLabel.title">
|
|
|
|
<a-form-item style="padding-left: 10px; padding-right: 10px" :label="formLabel.title">
|
|
|
|
<formLabel
|
|
|
|
<formLabel
|
|
|
@ -29,7 +29,7 @@
|
|
|
|
</a-form-item>
|
|
|
|
</a-form-item>
|
|
|
|
</a-col>
|
|
|
|
</a-col>
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
<a-col :xl="formBtnCol || (!advanced && 8)" :lg="24" :md="24" :sm="24">
|
|
|
|
<a-col style="padding: 0px;" :xl="!advanced?6:8" :lg="24" :md="24" :sm="24">
|
|
|
|
<span
|
|
|
|
<span
|
|
|
|
class="table-page-search-submitButtons"
|
|
|
|
class="table-page-search-submitButtons"
|
|
|
|
:style="(advanced && { float: 'right', overflow: 'hidden' }) || {}">
|
|
|
|
:style="(advanced && { float: 'right', overflow: 'hidden' }) || {}">
|
|
|
@ -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">
|
|
|
@ -126,7 +127,7 @@
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
<template #tools>
|
|
|
|
<template #tools>
|
|
|
|
<div class="right BookTopButton">
|
|
|
|
<div class="right BookTopButton">
|
|
|
|
<span class="tab-btn" @click="tableRefresh">
|
|
|
|
<span class="tab-btn" @click="tableRefreshFirst">
|
|
|
|
<a-icon type="redo" :style="{ fontSize: '14px', transform: 'rotate(278deg)' }" />
|
|
|
|
<a-icon type="redo" :style="{ fontSize: '14px', transform: 'rotate(278deg)' }" />
|
|
|
|
</span>
|
|
|
|
</span>
|
|
|
|
<span class="tab-btn" @click="tableHeaderEdit">
|
|
|
|
<span class="tab-btn" @click="tableHeaderEdit">
|
|
|
@ -140,9 +141,11 @@
|
|
|
|
v-bind="gridOptions"
|
|
|
|
v-bind="gridOptions"
|
|
|
|
row-class-name="line-box"
|
|
|
|
row-class-name="line-box"
|
|
|
|
:height="tableHeight"
|
|
|
|
:height="tableHeight"
|
|
|
|
|
|
|
|
:row-config="{ isHover: true,isCurrent: true }"
|
|
|
|
:checkbox_config="{ checkField: 'checked' }"
|
|
|
|
:checkbox_config="{ checkField: 'checked' }"
|
|
|
|
|
|
|
|
: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: 10, oSize: 1, enabled: true }"
|
|
|
|
@page-change="handlePageChange"
|
|
|
|
@page-change="handlePageChange"
|
|
|
|
@cell-dblclick="handledbclick"
|
|
|
|
@cell-dblclick="handledbclick"
|
|
|
|
:sort-config="{ sortMethod: customSortMethod }"
|
|
|
|
:sort-config="{ sortMethod: customSortMethod }"
|
|
|
@ -156,11 +159,6 @@
|
|
|
|
<a-icon class="CSMblnoCopy" type="copy" @click="FnCopy(row.mblno)" />
|
|
|
|
<a-icon class="CSMblnoCopy" type="copy" @click="FnCopy(row.mblno)" />
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
<template #pono="{ row }">
|
|
|
|
|
|
|
|
<div class="pono">
|
|
|
|
|
|
|
|
{{ row.pono }}
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</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">
|
|
|
@ -187,7 +185,6 @@
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
<template #bsstatusname="{ row }">
|
|
|
|
<template #bsstatusname="{ row }">
|
|
|
|
<div :style="{ backgroundColor: row.bsstatusnameColor }"> {{ row.bsstatusname }}</div>
|
|
|
|
<div :style="{ backgroundColor: row.bsstatusnameColor }"> {{ row.bsstatusname }}</div>
|
|
|
|
<!-- <div>{{ row.bsstatusname }}</div> -->
|
|
|
|
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
<template #vessel="{ row }">
|
|
|
|
<template #vessel="{ row }">
|
|
|
|
<div class="vessel">{{ row.vessel }}</div>
|
|
|
|
<div class="vessel">{{ row.vessel }}</div>
|
|
|
@ -207,8 +204,11 @@
|
|
|
|
<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">{{ row.atd.substring(0, 10) }}</div>
|
|
|
|
<a-spin :spinning="row.atdLoading">
|
|
|
|
|
|
|
|
<a-icon v-if="!row.atd" style="cursor: pointer;" @click="handleRefshAtd(row, rowIndex)" type="reload" />
|
|
|
|
|
|
|
|
<span v-if="row.atd"> {{ row.atd.substring(0, 10) }}</span>
|
|
|
|
|
|
|
|
</a-spin>
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
<template #issuedate="{ row }">
|
|
|
|
<template #issuedate="{ row }">
|
|
|
|
<div class="atd" v-if="row.issuedate">{{ row.issuedate.substring(0, 10) }}</div>
|
|
|
|
<div class="atd" v-if="row.issuedate">{{ row.issuedate.substring(0, 10) }}</div>
|
|
|
@ -227,25 +227,32 @@
|
|
|
|
<vxe-button class="operate-btn" type="text" icon="vxe-icon-delete"></vxe-button>
|
|
|
|
<vxe-button class="operate-btn" type="text" icon="vxe-icon-delete"></vxe-button>
|
|
|
|
</a-popconfirm>
|
|
|
|
</a-popconfirm>
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
<!-- <template #bookstatus="{ row }">
|
|
|
|
<template #bookstatus="{ row, column, rowIndex }">
|
|
|
|
<span class="book-btn" v-for="(btn,bindex) in row.bookstatus" :class="btn.staCode" :key="bindex"> {{ enmuBookingBtn(btn.staCode) }}<i>/</i></span>
|
|
|
|
<div style="display: flex;align-items: center;">
|
|
|
|
</template> -->
|
|
|
|
<a-icon v-if="row.isBookingYZ!=0" style="cursor: pointer;color: rgb(7, 231, 56);" @click="handleRefshYZOnce(row, rowIndex)" type="reload" />
|
|
|
|
<template #bookstatus="{ row, column }">
|
|
|
|
<a-spin :spinning="row.refshYzitemLoad">
|
|
|
|
<div class="billtrace-box" :class="column.resizeWidth > 240 ? 'normal-box' : 'flex-box'">
|
|
|
|
<div :style="row.isBookingYZ==0?'padding-left:14px':''" 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>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</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">
|
|
|
@ -268,7 +275,6 @@
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
<template #bookremark="{ row }">
|
|
|
|
<template #bookremark="{ row }">
|
|
|
|
<!-- @mouseover="remarkhover($event, row)" -->
|
|
|
|
|
|
|
|
<div class="bookremark" @mouseover="remarkhover($event, row)" @mouseleave="remarkLeave($event, row)">
|
|
|
|
<div class="bookremark" @mouseover="remarkhover($event, row)" @mouseleave="remarkLeave($event, row)">
|
|
|
|
<span class="reamrk-label">
|
|
|
|
<span class="reamrk-label">
|
|
|
|
<template v-for="remark in row.bookremark">
|
|
|
|
<template v-for="remark in row.bookremark">
|
|
|
@ -336,21 +342,86 @@
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
<template #dzRemark="{ row }">
|
|
|
|
<template #dzRemark="{ row }">
|
|
|
|
<div v-if="row.dzRemark">
|
|
|
|
<a-spin :spinning="row.dzmarkLoading">
|
|
|
|
<a-popover placement="topLeft" :content="row.dzRemark">
|
|
|
|
<a-popover placement="topLeft">
|
|
|
|
<span class="dzRemark">{{ row.dzRemark }}</span>
|
|
|
|
<template slot="content">
|
|
|
|
</a-popover>
|
|
|
|
{{ row.dzRemark }}
|
|
|
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<div style="display: flex;align-items: center;">
|
|
|
|
|
|
|
|
<a-input @blur="getBlurMark(row,'rowDzMark')" @focus="getFocusMark(row,'rowDzMark')" style="margin-top: 0px;" v-model="row.dzRemark">
|
|
|
|
|
|
|
|
</a-input>
|
|
|
|
|
|
|
|
<a-icon v-show="row.rowDzMark" style="cursor: pointer;margin-left: 5px;color:#36cfc9;" @mousedown.native="handleSaveMark(row,1)" type="check-circle" theme="filled" />
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</a-popover>
|
|
|
|
|
|
|
|
</a-spin>
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
<template #czRemark="{ row }">
|
|
|
|
<template #czRemark="{ row }">
|
|
|
|
<div v-if="row.czRemark">
|
|
|
|
<div >
|
|
|
|
<a-popover placement="topLeft" :content="row.czRemark">
|
|
|
|
<a-spin :spinning="row.czmarkLoading">
|
|
|
|
<span class="czRemark">{{ row.czRemark }}</span>
|
|
|
|
<a-popover placement="topLeft">
|
|
|
|
|
|
|
|
<template slot="content">
|
|
|
|
|
|
|
|
{{ row.czRemark }}
|
|
|
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<div style="display: flex;align-items: center;">
|
|
|
|
|
|
|
|
<a-input @blur="getBlurMark(row,'rowCzMark')" @focus="getFocusMark(row,'rowCzMark')" style="margin-top: 0px;" v-model="row.czRemark">
|
|
|
|
|
|
|
|
</a-input>
|
|
|
|
|
|
|
|
<a-icon v-show="row.rowCzMark" style="cursor: pointer;margin-left: 5px;color:#36cfc9;" @mousedown.native="handleSaveMark(row,2)" type="check-circle" theme="filled" />
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</a-popover>
|
|
|
|
</a-popover>
|
|
|
|
|
|
|
|
</a-spin>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<template #shenQingXiangShi="{ row }">
|
|
|
|
|
|
|
|
<div >
|
|
|
|
|
|
|
|
<a-spin :spinning="row.sqxsLoading">
|
|
|
|
|
|
|
|
<a-popover placement="topLeft">
|
|
|
|
|
|
|
|
<template slot="content">
|
|
|
|
|
|
|
|
{{ row.shenQingXiangShi }}
|
|
|
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<div style="display: flex;align-items: center;">
|
|
|
|
|
|
|
|
<a-input @blur="getBlurMark(row,'rowSqxs')" @focus="getFocusMark(row,'rowSqxs')" style="margin-top: 0px;" v-model="row.shenQingXiangShi">
|
|
|
|
|
|
|
|
</a-input>
|
|
|
|
|
|
|
|
<a-icon v-show="row.rowSqxs" style="cursor: pointer;margin-left: 5px;color:#36cfc9;" @mousedown.native="handleSaveMark(row,4)" type="check-circle" theme="filled" />
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</a-popover>
|
|
|
|
|
|
|
|
</a-spin>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<template #pono="{ row }">
|
|
|
|
|
|
|
|
<div >
|
|
|
|
|
|
|
|
<a-spin :spinning="row.ponoLoading">
|
|
|
|
|
|
|
|
<a-popover placement="topLeft">
|
|
|
|
|
|
|
|
<template slot="content">
|
|
|
|
|
|
|
|
{{ row.pono }}
|
|
|
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<div style="display: flex;align-items: center;">
|
|
|
|
|
|
|
|
<a-input @blur="getBlurMark(row,'rowPono')" @focus="getFocusMark(row,'rowPono')" style="margin-top: 0px;" v-model="row.pono">
|
|
|
|
|
|
|
|
</a-input>
|
|
|
|
|
|
|
|
<a-icon v-show="row.rowPono" style="cursor: pointer;margin-left: 5px;color:#36cfc9;" @mousedown.native="handleSaveMark(row,5)" type="check-circle" theme="filled" />
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</a-popover>
|
|
|
|
|
|
|
|
</a-spin>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<template #custno="{ row }">
|
|
|
|
|
|
|
|
<a-spin :spinning="row.custnoLoading">
|
|
|
|
|
|
|
|
<a-popover placement="topLeft">
|
|
|
|
|
|
|
|
<template slot="content">
|
|
|
|
|
|
|
|
{{ row.custno }}
|
|
|
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<div style="display: flex;align-items: center;">
|
|
|
|
|
|
|
|
<a-input @blur="getBlurMark(row,'rowCustno')" @focus="getFocusMark(row,'rowCustno')" style="margin-top: 0px;" v-model="row.custno">
|
|
|
|
|
|
|
|
</a-input>
|
|
|
|
|
|
|
|
<a-icon v-show="row.rowCustno" style="cursor: pointer;margin-left: 5px;color:#36cfc9;" @mousedown.native="handleSaveMark(row,3)" type="check-circle" theme="filled" />
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</a-popover>
|
|
|
|
|
|
|
|
</a-spin>
|
|
|
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
<template #empty>
|
|
|
|
<template #empty>
|
|
|
|
<span class="no-data">
|
|
|
|
<span class="no-data">
|
|
|
|
<i class="iconfont icon-queshengye_zanwushuju"></i>
|
|
|
|
<i class="iconfont icon-queshengye_zanwushuju"></i>
|
|
|
@ -487,7 +558,7 @@
|
|
|
|
:formAllData="formMoreTableData"
|
|
|
|
:formAllData="formMoreTableData"
|
|
|
|
:sortLabelList="sortLabelList"
|
|
|
|
:sortLabelList="sortLabelList"
|
|
|
|
:firstSort="{ 'label': tableOrderLabel, 'type': tableOrderType }"
|
|
|
|
:firstSort="{ 'label': tableOrderLabel, 'type': tableOrderType }"
|
|
|
|
:maxNum="30"
|
|
|
|
:maxNum="999"
|
|
|
|
type="table"
|
|
|
|
type="table"
|
|
|
|
@ok="submitTableForm"
|
|
|
|
@ok="submitTableForm"
|
|
|
|
@sortList="submitSort"
|
|
|
|
@sortList="submitSort"
|
|
|
@ -748,6 +819,7 @@
|
|
|
|
</a-form-item>
|
|
|
|
</a-form-item>
|
|
|
|
</a-form>
|
|
|
|
</a-form>
|
|
|
|
</a-modal>
|
|
|
|
</a-modal>
|
|
|
|
|
|
|
|
|
|
|
|
</a-spin>
|
|
|
|
</a-spin>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
@ -760,7 +832,7 @@ import importBcMore from './modules/importBcMore'
|
|
|
|
import {
|
|
|
|
import {
|
|
|
|
PageDataByBooking,
|
|
|
|
PageDataByBooking,
|
|
|
|
SendTrace,
|
|
|
|
SendTrace,
|
|
|
|
GetVessellist,
|
|
|
|
getVesselInfoService,
|
|
|
|
GetPortlist,
|
|
|
|
GetPortlist,
|
|
|
|
GetPortloadlist,
|
|
|
|
GetPortloadlist,
|
|
|
|
BookingOrderBachUpdate,
|
|
|
|
BookingOrderBachUpdate,
|
|
|
@ -783,8 +855,9 @@ import {
|
|
|
|
downloadDraft,
|
|
|
|
downloadDraft,
|
|
|
|
checkUpdateManifestNo,
|
|
|
|
checkUpdateManifestNo,
|
|
|
|
singleBCFileRead,
|
|
|
|
singleBCFileRead,
|
|
|
|
GetToDoBCList,
|
|
|
|
refreshSailingDate,
|
|
|
|
RefreshBillTrace
|
|
|
|
RefreshBillTrace,
|
|
|
|
|
|
|
|
SaveDataInList
|
|
|
|
} from '@/api/modular/main/BookingLedger'
|
|
|
|
} from '@/api/modular/main/BookingLedger'
|
|
|
|
|
|
|
|
|
|
|
|
import initData from './modules/initData'
|
|
|
|
import initData from './modules/initData'
|
|
|
@ -813,10 +886,14 @@ export default {
|
|
|
|
return {
|
|
|
|
return {
|
|
|
|
spinning: false,
|
|
|
|
spinning: false,
|
|
|
|
isUpload: false,
|
|
|
|
isUpload: false,
|
|
|
|
|
|
|
|
markFlag: false,
|
|
|
|
|
|
|
|
marktitle: '',
|
|
|
|
refshYZloading: false,
|
|
|
|
refshYZloading: false,
|
|
|
|
|
|
|
|
nowFirst: false,
|
|
|
|
copyMoreForm: this.$form.createForm(this, { number: '' }),
|
|
|
|
copyMoreForm: this.$form.createForm(this, { number: '' }),
|
|
|
|
copyMoreFlag: false,
|
|
|
|
copyMoreFlag: false,
|
|
|
|
percent: 0,
|
|
|
|
percent: 0,
|
|
|
|
|
|
|
|
refshYzOnce: false,
|
|
|
|
TaskShippingOrderCompareVisible: false,
|
|
|
|
TaskShippingOrderCompareVisible: false,
|
|
|
|
TaskShippingOrderCompareData: {
|
|
|
|
TaskShippingOrderCompareData: {
|
|
|
|
showDetailList: ''
|
|
|
|
showDetailList: ''
|
|
|
@ -832,6 +909,8 @@ export default {
|
|
|
|
formBtnCol: 8,
|
|
|
|
formBtnCol: 8,
|
|
|
|
formBtnLoading: false,
|
|
|
|
formBtnLoading: false,
|
|
|
|
setVisible: false,
|
|
|
|
setVisible: false,
|
|
|
|
|
|
|
|
editRow: {},
|
|
|
|
|
|
|
|
editRowData: {},
|
|
|
|
showColumns: null,
|
|
|
|
showColumns: null,
|
|
|
|
importBcData: {},
|
|
|
|
importBcData: {},
|
|
|
|
gridOptions: {
|
|
|
|
gridOptions: {
|
|
|
@ -855,11 +934,6 @@ export default {
|
|
|
|
},
|
|
|
|
},
|
|
|
|
columns: JSON.parse(JSON.stringify(initData.columns)),
|
|
|
|
columns: JSON.parse(JSON.stringify(initData.columns)),
|
|
|
|
data: []
|
|
|
|
data: []
|
|
|
|
// treeConfig: {
|
|
|
|
|
|
|
|
// transform: true,
|
|
|
|
|
|
|
|
// rowField: 'index',
|
|
|
|
|
|
|
|
// parentField: 'parentId',
|
|
|
|
|
|
|
|
// },
|
|
|
|
|
|
|
|
},
|
|
|
|
},
|
|
|
|
formTableData: JSON.parse(JSON.stringify(initData.columns)),
|
|
|
|
formTableData: JSON.parse(JSON.stringify(initData.columns)),
|
|
|
|
fromTableAllData: null,
|
|
|
|
fromTableAllData: null,
|
|
|
@ -908,33 +982,11 @@ export default {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
},
|
|
|
|
computed: {
|
|
|
|
computed: {
|
|
|
|
...mapGetters(['bookingList', 'bookingGridOptions'])
|
|
|
|
...mapGetters(['bookingList', 'bookingGridOptions', 'firstFlag', 'saveNeedNumber'])
|
|
|
|
},
|
|
|
|
},
|
|
|
|
beforeRouteLeave(to, from, next) {
|
|
|
|
beforeRouteLeave(to, from, next) {
|
|
|
|
// const copyArr = JSON.parse(JSON.stringify(this.gridOptions.data))
|
|
|
|
|
|
|
|
// const first = copyArr.splice(0, 20)
|
|
|
|
|
|
|
|
this.setBookingGridOptions(this.gridOptions)
|
|
|
|
this.setBookingGridOptions(this.gridOptions)
|
|
|
|
// this.gridOptions = {
|
|
|
|
this.$store.commit('SET_SAVENEEDNUMBER', null)
|
|
|
|
// border: false,
|
|
|
|
|
|
|
|
// resizable: true,
|
|
|
|
|
|
|
|
// showOverflow: true,
|
|
|
|
|
|
|
|
// loading: false,
|
|
|
|
|
|
|
|
// stripe: true,
|
|
|
|
|
|
|
|
// round: true,
|
|
|
|
|
|
|
|
// autoResize: true,
|
|
|
|
|
|
|
|
// align: 'left',
|
|
|
|
|
|
|
|
// columnConfig: { resizable: true },
|
|
|
|
|
|
|
|
// importConfig: {},
|
|
|
|
|
|
|
|
// exportConfig: {},
|
|
|
|
|
|
|
|
// pagerConfig: {
|
|
|
|
|
|
|
|
// total: 0,
|
|
|
|
|
|
|
|
// currentPage: 1,
|
|
|
|
|
|
|
|
// pageSize: 10,
|
|
|
|
|
|
|
|
// pageSizes: [10, 20, 50, 100, 200, 500]
|
|
|
|
|
|
|
|
// },
|
|
|
|
|
|
|
|
// columns: this.gridOptions.columns,
|
|
|
|
|
|
|
|
// data: first
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
next()
|
|
|
|
next()
|
|
|
|
},
|
|
|
|
},
|
|
|
|
beforeRouteEnter(to, from, next) {
|
|
|
|
beforeRouteEnter(to, from, next) {
|
|
|
@ -942,6 +994,28 @@ export default {
|
|
|
|
vm.upDate()
|
|
|
|
vm.upDate()
|
|
|
|
})
|
|
|
|
})
|
|
|
|
},
|
|
|
|
},
|
|
|
|
|
|
|
|
watch: {
|
|
|
|
|
|
|
|
'$route': {
|
|
|
|
|
|
|
|
deep: true,
|
|
|
|
|
|
|
|
handler(nD, oD) {
|
|
|
|
|
|
|
|
if (nD.name === 'booking_ledger') {
|
|
|
|
|
|
|
|
if (this.saveNeedNumber !== null) {
|
|
|
|
|
|
|
|
let index = 0
|
|
|
|
|
|
|
|
this.gridOptions.data.forEach((ite, inde) => {
|
|
|
|
|
|
|
|
if (ite.id === this.saveNeedNumber) {
|
|
|
|
|
|
|
|
index = inde
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
this.getListByone(this.saveNeedNumber, index)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (this.firstFlag && this.saveNeedNumber === null) {
|
|
|
|
|
|
|
|
this.getList(this.searchData)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
this.setInBookingDetailsSave(false)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
},
|
|
|
|
created() {
|
|
|
|
created() {
|
|
|
|
this.createdInit()
|
|
|
|
this.createdInit()
|
|
|
|
},
|
|
|
|
},
|
|
|
@ -949,7 +1023,7 @@ export default {
|
|
|
|
this.onresize()
|
|
|
|
this.onresize()
|
|
|
|
},
|
|
|
|
},
|
|
|
|
methods: {
|
|
|
|
methods: {
|
|
|
|
...mapActions(['setBookingList', 'setBookingGridOptions']),
|
|
|
|
...mapActions(['setBookingList', 'setBookingGridOptions', 'setInBookingDetailsSave']),
|
|
|
|
createdInit() {
|
|
|
|
createdInit() {
|
|
|
|
this.showColumns = JSON.parse(JSON.stringify(initData.columns))
|
|
|
|
this.showColumns = JSON.parse(JSON.stringify(initData.columns))
|
|
|
|
this.formAllData = JSON.parse(JSON.stringify(initData.condAllData))
|
|
|
|
this.formAllData = JSON.parse(JSON.stringify(initData.condAllData))
|
|
|
@ -961,6 +1035,70 @@ 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.dzmarkLoading = false
|
|
|
|
|
|
|
|
item.czmarkLoading = false
|
|
|
|
|
|
|
|
item.custnoLoading = false
|
|
|
|
|
|
|
|
item.sqxsLoading = false
|
|
|
|
|
|
|
|
item.ponoLoading = false
|
|
|
|
|
|
|
|
item.rowCzMark = false
|
|
|
|
|
|
|
|
item.rowSqxs = false
|
|
|
|
|
|
|
|
item.rowPono = false
|
|
|
|
|
|
|
|
item.rowCustno = false
|
|
|
|
|
|
|
|
item.rowDzMark = 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)
|
|
|
|
|
|
|
|
this.$refs.xGrid.setCurrentRow(this.gridOptions.data[listIndex])
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
},
|
|
|
|
handleSubmitCopyMore(e) {
|
|
|
|
handleSubmitCopyMore(e) {
|
|
|
|
e.preventDefault();
|
|
|
|
e.preventDefault();
|
|
|
|
this.copyMoreForm.validateFields((err, values) => {
|
|
|
|
this.copyMoreForm.validateFields((err, values) => {
|
|
|
@ -979,7 +1117,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])
|
|
|
@ -1160,7 +1297,7 @@ export default {
|
|
|
|
this.WebVessel = data
|
|
|
|
this.WebVessel = data
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
GetVessellist({ KeyWord: data }).then((res) => {
|
|
|
|
getVesselInfoService({ KeyWord: data }).then((res) => {
|
|
|
|
this.vesselData = res.data
|
|
|
|
this.vesselData = res.data
|
|
|
|
})
|
|
|
|
})
|
|
|
|
},
|
|
|
|
},
|
|
|
@ -1274,11 +1411,15 @@ export default {
|
|
|
|
this.$message.warning('请先选择')
|
|
|
|
this.$message.warning('请先选择')
|
|
|
|
return false
|
|
|
|
return false
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
const data = {
|
|
|
|
let str = ''
|
|
|
|
ids: arr.join(',')
|
|
|
|
arr.forEach((item, index) => {
|
|
|
|
|
|
|
|
str += 'Ids=' + item
|
|
|
|
|
|
|
|
if (index != arr.length - 1) {
|
|
|
|
|
|
|
|
str += '&'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
})
|
|
|
|
this.refshYZloading = true
|
|
|
|
this.refshYZloading = true
|
|
|
|
RefreshBillTrace(data).then(res => {
|
|
|
|
RefreshBillTrace(str).then(res => {
|
|
|
|
if (res.success) {
|
|
|
|
if (res.success) {
|
|
|
|
this.refshYZloading = false
|
|
|
|
this.refshYZloading = false
|
|
|
|
this.$message.success('操作成功')
|
|
|
|
this.$message.success('操作成功')
|
|
|
@ -1289,6 +1430,41 @@ export default {
|
|
|
|
})
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
},
|
|
|
|
|
|
|
|
handleRefshYZOnce(row, rowIndex) {
|
|
|
|
|
|
|
|
row.refshYzitemLoad = true
|
|
|
|
|
|
|
|
RefreshBillTrace('ids=' + row.id).then(res => {
|
|
|
|
|
|
|
|
if (res.success) {
|
|
|
|
|
|
|
|
PageDataByBooking({ id: row.id }).then(ress => {
|
|
|
|
|
|
|
|
const item = ress.data.items[0]
|
|
|
|
|
|
|
|
row.refshYzitemLoad = false
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
row.statuslogs1 = item.statuslogs1
|
|
|
|
|
|
|
|
this.$message.success('操作成功')
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
row.refshYzitemLoad = false
|
|
|
|
|
|
|
|
this.$message.error(res.message)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
},
|
|
|
|
setSort(item) {
|
|
|
|
setSort(item) {
|
|
|
|
if (Array.isArray(JSON.parse(item.configJson))) {
|
|
|
|
if (Array.isArray(JSON.parse(item.configJson))) {
|
|
|
|
this.sortLabelList = JSON.parse(item.configJson)
|
|
|
|
this.sortLabelList = JSON.parse(item.configJson)
|
|
|
@ -1297,6 +1473,14 @@ export default {
|
|
|
|
const sort = JSON.parse(item.configJson)[0].descSort
|
|
|
|
const sort = JSON.parse(item.configJson)[0].descSort
|
|
|
|
this.tableOrderLabel = key || ''
|
|
|
|
this.tableOrderLabel = key || ''
|
|
|
|
this.tableOrderType = sort ? 'desc' : 'asc'
|
|
|
|
this.tableOrderType = sort ? 'desc' : 'asc'
|
|
|
|
|
|
|
|
const newArr = []
|
|
|
|
|
|
|
|
this.sortLabelList.forEach(item => {
|
|
|
|
|
|
|
|
newArr.push({
|
|
|
|
|
|
|
|
sortField: item.sortField,
|
|
|
|
|
|
|
|
descSort: item.descSort
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
this.searchData.multisort = newArr
|
|
|
|
this.$refs.xGrid.sort(key, sort)
|
|
|
|
this.$refs.xGrid.sort(key, sort)
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
this.tableOrderLabel = ''
|
|
|
|
this.tableOrderLabel = ''
|
|
|
@ -1446,11 +1630,40 @@ export default {
|
|
|
|
if (!item.slots && item.field === 'bsstatusname') {
|
|
|
|
if (!item.slots && item.field === 'bsstatusname') {
|
|
|
|
item.slots = { 'default': 'bsstatusname' }
|
|
|
|
item.slots = { 'default': 'bsstatusname' }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (item.field === 'zhanCangFlag') {
|
|
|
|
|
|
|
|
item.width = 35
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (item.field === 'custno') {
|
|
|
|
|
|
|
|
item.slots = { 'default': 'custno' }
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (item.field === 'shenQingXiangShi') {
|
|
|
|
|
|
|
|
item.slots = { 'default': 'shenQingXiangShi' }
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (item.field === 'pono') {
|
|
|
|
|
|
|
|
item.slots = { 'default': 'pono' }
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (item.label === 'LINENAME') {
|
|
|
|
|
|
|
|
item.field = 'lineName'
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (item.label === '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
|
|
|
|
|
|
|
|
}
|
|
|
|
})
|
|
|
|
})
|
|
|
|
console.log(this.formTableData, 123123)
|
|
|
|
|
|
|
|
const nowTableArr = this.formTableData.map((item, index) => {
|
|
|
|
const nowTableArr = this.formTableData.map((item, index) => {
|
|
|
|
if (item.field === 'operate') {
|
|
|
|
if (item.field === 'operate') {
|
|
|
|
item.width = 110
|
|
|
|
item.width = 60
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return item.field
|
|
|
|
return item.field
|
|
|
|
})
|
|
|
|
})
|
|
|
@ -1519,6 +1732,16 @@ export default {
|
|
|
|
})
|
|
|
|
})
|
|
|
|
})
|
|
|
|
})
|
|
|
|
},
|
|
|
|
},
|
|
|
|
|
|
|
|
handleOpenMark(row, type) {
|
|
|
|
|
|
|
|
if (type === 1) {
|
|
|
|
|
|
|
|
this.marktitle = '单证备注'
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
this.marktitle = '操作备注'
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
this.editRow = row
|
|
|
|
|
|
|
|
this.editRowData = JSON.parse(JSON.stringify(row))
|
|
|
|
|
|
|
|
this.markFlag = true
|
|
|
|
|
|
|
|
},
|
|
|
|
handlePageChange({ currentPage, pageSize }) {
|
|
|
|
handlePageChange({ currentPage, pageSize }) {
|
|
|
|
if (this.gridOptions.pagerConfig.pageSize !== pageSize) {
|
|
|
|
if (this.gridOptions.pagerConfig.pageSize !== pageSize) {
|
|
|
|
this.editPageSizeSave(pageSize)
|
|
|
|
this.editPageSizeSave(pageSize)
|
|
|
@ -1561,6 +1784,15 @@ export default {
|
|
|
|
},
|
|
|
|
},
|
|
|
|
tableRefresh() {
|
|
|
|
tableRefresh() {
|
|
|
|
const data = { ...this.formRes }
|
|
|
|
const data = { ...this.formRes }
|
|
|
|
|
|
|
|
this.nowFirst = false
|
|
|
|
|
|
|
|
data.multisort = this.searchData.multisort
|
|
|
|
|
|
|
|
this.searchData = JSON.parse(JSON.stringify(data))
|
|
|
|
|
|
|
|
this.init(this.searchData)
|
|
|
|
|
|
|
|
this.formRes = data
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
tableRefreshFirst() {
|
|
|
|
|
|
|
|
const data = { ...this.formRes }
|
|
|
|
|
|
|
|
this.nowFirst = true
|
|
|
|
data.multisort = this.searchData.multisort
|
|
|
|
data.multisort = this.searchData.multisort
|
|
|
|
this.searchData = JSON.parse(JSON.stringify(data))
|
|
|
|
this.searchData = JSON.parse(JSON.stringify(data))
|
|
|
|
this.init(this.searchData)
|
|
|
|
this.init(this.searchData)
|
|
|
@ -1673,7 +1905,18 @@ export default {
|
|
|
|
this.init()
|
|
|
|
this.init()
|
|
|
|
})
|
|
|
|
})
|
|
|
|
},
|
|
|
|
},
|
|
|
|
|
|
|
|
handleRefshAtd(row, index) {
|
|
|
|
|
|
|
|
row.atdLoading = true
|
|
|
|
|
|
|
|
refreshSailingDate({ id: row.id }).then(res => {
|
|
|
|
|
|
|
|
if (res.success) {
|
|
|
|
|
|
|
|
row.atdLoading = false
|
|
|
|
|
|
|
|
row.atd = res.data.atd
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
this.$message.error(res.message)
|
|
|
|
|
|
|
|
row.atdLoading = false
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
},
|
|
|
|
formChange(data) {
|
|
|
|
formChange(data) {
|
|
|
|
const { form, value } = data
|
|
|
|
const { form, value } = data
|
|
|
|
if (form.type === 'input') {
|
|
|
|
if (form.type === 'input') {
|
|
|
@ -1765,16 +2008,22 @@ 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
|
|
|
|
const firstFlag = this.firstFlag
|
|
|
|
if (firstFlag) {
|
|
|
|
if (firstFlag || this.nowFirst) {
|
|
|
|
query.firstFlag = true
|
|
|
|
query.firstFlag = true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if ((!queryParam.multisort || queryParam.multisort.length === 0) && this.tableOrderLabel && this.tableOrderType) {
|
|
|
|
|
|
|
|
|
|
|
|
if ((!this.searchData.multisort || this.searchData.multisort.length === 0) &&
|
|
|
|
|
|
|
|
(!queryParam.multisort || queryParam.multisort.length === 0) &&
|
|
|
|
|
|
|
|
this.tableOrderLabel && this.tableOrderType) {
|
|
|
|
query.multisort = [{
|
|
|
|
query.multisort = [{
|
|
|
|
sortField: this.tableOrderLabel,
|
|
|
|
sortField: this.tableOrderLabel,
|
|
|
|
descSort: this.tableOrderType === 'desc'
|
|
|
|
descSort: this.tableOrderType === 'desc'
|
|
|
|
}]
|
|
|
|
}]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (this.searchData.multisort && this.searchData.multisort.length > 0) {
|
|
|
|
|
|
|
|
query.multisort = this.searchData.multisort
|
|
|
|
|
|
|
|
}
|
|
|
|
PageDataByBooking(query)
|
|
|
|
PageDataByBooking(query)
|
|
|
|
.then((res) => {
|
|
|
|
.then((res) => {
|
|
|
|
if (res.success) {
|
|
|
|
if (res.success) {
|
|
|
@ -1783,7 +2032,6 @@ export default {
|
|
|
|
newBookingList = this.bookingList
|
|
|
|
newBookingList = this.bookingList
|
|
|
|
}
|
|
|
|
}
|
|
|
|
const _data = res.data.items.map((item, index) => {
|
|
|
|
const _data = res.data.items.map((item, index) => {
|
|
|
|
this.$set(newBookingList, item.id, item)
|
|
|
|
|
|
|
|
item.index = (currentPage - 1) * pageSize + index
|
|
|
|
item.index = (currentPage - 1) * pageSize + index
|
|
|
|
const bookstatus = [
|
|
|
|
const bookstatus = [
|
|
|
|
{ staCode: 'sta_cangdan', isChecked: false },
|
|
|
|
{ staCode: 'sta_cangdan', isChecked: false },
|
|
|
@ -1822,6 +2070,18 @@ export default {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
item.bookstatus = bookstatus
|
|
|
|
item.bookstatus = bookstatus
|
|
|
|
|
|
|
|
item.refshYzitemLoad = false
|
|
|
|
|
|
|
|
item.atdLoading = false
|
|
|
|
|
|
|
|
item.rowDzMark = false
|
|
|
|
|
|
|
|
item.rowCzMark = false
|
|
|
|
|
|
|
|
item.rowCustno = false
|
|
|
|
|
|
|
|
item.rowSqxs = false
|
|
|
|
|
|
|
|
item.rowPono = false
|
|
|
|
|
|
|
|
item.czmarkLoading = false
|
|
|
|
|
|
|
|
item.custnoLoading = false
|
|
|
|
|
|
|
|
item.dzmarkLoading = false
|
|
|
|
|
|
|
|
item.sqxsLoading = false
|
|
|
|
|
|
|
|
item.ponoLoading = false
|
|
|
|
let hasGoods = 0
|
|
|
|
let hasGoods = 0
|
|
|
|
item.goodsStatusList.map((gitem, gindex) => {
|
|
|
|
item.goodsStatusList.map((gitem, gindex) => {
|
|
|
|
if (gitem.finishTime || gitem.remark) {
|
|
|
|
if (gitem.finishTime || gitem.remark) {
|
|
|
@ -1829,11 +2089,12 @@ export default {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})
|
|
|
|
})
|
|
|
|
item.hasGoods = hasGoods
|
|
|
|
item.hasGoods = hasGoods
|
|
|
|
|
|
|
|
this.$set(newBookingList, item.id, item)
|
|
|
|
return item
|
|
|
|
return item
|
|
|
|
})
|
|
|
|
})
|
|
|
|
this.$set(this.gridOptions.pagerConfig, 'columns', JSON.parse(JSON.stringify(initData.columns)))
|
|
|
|
this.$set(this.gridOptions.pagerConfig, 'columns', JSON.parse(JSON.stringify(initData.columns)))
|
|
|
|
this.$set(this.gridOptions, 'data', [..._data])
|
|
|
|
this.$set(this.gridOptions, 'data', [..._data])
|
|
|
|
|
|
|
|
const startTime = Date.now()
|
|
|
|
this.$refs.xGrid.reloadData(_data).then(() => {
|
|
|
|
this.$refs.xGrid.reloadData(_data).then(() => {
|
|
|
|
this.$set(this.gridOptions, 'loading', false)
|
|
|
|
this.$set(this.gridOptions, 'loading', false)
|
|
|
|
})
|
|
|
|
})
|
|
|
@ -1852,7 +2113,7 @@ export default {
|
|
|
|
this.$forceUpdate()
|
|
|
|
this.$forceUpdate()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
this.ResetType = true
|
|
|
|
this.ResetType = true
|
|
|
|
localStorage.setItem('pro__FIRSTFLAG', false)
|
|
|
|
this.$store.commit('SET_FIRSTFLAG', false)
|
|
|
|
})
|
|
|
|
})
|
|
|
|
.catch((err) => {
|
|
|
|
.catch((err) => {
|
|
|
|
console.log(err)
|
|
|
|
console.log(err)
|
|
|
@ -1914,6 +2175,43 @@ export default {
|
|
|
|
addCancel() {
|
|
|
|
addCancel() {
|
|
|
|
this.addVisible = false
|
|
|
|
this.addVisible = false
|
|
|
|
},
|
|
|
|
},
|
|
|
|
|
|
|
|
handleSaveMark(row, type, file) {
|
|
|
|
|
|
|
|
const data = {
|
|
|
|
|
|
|
|
Id: row.id
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (type === 1) {
|
|
|
|
|
|
|
|
row.dzmarkLoading = true
|
|
|
|
|
|
|
|
data.dzRemark = row.dzRemark
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (type === 2) {
|
|
|
|
|
|
|
|
row.czmarkLoading = true
|
|
|
|
|
|
|
|
data.czRemark = row.czRemark
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (type === 3) {
|
|
|
|
|
|
|
|
row.custnoLoading = true
|
|
|
|
|
|
|
|
data.custno = row.custno
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (type === 4) {
|
|
|
|
|
|
|
|
row.sqxsLoading = true
|
|
|
|
|
|
|
|
data.shenQingXiangShi = row.shenQingXiangShi
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (type === 5) {
|
|
|
|
|
|
|
|
row.ponoLoading = true
|
|
|
|
|
|
|
|
data.pono = row.pono
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
SaveDataInList(data).then(res => {
|
|
|
|
|
|
|
|
if (res.success) {
|
|
|
|
|
|
|
|
this.$message.success('修改成功')
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
this.$message.error(res.message)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
row.dzmarkLoading = false
|
|
|
|
|
|
|
|
row.czmarkLoading = false
|
|
|
|
|
|
|
|
row.custnoLoading = false
|
|
|
|
|
|
|
|
row.sqxsLoading = false
|
|
|
|
|
|
|
|
row.ponoLoading = false
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// 表单编辑
|
|
|
|
// 表单编辑
|
|
|
|
formSetting() {
|
|
|
|
formSetting() {
|
|
|
@ -1990,6 +2288,12 @@ export default {
|
|
|
|
pressEnterFun() {
|
|
|
|
pressEnterFun() {
|
|
|
|
this.tableRefresh()
|
|
|
|
this.tableRefresh()
|
|
|
|
},
|
|
|
|
},
|
|
|
|
|
|
|
|
getFocusMark(row, file) {
|
|
|
|
|
|
|
|
row[file] = true
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
getBlurMark(row, file) {
|
|
|
|
|
|
|
|
row[file] = false
|
|
|
|
|
|
|
|
},
|
|
|
|
remarkhover(e, data) {
|
|
|
|
remarkhover(e, data) {
|
|
|
|
if (data.bookremark.length > 0) {
|
|
|
|
if (data.bookremark.length > 0) {
|
|
|
|
const maxWidth = window.innerWidth
|
|
|
|
const maxWidth = window.innerWidth
|
|
|
@ -2183,7 +2487,7 @@ export default {
|
|
|
|
emnuCompleteApi(type) {
|
|
|
|
emnuCompleteApi(type) {
|
|
|
|
switch (type) {
|
|
|
|
switch (type) {
|
|
|
|
case 'VESSEL':
|
|
|
|
case 'VESSEL':
|
|
|
|
return GetVessellist
|
|
|
|
return getVesselInfoService
|
|
|
|
case 'CUSTOMERNAME':
|
|
|
|
case 'CUSTOMERNAME':
|
|
|
|
return DjyCustomerSuggest
|
|
|
|
return DjyCustomerSuggest
|
|
|
|
case 'FORWARDER':
|
|
|
|
case 'FORWARDER':
|
|
|
@ -2299,16 +2603,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 {
|
|
|
@ -2700,6 +3012,8 @@ export default {
|
|
|
|
/*列表操作按钮颜色 */
|
|
|
|
/*列表操作按钮颜色 */
|
|
|
|
/deep/ .operate-btn {
|
|
|
|
/deep/ .operate-btn {
|
|
|
|
color: @primary-color;
|
|
|
|
color: @primary-color;
|
|
|
|
|
|
|
|
width: 19px;
|
|
|
|
|
|
|
|
margin: 0 !important;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/deep/ .operate-btn:hover {
|
|
|
|
/deep/ .operate-btn:hover {
|
|
|
@ -2760,7 +3074,7 @@ export default {
|
|
|
|
span {
|
|
|
|
span {
|
|
|
|
// flex: 1;
|
|
|
|
// flex: 1;
|
|
|
|
text-align: right;
|
|
|
|
text-align: right;
|
|
|
|
color: #999;
|
|
|
|
color: black;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
i {
|
|
|
|
i {
|
|
|
@ -2797,6 +3111,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;
|
|
|
@ -2833,8 +3148,10 @@ export default {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.billtrace-btn1 {
|
|
|
|
.billtrace-btn1 {
|
|
|
|
font-size: 12px;
|
|
|
|
font-size: 12px;
|
|
|
|
|
|
|
|
|
|
|
|
.active {
|
|
|
|
.active {
|
|
|
|
cursor: pointer;
|
|
|
|
cursor: pointer;
|
|
|
|
// color: @primary-color;
|
|
|
|
// color: @primary-color;
|
|
|
@ -3274,22 +3591,6 @@ export default {
|
|
|
|
flex: 1;
|
|
|
|
flex: 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// &:nth-child(3) {
|
|
|
|
|
|
|
|
// flex: 2;
|
|
|
|
|
|
|
|
// margin: 0 1rem;
|
|
|
|
|
|
|
|
// padding-left: 0.5rem;
|
|
|
|
|
|
|
|
// &.TaskShippingOrderCompareMainThird {
|
|
|
|
|
|
|
|
// background: #facd91;
|
|
|
|
|
|
|
|
// border: 1px solid red;
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// &.TaskShippingOrderCompareMainThird {
|
|
|
|
|
|
|
|
// flex: 2;
|
|
|
|
|
|
|
|
// background: #facd91;
|
|
|
|
|
|
|
|
// border: 1px solid red;
|
|
|
|
|
|
|
|
// margin: 0 1rem;
|
|
|
|
|
|
|
|
// padding-left: 0.5rem;
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
&.BoxNo {
|
|
|
|
&.BoxNo {
|
|
|
@ -3305,24 +3606,6 @@ export default {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// .form-box{
|
|
|
|
|
|
|
|
// .form-main{
|
|
|
|
|
|
|
|
// float: left;
|
|
|
|
|
|
|
|
// margin-right: 10px;
|
|
|
|
|
|
|
|
// display: flex;
|
|
|
|
|
|
|
|
// width: 16%;
|
|
|
|
|
|
|
|
// overflow: hidden;
|
|
|
|
|
|
|
|
// .form-label{
|
|
|
|
|
|
|
|
// display: inline-block;
|
|
|
|
|
|
|
|
// margin-right: 10px;
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// .form-content{
|
|
|
|
|
|
|
|
// flex: 1;
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// .more-btn{
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
.bcfile-title {
|
|
|
|
.bcfile-title {
|
|
|
|
border-bottom: 1px dashed black;
|
|
|
|
border-bottom: 1px dashed black;
|
|
|
|
padding-bottom: 5px;
|
|
|
|
padding-bottom: 5px;
|
|
|
@ -3343,13 +3626,27 @@ 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 {
|
|
|
|
|
|
|
|
background: #fff3e0 !important;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
</style>
|
|
|
|
|
|
|
|
<style lang="less">
|
|
|
|
|
|
|
|
.vxe-table--render-default .vxe-body--row.row--current{
|
|
|
|
|
|
|
|
background: #9be945!important;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
.vxe-table--render-default{
|
|
|
|
|
|
|
|
color: black;
|
|
|
|
|
|
|
|
}
|
|
|
|
</style>
|
|
|
|
</style>
|
|
|
|