作者 朱兆平

多式联运电子运单es消息管理更新,对接多式联运用户列表

... ... @@ -23,6 +23,16 @@ export default {
}
});
},
getJson(url, params) {
return axios({
method: 'GET',
url: url,
params: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
});
},
put(url, params){
return axios({
method: 'PUT',
... ...
... ... @@ -143,3 +143,7 @@ export const batchDelete = params =>{return http.del(`${baseUrl}/message/type/ba
//批量添加路由
export const api_batchAddRouter = params =>{return http.post(`${baseUrl}/router/batchAdd`, params);};
export const loadRouterBySndr = params =>{return http.get(`${baseUrl}/router/searchBysndr`, params);};
//路由接收者过滤器添加
export const api_addReceiverFileter = params =>{return http.post(`${baseUrl}/filter/`, params);};
export const api_getReceiverFileter = params =>{return http.getJson(`${baseUrl}/filter/`, params);};
... ...
... ... @@ -91,6 +91,7 @@ import ElasticSearchInfo from "./views/bus/ElasticSearchInfo.vue"
import RouterBatch from "./views/bus/RouterBatch.vue"
import MessageManagement from "./views/bus/MessageManagement.vue"
import RouterManage from "./views/bus/RouterManage"
import RouterFilter from "./views/bus/RouterReceiverFilter"
//组件练习
//import Page7 from "./views/nav3/Page7.vue"
... ... @@ -159,7 +160,7 @@ let routes = [
name: '消息控制中心',
iconCls: 'el-icon-message',
children: [
{path: '/userInfo', component: UserInfo, name: '用户关系管理'},
// {path: '/userInfo', component: UserInfo, name: '用户关系管理'},
{path: '/server', component: Server, name: '服务器管理'},
// {path: '/host', component: VirtualHost, name: '虚拟主机管理'},
{path: '/queue', component: Queue, name: '队列管理'},
... ... @@ -171,8 +172,8 @@ let routes = [
{path: '/note_search', component: MessageNoteSearch, name: '消息记录搜索'},
{path: '/es', component: ElasticSearchInfo, name: 'ES信息管理'},
{path: '/configures', component: RouterBatch, name: '消息路由批量配置'},
{path: '/ms', component: MessageManagement, name: '消息分类管理'}
{path: '/ms', component: MessageManagement, name: '消息分类管理'},
{path: '/route_filter', component: RouterFilter, name: '路由过滤器管理'}
]
},
{
... ...
... ... @@ -19,21 +19,21 @@
<template slot="prepend" ><i class="el-icon-user"></i>所属用户</template>
</el-input>
</el-col>
<!-- <el-col :span="5">-->
<!-- <el-cascader-->
<!-- size="medium"-->
<!-- v-model="queue_queryInfo.virtualHostId"-->
<!-- :options="queue_config.cascade.server_hostList"-->
<!-- :show-all-levels="false"-->
<!-- :change-on-select="false"-->
<!-- clearable filterable-->
<!-- @change="cascadeQueryChange"-->
<!-- :props="queue_config.cascade.defaultParams"-->
<!-- placeholder="请选择所属虚拟主机"-->
<!-- slot="append">-->
<!-- </el-cascader>-->
<!-- </el-col>-->
<el-col :span="5">
<el-cascader
size="medium"
v-model="queue_queryInfo.virtualHostId"
:options="queue_config.cascade.server_hostList"
:show-all-levels="false"
:change-on-select="false"
clearable filterable
@change="cascadeQueryChange"
:props="queue_config.cascade.defaultParams"
placeholder="请选择所属虚拟主机"
slot="append">
</el-cascader>
</el-col>
<el-col :span="8">
<el-button type="warning" style="width:150px" size="medium" icon="el-icon-search" @click="queue_getListSub">
查询队列
</el-button>
... ... @@ -60,6 +60,8 @@
width="200"></el-table-column>
<el-table-column label="分区数量" prop="partitionCount" align="center"
width="200"></el-table-column>
<el-table-column label="消费者组" prop="consumerGroupName" align="center"
width="200"></el-table-column>
<el-table-column label="相关描述" prop="description" align="center" width="200"></el-table-column>
<!-- <el-table-column label="是否持久化" prop="durability" align="center" width="145">-->
<!-- <template slot-scope="scope">-->
... ... @@ -150,7 +152,7 @@
</el-input>
</el-form-item>
<el-form-item label="" prop="virtualHostId">
<el-form-item label="" prop="consumerGroupName">
<el-input v-model="queue_addForm.consumerGroupName" style="width:300px" size="small" clearable
placeholder="请输入消费者组名称">
<template slot="prepend" >消费者组</template>
... ... @@ -698,8 +700,8 @@
}
},
mounted() {
this.selectServerAndHostList();
this.queue_getUserInfoList();
// this.selectServerAndHostList();
//this.queue_getUserInfoList();
},
computed: {},
}
... ...
... ... @@ -69,8 +69,9 @@
align="center"
>
<template slot-scope="scope">
<div v-for="reciver in scope.row.rcvrList">
<div v-for="reciver in scope.row.rcvrList" v-bind:key="reciver.id">
{{reciver.rcvrTopic}}<!--,{{reciver.filterList.filter}}-->
<el-button type="text" size="mini" @click="addReceiverFiletery(reciver.id)">增加过滤</el-button>
<!-- <div v-for="filters in reciver.filterList">{{filters.filter}}</div>-->
</div>
</template>
... ... @@ -143,7 +144,7 @@
</el-container>
</template>
<script>
import {queRouter, deleteRouter, addRouter} from "../../api/message_bus";
import {queRouter, deleteRouter, addRouter,api_addReceiverFileter} from "../../api/message_bus";
import Queue from "@/views/bus/Queue";
export default {
components: { Queue },
... ... @@ -201,6 +202,11 @@
umb_queryData: {
tableData: [],
total:0
},
receiverFilterForm: {
filter: undefined,
type: 'REGULAR',
messageRouterReciverId: ''
}
}
... ... @@ -270,6 +276,10 @@
})
}
console.log(_this.ruleForm.rcvrList);
},
addReceiverFileter:function (receiverId) {
let _this = this;
_this.receiverFilterForm.messageRouterReciverId = receiverId;
}
}
}
... ...
<template>
<el-container>
<el-main>
<el-card style="background-color: #F5F7FA">
<!-- 搜素区域 -->
<div>
<el-row>
<el-col :span="7">
<el-input v-model="queue_queryInfo.filter"
size="medium"
placeholder="过滤器内容" clearable>
<template slot="prepend" ><i class="el-icon-notebook-2"></i>过滤器内容</template>
</el-input>
</el-col>
<el-col :span="8">
<el-button type="warning" style="width:150px" size="medium" icon="el-icon-search" @click="queue_getListSub">
查询
</el-button>
<el-button type="primary" style="width:150px" size="medium" icon="el-icon-plus" @click="queue_toAddDialog">
添加
</el-button>
</el-col>
</el-row>
</div>
<!-- 列表区域 -->
<div style="margin-top: 20px;">
<el-row>
<el-col :span="24">
<el-table :data="queue_page.queueList" border v-loading="queue_loading.listLoading"
@selection-change="queue_selectChange"
element-loading-text="获取队列列表,拼命加载中" size="small"
:header-cell-style="{background:'#6F8294',color:'#FFFFFF'}"
style="border-radius: 10px 10px 0px 0px;line-height: 25px;">
<el-table-column type="selection" width="55" align="center"></el-table-column>
<el-table-column type="index" align="center" width="55" ></el-table-column>
<el-table-column label="过滤规则" prop="queueName" align="center"
width="200"></el-table-column>
<el-table-column label="规则类型" prop="username" align="center"
width="200"></el-table-column>
<el-table-column label="状态" prop="partitionCount" align="center"
width="200"></el-table-column>
<el-table-column label="相关描述" prop="description" align="center" width="200"></el-table-column>
<!-- <el-table-column label="是否持久化" prop="durability" align="center" width="145">-->
<!-- <template slot-scope="scope">-->
<!-- <span v-if="scope.row.durability ===false">否</span>-->
<!-- <span v-if="scope.row.durability ===true">是</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="创建时间" prop="gmtCreate" align="center" width="200">
</el-table-column>
<!-- <el-table-column label="扩展参数" prop="arguments" align="center" width="200">-->
<!-- </el-table-column>-->
<!-- fixed="right" -->
<el-table-column label="操作" width="220" align="center" fixed="right">
<template slot-scope="scope">
<!-- 编辑按钮-->
<el-tooltip effect="dark" content="编辑" placement="top-start" :enterable="false">
<el-button type="primary" icon="el-icon-edit" size="mini" style="margin-bottom: 2px"
@click="queue_toEditDialog(scope.$index,scope.row)">编辑
</el-button>
</el-tooltip>
<!-- 删除按钮-->
<el-tooltip effect="dark" content="删除" placement="top-start" :enterable="false">
<el-button type="danger" icon="el-icon-delete" size="mini"
:loading="queue_loading.delLoading"
@click="queue_remove(scope.$index,scope.row)">删除
</el-button>
</el-tooltip>
</template>
</el-table-column>
</el-table>
</el-col>
</el-row>
</div>
<!--分页区域-->
<div style="margin-top: 10px">
<el-row :gutter="24">
<el-col :span="5">
<el-button type="danger" icon="el-icon-delete"
:loading="queue_loading.listLoading"
:disabled="this.queue_page.selectList.length===0"
@click="queue_batchRemove">批量删除
</el-button>
</el-col>
<el-col :span="10" style="margin-top: 5px">
<el-pagination
@size-change="queue_handleSizeChange"
@current-change="queue_handleCurrentChange"
:current-page="queue_queryInfo.pageNum"
:page-sizes="[10,20,30,50]"
:page-size="queue_queryInfo.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="queue_page.total">
</el-pagination>
</el-col>
</el-row>
</div>
</el-card>
<!-- 增加,对话框区域 -->
<div>
<el-dialog :title="dialogMap[dialogStatus]"
:visible.sync="queue_dialog.addDialog"
style="margin-top: -50px" text-align="center" width="60%"
@close="queue_addDialogClosed">
<el-form :inline="true" label-width="120px" status-icon style="margin-top: -10px"
:model="queue_addForm" :rules="queue_addFormRules" ref="queue_addFormRef" align="center">
<el-form-item label="" prop="queueName">
<el-input v-model="queue_addForm.queueName" style="width:300px" size="small" clearable
placeholder="请输入TOPIC名称">
<template slot="prepend" >TOPIC名称</template>
</el-input>
</el-form-item>
<el-form-item label="" prop="partitionCount">
<el-input v-model="queue_addForm.partitionCount" style="width:300px" size="small" clearable
placeholder="请输入TOPIC分区数量">
<template slot="prepend" >TOPIC分区数量</template>
</el-input>
</el-form-item>
<el-form-item label="" prop="username">
<el-input v-model="queue_addForm.username" style="width:300px" size="small" clearable
placeholder="请输入用户名称">
<template slot="prepend" >用户名称</template>
</el-input>
</el-form-item>
<el-form-item label="" prop="virtualHostId">
<el-input v-model="queue_addForm.consumerGroupName" style="width:300px" size="small" clearable
placeholder="请输入消费者组名称">
<template slot="prepend" >消费者组</template>
</el-input>
</el-form-item>
<el-form-item label="" prop="description">
<el-input v-model="queue_addForm.description" style="width:300px" clearable size="small"
type="textarea" autosize :rows="1"
placeholder="相关描述">
</el-input>
</el-form-item>
</el-form>
<User
v-on:getUserMessageEvent="getUserInfo">
</User>
<div slot="footer" class="dialog-footer" style="text-align: center;margin-top: -20px">
<el-button type="info" @click="queue_dialog.addDialog = false" size="medium"
style="width: 100px;background-color: #6F8294;color: #ffffff">取消
</el-button>
<el-button type="primary" @click="dialogStatus==='create'?queue_add():queue_edit()" :loading="queue_loading.addLoading"
size="medium" style="width: 100px">提交
</el-button>
</div>
</el-dialog>
</div>
</el-main>
</el-container>
</template>
<script>
import {
selectBusQueueList,
insertBusQueue,
updateBusQueue,
deleteBusQueue,
batchRemoveBusQueue,
getServerAndHostList, getUserInfoList,
api_addReceiverFileter,api_getReceiverFileter
} from "../../api/message_bus";
import User from "@/views/bus/dsly/user";
export default {
name: "Queue",
components: { User },
data() {
return {
dialogMap: {
update: '编辑',
create: '新增',
},
dialogStatus: 'create',
/**
* queue,配置与参数
*/
queue_config: {
// 用户信息列表
userInfoList: [],
// 级联显示
cascade: {
// 服务器及虚拟主机列表
server_hostList: [],
defaultParams: {
label: 'aliasName',
value: 'id',
children: 'aliasList'
}
},
},
/**
* queue,搜索参数
*/
queue_queryInfo: {
filter: '',
// 当前页数
pageNum: 1,
// 每页条数
pageSize: 10
},
/**
* queue,分页
*/
queue_page: {
// 队列列表
queueList: [],
// 总条数
total: 0,
// 批量删除,选中列表
selectList: [],
},
/**
* queue,新增表单
*/
queue_addForm: {
// 队列名称
queueName: '',
consumerGroupName: '',
partitionCount: 3,
queueType: 1,
// 用户名称
username: '',
// 用户id(该字段抛弃)
userId: '',
// 所属虚拟机id
virtualHostId: '',
// 是否持久化,默认 true
durability: '',
// 是否自动删除,默认 false
autoDelete: '',
// 扩展参数,以JSON格式存储
arguments: '',
// 相关描述
description: '',
},
/**
* queue,编辑表单
*/
queue_editForm: {},
/**
* queue,加载
*/
queue_loading: {
// 列表加载
listLoading: false,
// 添加加载
addLoading: false,
// 编辑加载
editLoading: false,
// 删除加载
delLoading: false,
// 批量删除加载
batchDelLoading: false,
},
/**
* queue,对话框管理
*/
queue_dialog: {
// 添加对话框
addDialog: false,
// 编辑对话框
editDialog: false,
},
/**
* queue,添加表单,验证规则
*/
queue_addFormRules: {
// 队列名称
queueName: [
{required: true, message: '请输入队列名称', trigger: ['blur', 'change']},
],
// 用户名称
username: [
{required: true, message: '请输入用户名称', trigger: ['blur', 'change']},
],
// // 所属虚拟机id
// virtualHostId: [
// {required: true, message: '请选择所属虚拟机', trigger: ['blur', 'change']},
// ],
// // 是否持久化,默认 true
// durability: [
// {required: true, message: '请选择是否持久化', trigger: ['blur', 'change']},
// ],
// // 是否自动删除,默认 false
// autoDelete: [
// {required: true, message: '请选择是否自动删除', trigger: ['blur', 'change']},
// ],
// // 扩展参数,以JSON格式存储
// arguments: [
// {required: true, message: '扩展参数', trigger: ['blur', 'change']},
// ],
// // 相关描述
// description: [
// {required: true, message: '请输入相关描述', trigger: ['blur', 'change']},
// ],
},
/**
* queue,编辑表单,验证规则
*/
queue_editFormRules: {
// 队列名称
queueName: [
{required: true, message: '请输入队列名称', trigger: ['blur', 'change']},
],
// 用户名称
username: [
{required: true, message: '请输入用户名称', trigger: ['blur', 'change']},
],
// // 所属虚拟机id
// virtualHostId: [
// {required: true, message: '请选择所属虚拟机', trigger: ['blur', 'change']},
// ],
// // 是否持久化,默认 true
// durability: [
// {required: true, message: '请选择是否持久化', trigger: ['blur', 'change']},
// ],
// // 是否自动删除,默认 false
// autoDelete: [
// {required: true, message: '请选择是否自动删除', trigger: ['blur', 'change']},
// ],
// // 扩展参数,以JSON格式存储
// arguments: [
// {required: true, message: '扩展参数', trigger: ['blur', 'change']},
// ],
// // 相关描述
// description: [
// {required: true, message: '请输入相关描述', trigger: ['blur', 'change']},
// ],
},
/**
* Boolean属性,选择列表
*/
booleanList: [
{
value: true,
label: '是'
},
{
value: false,
label: '否'
},
],
}
},
methods: {
/**
* 从user获取选择的用户信息
*/
getUserInfo:function(userListInfo){
let userList = [];
userList = userListInfo;
if (userList.length>0){
let user = userList.pop();
this.queue_addForm.username = user.username;
this.queue_addForm.queueName = user.username;
this.queue_addForm.userId = user.userId;
this.queue_addForm.consumerGroupName = user.username+"Group";
}
},
/**
* 分页查询,监听 pageSize 改变的事件
*/
queue_handleSizeChange(newSize) {
this.queue_queryInfo.pageSize = newSize;
//刷新列表
this.queue_getList();
},
/**
* 分页查询,监听 pageNum 改变的事件
*/
queue_handleCurrentChange(newPage) {
this.queue_queryInfo.pageNum = newPage;
//刷新列表
this.queue_getList();
},
queue_getListSub(){
this.queue_queryInfo.pageNum= 1;
this.queue_getList();
},
/**
* queue,分页查询
*/
queue_getList() {
// 开启加载
this.queue_loading.listLoading = true;
api_getReceiverFileter(this.queue_queryInfo).then((response) => {
let res = response.data;
if (res.code !== '200') {
// 关闭加载
this.queue_loading.listLoading = false;
return this.$message.error(res.msg);
}
// 获取列表数据
this.queue_page.queueList = res.data.list;
// 获取列表的总记录数
this.queue_page.total = res.data.total;
// 关闭加载
this.queue_loading.listLoading = false;
this.$message.success(res.msg);
}).catch(error => {
// 关闭加载
this.queue_loading.listLoading = false;
this.$message.error(error.toString());
});
},
/**
* queue,添加对话框,打开事件
*/
queue_toAddDialog() {
this.queue_addForm = {
// 队列名称
queueName: '',
consumerGroupName: '',
partitionCount: 3,
queueType: 1,
// 用户名称
username: '',
// 用户id(该字段抛弃)
userId: '',
// 所属虚拟机id
virtualHostId: '',
// 是否持久化,默认 true
durability: '',
// 是否自动删除,默认 false
autoDelete: '',
// 扩展参数,以JSON格式存储
arguments: '',
// 相关描述
description: '',
};
this.dialogStatus= 'create';
this.queue_dialog.addDialog = true;
},
/**
* queue,添加对话框,关闭事件
*/
queue_addDialogClosed() {
// 重置对话框
this.$refs.queue_addFormRef.resetFields();
},
/**
* queue,添加功能
*/
queue_add() {
// 进行表单的预验证
this.$refs.queue_addFormRef.validate(valid => {
// 未通过,表单预校验
if (!valid) return;
// 通过,表单预检验,开启加载
this.queue_loading.addLoading = true;
insertBusQueue(this.queue_addForm).then((response) => {
let res = response.data;
// 添加失败
if (res.code !== '200') {
// 关闭加载
this.queue_loading.addLoading = false;
return this.$message.error(res.msg);
}
// 添加,成功
this.$message.success(res.msg);
// 关闭加载
this.queue_loading.addLoading = false;
// 隐藏对话框
this.queue_dialog.addDialog = false;
// 刷新列表
this.queue_getList();
}).catch(error => {
// 关闭加载
this.queue_loading.addLoading = false;
this.$message.error(error.toString());
});
})
},
/**
* queue,编辑对话框,打开事件
*/
queue_toEditDialog(index, row) {
this.queue_addForm = Object.assign({}, row);
this.queue_dialog.addDialog = true;
this.dialogStatus= 'update';
},
/**
* queue,编辑对话框,关闭事件
*/
queue_editDialogClosed() {
//重置对话框
this.$refs.queue_editFormRef.resetFields();
},
/**
* queue,编辑功能
*/
queue_edit() {
//进行表单的预验证
this.$refs.queue_addFormRef.validate(valid => {
// 未通过,表单预校验
if (!valid) return;
// 通过,表单预检验,开启加载
this.queue_loading.editLoading = true;
updateBusQueue(this.queue_addForm).then((response) => {
let res = response.data;
if (res.code !== '200') {
//关闭加载
this.queue_loading.addLoading = false;
return this.$message.error(res.msg);
}
// 关闭加载
this.queue_loading.addLoading = false;
this.$message.success(res.msg);
// 隐藏对话框
this.queue_dialog.addDialog = false;
// 刷新列表
this.queue_getList();
}).catch(error => {
// 关闭加载
this.queue_loading.addLoading = false;
this.$message.error(error.toString());
});
})
},
/**
* queue,删除功能
*/
queue_remove(index, row) {
// 弹框询问是否删除?
this.$confirm('此操作永久删除该队列信息, 是否继续?', '警告', {
confirmButtonText: '确定删除',
cancelButtonText: '取消',
type: 'warning'
}
).then(() => {
// 开启加载
this.queue_loading.delLoading = true;
deleteBusQueue(row).then((response) => {
let res = response.data;
if (res.code !== '200') {
// 关闭加载
this.queue_loading.delLoading = false;
return this.$message.error(res.msg);
}
// 关闭加载
this.queue_loading.delLoading = false;
this.$message.success(res.msg);
// 刷新列表
this.queue_getList();
}).catch(error => {
// 关闭加载
this.queue_loading.delLoading = false;
this.$message.error(error.toString());
});
}).catch(() => {
});
},
/**
* queue,批量删除---选中
*/
queue_selectChange: function (selectList) {
this.$emit("getQueueListEvent",selectList);
this.queue_page.selectList = selectList;
},
/**
* queue,批量删除功能
*/
queue_batchRemove() {
const ids = this.queue_page.selectList.map(item => item.id).toString();
this.$confirm('此操作将永久删除选中的队列信息, 是否继续?', '警告', {
confirmButtonText: '确定删除',
cancelButtonText: '取消',
type: 'warning'
}
).then(() => {
// 开启加载
this.queue_loading.listLoading = true;
let params = {ids: ids};
batchRemoveBusQueue(params).then(response => {
let res = response.data;
if (res.code !== '200') {
// 关闭加载
this.queue_loading.listLoading = false;
return this.$message.error(res.msg);
}
this.$message.success(res.msg);
// 关闭加载
this.queue_loading.listLoading = false;
// 刷新列表
this.queue_getList();
}).catch(error => {
// 关闭加载
this.queue_loading.listLoading = false;
this.$message.error(error.toString());
});
}).catch(() => {
});
},
/**
* 服务器与虚拟主机 1:n
* 获取列表
*/
selectServerAndHostList() {
getServerAndHostList().then((response) => {
let res = response.data;
if (res.code !== '200') {
return this.$message.error(res.msg);
}
// 获取列表数据
this.queue_config.cascade.server_hostList = res.data;
// this.$message.success('获取虚拟主机列表,成功!');
}).catch(error => {
this.$message.error(error.toString());
});
},
/**
* 查询,级联。值改变激发的方法
* @param value 改变后的值
*/
cascadeQueryChange(value) {
let ids = value.join().split(",");
this.queue_queryInfo.virtualHostId = ids[ids.length - 1];
},
/**
* 添加,级联。值改变激发的方法
* @param value 改变后的值
*/
cascadeAddChange(value) {
let ids = value.join().split(",");
this.queue_addForm.virtualHostId = ids[ids.length - 1];
},
/**
* 编辑,级联。值改变激发的方法
* @param value 改变后的值
*/
cascadeEditChange(value) {
let ids = value.join().split(",");
this.queue_editForm.virtualHostId = ids[ids.length - 1];
},
/**
* 获取所有用户的信息
*/
queue_getUserInfoList() {
getUserInfoList().then((response) => {
let res = response.data;
if (res.code !== '200') {
return this.$message.error(res.msg);
}
// 获取列表数据
this.queue_config.userInfoList = res.data;
}).catch(error => {
this.$message.error(error.toString());
});
},
},
created() {
if (this.$route.params.virtualHost_scopeRow !== undefined) {
// 参数,虚拟主机id
this.queue_queryInfo.virtualHostId = this.$route.params.virtualHost_scopeRow.id;
// 刷新列表
this.queue_getList();
} else {
// 刷新列表
// this.queue_getList();
}
},
mounted() {
this.selectServerAndHostList();
this.queue_getUserInfoList();
},
computed: {},
}
</script>
<style scoped>
</style>
... ...
... ... @@ -443,7 +443,7 @@
},
mounted() {
this.getUsers();
this.selectUserRelation();
// this.selectUserRelation();
},
computed: {
hideShow() {//当图片多于一张的时候,就隐藏上传框
... ...