切换导航条
此项目
正在载入...
登录
朱兆平
/
vue_cli
·
提交
转到一个项目
GitLab
转到仪表盘
项目
活动
文件
提交
管道
0
构建
0
图表
里程碑
问题
0
合并请求
0
成员
标记
维基
派生
网络
创建新的问题
下载为
邮件补丁
差异文件
浏览文件
作者
朱兆平
4 years ago
提交
362414c8eb4d65c3545666d5c62a3d7b0033fadd
1 个父辈
7bd696dc
多式联运电子运单es消息管理更新,对接多式联运用户列表
隐藏空白字符变更
内嵌
并排对比
正在显示
6 个修改的文件
包含
515 行增加
和
27 行删除
src/components/TabMenu/index.vue
src/views/bus/MessageNote.vue
src/views/bus/MessageNoteSearch.vue
src/views/bus/Queue.vue
src/views/bus/dsly/api/user.js
src/views/bus/dsly/user.vue
src/components/TabMenu/index.vue
查看文件 @
362414c
<template>
<div style="width: 100%">
<div style="width: 100%
;overflow-y:scroll;
">
<Assembly></Assembly>
...
...
src/views/bus/MessageNote.vue
查看文件 @
362414c
...
...
@@ -103,21 +103,21 @@
element-loading-text="获取消息收发记录,拼命加载中"
:header-cell-style="{background:'#6F8294',color:'#FFFFFF'}"
style="border-radius: 10px 10px 0px 0px;line-height: 25px;">
<el-table-column label="消息ID" prop="msgid" align="center" width="120"></el-table-column>
<el-table-column label="消息序号" prop="seqn" align="center" width="130"></el-table-column>
<el-table-column label="发送者" prop="sndr" align="center" width="100"></el-table-column>
<el-table-column label="消息ID" prop="admin.msgid" align="center" width="120"></el-table-column>
<el-table-column label="消息序号" prop="msg.header.seqno" align="center" width="130"></el-table-column>
<el-table-column label="发送者" prop="msg.header.sndr" align="center" width="100"></el-table-column>
<!-- <el-table-column label="发送内容" prop="msg" align="center" width="220"></el-table-column>-->
<el-table-column label="消息大类" prop="btype" align="center" width="80"></el-table-column>
<el-table-column label="消息子类" prop="stype" align="center" width="80"></el-table-column>
<el-table-column label="消息发送时间" prop="ddtm" align="center" width="150"></el-table-column>
<el-table-column label="路由接收者" prop="rcvrs" align="center" width="120">
<el-table-column label="消息大类" prop="msg.header.type" align="center" width="80"></el-table-column>
<el-table-column label="消息子类" prop="msg.header.stype" align="center" width="80"></el-table-column>
<el-table-column label="消息发送时间" prop="msg.header.ddtm" align="center" width="150"></el-table-column>
<el-table-column label="路由接收者" prop="admin.rcvrs" align="center" width="120">
<template slot-scope="scope">
<div v-for="reciver in scope.row.
rcvrs">{{reciver.username
}}</div>
<div v-for="reciver in scope.row.
admin.rcvrs">{{reciver.user
}}</div>
</template>
</el-table-column>
<el-table-column label="消息接收者" prop="rcvlog" align="center" width="300">
<el-table-column label="消息接收者" prop="
admin.
rcvlog" align="center" width="300">
<template slot-scope="scope">
<div v-for="logitem in scope.row.
rcvlog">{{logitem.username
}} [{{logitem.rvtm}}]</div>
<div v-for="logitem in scope.row.
admin.rcvlog">{{logitem.user
}} [{{logitem.rvtm}}]</div>
</template>
</el-table-column>
<!-- <el-table-column label="相关描述" prop="description" align="center" width="220"></el-table-column>-->
...
...
@@ -463,7 +463,7 @@
<el-form :inline="true" label-width="120px" status-icon style="margin-top: -10px" align="center"
:model="messageNote_viewContentForm" :rules="messageNote_viewContentFormRules" ref="messageNote_viewContentFormRef">
<el-form-item label="消息内容:" prop="alias_sendContent">
<el-input v-model="messageNote_viewContentForm.
alias_sendContent
"
<el-input v-model="messageNote_viewContentForm.
msg.body
"
v-if="isViewContent === false"
style="width:800px" size="small" placeholder="消息内容"
clearable type="textarea" :rows="20">
...
...
@@ -656,7 +656,12 @@
/**
* 发送内容,表单
*/
messageNote_viewContentForm: {},
messageNote_viewContentForm: {
msg:{
body:""
},
admin:{}
},
/**
* 发送内容,格式化之后
...
...
src/views/bus/MessageNoteSearch.vue
查看文件 @
362414c
...
...
@@ -22,41 +22,41 @@
<el-row>
<el-col :span="7">
<span>消息id:</span>
<el-tag>{{item.msgid}}</el-tag>
<el-tag>{{item.
admin.
msgid}}</el-tag>
</el-col>
<el-col :span="8">
<span>发送时间:</span>
<el-tag>{{item.ddtm}}</el-tag>
<el-tag>{{item.
msg.header.
ddtm}}</el-tag>
</el-col>
</el-row>
<el-row>
<el-col :span="7">
<span>发送人:</span>
<el-tag>{{item.sndr}}</el-tag>
<el-tag>{{item.
msg.header.
sndr}}</el-tag>
</el-col>
<el-col :span="3">
<span>消息大类:</span>
<el-tag type="success">{{item.
b
type}}</el-tag>
<el-tag type="success">{{item.
msg.header.
type}}</el-tag>
</el-col>
<el-col :span="3">
<span>消息子类:</span>
<el-tag type="success">{{item.stype}}</el-tag>
<el-tag type="success">{{item.
msg.header.
stype}}</el-tag>
</el-col>
<el-col :span="4">
<div>
<span>路由接收者:</span>
</div>
<template v-for="reciver in item.rcvrs">
<el-tag type="danger">{{reciver.username}}</el-tag>
<template v-for="reciver in item.admin.rcvrs">
<el-tag type="danger">{{reciver.user}}</el-tag>
</template>
</el-col>
<el-col :span="4">
<div>
<span >消息接收者:</span>
</div>
<template v-for="logitem in item.rcvlog">
<el-tag type="warning">{{logitem.username}} [{{logitem.rvtm}}]</el-tag>
<template v-for="logitem in item.admin.rcvlog">
<el-tag type="warning">{{logitem.user}} [{{logitem.rvtm}}]</el-tag>
</template>
</el-col>
</el-row>
...
...
@@ -68,7 +68,7 @@
</el-button>
</el-col>
<el-col style="width: 45%;margin-left: -10px" :span="14">
<el-input v-model="item.msg" readonly type="textarea" :rows="3"></el-input>
<el-input v-model="item.msg
.body
" readonly type="textarea" :rows="3"></el-input>
</el-col>
</el-row>
<el-row>
...
...
@@ -106,7 +106,7 @@
<el-form :inline="true" label-width="120px" status-icon style="margin-top: -10px" align="center"
:model="messageNote_viewContentForm" ref="messageNote_viewContentFormRef">
<el-form-item label="消息内容:" prop="alias_sendContent">
<el-input v-model="messageNote_viewContentForm.msg" v-if="isViewContent === false"
<el-input v-model="messageNote_viewContentForm.msg
.body
" v-if="isViewContent === false"
style="width:1000px" type="textarea" :rows="8">
</el-input>
<el-input v-model="xml_content" v-if="isViewContent === true"
...
...
@@ -116,7 +116,7 @@
</el-form>
<div slot="footer" class="dialog-footer" style="text-align: center;margin-top: -20px">
<el-button type="success" @click="xml_format(messageNote_viewContentForm.msg)" size="medium"
<el-button type="success" @click="xml_format(messageNote_viewContentForm.msg
.body
)" size="medium"
style="width: 100px">xml格式化
</el-button>
...
...
@@ -185,7 +185,12 @@
/**
* 发送内容,表单
*/
messageNote_viewContentForm: {},
messageNote_viewContentForm: {
msg:{
body:""
},
admin:{}
},
}
},
methods: {
...
...
src/views/bus/Queue.vue
查看文件 @
362414c
...
...
@@ -192,7 +192,7 @@
getServerAndHostList, getUserInfoList,
} from "../../api/message_bus";
import User from "@/views/
nav1
/user";
import User from "@/views/
bus/dsly
/user";
export default {
name: "Queue",
...
...
src/views/bus/dsly/api/user.js
0 → 100644
查看文件 @
362414c
import
http
from
'./http.js'
let
baseUrl
=
'/zz-system/user'
export
const
getUserList
=
params
=>
{
return
http
.
get
(
`
$
{
baseUrl
}
/list`, params
)
; }
;
export
const
getUserListPage
=
params
=>
{
return
http
.
get
(
`
/
user
/
list
`
,
params
)
};
export
const
removeUser
=
params
=>
{
return
http
.
del
(
`
$
{
baseUrl
}
/del`,params
)
}
;
export
const
batchRemoveUser
=
params
=>
{
return
http
.
del
(
`
$
{
baseUrl
}
/batchremove`, { params: params }
)
; }
;
export
const
editPass
=
params
=>
{
return
http
.
put
(
`
$
{
baseUrl
}
/password`,params
)
}
;
export
const
editUser
=
params
=>
{
return
http
.
put
(
`
$
{
baseUrl
}
/edit`,params
)
}
;
export
const
addUser
=
params
=>
{
return
http
.
post
(
`
$
{
baseUrl
}
/add`,params
)
}
;
export
const
setUserRole
=
params
=>
{
return
http
.
put
(
`
$
{
baseUrl
}
/roleset`,params
)
}
;
export
const
resetToken
=
params
=>
{
return
http
.
put
(
`
$
{
baseUrl
}
/resetToken`,params
)
}
;
...
...
src/views/bus/dsly/user.vue
0 → 100755
查看文件 @
362414c
<template>
<section>
<!--工具条-->
<el-col :span="24" class="toolbar" style="padding-bottom: 0px;">
<el-form :inline="true" :model="filters">
<el-form-item>
<el-input v-model="filters.account" placeholder="姓名"></el-input>
</el-form-item>
<el-form-item>
<el-input v-model="filters.name" placeholder="账号"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" v-on:click="getUsers">查询</el-button>
</el-form-item>
</el-form>
</el-col>
<!--列表-->
<el-table :data="users" highlight-current-row border v-loading="listLoading" @selection-change="selsChange"
style="width: 100%;">
<el-table-column type="selection" width="55" align="center">
</el-table-column>
<!--<el-table-column type="index" width="60">-->
<!--</el-table-column>-->
<el-table-column prop="id" label="ID" width="100" align="center" sortable>
</el-table-column>
<el-table-column prop="account" label="账号" width="120" align="center" sortable>
</el-table-column>
<el-table-column prop="name" label="姓名" width="120" align="center" sortable>
</el-table-column>
<el-table-column prop="sex" label="性别" width="100" :formatter="formatSex" align="center" sortable>
</el-table-column>
<el-table-column prop="phone" label="电话" width="130" align="center">
</el-table-column>
<el-table-column prop="createTime" label="创建时间" width="175" align="center" sortable>
</el-table-column>
<el-table-column prop="status" label="启用" width="100" :formatter="formatState" align="center" sortable>
</el-table-column>
</el-table>
<!--工具条-->
<el-col :span="24" class="toolbar">
<el-pagination layout="total, prev, pager, next" @current-change="handleCurrentChange" :page-size="10"
:total="total" style="float:right;">
</el-pagination>
</el-col>
</section>
</template>
<script>
import util from '../../common/js/util'
import NProgress from 'nprogress'
import {getUserList, removeUser, batchRemoveUser, editUser, addUser, setUserRole} from 'api/user';
import {getList} from '../../api/role_api';
import moment from 'moment'
import {getServerAndHostList, insertUserInfo} from "../../api/message_bus";
export default {
name:"UserList",
data() {
return {
user_config: {
server_hostList: [],
defaultParams: {
label: 'aliasName',
children: 'aliasList'
}
},
filters: {
account: '',
name: ''
},
treeDefaultProps: {
children: 'children',
label: 'roleName',
},
users: [],
total: 0,
pageNum: 1,
pageSize: 10,
faceImageUrl: '',
listLoading: false,
sels: [],//列表选中列
//编辑界面是否显示
editFormVisible: false,
editLoading: false,
editFormRules: {
name: [
{required: true, message: '请输入姓名', trigger: 'blur'}
],
mobilephone: [
{required: true, message: '请输入手机号码', trigger: ['blur', 'change']}
]
},
//编辑界面数据
editForm: {
userId: 1,
username: '',
password: '',
sex: '1',
creattime: undefined,
address: '',
realname: '',
email: '',
mobilephone: '',
state: true
},
addFormVisible: false,//新增界面是否显示
addLoading: false,
addFormRules: {
username: [
{required: true, message: '请输入姓名,用户名长度在5-11位,支持英文和数字', trigger: 'blur'},
],
password: [
{required: true, message: '请输入密码,用户名长度在6-18位,支持英文和数字和非空字符', trigger: 'blur'}
],
mobilephone: [
{required: true, message: '请输入手机号码', trigger: ['blur', 'change']},
],
virtualHostId: [
{required: true, message: '请选择虚拟主机', trigger: ['blur', 'change']},
],
serverId: [
{required: true, message: '请选择服务器', trigger: ['blur', 'change']},
],
},
//用户角色配置
roleFormVisible: false,
//新增界面数据
addForm: {
username: '',
password: '',
sex: 1,
address: '',
realname: '',
email: '',
mobilephone: '',
age: 1,
virtualHostId: '',
serverId: '',
},
roleEditForm: {
userId: 1,
username: "",
roles: []
},
roles: [],
roleIds: []
}
},
methods: {
// 性别显示转换
formatSex: function (row, column) {
return row.sex == 1 ? '男' : row.sex == 0 ? '女' : '未知';
},
formatState: function (row, column) {
return row.state == true ? '是' : row.state == false ? '否' : '未知';
},
handleCurrentChange(val) {
this.pageNum = val;
this.getUsers();
},
// 获取用户列表
getUsers: function () {
let para = {
pageNo: this.pageNum,
pageSize: this.pageSize,
account: this.filters.account,
name: this.filters.name
};
this.listLoading = true;
getUserList(para).then((res) => {
let response = res.data;
this.total = response.totalCount;
this.users = response.data;
this.listLoading = false;
//NProgress.done();
}).catch((error) => {
this.listLoading = false;
this.$message.error(error.toString());
});
},
//删除
handleDel: function (index, row) {
this.$confirm('确认删除该记录吗?', '提示', {
type: 'warning'
}).then(() => {
this.listLoading = true;
//NProgress.start();
let para = {userId: row.userId};
removeUser(para).then((res) => {
this.listLoading = false;
//NProgress.done();
this.$message({
message: '删除成功',
type: 'success'
});
this.getUsers();
}).catch((error) => {
this.listLoading = false;
alert(error);
});
}).catch();
},
/**
* 显示编辑界面
* @param index
* @param row 为这行的数据对象
*/
handleEdit: function (index, row) {
this.editFormVisible = true;
this.editForm = Object.assign({}, row);
},
roleEdit: function (index, row) {
this.roleFormVisible = true;
this.getRoles();
var _this = this;
_this.roleIds = [];
this.roleEditForm = Object.assign({}, row);
let roles = this.roleEditForm.roles;
if (util.checkNull(roles)) {
roles.forEach(function (role, v_index, v_arr) {
if (util.checkNull(role)) {
_this.roleIds[v_index] = role.roleId;
}
});
}
this.$nextTick(() => {
//反向适配
this.$refs.tree.setCheckedKeys(this.roleIds);
});
},
getRoles() {
let para = {
pageNum: 1,
pageSize: 100
};
NProgress.start();
getList(para).then((res) => {
this.roles = res.data.list;
NProgress.done();
}).catch((error) => {
if (null != error.response && error.response !== undefined) {
let status = error.response.status;
let msg = error.response.statusText;
alert(status + msg);
} else {
alert(error);
}
});
},
//显示新增界面,每次点开初始化数据
handleAdd: function () {
this.addFormVisible = true;
this.addForm = {
username: '',
password: '',
sex: 1,
address: '',
realname: '',
email: '',
mobilephone: '',
age: 1,
virtualHostId: '',
serverId: '',
};
},
//编辑
editSubmit: function () {
this.$refs.editForm.validate((valid) => {
if (valid) {
this.$confirm('确认提交吗?', '提示', {}).then(() => {
this.editLoading = true;
//NProgress.start();
// let para = Object.assign({}, this.editForm);
//不需要提交的 去掉,后端不好接收
this.editForm.authorities = null;
this.editForm.permissions = null;
this.editForm.roles = null;
// para.birth = (!para.birth || para.birth == '') ? '' : util.formatDate.format(new Date(para.birth), 'yyyy-MM-dd');
/*
查询之后格式this.filters.column.create_start_date中日期发生变化;
Wed Aug 09 2017 00:00:00 GMT+0800 (中国标准时间) 变成了 "2017-08-08T16:00:00.000Z";
所以使用 moment 日期格式化插件将时间转换成 [ Wed Aug 09 2017 00:00:00 GMT+0800 (中国标准时间) ] 格
式;
*/
/*moment 安装 npm install moment --save*/
// para.creattime = moment(para.creattime).format('YYYY-MM-DD HH:mm:ss');
this.editLoading = false;
editUser(this.editForm).then((res) => {
//NProgress.done();
this.$message({
message: '提交成功',
type: 'success'
});
this.$refs['editForm'].resetFields();
this.editFormVisible = false;
this.getUsers();
}).catch(error => alert(error));
});
}
});
},
//新增
addSubmit: function () {
this.$refs.addForm.validate((valid) => {
if (valid) {
this.$confirm('确认提交吗?', '提示', {}).then(() => {
this.addLoading = true;
let para = Object.assign({}, this.addForm);
// para.birth = (!para.birth || para.birth == '') ? '' : util.formatDate.format(new Date(para.birth), 'yyyy-MM-dd');
// 添加MQ用户信息
this.addForm.virtualHostId = this.$refs.tree.getCheckedKeys().join();
const params = {
username: this.addForm.username,
password: this.addForm.password,
realName: this.addForm.realname,
virtualHostId: this.addForm.virtualHostId,
}
insertUserInfo(params).then((response) => {
let res = response.data;
// 添加失败
if (res.code !== '200') {
return this.$message.error("MQ:" + res.msg);
}
// 添加,成功
this.$message.success('添加MQ用戶信息,成功');
}).catch(error => {
this.$message.error(error.toString());
});
addUser(para).then((res) => {
this.addLoading = false;
//NProgress.done();
this.$message({
message: '提交成功',
type: 'success'
});
this.$refs['addForm'].resetFields();
this.addFormVisible = false;
this.getUsers();
}).catch(error => {
this.addLoading = false;
this.$message({
message: error.message,
type: 'error'
});
});
});
}
});
},
selsChange: function (sels) {
//传递给父组件
this.$emit("getUserMessageEvent",sels);
this.sels = sels;
},
//批量删除
batchRemove: function () {
var ids = this.sels.map(item => item.userId).toString();
this.$confirm('确认删除选中记录吗?', '提示', {
type: 'warning'
}).then(() => {
this.listLoading = true;
//NProgress.start();
let para = {ids: ids};
batchRemoveUser(para).then((res) => {
this.listLoading = false;
//NProgress.done();
this.$message({
message: '删除成功',
type: 'success'
});
this.getUsers();
});
}).catch(() => {
});
},
roleEditSubmit: function () {
this.$confirm('确认提交吗?', '提示', {}).then(() => {
// this.editLoading = true;
let userId = this.roleEditForm.userId;
let roleIds = this.$refs.tree.getCheckedKeys();
let para = {userId, roleIds};
setUserRole(para).then((res) => {
if (res.status === 200) {
this.$message({
message: '岗位设置成功',
type: 'success'
});
}
this.getUsers();
this.roleFormVisible = false;
}).catch(err => {
alert(err);
});
console.log(para);
});
},
handleAvatarSuccess: function (response) {
this.faceImageUrl = 'http://127.0.0.1:7003/' + response.data;
},
beforeAvatarUpload: function () {
},
treeHandleCheckChange: function (data, checked, indeterminate) {
if (checked) {
this.roleIds.push(data.roleId);
} else {
this.roleIds.splice(this.roleIds.contains(data.roleId), 1);
}
// console.log(data, checked, indeterminate);
console.log(this.roleIds);
},
/**
* 选择用户关系
* MQ服务器与虚拟主机(1:n)的列表
*/
selectUserRelation() {
getServerAndHostList().then((response) => {
let res = response.data;
if (res.code !== '200') {
return this.$message.error('获取服务器与虚拟主机信息,失败!');
}
// 获取列表数据
this.user_config.server_hostList = res.data;
}).catch(error => {
this.$message.error(error.toString());
});
},
},
mounted() {
this.getUsers();
this.selectUserRelation();
},
computed: {
hideShow() {//当图片多于一张的时候,就隐藏上传框
return this.file === '' ? false : true
}
},
}
</script>
<style scoped>
</style>
...
...
请
注册
或
登录
后发表评论