|
|
@ -0,0 +1,689 @@
|
|
|
|
|
|
|
|
<template>
|
|
|
|
|
|
|
|
<div class="Main">
|
|
|
|
|
|
|
|
<a-spin :spinning="spinning">
|
|
|
|
|
|
|
|
<div class="LeftHead">
|
|
|
|
|
|
|
|
<p>POD imports Longstandings Gate out full
|
|
|
|
|
|
|
|
({{ carrier }} )</p>
|
|
|
|
|
|
|
|
<p>时间:{{ time }}</p>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<a-table :scroll="{ x: 1000}" :pagination="false" :columns="columns" :data-source="tableList">
|
|
|
|
|
|
|
|
<span slot="bookingId" slot-scope="text, record">
|
|
|
|
|
|
|
|
<div v-if="record.bookingId > 0" class="point"></div>
|
|
|
|
|
|
|
|
<div v-if="record.bookingId == 0">-</div>
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
<span slot="isComplete" slot-scope="text, record">
|
|
|
|
|
|
|
|
<span v-if="record.isComplete">是</span>
|
|
|
|
|
|
|
|
<span v-else>否</span>
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a-table>
|
|
|
|
|
|
|
|
<a-row style="margin-top: 20px;" type="flex" justify="end" :gutter="16">
|
|
|
|
|
|
|
|
<a-col>
|
|
|
|
|
|
|
|
<a-button type="primary" @click="OpenUser">
|
|
|
|
|
|
|
|
转移任务
|
|
|
|
|
|
|
|
</a-button>
|
|
|
|
|
|
|
|
</a-col>
|
|
|
|
|
|
|
|
<a-col>
|
|
|
|
|
|
|
|
<a-button type="primary" @click="FnCompleteTask">
|
|
|
|
|
|
|
|
完成任务
|
|
|
|
|
|
|
|
</a-button>
|
|
|
|
|
|
|
|
</a-col>
|
|
|
|
|
|
|
|
<a-col>
|
|
|
|
|
|
|
|
<a-button type="danger" @click="FnCancelTask">
|
|
|
|
|
|
|
|
取消任务
|
|
|
|
|
|
|
|
</a-button>
|
|
|
|
|
|
|
|
</a-col>
|
|
|
|
|
|
|
|
<a-col>
|
|
|
|
|
|
|
|
<a-button :loading="sendLoading" type="primary" @click="handleSendMsg">
|
|
|
|
|
|
|
|
推送消息
|
|
|
|
|
|
|
|
</a-button>
|
|
|
|
|
|
|
|
</a-col>
|
|
|
|
|
|
|
|
<a-col>
|
|
|
|
|
|
|
|
<a-button :loading="nextLoading" type="primary" @click="handleNext">
|
|
|
|
|
|
|
|
重新匹配
|
|
|
|
|
|
|
|
</a-button>
|
|
|
|
|
|
|
|
</a-col>
|
|
|
|
|
|
|
|
</a-row>
|
|
|
|
|
|
|
|
</a-spin>
|
|
|
|
|
|
|
|
<a-modal v-model="visible" title="生成方式选择" @ok="handleOk" width="40%">
|
|
|
|
|
|
|
|
<a-radio-group default-value="GEN_BOOKING_SLOT" v-model="CreateData.generateMethod">
|
|
|
|
|
|
|
|
<a-radio value="GEN_BOOKING_SLOT">
|
|
|
|
|
|
|
|
直接生成舱位和订舱
|
|
|
|
|
|
|
|
</a-radio>
|
|
|
|
|
|
|
|
<a-radio value="GEN_BOOKING">
|
|
|
|
|
|
|
|
只生成订舱
|
|
|
|
|
|
|
|
</a-radio>
|
|
|
|
|
|
|
|
<a-radio value="GEN_SLOT">
|
|
|
|
|
|
|
|
只生成舱位
|
|
|
|
|
|
|
|
</a-radio>
|
|
|
|
|
|
|
|
<a-radio value="GEN_EXIST_BOOKING">
|
|
|
|
|
|
|
|
匹配已有订舱
|
|
|
|
|
|
|
|
</a-radio>
|
|
|
|
|
|
|
|
</a-radio-group>
|
|
|
|
|
|
|
|
<p class="modaltitle">订舱录入</p>
|
|
|
|
|
|
|
|
<a-form class="Editing">
|
|
|
|
|
|
|
|
<a-row>
|
|
|
|
|
|
|
|
<a-col :span="16">
|
|
|
|
|
|
|
|
<a-form-item label="委托单位:" :label-col="formItemLayout.labelCol3" :wrapper-col="formItemLayout.wrapperCol3">
|
|
|
|
|
|
|
|
<a-select
|
|
|
|
|
|
|
|
show-search
|
|
|
|
|
|
|
|
v-model="CreateData.customerId"
|
|
|
|
|
|
|
|
:default-active-first-option="false"
|
|
|
|
|
|
|
|
:show-arrow="false"
|
|
|
|
|
|
|
|
:filter-option="false"
|
|
|
|
|
|
|
|
:not-found-content="null"
|
|
|
|
|
|
|
|
@search="SearchCustomer"
|
|
|
|
|
|
|
|
@change="ChangeCustomer">
|
|
|
|
|
|
|
|
<a-select-option v-for="(item, index) in CustomerList" :key="index" :value="item.id">
|
|
|
|
|
|
|
|
{{ item.shortName }}
|
|
|
|
|
|
|
|
</a-select-option>
|
|
|
|
|
|
|
|
</a-select>
|
|
|
|
|
|
|
|
</a-form-item>
|
|
|
|
|
|
|
|
</a-col>
|
|
|
|
|
|
|
|
<a-col :span="8">
|
|
|
|
|
|
|
|
<a-form-item label="联系人:" :label-col="formItemLayout.labelCol2" :wrapper-col="formItemLayout.wrapperCol2">
|
|
|
|
|
|
|
|
<a-select
|
|
|
|
|
|
|
|
show-search
|
|
|
|
|
|
|
|
v-model="CreateData.customerContactId"
|
|
|
|
|
|
|
|
:default-active-first-option="false"
|
|
|
|
|
|
|
|
:show-arrow="false"
|
|
|
|
|
|
|
|
:filter-option="false"
|
|
|
|
|
|
|
|
:not-found-content="null"
|
|
|
|
|
|
|
|
@search="SearchUser"
|
|
|
|
|
|
|
|
@change="ChangeCustomerList">
|
|
|
|
|
|
|
|
<a-select-option v-for="item in customerByList" :key="item.id" :value="item.id">
|
|
|
|
|
|
|
|
{{ item.name }}
|
|
|
|
|
|
|
|
</a-select-option>
|
|
|
|
|
|
|
|
</a-select>
|
|
|
|
|
|
|
|
</a-form-item>
|
|
|
|
|
|
|
|
</a-col>
|
|
|
|
|
|
|
|
</a-row>
|
|
|
|
|
|
|
|
<a-row>
|
|
|
|
|
|
|
|
<a-col :span="8">
|
|
|
|
|
|
|
|
<a-form-item label="销售:" :label-col="formItemLayout.labelCol2" :wrapper-col="formItemLayout.wrapperCol2">
|
|
|
|
|
|
|
|
<a-select
|
|
|
|
|
|
|
|
show-search
|
|
|
|
|
|
|
|
v-model="CreateData.saleId"
|
|
|
|
|
|
|
|
:default-active-first-option="false"
|
|
|
|
|
|
|
|
:show-arrow="false"
|
|
|
|
|
|
|
|
:filter-option="false"
|
|
|
|
|
|
|
|
:not-found-content="null"
|
|
|
|
|
|
|
|
@search="SearchUser"
|
|
|
|
|
|
|
|
@change="e => {
|
|
|
|
|
|
|
|
ChangeUser(e, 'saleName')
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
">
|
|
|
|
|
|
|
|
<a-select-option v-for="item in UserList" :key="item.id" :value="item.id">
|
|
|
|
|
|
|
|
{{ item.name }}
|
|
|
|
|
|
|
|
</a-select-option>
|
|
|
|
|
|
|
|
</a-select>
|
|
|
|
|
|
|
|
</a-form-item>
|
|
|
|
|
|
|
|
</a-col>
|
|
|
|
|
|
|
|
<a-col :span="8">
|
|
|
|
|
|
|
|
<a-form-item label="操作:" :label-col="formItemLayout.labelCol2" :wrapper-col="formItemLayout.wrapperCol2">
|
|
|
|
|
|
|
|
<a-select
|
|
|
|
|
|
|
|
show-search
|
|
|
|
|
|
|
|
v-model="CreateData.opId"
|
|
|
|
|
|
|
|
:default-active-first-option="false"
|
|
|
|
|
|
|
|
:show-arrow="false"
|
|
|
|
|
|
|
|
:filter-option="false"
|
|
|
|
|
|
|
|
:not-found-content="null"
|
|
|
|
|
|
|
|
@search="SearchUser"
|
|
|
|
|
|
|
|
@change="e => {
|
|
|
|
|
|
|
|
ChangeUser(e, 'opName')
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
">
|
|
|
|
|
|
|
|
<a-select-option v-for="item in UserList" :key="item.id" :value="item.id">
|
|
|
|
|
|
|
|
{{ item.name }}
|
|
|
|
|
|
|
|
</a-select-option>
|
|
|
|
|
|
|
|
</a-select>
|
|
|
|
|
|
|
|
</a-form-item>
|
|
|
|
|
|
|
|
</a-col>
|
|
|
|
|
|
|
|
<a-col :span="8">
|
|
|
|
|
|
|
|
<a-form-item label="单证:" :label-col="formItemLayout.labelCol2" :wrapper-col="formItemLayout.wrapperCol2">
|
|
|
|
|
|
|
|
<a-select
|
|
|
|
|
|
|
|
show-search
|
|
|
|
|
|
|
|
v-model="CreateData.docId"
|
|
|
|
|
|
|
|
:default-active-first-option="false"
|
|
|
|
|
|
|
|
:show-arrow="false"
|
|
|
|
|
|
|
|
:filter-option="false"
|
|
|
|
|
|
|
|
:not-found-content="null"
|
|
|
|
|
|
|
|
@search="SearchUser"
|
|
|
|
|
|
|
|
@change="e => {
|
|
|
|
|
|
|
|
ChangeUser(e, 'docName')
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
">
|
|
|
|
|
|
|
|
<a-select-option v-for="item in UserList" :key="item.id" :value="item.id">
|
|
|
|
|
|
|
|
{{ item.name }}
|
|
|
|
|
|
|
|
</a-select-option>
|
|
|
|
|
|
|
|
</a-select>
|
|
|
|
|
|
|
|
</a-form-item>
|
|
|
|
|
|
|
|
</a-col>
|
|
|
|
|
|
|
|
</a-row>
|
|
|
|
|
|
|
|
<a-row>
|
|
|
|
|
|
|
|
<a-col :span="8">
|
|
|
|
|
|
|
|
<a-form-item label="航线操作:" :label-col="formItemLayout.labelCol2" :wrapper-col="formItemLayout.wrapperCol2">
|
|
|
|
|
|
|
|
<a-select
|
|
|
|
|
|
|
|
show-search
|
|
|
|
|
|
|
|
v-model="CreateData.routeID"
|
|
|
|
|
|
|
|
:default-active-first-option="false"
|
|
|
|
|
|
|
|
:show-arrow="false"
|
|
|
|
|
|
|
|
:filter-option="false"
|
|
|
|
|
|
|
|
:not-found-content="null"
|
|
|
|
|
|
|
|
@search="SearchUser"
|
|
|
|
|
|
|
|
@change="e => {
|
|
|
|
|
|
|
|
ChangeUser(e, 'route')
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
">
|
|
|
|
|
|
|
|
<a-select-option v-for="item in UserList" :key="item.id" :value="item.id">
|
|
|
|
|
|
|
|
{{ item.name }}
|
|
|
|
|
|
|
|
</a-select-option>
|
|
|
|
|
|
|
|
</a-select>
|
|
|
|
|
|
|
|
</a-form-item>
|
|
|
|
|
|
|
|
</a-col>
|
|
|
|
|
|
|
|
<a-col :span="8">
|
|
|
|
|
|
|
|
<a-form-item label="航线管理:" :label-col="formItemLayout.labelCol2" :wrapper-col="formItemLayout.wrapperCol2">
|
|
|
|
|
|
|
|
<a-select
|
|
|
|
|
|
|
|
show-search
|
|
|
|
|
|
|
|
v-model="CreateData.lineManageID"
|
|
|
|
|
|
|
|
:default-active-first-option="false"
|
|
|
|
|
|
|
|
:show-arrow="false"
|
|
|
|
|
|
|
|
:filter-option="false"
|
|
|
|
|
|
|
|
:not-found-content="null"
|
|
|
|
|
|
|
|
@search="SearchUser"
|
|
|
|
|
|
|
|
@change="e => {
|
|
|
|
|
|
|
|
ChangeUser(e, 'lineManage')
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
">
|
|
|
|
|
|
|
|
<a-select-option v-for="item in UserList" :key="item.id" :value="item.id">
|
|
|
|
|
|
|
|
{{ item.name }}
|
|
|
|
|
|
|
|
</a-select-option>
|
|
|
|
|
|
|
|
</a-select>
|
|
|
|
|
|
|
|
</a-form-item>
|
|
|
|
|
|
|
|
</a-col>
|
|
|
|
|
|
|
|
</a-row>
|
|
|
|
|
|
|
|
<a-row>
|
|
|
|
|
|
|
|
<a-col :span="16">
|
|
|
|
|
|
|
|
<a-form-item label="操作备注:" :label-col="formItemLayout.labelCol3" :wrapper-col="formItemLayout.wrapperCol3">
|
|
|
|
|
|
|
|
<a-input v-model="CreateData.czRemark" />
|
|
|
|
|
|
|
|
</a-form-item>
|
|
|
|
|
|
|
|
</a-col>
|
|
|
|
|
|
|
|
</a-row>
|
|
|
|
|
|
|
|
<a-row>
|
|
|
|
|
|
|
|
<a-col :span="16">
|
|
|
|
|
|
|
|
<a-form-item label="申请箱使:" :label-col="formItemLayout.labelCol3" :wrapper-col="formItemLayout.wrapperCol3">
|
|
|
|
|
|
|
|
<a-input v-model="CreateData.shenQingXiangShi" />
|
|
|
|
|
|
|
|
</a-form-item>
|
|
|
|
|
|
|
|
</a-col>
|
|
|
|
|
|
|
|
</a-row>
|
|
|
|
|
|
|
|
<a-row>
|
|
|
|
|
|
|
|
<a-col :span="16">
|
|
|
|
|
|
|
|
<a-form-item label="服务项目:" :label-col="formItemLayout.labelCol3" :wrapper-col="formItemLayout.wrapperCol3">
|
|
|
|
|
|
|
|
<div class="content">
|
|
|
|
|
|
|
|
<div
|
|
|
|
|
|
|
|
class="items"
|
|
|
|
|
|
|
|
v-for="(serive, sindex) in bookingServiceItem"
|
|
|
|
|
|
|
|
:key="sindex"
|
|
|
|
|
|
|
|
:class="{ active: serive.isYield }"
|
|
|
|
|
|
|
|
@click="saveService(serive)">
|
|
|
|
|
|
|
|
{{ serive.serviceProjectName }}
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</a-form-item>
|
|
|
|
|
|
|
|
</a-col>
|
|
|
|
|
|
|
|
</a-row>
|
|
|
|
|
|
|
|
</a-form>
|
|
|
|
|
|
|
|
</a-modal>
|
|
|
|
|
|
|
|
<a-modal v-model="UserVisible" title="转移任务" @ok="UserhandleOk">
|
|
|
|
|
|
|
|
<a-form>
|
|
|
|
|
|
|
|
<a-form-item label="接收人:" :label-col="formItemLayout.labelCol1" :wrapper-col="formItemLayout.wrapperCol1">
|
|
|
|
|
|
|
|
<a-select
|
|
|
|
|
|
|
|
show-search
|
|
|
|
|
|
|
|
v-model="UserId"
|
|
|
|
|
|
|
|
:default-active-first-option="false"
|
|
|
|
|
|
|
|
:show-arrow="false"
|
|
|
|
|
|
|
|
:filter-option="false"
|
|
|
|
|
|
|
|
:not-found-content="null"
|
|
|
|
|
|
|
|
@search="SearchUser">
|
|
|
|
|
|
|
|
<a-select-option v-for="item in UserList" :key="item.id" :value="item.id">
|
|
|
|
|
|
|
|
{{ item.name }}
|
|
|
|
|
|
|
|
</a-select-option>
|
|
|
|
|
|
|
|
</a-select>
|
|
|
|
|
|
|
|
</a-form-item>
|
|
|
|
|
|
|
|
</a-form>
|
|
|
|
|
|
|
|
</a-modal>
|
|
|
|
|
|
|
|
<a-modal v-model="compareResultFlag" :footer="null">
|
|
|
|
|
|
|
|
<div v-for="(item, index) in compareResultList" :key="index">
|
|
|
|
|
|
|
|
<span> {{ item.fieldName }}:{{ item.reqVal }}</span>
|
|
|
|
|
|
|
|
<span style="margin: 0 10px;">变更为</span>
|
|
|
|
|
|
|
|
<span v-html="item.mergeHtml"></span>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</a-modal>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
|
|
|
import {
|
|
|
|
|
|
|
|
PoddGetInfoByTaskId,
|
|
|
|
|
|
|
|
TransferTask,
|
|
|
|
|
|
|
|
CreateBookingAndSlot,
|
|
|
|
|
|
|
|
TaskManageBCSendEmai1,
|
|
|
|
|
|
|
|
CompleteTask,
|
|
|
|
|
|
|
|
CancelTaskBC,
|
|
|
|
|
|
|
|
SendInstantlessage,
|
|
|
|
|
|
|
|
SearchAndConnectBookingInfo
|
|
|
|
|
|
|
|
} from '@/api/modular/main/TaskmanageList'
|
|
|
|
|
|
|
|
import { mapGetters } from 'vuex'
|
|
|
|
|
|
|
|
import { DjyCustomerSuggest, GetSysUserPage, DjyCustomerContacts } from '@/api/modular/main/BookingLedger'
|
|
|
|
|
|
|
|
export default {
|
|
|
|
|
|
|
|
data() {
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
|
|
|
CustomerList: [],
|
|
|
|
|
|
|
|
CreateData: {},
|
|
|
|
|
|
|
|
UserId: '',
|
|
|
|
|
|
|
|
value: '',
|
|
|
|
|
|
|
|
nextLoading: false,
|
|
|
|
|
|
|
|
type: '',
|
|
|
|
|
|
|
|
sendLoading: false,
|
|
|
|
|
|
|
|
customerByList: [],
|
|
|
|
|
|
|
|
columns: [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
dataIndex: 'ctnNo',
|
|
|
|
|
|
|
|
title: 'Container Number',
|
|
|
|
|
|
|
|
key: 'ctnNo',
|
|
|
|
|
|
|
|
align: 'center',
|
|
|
|
|
|
|
|
width: 200
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
title: 'BL Number',
|
|
|
|
|
|
|
|
dataIndex: 'mBlNo',
|
|
|
|
|
|
|
|
key: 'mBlNo',
|
|
|
|
|
|
|
|
align: 'center',
|
|
|
|
|
|
|
|
width: 150
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
title: 'Consignee',
|
|
|
|
|
|
|
|
dataIndex: 'cNee',
|
|
|
|
|
|
|
|
key: 'cNee',
|
|
|
|
|
|
|
|
align: 'center',
|
|
|
|
|
|
|
|
width: 150
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
title: 'Discharged',
|
|
|
|
|
|
|
|
dataIndex: 'dischargeDate',
|
|
|
|
|
|
|
|
key: 'dischargeDate',
|
|
|
|
|
|
|
|
align: 'center',
|
|
|
|
|
|
|
|
width: 150
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
title: 'Current Container Location',
|
|
|
|
|
|
|
|
dataIndex: 'curContaLocation',
|
|
|
|
|
|
|
|
key: 'curContaLocation',
|
|
|
|
|
|
|
|
align: 'center',
|
|
|
|
|
|
|
|
width: 250
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
title: 'Discharge Port',
|
|
|
|
|
|
|
|
dataIndex: 'dischargePort',
|
|
|
|
|
|
|
|
key: 'dischargePort',
|
|
|
|
|
|
|
|
align: 'center',
|
|
|
|
|
|
|
|
width: 200
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
title: 'Days',
|
|
|
|
|
|
|
|
dataIndex: 'overdueDays',
|
|
|
|
|
|
|
|
key: 'overdueDays',
|
|
|
|
|
|
|
|
align: 'center',
|
|
|
|
|
|
|
|
width: 150
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
title: 'Detention applcable till date',
|
|
|
|
|
|
|
|
dataIndex: 'detentionFeeTillDate',
|
|
|
|
|
|
|
|
key: 'detentionFeeTillDate',
|
|
|
|
|
|
|
|
align: 'center',
|
|
|
|
|
|
|
|
width: 250
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
title: 'ChargeCurrency',
|
|
|
|
|
|
|
|
dataIndex: 'chargeCurrency',
|
|
|
|
|
|
|
|
key: 'chargeCurrency',
|
|
|
|
|
|
|
|
align: 'center',
|
|
|
|
|
|
|
|
width: 200
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
title: 'BOOKING',
|
|
|
|
|
|
|
|
dataIndex: 'bookingId',
|
|
|
|
|
|
|
|
key: 'bookingId',
|
|
|
|
|
|
|
|
align: 'center',
|
|
|
|
|
|
|
|
scopedSlots: { customRender: 'bookingId' },
|
|
|
|
|
|
|
|
width: 150
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
title: '是否已完成',
|
|
|
|
|
|
|
|
dataIndex: 'isComplete',
|
|
|
|
|
|
|
|
key: 'isComplete',
|
|
|
|
|
|
|
|
align: 'center',
|
|
|
|
|
|
|
|
scopedSlots: { customRender: 'isComplete' },
|
|
|
|
|
|
|
|
width: 150
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
title: '完成时间',
|
|
|
|
|
|
|
|
dataIndex: 'completeTime',
|
|
|
|
|
|
|
|
key: 'completeTime',
|
|
|
|
|
|
|
|
align: 'center',
|
|
|
|
|
|
|
|
width: 180
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
compareResultFlag: false,
|
|
|
|
|
|
|
|
formItemLayout: {
|
|
|
|
|
|
|
|
labelCol1: { span: 6 },
|
|
|
|
|
|
|
|
wrapperCol1: { span: 18 },
|
|
|
|
|
|
|
|
labelCol2: { span: 8 },
|
|
|
|
|
|
|
|
wrapperCol2: { span: 16 },
|
|
|
|
|
|
|
|
labelCol3: { span: 4 },
|
|
|
|
|
|
|
|
wrapperCol3: { span: 20 },
|
|
|
|
|
|
|
|
labelCol4: { span: 8 },
|
|
|
|
|
|
|
|
wrapperCol4: { span: 16 },
|
|
|
|
|
|
|
|
labelCol5: { span: 14 },
|
|
|
|
|
|
|
|
wrapperCol5: { span: 10 },
|
|
|
|
|
|
|
|
labelCol6: { span: 8 },
|
|
|
|
|
|
|
|
wrapperCol6: { span: 16 }
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
visible: false,
|
|
|
|
|
|
|
|
UserVisible: false,
|
|
|
|
|
|
|
|
isPdf: '',
|
|
|
|
|
|
|
|
compareResultList: [],
|
|
|
|
|
|
|
|
href: '',
|
|
|
|
|
|
|
|
carrier: '',
|
|
|
|
|
|
|
|
time: '',
|
|
|
|
|
|
|
|
spinning: false,
|
|
|
|
|
|
|
|
tableList: [],
|
|
|
|
|
|
|
|
bookingServiceItem: [],
|
|
|
|
|
|
|
|
pdfUrl: '',
|
|
|
|
|
|
|
|
UserList: [],
|
|
|
|
|
|
|
|
fileCategory: 'BC_MODIFY'
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
computed: {
|
|
|
|
|
|
|
|
...mapGetters([
|
|
|
|
|
|
|
|
'userInfo'
|
|
|
|
|
|
|
|
])
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
watch: {
|
|
|
|
|
|
|
|
'$route': {
|
|
|
|
|
|
|
|
immediate: true,
|
|
|
|
|
|
|
|
handler(newValue, oldValue) {
|
|
|
|
|
|
|
|
if (newValue.path === '/commontaskmanage/cutTime') {
|
|
|
|
|
|
|
|
this.getList()
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
mounted() {
|
|
|
|
|
|
|
|
this.getList()
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
methods: {
|
|
|
|
|
|
|
|
SearchCustomer(e) {
|
|
|
|
|
|
|
|
DjyCustomerSuggest({ keyword: e, type: 'consignor' }).then(res => {
|
|
|
|
|
|
|
|
this.CustomerList = res.data.rows
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
OpenUser() {
|
|
|
|
|
|
|
|
this.UserId = ''
|
|
|
|
|
|
|
|
this.UserVisible = true
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
ChangeCustomer(e) {
|
|
|
|
|
|
|
|
this.CustomerList.forEach(item => {
|
|
|
|
|
|
|
|
if (item.id == e) {
|
|
|
|
|
|
|
|
this.CreateData.customerName = item.shortName
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
DjyCustomerContacts({ customerId: e }).then(res => {
|
|
|
|
|
|
|
|
if (res.success) {
|
|
|
|
|
|
|
|
this.customerByList = res.data
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
this.$message.error(res.message)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
handleSendMsg() {
|
|
|
|
|
|
|
|
this.sendLoading = true
|
|
|
|
|
|
|
|
SendInstantlessage({ taskPKId: this.$route.query.taskPKId }).then(res => {
|
|
|
|
|
|
|
|
if (res.success) {
|
|
|
|
|
|
|
|
this.$message.success(res.message)
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
this.$message.error(res.message)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
this.sendLoading = false
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
handleNext() {
|
|
|
|
|
|
|
|
this.nextLoading = true
|
|
|
|
|
|
|
|
SearchAndConnectBookingInfo({ taskPKId: this.$route.query.taskPKId }).then(res => {
|
|
|
|
|
|
|
|
if (res.success) {
|
|
|
|
|
|
|
|
this.$message.success(res.message)
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
this.$message.error(res.message)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
this.nextLoading = false
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
ChangeCustomerList(e) {
|
|
|
|
|
|
|
|
this.customerByList.forEach(item => {
|
|
|
|
|
|
|
|
if (item.id == e) {
|
|
|
|
|
|
|
|
this.CreateData.customerContactName = item.name
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
handleSendMail() {
|
|
|
|
|
|
|
|
TaskManageBCSendEmai1({ taskPKId: this.$route.query.taskPKId }).then(res => {
|
|
|
|
|
|
|
|
if (res.data.succ) {
|
|
|
|
|
|
|
|
this.$message.success(res.data.msg)
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
this.$message.error(res.data.msg)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
FnCancelTask() {
|
|
|
|
|
|
|
|
const ApiData = {
|
|
|
|
|
|
|
|
taskPKId: this.$route.query.taskPKId
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
CancelTaskBC(ApiData).then(res => {
|
|
|
|
|
|
|
|
if (res.data.succ) {
|
|
|
|
|
|
|
|
this.$message.success(res.data.msg)
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
this.$message.error(res.data.msg)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
SearchUser(e) {
|
|
|
|
|
|
|
|
GetSysUserPage({ name: e }).then(res => {
|
|
|
|
|
|
|
|
this.UserList = res.data
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
ChangeUser(e, Tname) {
|
|
|
|
|
|
|
|
this.UserList.forEach(item => {
|
|
|
|
|
|
|
|
if (item.id == e) {
|
|
|
|
|
|
|
|
console.log(e)
|
|
|
|
|
|
|
|
this.CreateData[Tname] = item.name
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
saveService(data) {
|
|
|
|
|
|
|
|
data.isYield = !data.isYield
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
FnCompleteTask() {
|
|
|
|
|
|
|
|
const ApiData = [this.$route.query.taskPKId]
|
|
|
|
|
|
|
|
CompleteTask(ApiData).then(res => {
|
|
|
|
|
|
|
|
if (res.data.succ) {
|
|
|
|
|
|
|
|
this.$message.success(res.data.msg)
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
this.$message.error(res.data.msg)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
getList() {
|
|
|
|
|
|
|
|
this.spinning = true
|
|
|
|
|
|
|
|
const ApiData = {
|
|
|
|
|
|
|
|
taskPKId: this.$route.query.taskPKId
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
PoddGetInfoByTaskId(ApiData).then(res => {
|
|
|
|
|
|
|
|
if (res.success) {
|
|
|
|
|
|
|
|
this.tableList = res.data
|
|
|
|
|
|
|
|
if (res.data.length > 0) {
|
|
|
|
|
|
|
|
this.time = res.data[0].noticeDate
|
|
|
|
|
|
|
|
this.carrier = res.data[0].carrier
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.$forceUpdate()
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
this.$message.error(res.success)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
this.spinning = false
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
handleOk() {
|
|
|
|
|
|
|
|
const projectList = []
|
|
|
|
|
|
|
|
this.bookingServiceItem.forEach(item => {
|
|
|
|
|
|
|
|
if (item.isYield) {
|
|
|
|
|
|
|
|
projectList.push(item.serviceProjectCode)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const ApiData = {
|
|
|
|
|
|
|
|
bcTaskId: this.$route.query.taskPKId,
|
|
|
|
|
|
|
|
// bcPkId: '',
|
|
|
|
|
|
|
|
// slotId: '',
|
|
|
|
|
|
|
|
projectList,
|
|
|
|
|
|
|
|
...this.CreateData
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
console.log(ApiData)
|
|
|
|
|
|
|
|
CreateBookingAndSlot(ApiData).then(res => {
|
|
|
|
|
|
|
|
if (res.data.succ) {
|
|
|
|
|
|
|
|
this.visible = false
|
|
|
|
|
|
|
|
this.$message.success(res.data.msg)
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
this.$message.error(res.data.msg)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
UserhandleOk() {
|
|
|
|
|
|
|
|
const ApiData = {
|
|
|
|
|
|
|
|
taskPKId: this.$route.query.taskPKId,
|
|
|
|
|
|
|
|
userId: this.UserId
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
TransferTask(ApiData).then(res => {
|
|
|
|
|
|
|
|
if (res.data.succ) {
|
|
|
|
|
|
|
|
this.UserVisible = false
|
|
|
|
|
|
|
|
this.$message.success(res.data.msg)
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
this.$message.error(res.data.msg)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
this.UserVisible = false
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<style lang="less" scoped>
|
|
|
|
|
|
|
|
@import url('../../BookingLedger/detail/style/rightContent.less');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.point {
|
|
|
|
|
|
|
|
height: 10px;
|
|
|
|
|
|
|
|
width: 10px;
|
|
|
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
|
|
|
margin: 0 auto;
|
|
|
|
|
|
|
|
background: green;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.modaltitle {
|
|
|
|
|
|
|
|
border-bottom: 1px solid #000;
|
|
|
|
|
|
|
|
width: 5rem;
|
|
|
|
|
|
|
|
padding: 0.2rem 0.5rem;
|
|
|
|
|
|
|
|
margin-top: 1rem;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.icon-chuanfanguanli-chuanfanshenqing {
|
|
|
|
|
|
|
|
color: '#02A7F0';
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.Main {
|
|
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
|
|
background: white;
|
|
|
|
|
|
|
|
height: 100vh;
|
|
|
|
|
|
|
|
padding: 0 20px;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.LeftHead {
|
|
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
|
|
padding: 8px;
|
|
|
|
|
|
|
|
margin-bottom: 16px;
|
|
|
|
|
|
|
|
border-bottom: 1px solid #000;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
p {
|
|
|
|
|
|
|
|
margin: 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
&:nth-child(1) {
|
|
|
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.title {
|
|
|
|
|
|
|
|
margin-top: 10px;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.CsSee {
|
|
|
|
|
|
|
|
color: #02a7f3;
|
|
|
|
|
|
|
|
text-decoration: underline;
|
|
|
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.LeftBottomBox {
|
|
|
|
|
|
|
|
.unitBox {
|
|
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.unit {
|
|
|
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
|
|
line-height: 30px;
|
|
|
|
|
|
|
|
height: 30px;
|
|
|
|
|
|
|
|
// background: rgba(255, 255, 128, 1);
|
|
|
|
|
|
|
|
// border: 1px solid rgba(170, 10, 0, 1);
|
|
|
|
|
|
|
|
border-radius: 3px;
|
|
|
|
|
|
|
|
box-shadow: none;
|
|
|
|
|
|
|
|
// font-weight: bold;
|
|
|
|
|
|
|
|
// color: #62a10398;
|
|
|
|
|
|
|
|
margin: 0.5rem;
|
|
|
|
|
|
|
|
padding: 0 0.3rem;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.iconfont {
|
|
|
|
|
|
|
|
margin-right: 0.3rem;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.rightBox {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// margin-top: 37px;
|
|
|
|
|
|
|
|
.rightBoxRadio {
|
|
|
|
|
|
|
|
margin-bottom: 15px;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/deep/.Editing {
|
|
|
|
|
|
|
|
.ant-form-item {
|
|
|
|
|
|
|
|
margin: 0 !important;
|
|
|
|
|
|
|
|
line-height: 1.5 !important;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.ant-form-item-label {
|
|
|
|
|
|
|
|
line-height: 1.5 !important;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.ant-form-item-control {
|
|
|
|
|
|
|
|
line-height: 1.5 !important;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
</style>
|