<template>
    <el-container>
        <el-main>
            <!--面包屑导航区域-->
            <!--            <el-breadcrumb separator-class="el-icon-arrow-right">-->
            <!--                <el-breadcrumb-item :to="{ path: '/home' }">首页</el-breadcrumb-item>-->
            <!--                <el-breadcrumb-item>车辆调度</el-breadcrumb-item>-->
            <!--                <el-breadcrumb-item>调度记录</el-breadcrumb-item>-->
            <!--            </el-breadcrumb>-->

            <el-card style="background-color: #F5F7FA">
                <!-- 搜素区域 -->
                <div>
                    <el-row :gutter="24">
                        <el-col :span="5">
                            <el-input v-model="queryInfo.userName" prefix-icon="el-icon-search"
                                      placeholder="请输入用户名称" clearable size="small" style="width:180px"></el-input>
                        </el-col>
                        <el-col :span="5">
                            <el-input v-model="queryInfo.userMobile" prefix-icon="el-icon-search"
                                      placeholder="请输入联系方式" clearable size="small" style="width:180px"></el-input>
                        </el-col>
                        <el-col :span="5">
                            <el-date-picker v-model="queryInfo.gmtCreate" type="date" value-format="yyyy-MM-dd"
                                            placeholder="调度创建时间" size="small" style="width:180px"></el-date-picker>
                        </el-col>
                        <el-col :span="5">
                            <el-date-picker v-model="queryInfo.endTime" type="date" value-format="yyyy-MM-dd"
                                            placeholder="调度完成时间" size="small" style="width:180px"></el-date-picker>
                        </el-col>
                    </el-row>
                    <el-row style="margin-top: 8px;">
                        <el-col :span="5">
                            <el-select v-model="queryInfo.dispatchType" placeholder="请选择业务类型" size="small" clearable
                                       style="width:180px">
                                <el-option
                                        v-for="item in dispatchTypeList"
                                        :key="item.value"
                                        :label="item.label"
                                        :value="item.value">
                                </el-option>
                            </el-select>
                        </el-col>
                        <el-col :span="5">
                            <el-select v-model="queryInfo.status" placeholder="记录状态" size="small" clearable
                                       style="width:180px;margin-left: 6px">
                                <el-option
                                        v-for="item in statusList"
                                        :key="item.value"
                                        :label="item.label"
                                        :value="item.value">
                                </el-option>
                            </el-select>
                        </el-col>
                        <el-button type="primary" @click="getDispatchNodeList" size="small" style="margin-left:10px;">
                            查询调度记录
                        </el-button>
                        <el-button type="success" @click="addDispatchNodeFormVisible = true" size="small">添加车辆调度记录
                        </el-button>
                    </el-row>
                </div>
                <!--调度记录列表区域-->
                <div style="margin-top: 20px;">
                    <el-table :data="DispatchNoteList" border v-loading="listLoading"
                              :row-class-name="rowStatus"
                              @selection-change="selsChange"
                              element-loading-text="拼命加载中">
                        <el-table-column type="selection" width="55" :selectable="isSelectable" align="center"></el-table-column>
                        <el-table-column type="index" align="center"></el-table-column>
                        <el-table-column label="用户名称" prop="userName" align="center" width="100"></el-table-column>
                        <el-table-column label="联系方式" prop="userMobile" align="center" width="120"></el-table-column>
                        <el-table-column label="状态" prop="status" align="center" width="120">
                            <template slot-scope="scope">
                                <span v-if="scope.row.status ==='1'">完成状态</span>
                                <span v-if="scope.row.status ==='2'">执行状态</span>
                                <span v-if="scope.row.status ==='3'">取消状态</span>
                                <span v-if="scope.row.status ==='4'">待执行状态</span>
                            </template>
                        </el-table-column>
                        <el-table-column label="业务类型" align="center" prop="dispatchType" width="120">
                            <template slot-scope="scope">
                                <span v-if="scope.row.dispatchType ==='1'">进站送货</span>
                                <span v-if="scope.row.dispatchType ==='2'">出站提货</span>
                                <span v-if="scope.row.dispatchType ==='3'">货物调拨</span>
                                <span v-if="scope.row.dispatchType ==='4'">货物流转</span>
                            </template>
                        </el-table-column>
                        <el-table-column label="场站位置" align="center" prop="station" width="120">
                            <template slot-scope="scope">
                                <span v-if="scope.row.station ==='1'">西货站</span>
                                <span v-if="scope.row.station ==='2'">综保区</span>
                                <span v-if="scope.row.station ==='3'">军投</span>
                                <span v-if="scope.row.station ==='4'">快邮</span>
                            </template>
                        </el-table-column>
                        <el-table-column label="车辆类型" align="center" prop="vehicleType" width="120">
                            <template slot-scope="scope">
                                <span v-if="scope.row.vehicleType ==='1'">重型货车</span>
                                <span v-if="scope.row.vehicleType ==='2'">中型货车</span>
                                <span v-if="scope.row.vehicleType ==='3'">轻型货车</span>
                                <span v-if="scope.row.vehicleType ==='4'">微型货车</span>
                                <span v-if="scope.row.vehicleType ==='5'">拖车</span>
                                <span v-if="scope.row.vehicleType ==='6'">叉车</span>
                            </template>
                        </el-table-column>
                        <el-table-column label="车牌号" prop="licensePlateNumber" align="center"
                                         width="120"></el-table-column>
                        <el-table-column label="创建时间" prop="gmtCreate" align="center" width="160"></el-table-column>
                        <el-table-column label="开始时间" prop="beginTime" align="center" width="160"></el-table-column>
                        <el-table-column label="完成时间" prop="endTime" align="center" width="160"></el-table-column>
                        <el-table-column label="操作" width="230px" align="center" fixed="right">
                            <template slot-scope="scope">
                                <!--编辑按钮-->
                                <el-tooltip effect="dark" content="编辑" placement="top-start" :enterable="false"
                                            style="margin-left: 1px;">
                                    <el-button type="success" icon="el-icon-check" size="mini" style="width:97px"
                                               @click="showDialogVisible(scope.$index,scope.row)">编辑
                                    </el-button>
                                </el-tooltip>
                                <!--取消调度按钮-->
                                <el-tooltip effect="dark" content="删除" placement="top-start" :enterable="false"
                                            style="margin-left: 1px;">
                                    <el-button type="danger" icon="el-icon-delete" size="mini" style="width:97px"
                                               :loading="delLoading"
                                               :disabled="scope.row.status==='2'"
                                               @click.native.prevent="removeDispatchNode(scope.$index,scope.row)">删除
                                    </el-button>
                                </el-tooltip>
                                <!--开始任务-->
                                <el-tooltip effect="dark" content="开始任务" placement="top-start" :enterable="false"
                                            style="margin-left: 1px;">
                                    <el-button type="warning" icon="el-icon-star-off" size="mini"
                                               style="margin-top: 3px;"
                                               :disabled="scope.row.status!=='4' || scope.row.beginTime !==null"
                                               :loading="beginLoading"
                                               @click="startDispatch(scope.$index,scope.row)">开始任务
                                    </el-button>
                                </el-tooltip>
                                <!-- 结束任务-->
                                <el-tooltip effect="dark" content="结束任务" placement="top-start" :enterable="false"
                                            style="margin-left: 1px;">
                                    <el-button type="info" icon="el-icon-message" size="mini"
                                               :disabled="scope.row.endTime !==null && scope.row.endTime !==''"
                                               :loading="endLoading"
                                               @click="completeDispatch(scope.$index,scope.row)">结束任务
                                    </el-button>
                                </el-tooltip>

                            </template>
                        </el-table-column>
                    </el-table>
                    <!-- 分页区域 -->
                    <div style="margin-top: 10px">
                        <el-row :gutter="24">
                            <el-col :span="5">
                                <el-button type="danger" icon="el-icon-delete" @click="batchRemove"
                                           :disabled="this.sels.length===0">批量删除
                                </el-button>
                            </el-col>
                            <el-col :span="10" style="margin-top: 5px">
                                <el-pagination
                                        @size-change="handleSizeChange"
                                        @current-change="handleCurrentChange"
                                        :current-page="queryInfo.pageNum"
                                        :page-sizes="[10,15,20,50]"
                                        :page-size="queryInfo.pageSize"
                                        layout="total, sizes, prev, pager, next, jumper"
                                        :total="total">
                                </el-pagination>
                            </el-col>
                        </el-row>
                    </div>
                </div>
            </el-card>
            <!-- 添加车辆调度记录 -->
            <div>
                <el-dialog title="添加车辆调度记录"
                           :visible.sync="addDispatchNodeFormVisible"
                           style="margin-top: -50px"
                           width="60%" text-align="center" @close="dispatchDialogClosed">
                    <el-form :inline="true" :model="addDispatchNodeForm" label-width="120px" status-icon
                             :rules="addDispatchNodeFormRules" ref="addDispatchNodeFormRef"
                             style="background-color: #F5F7FA" align="center">
                        <br>
                        <el-form-item label="用户名称:" prop="userName">
                            <el-input v-model="addDispatchNodeForm.userName" style="width:200px" size="small" clearable
                                      placeholder="请输入您的用户名称"></el-input>
                        </el-form-item>
                        <el-form-item label="联系方式:" prop="userMobile">
                            <el-input v-model="addDispatchNodeForm.userMobile" style="width:200px" clearable
                                      size="small"
                                      placeholder="请输入您的联系方式"></el-input>
                        </el-form-item>
                        <el-form-item label="车辆类型:" prop="vehicleType">
                            <el-select v-model="addDispatchNodeForm.vehicleType" clearable style="width:200px"
                                       size="small"
                                       placeholder="请选择车辆类型">
                                <el-option
                                        v-for="item in vehicleTypeList"
                                        :key="item.value"
                                        :label="item.label"
                                        :value="item.value">
                                </el-option>
                            </el-select>
                        </el-form-item>
                        <el-form-item label="车牌号码:" prop="licensePlateNumber">
                            <el-input v-model="addDispatchNodeForm.licensePlateNumber" clearable
                                      style="width:200px;margin-left:0px"
                                      size="small"
                                      placeholder="请输入车牌号"></el-input>
                        </el-form-item>
                        <el-form-item label="场站位置:" prop="station">
                            <el-select v-model="addDispatchNodeForm.station" clearable style="width:200px" size="small"
                                       placeholder="">
                                <el-option
                                        v-for="item in stationList"
                                        :key="item.value"
                                        :label="item.label"
                                        :value="item.value">
                                </el-option>
                            </el-select>
                        </el-form-item>
                        <el-form-item label="业务类型:" prop="dispatchType">
                            <el-select v-model="addDispatchNodeForm.dispatchType" clearable style="width:200px"
                                       size="small"
                                       placeholder="">
                                <el-option
                                        v-for="item in dispatchTypeList"
                                        :key="item.value"
                                        :label="item.label"
                                        :value="item.value">
                                </el-option>
                            </el-select>
                        </el-form-item>
                        <el-form-item label="创建时间:" prop="gmtCreate">
                            <el-date-picker v-model="addDispatchNodeForm.gmtCreate" clearable type="datetime"
                                            value-format="yyyy-MM-dd HH:mm:ss"
                                            placeholder="选择日期" size="small" style="width:200px"></el-date-picker>
                        </el-form-item>
                        <el-form-item label="开始时间:" prop="beginTime">
                            <el-date-picker v-model="addDispatchNodeForm.beginTime" clearable type="datetime"
                                            value-format="yyyy-MM-dd HH:mm:ss"
                                            placeholder="选择日期" size="small" style="width:200px"></el-date-picker>
                        </el-form-item>
                        <el-form-item label="结束时间:" prop="endTime">
                            <el-date-picker v-model="addDispatchNodeForm.endTime" type="datetime"
                                            value-format="yyyy-MM-dd HH:mm:ss"
                                            placeholder="选择日期" size="small" style="width:200px"></el-date-picker>
                        </el-form-item>
                        <el-form-item label="记录状态:" prop="status">
                            <el-select v-model="addDispatchNodeForm.status" clearable placeholder="记录状态"
                                       style="width:200px"
                                       size="small">
                                <el-option
                                        v-for="item in statusList"
                                        :key="item.value"
                                        :label="item.label"
                                        :value="item.value">
                                </el-option>
                            </el-select>
                        </el-form-item>
                        <el-form-item label="驾驶人姓名:" prop="driverName">
                            <el-input v-model="addDispatchNodeForm.driverName" clearable style="width:200px"
                                      size="small"
                                      placeholder=""></el-input>
                        </el-form-item>
                        <el-form-item label="驾驶人电话:" prop="driverMobile">
                            <el-input v-model="addDispatchNodeForm.driverMobile" clearable style="width:200px"
                                      size="small"
                                      placeholder=""></el-input>
                        </el-form-item>
                    </el-form>
                    <div slot="footer" class="dialog-footer" style="text-align: center">
                        <el-button @click="addDispatchNodeFormVisible = false" size="medium" style="width: 100px">取消
                        </el-button>
                        <el-button type="primary" @click="addDispatchNote" :loading="addLoading" size="medium"
                                   style="width: 100px">
                            添加
                        </el-button>
                    </div>
                </el-dialog>
            </div>
            <!-- 编辑调度记录,对话框 -->
            <div>
                <el-dialog
                        style="margin-top: -50px"
                        title="编辑调度记录明细"
                        :visible.sync="viewDialogVisible"
                        text-align="center"
                        width="60%"
                        @close="editDialogClosed">

                    <el-form :model="editForm" label-width="120px" status-icon
                             :inline="true"
                             style="background-color: #F5F7FA;"
                             :rules="editFormRules" ref="editFormRef">
                        <div style="margin-left: 40px">
                            <br>
                            <el-form-item label="用户名称:" prop="userName">
                                <el-input v-model="editForm.userName" style="width:200px" clearable size="small"
                                          placeholder="请输入用户名称"></el-input>
                            </el-form-item>
                            <el-form-item label="联系方式:" prop="userMobile">
                                <el-input v-model="editForm.userMobile" style="width:200px" clearable size="small"
                                          placeholder="请输入您的联系方式"></el-input>
                            </el-form-item>
                            <el-form-item label="车辆类型:" prop="vehicleType">
                                <el-select v-model="editForm.vehicleType" style="width:200px" clearable size="small"
                                           placeholder="请选择车辆类型">
                                    <el-option
                                            v-for="item in vehicleTypeList"
                                            :key="item.value"
                                            :label="item.label"
                                            :value="item.value">
                                    </el-option>
                                </el-select>
                            </el-form-item>
                            <el-form-item label="车牌号码:" prop="licensePlateNumber">
                                <el-input v-model="editForm.licensePlateNumber"
                                          style="width:200px;margin-left:0px" clearable
                                          size="small"
                                          placeholder="请输入车牌号"></el-input>
                            </el-form-item>
                            <el-form-item label="场站位置:" prop="station">
                                <el-select v-model="editForm.station" clearable style="width:200px" size="small"
                                           placeholder="">
                                    <el-option
                                            v-for="item in stationList"
                                            :key="item.value"
                                            :label="item.label"
                                            :value="item.value">
                                    </el-option>
                                </el-select>
                            </el-form-item>
                            <el-form-item label="业务类型:" prop="dispatchType">
                                <el-select v-model="editForm.dispatchType" clearable style="width:200px" size="small"
                                           placeholder="">
                                    <el-option
                                            v-for="item in dispatchTypeList"
                                            :key="item.value"
                                            :label="item.label"
                                            :value="item.value">
                                    </el-option>
                                </el-select>
                            </el-form-item>
                            <el-form-item label="创建时间:" prop="gmtCreate">
                                <el-date-picker v-model="editForm.gmtCreate" type="datetime"
                                                value-format="yyyy-MM-dd HH:mm:ss"
                                                placeholder="选择日期" size="small" style="width:200px"></el-date-picker>
                            </el-form-item>
                            <el-form-item label="开始时间:" prop="beginTime">
                                <el-date-picker v-model="editForm.beginTime" type="datetime"
                                                value-format="yyyy-MM-dd HH:mm:ss"
                                                placeholder="选择日期" size="small" style="width:200px"></el-date-picker>
                            </el-form-item>
                            <el-form-item label="结束时间:" prop="endTime">
                                <el-date-picker v-model="editForm.endTime" type="datetime"
                                                value-format="yyyy-MM-dd HH:mm:ss"
                                                placeholder="选择日期" size="small" style="width:200px"></el-date-picker>
                            </el-form-item>
                            <el-form-item label="记录状态:" prop="status">
                                <el-select v-model="editForm.status" placeholder="记录状态" clearable style="width:200px"
                                           size="small">
                                    <el-option
                                            v-for="item in statusList"
                                            :key="item.value"
                                            :label="item.label"
                                            :value="item.value">
                                    </el-option>
                                </el-select>
                            </el-form-item>
                            <el-form-item label="驾驶人姓名:" prop="driverName">
                                <el-input v-model="editForm.driverName" style="width:200px" clearable size="small"
                                          placeholder=""></el-input>
                            </el-form-item>
                            <el-form-item label="驾驶人电话:" prop="driverMobile">
                                <el-input v-model="editForm.driverMobile" style="width:200px" clearable size="small"
                                          placeholder=""></el-input>
                            </el-form-item>
                            <br>
                        </div>
                    </el-form>
                    <!--底部按钮区域-->
                    <span slot="footer" class="dialog-footer">
                        <el-button style="width: 100px" @click="viewDialogVisible = false">取消</el-button>
                        <el-button type="primary" size="medium" style="width: 100px"
                                   :loading="editLoading"
                                   @click="editDispatchNote">编辑</el-button>
                    </span>
                </el-dialog>
            </div>
        </el-main>
    </el-container>
</template>

<script>
    import {
        selectDispatchNoteList,
        insertDispatchNote,
        updateDispatchNote,
        deleteDispatchNote,
        batchRemoveDispatchNode,
        startTask,
        completeTask
    } from "../../api/dispatch_api";

    export default {
        name: "dispatch_api",
        created() {
            this.getDispatchNodeList();
        },
        data() {

            //验证手机号的自定义规则
            var userMobileValid = (rule, value, callback) => {
                //验证手机号的正则表达式
                const regMobile = /^(0|86|17951)?(13[0-9]|15[0123456789]|17[678]|18[0-9]|14[57])[0-9]{8}$/;
                if (regMobile.test(value)) {
                    //合法的手机号
                    return callback();
                }
                callback(new Error('请输入合法的手机号'));
            };
            return {
                //搜索区域
                queryInfo: {
                    //用户姓名
                    userName: '',
                    //用户联系方式
                    userMobile: '',
                    //调度时间
                    gmtCreate: undefined,
                    //完成时间
                    endTime: undefined,
                    //业务类型
                    dispatchType: '',
                    //状态
                    status: '',
                    //当前的页数
                    pageNum: 1,
                    //当前每页显示多少条数据
                    pageSize: 10
                },
                //所有的调度记录列表
                DispatchNoteList: [],
                //添加调度记录,表单
                addDispatchNodeForm: {
                    userName: '',
                    userMobile: '',
                    //车辆类型
                    vehicleType: '2',
                    //车牌号
                    licensePlateNumber: '',
                    //场站位置
                    station: '1',
                    //调度业务类型
                    dispatchType: '1',
                    //记录状态
                    status: '2',
                    //驾驶人姓名
                    driverName: '',
                    //驾驶人联系方式
                    driverMobile: '',
                    //开始时间
                    gmtCreate: '',
                    //结束时间
                    endTime: '',
                },
                //编辑记录的表单
                editForm: {},
                //添加调度记录,表单的验证规则对象
                addDispatchNodeFormRules: {
                    userName: [
                        {required: true, message: '请输入姓名', trigger: ['blur', 'change']},
                    ],
                    userMobile: [
                        {required: true, message: '请输入联系方式', trigger: ['blur', 'change']},
                        {validator: userMobileValid, trigger: 'blur'}
                    ],
                    vehicleType: [
                        {required: true, message: '请选择车辆类型', trigger: ['blur', 'change']},
                    ],
                    licensePlateNumber: [
                        {required: true, message: '请输入车牌号', trigger: ['blur', 'change']},
                    ],
                    vehicleNumber: [
                        {required: true, message: '请输入车辆数量', trigger: ['blur', 'change']},
                    ],
                    station: [
                        {required: true, message: '请选择场站位置', trigger: ['blur', 'change']},
                    ],
                    dispatchType: [
                        {required: true, message: '请选择业务类型', trigger: ['blur', 'change']},
                    ],
                    gmtCreate: [
                        {required: true, message: '请选择开始时间', trigger: ['blur', 'change']},
                    ],
                    // endTime: [
                    //     {required: true, message: '请选择结束时间', trigger: 'blur'},
                    // ],
                    status: [
                        {required: true, message: '请选择记录状态', trigger: ['blur', 'change']},
                    ],
                },
                //编辑调度记录,表单的验证规则对象
                editFormRules: {
                    userName: [
                        {required: true, message: '请输入姓名', trigger: ['blur', 'change']},
                    ],
                    userMobile: [
                        {required: true, message: '请输入联系方式', trigger: ['blur', 'change']},
                        {validator: userMobileValid, trigger: 'blur'}
                    ],
                    vehicleType: [
                        {required: true, message: '请选择车辆类型', trigger: ['blur', 'change']},
                    ],
                    licensePlateNumber: [
                        {required: true, message: '请输入车牌号', trigger: ['blur', 'change']},
                    ],
                    vehicleNumber: [
                        {required: true, message: '请输入驾驶人电话', trigger: ['blur', 'change']},
                    ],
                    station: [
                        {required: true, message: '请选择场站位置', trigger: ['blur', 'change']},
                    ],
                    dispatchType: [
                        {required: true, message: '请选择业务类型', trigger: ['blur', 'change']},
                    ],
                    // gmtCreate: [
                    //     {required: true, message: '请选择开始时间', trigger: ['blur', 'change']},
                    // ],
                    // endTime: [
                    //     {required: true, message: '请选择结束时间', trigger: ['blur', 'change']},
                    // ],
                    status: [
                        {required: true, message: '请选择记录状态', trigger: ['blur', 'change']},
                    ],
                },
                //控制添加用户对话框的显示与隐藏
                addDispatchNodeFormVisible: false,
                //控制编辑调度记录明细,对话框的显示与隐藏
                viewDialogVisible: false,
                //记录的总条数
                total: 0,
                /* 批量删除的选中列表 */
                sels: [],
                /* 列表加载 */
                listLoading: false,
                /* 添加加载 */
                addLoading: false,
                /* 编辑加载 */
                editLoading: false,
                /* 删除加载 */
                delLoading: false,
                /* 开始调度加载 */
                beginLoading: false,
                /* 结束调度加载 */
                endLoading: false,
                //业务类型  选项列表
                dispatchTypeList: [
                    {
                        value: '1',
                        label: '进站送货'
                    },
                    {
                        value: '2',
                        label: '出站提货'
                    },
                    {
                        value: '3',
                        label: '货物流转'
                    },
                    {
                        value: '4',
                        label: '货物调拨'
                    }
                ],
                //车辆类型,选项列表
                vehicleTypeList: [
                    {
                        value: '1',
                        label: '重型货车'
                    },
                    {
                        value: '2',
                        label: '中型货车'
                    },
                    {
                        value: '3',
                        label: '经济货车'
                    },
                    {
                        value: '4',
                        label: '微型货车'
                    },
                    {
                        value: '5',
                        label: '拖车'
                    },
                    {
                        value: '6',
                        label: '叉车'
                    }
                ],
                /**
                 * 场站位置,选项列表
                 */
                stationList: [
                    {
                        value: '1',
                        label: '西货站'
                    },
                    {
                        value: '2',
                        label: '综保区'
                    },
                    {
                        value: '3',
                        label: '军投'
                    },
                    {
                        value: '4',
                        label: '快邮'
                    }
                ],
                //记录状态  选项列表
                statusList: [
                    {
                        value: '1',
                        label: '完成状态'
                    },
                    {
                        value: '2',
                        label: '执行状态'
                    },
                    {
                        value: '3',
                        label: '取消状态'
                    },
                    {
                        value: '4',
                        label: "待执行状态"
                    }
                ],

            }
        },
        methods: {
            /**
             * 管理员端,获取车辆调度记录列表
             */
            getDispatchNodeList() {
                //开启加载
                this.listLoading = true;
                selectDispatchNoteList(this.queryInfo).then((response) => {
                    let res = response.data;
                    if (res.code !== '200') {
                        //关闭加载
                        this.listLoading = false;
                        return this.$message.error('获取车辆调度列表失败');
                    }
                    // 获取车辆调度列表数据
                    this.DispatchNoteList = res.data.list;
                    // 获取列表的总记录数
                    this.total = res.data.total;
                    //关闭加载
                    this.listLoading = false;
                    this.$message.success('获取车辆调度列表,成功');
                }).catch(error => {
                    this.listLoading = false;
                    this.$message.error(error.toString());
                });
            },
            /**
             * 管理员端,添加车辆调度记录
             */
            addDispatchNote() {
                /*进行表单的预验证*/
                this.$refs.addDispatchNodeFormRef.validate(valid => {
                    // 未通过,表单预校验
                    if (!valid) return;
                    // 通过,表单预检验,发起添加车辆调度记录的网络请求
                    this.addLoading = true;
                    insertDispatchNote(this.addDispatchNodeForm).then((response) => {
                        let res = response.data;
                        //添加调度记录信息,失败
                        if (res.code !== '200'){
                            //关闭加载
                            this.addLoading = false;
                            return this.$message.error('添加调度记录信息,失败');
                        }
                        //添加调度记录信息,成功
                        this.$message.success('添加调度记录信息,成功');
                        //关闭加载
                        this.addLoading = false;
                        //隐藏对话框
                        this.addDispatchNodeFormVisible = false;
                        //刷新车辆调度记录列表
                        this.getDispatchNodeList();
                    }).catch(error => {
                        this.addLoading = false;
                        this.$message.error(error.toString());
                    });
                })
            },
            /**
             * 管理员端,删除车辆调度记录
             */
            removeDispatchNode(index, row) {
                //弹框询问是否删除车辆调度记录
                this.$confirm('此操作永久删除该车辆调度记录, 是否继续?', '警告', {
                        confirmButtonText: '确定删除',
                        cancelButtonText: '取消',
                        type: 'warning'
                    }
                ).then(() => {
                    //开启加载
                    this.delLoading = true;
                    deleteDispatchNote(row).then((response) => {
                        let res = response.data;
                        if (res.code !== '200') {
                            this.delLoading = false;
                            return this.$message.error('删除车辆调度记录,失败');
                        }
                        this.$message.success('删除车辆调度记录,成功!');
                        this.delLoading = false;
                        //刷新车辆调度记录列表
                        this.getDispatchNodeList();
                    }).catch(error => {
                        this.delLoading = false;
                        this.$message.error(error.toString());
                    });
                }).catch(() => {
                });
            },
            /**
             * 管理员端,编辑车辆调度记录
             */
            editDispatchNote() {
                /*进行表单的预验证*/
                this.$refs.editFormRef.validate(valid => {
                    // 未通过,表单预校验
                    if (!valid) return;
                    // 通过,表单预检验,开启加载
                    this.editLoading = true;
                    updateDispatchNote(this.editForm).then((response) => {
                        let res = response.data;
                        if (res.code !== '200') {
                            //关闭加载
                            this.editLoading = false;
                            return this.$message.error('修改车辆调度记录信息,失败');
                        }
                        this.$message.success('修改车辆调度记录信息,成功!');
                        //关闭加载
                        this.editLoading = false;
                        //关闭编辑车辆调度记录对话框
                        this.viewDialogVisible = false;
                        //刷新车辆调度列表
                        this.getDispatchNodeList();
                    }).catch(error => {
                        this.editLoading = false;
                        this.$message.error(error.toString());
                    });
                });
            },
            /**
             * 管理员端,手动,开始调度任务
             */
            startDispatch(index, row) {
                //开启加载
                this.beginLoading = true;
                startTask(row).then((response) => {
                    let res = response.data;
                    if (res.code !== '200') {
                        //关闭加载
                        this.beginLoading = false;
                        return this.$message.error('手动开始调度任务,失败');
                    }
                    //关闭加载
                    this.beginLoading = false;
                    this.$message.success('手动开始调度任务,成功!');
                    //刷新车辆调度列表
                    this.getDispatchNodeList();
                }).catch(error => {
                    this.beginLoading = false;
                    this.$message.error(error.toString());
                });
            },
            /**
             * 管理员端,手动,完成调度任务
             */
            completeDispatch(index, row) {
                //开启加载
                this.endLoading = true;
                completeTask(row).then((response) => {
                    let res = response.data;
                    if (res.code !== '200') {
                        //关闭加载
                        this.endLoading = false;
                        return this.$message.error('手动完成调度任务,失败');
                    }
                    //关闭加载
                    this.endLoading = false;
                    this.$message.success('手动完成调度任务,成功!');
                    //刷新车辆调度列表
                    this.getDispatchNodeList();
                }).catch(error => {
                    this.endLoading = false;
                    this.$message.error(error.toString());
                });
            },
            /**
             * 批量删除,之前的选中
             */
            selsChange: function (sels) {
                this.sels = sels;
            },
            /**
             * 车辆状态为执行状态的时候,无法被选中
             */
            isSelectable(row, index) {
                if (row.status === '2') {
                    return false;
                } else {
                    return true;
                }
            },
            /**
             * 批量删除功能
             */
            batchRemove() {
                var ids = this.sels.map(item => item.id).toString();
                console.log(ids);
                //弹框询问是否批量删除选中的车辆调度记录
                this.$confirm('此操作永久删除选中的车辆调度记录, 是否继续?', '警告', {
                        confirmButtonText: '确定删除',
                        cancelButtonText: '取消',
                        type: 'warning'
                    }
                ).then(() => {
                    //开启加载
                    this.listLoading = true;
                    let params = {ids: ids};
                    batchRemoveDispatchNode(params).then(response => {
                        let res = response.data;
                        if (res.code !== '200') {
                            this.listLoading = false;
                            return this.$message.error('删除车辆调度记录,失败');
                        }
                        this.$message.success('删除车辆调度记录,成功!');
                        this.listLoading = false;
                        //刷新车辆调度记录列表
                        this.getDispatchNodeList();
                    }).catch(error => {
                        this.delLoading = false;
                        this.$message.error(error.toString());
                    });
                }).catch(() => {
                });
            },
            //监听,我要调度车辆,对话框的关闭事件
            dispatchDialogClosed() {
                //重置对话框
                this.$refs.addDispatchNodeFormRef.resetFields();
            },
            //监听,编辑调度记录,对话框的关闭事件
            editDialogClosed() {
                //重置对话框
                this.$refs.editFormRef.resetFields();
            },
            //监听pageSize改变的事件
            handleSizeChange(newSize) {
                this.queryInfo.pageSize = newSize;
                //刷新车辆调度记录列表
                this.getDispatchNodeList();
            },
            //监听当前页码值改变的事件
            handleCurrentChange(newPage) {
                this.queryInfo.pageNum = newPage;
                //刷新车辆调度记录列表
                this.getDispatchNodeList();
            },

            /**
             * 打开编辑调度记录,对话框
             * @param index
             * @param row:该行的数据对象
             */
            showDialogVisible(index, row) {
                this.editForm = Object.assign({}, row);
                this.viewDialogVisible = true;
            },
            /**
             * 根据状态的不同区分颜色
             *
             * @param row
             * @param rowIndex
             */
            rowStatus({row, rowIndex}) {
                if (row.status === '1') {
                    return 'success-row';
                }
                if (row.status === '2') {
                    return 'run-row';
                }
                if (row.status === '3') {
                    return 'cancel-row';
                }
                if (row.status === '4') {
                    return 'await-row';
                }
            }
        }
    }
</script>
<style>
    /* 完成状态 */
    .el-table .success-row {
        background: rgba(64, 158, 255, 0.2);
    }

    /*  执行状态 */
    .el-table .run-row {
        background: rgba(103, 194, 58, 0.2);
    }

    /*  取消状态 */
    .el-table .cancel-row {
        background: rgba(144, 147, 153, 0.2);
    }

    /*  待执行状态 */
    .el-table .await-row {
        background: rgba(230, 162, 60, 0.2);
    }
</style>