自动化立体仓库 - WMS系统
*
lsh
2025-11-25 e69b125d76ea336bb99e390033e5a99a57d55549
*
2个文件已修改
743 ■■■■■ 已修改文件
src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/deviceOperate/rgvOperate.html 741 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml
@@ -1,5 +1,5 @@
server:
  port: 8081
  port: 8080
  servlet:
    context-path: /@pom.build.finalName@
src/main/webapp/views/deviceOperate/rgvOperate.html
@@ -2,515 +2,260 @@
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>RGV设备</title>
    <link rel="stylesheet" href="../../static/css/element.css">
    <script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
    <script type="text/javascript" src="../../static/js/common.js"></script>
    <script type="text/javascript" src="../../static/js/vue.min.js"></script>
    <script type="text/javascript" src="../../static/js/element.js"></script>
    <meta charset="UTF-8">
    <title>RGV设备</title>
    <link rel="stylesheet" href="../../static/css/element.css">
    <script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
    <script type="text/javascript" src="../../static/js/common.js"></script>
    <script type="text/javascript" src="../../static/js/vue.min.js"></script>
    <script type="text/javascript" src="../../static/js/element.js"></script>
</head>
<body>
    <div id="app" style="display: flex;justify-content: center;flex-wrap: wrap;">
        <div style="width: 100%;">
            <el-table border ref="singleTable" :data="tableData" highlight-current-row @row-click="handleRowClick"
                max-height="350" style="width: 100%">
                <el-table-column property="rgvNo" label="RGV号">
                </el-table-column>
                <el-table-column property="workNo1" label="工作号">
                </el-table-column>
                <el-table-column property="statusType" label="模式">
                </el-table-column>
                <el-table-column property="status" label="任务状态">
                </el-table-column>
                <el-table-column property="walkPos" label="设备状态">
                </el-table-column>
                <el-table-column property="pakMk" label="锁定状态">
                </el-table-column>
            </el-table>
        </div>
<div id="app" style="display: flex;justify-content: center;flex-wrap: wrap;">
    <div style="width: 100%;">
        <el-table ref="singleTable" :data="tableData" highlight-current-row @row-click="handleRowClick"
                  max-height="450" style="width: 100%">
            <el-table-column property="rgvNo" label="小车号">
            </el-table-column>
            <el-table-column property="taskNo" label="工作号">
            </el-table-column>
            <el-table-column property="mode" label="作业模式">
            </el-table-column>
            <el-table-column property="status" label="状态">
            </el-table-column>
            <el-table-column property="rgvPos" label="当前定位值">
            </el-table-column>
            <el-table-column property="rgvPosDestination" label="目标定位置">
            </el-table-column>
            <el-table-column property="loaded" label="探物">
            </el-table-column>
            <el-table-column property="errorRgv" label="提示">
            </el-table-column>
        </el-table>
    </div>
        <div style="width: 100%;display: flex;justify-content: center;margin-top: 10px;">
            <div style="width: 55%;margin-right: 10px;">
                <el-card class="box-card">
                    <div slot="header" class="clearfix">
                        <span>设备调试</span>
                    </div>
                    <div>
                        <el-form :model="formParam" label-position="top" :inline="true" class="demo-form-inline"  v-if="rgvMode !== 2 && rgvMode !== 1 ">
<!--                            <el-form-item label="源站/源库位">-->
<!--                                <el-input v-model="formParam.sourceStaNo" placeholder="源站/源库位"></el-input>-->
<!--                            </el-form-item>-->
                            <el-form-item label="起始站">
                                <el-input v-model="formParam.sourceRow" placeholder="起始站"></el-input>
                            </el-form-item>
                            <el-form-item label="目标站">
                                <el-input v-model="formParam.sourceBay" placeholder="目标站"></el-input>
                            </el-form-item>
                            <el-form-item label="启动">
                                <el-button @click="initiate" type="warning">执行任务</el-button>
                            </el-form-item>
                        </el-form>
    <div style="width: 100%;display: flex;justify-content: center;margin-top: 10px;">
        <div style="width: 55%;margin-right: 10px;">
            <el-card class="box-card">
                <div slot="header" class="clearfix">
                    <span>设备调试</span>
                </div>
                <div>
                    <el-form :model="formParam" label-position="top" :inline="true" class="demo-form-inline">
                        <el-form-item label="目标定位置">
                            <el-input v-model="formParam.rgvPosDestination" placeholder="目标定位置"></el-input>
                        </el-form-item>
                        <el-form-item label="取货站点">
                            <el-input v-model="formParam.rgvStaNoTake" placeholder="目标站点"></el-input>
                        </el-form-item>
                        <el-form-item label="目标站点">
                            <el-input v-model="formParam.rgvStaNoPut" placeholder="目标站点"></el-input>
                        </el-form-item>
                    </el-form>
                    <div>
                        <el-button @click="requestOperate('take')" type="primary">取货</el-button>
                        <el-button @click="requestOperate('put')" type="primary">放货</el-button>
                        <el-button @click="requestOperate('TakeAndPut')" type="primary">取放货</el-button>
                        <el-button @click="requestOperate('walk')" type="warning">行走</el-button>
                    </div>
                    <div style="margin-top: 10px">
                        <el-button @click="requestOperate('del')" type="warning">任务清空</el-button>
                        <el-button @click="requestOperate('del2')" type="warning">作业启动中状态复位</el-button>
                    </div>
                    <div style="margin-top: 10px">
                        <el-button @click="requestOperate('delRgvTask')" type="warning">清空wcs下发数据(运行数据需要硬件复位9S)</el-button>
                    </div>
                </div>
            </el-card>
        </div>
        <div style="width: 45%;">
            <el-card class="box-card">
                <div slot="header" class="clearfix">
                    <span>设备当前任务</span>
                </div>
                <div>
                    <div v-if="currentIndex == null">
                        <el-empty description="请选择设备"></el-empty>
                    </div>
                    <div v-else>
                        <el-table ref="singleTable" :data="taskAllData" highlight-current-row @row-click="handleRowClick"
                                  max-height="450" style="width: 100%">
                            <el-table-column property="rgvNo" label="小车号">
                            </el-table-column>
                            <el-table-column property="taskNo" label="工作号">
                            </el-table-column>
                            <el-table-column property="taskStatus" label="作业模式">
                            </el-table-column>
                            <el-table-column property="isRunning" label="状态">
                            </el-table-column>
                            <el-table-column property="targetPosition" label="目标定位置">
                            </el-table-column>
                            <el-table-column property="direction" label="方向">
                            </el-table-column>
                        </el-table>
                    </div>
                </div>
            </el-card>
        </div>
    </div>
</div>
<script>
    var app = new Vue({
        el: '#app',
        data: {
            tableData: [],
            taskAllData: [],
            currentRow: null,
            currentTitle: "未选择设备",
            currentIndex: null,
            formParam: {
                rgvNo: 0,
                rgvStaNoTake: 0,
                rgvStaNoPut: 0,
                rgvPosDestination: 0
            }
        },
        created() {
            this.init()
        },
        watch: {
                        <div v-if="rgvMode === 2 ">
                            <el-form :model="formParamD" label-position="top" :inline="true" class="demo-form-inline">
                                <el-form-item label="起始站">
                                    <el-input v-model="formParamD.sourceRow" placeholder="起始站"></el-input>
                                </el-form-item>
                                <el-form-item label="目标站">
                                    <el-input v-model="formParamD.sourceBay" placeholder="目标站"></el-input>
                                </el-form-item>
                                <el-form-item label="启动">
                                    <el-button @click="initiateD(1)" type="warning">取货</el-button>
                                    <el-button @click="initiateD(2)" type="warning">放货</el-button>
                                    <el-button @click="initiateD(3)" type="warning">XY移动</el-button>
                                </el-form-item>
                            </el-form>
                        </div>
                        <div  v-if="demo === 'N' ">
                            <el-button v-if="rgvMode === 0 " type="danger">未知</el-button>
                            <el-button v-if="rgvMode === -1 " type="danger">未知</el-button>
                            <el-button v-if="rgvMode === 3 " type="primary">联机</el-button>
                            <el-button v-if="rgvMode === 2 " type="primary">单机</el-button>
                            <el-button v-if="rgvMode === 1 " type="warning">手动</el-button>
                        </div>
                        <div  v-if="rgvMode !== 0 ">
                            <div style="margin: 10px auto 10px auto">
                                <el-button v-if="demo === 'N' " @click="demos('true')" type="info">演示</el-button>
                                <el-button v-if="demo === 'Y' " @click="demos('false')" type="info">取消演示</el-button>
                            </div>
                            <div style="margin: 10px auto 10px auto" v-if="demo === 'N' ">
                                <el-button v-if="rgvMode !== 3 " @click="rgvStatus(15)" type="primary">联机</el-button>
                                <el-button v-if="rgvMode !== 2 " @click="rgvStatus(14)" type="primary">单机</el-button>
                                <el-button v-if="rgvMode !== 1 " @click="rgvStatus(12)" type="warning">手动</el-button>
                            </div>
                            <div style="margin: 10px auto 10px auto" v-if="demo === 'N' ">
                                <el-button @click="rgvStatus(8)" type="primary">启动</el-button>
                                <el-button @click="rgvStatus(9)" type="primary">停止</el-button>
                                <el-button @click="rgvStatus(11)" type="primary">复位按钮</el-button>
                            </div>
                            <div style="margin: 10px auto 10px auto" v-if="demo === 'N' ">
                                <el-button @click="rgvStatus(7)" type="warning">报警消音</el-button>
                                <el-button v-if="rgvMode === 1 " @click="rgvStatus(13)" type="warning">手动定位</el-button>
                            </div>
                            <div style="margin: 10px auto 10px auto" v-if="demo === 'N' ">
                                <el-button :style="" @click="rgvStatus(5)" type="danger">强制启动</el-button>
                                <el-button @click="rgvStatus(10)" type="danger">急停</el-button>
                                <el-button @click="rgvStatus(16)" type="danger">货叉定位回中</el-button>
                            </div>
                            <div style="margin-top: 5px" v-if="demo === 'Y'">
                                <el-button  @click="staTova(2,1)" type="warning">输送-置换1</el-button>
                                <el-button  @click="staTova(2,3)" type="warning">输送-置换2</el-button>
                                <el-button  @click="staTova(2,5)" type="warning">输送-置换3</el-button>
                                <el-button  @click="staTova(2,7)" type="warning">输送-置换4</el-button>
                            </div>
                            <div style="margin-top: 5px" v-if="demo === 'Y'">
                                <el-button  @click="staTova(2,4)" type="warning">输送-灌装1</el-button>
                                <el-button  @click="staTova(2,6)" type="warning">输送-灌装2</el-button>
                                <el-button  @click="staTova(2,8)" type="warning">输送-灌装3</el-button>
                            </div>
                            <div style="margin-top: 5px" v-if="demo === 'Y'">
                                <el-button  @click="staTova(1,10)" type="warning">置换1-放货</el-button>
                                <el-button  @click="staTova(2,10)" type="warning">置换2-放货</el-button>
                                <el-button  @click="staTova(3,10)" type="warning">置换3-放货</el-button>
                                <el-button  @click="staTova(4,10)" type="warning">置换4-放货</el-button>
                            </div>
                        </div>
                    </div>
                </el-card>
            </div>
            <div style="width: 45%;">
                <el-card class="box-card">
                    <div slot="header" class="clearfix">
                        <span>设备状态</span>
                    </div>
                    <div>
                        <div v-if="currentIndex == null">
                            <el-empty description="请选择设备"></el-empty>
                        </div>
                        <div v-else>
                            <el-descriptions :title="currentTitle" direction="vertical" :column="4" border>
                                <el-descriptions-item label="RGV">{{ tableData[currentIndex].rgvNo }}
                                </el-descriptions-item>
                                <el-descriptions-item label="工作号">
                                    {{ tableData[currentIndex].workNo1 }}
                                </el-descriptions-item>
                                <el-descriptions-item label="模式">
                                    <el-tag>{{ tableData[currentIndex].statusType }}</el-tag>
                                </el-descriptions-item>
                                <el-descriptions-item label="任务状态">
        },
        methods: {
            init() {
                this.getTableData()
                                        <el-tag>{{ tableData[currentIndex].status}}</el-tag>
                setInterval(() => {
                    this.getTableData()
                }, 1000)
            },
            handleRowClick(row, col, event) {
                const index = this.tableData.indexOf(row)
                this.currentRow = row;
                this.currentIndex = index
                this.currentTitle = row.rgvNo + "小车"
                                </el-descriptions-item>
                                <el-descriptions-item label="设备状态">
                                    <el-tag>{{ tableData[currentIndex].walkPos }}</el-tag>
                                </el-descriptions-item>
                                <el-descriptions-item label="故障代码">{{ tableData[currentIndex].warnCode }}
                                </el-descriptions-item>
                                <el-descriptions-item label="故障描述">{{ tableData[currentIndex].alarm }}
                                </el-descriptions-item>
<!--                                <el-descriptions-item label="源站">{{ tableData[currentIndex].staNo }}-->
<!--                                </el-descriptions-item>-->
<!--                                <el-descriptions-item label="目标站">{{ tableData[currentIndex].sourceStaNo }}-->
<!--                                </el-descriptions-item>-->
                            </el-descriptions>
                this.formParam.rgvNo = row.rgvNo
                this.formParam.rgvStaNoTake = row.rgvStaNoTake
                this.formParam.rgvStaNoPut = row.rgvStaNoPut
                this.formParam.rgvPosDestination = row.rgvPosDestination
                        </div>
                    </div>
                </el-card>
            </div>
        </div>
    </div>
    <script>
        var app = new Vue({
            el: '#app',
            data: {
                tableData: [],
                currentRow: null,
                currentTitle: "未选择设备",
                currentIndex: null,
                formParam: {
                    rgvNo: null,
                    sourceStaNo: null,
                    sourceRow: 1,
                    sourceBay: 0,
                    sourceLev: 1,
                    staNo: null,
                    row: 1,
                    bay: 0,
                    lev: 1,
                    barcode:null,
                    barcodeType:null,
                    emptyContainer:null
                },
                formParamD: {
                    rgvNo: null,
                    sourceStaNo: null,
                    sourceRow: 1,
                    sourceBay: 0,
                    sourceLev: 1,
                    staNo: null,
                    row: 1,
                    bay: 0,
                    lev: 1,
                    barcode:null,
                    barcodeType:null,
                    emptyContainer:null
                },
                enableIn: false,
                enableOut: false,
                options:[
                    {
                        value:'1',
                        label:'是'
                    },
                    {
                        value:'0',
                        label:'否'
                    }
                ],
                demo: 'X',
                rgvMode: 0
            },
            created() {
                this.init()
            },
            watch: {
                this.getTaskAllData(index+1)
            },
            getTaskAllData(index) {
                let that = this;
                var baseUrl = 'http://127.0.0.1:9090/zzgtwcs';
                $.ajax({
                    url: baseUrl + "/rgv/task/cache/all",
                    headers: {
                        'token': localStorage.getItem('token')
                    },
                    data: {rgvNo: index},
                    method: 'POST',
                    xhrFields: {
                        withCredentials: true // 重要:允许携带凭证
                    },
                    success: function (res) {
                        that.taskAllData = res.data
                    }
                });
            },
            getTableData() {
                let that = this;
                // console.log("✅ 准备请求:");
                $.ajax({
                    url: "http://127.0.0.1:9090/zzgtwcs/rgv/status/all",
                    headers: {
                        'token': localStorage.getItem('token') || '' // 确保token不为null
                    },
                    method: 'GET',
                    xhrFields: {
                        withCredentials: true // 关键:允许携带凭证
                    },
                    success: function (res) {
                        // console.log("✅ 请求成功,响应数据:", res);
                        if (res.code === 200) {
                            that.tableData = res.data;
                        } else {
                            // console.error("请求成功但返回错误:", res);
                            // 显示错误提示
                            that.$message({
                                message: '操作失败: ' + (res.msg || '未知错误'),
                                type: 'error'
                            });
                        }
                    },
                    error: function(xhr, status, error) {
                        // 详细的错误处理
                        console.log("❌ 请求失败,响应数据:", xhr);
                        console.error("AJAX请求失败:", {
                            status: xhr.status,
                            statusText: xhr.statusText,
                            error: error,
                            response: xhr.responseText
                        });
            },
            methods: {
                staTova(sta,end){
                    let that = this
                    that.$confirm('此操作存在风险,是否继续','提示',{
                        confirmButtonText: '确定',
                        cancelButtonText: '取消',
                        type: 'warning'
                    }).then(()=>{
                        $.ajax({
                            url: baseUrl + "/rgv/rgvDemoTask",
                            headers: {
                                'token': localStorage.getItem('token')
                            },
                            data:{
                                rgvNo : this.formParam.rgvNo,
                                sta : sta,
                                end : end
                            },
                            method: 'Get',
                            success: function (res) {
                                if (res.code == 200) {
                                    that.$message({
                                        message: res.msg,
                                        type: 'success'
                                    });
                                } else {
                                    that.$message({
                                        message: res.msg,
                                        type: 'error'
                                    });
                                }
                            }
                        });
                    })
                },
                init() {
                    this.getTableData()
                        // 用户友好的错误提示
                        let errorMsg = "请求失败: ";
                        if (xhr.status === 0) {
                            errorMsg += "网络连接失败";
                        } else if (xhr.status === 401) {
                            errorMsg += "未授权,请重新登录";
                        } else if (xhr.status === 403) {
                            errorMsg += "权限不足";
                        } else if (xhr.status === 404) {
                            errorMsg += "接口不存在";
                        } else {
                            errorMsg += `错误代码: ${xhr.status}`;
                        }
                    setInterval(() => {
                        this.getTableData()
                        this.demoStatus()
                    }, 1000)
                },
                handleRowClick(row, col, event) {
                    const index = this.tableData.indexOf(row)
                    this.currentRow = row;
                    this.currentIndex = index
                    this.currentTitle = row.rgvNo + "号RGV"
                    this.formParam.rgvNo = row.rgvNo
                    this.enableIn = row.inEnable == "Y" ? true : false
                    this.enableOut = row.outEnable == "Y" ? true : false
                },
                getTableData() {
                    let that = this;
                    $.ajax({
                        url: baseUrl + "/rgv/table/rgv/state",
                        headers: {
                            'token': localStorage.getItem('token')
                        },
                        data: {},
                        dataType: 'json',
                        contentType: 'application/json;charset=UTF-8',
                        method: 'post',
                        success: function (res) {
                            that.tableData = res.data
                        }
                    });
                },
                demoStatus() {
                    let that = this;
                    $.ajax({
                        url: baseUrl + "/rgv/demo/status",
                        data:{
                            rgvNo : this.formParam.rgvNo
                        },
                        headers: {
                            'token': localStorage.getItem('token')
                        },
                        contentType: 'application/json;charset=UTF-8',
                        method: 'get',
                        success: function (res) {
                            // console.log(res)
                            that.demo = res.data.demo
                            that.rgvMode = res.data.rgvMode
                        }
                    });
                },
                initiate(){
                    let that = this
                    that.$confirm('此操作存在风险,是否继续','提示',{
                        confirmButtonText: '确定',
                        cancelButtonText: '取消',
                        type: 'warning'
                    }).then(()=>{
                        $.ajax({
                            url: baseUrl + "/rgv/operator/put",
                            headers: {
                                'token': localStorage.getItem('token')
                            },
                            data: this.formParam,
                            method: 'POST',
                            success: function (res) {
                                if (res.code == 200) {
                                    that.$message({
                                        message: res.msg,
                                        type: 'success'
                                    });
                                } else {
                                    that.$message({
                                        message: res.msg,
                                        type: 'error'
                                    });
                                }
                            }
                        });
                    })
                },
                initiateD(method){
                    let urlS = "/rgv/operator/single/step/three/put";
                    if (method===1){
                        urlS = "/rgv/operator/single/step/one/put";
                    }else if (method === 2){
                        urlS = "/rgv/operator/single/step/two/put";
                    }else if (method === 3){
                        urlS = "/rgv/operator/single/step/three/put";
                    }
                    let that = this
                    that.$confirm('此操作存在风险,是否继续','提示',{
                        confirmButtonText: '确定',
                        cancelButtonText: '取消',
                        type: 'warning'
                    }).then(()=>{
                        $.ajax({
                            url: baseUrl + urlS,
                            headers: {
                                'token': localStorage.getItem('token')
                            },
                            data: this.formParam,
                            method: 'POST',
                            success: function (res) {
                                if (res.code == 200) {
                                    that.$message({
                                        message: res.msg,
                                        type: 'success'
                                    });
                                } else {
                                    that.$message({
                                        message: res.msg,
                                        type: 'error'
                                    });
                                }
                            }
                        });
                    })
                },
                demos(method){
                    let that = this
                    that.$confirm('此操作存在风险,是否继续','提示',{
                        confirmButtonText: '确定',
                        cancelButtonText: '取消',
                        type: 'warning'
                    }).then(()=>{
                        $.ajax({
                            url: baseUrl + "/rgv/demo/status/" + method,
                            headers: {
                                'token': localStorage.getItem('token')
                            },
                            data:{
                                rgvNo : this.formParam.rgvNo
                            },
                            method: 'Get',
                            success: function (res) {
                                if (res.code == 200) {
                                    that.$message({
                                        message: res.msg,
                                        type: 'success'
                                    });
                                } else {
                                    that.$message({
                                        message: res.msg,
                                        type: 'error'
                                    });
                                }
                            }
                        });
                    })
                },
                rgvStatus(method){
                    let that = this
                    that.$confirm('此操作存在风险,是否继续','提示',{
                        confirmButtonText: '确定',
                        cancelButtonText: '取消',
                        type: 'warning'
                    }).then(()=>{
                        $.ajax({
                            url: baseUrl + "/rgv/demo/status/rgvStatus",
                            headers: {
                                'token': localStorage.getItem('token')
                            },
                            data:{
                                rgvNo : this.formParam.rgvNo,
                                status : Number(method)
                            },
                            method: 'Get',
                            success: function (res) {
                                if (res.code == 200) {
                                    that.$message({
                                        message: res.msg,
                                        type: 'success'
                                    });
                                } else {
                                    that.$message({
                                        message: res.msg,
                                        type: 'error'
                                    });
                                }
                            }
                        });
                    })
                },
                requestOperate(method) {
                    let that = this
                    that.$confirm('此操作存在风险,是否继续','提示',{
                        confirmButtonText: '确定',
                        cancelButtonText: '取消',
                        type: 'warning'
                    }).then(()=>{
                        $.ajax({
                            url: baseUrl + "/rgv/operator/" + method,
                            headers: {
                                'token': localStorage.getItem('token')
                            },
                            data: this.formParam,
                            method: 'POST',
                            success: function (res) {
                                if (res.code == 200) {
                                    that.$message({
                                        message: res.msg,
                                        type: 'success'
                                    });
                                } else {
                                    that.$message({
                                        message: res.msg,
                                        type: 'error'
                                    });
                                }
                            }
                        });
                    })
                        that.$message({
                            message: errorMsg,
                            type: 'error',
                            duration: 5000
                        });
                    }
                });
            },
            requestOperate(method) {
                let that = this
                var baseUrl = 'http://127.0.0.1:9090/zzgtwcs';
                that.$confirm('此操作存在风险,是否继续','提示',{
                    confirmButtonText: '确定',
                    cancelButtonText: '取消',
                    type: 'warning'
                }).then(()=>{
                    $.ajax({
                        url: baseUrl + "/rgv/run/"+method,
                        headers: {
                            'token': localStorage.getItem('token')
                        },
                        data: this.formParam,
                        method: 'POST',
                        xhrFields: {
                            withCredentials: true // 重要:允许携带凭证
                        },
                        success: function (res) {
                            if (res.code == 200) {
                                that.$message({
                                    message: res.msg,
                                    type: 'success'
                                });
                            } else {
                                that.$message({
                                    message: res.msg,
                                    type: 'error'
                                });
                            }
                        }
                    });
                })
                },
                updateEnableInOut(type) {
                    let that = this
                    let param = {}
                    if (type == "in") {
                        param = {
                            inEnable: this.enableIn ? "Y" : "N",
                            rgvNo: this.formParam.rgvNo
                        }
                    } else {
                        param = {
                            outEnable: this.enableOut ? "Y" : "N",
                            rgvNo: this.formParam.rgvNo
                        }
                    }
                    $.ajax({
                        url: baseUrl + "/basCrnp/update/auth",
                        headers: {
                            'token': localStorage.getItem('token')
                        },
                        data: param,
                        method: 'POST',
                        success: function (res) {
                            if (res.code == 200) {
                                that.$message({
                                    message: res.msg,
                                    type: 'success'
                                });
                            } else {
                                that.$message({
                                    message: res.msg,
                                    type: 'error'
                                });
                            }
                        }
                    });
                }
            }
        })
    </script>
            }
        }
    })
</script>
</body>
</html>