<!--
* @Author: your name
* @Date: 2021-05-19 09:34:05
* @LastEditTime: 2021-08-10 18:40:05
* @LastEditors: Please set LastEditors
* @Description: 异常管理
* @FilePath: \shiva-trtms-air-service-web\src\views\airLink\exceptionManage.vue
-->
<template>
<div class="sfair-module">
<resourceControl v-if="showIsControl" />
<!-- UI改造增加-偏好设置按钮 , 可直接复制 -->
<sfair-page-config
@click="showConfig"
:class="[pageConfigBtnClass]"
></sfair-page-config>
<sfair-normal-config
:dataId="'condition'"
:moduleCode="conditionConfigDataKey"
:sysCode="sysCode"
:more="searchMoreConfig"
:normal="searchNormalConfig"
:showConfig.sync="conditionConfigShow"
@sure="switchItem"
@moreToggle="moreToggle"
@heightChange="conditionChange"
class="query-condition"
:class="[conditionToggleBtnClass]"
>
<!-- 查询条件 -->
<el-form
class="searchform1"
:inline="true"
:model="searchListForm"
:label-position="'top'"
ref="searchListForm"
label-width="210px"
>
<template v-for="item in conditions">
<el-form-item
v-if="item.prop === 'deptCode' && isVisible(item)"
:key="item.prop"
class="label_required"
label="网点"
prop="deptCode"
label-width="120px"
>
<SelectCodeMultiple
v-model="searchListForm.departDeptCode"
@change="changDeptCodeEvent"
></SelectCodeMultiple>
</el-form-item>
<el-form-item
label="异常类型:"
v-if="item.prop === 'exceptionTypeCode' && isVisible(item)"
:key="item.prop"
prop="exceptionTypeCode"
>
<el-select v-model="searchListForm.exceptionTypeCode" clearable>
<el-option
v-for="(item, index) in errorTypeOptions"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item
v-if="item.prop === 'exceptionCode' && isVisible(item)"
label="异常ID:"
:key="item.prop"
>
<el-input
v-model="searchListForm.exceptionCode"
clearable
></el-input>
</el-form-item>
<el-form-item
label="是否升级调度:"
v-if="item.prop === 'isUpgradeOrder' && isVisible(item)"
:key="item.prop"
>
<el-select v-model="searchListForm.isUpgradeOrder" clearable>
<el-option
v-for="(item, index) in isUpOptions"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label="异常开始日期:"
label-width="130px"
class="label_required"
v-if="item.prop === 'exceptionDateStart' && isVisible(item)"
:key="item.prop"
>
<el-date-picker
v-model="searchListForm.exceptionDateStart"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择日期"
>
</el-date-picker>
</el-form-item>
<el-form-item
label="异常结束日期:"
label-width="130px"
class="label_required"
v-if="item.prop === 'exceptionDateEnd' && isVisible(item)"
:key="item.prop"
>
<el-date-picker
v-model="searchListForm.exceptionDateEnd"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择日期"
>
</el-date-picker>
</el-form-item>
<el-form-item
label="始发地:"
v-if="item.prop === 'departCityCode' && isVisible(item)"
:key="item.prop"
>
<el-select
v-model="searchListForm.departCityCode"
multiple
clearable
filterable
:multiple-limit="5"
>
<el-option
v-for="(item, index) in cityCodeOptions"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label="目的地:"
v-if="item.prop === 'arriveCityCode' && isVisible(item)"
:key="item.prop"
>
<el-select
v-model="searchListForm.arriveCityCode"
clearable
filterable
multiple
:multiple-limit="5"
>
<el-option
v-for="(item, index) in cityCodeOptions"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label="班次:"
v-if="item.prop === 'sendBatch' && isVisible(item)"
:key="item.prop"
>
<el-select
v-model="searchListForm.sendBatch"
@click.native="getExceptionAirnoOptions(0)"
clearable
filterable
>
<el-option
v-for="item in sendBatchList"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label="调度处理结果:"
v-if="item.prop === 'processStatus' && isVisible(item)"
:key="item.prop"
>
<el-select v-model="searchListForm.processStatus" clearable>
<el-option
v-for="(item, index) in resultTypeOptions"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
</template>
</el-form>
</sfair-normal-config>
<!-- UI改造增加-按钮组 , 可直接复制 - start -->
<sfair-btns
:sysCode="sysCode"
:dataId="'list'"
:moduleCode="conditionConfigDataKey"
:showConfig.sync="butConfigShow"
@click="btnClick"
@heightChange="btnChange"
:normal="btns"
:more="moreBtns"
class="sfair-first-level"
>
</sfair-btns>
<sfair-list-config
:height="tableHeight"
ref="listConfig"
@sure="tableConfigChange"
:showConfig.sync="listConfigShow"
:isCumputeHeight="false"
:sysCode="sysCode"
:moduleCode="listConfigDataKey"
:dataId="'list'"
:left="colLeftConfig"
:right="colRightConfig"
:normal="colNormalConfig"
class="sfair-first-level"
>
<el-table
class="data-list"
v-loading="loadind"
:data="dataList"
ref="multipleTable1"
border
highlight-current-row
:height="'calc(100%)'"
@selection-change="changeSelectedList"
:row-class-name="setRowExpand"
>
<el-table-column type="expand">
<template slot-scope="scope">
<el-table
:data="scope.row.deliverExceptionsList"
style="width: calc(100% - 47px); margin-left: 47px"
class="data-list"
>
<el-table-column
prop="tranferDate"
label="改配航班日期"
:formatter="tranferDateFormat"
width="100"
></el-table-column>
<el-table-column
prop="tranferDepartCityCode"
label="改配始发地"
:formatter="tranferDepartCityNameShow"
width="140"
></el-table-column>
<el-table-column
prop="tranferArriveCityCode"
label="改配目的地"
:formatter="tranferArriveCityNameShow"
width="120"
></el-table-column>
<el-table-column
prop="tranferCapacityName"
label="改配航班号"
width="110"
></el-table-column>
<el-table-column
prop="tranferScheduleFlightType"
label="改配航班时效"
:formatter="tranferScheduleFlightTypeNameShow"
width="140"
></el-table-column>
<el-table-column
prop="tranferDepartTm"
label="改配计划起飞时间"
:formatter="tranferDepartTmFormat"
width="140"
></el-table-column>
<el-table-column
prop="tranferArriveTm"
label="改配计划落地时间"
:formatter="tranferArriveTmFormat"
width="140"
></el-table-column>
<el-table-column
prop="tranferScheduleFlightType"
label="改配时效描述"
:formatter="tranferScheduleFlightTypeFormat"
width="340"
>
</el-table-column>
</el-table>
</template>
</el-table-column>
<el-table-column type="selection" align="center" width="50" prop="id" />
<el-table-column
prop="exceptionCode"
label="异常ID"
width="120"
align="center"
>
</el-table-column>
<el-table-column
prop="exceptionTypeCode"
label="异常类型"
width="100"
align="center"
:formatter="exceptionTypeFormat"
>
</el-table-column>
<el-table-column
prop="exceptionDate"
label="异常日期"
width="110"
align="center"
>
</el-table-column>
<el-table-column
prop="processStatus"
label="是否升级调度"
align="center"
width="110"
:formatter="isUpOrder"
>
</el-table-column>
<el-table-column
prop="processStatus"
label="调度处理结果"
width="110"
align="center"
:formatter="getProcessStatusReason"
>
</el-table-column>
<el-table-column
prop="orderCode"
label="调令编号"
width="140"
align="center"
>
<template slot-scope="scope">
<el-link
type="primary"
:underline="true"
style="font-size: 12px; font-weight: normal"
@click.native="queryOrderDetailBtn(scope.row)"
>{{ scope.row.orderCode }}</el-link
>
</template>
</el-table-column>
<el-table-column
prop="departAreaCode"
label="地区"
align="center"
width="100"
>
</el-table-column>
<el-table-column
prop="departDeptCode"
label="网点"
align="center"
width="120"
>
</el-table-column>
<el-table-column
prop="departCityCode"
label="始发地"
align="center"
width="120"
:formatter="departCityNameShow"
>
</el-table-column>
<el-table-column
prop="arriveCityCode"
label="目的地"
align="center"
width="120"
:formatter="arriveCityNameShow"
>
</el-table-column>
<el-table-column
prop="sendBatch"
label="发货班次"
width="100"
align="center"
>
</el-table-column>
<el-table-column
prop="capacityName"
label="异常航班"
align="center"
:formatter="capacityNameMainShow"
>
</el-table-column>
<el-table-column
prop="scheduleFlightType"
label="异常航班时效类型"
align="center"
width="140"
:formatter="scheduleFlightTypeMainNameShow"
>
</el-table-column>
<el-table-column prop="exceptionNums" label="异常件数" align="center">
</el-table-column>
<el-table-column
prop="phWeight"
label="普货(KG)"
width="100"
align="center"
>
</el-table-column>
<el-table-column
prop="sxWeight"
label="生鲜(KG)"
width="100"
align="center"
>
</el-table-column>
<el-table-column
prop="xhWeight"
label="鲜活(KG)"
width="100"
align="center"
>
</el-table-column>
<el-table-column
prop="taWeight"
label="TA(KG)"
width="100"
align="center"
>
</el-table-column>
<el-table-column
prop="carsNo"
label="笼号或车标号"
width="120"
align="center"
show-overflow-tooltip
>
</el-table-column>
<el-table-column prop="operatingResult" label="驳回原因" align="center">
<template slot-scope="scope">
<el-popover placement="top-start" width="400" trigger="hover">
<p>{{ scope.row.operatingResult }}</p>
<div class="oneLine" slot="reference">
{{ scope.row.operatingResult }}
</div>
</el-popover>
</template>
</el-table-column>
<el-table-column prop="exceptionDesc" label="备注" align="center">
<template slot-scope="scope">
<el-popover placement="top-start" width="400" trigger="hover">
<p>{{ scope.row.exceptionDesc }}</p>
<div class="oneLine" slot="reference">
{{ scope.row.exceptionDesc }}
</div>
</el-popover>
</template>
</el-table-column>
<el-table-column
prop="reportDate"
label="异常升级调度时间 "
width="150"
align="center"
:formatter="reportDateFormat"
>
</el-table-column>
<el-table-column
prop="reportEmpno"
label="升级调度人"
align="center"
width="100"
:formatter="reportEmpNoFormat"
>
</el-table-column>
<el-table-column
prop="modifiedEmpCode"
label="调度处理人"
width="100"
align="center"
:formatter="orderProcessEmp"
>
</el-table-column>
<el-table-column
prop="modifiedTm"
label="调度处理时间"
width="170"
align="center"
:formatter="orderProcessDate"
>
</el-table-column>
</el-table>
</sfair-list-config>
<!-- UI改造增加-分页栏 , 先直接复制,再修改属性和事件,默认每页数量为20 -->
<sfair-pagination
@sizeChange="pageSizeChange"
@currentChange="handleCurrentChangePage"
:currentPage.sync="Pagination.currentPage"
:pageSize.sync="Pagination.pageSize"
:total="Pagination.totalSize"
class="sfair-first-level"
>
</sfair-pagination>
<!-- 双击新增异常||修改 -->
<el-dialog
:title="DialogTitle"
:visible.sync="DialogVisible"
width="640px"
:close-on-click-modal="false"
:before-close="closeProcessForm"
class="sfair-dialog"
>
<el-form
:inline="true"
label-width="100px"
:model="ProcessForm"
ref="ProcessForm"
class="searchform1"
>
<div class="operateBtn" style="margin-bottom: 20px">
<el-button
size="mini"
type="main"
@click="
ProcessType == 'update' ? modifyException() : saveException()
"
>保 存</el-button
>
<el-button
size="mini"
type="operate"
@click="ProcessFormReset('ProcessForm')"
>重 置</el-button
>
<el-button
size="mini"
type="operate"
@click="
ProcessType == 'update' ? modifyAndUpgrade() : saveAndUpgrade()
"
>上报&升级调度</el-button
>
</div>
<el-row>
<el-form-item
label="异常日期"
prop="exceptionDate"
class="label_required"
>
<div>
<el-date-picker
v-model="ProcessForm.exceptionDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择日期"
:disabled="ProcessType == 'update'"
:picker-options="addExceptionPickerOptions"
>
</el-date-picker>
</div>
</el-form-item>
<el-form-item
label="异常类型"
prop="exceptionTypeCode"
class="label_required"
>
<el-select
v-model="ProcessForm.exceptionTypeCode"
:placeholder="$t('common.selectPlaceholder')"
clearable
disabled
>
<el-option
v-for="(item, index) in exceptionTypeOptions"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
</el-row>
<el-row>
<el-form-item
label="始发地"
prop="departCityCode"
class="label_required"
>
<el-select
v-model="ProcessForm.departCityCode"
clearable
filterable
disabled
>
<el-option
v-for="(item, index) in cityCodeOptions"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label="目的地"
prop="arriveCityCode"
class="label_required"
>
<el-select
v-model="ProcessForm.arriveCityCode"
clearable
filterable
>
<el-option
v-for="(item, index) in cityCodeOptions"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="班次" prop="sendBatch" class="label_required">
<el-select
v-model="ProcessForm.sendBatch"
@click.native="getExceptionAirnoOptions(1)"
clearable
>
<el-option
v-for="(item, index) in sendBatchList"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label="异常件数"
prop="exceptionNums"
class="label_required"
>
<el-input
v-model="ProcessForm.exceptionNums"
v-limit-input-number="0"
></el-input>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="普货(KG)" prop="phWeight" class="label_required">
<el-input
v-model="ProcessForm.phWeight"
v-limit-input-number="0"
></el-input>
</el-form-item>
<el-form-item label="生鲜(KG)" prop="sxWeight" class="label_required">
<el-input
v-model="ProcessForm.sxWeight"
v-limit-input-number="0"
></el-input>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="鲜活(KG)" prop="xhWeight" class="label_required">
<el-input
v-model="ProcessForm.xhWeight"
v-limit-input-number="0"
></el-input>
</el-form-item>
<el-form-item label="TA(KG)" prop="taWeight" class="label_required">
<el-input
v-model="ProcessForm.taWeight"
v-limit-input-number="0"
max="99999.99"
min="0"
></el-input>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="笼号或车标号" prop="carsNo">
<el-input
v-model="ProcessForm.carsNo"
maxlength="12"
oninput="value=value.replace(/[^\d]/g,'')"
></el-input>
</el-form-item>
<el-form-item label="备注" prop="exceptionDesc">
<el-input
type="textarea"
label="备注"
prop="exceptionDesc"
:autosize="{ minRows: 2, maxRows: 4 }"
placeholder="请输入内容"
v-model="ProcessForm.exceptionDesc"
maxlength="300"
>
</el-input>
</el-form-item>
</el-row>
</el-form>
</el-dialog>
<!-- 转调令 -->
<el-dialog
title="转调令"
:visible.sync="this.changeOrderFormDialogVisible"
width="90%"
:close-on-click-modal="false"
:before-close="closeOrderForm"
class="sfair-dialog"
custom-class="orderDialog"
>
<el-form
:inline="true"
label-width="120px"
:model="OrderForm"
ref="OrderForm"
class="searchform1"
>
<el-row v-if="this.ProcessType != 'query'">
<el-button @click="saveOrderBtn()" type="main" size="mini"
>保 存</el-button
>
<el-button @click="formReset('OrderForm')" type="operate" size="mini"
>重 置</el-button
>
<el-button type="main" @click="saveAndReport" size="mini"
>保存&发布</el-button
>
</el-row>
<!--标题-->
<div
style="
padding: 10px 20px;
width: 60%;
margin: 0 auto;
text-align: center;
margin-bottom: 20;
"
>
<el-input
style="height: 40px; line-height: 40px; font-size: 20px"
:disabled="ProcessType == 'query'"
v-model="OrderForm.orderTitle"
placeholder=""
size="small"
></el-input>
</div>
<el-row>
<el-divider>基础信息</el-divider>
<el-form-item label="调令编号" prop="type" class="label_required">
<el-input
v-model="OrderForm.orderCode"
size="small"
disabled
></el-input>
</el-form-item>
<el-form-item label="监控时效" prop="type" class="label_required">
<el-select
v-model="OrderForm.timeEffect"
clearable
filterable
disabled
>
<el-option
v-for="(item, index) in monitorTypeOptions"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="环节" prop="type" class="label_required">
<el-select
v-model="OrderForm.exceptionType"
clearable
filterable
disabled
size="small"
>
<el-option
v-for="(item, index) in exceptionTypeSelectOptions"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label="签发人"
prop="businessType"
class="label_required"
>
<el-input
v-model="OrderForm.issuerEmpCode"
placeholder="请输入工号"
@blur="getIssuerEmpInfo"
size="small"
:disabled="ProcessType == 'query'"
></el-input>
</el-form-item>
<el-form-item
label="签发人电话"
prop="exceptionNums"
class="label_required"
>
<el-input
size="small"
v-model="OrderForm.issuerPhoneNoShow"
:disabled="ProcessType == 'query'"
@change="setOrgPhoneNo"
placeholder=""
style="cursor: pointer"
v-if="ProcessType != 'changeorder'"
>
<el-button
slot="suffix"
type="text"
class="el-input__icon"
@mousedown.native="showissuerPhoneNo"
@mouseup.native="hideissuerPhoneNo"
>
<template>
<i class="el-icon-view"></i>
</template>
</el-button>
</el-input>
<el-input
size="small"
v-model="OrderForm.issuerPhoneNo"
:disabled="ProcessType == 'query'"
placeholder=""
v-if="ProcessType == 'changeorder'"
>
</el-input>
</el-form-item>
<el-form-item
label="异常获悉时间"
prop="exceptionDate"
class="label_required"
>
<el-date-picker
v-model="OrderForm.exceptionDate"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="选择日期"
size="small"
:disabled="ProcessType == 'query'"
></el-date-picker>
</el-form-item>
<el-form-item label="发布部门" prop="sxWeight" class="label_required">
<el-input
v-model="OrderForm.issuingUnit"
disabled
size="small"
></el-input>
</el-form-item>
<el-form-item
label="发布时间"
prop="issuingTime"
class="label_required"
>
<el-input
v-model="OrderForm.issuingTime"
disabled
size="small"
></el-input>
</el-form-item>
<el-form-item
label="发布人"
prop="issuingEmpCode"
class="label_required"
@blur="getIssuingEmpInfo"
>
<el-input
v-model="OrderForm.issuingEmpCode"
@blur="getIssuingEmpInfo"
disabled
size="small"
></el-input>
</el-form-item>
<el-form-item
label=" 发布人电话"
prop="taWeight"
class="label_required"
>
<el-input
v-model="OrderForm.issuingPhoneNoShow"
:disabled="ProcessType == 'query'"
@change="setIssuingOrgPhoneNo"
placeholder=""
style="cursor: pointer"
v-if="ProcessType != 'changeorder'"
size="small"
>
<el-button
slot="suffix"
type="text"
size="mini"
class="el-input__icon"
@mousedown.native="showissuingPhoneNo"
@mouseup.native="hideissuingPhoneNo"
>
<template>
<i class="el-icon-view"></i>
</template>
</el-button>
</el-input>
<el-input
v-model="OrderForm.issuingPhoneNo"
:disabled="ProcessType == 'query'"
placeholder=""
v-if="ProcessType == 'changeorder'"
>
</el-input>
</el-form-item>
</el-row>
<div class="inputinrow">
<label class="label_required"
><span style="color: red">* </span>执行单位</label
>
<el-input
size="small"
v-model="OrderForm.executableUnit"
:disabled="ProcessType == 'query'"
></el-input>
</div>
<div class="inputinrow">
<label>
<el-button
type="operate-text"
class="label_required"
@click="showEmailDialog(1)"
:disabled="ProcessType == 'query'"
><span style="color: red">* </span>收件人</el-button
>
</label>
<el-input
size="small"
v-model="OrderForm.sendEmailList"
:disabled="ProcessType == 'query'"
></el-input>
</div>
<div class="inputinrow">
<label>
<el-button
type="operate-text"
class="label_required"
@click="showEmailDialog(2)"
:disabled="ProcessType == 'query'"
>抄送人</el-button
>
</label>
<el-input
size="small"
v-model="OrderForm.ccEmailList"
:disabled="ProcessType == 'query'"
></el-input>
</div>
<div class="inputinrow">
<label><span style="color: red">* </span>分流说明</label>
<el-input
v-model="OrderForm.shuntDesc"
:disabled="ProcessType == 'query'"
size="small"
></el-input>
</div>
<el-row type="flex">
<el-table
class="data-list"
v-loading="loadind"
:data="orderExceptionTempGridList"
ref="multipleTableExceptionOrder"
border
highlight-current-row
style="width: 50%"
:span-method="mergerOrderTable"
>
<el-table-column label="异常信息" align="center">
<el-table-column width="40" align="center">
<template slot-scope="scope">
<el-radio
v-model="exceptionOrderRadio"
:label="scope.row"
@change="clickChange"
:disabled="ProcessType == 'query'"
><i></i
></el-radio>
</template>
</el-table-column>
<el-table-column
prop="exceptionDate"
label="异常日期"
width="100"
align="center"
>
</el-table-column>
<el-table-column
prop="exceptionDepartDeptCode"
label="发货网点"
width="100"
align="center"
>
</el-table-column>
<el-table-column
prop="exceptionDepartCityCode"
label="始发地"
width="90"
align="center"
:formatter="exceptionDepartCityCodeFormatter"
>
</el-table-column>
<el-table-column
prop="exceptionArriveCityCode"
label="目的地"
width="90"
align="center"
:formatter="exceptionArriveCityCodeFormatter"
>
</el-table-column>
<el-table-column
prop="exceptionSendBatch"
label="发出班次"
width="100"
align="center"
>
</el-table-column>
<el-table-column
prop="goodsStowageTypeName"
label="货物类型"
width="90"
align="center"
>
</el-table-column>
<el-table-column
prop="exceptionWeight"
label="缺口量"
width="90"
align="center"
>
</el-table-column>
</el-table-column>
<el-table-column label="分流信息" align="center">
<el-table-column
prop="shuntDate"
label="需求日期"
width="120"
align="center"
>
<template slot-scope="scope">
<el-date-picker
v-model="scope.row.shuntDate"
type="date"
value-format="yyyy-MM-dd"
size="mini"
:disabled="
scope.row.dataFrom == 'shunt' || ProcessType == 'query'
"
></el-date-picker>
</template>
</el-table-column>
<el-table-column
prop="departCityCode"
label="始发地"
width="100"
align="center"
>
<template slot-scope="scope">
<el-select
v-model="scope.row.departCityCode"
clearable
filterable
:disabled="
scope.row.dataFrom == 'shunt' || ProcessType == 'query'
"
size="mini"
@change="departCityCodeChangeClear($event, scope)"
@visible-change="emptyCityCodeOptionsSet($event, scope, 1)"
>
<el-option
v-for="(item, index) in scope.row
.rowDepartCityCodeOptions"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column
prop="arriveCityCode"
label="目的地"
width="100"
align="center"
>
<template slot-scope="scope">
<el-select
v-model="scope.row.arriveCityCode"
clearable
filterable
:disabled="
scope.row.dataFrom == 'shunt' || ProcessType == 'query'
"
size="mini"
@visible-change="emptyCityCodeOptionsSet($event, scope, 2)"
>
<el-option
v-for="(item, index) in scope.row
.rowArriveCityCodeOptions"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column
prop="sendBatch"
label="发出班次"
width="120"
align="center"
>
<template slot-scope="scope">
<el-select
v-model="scope.row.sendBatch"
@focus="
getExceptionAirnoOptionsByRow(scope.row, scope.$index)
"
clearable
filterable
:disabled="
scope.row.dataFrom == 'shunt' || ProcessType == 'query'
"
size="mini"
@change="rowSendBatchCurrOperatorChange($event,scope)"
>
<el-option
v-for="(item, index) in scope.row.sendBatchListOptions"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column
prop="scheduleFlightType"
label="时效类型"
width="100"
align="center"
>
<template slot-scope="scope">
<el-select
v-model="scope.row.scheduleFlightType"
clearable
filterable
size="mini"
:disabled="
ProcessType == 'query' || scope.row.dataFrom == 'shunt'
"
>
<el-option
v-for="(item, index) in scheduleFlightTypeOptions"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column
prop="shuntNum"
label="分流量"
width="100"
align="center"
>
<template slot-scope="scope">
<el-input
v-model="scope.row.shuntNum"
size="mini"
:disabled="ProcessType == 'query'"
></el-input>
</template>
</el-table-column>
<el-table-column
prop="airTypeCode"
label="运力类型"
width="120"
align="center"
>
<template slot-scope="scope">
<el-select
v-model="scope.row.airTypeCode"
clearable
filterable
size="mini"
:disabled="
scope.row.dataFrom == 'shunt' || ProcessType == 'query'
"
>
<el-option
v-for="(item, index) in scope.row.airTypeCodeShuntOptions"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column
prop="exceptionTypeCode"
label="操作"
min-width="120"
align="center"
>
<template slot-scope="scope">
<el-button
size="mini"
:disabled="ProcessType == 'query'"
@click="handleAddRow(scope.$index, scope.row)"
>+</el-button
>
<el-button
size="mini"
type="danger"
:disabled="ProcessType == 'query'"
@click="handleDeleteRow(scope.$index, scope.row)"
>-</el-button
>
</template>
</el-table-column>
</el-table-column>
</el-table>
</el-row>
<el-divider v-if="ProcessType != 'query'">决策参考</el-divider>
<el-row v-if="ProcessType != 'query'">
<el-form
class="searchform1 exceptForm"
:inline="true"
:model="searchListDecisionForm"
ref="searchListDecisionForm"
label-width="120px"
>
<el-row>
<el-col :span="24" class="flex flex-vc rowItem">
<el-form-item
class="label_required"
label="需求日期:"
prop="exceptionDate"
>
<el-date-picker
v-model="searchListDecisionForm.exceptionDate"
type="date"
value-format="yyyy-MM-dd"
:picker-options="addDecisionExceptionPickerOptions"
placeholder="选择日期"
></el-date-picker>
</el-form-item>
<el-form-item label="始发地:" prop="departCityCode">
<el-select
v-model="searchListDecisionForm.departCityCode"
clearable
filterable
>
<el-option
v-for="(item, index) in cityCodeOptions"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="目的地:" prop="arriveCityCode">
<el-select
v-model="searchListDecisionForm.arriveCityCode"
clearable
filterable
>
<el-option
v-for="(item, index) in cityCodeOptions"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="班次:" prop="sendBatch">
<el-select
v-model="searchListDecisionForm.sendBatch"
clearable
filterable
@click.native="getExceptionAirnoOptions(2)"
>
<el-option
v-for="item in sendBatchList"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-button
size="mini"
type="main"
icon="el-icon-search"
style="margin-bottom: 6px"
@click="onDecisionFormSearch('1')"
>查询</el-button
>
<el-button
size="mini"
icon="el-icon-plus"
@click="handleAddRow()"
style="margin-bottom: 6px"
>添加分流</el-button
>
</el-col>
</el-row>
</el-form>
<sfair-pagination
@sizeChange="decisionPageSizeChange"
@currentChange="decisionHandleCurrentChangePage"
:currentPage.sync="decisionPagination.currentPage"
:pageSize.sync="decisionPagination.pageSize"
:total="decisionPagination.total"
class="sfair-first-level"
></sfair-pagination>
<el-table
class="data-list"
v-loading="loadind"
:data="orderExceptionTempShuntGridList"
ref="multipleTable1"
border
highlight-current-row
@selection-change="changeDecisionSelectedList"
>
<el-table-column type="expand">
<template slot-scope="scope">
<el-table :data="scope.row.capacityList" class="data-list">
<el-table-column width="700"></el-table-column>
<el-table-column
prop="capacityName"
label="航班号"
width="100"
align="center"
></el-table-column>
<el-table-column
prop="departTm"
label="最晚离场时间"
:formatter="departTmShow"
width="100"
align="center"
></el-table-column>
<el-table-column
prop="avaiableSpaceAmount"
label="可用舱位"
width="100"
align="center"
></el-table-column>
<el-table-column
prop="planSpaceAmount"
label="订舱量"
width="100"
align="center"
></el-table-column>
<el-table-column
prop="approvalSpaceAmount"
label="批舱量"
width="100"
align="center"
></el-table-column>
<el-table-column
prop="restSpaceAmount"
label="剩余可用舱位"
align="center"
></el-table-column>
</el-table>
</template>
</el-table-column>
<el-table-column
type="selection"
align="center"
width="50"
prop="id"
/>
<el-table-column
prop="sendBatchDt"
label="需求日期"
width="100"
align="center"
:formatter="sendBatchDtShow"
>
</el-table-column>
<el-table-column
prop="departDeptCode"
label="发货网点"
width="100"
align="center"
>
</el-table-column>
<el-table-column
prop="sendBatch"
label="发出班次"
align="center"
width="100"
>
</el-table-column>
<el-table-column
prop="departCityCode"
label="始发地"
align="center"
width="100"
:formatter="departCityNameShow"
>
</el-table-column>
<el-table-column
prop="arriveCityCode"
label="目的地"
align="center"
width="100"
:formatter="arriveCityNameShow"
>
</el-table-column>
<el-table-column
prop="arriveDeptCode"
label="目的网点"
align="center"
width="100"
>
</el-table-column>
<el-table-column
prop="scheduleFlightType"
label="时效类型"
align="center"
:formatter="scheduleFlightTypeNameShow"
width="100"
>
</el-table-column>
<el-table-column
prop="cargoType"
label="货物类型"
align="center"
width="100"
:formatter="cargoTypeTypeNameShow"
>
</el-table-column>
<el-table-column
prop="avaiableSpaceAmount"
label="可用舱位"
align="center"
width="100"
>
</el-table-column>
<el-table-column
prop="planSpaceAmount"
label="订舱量"
align="center"
width="100"
>
</el-table-column>
<el-table-column
prop="approvalSpaceAmount"
label="批舱量"
align="center"
width="100"
>
</el-table-column>
<el-table-column
prop="restSpaceAmount"
label="剩余可用舱位"
align="center"
width="140"
>
</el-table-column>
</el-table>
</el-row>
</el-form>
</el-dialog>
<el-dialog
title="邮件地址选择页面"
:visible.sync="this.emailFormDialogVisible"
width="100%"
:close-on-click-modal="false"
:before-close="closeEmailForm"
class="sfair-dialog"
>
<el-form
class="searchform1 exceptForm"
:inline="true"
:model="emailSearchListForm"
ref="searchListForm"
label-width="80px"
>
<el-row>
<el-col :span="24">
<el-form-item
label="组织:"
prop="processStatus"
class="label_required"
>
<el-select
v-model="emailSearchListForm.orgId"
filterable
:filter-method="orgFilter"
clearable
>
<el-option
v-for="(item, index) in orgDataShowList"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="工号:" prop="empCode">
<el-input v-model="emailSearchListForm.empCode"></el-input>
</el-form-item>
<el-form-item label="姓名:" prop="empName">
<el-input v-model="emailSearchListForm.empName"></el-input>
</el-form-item>
<el-button
size="mini"
type="main"
icon="el-icon-search"
@click="onEmpListSearch()"
style="margin-top: 5px"
>查询</el-button
>
<el-button
size="mini"
type="operate"
icon="el-icon-search"
@click="onAddEmailTo()"
style="margin-top: 5px"
>添加</el-button
>
</el-col>
</el-row>
</el-form>
<el-table
class="data-list"
v-loading="loadind"
:data="emailDataList"
ref="multipleEmailDataTable"
border
highlight-current-row
@selection-change="changeEmailSelectedList"
height="400"
>
<el-table-column type="selection" align="center" width="50" prop="id" />
<el-table-column prop="empNum" label="工号" width="150" align="center">
</el-table-column>
<el-table-column prop="empName" label="姓名" align="center" width="150">
</el-table-column>
<el-table-column
prop="email"
label="邮件地址"
width="260"
align="center"
>
</el-table-column>
</el-table>
</el-dialog>
</div>
</template>
<script>
import { userHttp } from "@/api/user";
import SelectCodeMultiple from "@/components/SelectCodeMultiple";
// UI改造增加-引用
import {
getPageConditionToggleBtnClass,
getPageConfigBtnClass,
getSysCode,
} from "@/utils/auth";
import { Loading } from "element-ui";
import selectCode from "../marketCollection/components/selectCode.vue";
import resourceControl from "./resourceControl.vue";
export default {
components: { selectCode, SelectCodeMultiple, resourceControl },
data() {
// UI改造增加-变量
const baiyuanModuleCode = window.baiyuanModuleCode
? window.baiyuanModuleCode
: "exceptionManage";
return {
emptyCityCodeOptions: [],
//UI改造增加-属性 - start
queryTableVisible: true,
colLeftConfig: [],
colRightConfig: [],
colNormalConfig: [
{
prop: "exceptionCode",
label: "异常ID",
},
{
prop: "exceptionTypeCode",
label: "异常类型",
},
{
prop: "exceptionDate",
label: "异常日期",
},
{
prop: "processStatus",
label: "是否升级调度",
},
{
prop: "processStatus1",
label: "调度处理结果",
},
{
prop: "orderCode",
label: "调令编号",
},
{
prop: "departAreaCode",
label: "地区",
},
{
prop: "departDeptCode",
label: "网点",
},
{
prop: "departCityCode",
label: "始发地",
},
{
prop: "arriveCityCode",
label: "目的地",
},
{
prop: "sendBatch",
label: "发货班次",
},
{
prop: "capacityName",
label: "异常航班",
},
{
prop: "scheduleFlightType",
label: "异常航班时效类型",
},
{
prop: "exceptionNums",
label: "异常件数",
},
{
prop: "phWeight",
label: "普货(KG)",
},
{
prop: "sxWeight",
label: "生鲜(KG)",
},
{
prop: "xhWeight",
label: "鲜活(KG)",
},
{
prop: "taWeight",
label: "TA(KG)",
},
{
prop: "carsNo",
label: "笼号或车标号",
},
{
prop: "operatingResult",
label: "驳回原因",
},
{
prop: "exceptionDesc",
label: "备注",
},
{
prop: "reportDate",
label: "异常升级调度时间",
},
{
prop: "reportEmpno",
label: "升级调度人",
},
{
prop: "modifiedEmpCode",
label: "调度处理人",
},
],
searchNormalConfig: [
{
prop: "deptCode",
label: "网点",
},
{
prop: "exceptionTypeCode",
label: "异常类型",
},
{
prop: "exceptionDateStart",
label: "异常开始日期",
},
{
prop: "exceptionDateEnd",
label: "异常结束日期",
},
],
searchMoreConfig: [
{
prop: "exceptionCode",
label: "异常ID",
},
{
prop: "isUpgradeOrder",
label: "是否升级调度",
},
{
prop: "departCityCode",
label: "始发地",
},
{
prop: "arriveCityCode",
label: "目的地",
},
{
prop: "sendBatch",
label: "班次",
},
{
prop: "processStatus",
label: "调度处理结果",
},
],
listConfigDataKey: baiyuanModuleCode,
listConfigShow: false,
conditionConfigDataKey: baiyuanModuleCode,
conditionToggleBtnClass: getPageConditionToggleBtnClass(),
pageConfigBtnClass: getPageConfigBtnClass(),
sysCode: getSysCode(), // 获取系统编码
butConfigDataKey: baiyuanModuleCode, // 模块编码
btnHeight: 0, // 按钮模块高度
conditionHeight: 0,
butConfigShow: false, // 按钮配置开关
conditionConfigShow: false,
moreBtnsData: [], // 更多按钮
moreVisible: false, // 展示更多查询条件
btnsData: [
// 按钮显示配置
{
key: "search_exceptionManage_btn",
label: "查询",
type: "main",
icon: "el-icon-search",
},
{
key: "add_exceptionManage_btn",
label: "新增",
type: "list",
icon: "el-icon-plus",
},
{
key: "modify_exceptionManage_btn",
label: "修改",
type: "list",
icon: "el-icon-edit",
},
{
key: "cancle_exceptionManage_btn",
label: "取消",
type: "operate",
},
{
key: "upgrade_exceptionManage_btn",
label: "升级调度",
type: "operate",
},
{
key: "changeOrder_exceptionManage_btn",
label: "转调令",
type: "operate",
},
{
key: "confirm_exceptionManage_btn",
label: "同意改配",
type: "permission",
},
{
key: "rejected_exceptionManage_btn",
label: "驳回",
type: "operate",
},
],
searchListForm: {
exceptionTypeCode: "",
exceptionDateStart: "",
exceptionDateEnd: "",
exceptionIdcode: "",
processStatus: null,
exceptionAirNo: "",
arriveCityCode: "",
departCityCode: "",
departDeptCode: "",
isUpgradeOrder: null,
},
Pagination: {
totalSize: 0,
pageSize: 20,
currentPage: 1,
},
decisionPagination: {
total: 0,
pageSize: 10,
currentPage: 1,
},
addexceptionDateCheck(dt) {
return false;
},
loadind: false,
deptIds: "",
dataList: [],
isUpOptions: [
{ label: "是", value: 1 },
{ label: "否", value: 2 },
],
errorTypeOptions: [
{ label: "舱位缺口预警", value: 1 },
{ label: "中转航空溢出", value: 2 },
{ label: "发货异常", value: 3 },
],
resultTypeOptions: [
{ label: "待处理", value: 6 },
{ label: "转调令", value: 4 },
{ label: "已发布调令", value: 5 },
{ label: "同意改配", value: 7 },
{ label: "驳回", value: 8 },
],
//异常数据
DialogVisible: false,
DialogTitle: "新增异常",
ProcessType: "add",
ProcessForm: {
exceptionTypeCode: "2",
exceptionDate: "",
exceptionDesc: "",
carsNo: "",
taWeight: 0,
xhWeight: 0,
sxWeight: 0,
phWeight: 0,
exceptionNums: "",
exceptionAirNo: "",
arriveCityCode: "",
departCityCode: "",
departDeptCode: "",
saveType: 0,
id: "",
},
changeOrderFormDialogVisible: false,
emailFormDialogVisible: false,
OrderForm: {
orderTitle: "",
orderCode: "",
timeEffect: "",
exceptionType: "",
issuerEmpCode: "",
issuerEmpName: "",
issuerPhoneNo: "",
exceptionDate: "",
issuingEmpCode: "",
issuingEmpName: "",
issuingPhoneNo: "",
executableUnit: "",
departDeptCode: "",
reportTime: "",
issuingUnit: "",
sendEmailList: "",
sendEmailOrgIds: "",
ccEmailList: "",
ccEmailOrgIds: "",
shuntDesc: "",
issuerPhoneNoShow: "",
issuingPhoneNoShow: "",
},
btnObj: {
search_exceptionManage_btn: true,
add_exceptionManage_btn: true,
modify_exceptionManage_btn: true,
cancle_exceptionManage_btn: true,
upgrade_exceptionManage_btn: true,
changeOrder_exceptionManage_btn: true,
confirm_exceptionManage_btn: true,
rejected_exceptionManage_btn: true,
},
exceptionOrderRadio: null,
exceptionOrderMap: null,
exceptionShuntMap: null,
OrderExceptionTempForm: {
exceptionDate: "",
arriveCityCode: "",
departCityCode: "",
sendBatch: "",
goodsStowageType: "",
nums: 0,
exceptionCode: "",
},
ShuntForm: {
requiredDate: "",
arriveCityCode: "",
departCityCode: "",
sendBatch: "",
},
exceptionTypeOptions: [{ label: "中转航空溢出", value: "2" }],
exceptionTypeSelectOptions: [
{ label: "舱位缺口预警", value: "1" },
{ label: "中转航空溢出", value: "2" },
{ label: "发货异常", value: "3" },
],
monitorTypeOptions: [
{ label: "事前", value: "1" },
{ label: "事中", value: "2" },
{ label: "事后", value: "3" },
],
scheduleFlightTypeOptions: [
{ label: "早", value: "1" },
{ label: "午", value: "2" },
{ label: "晚", value: "3" },
],
scheduleFlightTypeOptionsMap: new Map([
["1", "早航班"],
["2", "午航班"],
["3", "晚航班"],
]),
airTypeCodeOptions: [
{ label: "全货机", value: "1" },
{ label: "干线", value: "2" },
{ label: "铁路", value: "4" },
],
airTypeCodeShuntOptions: [{ label: "散航", value: "3" }],
cityCodeOptions: [],
exceptionAirnoOptions: [],
selectionsList: [],
secisionselectionsList: [],
tableRowIndex: 0,
exceptionOrderSelectionsList: [],
orderExceptionTempGridList: [],
orderExceptionTempShuntGridList: [],
shuntDataList: [],
orderTitle: "关于{0}年{1}月{2}日{3}分流调整的调令",
emailDataList: [],
orgDataList: [],
orgDataShowList: [],
emailSearchListForm: {
orgId: "",
},
emailTxtType: "",
emailSectionList: [],
orderSpanArr: [],
pos: 0,
searchListDecisionForm: {
exceptionDate: "",
arriveCityCode: "",
departCityCode: "",
sendBatch: "",
},
sendBatchList: [],
addExceptionPickerOptions: {
disabledDate(time) {
return (
time.getTime() < new Date().getTime() - 2 * 24 * 3600 * 1000 ||
time.getTime() > new Date().getTime() + 7 * 24 * 3600 * 1000
);
},
},
addDecisionExceptionPickerOptions: {
disabledDate(time) {
return (
time.getTime() < new Date().getTime() - 2 * 24 * 3600 * 1000 ||
time.getTime() > new Date().getTime() + 1 * 24 * 3600 * 1000
);
},
},
searchDepartDeptCodeList: [],
shuntTableRowSubid: 0,
};
},
computed: {
// UI改造增加-计算属性 - start
// 列表的所有列
cols() {
const left = this.colLeftConfig.map((val) => {
return { ...val, fixed: "left" };
});
const right = this.colRightConfig.map((val) => {
return { ...val, fixed: "right" };
});
const normal = this.colNormalConfig.map((val) => {
return { ...val, fixed: null };
});
return left.concat(right).concat(normal);
},
// 列表高度
tableHeight() {
const paginationHeight = 26 + 12;
let conditionHeight = this.conditionHeight;
let btnHeight = this.btnHeight;
if (btnHeight) btnHeight += 16;
let sum = btnHeight + conditionHeight + paginationHeight + 16;
if (this.showIsControl) {
sum += 42;
}
return `calc(100% - ${sum}px)`;
},
// 所有查询条件
conditions() {
const normal = this.searchNormalConfig.map((val) => {
return { ...val, area: "normal" };
});
const more = this.searchMoreConfig.map((val) => {
return { ...val, area: "more" };
});
return normal.concat(more);
},
// 常用按钮
btns() {
const btnsData = this.btnsData.map((val) => {
return { ...val, area: "normal" };
});
return btnsData.filter((val) => {
return this.btnObj[val.key];
});
//return btnsData
},
// 更多按钮
moreBtns() {
const btnsData = this.moreBtnsData.map((val) => {
return { ...val, area: "more" };
});
return btnsData.filter((val) => {
return this.btnObj[val.key];
});
},
// UI改造增加-计算属性 - end
showIsControl() {
const isControl = this.$route.query.isControl;
if (isControl) {
return true;
} else {
return false;
}
},
},
methods: {
// UI改造增加-方法 - start
// 重新渲染
reRender() {
this.queryTableVisible = false;
this.$nextTick(() => {
this.queryTableVisible = true;
this.$nextTick(() => {
this.resizeLogic();
});
});
},
// 更新列的状态
tableConfigChange({ normal, left, right }) {
this.colLeftConfig = left;
this.colRightConfig = right;
this.colNormalConfig = normal;
this.reRender();
},
// 窗口尺寸发生变化时 重新调整布局
resizeLogic() {
if (this.$refs.multipleTable) {
this.$nextTick(() => {
this.$refs.multipleTable.doLayout();
});
}
},
// 条件高度变化
conditionChange(height) {
this.conditionHeight = height;
},
// 按钮查询条件是否显示
isVisible({ visible, area }) {
if (area === "normal") {
return visible !== false;
}
if (area === "more") {
return visible !== false && this.moreVisible;
}
},
// 展示更多按钮
moreToggle(val) {
this.moreVisible = val;
},
// 响应偏好设置
switchItem({ normal, more }) {
this.searchMoreConfig = more
.filter(() => {
return true;
})
.map((val) => {
return {
label: val.label,
prop: val.prop,
visible: val.visible,
area: "more",
};
});
this.searchNormalConfig = normal
.filter(() => {
return true;
})
.map((val) => {
return {
label: val.label,
prop: val.prop,
visible: val.visible,
area: "normal",
};
});
},
// 显示自定义配置
showConfig(key) {
if (key === "query") this.conditionConfigShow = true;
if (key === "list") this.listConfigShow = true;
if (key === "btn") this.butConfigShow = true;
},
// 按钮高度变化
btnChange(height) {
this.btnHeight = height;
},
// 相应按钮组件的点击事件
btnClick(key) {
if (key === "search_exceptionManage_btn") this.onExceptionSearch();
if (key === "add_exceptionManage_btn") this.addNewExceptionBtn();
if (key === "modify_exceptionManage_btn") this.modifyExceptionBtn();
if (key === "cancle_exceptionManage_btn") this.cancelExceptionBtn();
if (key === "cancelTask_bookingInteraction_btn") this.cancelTask();
if (key === "cancle_exceptionManage_btn") this.cancelExceptionBtn();
if (key === "upgrade_exceptionManage_btn") this.reportExceptionOrderBtn();
if (key === "changeOrder_exceptionManage_btn") this.changeOrderBtn();
if (key === "confirm_exceptionManage_btn") this.confirmTaskBtn();
if (key === "rejected_exceptionManage_btn") this.rejectedTaskBtn();
},
// UI改造增加-方法 - end
changDeptCodeEvent(val, list) {
if (list !== undefined) {
this.searchDepartDeptCodeList = list;
}
},
stringFormat() {
if (arguments.length == 0) return null;
var str = arguments[0];
for (var i = 1; i < arguments.length; i++) {
var re = new RegExp("\\{" + (i - 1) + "\\}", "gm");
str = str.replace(re, arguments[i]);
}
return str;
},
taNumberChange(val, maxNum) {
//重新渲染
this.$nextTick(() => {
//比较输入的值和最大值,返回小的
let num = Math.min(Number(val), maxNum);
//输入负值的情况下, = 0(可根据实际需求更该)
if (num < 0) {
this.ProcessForm.taWeight = 0;
} else {
//反之
this.ProcessForm.taWeight = num;
}
});
},
phNumberChange(val, maxNum) {
//重新渲染
this.$nextTick(() => {
//比较输入的值和最大值,返回小的
let num = Math.min(Number(val), maxNum);
//输入负值的情况下, = 0(可根据实际需求更该)
if (num < 0) {
this.ProcessForm.phWeight = 0;
} else {
//反之
this.ProcessForm.phWeight = num;
}
});
},
sxNumberChange(val, maxNum) {
//重新渲染
this.$nextTick(() => {
//比较输入的值和最大值,返回小的
let num = Math.min(Number(val), maxNum);
//输入负值的情况下, = 0(可根据实际需求更该)
if (num < 0) {
this.ProcessForm.sxWeight = 0;
} else {
//反之
this.ProcessForm.sxWeight = num;
}
});
},
xhNumberChange(val, maxNum) {
//重新渲染
this.$nextTick(() => {
//比较输入的值和最大值,返回小的
let num = Math.min(Number(val), maxNum);
//输入负值的情况下, = 0(可根据实际需求更该)
if (num < 0) {
this.ProcessForm.xhWeight = 0;
} else {
//反之
this.ProcessForm.xhWeight = num;
}
});
},
numsNumberChange(val, maxNum) {
//重新渲染
this.$nextTick(() => {
//比较输入的值和最大值,返回小的
let num = Math.min(Number(val), maxNum);
//输入负值的情况下, = 0(可根据实际需求更该)
if (num < 0) {
this.ProcessForm.exceptionNums = 0;
} else {
//反之
this.ProcessForm.exceptionNums = num;
}
});
},
showissuerPhoneNo() {
this.OrderForm.issuerPhoneNoShow = this.OrderForm.issuerPhoneNo; // 电话号码 4位星号
this.phoneType1 = "show";
this.setEyeStyle();
},
hideissuerPhoneNo() {
this.OrderForm.issuerPhoneNoShow = this.phoneNumFilter(
this.OrderForm.issuerPhoneNo
); // 电话号码 明文
this.phoneType1 = "";
this.setEyeStyle();
},
setOrgPhoneNo(value) {
this.OrderForm.issuerPhoneNo = value;
this.hideissuerPhoneNo();
},
setEyeStyle() {
let e = document.getElementsByClassName("el-icon-view")[0];
if (e) {
this.phoneType1 == ""
? e.setAttribute("style", "color: #c0c4cc")
: e.setAttribute("style", "color: #409EFF");
}
},
showissuingPhoneNo() {
this.OrderForm.issuingPhoneNoShow = this.OrderForm.issuingPhoneNo; // 电话号码 4位星号
this.phoneType2 = "show";
this.setIssuingEyeStyle();
},
hideissuingPhoneNo() {
this.OrderForm.issuingPhoneNoShow = this.phoneNumFilter(
this.OrderForm.issuingPhoneNo
); // 电话号码 明文
this.phoneType2 = "";
this.setIssuingEyeStyle();
},
setIssuingOrgPhoneNo(value) {
this.OrderForm.issuingPhoneNo = value;
this.hideissuingPhoneNo();
},
setIssuingEyeStyle() {
let e = document.getElementsByClassName("el-icon-view")[1];
if (e) {
this.phoneType2 == ""
? e.setAttribute("style", "color: #c0c4cc")
: e.setAttribute("style", "color: #409EFF");
}
},
phoneNumFilter(phone) {
if (phone) {
let reg = /(\d{3})\d{4}(\d{4})/;
let tel1 = phone.replace(reg, "$1****$2");
return tel1;
}
},
orgFilter(query = "") {
let arr = this.orgDataList.filter((item) => {
return item.label.includes(query);
});
if (arr.length > 50) {
this.orgDataShowList = arr.slice(0, 50);
} else {
this.orgDataShowList = arr;
}
},
onExceptionSearch() {
if (
!this.searchDepartDeptCodeList ||
this.searchDepartDeptCodeList.length == 0
) {
this.$message({
message: "查询时,网点代码必须输入",
type: "warning",
});
return false;
}
if (!this.searchListForm.exceptionDateStart) {
this.$message({
message: "查询时,异常开始时间必须输入",
type: "warning",
});
return false;
}
if (!this.searchListForm.exceptionDateEnd) {
this.$message({
message: "查询时,异常结束时间必须输入",
type: "warning",
});
return false;
}
var startTime = new Date(
this.searchListForm.exceptionDateStart
).getTime();
var endTime = new Date(this.searchListForm.exceptionDateEnd).getTime();
var dates = Math.abs(startTime - endTime) / (1000 * 60 * 60 * 24);
if (dates > 31) {
this.$message({
message: "查询时,异常结束时间和异常开时间间隔不允许超过31天",
type: "warning",
});
return false;
}
if (startTime > endTime) {
this.$message({
message: "查询时,异常结束时间不能大于异常开始时间",
type: "warning",
});
return false;
}
this.Pagination.pageSize = 20;
this.Pagination.currentPage = 1;
this.getTableData();
},
onEmpListSearch() {
if (!this.emailSearchListForm.orgId) {
this.$message({
message: "根据组织查询员工信息时,组织信息不允许为空",
type: "warning",
});
return false;
}
var urlH = "/air/dispatch/webapi/getEmpInfoByOrgId";
let loadingInstance = Loading.service({
fullscreen: true,
});
let params = {
orgId: this.emailSearchListForm.orgId,
empCode: this.emailSearchListForm.empCode,
empName: this.emailSearchListForm.empName,
};
this.$httpExt()
.get(urlH, params)
.then(
(response) => {
loadingInstance.close();
this.emailDataList = response.result;
//this.emailPagination.total = response.result.total;
},
(response) => {
loadingInstance.close();
}
);
},
onAddEmailTo() {
if (this.emailSectionList.length == 0) {
return;
}
let emailList = "";
this.emailSectionList.forEach((item) => {
emailList = emailList + item.email + ";";
});
if ("send" == this.emailTxtType) {
this.OrderForm.sendEmailList = emailList + this.OrderForm.sendEmailList;
this.OrderForm.sendEmailOrgIds = this.emailSearchListForm.orgId;
} else if ("cc" == this.emailTxtType) {
this.OrderForm.ccEmailList = emailList + this.OrderForm.ccEmailList;
this.OrderForm.ccEmailOrgIds = this.emailSearchListForm.orgId;
}
//this.emailFormDialogVisible = false;
},
getTableData() {
let isUpgradeOrderProcessStatusList = [];
if (this.searchListForm.isUpgradeOrder == 1) {
// 是
isUpgradeOrderProcessStatusList = [3, 4, 5, 6, 7, 8];
} else if (this.searchListForm.isUpgradeOrder == 2) {
// 否
isUpgradeOrderProcessStatusList = [0, 1, 2];
}
let processStatusList = [];
if (this.searchListForm.processStatus) {
if (this.searchListForm.processStatus == 6) {
processStatusList.push(0);
processStatusList.push(1);
processStatusList.push(2);
processStatusList.push(3);
processStatusList.push(6);
} else {
processStatusList.push(this.searchListForm.processStatus);
}
}
let postProcessStatusList = [];
if (
isUpgradeOrderProcessStatusList.length > 0 &&
processStatusList.length > 0
) {
let mergeList = isUpgradeOrderProcessStatusList.filter(function (item) {
return processStatusList.indexOf(item) !== -1;
});
if (mergeList && mergeList.length > 0) {
postProcessStatusList = mergeList;
} else {
postProcessStatusList.push(999);
}
} else if (isUpgradeOrderProcessStatusList.length > 0) {
postProcessStatusList = isUpgradeOrderProcessStatusList;
} else if (processStatusList.length > 0) {
postProcessStatusList = processStatusList;
}
let tmpSearchDeptCodeList = [];
if (this.searchListForm.departDeptCode) {
this.searchDepartDeptCodeList.forEach((item) => {
tmpSearchDeptCodeList.push(item.id);
});
}
var param = {
totalCount: 1,
operType: 0, // 查询
processObject: {
exceptionTypeCode: this.searchListForm.exceptionTypeCode,
exceptionDateStart: this.$format(
new Date(this.searchListForm.exceptionDateStart).getTime(),
"yyyy-MM-dd"
),
exceptionDateEnd: this.$format(
new Date(this.searchListForm.exceptionDateEnd).getTime(),
"yyyy-MM-dd"
),
exceptionCode: this.searchListForm.exceptionCode,
sendBatch: this.searchListForm.sendBatch,
arriveCityCodeList: this.searchListForm.arriveCityCode,
departCityCodeList: this.searchListForm.departCityCode,
//departDeptCode:this.searchListForm.departDeptCode,
processStatusList: postProcessStatusList,
deptCodeList: tmpSearchDeptCodeList,
},
pageNum: this.Pagination.currentPage,
pageSize: this.Pagination.pageSize,
};
var urlH = "/air/dispatch/webapi/queryExceptions";
let loadingInstance = Loading.service({
fullscreen: true,
});
this.$httpExt()
.post(urlH, param)
.then(
(response) => {
loadingInstance.close();
// 处理成一个包括 子表的list
this.dataList = response.result.records;
this.Pagination.totalSize = response.result.total;
this.DialogVisible = false;
},
(response) => {
loadingInstance.close();
this.$message({
message: response.msg
? response.msg
: this.$t("common.exceptionWornText"),
type: "warning",
});
}
);
},
pageSizeChange(val) {
this.Pagination.pageSize = val;
this.getTableData();
},
handleCurrentChangePage(val) {
this.Pagination.currentPage = val;
this.getTableData();
},
decisionPageSizeChange(val) {
this.decisionPagination.pageSize = val;
this.onDecisionFormSearch();
},
decisionHandleCurrentChangePage(val) {
this.decisionPagination.currentPage = val;
this.onDecisionFormSearch();
},
/**
* @description: 关闭弹窗事件
* @param {*}
* @return {*}
*/
closeProcessForm() {
this.ProcessType = "";
this.ProcessFormReset("ProcessForm");
this.DialogVisible = false;
},
closeOrderForm() {
this.changeOrderFormDialogVisible = false;
this.$refs["OrderForm"].resetFields();
this.OrderForm.orderCode = "";
this.OrderForm.timeEffect = "";
this.OrderForm.issuerEmpCode = "";
this.OrderForm.issuerEmpName = "";
this.OrderForm.issuerPhoneNo = "";
this.OrderForm.issuingEmpCode = "";
this.OrderForm.issuingEmpName = "";
this.OrderForm.issuingPhoneNo = "";
this.OrderForm.executableUnit = "";
this.OrderForm.shuntDesc = "";
this.OrderForm.sendEmailList = "";
this.OrderForm.ccEmailList = "";
this.$refs["searchListDecisionForm"].resetFields();
this.searchListDecisionForm.exceptionDate = "";
this.searchListDecisionForm.departCityCode = "";
this.searchListDecisionForm.arriveCityCode = "";
this.searchListDecisionForm.sendBatch = "";
this.searchListDecisionForm.cargoType = "";
this.orderExceptionTempShuntGridList = [];
this.orderExceptionTempGridList.forEach((item) => {
item = {};
});
this.decisionPagination.total = 0;
this.exceptionOrderRadio = null;
},
closeEmailForm() {
this.emailFormDialogVisible = false;
this.$refs.multipleEmailDataTable.clearSelection();
this.emailSearchListForm.empCode = "";
this.emailSearchListForm.empName = "";
this.emailSearchListForm.orgId = "";
this.emailDataList = [];
},
queryOrderDetailBtn(row) {
this.ProcessType = "query";
this.DialogTitle = "详情查看";
this.changeOrderFormDialogVisible = true;
//查看明细数据 显示表格中
this.getOrderDetailInfo(row.orderId);
},
getOrderDetailInfo(id) {
var params = {
processObject: { id: id },
};
var urlH = "/air/dispatch/webapi/queryTransferOrderDetail";
let loadingInstance = Loading.service({
fullscreen: true,
});
this.$httpExt()
.post(urlH, params)
.then(
(response) => {
loadingInstance.close();
if ("ok" == response.succ) {
this.settingDetails(response.result);
} else {
}
loadingInstance.close();
},
(response) => {
loadingInstance.close();
}
);
},
settingDetails(result) {
let obj = this.$deepCopy(result);
this.OrderForm = obj;
this.orderExceptionTempGridList = result.exceptionsSubList;
//this.OrderForm.issuingEmpCode = obj.issuingEmpName;
//this.OrderForm.issuerEmpCode = obj.issuerEmpName;
let that = this;
if (this.ProcessType != "query") {
this.OrderForm.issuingEmpCode = "";
// 获取 当前登录人信息
this.getIssuingEmpInfo();
this.OrderForm.issuingTime = this.$format(
new Date().getTime(),
"yyyy-MM-dd hh:mm:ss"
);
this.orderExceptionTempGridList.forEach((item) => {
if (item.dataFrom == "shunt") {
item.airTypeCodeShuntOptions = this.airTypeCodeShuntOptions;
} else {
item.airTypeCodeShuntOptions = this.airTypeCodeOptions;
}
});
} else {
this.orderExceptionTempGridList.forEach((item) => {
if (item.dataFrom == "shunt") {
item.airTypeCodeShuntOptions = this.airTypeCodeShuntOptions;
} else {
item.airTypeCodeShuntOptions = this.airTypeCodeOptions;
}
item.subid = this.tableRowIndex;
this.tableRowIndex++;
item.goodsStowageTypeName = this.goodsStowageTypeNameShow(
item.goodsStowageType
);
item.exceptionRowDepartCityOptions = [
{
label: that.exceptionDepartCityCodeFormatter(item),
value: item.exceptionDepartCityCode,
},
];
item.exceptionRowArriveCityCodeOptions = [
{
label: that.exceptionArriveCityCodeFormatter(item),
value: item.exceptionArriveCityCode,
},
];
item.rowDepartCityCodeOptions = [
{
label: that.departCityNameShow(item),
value: item.departCityCode,
},
];
item.rowArriveCityCodeOptions = [
{
label: that.arriveCityNameShow(item),
value: item.arriveCityCode,
},
];
});
}
this.$set(
this.OrderForm,
"issuerPhoneNoShow",
this.phoneNumFilter(this.OrderForm.issuerPhoneNo)
);
//this.OrderForm.issuerPhoneNoShow = ; // 电话号码 密文
this.phoneType1 = "";
this.setEyeStyle();
this.$set(
this.OrderForm,
"issuingPhoneNoShow",
this.phoneNumFilter(this.OrderForm.issuingPhoneNo)
);
this.$set(
this.OrderForm,
"issuingTime",
this.$format(new Date(this.OrderForm.issuingTime).getTime(),"yyyy-MM-dd hh:mm:ss")
);
//this.OrderForm.issuerPhoneNoShow = ; // 电话号码 密文
this.phoneType2 = "";
this.setIssuingEyeStyle();
this.calcRowMerger(this.orderExceptionTempGridList);
},
changeOrderBtn() {
if (!this.selectionsList || this.selectionsList.length < 1) {
this.$message({
message: `请选择需要进行转调令的数据`,
type: "warning",
});
return;
}
if (this.selectionsList && this.selectionsList.length > 20) {
this.$message({
message: `最多可支持20条异常合并转调令,请分批处理`,
type: "warning",
});
return;
}
if (this.selectionsList && this.selectionsList.length == 1) {
if (
this.selectionsList[0].processStatus == 4 ||
this.selectionsList[0].processStatus == 5 ||
this.selectionsList[0].processStatus == 7 ||
this.selectionsList[0].processStatus == 8
) {
let result = "";
if (this.selectionsList[0].processStatus == 4) {
result = "转调令";
}
if (this.selectionsList[0].processStatus == 5) {
result = "已发布调令";
}
if (this.selectionsList[0].processStatus == "8") {
result = "驳回";
}
if (this.selectionsList[0].processStatus == "7") {
result = "同意改配";
}
this.$message({
message: `调度处理结果为${result}, 请勿重复操作`,
type: "warning",
});
return;
}
if (this.selectionsList[0].processStatus != 6) {
this.$message({
message: `异常未升级调度,不可转调令处理`,
type: "warning",
});
return;
}
}
let exceptionDepartDeptCodeSet = new Set();
this.selectionsList.forEach((item) => {
exceptionDepartDeptCodeSet.add(item.departAreaCode);
});
if (exceptionDepartDeptCodeSet.size > 1) {
this.$message({
message: `区部网点不同,可不可合并转调令`,
type: "warning",
});
return;
}
let exceptionTypeCodeSet = new Set();
this.selectionsList.forEach((item) => {
exceptionTypeCodeSet.add(item.exceptionTypeCode);
});
if (exceptionTypeCodeSet.size > 1) {
this.$message({
message: `存在异常类型不同/未升级调度/调度已处理的异常, 不可合并转调令`,
type: "warning",
});
return;
}
let res = this.selectionsList.filter((item) => {
return item.processStatus != 6;
});
if (res && res.length > 0) {
this.$message({
message: `存在异常类型不同/未升级调度/调度已处理的异常, 不可合并转调令`,
type: "warning",
});
return;
}
let res1 = this.selectionsList.filter((item) => {
return item.processStatus == 5;
});
if (res1 && res1.length > 0) {
this.$message({
message: `存在异常类型不同/未升级调度/调度已处理的异常, 不可合并转调令`,
type: "warning",
});
return;
}
this.tableRowIndex = 0;
//获取订单编号
// this.getOrderCode("");
this.OrderForm.issuingEmpName = "";
// 获取 当前登录人信息
this.getIssuingEmpInfo();
this.ProcessType = "changeorder";
this.selectionsList.sort((a, b) => {
return a.reportDate < b.reportDate ? -1 : 1;
});
let converted = new Date(
Date.parse(this.selectionsList[0].exceptionDate)
);
let year = converted.getFullYear();
let month = converted.getMonth() + 1;
let date = converted.getDate();
let exceptionTitle = "中转航空溢出";
if (this.selectionsList[0].exceptionTypeCode == "1") {
exceptionTitle = "舱位缺口预警";
} else if (this.selectionsList[0].exceptionTypeCode == "3") {
exceptionTitle = "发货异常";
}
this.OrderForm.orderTitle = this.stringFormat(
this.orderTitle,
year,
month,
date,
exceptionTitle
);
this.exceptionTypeSelectOptions.forEach((item) => {
if (item.value == this.selectionsList[0].exceptionTypeCode) {
this.OrderForm.exceptionType = item.value;
}
});
this.OrderForm.timeEffect = this.selectionsList[0].exceptionTypeCode;
this.OrderForm.exceptionDate = this.selectionsList[0].reportDate;
this.OrderForm.departDeptCode = this.selectionsList[0].departDeptCode;
this.orderExceptionTempGridList = [];
this.changeOrderFormDialogVisible = true;
//this.OrderForm.issuingEmpCode= sessionStorage.getIte("userName");
// 根据选择的数据进行数据处理 按照
//异常日期 //场地代码//始发地//目的地 //发出班次//货物类型//缺口量
this.selectionsList.forEach((item) => {
let ph = false,
ta = false,
sx = false,
xh = false;
let phList = [],
taList = [],
sxList = [],
xhList = [];
for (let i = 0; i < 4; i++) {
let tempOrderExceptionGridObj = {};
tempOrderExceptionGridObj.exceptionDate = item.exceptionDate;
//tempOrderExceptionGridObj.shuntDate =item.exceptionDate;
tempOrderExceptionGridObj.exceptionDepartCityCode =
item.departCityCode;
tempOrderExceptionGridObj.exceptionArriveCityCode =
item.arriveCityCode;
tempOrderExceptionGridObj.exceptionSendBatch = item.sendBatch;
tempOrderExceptionGridObj.exceptionDepartDeptCode =
item.departDeptCode;
tempOrderExceptionGridObj.id = item.id;
tempOrderExceptionGridObj.groupId = this.tableRowIndex;
tempOrderExceptionGridObj.match = false;
tempOrderExceptionGridObj.dataFrom = "tableadd";
tempOrderExceptionGridObj.isCanDelete = false;
tempOrderExceptionGridObj.airTypeCodeShuntOptions =
this.airTypeCodeOptions;
if (item.phWeight && item.phWeight != 0 && !ph) {
tempOrderExceptionGridObj.goodsStowageType = "ph";
tempOrderExceptionGridObj.goodsStowageTypeName = "普货";
tempOrderExceptionGridObj.exceptionWeight = item.phWeight;
//tempOrderExceptionGridObj.shuntNum = item.phWeight;
tempOrderExceptionGridObj.subid = this.tableRowIndex;
this.orderExceptionTempGridList.push(tempOrderExceptionGridObj);
ph = true;
this.tableRowIndex++;
} else if (item.taWeight && item.taWeight != 0 && !ta) {
tempOrderExceptionGridObj.goodsStowageType = "ta";
tempOrderExceptionGridObj.goodsStowageTypeName = "TA";
tempOrderExceptionGridObj.exceptionWeight = item.taWeight;
//tempOrderExceptionGridObj.shuntNum = item.taWeight;
tempOrderExceptionGridObj.subid = this.tableRowIndex;
this.orderExceptionTempGridList.push(tempOrderExceptionGridObj);
ta = true;
this.tableRowIndex++;
} else if (item.sxWeight && item.sxWeight != 0 && !sx) {
tempOrderExceptionGridObj.goodsStowageType = "sx";
tempOrderExceptionGridObj.goodsStowageTypeName = "生鲜";
tempOrderExceptionGridObj.exceptionWeight = item.sxWeight;
//tempOrderExceptionGridObj.shuntNum = item.sxWeight;
tempOrderExceptionGridObj.subid = this.tableRowIndex;
this.orderExceptionTempGridList.push(tempOrderExceptionGridObj);
sx = true;
this.tableRowIndex++;
} else if (item.xhWeight && item.xhWeight != 0 && !xh) {
tempOrderExceptionGridObj.goodsStowageType = "xh";
tempOrderExceptionGridObj.goodsStowageTypeName = "鲜活";
tempOrderExceptionGridObj.exceptionWeight = item.xhWeight;
//tempOrderExceptionGridObj.shuntNum = item.xhWeight;
tempOrderExceptionGridObj.subid = this.tableRowIndex;
this.orderExceptionTempGridList.push(tempOrderExceptionGridObj);
xh = true;
this.tableRowIndex++;
}
}
});
this.calcRowMerger(this.orderExceptionTempGridList);
},
getIssuingEmpInfo() {
let empcode = "empCode";
if (this.OrderForm.issuingEmpName) {
empcode = this.OrderForm.issuingEmpName;
}
var urlH = "/air/dispatch/webapi/getEmpInfoByEmpCode/" + empcode;
let loadingInstance = Loading.service({
fullscreen: true,
});
this.$httpExt()
.get(urlH)
.then(
(response) => {
loadingInstance.close();
if ("ok" == response.succ) {
this.OrderForm.issuingEmpName = response.result.empNum;
this.OrderForm.issuingEmpCode = response.result.empName;
this.OrderForm.issuingPhoneNo = response.result.phoneNum;
this.OrderForm.issuingUnit = response.result.orgName;
this.OrderForm.issuerEmpName = response.result.supervisorNumber;
this.OrderForm.issuerEmpCode = response.result.supervisorName;
this.OrderForm.issuerPhoneNo = response.result.supervisorPhoneNo;
this.$set(
this.OrderForm,
"issuerPhoneNoShow",
this.phoneNumFilter(this.OrderForm.issuerPhoneNo)
);
//this.OrderForm.issuerPhoneNoShow = ; // 电话号码 密文
this.phoneType1 = "";
this.setEyeStyle();
this.$set(
this.OrderForm,
"issuingPhoneNoShow",
this.phoneNumFilter(this.OrderForm.issuingPhoneNo)
);
//this.OrderForm.issuerPhoneNoShow = ; // 电话号码 密文
this.phoneType2 = "";
this.setIssuingEyeStyle();
} else {
this.OrderForm.issuingEmpCode = "";
}
},
(response) => {
this.OrderForm.issuingEmpCode = "";
loadingInstance.close();
}
);
},
getIssuerEmpInfo() {
var urlH =
"/air/dispatch/webapi/getEmpInfoByEmpCode/" +
this.OrderForm.issuerEmpCode;
let loadingInstance = Loading.service({
fullscreen: true,
});
this.$httpExt()
.get(urlH)
.then(
(response) => {
loadingInstance.close();
if ("ok" == response.succ && response.result) {
this.OrderForm.issuerEmpName = response.result.empCode;
this.OrderForm.issuerEmpCode = response.result.empName;
this.OrderForm.issuerPhoneNo = response.result.phoneNum;
} else {
this.OrderForm.issuerEmpCode = "";
this.$message({
message: `工号${this.OrderForm.issuerEmpCode}不存在`,
type: "warning",
});
}
},
(response) => {
this.OrderForm.issuerEmpCode = "";
loadingInstance.close();
this.$message({
message: `查询${this.OrderForm.issuerEmpCode}工号时,系统发生异常,请稍后重试`,
type: "warning",
});
}
);
},
confirmTaskBtn() {
if (this.selectionsList.length < 1) {
this.$message({
message: `请至少选择一条数据进行改配操作`,
type: "warning",
});
return false;
}
let typeRes = this.selectionsList.filter((item) => {
return item.exceptionTypeCode != 3;
});
if (typeRes && typeRes.length > 0) {
this.$message({
message: `仅发货异常可操作同意改配`,
type: "warning",
});
return false;
}
let res = this.selectionsList.filter((item) => {
return item.processStatus != "6";
});
if (res && res.length > 0) {
this.$message({
message: "仅待处理中的异常可操作同意改配",
type: "warning",
});
return;
}
//提示是否确认
this.$confirm(`现场将根据预改配航班发运,请确认是否同意!`, "温馨提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
this.modifyDataBatch(7, "异常任务同意改配");
});
},
rejectedTaskBtn() {
if (this.selectionsList.length != 1) {
this.$message({
message: `仅允许单条勾选驳回`,
type: "warning",
});
return false;
}
if (this.selectionsList[0].exceptionTypeCode == 3) {
this.$message({
message: `发货异常不可驳回`,
type: "warning",
});
return false;
}
if (
this.selectionsList[0].processStatus != 6 &&
!(
this.selectionsList[0].processStatus == 0 ||
this.selectionsList[0].processStatus == 1 ||
this.selectionsList[0].processStatus == 2
)
) {
let result = "";
if (this.selectionsList[0].processStatus == 4) {
result = "转调令";
}
if (this.selectionsList[0].processStatus == 5) {
result = "已发布调令";
}
if (this.selectionsList[0].processStatus == "8") {
result = "驳回";
}
this.$message({
message: `调度处理结果为${result},不可驳回`,
type: "warning",
});
return false;
}
if (
this.selectionsList[0].processStatus == 0 ||
this.selectionsList[0].processStatus == 1 ||
this.selectionsList[0].processStatus == 2
) {
this.$message({
message: `异常未升级调度,不可驳回`,
type: "warning",
});
return false;
}
//提示是否确认
this.$prompt("请输入驳回原因:", "温馨提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
inputValue: "",
inputErrorMessage: "输入不能为空",
inputValidator: (value) => {
// 点击按钮时,对文本框里面的值进行验证
if (!value) {
return "输入不能为空";
}
if (value.length > 300) {
return "最大的长度不能超过300";
}
},
})
.then(({ value }) => {
let selectionsListTemp = [];
this.selectionsList.forEach((item) => {
item.operatingResult = value;
selectionsListTemp.push(item);
});
var param = {
totalCount: 1,
operType: 8,
totalList: selectionsListTemp,
};
var urlH = "/air/dispatch/webapi/updateException";
let loadingInstance = Loading.service({
fullscreen: true,
});
this.$httpExt()
.post(urlH, param)
.then(
(response) => {
loadingInstance.close();
if ("0000" != response.result.errorCode) {
this.$message({
message: response.result.errorMessage
? response.result.errorMessage
: "异常任务驳回未知系统返回值",
type: "warning",
});
} else {
this.$message({
message: response.result.errorMessage
? response.result.errorMessage
: "异常任务驳回未知系统返回值",
type: "success",
});
this.getTableData();
}
},
(response) => {
loadingInstance.close();
}
);
})
.catch((err) => {});
},
checkException() {
if (!this.ProcessForm.exceptionDate) {
this.$message({
message: "新增异常数据时,异常日期必须选择",
type: "error",
});
return false;
}
if (!this.ProcessForm.arriveCityCode) {
this.$message({
message: "新增异常数据时,目的地必须选择",
type: "error",
});
return false;
}
if (!this.ProcessForm.sendBatch) {
this.$message({
message: "新增异常数据时,班次必须选择",
type: "error",
});
return false;
}
if (this.ProcessForm.departCityCode == this.ProcessForm.arriveCityCode) {
this.$message({
message: "新增异常数据时,始发地和目的地不能一致",
type: "error",
});
return false;
}
if (this.ProcessForm.carsNo && this.ProcessForm.carsNo.length != 12) {
this.$message({
message: "新增异常数据时,笼号或车标号长度为12位数字",
type: "error",
});
return false;
}
if (
!this.ProcessForm.exceptionNums ||
!(
this.ProcessForm.exceptionNums > 0 &&
this.ProcessForm.exceptionNums <= 99999
)
) {
this.$message({
message: "新增异常数据时,异常件数必须输入,并且为1到99999",
type: "error",
});
return false;
}
if (
"" + this.ProcessForm.phWeight == "" ||
!(this.ProcessForm.phWeight >= 0 && this.ProcessForm.phWeight <= 99999)
) {
this.$message({
message: "新增异常数据时,普货必须输入,并且为0到99999",
type: "error",
});
return false;
}
if (
"" + this.ProcessForm.sxWeight == "" ||
!(this.ProcessForm.sxWeight >= 0 && this.ProcessForm.sxWeight <= 99999)
) {
this.$message({
message: "新增异常数据时,生鲜必须输入,并且为0到99999",
type: "error",
});
return false;
}
if (
"" + this.ProcessForm.xhWeight == "" ||
!(this.ProcessForm.xhWeight >= 0 && this.ProcessForm.xhWeight <= 99999)
) {
this.$message({
message: "新增异常数据时,鲜活必须输入,并且为0到99999",
type: "error",
});
return false;
}
if (
"" + this.ProcessForm.taWeight == "" ||
!(this.ProcessForm.taWeight >= 0 && this.ProcessForm.taWeight <= 99999)
) {
this.$message({
message: "新增异常数据时,TA必须输入,并且为0到99999",
type: "error",
});
return false;
}
let totalWeight =
parseFloat(this.ProcessForm.phWeight) +
parseFloat(this.ProcessForm.sxWeight) +
parseFloat(this.ProcessForm.xhWeight) +
parseFloat(this.ProcessForm.taWeight);
if (!(totalWeight > 0 && totalWeight <= 99999)) {
this.$message({
message: "班次溢出总量必须大于0且小于等于99999",
type: "error",
});
return false;
}
},
saveException() {
if (this.checkException() == false) {
return;
}
this.saveData(1);
this.closeProcessForm();
this.getTableData();
},
ProcessFormReset(form) {
if (
this.selectionsList &&
this.selectionsList.length == 1 &&
this.ProcessType == "update"
) {
let obj = this.$deepCopy(this.selectionsList[0]);
this.ProcessForm = obj;
} else {
this.ProcessForm.exceptionDate = "";
this.ProcessForm.arriveCityCode = "";
this.ProcessForm.sendBatch = "";
this.ProcessForm.exceptionNums = "";
this.ProcessForm.phWeight = "0";
this.ProcessForm.sxWeight = "0";
this.ProcessForm.xhWeight = "0";
this.ProcessForm.taWeight = "0";
this.ProcessForm.carsNo = "";
this.ProcessForm.exceptionDesc = "";
}
},
formReset(form) {
this.$refs[form].resetFields(); // 重置表单
},
saveAndReport() {
if (this.orderCheck() == false) {
return;
}
this.postOrder(5);
},
orderCheck() {
if (!this.OrderForm.orderTitle) {
this.$message({
message: `调令主题不允许为空`,
type: "warning",
});
return false;
}
if (this.OrderForm.orderTitle && this.OrderForm.orderTitle.length > 100) {
this.$message({
message: `调令标题最大长度100`,
type: "warning",
});
return false;
}
if (!this.OrderForm.sendEmailList) {
this.$message({
message: `收件人地址不允许为空`,
type: "warning",
});
return false;
}
if (!this.OrderForm.executableUnit) {
this.$message({
message: `相关执行单位不允许为空`,
type: "warning",
});
return false;
}
if (
this.OrderForm.executableUnit &&
this.OrderForm.executableUnit.length > 300
) {
this.$message({
message: `相关执行单位最大长度300`,
type: "warning",
});
return false;
}
if (
!this.OrderForm.shuntDesc ||
(this.OrderForm.shuntDesc && this.OrderForm.shuntDesc.length > 1000)
) {
this.$message({
message: `分流说明必须输入,并且长度不允许超过1000`,
type: "warning",
});
return false;
}
//const regMobile = /(\d{11})|(\(?(\d{3,4}\)?)?-?\d{7,8}-?(\d{1,4})?)/;
const regMobile = /^[\d\(\)\-\/]{1,20}$/g;
if (!this.OrderForm.issuingPhoneNo) {
this.$message({
message: `发布人电话号码不允许为空`,
type: "warning",
});
return false;
}
if (this.OrderForm.issuingPhoneNo && (!regMobile.test(this.OrderForm.issuingPhoneNo)) ) {
this.$message({
message: `发布人电话号码格式不正确`,
type: "warning",
});
return false;
}
const regMobile1 = /^[\d\(\)\-\/]{1,20}$/g;
if (!this.OrderForm.issuerPhoneNo) {
this.$message({
message: `签发人电话号码不允许为空`,
type: "warning",
});
return false;
}
if (this.OrderForm.issuerPhoneNo && (!regMobile1.test(this.OrderForm.issuerPhoneNo)) ) {
this.$message({
message: `签发人电话号码格式不正确`,
type: "warning",
});
return false;
}
if (!this.OrderForm.issuerEmpCode || this.OrderForm.issuerEmpCode == "") {
this.$message({
message: `签发人不允许为空`,
type: "warning",
});
return false;
}
if (
!this.OrderForm.issuingEmpCode ||
this.OrderForm.issuingEmpCode == ""
) {
this.$message({
message: `发布人不允许为空`,
type: "warning",
});
return false;
}
let errorMessage = [];
if (this.orderExceptionTempGridList) {
this.orderExceptionTempGridList.forEach((exce) => {
let errorInfo = "";
if (!exce.shuntDate) {
errorInfo = errorInfo + "分流信息需求日期不允许为空" + ";";
}
if (!exce.departCityCode) {
errorInfo = errorInfo + "分流信息始发地不允许为空" + ";";
}
if (!exce.arriveCityCode) {
errorInfo = errorInfo + "分流信息目的地不允许为空" + ";";
}
if (!exce.sendBatch) {
errorInfo = errorInfo + "分流信息发出班次不允许为空" + ";";
}
if (!exce.scheduleFlightType) {
errorInfo = errorInfo + "分流信息时效类型不允许为空" + ";";
}
if (!exce.shuntNum) {
errorInfo = errorInfo + "分流信息分流量不允许为空" + ";";
}
if (exce.shuntNum && (exce.shuntNum < 1 || exce.shuntNum > 99999)) {
errorInfo = errorInfo + "分流信息分流量范围为1到99999" + ";";
}
if (!exce.airTypeCode) {
errorInfo = errorInfo + "分流信息运力类型不允许为空" + ";";
}
if (errorInfo && errorInfo != "") {
errorMessage.push(
"异常日期:[" +
exce.exceptionDate +
"] " +
"发货网点:[" +
exce.exceptionDepartDeptCode +
"] " +
"始发地:[" +
exce.exceptionDepartCityCode +
"] " +
"目的地:[" +
exce.exceptionArriveCityCode +
"] " +
(exce.exceptionSendBatch != ""
? "发出班次:[" + exce.exceptionSendBatch + "] "
: "") +
"货物类型:[" +
exce.goodsStowageTypeName +
"] 存在如下多个异常信息" +
" : " +
errorInfo
);
}
});
if (errorMessage && errorMessage.length > 0) {
let newDatas = [];
const h = this.$createElement;
for (let i in errorMessage) {
if (errorMessage[i] && errorMessage[i] != "") {
newDatas.push(h("p", null, errorMessage[i]));
}
}
if (newDatas && newDatas.length > 0) {
this.$message({
message: h("div", null, newDatas),
type: "warning",
});
return false;
}
}
}
let tempList = this.$deepCopy(this.orderExceptionTempGridList);
// 需求日期***, 流向***,发出班次***,运力类型** 分流总量为0,不可保存,请检查。
let that = this;
let errorRes = tempList
.reduce(
function (res, obj) {
// 需求日期***, 流向***,发出班次***,运力类型** 分流总量为0,不可保存,请检查
//let showStr = "需求日期"+obj.exceptionDate+", 流向"+ that.departCityNameShow(obj)+"到"+ that.arriveCityNameShow(obj)+",发出班次"+obj.sendBatch+",运力类型"+obj.airTypeCode+ "分流总量为0,不可保存,请检查";
let showStr =
"异常日期" +
obj.exceptionDate +
"," +
that.departCityNameShow(obj) +
"至" +
that.arriveCityNameShow(obj) +
",发出班次" +
obj.sendBatch +
"," +
that.goodsStowageTypeNameShow(obj.goodsStowageType) +
"分流量大于缺口量,请修正后再提交";
let key = obj.groupId + ";" + obj.goodsStowageType;
if (!(key in res)) {
obj.showStr = showStr;
res.__array.push((res[key] = obj));
} else {
res[key].shuntNum =
parseFloat(res[key].shuntNum) + parseFloat(obj.shuntNum);
if (!res[key].showStr) {
res[key].showStr = showStr;
}
}
return res;
},
{ __array: [] }
)
.__array.filter((item) => {
return parseFloat(item.exceptionWeight) < parseFloat(item.shuntNum);
});
if (errorRes && errorRes.length > 0) {
this.$message({
message: errorRes[0].showStr,
type: "warning",
});
return false;
}
},
saveAndUpgrade() {
if (this.checkException() == false) {
return;
}
this.$confirm(
`异常升级调度后不可修改,请确认是否继续升级!`,
"温馨提示",
{
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}
)
.then(() => {
this.saveData(1, "异常任务创建", true);
})
.catch(() => {});
},
modifyAndUpgrade() {
if (this.checkException() == false) {
return;
}
this.$confirm(
`异常升级调度后不可修改,请确认是否继续升级!`,
"温馨提示",
{
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}
)
.then(() => {
this.modifyData(6, "异常任务修改&升级调度", true);
this.closeProcessForm();
})
.catch(() => {});
},
showEmailDialog(type) {
if (type == 1) {
this.emailTxtType = "send";
this.emailSectionList = [];
} else if (type == 2) {
this.emailTxtType = "cc";
this.emailSectionList = [];
}
this.emailFormDialogVisible = true;
},
/**
* @description: 新增异常--按钮
* @param {*}
* @return {*}
*/
addNewExceptionBtn() {
this.ProcessForm.departDeptCode = this.searchListForm.departDeptCode;
if (!this.ProcessForm.departDeptCode || !this.searchDepartDeptCodeList) {
this.$message({
message: "新增异常数据时,请先选择网点",
type: "error",
});
return;
}
if (
this.searchDepartDeptCodeList &&
this.searchDepartDeptCodeList.length > 1
) {
this.$message({
message: "新增异常数据时,只允许选择一个网点",
type: "error",
});
return;
}
if (
!(
this.searchDepartDeptCodeList[0].typeLevel == 3 ||
this.searchDepartDeptCodeList[0].typeLevel == 4
)
) {
this.$message({
message: "新增异常数据时,选择网点类型必须为非总部及区部网点",
type: "error",
});
return;
}
//设置为 发货网点对应的城市 代码
this.getCityCodeByDepartCode();
this.DialogVisible = true;
this.ProcessType = "add";
this.DialogTitle = "新增异常";
},
onDecisionFormSearch(isfirstQuery) {
if (isfirstQuery == "1") {
this.decisionPagination.currentPage = 1;
}
if (!this.searchListDecisionForm.exceptionDate) {
this.$message({
message: `决策参考查询时,需求日期不允许为空`,
type: "warning",
});
return;
}
let cargoType;
// ( 1普货,2鲜活,3生鲜,4ta件)
if (this.exceptionOrderRadio) {
if (this.exceptionOrderRadio.goodsStowageType == "ph") {
cargoType = 1;
}
if (this.exceptionOrderRadio.goodsStowageType == "xh") {
cargoType = 2;
}
if (this.exceptionOrderRadio.goodsStowageType == "sx") {
cargoType = 3;
}
if (this.exceptionOrderRadio.goodsStowageType == "ta") {
cargoType = 4;
}
}
var param = {
sendBatchDt: this.searchListDecisionForm.exceptionDate,
departCityCode: this.searchListDecisionForm.departCityCode,
sendBatch: this.searchListDecisionForm.sendBatch,
arriveCityCode: this.searchListDecisionForm.arriveCityCode,
cargoType: cargoType,
pageNum: this.decisionPagination.currentPage,
pageSize: this.decisionPagination.pageSize,
};
var urlH = "/air/requirement/bookRequirementRps/pageQuery";
let loadingInstance = Loading.service({
fullscreen: true,
});
let that = this;
this.$httpExt()
.post(urlH, param)
.then(
(response) => {
loadingInstance.close();
if ("ok" != response.succ) {
this.$message({
message: response.msg
? response.msg
: "决策参考信息查询失败未知系统返回值",
type: "warning",
});
} else {
this.orderExceptionTempShuntGridList = response.result.records;
this.orderExceptionTempShuntGridList.forEach((item) => {
item.departCityCodeOptions = [
{
label: that.departCityNameShow(item),
value: item.departCityCode,
},
];
item.arriveCityCodeOptions = [
{
label: that.arriveCityNameShow(item),
value: item.arriveCityCode,
},
];
});
this.decisionPagination.total = response.result.total;
}
},
(response) => {
loadingInstance.close();
}
);
},
goodsStowageTypeNameShow(value) {
if (value == "ph") {
return "普货";
} else if (value == "xh") {
return "鲜活";
} else if (value == "sx") {
return "生鲜";
} else if (value == "ta") {
return "TA";
}
},
airTypeCodeNameShow(value) {
if (value == "1") {
return "全货机";
} else if (value == "2") {
return "干线";
} else if (value == "3") {
return "散航";
} else if (value == "4") {
return "铁路";
}
},
addShuntInfo(currentRowKey, shuntDefault) {
if (this.exceptionShuntMap.get(currentRowKey)) {
//不为空时
this.exceptionShuntMap.get(currentRowKey).push(shuntDefault);
} else {
let shuntDataTempList = [];
shuntDataTempList.push(shuntDefault);
this.exceptionShuntMap.set(currentRowKey, shuntDataTempList);
}
},
getCityCodeByDepartCode() {
if (this.searchDepartDeptCodeList) {
var urlH =
"/air/dispatch/webapi/getCityCodeByDeptCode/" +
this.searchDepartDeptCodeList[0].id;
this.$httpExt()
.get(urlH)
.then(
(response) => {
if (response.succ) {
this.ProcessForm.departCityCode = response.msg;
}
},
(response) => {}
);
}
},
postOrder(type) {
var nowDate = new Date();
let exceptionIdSet = new Set();
this.orderExceptionTempGridList.forEach((item) => {
exceptionIdSet.add(item.id);
});
var param = {
totalCount: 1,
operType: type,
batchNo: this.selectionsList[0].processNo,
processObject: {
exceptionIdList: Array.from(exceptionIdSet),
airDispatcherTransferOrderDTO: {
orderTitle: this.OrderForm.orderTitle,
orderCode: this.OrderForm.orderCode,
timeEffect: this.OrderForm.timeEffect,
exceptionType: this.OrderForm.exceptionType,
issuerEmpCode: this.OrderForm.issuerEmpName,
issuerEmpName: this.OrderForm.issuerEmpCode,
issuerPhoneNo: this.OrderForm.issuerPhoneNo,
reportTime: this.selectionsList[0].exceptionDate,
issuingUnit: this.OrderForm.issuingUnit,
issuingTime: this.$format(nowDate.getTime(), "yyyy-MM-dd hh:mm:ss"),
issuingEmpCode: this.OrderForm.issuingEmpName,
issuingEmpName: this.OrderForm.issuingEmpCode,
issuingPhoneNo: this.OrderForm.issuingPhoneNo,
executableUnit: this.OrderForm.executableUnit,
shuntDesc: this.OrderForm.shuntDesc,
exceptionIdCode: this.selectionsList[0].exceptionIdCode,
exceptionId: this.selectionsList[0].id,
exceptionsSubList: this.orderExceptionTempGridList,
orderStatus: type,
departDeptCode: this.selectionsList[0].departAreaCode,
exceptionDate: this.OrderForm.exceptionDate,
sendEmailList: this.OrderForm.sendEmailList,
ccEmailList: this.OrderForm.ccEmailList,
airDispatcherExceptionsList: this.selectionsList,
departAreaCode: this.selectionsList[0].departAreaCode,
},
},
};
var urlH = "/air/dispatch/webapi/updateException";
let loadingInstance = Loading.service({
fullscreen: true,
});
this.$httpExt()
.post(urlH, param)
.then(
(response) => {
loadingInstance.close();
if ("0000" != response.result.errorCode) {
this.$message({
message: "调令发布失败,请查看错误信息",
type: "warning",
});
// 下载错误文件
if ("9587" == response.result.errorCode) {
let url =
`/air/dispatch/webapi/downloadStream/` +
response.result.errorMessage;
let fileName = response.result.errorMessage;
this.$http()
.get(url, {}, { responseType: "blob" })
.then((response) => {
let blob = new Blob([response]);
let downloadElement = document.createElement("a");
let href = window.URL.createObjectURL(blob); //创建下载的链接
downloadElement.href = href;
downloadElement.download = "调令发布临时需求异常信息.xlsx"; //下载后文件名
document.body.appendChild(downloadElement);
downloadElement.click(); //点击下载
document.body.removeChild(downloadElement); //下载完成移除元素
window.URL.revokeObjectURL(href); //释放掉blob对象
});
}
//this.closeOrderForm();
} else {
this.$message({
message: response.result.errorMessage
? response.result.errorMessage
: "转调令创建未知系统返回值",
type: "success",
});
this.changeOrderFormDialogVisible = false;
this.closeOrderForm();
this.getTableData();
}
},
(response) => {
loadingInstance.close();
this.changeOrderFormDialogVisible = false;
}
);
},
saveOrderBtn() {
// 保存转调令数据
if (this.orderCheck() == false) {
return;
}
this.postOrder(4);
},
departCityCodeChangeClear(val, scope) {
if (scope && scope.row && val) {
scope.row.sendBatch = "";
this.$set(this.orderExceptionTempGridList, scope.$index, scope.row);
}
},
rowSendBatchCurrOperatorChange(val,scope){
if (val) {
let obj ={};
obj = scope.row.sendBatchListOptions.find(item => {
return item.value === val //筛选出匹配数据
})
scope.row.sendBatch = obj.label;
this.$set(this.orderExceptionTempGridList, scope.$index, scope.row);
} else {
scope.row.sendBatch = ''
this.$set(this.orderExceptionTempGridList, scope.$index, scope.row);
}
},
emptyCityCodeOptionsSet(event, scope, cityType) {
if (event) {
if (cityType == 1) {
scope.row.rowDepartCityCodeOptions = this.cityCodeOptions;
} else {
scope.row.rowArriveCityCodeOptions = this.cityCodeOptions;
}
} else {
if (cityType == 1) {
scope.row.rowDepartCityCodeOptions = [];
} else {
scope.row.rowArriveCityCodeOptions = [];
}
}
this.$set(this.orderExceptionTempGridList, scope.$index, scope.row);
},
getExceptionAirnoOptionsByRow(row, index) {
let departCityCode = row.departCityCode;
if (!departCityCode) {
return false;
}
let url =
`/air/requirement/menu/getDeptCodeBathListByCityCode?cityCode=` +
departCityCode;
this.$http()
.get(url)
.then((res) => {
let sendBatchList = res.result.map((item) => {
return {
label: item.batchCode,
value: item.batchCode,
};
});
row.sendBatchListOptions = sendBatchList;
this.$set(this.orderExceptionTempGridList, index, row);
});
},
sendBatchDtShow(value) {
return value.sendBatchDt.substr(0, 10);
},
departTmShow(value) {
if (value.departTm) {
if (("" + value.departTm).length == 3) {
return "0" + value.departTm;
}
if (("" + value.departTm).length == 2) {
return "00" + value.departTm;
}
if (("" + value.departTm).length == 1) {
return "000" + value.departTm;
}
}
return value.departTm;
},
checkGirdRowByGroupId(data, addRowCount) {
if (!data || data.length + addRowCount <= 20) {
return true;
}
//let showStr = "异常日期"+this.exceptionOrderRadio.exceptionDate+","+this.exceptionDepartCityCodeFormatter(this.exceptionOrderRadio)+"至"+this.exceptionArriveCityCodeFormatter(this.exceptionOrderRadio)+",发出班次"+this.exceptionOrderRadio.exceptionSendBatch+ ","+ this.goodsStowageTypeNameShow(this.exceptionOrderRadio.goodsStowageType) +"分流明细数据最多只能支持20条";
let showStr = "每个异常最多可添加20条分流信息,请分批处理";
let maxRowsError = data.filter((item) => {
return item.groupId == this.exceptionOrderRadio.groupId;
});
if (maxRowsError && maxRowsError.length + addRowCount > 20) {
this.$message({
message: showStr,
type: "warning",
});
return false;
}
return true;
},
checkGirdRowByCargoType(data) {
//let showStr = "异常日期"+this.exceptionOrderRadio.exceptionDate+","+this.exceptionDepartCityCodeFormatter(this.exceptionOrderRadio)+"至"+this.exceptionArriveCityCodeFormatter(this.exceptionOrderRadio)+",发出班次"+this.exceptionOrderRadio.exceptionSendBatch+ ","+ this.goodsStowageTypeNameShow(this.exceptionOrderRadio.goodsStowageType) +"分流明细数据最多只能支持20条";
let showStr = "异常货物类型与决策数据的货物类型不一致,不允许添加";
let maxRowsError = data.filter((item) => {
return (
this.cargoTypeTypeNameShow(item) !=
this.exceptionOrderRadio.goodsStowageTypeName
);
});
if (maxRowsError && maxRowsError.length > 0) {
this.$message({
message: showStr,
type: "warning",
});
return false;
}
return true;
},
handleAddRow(index, row) {
if (!this.exceptionOrderRadio) {
this.$message({
message: "请选择一条异常信息",
type: "warning",
});
return;
}
let exceptionOrderTempList = this.orderExceptionTempGridList;
if (!row) {
if (
this.secisionselectionsList &&
this.secisionselectionsList.length > 0
) {
// 本次添加是否覆盖掉 第一行 不允许删除的记录;
let isMeger = false; //默认不合并
let isRemove = 0;
let minList = this.orderExceptionTempGridList.filter((item) => {
return item.groupId == this.exceptionOrderRadio.groupId;
});
let minSubId = minList[0].subid;
let isMegerList = this.orderExceptionTempGridList.filter((item) => {
return (
item.groupId == this.exceptionOrderRadio.groupId &&
item.subid == minSubId &&
(!item.shuntDate || item.shuntDate == "") &&
(!item.departCityCode || item.departCityCode == "") &&
(!item.arriveCityCode || item.arriveCityCode == "") &&
(!item.sendBatch || item.sendBatch == "") &&
(!item.scheduleFlightType || item.scheduleFlightType == "") &&
(!item.shuntNum || item.shuntNum == "") &&
(!item.airTypeCode || item.airTypeCode == "")
);
});
if (isMegerList && isMegerList.length > 0) {
isMeger = true;
isRemove = -1;
}
if (
!this.checkGirdRowByGroupId(
this.orderExceptionTempGridList,
this.secisionselectionsList.length + isRemove
)
) {
return;
}
if (!this.checkGirdRowByCargoType(this.secisionselectionsList)) {
return;
}
this.secisionselectionsList.forEach((item) => {
if (isMeger) {
let tempRowList = this.orderExceptionTempGridList.filter(
(item) => {
return (
item.groupId == this.exceptionOrderRadio.groupId &&
item.subid == minSubId
);
}
);
let tempRowObj = {};
if (tempRowList && tempRowList.length > 0) {
tempRowObj = tempRowList[0];
}
tempRowObj.rowDepartCityCodeOptions = item.departCityCodeOptions;
tempRowObj.rowArriveCityCodeOptions = item.arriveCityCodeOptions;
this.$set(
tempRowObj,
"shuntDate",
this.$format(new Date(item.sendBatchDt).getTime(), "yyyy-MM-dd")
);
//shuntDefault.departCityCode=item.departCityCode;
this.$set(tempRowObj, "departCityCode", item.departCityCode);
//shuntDefault.departDeptCode = item.departDeptCode;
this.$set(tempRowObj, "departDeptCode", item.departDeptCode);
//shuntDefault.arriveCityCode = item.arriveCityCode;
this.$set(tempRowObj, "arriveCityCode", item.arriveCityCode);
//shuntDefault.sendBatch = item.sendBatch;
this.$set(tempRowObj, "sendBatch", item.sendBatch);
//shuntDefault.scheduleFlightType =""+item.scheduleFlightType;
this.$set(
tempRowObj,
"scheduleFlightType",
"" + item.scheduleFlightType
);
//shuntDefault.shuntNum = this.exceptionOrderRadio.exceptionWeight;
this.$set(
tempRowObj,
"shuntNum",
this.exceptionOrderRadio.exceptionWeight
? this.exceptionOrderRadio.exceptionWeight
: 0
);
//shuntDefault.airTypeCode = "3";
this.$set(tempRowObj, "airTypeCode", "3");
// shuntDefault.goodsStowageType = this.exceptionOrderRadio.goodsStowageType;
//tempRowObj.subid = this.tableRowIndex;
tempRowObj.match = true;
tempRowObj.dataFrom = "shunt";
this.$set(tempRowObj, "arriveDeptCode", item.arriveDeptCode);
//shuntDefault.arriveDeptCode = item.arriveDeptCode;
tempRowObj.airTypeCodeShuntOptions = this.airTypeCodeShuntOptions;
//this.tableRowIndex++;
isMeger = false;
} else {
let shuntDefault = {};
shuntDefault.rowDepartCityCodeOptions =
item.departCityCodeOptions;
shuntDefault.rowArriveCityCodeOptions =
item.arriveCityCodeOptions;
shuntDefault.exceptionDate =
this.exceptionOrderRadio.exceptionDate;
shuntDefault.exceptionDepartDeptCode =
this.exceptionOrderRadio.exceptionDepartDeptCode;
shuntDefault.exceptionDepartCityCode =
this.exceptionOrderRadio.exceptionDepartCityCode;
shuntDefault.exceptionArriveCityCode =
this.exceptionOrderRadio.exceptionArriveCityCode;
shuntDefault.exceptionSendBatch =
this.exceptionOrderRadio.exceptionSendBatch;
shuntDefault.goodsStowageType =
this.exceptionOrderRadio.goodsStowageType;
shuntDefault.goodsStowageTypeName =
this.exceptionOrderRadio.goodsStowageTypeName;
shuntDefault.exceptionWeight =
this.exceptionOrderRadio.exceptionWeight;
//shuntDefault.emptyCityCodeOptions = this.cityCodeOptions;
this.$set(
shuntDefault,
"shuntDate",
this.$format(new Date(item.sendBatchDt).getTime(), "yyyy-MM-dd")
);
//shuntDefault.departCityCode=item.departCityCode;
this.$set(shuntDefault, "departCityCode", item.departCityCode);
//shuntDefault.departDeptCode = item.departDeptCode;
this.$set(shuntDefault, "departDeptCode", item.departDeptCode);
//shuntDefault.arriveCityCode = item.arriveCityCode;
this.$set(shuntDefault, "arriveCityCode", item.arriveCityCode);
//shuntDefault.sendBatch = item.sendBatch;
this.$set(shuntDefault, "sendBatch", item.sendBatch);
//shuntDefault.scheduleFlightType =""+item.scheduleFlightType;
this.$set(
shuntDefault,
"scheduleFlightType",
"" + item.scheduleFlightType
);
//shuntDefault.shuntNum = this.exceptionOrderRadio.exceptionWeight;
this.$set(
shuntDefault,
"shuntNum",
this.exceptionOrderRadio.exceptionWeight
? this.exceptionOrderRadio.exceptionWeight
: 0
);
//shuntDefault.airTypeCode = "3";
this.$set(shuntDefault, "airTypeCode", "3");
// shuntDefault.goodsStowageType = this.exceptionOrderRadio.goodsStowageType;
shuntDefault.id = this.exceptionOrderRadio.id;
shuntDefault.subid = this.tableRowIndex;
shuntDefault.groupId = this.exceptionOrderRadio.groupId;
shuntDefault.match = true;
shuntDefault.dataFrom = "shunt";
this.$set(shuntDefault, "arriveDeptCode", item.arriveDeptCode);
//shuntDefault.arriveDeptCode = item.arriveDeptCode;
shuntDefault.airTypeCodeShuntOptions =
this.airTypeCodeShuntOptions;
this.tableRowIndex++;
shuntDefault.isCanDelete = true;
exceptionOrderTempList.push(shuntDefault);
}
});
} else {
this.$message({
message: "请选择分流决策参考数据",
type: "warning",
});
return;
}
} else {
if (!this.checkGirdRowByGroupId(this.orderExceptionTempGridList, 1)) {
return;
}
let shuntDefault = {};
shuntDefault.exceptionDate = this.exceptionOrderRadio.exceptionDate;
shuntDefault.exceptionDepartDeptCode =
this.exceptionOrderRadio.exceptionDepartDeptCode;
shuntDefault.exceptionDepartCityCode =
this.exceptionOrderRadio.exceptionDepartCityCode;
shuntDefault.exceptionArriveCityCode =
this.exceptionOrderRadio.exceptionArriveCityCode;
shuntDefault.exceptionSendBatch =
this.exceptionOrderRadio.exceptionSendBatch;
shuntDefault.goodsStowageType =
this.exceptionOrderRadio.goodsStowageType;
shuntDefault.goodsStowageTypeName =
this.exceptionOrderRadio.goodsStowageTypeName;
shuntDefault.exceptionWeight = this.exceptionOrderRadio.exceptionWeight;
//shuntDefault.shuntDate = this.exceptionOrderRadio.exceptionDate;
shuntDefault.departDeptCode = ""; //this.exceptionOrderRadio.departDeptCode;
shuntDefault.departCityCode = ""; //this.exceptionOrderRadio.departCityCode;
shuntDefault.arriveCityCode = ""; //this.exceptionOrderRadio.arriveCityCode;
shuntDefault.sendBatch = "";
//shuntDefault.shuntNum = this.exceptionOrderRadio.exceptionWeight;
shuntDefault.airTypeCode = "";
shuntDefault.id = this.exceptionOrderRadio.id;
//shuntDefault.goodsStowageType = this.exceptionOrderRadio.goodsStowageType;
//shuntDefault.scheduleFlightType = "3";
shuntDefault.subid = this.tableRowIndex;
shuntDefault.groupId = this.exceptionOrderRadio.groupId;
shuntDefault.match = true;
shuntDefault.dataFrom = "tableadd";
shuntDefault.airTypeCodeShuntOptions = this.airTypeCodeOptions;
shuntDefault.isCanDelete = true;
exceptionOrderTempList.push(shuntDefault);
this.tableRowIndex++;
}
this.orderExceptionTempGridList = exceptionOrderTempList.sort((a, b) => {
if (a.groupId < b.groupId) {
return -1;
} else if (a.groupId == b.groupId) {
return a.subid < b.subid ? -1 : 1;
} else {
return 1;
}
});
this.calcRowMerger(this.orderExceptionTempGridList);
},
handleDeleteRow(index, row) {
let rowGroupId = row.groupId;
let groupShuntList = this.orderExceptionTempGridList.filter(
function (element, ind, self) {
return element.groupId == rowGroupId;
}
);
if(groupShuntList && groupShuntList.length==1){
this.$set(
row,
"shuntDate",
""
);
this.$set(
row,
"departDeptCode",
""
);
this.$set(
row,
"departCityCode",
""
);
this.$set(
row,
"arriveCityCode",
""
);
this.$set(
row,
"sendBatch",
""
);
this.$set(
row,
"shuntNum",
""
);
this.$set(
row,
"airTypeCode",
""
);
this.$set(
row,
"scheduleFlightType",
""
);
row.airTypeCodeShuntOptions = this.airTypeCodeOptions;
row.dataFrom="tableadd";
this.$set(this.orderExceptionTempGridList, index, row);
}
if(groupShuntList && groupShuntList.length>1){
this.orderExceptionTempGridList = this.orderExceptionTempGridList.filter(
function (element, ind, self) {
return ind != index;
}
);
}
this.calcRowMerger(this.orderExceptionTempGridList);
},
/**
* @description: 修改异常--按钮
* @param {*}
* @return {*}
*/
modifyExceptionBtn() {
if (this.selectionsList.length !== 1) {
this.$message({
message: `请选择一条数据修改`,
type: "warning",
});
return false;
}
if (this.selectionsList[0].exceptionTypeCode != "2") {
this.$message({
message: `异常类型非“中转航空溢出”,不允许修改`,
type: "warning",
});
return false;
}
if (
this.selectionsList[0].processStatus != 0 &&
this.selectionsList[0].processStatus != 1 &&
this.selectionsList[0].processStatus != 2
) {
this.$message({
message: `异常已升级调度,不可修改`,
type: "warning",
});
return false;
}
this.DialogVisible = true;
this.ProcessType = "update";
this.DialogTitle = "修改";
let obj = this.$deepCopy(this.selectionsList[0]);
this.ProcessForm = obj;
},
cancelExceptionBtn() {
if (this.selectionsList.length < 1) {
this.$message({
message: `请至少选择一条数据进行取消`,
type: "warning",
});
return false;
}
let isCanModify = true;
try {
this.selectionsList.forEach((row) => {
if (row.exceptionTypeCode != "2") {
this.$message({
message: `异常类型非“中转航空溢出”,不允许取消`,
type: "warning",
});
isCanModify = false;
throw new Error("异常类型非“中转航空溢出”,不允许取消");
}
if (
row.processStatus != "0" &&
row.processStatus != "1" &&
row.processStatus != "2"
) {
this.$message({
message: `异常已升级调度,不可取消`,
type: "warning",
});
isCanModify = false;
throw new Error("异常已升级调度,不可取消");
}
});
} catch (e) {
if (
e.message != "异常类型非“中转航空溢出”,不允许取消" &&
e.message != "异常已升级调度,不可取消"
) {
}
}
if (isCanModify) {
//提示是否确认
this.$confirm(`请确认是否取消异常`, "温馨提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
this.cancelData();
this.getTableData();
});
}
},
reportExceptionOrderBtn() {
if (this.selectionsList.length < 1) {
this.$message({
message: `请至少选择一条数据进行调度升级`,
type: "warning",
});
return false;
}
let res = this.selectionsList.filter((item) => {
return (
item.processStatus == 4 ||
item.processStatus == 5 ||
item.processStatus == 6 ||
item.processStatus == 7 ||
item.processStatus == 8 ||
item.processStatus == 9
);
});
if (res && res.length > 0) {
this.$message({
message: `该异常已升级调度,请勿重复操作`,
type: "warning",
});
return;
}
let zeroRes = this.selectionsList.filter((item) => {
let allValue =
parseFloat(item.phWeight) +
parseFloat(item.taWeight) +
parseFloat(item.sxWeight) +
parseFloat(item.xhWeight);
return allValue == 0 && item.exceptionTypeCode == 1;
});
if (zeroRes && zeroRes.length > 0) {
this.$message({
message: `缺口总量为0 ,不允许升级调度`,
type: "warning",
});
return;
}
//提示是否确认
this.$confirm(
`异常升级调度后不可修改,请确认是否继续升级!`,
"温馨提示",
{
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}
)
.then(() => {
var param = {
totalCount: 1,
operType: 6,
totalList: this.selectionsList,
};
var urlH = "/air/dispatch/webapi/updateException";
let loadingInstance = Loading.service({
fullscreen: true,
});
this.$httpExt()
.post(urlH, param)
.then(
(response) => {
loadingInstance.close();
if ("0000" != response.result.errorCode) {
this.$message({
message: response.result.errorMessage
? response.result.errorMessage
: "异常任务升级调度未知系统返回值",
type: "warning",
});
} else {
this.$message({
message: response.result.errorMessage
? response.result.errorMessage
: "异常任务升级调度未知系统返回值",
type: "success",
});
this.getTableData();
}
},
(response) => {
loadingInstance.close();
}
);
})
.catch(() => {});
//this.changeOrderFormDialogVisible=true;
},
cancelData() {
this.modifyDataBatch(3, "异常取消操作");
},
modifyException() {
if (this.checkException() == false) {
return;
}
this.modifyData(2, "异常信息修改");
this.closeProcessForm();
},
modifyData(type, title, isreport) {
if (this.checkException() == false) {
return;
}
var param = {
totalCount: 1,
operType: type,
processObject: {
id: this.ProcessForm.id,
exceptionTypeCode: this.ProcessForm.exceptionTypeCode,
exceptionDate: this.ProcessForm.exceptionDate,
departDeptCode: this.ProcessForm.departDeptCode,
departCityCode: this.ProcessForm.departCityCode,
arriveCityCode: this.ProcessForm.arriveCityCode,
sendBatch: this.ProcessForm.sendBatch,
exceptionNums: this.ProcessForm.exceptionNums,
phWeight: this.ProcessForm.phWeight,
sxWeight: this.ProcessForm.sxWeight,
xhWeight: this.ProcessForm.xhWeight,
taWeight: this.ProcessForm.taWeight,
carsNo: this.ProcessForm.carsNo,
exceptionDesc: this.ProcessForm.exceptionDesc,
},
};
var urlH = "/air/dispatch/webapi/updateException";
let loadingInstance = Loading.service({
fullscreen: true,
});
this.$httpExt()
.post(urlH, param)
.then(
(response) => {
loadingInstance.close();
if ("0000" != response.result.errorCode) {
this.$message({
message: response.result.errorMessage
? response.result.errorMessage
: title + "未知系统返回值",
type: "warning",
});
} else {
this.$message({
message: response.result.errorMessage
? response.result.errorMessage
: title + "未知系统返回值",
type: "warning",
});
}
this.getTableData();
},
(response) => {
loadingInstance.close();
}
);
},
modifyDataBatch(type, title) {
var param = {
totalCount: 1,
operType: type,
totalList: this.selectionsList,
};
var urlH = "/air/dispatch/webapi/updateException";
let loadingInstance = Loading.service({
fullscreen: true,
});
this.$httpExt()
.post(urlH, param)
.then(
(response) => {
loadingInstance.close();
if ("0000" != response.result.errorCode) {
this.$message({
message: response.result.errorMessage
? response.result.errorMessage
: title + "未知系统返回值",
type: "warning",
});
} else {
this.$message({
message: response.result.errorMessage
? response.result.errorMessage
: title + "未知系统返回值",
type: "success",
});
}
this.DialogVisible = false;
this.getTableData();
},
(response) => {
loadingInstance.close();
this.DialogVisible = false;
}
);
},
saveData(type, title, isreport) {
var param = {
totalCount: 1,
operType: type,
processObject: {
exceptionTypeCode: this.ProcessForm.exceptionTypeCode,
exceptionDate: this.ProcessForm.exceptionDate,
departAreaCode: "",
departDeptCode: this.ProcessForm.departDeptCode,
departCityCode: this.ProcessForm.departCityCode,
arriveCityCode: this.ProcessForm.arriveCityCode,
sendBatch: this.ProcessForm.sendBatch,
exceptionNums: this.ProcessForm.exceptionNums,
phWeight: this.ProcessForm.phWeight,
sxWeight: this.ProcessForm.sxWeight,
xhWeight: this.ProcessForm.xhWeight,
taWeight: this.ProcessForm.taWeight,
carsNo: this.ProcessForm.carsNo,
exceptionDesc: this.ProcessForm.exceptionDesc,
channel: "web",
saveType: 0,
},
};
var urlH = "/air/dispatch/webapi/addNewExceptions";
let loadingInstance = Loading.service({
fullscreen: true,
});
this.$httpExt()
.post(urlH, param)
.then(
(response) => {
if ("0000" != response.result.errorCode) {
this.$message({
message: response.result.errorMessage
? response.result.errorMessage
: "异常任务创建未知系统返回值",
type: "warning",
});
} else {
this.ProcessForm.id = response.result.resultObject.id;
if (!isreport) {
this.$message({
message: response.result.errorMessage
? response.result.errorMessage
: "异常任务创建未知系统返回值",
type: "success",
});
}
}
if (isreport) {
this.modifyData(6, "异常任务升级调度");
}
this.closeProcessForm();
loadingInstance.close();
this.getTableData();
},
(response) => {
loadingInstance.close();
}
);
},
//初始化城市信息
initCityCodeData() {
let url = `/air/shiva-trtms-air/district/findDistI18nList.pub`;
this.$http()
.get(url)
.then((res) => {
this.cityCodeOptions = res.map((item) => {
return {
label: item.distName,
value: item.distCode,
};
});
});
},
//初始化班次信息
getExceptionAirnoOptions(type) {
let operateZoneCode;
if (type == 0) {
// 查询面板
operateZoneCode = this.searchListForm.departDeptCode;
}
if (type == 1) {
// 新增
operateZoneCode = this.ProcessForm.departDeptCode;
}
if (type == 2) {
//决策参考
operateZoneCode = this.searchListDecisionForm.departCityCode;
}
if (!operateZoneCode) {
return false;
}
let url =
`/air/requirement/menu/getDeptCodeBathList4Lv3Lv4?deptCode=` +
operateZoneCode;
if (type == 2) {
//决策参考
url =
`/air/requirement/menu/getDeptCodeBathListByCityCode?cityCode=` +
operateZoneCode;
}
this.$http()
.get(url)
.then((res) => {
this.sendBatchList = res.result.map((item) => {
return {
label: item.batchCode,
value: item.batchCode,
};
});
});
},
initOrgDataList() {
let url = `/air/dispatch/webapi/getOrgDataList`;
this.$http()
.get(url)
.then((res) => {
if (res.result) {
this.orgDataList = res.result.map((item) => {
return {
label: item.orgName,
value: item.orgId,
};
});
}
});
},
defaultRowStyle({ row, rowIndwx }) {
let styleJson = { height: "50px" };
return styleJson; // 返回对象
},
defaultRowShuntStyle({ row, rowIndwx }) {
let styleJson = { height: "50px" };
return styleJson; // 返回对象
},
changeSelectedList(selection) {
this.selectionsList = selection;
},
setRowExpand(row) {
if (row.row.exceptionTypeCode != 3) {
// 即该行没有子元素时,添加row-expand-cover类
// 通过自己的逻辑返回一个class或者空
return "expand";
}
return "";
},
changeDecisionSelectedList(selection) {
this.secisionselectionsList = selection;
},
clickChange(item) {
if (item) {
this.exceptionOrderRadio = item;
if (
item.exceptionDate &&
new Date(item.exceptionDate).getTime() >
new Date().getTime() - 2 * 24 * 3600 * 1000 &&
new Date(item.exceptionDate).getTime() <
new Date().getTime() + 1 * 24 * 3600 * 1000
) {
this.searchListDecisionForm.exceptionDate = item.exceptionDate;
}
// this.onDecisionFormSearch();
}
},
getProcessStatusReason(value) {
if (
value.processStatus == "0" ||
value.processStatus == "1" ||
value.processStatus == "2" ||
value.processStatus == "3"
) {
return "待处理";
}
if (value.processStatus == "4") {
return "转调令";
}
if (value.processStatus == "5") {
return "已发布调令";
}
if (value.processStatus == "7") {
return "同意改配";
}
if (value.processStatus == "8") {
return "驳回";
}
if (value.processStatus == "6") {
return "待处理";
}
},
departCityNameShow(value) {
if (value.departCityCode) {
let cityName = "";
try {
this.cityCodeOptions.forEach((item) => {
if (item.value == value.departCityCode) {
cityName = item.label;
throw new Error("");
}
});
} catch (e) {}
return cityName;
}
},
exceptionDepartCityCodeFormatter(value) {
if (value.exceptionDepartCityCode) {
let cityName = "";
try {
this.cityCodeOptions.forEach((item) => {
if (item.value == value.exceptionDepartCityCode) {
cityName = item.label;
throw new Error("");
}
});
} catch (e) {}
return cityName;
}
},
exceptionArriveCityCodeFormatter(value) {
if (value.exceptionArriveCityCode) {
let cityName = "";
try {
this.cityCodeOptions.forEach((item) => {
if (item.value == value.exceptionArriveCityCode) {
cityName = item.label;
throw new Error("");
}
});
} catch (e) {}
return cityName;
}
},
arriveCityNameShow(value) {
if (value.arriveCityCode) {
let cityName = "";
try {
this.cityCodeOptions.forEach((item) => {
if (item.value == value.arriveCityCode) {
cityName = item.label;
throw new Error("");
}
});
} catch (e) {}
return cityName;
}
},
tranferDepartCityNameShow(value) {
if (value.tranferDepartCityCode) {
let cityName = "";
try {
this.cityCodeOptions.forEach((item) => {
if (item.value == value.tranferDepartCityCode) {
cityName = item.label;
throw new Error("");
}
});
} catch (e) {}
return cityName;
}
},
tranferArriveCityNameShow(value) {
if (value.tranferArriveCityCode) {
let cityName = "";
try {
this.cityCodeOptions.forEach((item) => {
if (item.value == value.tranferArriveCityCode) {
cityName = item.label;
throw new Error("");
}
});
} catch (e) {}
return cityName;
}
},
tranferScheduleFlightTypeNameShow(value) {
if (value.tranferScheduleFlightType == "1") {
return "早航班";
} else if (value.tranferScheduleFlightType == "2") {
return "午航班";
} else if (value.tranferScheduleFlightType == "3") {
return "晚航班";
}
},
tranferDepartTmFormat(value) {
return this.$format(
new Date(value.tranferDepartTm).getTime(),
"yyyy-MM-dd hh:mm:ss"
);
},
tranferArriveTmFormat(value) {
return this.$format(
new Date(value.tranferArriveTm).getTime(),
"yyyy-MM-dd hh:mm:ss"
);
},
scheduleFlightTypeNameShow(value) {
if (value.scheduleFlightType == "1") {
return "早航班";
} else if (value.scheduleFlightType == "2") {
return "午航班";
} else if (value.scheduleFlightType == "3") {
return "晚航班";
}
},
cargoTypeTypeNameShow(value) {
if (value.cargoType == "1") {
return "普货";
} else if (value.cargoType == "2") {
return "鲜活";
} else if (value.cargoType == "3") {
return "生鲜";
} else if (value.cargoType == "4") {
return "TA";
}
},
scheduleFlightTypeMainNameShow(value) {
if (value.deliverExceptionsList[0]) {
if (value.deliverExceptionsList[0].scheduleFlightType == "1") {
return "早航班";
} else if (value.deliverExceptionsList[0].scheduleFlightType == "2") {
return "午航班";
} else if (value.deliverExceptionsList[0].scheduleFlightType == "3") {
return "晚航班";
}
}
},
capacityNameMainShow(value) {
if (value.deliverExceptionsList[0]) {
return value.deliverExceptionsList[0].capacityName;
}
return "";
},
isUpOrder(value) {
if (
value.processStatus == "0" ||
value.processStatus == "1" ||
value.processStatus == "2" ||
value.processStatus == "3"
) {
return "否";
}
return "是";
},
reportEmpNoFormat(value) {
if (value.exceptionTypeCode == "3") {
return "SYS_SEND";
} else {
return value.reportEmpno;
}
},
reportDateFormat(value) {
if (value.reportDate) {
return this.$format(
new Date(value.reportDate).getTime(),
"yyyy-MM-dd hh:mm:ss"
);
}
},
orderProcessDate(value) {
if (
(value.processStatus == 4 ||
value.processStatus == 5 ||
value.processStatus == 7 ||
value.processStatus == 8) &&
value.modifiedTm
) {
return this.$format(
new Date(value.modifiedTm).getTime(),
"yyyy-MM-dd hh:mm:ss"
);
}
return "";
},
orderProcessEmp(value) {
if (
(value.processStatus == 4 ||
value.processStatus == 5 ||
value.processStatus == 7 ||
value.processStatus == 8) &&
value.modifiedEmpCode
) {
return value.modifiedEmpCode;
}
return "";
},
tranferScheduleFlightTypeFormat(value) {
return (
value.sendDate +
" " +
this.scheduleFlightTypeNameShow(value) +
" 改配 " +
this.$format(new Date(value.tranferDate).getTime(), "yyyy-MM-dd") +
" " +
this.tranferScheduleFlightTypeNameShow(value)
);
},
tranferDateFormat(value) {
if (value) {
return this.$format(
new Date(value.tranferDate).getTime(),
"yyyy-MM-dd"
);
}
return value;
},
exceptionTypeFormat(value) {
if (value.exceptionTypeCode == "1") {
return "舱位缺口预警";
}
if (value.exceptionTypeCode == "2") {
return "中转航空溢出";
}
if (value.exceptionTypeCode == "3") {
return "发货异常";
}
},
changeEmailSelectedList(selection) {
this.emailSectionList = selection;
},
calcRowMerger(data) {
this.orderSpanArr = [];
for (let i = 0; i < data.length; i++) {
if (i === 0) {
this.orderSpanArr.push(1);
this.pos = 0;
} else {
// 判断当前元素与上一个元素是否相同
if (
data[i].groupId + ";" + data[i].goodsStowageType ==
data[i - 1].groupId + ";" + data[i - 1].goodsStowageType
) {
this.orderSpanArr[this.pos] += 1;
this.orderSpanArr.push(0);
} else {
this.orderSpanArr.push(1);
this.pos = i;
}
}
}
},
mergerOrderTable({ row, column, rowIndex, columnIndex }) {
if (columnIndex <= 7) {
const _row = this.orderSpanArr[rowIndex];
const _col = _row > 0 ? 1 : 0;
return {
//
rowspan: _row,
colspan: _col,
};
}
},
getOrderCode(deptartDeptCode) {
var urlH = "/air/dispatch/webapi/getOrderCode";
let loadingInstance = Loading.service({
fullscreen: true,
});
this.$httpExt()
.get(urlH, { departDeptCode: this.selectionsList[0].departAreaCode })
.then(
(response) => {
loadingInstance.close();
if ("0000" != response.result.errorCode) {
this.$message({
message: response.result.errorMessage
? response.result.errorMessage
: "调度编号获取失败,请重试",
type: "warning",
});
} else {
this.OrderForm.orderCode = response.result.resultObject;
}
},
(response) => {
loadingInstance.close();
}
);
},
initDefaultValue() {
//this.searchListForm.departDeptCode ="021B";
this.searchListForm.exceptionDateStart = new Date(
new Date().setDate(new Date().getDate() - 2)
);
this.searchListForm.exceptionDateEnd = new Date();
},
},
created() {
this.initCityCodeData();
//this.getExceptionAirnoOptions();
this.initOrgDataList();
this.initDefaultValue();
},
mounted() {
userHttp.queryAllBtns(this.$route.meta.moduleId).then((response) => {
let data = response.result ? response.result : [];
let obj = {};
for (let i = 0; i < data.length; i++) {
obj[data[i]] = true;
}
this.btnObj = obj;
});
},
};
</script>
<style lang="less" scoped>
.searchform1 {
.el-button.el-button--primary {
margin-bottom: 12px;
}
/deep/.el-form-item {
margin-bottom: 0px;
}
/deep/.el-form-item__content {
width: 180px;
.el-input-group {
margin-top: 5px;
}
.el-date-editor.el-input,
.el-date-editor.el-input__inner,
.el-input {
width: 100%;
input,
.el-input__inner {
height: 30px;
line-height: 30px;
}
}
}
.daterangeTime {
/deep/.el-form-item__content {
width: 280px;
.el-input-group {
margin-top: 5px;
}
.el-date-editor.el-input,
.el-date-editor.el-input__inner,
.el-input {
width: 100%;
input,
.el-input__inner {
height: 30px;
line-height: 30px;
}
}
}
}
}
.el-form-item {
padding-bottom: 5px;
& /deep/ .el-form-item__label {
// font-size: 12px;
padding-bottom: 5px;
line-height: unset;
}
&.label_required /deep/ .el-form-item__label::before {
content: "*";
color: #f56c6c;
margin-right: 4px;
}
}
.pagination /deep/.el-pagination__rightwrapper {
display: inline-block;
float: none;
}
.oneLine {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.orderTitle {
width: 50%;
text-align: center;
vertical-align: middle;
border: none;
input {
min-width: 130px;
text-align: center;
vertical-align: middle;
font-size: 14px;
color: #606266;
line-height: 40px;
padding: 0 12px 0 0;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
}
/deep/ .expand .el-table__expand-column .cell {
display: none;
}
.inputinrow {
display: flex;
width: 92%;
margin-top: 8px;
margin-bottom: 8px;
label {
min-width: 120px;
text-align: right;
vertical-align: middle;
float: left;
font-size: 14px;
color: #606266;
line-height: 30px;
padding: 0 12px 0 0;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
}
.sfair-dialog {
/deep/ .el-form--inline .el-form-item__content {
vertical-align: middle;
}
/deep/ .searchform1.el-form--inline .el-form-item {
margin-bottom: 0 !important;
}
/deep/ .exceptForm.el-form--inline .el-form-item__content {
width: 150px;
}
/deep/ .el-form-item .el-form-item__label {
padding-bottom: 0;
}
}
.el-divider__text {
font-size: 16px;
}
.el-dialog__wrapper.sfair-dialog {
height: calc(100% - 60px) !important;
/deep/ .orderDialog.el-dialog {
margin: auto !important;
height: calc(100%);
.el-dialog__body {
height: calc(100% - 30px) !important;
overflow: auto;
}
}
}
</style>