|
|
@ -8,17 +8,30 @@
|
|
|
|
<a-form layout="inline">
|
|
|
|
<a-form layout="inline">
|
|
|
|
<a-row :gutter="48" class="booking-from-box">
|
|
|
|
<a-row :gutter="48" class="booking-from-box">
|
|
|
|
<template v-for="(formLabel, findex) in formData">
|
|
|
|
<template v-for="(formLabel, findex) in formData">
|
|
|
|
<a-col :md="6" :lg="6" :xl="4" :key="findex" v-show="(findex < 4 && !advanced) || advanced"
|
|
|
|
<a-col
|
|
|
|
|
|
|
|
:md="6"
|
|
|
|
|
|
|
|
:lg="6"
|
|
|
|
|
|
|
|
:xl="4"
|
|
|
|
|
|
|
|
:key="findex"
|
|
|
|
|
|
|
|
v-show="(findex < 4 && !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 :ref="`fromlabel-${formLabel.label}`" :labelData="formLabel" :formRes="formRes"
|
|
|
|
<formLabel
|
|
|
|
:resetType="ResetType" :formIndex="findex" @change="formChange" @pressEnter="pressEnterFun"
|
|
|
|
:ref="`fromlabel-${formLabel.label}`"
|
|
|
|
@getCompleteList="getCompleteListFun" @selectFirst="getSelectFirst"></formLabel>
|
|
|
|
:labelData="formLabel"
|
|
|
|
|
|
|
|
:formRes="formRes"
|
|
|
|
|
|
|
|
:resetType="ResetType"
|
|
|
|
|
|
|
|
:formIndex="findex"
|
|
|
|
|
|
|
|
@change="formChange"
|
|
|
|
|
|
|
|
@pressEnter="pressEnterFun"
|
|
|
|
|
|
|
|
@getCompleteList="getCompleteListFun"
|
|
|
|
|
|
|
|
@selectFirst="getSelectFirst"></formLabel>
|
|
|
|
</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 :xl="formBtnCol || (!advanced && 8)" :lg="24" :md="24" :sm="24">
|
|
|
|
<span class="table-page-search-submitButtons"
|
|
|
|
<span
|
|
|
|
|
|
|
|
class="table-page-search-submitButtons"
|
|
|
|
:style="(advanced && { float: 'right', overflow: 'hidden' }) || {}">
|
|
|
|
:style="(advanced && { float: 'right', overflow: 'hidden' }) || {}">
|
|
|
|
<a-button size="small" type="primary" @click="tableRefresh">查询</a-button>
|
|
|
|
<a-button size="small" type="primary" @click="tableRefresh">查询</a-button>
|
|
|
|
<a-button size="small" class="reset" @click="tableReset">重置</a-button>
|
|
|
|
<a-button size="small" class="reset" @click="tableReset">重置</a-button>
|
|
|
@ -72,7 +85,11 @@
|
|
|
|
>
|
|
|
|
>
|
|
|
|
<div class="nav"><i class="iconfont icon-duibi"></i>下货纸比对</div>
|
|
|
|
<div class="nav"><i class="iconfont icon-duibi"></i>下货纸比对</div>
|
|
|
|
</a-popconfirm> -->
|
|
|
|
</a-popconfirm> -->
|
|
|
|
<a-popconfirm title="确定删除当前选中订舱?" ok-text="是" cancel-text="否" @confirm="removeMoreFun"
|
|
|
|
<a-popconfirm
|
|
|
|
|
|
|
|
title="确定删除当前选中订舱?"
|
|
|
|
|
|
|
|
ok-text="是"
|
|
|
|
|
|
|
|
cancel-text="否"
|
|
|
|
|
|
|
|
@confirm="removeMoreFun"
|
|
|
|
@cancel="cancelRemove">
|
|
|
|
@cancel="cancelRemove">
|
|
|
|
<div class="nav"><i class="iconfont icon-shanchu2"></i>删除</div>
|
|
|
|
<div class="nav"><i class="iconfont icon-shanchu2"></i>删除</div>
|
|
|
|
</a-popconfirm>
|
|
|
|
</a-popconfirm>
|
|
|
@ -111,11 +128,20 @@
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
</vxe-toolbar>
|
|
|
|
</vxe-toolbar>
|
|
|
|
<vxe-grid ref="xGrid" v-bind="gridOptions" row-class-name="line-box" :height="tableHeight"
|
|
|
|
<vxe-grid
|
|
|
|
:checkbox_config="{ checkField: 'checked' }" :scroll-x="{ gt: 10, oSize: 10, enabled: false }"
|
|
|
|
ref="xGrid"
|
|
|
|
:scroll-y="{ gt: 20, oSize: 20, enabled: true }" @page-change="handlePageChange"
|
|
|
|
v-bind="gridOptions"
|
|
|
|
@cell-dblclick="handledbclick" :sort-config="{ sortMethod: customSortMethod }"
|
|
|
|
row-class-name="line-box"
|
|
|
|
@resizable-change="resizableChange" @sort-change="tableSortChange" @scroll="pageClick"
|
|
|
|
:height="tableHeight"
|
|
|
|
|
|
|
|
:checkbox_config="{ checkField: 'checked' }"
|
|
|
|
|
|
|
|
:scroll-x="{ gt: 10, oSize: 10, enabled: false }"
|
|
|
|
|
|
|
|
:scroll-y="{ gt: 20, oSize: 20, enabled: true }"
|
|
|
|
|
|
|
|
@page-change="handlePageChange"
|
|
|
|
|
|
|
|
@cell-dblclick="handledbclick"
|
|
|
|
|
|
|
|
:sort-config="{ sortMethod: customSortMethod }"
|
|
|
|
|
|
|
|
@resizable-change="resizableChange"
|
|
|
|
|
|
|
|
@sort-change="tableSortChange"
|
|
|
|
|
|
|
|
@scroll="pageClick"
|
|
|
|
@checkbox-change="checkboxChangeEvent">
|
|
|
|
@checkbox-change="checkboxChangeEvent">
|
|
|
|
<template #mblno="{ row }">
|
|
|
|
<template #mblno="{ row }">
|
|
|
|
<div class="mblno">
|
|
|
|
<div class="mblno">
|
|
|
@ -154,7 +180,11 @@
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
<template #operate="{ row }">
|
|
|
|
<template #operate="{ row }">
|
|
|
|
<vxe-button class="operate-btn" type="text" icon="vxe-icon-edit" @click="editColumns(row)"></vxe-button>
|
|
|
|
<vxe-button class="operate-btn" type="text" icon="vxe-icon-edit" @click="editColumns(row)"></vxe-button>
|
|
|
|
<a-popconfirm title="确定删除当前订舱?" ok-text="是" cancel-text="否" @confirm="removeFun(row)"
|
|
|
|
<a-popconfirm
|
|
|
|
|
|
|
|
title="确定删除当前订舱?"
|
|
|
|
|
|
|
|
ok-text="是"
|
|
|
|
|
|
|
|
cancel-text="否"
|
|
|
|
|
|
|
|
@confirm="removeFun(row)"
|
|
|
|
@cancel="cancelRemove">
|
|
|
|
@cancel="cancelRemove">
|
|
|
|
<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>
|
|
|
@ -215,7 +245,9 @@
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</a-popover>
|
|
|
|
</a-popover>
|
|
|
|
|
|
|
|
|
|
|
|
<a-icon class="TablelstShipOrderCompareRltRedo" @click="excuteShippingOrderCompareBatch(row)"
|
|
|
|
<a-icon
|
|
|
|
|
|
|
|
class="TablelstShipOrderCompareRltRedo"
|
|
|
|
|
|
|
|
@click="excuteShippingOrderCompareBatch(row)"
|
|
|
|
type="redo" />
|
|
|
|
type="redo" />
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
@ -267,8 +299,11 @@
|
|
|
|
</x-card>
|
|
|
|
</x-card>
|
|
|
|
</a-col>
|
|
|
|
</a-col>
|
|
|
|
</a-row>
|
|
|
|
</a-row>
|
|
|
|
<a-modal :title="TaskShippingOrderCompareData.isExistsDiff ? '下货纸比对(有差异)' : '下货纸比对(正常)'"
|
|
|
|
<a-modal
|
|
|
|
@cancel="TaskShippingOrderCompareHandleCancel" :visible="TaskShippingOrderCompareVisible" width="40%">
|
|
|
|
:title="TaskShippingOrderCompareData.isExistsDiff ? '下货纸比对(有差异)' : '下货纸比对(正常)'"
|
|
|
|
|
|
|
|
@cancel="TaskShippingOrderCompareHandleCancel"
|
|
|
|
|
|
|
|
:visible="TaskShippingOrderCompareVisible"
|
|
|
|
|
|
|
|
width="40%">
|
|
|
|
<template slot="footer">
|
|
|
|
<template slot="footer">
|
|
|
|
<a-button key="back" @click="TaskShippingOrderCompareHandleCancel"> 关闭 </a-button>
|
|
|
|
<a-button key="back" @click="TaskShippingOrderCompareHandleCancel"> 关闭 </a-button>
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
@ -295,8 +330,10 @@
|
|
|
|
<p>{{ TaskShippingOrderCompareData.mBlNo }}</p>
|
|
|
|
<p>{{ TaskShippingOrderCompareData.mBlNo }}</p>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="TaskShippingOrderCompareMainList"
|
|
|
|
<div
|
|
|
|
v-for="(item, index) in TaskShippingOrderCompareData.showDetailList" :key="index"
|
|
|
|
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.fieldName }}:</p>
|
|
|
|
<p>{{ item.reqVal }}</p>
|
|
|
|
<p>{{ item.reqVal }}</p>
|
|
|
@ -319,8 +356,11 @@
|
|
|
|
<p>箱信息:(场站数据)</p>
|
|
|
|
<p>箱信息:(场站数据)</p>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div v-for="(item, index) in TaskShippingOrderCompareData.showDetailList" :key="index"
|
|
|
|
<div
|
|
|
|
v-show="item.pCode == 'ContaList'" :class="item.fieldName == '箱号' ? 'TaskShippingOrderCompareMainList BoxNo' : 'TaskShippingOrderCompareMainList'
|
|
|
|
v-for="(item, index) in TaskShippingOrderCompareData.showDetailList"
|
|
|
|
|
|
|
|
:key="index"
|
|
|
|
|
|
|
|
v-show="item.pCode == 'ContaList'"
|
|
|
|
|
|
|
|
:class="item.fieldName == '箱号' ? 'TaskShippingOrderCompareMainList BoxNo' : 'TaskShippingOrderCompareMainList'
|
|
|
|
">
|
|
|
|
">
|
|
|
|
<p>{{ item.fieldName }}:</p>
|
|
|
|
<p>{{ item.fieldName }}:</p>
|
|
|
|
<p>{{ item.reqVal }}</p>
|
|
|
|
<p>{{ item.reqVal }}</p>
|
|
|
@ -358,18 +398,34 @@
|
|
|
|
</a-radio-group>
|
|
|
|
</a-radio-group>
|
|
|
|
</a-modal>
|
|
|
|
</a-modal>
|
|
|
|
|
|
|
|
|
|
|
|
<a-modal title="多提单号查询" :maskClosable="false" :width="400" :visible="moreNumVisible" @ok="moreNumSubmit"
|
|
|
|
<a-modal
|
|
|
|
|
|
|
|
title="多提单号查询"
|
|
|
|
|
|
|
|
:maskClosable="false"
|
|
|
|
|
|
|
|
:width="400"
|
|
|
|
|
|
|
|
:visible="moreNumVisible"
|
|
|
|
|
|
|
|
@ok="moreNumSubmit"
|
|
|
|
@cancel="moreNumCancel">
|
|
|
|
@cancel="moreNumCancel">
|
|
|
|
<div>
|
|
|
|
<div>
|
|
|
|
<a-textarea v-model="moreNumVal" style="height: 200px" />
|
|
|
|
<a-textarea v-model="moreNumVal" style="height: 200px" />
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</a-modal>
|
|
|
|
</a-modal>
|
|
|
|
|
|
|
|
|
|
|
|
<setFormModel ref="setForm" :formData="formData" :formAllData="formMoreData" type="from" @ok="submitForm"
|
|
|
|
<setFormModel
|
|
|
|
|
|
|
|
ref="setForm"
|
|
|
|
|
|
|
|
:formData="formData"
|
|
|
|
|
|
|
|
:formAllData="formMoreData"
|
|
|
|
|
|
|
|
type="from"
|
|
|
|
|
|
|
|
@ok="submitForm"
|
|
|
|
v-if="formMoreData"></setFormModel>
|
|
|
|
v-if="formMoreData"></setFormModel>
|
|
|
|
|
|
|
|
|
|
|
|
<setFormModel ref="setTableForm" :formData="formTableData" :formAllData="formMoreTableData" :maxNum="30"
|
|
|
|
<setFormModel
|
|
|
|
type="table" @ok="submitTableForm" v-if="formMoreTableData"></setFormModel>
|
|
|
|
ref="setTableForm"
|
|
|
|
|
|
|
|
:formData="formTableData"
|
|
|
|
|
|
|
|
:formAllData="formMoreTableData"
|
|
|
|
|
|
|
|
:maxNum="30"
|
|
|
|
|
|
|
|
type="table"
|
|
|
|
|
|
|
|
@ok="submitTableForm"
|
|
|
|
|
|
|
|
v-if="formMoreTableData"></setFormModel>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="hovers-list" :style="{ top: `${remarkScreenY}px`, left: `${remarkScreenX}px` }" v-if="remarkShow">
|
|
|
|
<div class="hovers-list" :style="{ top: `${remarkScreenY}px`, left: `${remarkScreenX}px` }" v-if="remarkShow">
|
|
|
|
<div class="title">备注内容:</div>
|
|
|
|
<div class="title">备注内容:</div>
|
|
|
@ -379,11 +435,14 @@
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- v-show="goodStatusShow" -->
|
|
|
|
<!-- v-show="goodStatusShow" -->
|
|
|
|
<div class="goods-hovers-list" :class="[
|
|
|
|
<div
|
|
|
|
|
|
|
|
class="goods-hovers-list"
|
|
|
|
|
|
|
|
:class="[
|
|
|
|
{ 'hide-goods-hover': !goodStatusShow },
|
|
|
|
{ 'hide-goods-hover': !goodStatusShow },
|
|
|
|
{ 'seat-top': goodStatusSeat === 'top' },
|
|
|
|
{ 'seat-top': goodStatusSeat === 'top' },
|
|
|
|
{ 'seat-bottom': goodStatusSeat === 'bottom' }
|
|
|
|
{ 'seat-bottom': goodStatusSeat === 'bottom' }
|
|
|
|
]" :style="{ top: `${goodStatusScreenY}px`, left: `${goodStatusScreenX}px` }">
|
|
|
|
]"
|
|
|
|
|
|
|
|
:style="{ top: `${goodStatusScreenY}px`, left: `${goodStatusScreenX}px` }">
|
|
|
|
<div class="title">货运动态</div>
|
|
|
|
<div class="title">货运动态</div>
|
|
|
|
<template v-for="(goodStatusItem, gindex) in goodStatusData">
|
|
|
|
<template v-for="(goodStatusItem, gindex) in goodStatusData">
|
|
|
|
<template v-if="goodStatusItem.finishTime || goodStatusItem.remark">
|
|
|
|
<template v-if="goodStatusItem.finishTime || goodStatusItem.remark">
|
|
|
@ -410,9 +469,16 @@
|
|
|
|
<a-form>
|
|
|
|
<a-form>
|
|
|
|
<a-row :gutter="16">
|
|
|
|
<a-row :gutter="16">
|
|
|
|
<a-col :span="24" class="book-model-box">
|
|
|
|
<a-col :span="24" class="book-model-box">
|
|
|
|
<a-form-item label="请选择订阅内容" :labelCol="{ xs: { span: 24 }, sm: { span: 6 } }"
|
|
|
|
<a-form-item
|
|
|
|
:wrapperCol="{ xs: { span: 24 }, sm: { span: 15 } }" has-feedback>
|
|
|
|
label="请选择订阅内容"
|
|
|
|
<a-checkbox-group class="trace-check" v-model="traceValue" name="checkboxgroup" :options="traceOptions"
|
|
|
|
:labelCol="{ xs: { span: 24 }, sm: { span: 6 } }"
|
|
|
|
|
|
|
|
:wrapperCol="{ xs: { span: 24 }, sm: { span: 15 } }"
|
|
|
|
|
|
|
|
has-feedback>
|
|
|
|
|
|
|
|
<a-checkbox-group
|
|
|
|
|
|
|
|
class="trace-check"
|
|
|
|
|
|
|
|
v-model="traceValue"
|
|
|
|
|
|
|
|
name="checkboxgroup"
|
|
|
|
|
|
|
|
:options="traceOptions"
|
|
|
|
@change="onTraceChange" />
|
|
|
|
@change="onTraceChange" />
|
|
|
|
</a-form-item>
|
|
|
|
</a-form-item>
|
|
|
|
</a-col>
|
|
|
|
</a-col>
|
|
|
@ -423,18 +489,33 @@
|
|
|
|
<a-button type="primary" @click="traceSend">订阅</a-button>
|
|
|
|
<a-button type="primary" @click="traceSend">订阅</a-button>
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
</a-modal>
|
|
|
|
</a-modal>
|
|
|
|
<a-modal width="820px" :maskClosable="false" v-model="editingModalVisible" title="批量编辑" @ok="editingHandleOk"
|
|
|
|
<a-modal
|
|
|
|
|
|
|
|
width="820px"
|
|
|
|
|
|
|
|
:maskClosable="false"
|
|
|
|
|
|
|
|
v-model="editingModalVisible"
|
|
|
|
|
|
|
|
title="批量编辑"
|
|
|
|
|
|
|
|
@ok="editingHandleOk"
|
|
|
|
@cancel="editingHandleCancel">
|
|
|
|
@cancel="editingHandleCancel">
|
|
|
|
<div class="trace-box">
|
|
|
|
<div class="trace-box">
|
|
|
|
<a-form :form="editingForm">
|
|
|
|
<a-form :form="editingForm">
|
|
|
|
<a-row :gutter="26">
|
|
|
|
<a-row :gutter="26">
|
|
|
|
<a-col :span="12" class="book-model-box">
|
|
|
|
<a-col :span="12" class="book-model-box">
|
|
|
|
<a-form-item label="船名" :labelCol="{ xs: { span: 24 }, sm: { span: 5 } }"
|
|
|
|
<a-form-item
|
|
|
|
:wrapperCol="{ xs: { span: 24 }, sm: { span: 18 } }" has-feedback>
|
|
|
|
label="船名"
|
|
|
|
<a-select placeholder="请选择船名"
|
|
|
|
:labelCol="{ xs: { span: 24 }, sm: { span: 5 } }"
|
|
|
|
v-decorator="['vessel', { rules: [{ required: true, message: '请选择船名!' }] }]" show-search
|
|
|
|
:wrapperCol="{ xs: { span: 24 }, sm: { span: 18 } }"
|
|
|
|
@focus="vesselSearch" @search="vesselSearch" @blur="vesselBlur" :default-active-first-option="false"
|
|
|
|
has-feedback>
|
|
|
|
:show-arrow="false" :filter-option="false" :not-found-content="null">
|
|
|
|
<a-select
|
|
|
|
|
|
|
|
placeholder="请选择船名"
|
|
|
|
|
|
|
|
v-decorator="['vessel', { rules: [{ required: true, message: '请选择船名!' }] }]"
|
|
|
|
|
|
|
|
show-search
|
|
|
|
|
|
|
|
@focus="vesselSearch"
|
|
|
|
|
|
|
|
@search="vesselSearch"
|
|
|
|
|
|
|
|
@blur="vesselBlur"
|
|
|
|
|
|
|
|
:default-active-first-option="false"
|
|
|
|
|
|
|
|
:show-arrow="false"
|
|
|
|
|
|
|
|
:filter-option="false"
|
|
|
|
|
|
|
|
:not-found-content="null">
|
|
|
|
<a-select-option v-for="item in vesselData" :key="item.name" :value="item.name">
|
|
|
|
<a-select-option v-for="item in vesselData" :key="item.name" :value="item.name">
|
|
|
|
{{ item.name }}
|
|
|
|
{{ item.name }}
|
|
|
|
</a-select-option>
|
|
|
|
</a-select-option>
|
|
|
@ -442,31 +523,54 @@
|
|
|
|
</a-form-item>
|
|
|
|
</a-form-item>
|
|
|
|
</a-col>
|
|
|
|
</a-col>
|
|
|
|
<a-col :span="12" class="book-model-box">
|
|
|
|
<a-col :span="12" class="book-model-box">
|
|
|
|
<a-form-item label="开船日期" :labelCol="{ xs: { span: 24 }, sm: { span: 5 } }"
|
|
|
|
<a-form-item
|
|
|
|
:wrapperCol="{ xs: { span: 24 }, sm: { span: 18 } }" has-feedback>
|
|
|
|
label="开船日期"
|
|
|
|
<a-date-picker v-decorator="['etd', { rules: [{ required: true, message: '请选择开船日期!' }] }]"
|
|
|
|
:labelCol="{ xs: { span: 24 }, sm: { span: 5 } }"
|
|
|
|
:style="{ width: '100%' }" placeholder="请选择开船日期" valueFormat="YYYY-MM-DD" />
|
|
|
|
:wrapperCol="{ xs: { span: 24 }, sm: { span: 18 } }"
|
|
|
|
|
|
|
|
has-feedback>
|
|
|
|
|
|
|
|
<a-date-picker
|
|
|
|
|
|
|
|
v-decorator="['etd', { rules: [{ required: true, message: '请选择开船日期!' }] }]"
|
|
|
|
|
|
|
|
:style="{ width: '100%' }"
|
|
|
|
|
|
|
|
placeholder="请选择开船日期"
|
|
|
|
|
|
|
|
valueFormat="YYYY-MM-DD" />
|
|
|
|
</a-form-item>
|
|
|
|
</a-form-item>
|
|
|
|
</a-col>
|
|
|
|
</a-col>
|
|
|
|
<a-col :span="12" class="book-model-box">
|
|
|
|
<a-col :span="12" class="book-model-box">
|
|
|
|
<a-form-item label="内部航次" :labelCol="{ xs: { span: 24 }, sm: { span: 5 } }"
|
|
|
|
<a-form-item
|
|
|
|
:wrapperCol="{ xs: { span: 24 }, sm: { span: 18 } }" has-feedback>
|
|
|
|
label="内部航次"
|
|
|
|
|
|
|
|
:labelCol="{ xs: { span: 24 }, sm: { span: 5 } }"
|
|
|
|
|
|
|
|
:wrapperCol="{ xs: { span: 24 }, sm: { span: 18 } }"
|
|
|
|
|
|
|
|
has-feedback>
|
|
|
|
<a-input v-decorator="['voynoinner']" />
|
|
|
|
<a-input v-decorator="['voynoinner']" />
|
|
|
|
</a-form-item>
|
|
|
|
</a-form-item>
|
|
|
|
</a-col>
|
|
|
|
</a-col>
|
|
|
|
|
|
|
|
|
|
|
|
<a-col :span="12" class="book-model-box">
|
|
|
|
<a-col :span="12" class="book-model-box">
|
|
|
|
<a-form-item label="海关航次" :labelCol="{ xs: { span: 24 }, sm: { span: 5 } }"
|
|
|
|
<a-form-item
|
|
|
|
:wrapperCol="{ xs: { span: 24 }, sm: { span: 18 } }" has-feedback>
|
|
|
|
label="海关航次"
|
|
|
|
|
|
|
|
:labelCol="{ xs: { span: 24 }, sm: { span: 5 } }"
|
|
|
|
|
|
|
|
:wrapperCol="{ xs: { span: 24 }, sm: { span: 18 } }"
|
|
|
|
|
|
|
|
has-feedback>
|
|
|
|
<a-input v-decorator="['voyno']" />
|
|
|
|
<a-input v-decorator="['voyno']" />
|
|
|
|
</a-form-item>
|
|
|
|
</a-form-item>
|
|
|
|
</a-col>
|
|
|
|
</a-col>
|
|
|
|
<a-col :span="12" class="book-model-box">
|
|
|
|
<a-col :span="12" class="book-model-box">
|
|
|
|
<a-form-item label="卸货港" :labelCol="{ xs: { span: 24 }, sm: { span: 5 } }"
|
|
|
|
<a-form-item
|
|
|
|
:wrapperCol="{ xs: { span: 24 }, sm: { span: 18 } }" has-feedback>
|
|
|
|
label="卸货港"
|
|
|
|
<a-select placeholder="请选择卸货港" v-decorator="['portDischarge']" show-search @focus="portDischargeSearch"
|
|
|
|
:labelCol="{ xs: { span: 24 }, sm: { span: 5 } }"
|
|
|
|
@search="portDischargeSearch" @change="portDischargeChange" :default-active-first-option="false"
|
|
|
|
:wrapperCol="{ xs: { span: 24 }, sm: { span: 18 } }"
|
|
|
|
:show-arrow="false" :filter-option="false" :not-found-content="null">
|
|
|
|
has-feedback>
|
|
|
|
|
|
|
|
<a-select
|
|
|
|
|
|
|
|
placeholder="请选择卸货港"
|
|
|
|
|
|
|
|
v-decorator="['portDischarge']"
|
|
|
|
|
|
|
|
show-search
|
|
|
|
|
|
|
|
@focus="portDischargeSearch"
|
|
|
|
|
|
|
|
@search="portDischargeSearch"
|
|
|
|
|
|
|
|
@change="portDischargeChange"
|
|
|
|
|
|
|
|
:default-active-first-option="false"
|
|
|
|
|
|
|
|
:show-arrow="false"
|
|
|
|
|
|
|
|
:filter-option="false"
|
|
|
|
|
|
|
|
:not-found-content="null">
|
|
|
|
<a-select-option v-for="item in portDischargeData" :key="item.code" :value="item.enName">
|
|
|
|
<a-select-option v-for="item in portDischargeData" :key="item.code" :value="item.enName">
|
|
|
|
{{ item.enName }}
|
|
|
|
{{ item.enName }}
|
|
|
|
</a-select-option>
|
|
|
|
</a-select-option>
|
|
|
@ -474,17 +578,31 @@
|
|
|
|
</a-form-item>
|
|
|
|
</a-form-item>
|
|
|
|
</a-col>
|
|
|
|
</a-col>
|
|
|
|
<a-col :span="12" class="book-model-box">
|
|
|
|
<a-col :span="12" class="book-model-box">
|
|
|
|
<a-form-item label="卸货代码" :labelCol="{ xs: { span: 24 }, sm: { span: 5 } }"
|
|
|
|
<a-form-item
|
|
|
|
:wrapperCol="{ xs: { span: 24 }, sm: { span: 18 } }" has-feedback>
|
|
|
|
label="卸货代码"
|
|
|
|
|
|
|
|
:labelCol="{ xs: { span: 24 }, sm: { span: 5 } }"
|
|
|
|
|
|
|
|
:wrapperCol="{ xs: { span: 24 }, sm: { span: 18 } }"
|
|
|
|
|
|
|
|
has-feedback>
|
|
|
|
<a-input v-decorator="['portDischargeId']" />
|
|
|
|
<a-input v-decorator="['portDischargeId']" />
|
|
|
|
</a-form-item>
|
|
|
|
</a-form-item>
|
|
|
|
</a-col>
|
|
|
|
</a-col>
|
|
|
|
<a-col :span="12" class="book-model-box">
|
|
|
|
<a-col :span="12" class="book-model-box">
|
|
|
|
<a-form-item label="目的港" :labelCol="{ xs: { span: 24 }, sm: { span: 5 } }"
|
|
|
|
<a-form-item
|
|
|
|
:wrapperCol="{ xs: { span: 24 }, sm: { span: 18 } }" has-feedback>
|
|
|
|
label="目的港"
|
|
|
|
<a-select placeholder="请选择目的港" v-decorator="['destination']" show-search @focus="destinationSearch"
|
|
|
|
:labelCol="{ xs: { span: 24 }, sm: { span: 5 } }"
|
|
|
|
@search="destinationSearch" @change="destinationChange" :default-active-first-option="false"
|
|
|
|
:wrapperCol="{ xs: { span: 24 }, sm: { span: 18 } }"
|
|
|
|
:show-arrow="false" :filter-option="false" :not-found-content="null">
|
|
|
|
has-feedback>
|
|
|
|
|
|
|
|
<a-select
|
|
|
|
|
|
|
|
placeholder="请选择目的港"
|
|
|
|
|
|
|
|
v-decorator="['destination']"
|
|
|
|
|
|
|
|
show-search
|
|
|
|
|
|
|
|
@focus="destinationSearch"
|
|
|
|
|
|
|
|
@search="destinationSearch"
|
|
|
|
|
|
|
|
@change="destinationChange"
|
|
|
|
|
|
|
|
:default-active-first-option="false"
|
|
|
|
|
|
|
|
:show-arrow="false"
|
|
|
|
|
|
|
|
:filter-option="false"
|
|
|
|
|
|
|
|
:not-found-content="null">
|
|
|
|
<a-select-option v-for="item in destinationData" :key="item.code" :value="item.enName">
|
|
|
|
<a-select-option v-for="item in destinationData" :key="item.code" :value="item.enName">
|
|
|
|
{{ item.enName }}
|
|
|
|
{{ item.enName }}
|
|
|
|
</a-select-option>
|
|
|
|
</a-select-option>
|
|
|
@ -492,29 +610,65 @@
|
|
|
|
</a-form-item>
|
|
|
|
</a-form-item>
|
|
|
|
</a-col>
|
|
|
|
</a-col>
|
|
|
|
<a-col :span="12" class="book-model-box">
|
|
|
|
<a-col :span="12" class="book-model-box">
|
|
|
|
<a-form-item label="目的代码" :labelCol="{ xs: { span: 24 }, sm: { span: 5 } }"
|
|
|
|
<a-form-item
|
|
|
|
:wrapperCol="{ xs: { span: 24 }, sm: { span: 18 } }" has-feedback>
|
|
|
|
label="目的代码"
|
|
|
|
|
|
|
|
:labelCol="{ xs: { span: 24 }, sm: { span: 5 } }"
|
|
|
|
|
|
|
|
:wrapperCol="{ xs: { span: 24 }, sm: { span: 18 } }"
|
|
|
|
|
|
|
|
has-feedback>
|
|
|
|
<a-input v-decorator="['destinationid']" />
|
|
|
|
<a-input v-decorator="['destinationid']" />
|
|
|
|
</a-form-item>
|
|
|
|
</a-form-item>
|
|
|
|
</a-col>
|
|
|
|
</a-col>
|
|
|
|
<a-col :span="12" class="book-model-box">
|
|
|
|
<a-col :span="12" class="book-model-box">
|
|
|
|
<a-form-item label="截港时间" :labelCol="{ xs: { span: 24 }, sm: { span: 5 } }"
|
|
|
|
<a-form-item
|
|
|
|
:wrapperCol="{ xs: { span: 24 }, sm: { span: 18 } }" has-feedback>
|
|
|
|
label="截港时间"
|
|
|
|
<a-date-picker show-time v-decorator="['closingdate']" :style="{ width: '100%' }" placeholder="请选择截港时间"
|
|
|
|
:labelCol="{ xs: { span: 24 }, sm: { span: 5 } }"
|
|
|
|
valueFormat="YYYY-MM-DD HH:mm:ss" format="YYYY-MM-DD HH" />
|
|
|
|
:wrapperCol="{ xs: { span: 24 }, sm: { span: 18 } }"
|
|
|
|
|
|
|
|
has-feedback>
|
|
|
|
|
|
|
|
<a-date-picker
|
|
|
|
|
|
|
|
show-time
|
|
|
|
|
|
|
|
v-decorator="['closingdate']"
|
|
|
|
|
|
|
|
:style="{ width: '100%' }"
|
|
|
|
|
|
|
|
placeholder="请选择截港时间"
|
|
|
|
|
|
|
|
valueFormat="YYYY-MM-DD HH:mm:ss"
|
|
|
|
|
|
|
|
format="YYYY-MM-DD HH" />
|
|
|
|
</a-form-item>
|
|
|
|
</a-form-item>
|
|
|
|
</a-col>
|
|
|
|
</a-col>
|
|
|
|
<a-col :span="12" class="book-model-box">
|
|
|
|
<a-col :span="12" class="book-model-box">
|
|
|
|
<a-form-item label="截单时间" :labelCol="{ xs: { span: 24 }, sm: { span: 5 } }"
|
|
|
|
<a-form-item
|
|
|
|
:wrapperCol="{ xs: { span: 24 }, sm: { span: 18 } }" has-feedback>
|
|
|
|
label="截单时间"
|
|
|
|
<a-date-picker show-time v-decorator="['closedocdate']" :style="{ width: '100%' }" placeholder="请选择截单时间"
|
|
|
|
:labelCol="{ xs: { span: 24 }, sm: { span: 5 } }"
|
|
|
|
valueFormat="YYYY-MM-DD HH:mm:ss" format="YYYY-MM-DD HH" />
|
|
|
|
:wrapperCol="{ xs: { span: 24 }, sm: { span: 18 } }"
|
|
|
|
|
|
|
|
has-feedback>
|
|
|
|
|
|
|
|
<a-date-picker
|
|
|
|
|
|
|
|
show-time
|
|
|
|
|
|
|
|
v-decorator="['closedocdate']"
|
|
|
|
|
|
|
|
:style="{ width: '100%' }"
|
|
|
|
|
|
|
|
placeholder="请选择截单时间"
|
|
|
|
|
|
|
|
valueFormat="YYYY-MM-DD HH:mm:ss"
|
|
|
|
|
|
|
|
format="YYYY-MM-DD HH" />
|
|
|
|
</a-form-item>
|
|
|
|
</a-form-item>
|
|
|
|
</a-col>
|
|
|
|
</a-col>
|
|
|
|
</a-row>
|
|
|
|
</a-row>
|
|
|
|
</a-form>
|
|
|
|
</a-form>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</a-modal>
|
|
|
|
</a-modal>
|
|
|
|
|
|
|
|
<a-modal
|
|
|
|
|
|
|
|
title="提示信息"
|
|
|
|
|
|
|
|
:visible="bcFileFlag"
|
|
|
|
|
|
|
|
:footer="null"
|
|
|
|
|
|
|
|
@cancel="bcFileFlag=false"
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
<div class="bcfile-title">
|
|
|
|
|
|
|
|
<a-icon style="margin-right: 10px;" type="copy" />时间{{ bcFile.executeTime }}
|
|
|
|
|
|
|
|
<span> {{ bcFile.batchTotal }}</span>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="bc-box">
|
|
|
|
|
|
|
|
<div class="bc-item" v-for="(item,index) in bcFile.ext" :key="index">
|
|
|
|
|
|
|
|
<span>{{ item.bno }}</span>
|
|
|
|
|
|
|
|
<span> {{ item.msg }}</span>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</a-modal>
|
|
|
|
</a-spin>
|
|
|
|
</a-spin>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
@ -543,7 +697,8 @@ import {
|
|
|
|
DjyUserConfigMulti,
|
|
|
|
DjyUserConfigMulti,
|
|
|
|
DeleteBookingOrder,
|
|
|
|
DeleteBookingOrder,
|
|
|
|
ExcuteShippingOrderCompareBatch,
|
|
|
|
ExcuteShippingOrderCompareBatch,
|
|
|
|
GetTenantLineList
|
|
|
|
GetTenantLineList,
|
|
|
|
|
|
|
|
downloadBookingConfirm
|
|
|
|
} from '@/api/modular/main/BookingLedger'
|
|
|
|
} from '@/api/modular/main/BookingLedger'
|
|
|
|
|
|
|
|
|
|
|
|
import initData from './modules/initData'
|
|
|
|
import initData from './modules/initData'
|
|
|
@ -651,7 +806,9 @@ export default {
|
|
|
|
portDischargeData: [],
|
|
|
|
portDischargeData: [],
|
|
|
|
destinationData: [],
|
|
|
|
destinationData: [],
|
|
|
|
RcarrierData: [],
|
|
|
|
RcarrierData: [],
|
|
|
|
RecentlyCarrierData: []
|
|
|
|
RecentlyCarrierData: [],
|
|
|
|
|
|
|
|
bcFile: {},
|
|
|
|
|
|
|
|
bcFileFlag: false
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
},
|
|
|
|
computed: {
|
|
|
|
computed: {
|
|
|
@ -753,7 +910,29 @@ export default {
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
},
|
|
|
|
handleDownByBc() { },
|
|
|
|
handleDownByBc() {
|
|
|
|
|
|
|
|
const select = this.$refs.xGrid.getCheckboxRecords()
|
|
|
|
|
|
|
|
const pkIdArr = select.map((item, index) => {
|
|
|
|
|
|
|
|
return item.id
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
if (pkIdArr.length === 0) {
|
|
|
|
|
|
|
|
this.$message.error('请至少选择一条数据')
|
|
|
|
|
|
|
|
return false
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
downloadBookingConfirm(pkIdArr)
|
|
|
|
|
|
|
|
.then((res) => {
|
|
|
|
|
|
|
|
if (res.success) {
|
|
|
|
|
|
|
|
this.bcFileFlag = true
|
|
|
|
|
|
|
|
this.bcFile = res.data
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
this.$message.error(res.message)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
.catch((err) => {
|
|
|
|
|
|
|
|
console.log(err)
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
},
|
|
|
|
// 批量编辑
|
|
|
|
// 批量编辑
|
|
|
|
editingHandleOk() {
|
|
|
|
editingHandleOk() {
|
|
|
|
const {
|
|
|
|
const {
|
|
|
@ -898,7 +1077,6 @@ export default {
|
|
|
|
})
|
|
|
|
})
|
|
|
|
},
|
|
|
|
},
|
|
|
|
setSort(item) {
|
|
|
|
setSort(item) {
|
|
|
|
|
|
|
|
|
|
|
|
const key = JSON.parse(item.configJson).key
|
|
|
|
const key = JSON.parse(item.configJson).key
|
|
|
|
const sort = JSON.parse(item.configJson).sort
|
|
|
|
const sort = JSON.parse(item.configJson).sort
|
|
|
|
this.tableOrderLabel = key || ''
|
|
|
|
this.tableOrderLabel = key || ''
|
|
|
@ -909,7 +1087,7 @@ export default {
|
|
|
|
// 船公司 - start
|
|
|
|
// 船公司 - start
|
|
|
|
getCarrier() {
|
|
|
|
getCarrier() {
|
|
|
|
const Rdata = (data) => {
|
|
|
|
const Rdata = (data) => {
|
|
|
|
let RData = {}
|
|
|
|
const RData = {}
|
|
|
|
for (var i = 0; i < 26; i++) {
|
|
|
|
for (var i = 0; i < 26; i++) {
|
|
|
|
RData[String.fromCharCode(65 + i)] = []
|
|
|
|
RData[String.fromCharCode(65 + i)] = []
|
|
|
|
data.forEach((item) => {
|
|
|
|
data.forEach((item) => {
|
|
|
@ -918,14 +1096,14 @@ export default {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|
|
|
|
let Obj = {
|
|
|
|
const Obj = {
|
|
|
|
'A-D': ['A', 'B', 'C', 'D'],
|
|
|
|
'A-D': ['A', 'B', 'C', 'D'],
|
|
|
|
'E-L': ['E', 'F', 'G', 'H', 'I', 'J', 'K', 'L'],
|
|
|
|
'E-L': ['E', 'F', 'G', 'H', 'I', 'J', 'K', 'L'],
|
|
|
|
'M-R': ['M', 'N', 'O', 'P', 'Q', 'R'],
|
|
|
|
'M-R': ['M', 'N', 'O', 'P', 'Q', 'R'],
|
|
|
|
'S-U': ['S', 'T', 'U'],
|
|
|
|
'S-U': ['S', 'T', 'U'],
|
|
|
|
'V-Z': ['V', 'W', 'X', 'Y', 'Z']
|
|
|
|
'V-Z': ['V', 'W', 'X', 'Y', 'Z']
|
|
|
|
}
|
|
|
|
}
|
|
|
|
let Data = {
|
|
|
|
const Data = {
|
|
|
|
'A-D': [],
|
|
|
|
'A-D': [],
|
|
|
|
'E-L': [],
|
|
|
|
'E-L': [],
|
|
|
|
'M-R': [],
|
|
|
|
'M-R': [],
|
|
|
@ -955,7 +1133,7 @@ export default {
|
|
|
|
DjyUserConfigGet({ type: 'booking_memory' })
|
|
|
|
DjyUserConfigGet({ type: 'booking_memory' })
|
|
|
|
.then((e) => {
|
|
|
|
.then((e) => {
|
|
|
|
if (e.data) {
|
|
|
|
if (e.data) {
|
|
|
|
let data = []
|
|
|
|
const data = []
|
|
|
|
JSON.parse(e.data.configJson).forEach((item) => {
|
|
|
|
JSON.parse(e.data.configJson).forEach((item) => {
|
|
|
|
res.data.forEach((item2) => {
|
|
|
|
res.data.forEach((item2) => {
|
|
|
|
if (item == item2.code) {
|
|
|
|
if (item == item2.code) {
|
|
|
@ -1131,7 +1309,7 @@ export default {
|
|
|
|
toggleAdvanced() {
|
|
|
|
toggleAdvanced() {
|
|
|
|
this.advanced = !this.advanced
|
|
|
|
this.advanced = !this.advanced
|
|
|
|
this.$forceUpdate()
|
|
|
|
this.$forceUpdate()
|
|
|
|
let start = new Date().getTime()
|
|
|
|
const start = new Date().getTime()
|
|
|
|
console.log('== 点击展开 ==', start)
|
|
|
|
console.log('== 点击展开 ==', start)
|
|
|
|
if (!this.advanced) {
|
|
|
|
if (!this.advanced) {
|
|
|
|
const len = this.formData.length % 4
|
|
|
|
const len = this.formData.length % 4
|
|
|
@ -1409,7 +1587,7 @@ export default {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
},
|
|
|
|
addSubmit() {
|
|
|
|
addSubmit() {
|
|
|
|
let data = []
|
|
|
|
const data = []
|
|
|
|
data.push(this.carrierRadio)
|
|
|
|
data.push(this.carrierRadio)
|
|
|
|
if (this.RecentlyCarrierData.length) {
|
|
|
|
if (this.RecentlyCarrierData.length) {
|
|
|
|
this.RecentlyCarrierData.forEach((item) => {
|
|
|
|
this.RecentlyCarrierData.forEach((item) => {
|
|
|
@ -2832,4 +3010,19 @@ export default {
|
|
|
|
// .more-btn{
|
|
|
|
// .more-btn{
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
|
|
|
|
.bcfile-title{
|
|
|
|
|
|
|
|
border-bottom:1px dashed black;
|
|
|
|
|
|
|
|
padding-bottom: 5px;
|
|
|
|
|
|
|
|
margin-bottom: 10px;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
.bc-box{
|
|
|
|
|
|
|
|
max-height: 200px;
|
|
|
|
|
|
|
|
overflow-y: auto;
|
|
|
|
|
|
|
|
padding-right: 14px;
|
|
|
|
|
|
|
|
.bc-item{
|
|
|
|
|
|
|
|
margin: 7px 0px;
|
|
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
</style>
|
|
|
|
</style>
|
|
|
|