RouterManage.vue 11.1 KB
<template>
    <el-container>
        <el-main>
            <el-card style="background-color: #F5F7FA">
                <!-- 搜素区域 -->
                    <el-row>
                        <el-col :span="6">
                            <el-input v-model="umb_queryInfo.sndr"
                                      size="medium"
                                      placeholder="帐户名称" clearable>
                                <template  slot="prepend" ><i class="el-icon-user"></i>帐户名称</template>
                            </el-input>
                        </el-col>
                        <el-col :span="6">
                            <el-input v-model="umb_queryInfo.btype"
                                      size="medium"
                                      placeholder="消息大类" clearable>
                                <template  slot="prepend"><i class="el-icon-s-platform"></i>消息大类</template>
                            </el-input>
                        </el-col>
                        <el-col :span="6">
                            <el-input v-model="umb_queryInfo.stype"
                                      size="medium"
                                      placeholder="消息子类" clearable>
                                <template  slot="prepend"><i class="el-icon-s-operation"></i>消息子类</template>
                            </el-input>
                        </el-col>
                        <el-col :span="6">
                            <el-button type="warning" size="medium" icon="el-icon-search" @click="queryRouterList">
                                查询
                            </el-button>
                            <el-button type="primary" size="medium" icon="el-icon-plus" @click="dialogFormVisible = true">
                                添加
                            </el-button>
                        </el-col>
                    </el-row>
                    <el-row>
                        <el-table
                                :data="umb_queryData.tableData"
                                border
                                :header-cell-style="{background:'#6F8294',color:'#FFFFFF'}"
                                style="width: 100%">
                            <el-table-column
                                    prop="sndr"
                                    label="帐户名称"
                                    >
                            </el-table-column>
                            <el-table-column
                                    prop="btype"
                                    label="消息大类"
                                    >
                            </el-table-column>
                            <el-table-column
                                    prop="stype"
                                    label="消息子类"
                                    >
                            </el-table-column>
                            <el-table-column
                                    prop="rcvr_topic"
                                    label="订阅主题"
                                    >
                                <template slot-scope="scope">
                                    <div v-for="reciver in scope.row.rcvrList">
                                        {{reciver.rcvrTopic}}<!--,{{reciver.filterList.filter}}-->
                                       <!-- <div v-for="filters in reciver.filterList">{{filters.filter}}</div>-->
                                    </div>
                                </template>
                            </el-table-column>
                            <el-table-column
                                    prop="filter"
                                    label="过滤规则"
                                    >
                                <template slot-scope="scope">
                                    <div v-for="reciver in scope.row.rcvrList">
                                       <!-- {{reciver.rcvrTopic}},{{reciver.filterList.filter}}-->
                                        <div v-for="filters in reciver.filterList">{{reciver.rcvrTopic}}:[{{filters.filter}}]</div>
                                    </div>
                                </template>
                            </el-table-column>
                            <el-table-column label="操作" width="145px" align="center" fixed="right">
                                <template slot-scope="scope">
                                        <el-button type="danger" size="mini" @click="delRouter(scope.$index,scope.row)">删除</el-button>
                                </template>
                            </el-table-column>
                        </el-table>
                    </el-row>
                    <el-row>
                    <div class="block">
                        <el-pagination
                                @size-change="handleSizeChange"
                                @current-change="handleCurrentChange"
                                :current-page="umb_queryInfo.pageNum"
                                :page-sizes="[100, 200, 300, 400]"
                                :page-size="umb_queryInfo.pageSize"
                                layout="total, sizes, prev, pager, next, jumper"
                                :total="umb_queryData.total">
                        </el-pagination>
                    </div>
                </el-row>
                <el-row>
                    <el-dialog title="路由消息添加" :visible.sync="dialogFormVisible">
                        <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
                            <el-form-item label="账户名称" prop="sndr">
                                <el-input v-model="ruleForm.sndr"></el-input>
                            </el-form-item>
                            <el-form-item label="消息大类" prop="btype">
                                <el-input v-model="ruleForm.btype"></el-input>
                            </el-form-item>
                            <el-form-item label="消息子类" prop="stype">
                                <el-input v-model="ruleForm.stype"></el-input>
                            </el-form-item>
                            <el-form-item label="订阅主题">
                                <el-input v-model="ruleForm.reciver.rcvrTopic"></el-input>
                            </el-form-item>
                            <el-form-item label="过滤规则">
                                <el-input v-model="ruleForm.reciver.reciverFilter.filter"></el-input>
                            </el-form-item>
                        </el-form>
                        <div slot="footer" class="dialog-footer">
                            <el-button @click="dialogFormVisible = false">取 消</el-button>
                            <el-button type="primary" @click="submitForm('ruleForm')">确 定</el-button>
                        </div>
                    </el-dialog>
                </el-row>
            </el-card>
        </el-main>
    </el-container>
</template>
<script>
    import {queRouter, deleteRouter, addRouter} from "../../api/message_bus";
    export default {
        data(){
            return{
                dialogFormVisible:false,
                ruleForm:{
                   sndr:undefined,
                   btype:undefined,
                   stype:undefined,
                    reciver:{
                       rcvrTopic:undefined,
                        reciverFilter:{
                            filter:undefined
                        }
                    },


                },
                rules: {
                    sndr: [
                        { required: true, message: '请输入账户名称', trigger: 'blur' },
                        { min: 3, max: 10, message: '长度在 3 到 10 个字符', trigger: 'blur' }
                    ],
                    btype: [
                        { required: true, message: '请输入消息大类', trigger: 'blur' }
                    ],
                    stype: [
                        { required: true, message: '请输入消息子类', trigger: 'blur' }
                    ]
                },
                user_cloud: {
                    cloudUserList: [],
                    queryInfo: {
                        pageNum: 1,
                        pageSize: 10000,
                    }
                },
                umb_queryInfo: {
                    // 用户名称
                    sndr: undefined,
                    // 消息大类
                    btype: undefined,
                    // 消息子类
                    stype: undefined,
                    // 当前页数
                    pageNum: 1,
                    // 每页条数
                    pageSize: 10

                },
                umb_queryData: {
                    tableData: [],
                    total:0
                }

            }
        },
        methods: {
            handleSizeChange(val) {
                this.umb_queryInfo.pageSize=val;
                this.queryRouterList();
            },
            handleCurrentChange(val) {
                this.umb_queryInfo.pageNum=val;
                this.queryRouterList();
            },
            queryRouterList(){
                queRouter(this.umb_queryInfo).then((response) => {
                    let res = response.data;
                    this.umb_queryData.tableData=res.data.list;
                    this.umb_queryData.total=res.data.total;
                }).catch(error => {

                });
            },
            delRouter(index,row){
                // 弹框询问是否删除?
                this.$confirm('此操作永久删除该消息收发记录, 是否继续?', '警告', {
                        confirmButtonText: '确定删除',
                        cancelButtonText: '取消',
                        type: 'warning'
                    }
                ).then(() => {
                    deleteRouter({id:row.id}).then((response) => {
                        let res = response.data;
                        this.$message.success(res.msg);
                        this.queryRouterList();
                    }).catch(error => {
                        this.$message.error(res.msg);
                    });
                }).catch(() => {
                });
            },
            submitForm(formName){
                this.$refs[formName].validate((valid) => {
                    if (valid) {
                        addRouter(this.ruleForm).then((response) => {
                            let res = response.data;
                            this.dialogFormVisible=false;
                            this.$message.success(res.msg);
                            this.queryRouterList();
                        }).catch(error => {
                            this.$message.error(res.msg);
                        });
                    } else {
                        console.log('error submit!!');
                        return false;
                    }
                });
            }
        }
    }
</script>
<style scoped></style>