|
@@ -1,491 +1,664 @@
|
|
-/**
|
|
|
|
- * 系统管理 角色管理
|
|
|
|
- */
|
|
|
|
<template>
|
|
<template>
|
|
<div>
|
|
<div>
|
|
<!-- 面包屑导航 -->
|
|
<!-- 面包屑导航 -->
|
|
<el-breadcrumb separator-class="el-icon-arrow-right">
|
|
<el-breadcrumb separator-class="el-icon-arrow-right">
|
|
<el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
|
|
<el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
|
|
- <el-breadcrumb-item>角色管理</el-breadcrumb-item>
|
|
|
|
|
|
+ <el-breadcrumb-item>用户管理</el-breadcrumb-item>
|
|
</el-breadcrumb>
|
|
</el-breadcrumb>
|
|
<!-- 搜索筛选 -->
|
|
<!-- 搜索筛选 -->
|
|
<el-form :inline="true" :model="formInline" class="user-search">
|
|
<el-form :inline="true" :model="formInline" class="user-search">
|
|
-
|
|
|
|
<el-form-item label="搜索:">
|
|
<el-form-item label="搜索:">
|
|
- <el-input size="small" v-model="formInline.roleName" placeholder="输入角色名称"></el-input>
|
|
|
|
|
|
+ <el-select size="small" v-model="formInline.isLock" placeholder="请选择">
|
|
|
|
+ <el-option label="全部" value></el-option>
|
|
|
|
+ <el-option label="正常" value="N"></el-option>
|
|
|
|
+ <el-option label="已锁定" value="Y"></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label>
|
|
|
|
+ <el-input size="small" v-model="formInline.userName" placeholder="输入用户名"></el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="">
|
|
|
|
- <el-input size="small" v-model="formInline.roleNo" placeholder="输入角色代码"></el-input>
|
|
|
|
|
|
+ <el-form-item label>
|
|
|
|
+ <el-input size="small" v-model="formInline.userMobile" placeholder="输入手机号"></el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item>
|
|
<el-form-item>
|
|
<el-button size="small" type="primary" icon="el-icon-search" @click="search">搜索</el-button>
|
|
<el-button size="small" type="primary" icon="el-icon-search" @click="search">搜索</el-button>
|
|
<el-button size="small" type="primary" icon="el-icon-plus" @click="handleEdit()">添加</el-button>
|
|
<el-button size="small" type="primary" icon="el-icon-plus" @click="handleEdit()">添加</el-button>
|
|
|
|
+ <el-button size="small" type="primary" @click="handleunit()">部门设置</el-button>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-form>
|
|
</el-form>
|
|
<!--列表-->
|
|
<!--列表-->
|
|
- <el-table size="small" :data="listData" highlight-current-row v-loading="loading" border element-loading-text="拼命加载中" style="width: 100%;">
|
|
|
|
- <el-table-column align="center" type="selection" width="60">
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column sortable prop="roleName" label="角色名称" width="300">
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column sortable prop="roleNo" label="角色代码" width="300">
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column sortable prop="editTime" label="修改时间" width="300">
|
|
|
|
|
|
+ <el-table
|
|
|
|
+ size="small"
|
|
|
|
+ @selection-change="selectChange"
|
|
|
|
+ :data="userData"
|
|
|
|
+ highlight-current-row
|
|
|
|
+ v-loading="loading"
|
|
|
|
+ border
|
|
|
|
+ element-loading-text="拼命加载中"
|
|
|
|
+ style="width: 100%;"
|
|
|
|
+ >
|
|
|
|
+ <el-table-column align="center" type="selection" width="50"></el-table-column>
|
|
|
|
+ <el-table-column align="center" sortable prop="id" label="编号"></el-table-column>
|
|
|
|
+ <el-table-column align="center" sortable prop="nickName" label="微信昵称"></el-table-column>
|
|
|
|
+ <el-table-column align="center" sortable prop="avatarUrl" label="微信头像">
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
- <div>{{scope.row.editTime|timestampToTime}}</div>
|
|
|
|
|
|
+ <div>
|
|
|
|
+ <img
|
|
|
|
+ :src="scope.row.avatarUrl || 'https://wx.qlogo.cn/mmopen/vi_32/mVaN1K0AibPTfTExvsR1wWeoM4vYGVHcEruMjx2z2uI1M40QoTppU36VwYYEsNKnjn4JMCqpRZQZyxwvrBR1ucA/132'"
|
|
|
|
+ style="border-radius:20px;width:60px"
|
|
|
|
+ />
|
|
|
|
+ </div>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
- <el-table-column sortable prop="editUser" label="修改人" width="300">
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column align="center" label="操作" min-width="300">
|
|
|
|
|
|
+ <el-table-column align="center" sortable prop="openid" label="openId"></el-table-column>
|
|
|
|
+ <el-table-column align="center" sortable prop="result" label="识别记录"></el-table-column>
|
|
|
|
+ <el-table-column align="center" sortable prop="time" label="登录时间"></el-table-column>
|
|
|
|
+ <el-table-column label="操作">
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
<el-button size="mini" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
|
|
<el-button size="mini" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
|
|
<el-button size="mini" type="danger" @click="deleteUser(scope.$index, scope.row)">删除</el-button>
|
|
<el-button size="mini" type="danger" @click="deleteUser(scope.$index, scope.row)">删除</el-button>
|
|
- <el-button size="mini" type="success" @click="menuAccess(scope.$index, scope.row)">菜单权限</el-button>
|
|
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
</el-table>
|
|
</el-table>
|
|
<!-- 分页组件 -->
|
|
<!-- 分页组件 -->
|
|
<Pagination v-bind:child-msg="pageparm" @callFather="callFather"></Pagination>
|
|
<Pagination v-bind:child-msg="pageparm" @callFather="callFather"></Pagination>
|
|
- <!-- 编辑界面 -->
|
|
|
|
- <el-dialog :title="title" :visible.sync="editFormVisible" width="30%" @click='closeDialog("edit")'>
|
|
|
|
- <el-form label-width="120px" :model="editForm" ref="editForm" :rules="rules">
|
|
|
|
- <el-form-item label="系统编码" prop="systemNo">
|
|
|
|
- <el-input size="small" v-model="editForm.systemNo" auto-complete="off" placeholder="请输入系统编码"></el-input>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="角色名称" prop="roleName">
|
|
|
|
- <el-input size="small" v-model="editForm.roleName" auto-complete="off" placeholder="请输入角色名称"></el-input>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="角色代码" prop="roleNo">
|
|
|
|
- <el-input size="small" v-model="editForm.roleNo" auto-complete="off" placeholder="请输入角色代码"></el-input>
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-form>
|
|
|
|
- <div slot="footer" class="dialog-footer">
|
|
|
|
- <el-button size="small" @click='closeDialog("edit")'>取消</el-button>
|
|
|
|
- <el-button size="small" type="primary" :loading="loading" class="title" @click="submitForm('editForm')">保存</el-button>
|
|
|
|
- </div>
|
|
|
|
- </el-dialog>
|
|
|
|
- <!-- 菜单权限 -->
|
|
|
|
- <el-dialog title="菜单权限" :visible.sync="menuAccessshow" width="30%" @click='closeDialog("perm")'>
|
|
|
|
- <el-tree ref="tree" default-expand-all="" :data="RoleRight" :props="RoleRightProps" :default-checked-keys="checkmenu" node-key="id" show-checkbox>
|
|
|
|
- </el-tree>
|
|
|
|
- <div slot="footer" class="dialog-footer">
|
|
|
|
- <el-button size="small" @click='closeDialog("perm")'>取消</el-button>
|
|
|
|
- <el-button size="small" type="primary" :loading="loading" class="title" @click="menuPermSave">保存</el-button>
|
|
|
|
- </div>
|
|
|
|
- </el-dialog>
|
|
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script>
|
|
<script>
|
|
|
|
+// 导入请求方法
|
|
import {
|
|
import {
|
|
- roleList,
|
|
|
|
- roleSave,
|
|
|
|
- roleDelete,
|
|
|
|
- rolePwd,
|
|
|
|
- RoleRightTree,
|
|
|
|
- RoleRightSave
|
|
|
|
-} from '../../api/userMG'
|
|
|
|
-import Pagination from '../../components/Pagination'
|
|
|
|
|
|
+ userList,
|
|
|
|
+ userSave,
|
|
|
|
+ userDelete,
|
|
|
|
+ userPwd,
|
|
|
|
+ userExpireToken,
|
|
|
|
+ userFlashCache,
|
|
|
|
+ userLock,
|
|
|
|
+ UserDeptTree,
|
|
|
|
+ UserDeptSave,
|
|
|
|
+ UserDeptdeptTree,
|
|
|
|
+ UserChangeDept
|
|
|
|
+} from "../../api/userMG";
|
|
|
|
+import Pagination from "../../components/Pagination";
|
|
export default {
|
|
export default {
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
nshow: true, //switch开启
|
|
nshow: true, //switch开启
|
|
fshow: false, //switch关闭
|
|
fshow: false, //switch关闭
|
|
loading: false, //是显示加载
|
|
loading: false, //是显示加载
|
|
|
|
+ title: "添加用户",
|
|
editFormVisible: false, //控制编辑页面显示与隐藏
|
|
editFormVisible: false, //控制编辑页面显示与隐藏
|
|
- menuAccessshow: false, //控制数据权限显示与隐藏
|
|
|
|
- title: '添加',
|
|
|
|
|
|
+ dataAccessshow: false, //控制数据权限显示与隐藏
|
|
|
|
+ unitAccessshow: false, //控制所属单位隐藏与显示
|
|
|
|
+ // 编辑与添加
|
|
editForm: {
|
|
editForm: {
|
|
- roleId: '',
|
|
|
|
- systemNo: '',
|
|
|
|
- roleNo: '',
|
|
|
|
- roleName: '',
|
|
|
|
- token: localStorage.getItem('logintoken')
|
|
|
|
|
|
+ userId: "",
|
|
|
|
+ userName: "",
|
|
|
|
+ userRealName: "",
|
|
|
|
+ roleId: "",
|
|
|
|
+ userMobile: "",
|
|
|
|
+ userEmail: "",
|
|
|
|
+ userSex: "",
|
|
|
|
+ token: localStorage.getItem("logintoken")
|
|
|
|
+ },
|
|
|
|
+ // 部门参数
|
|
|
|
+ unitparm: {
|
|
|
|
+ userIds: "",
|
|
|
|
+ deptId: "",
|
|
|
|
+ deptName: ""
|
|
},
|
|
},
|
|
- // rules 表单验证
|
|
|
|
|
|
+ // 选择数据
|
|
|
|
+ selectdata: [],
|
|
|
|
+ // rules表单验证
|
|
rules: {
|
|
rules: {
|
|
- systemNo: [
|
|
|
|
- { required: true, message: '请输入系统编码', trigger: 'blur' }
|
|
|
|
|
|
+ userName: [
|
|
|
|
+ { required: true, message: "请输入用户名", trigger: "blur" }
|
|
|
|
+ ],
|
|
|
|
+ userRealName: [
|
|
|
|
+ { required: true, message: "请输入姓名", trigger: "blur" }
|
|
|
|
+ ],
|
|
|
|
+ roleId: [{ required: true, message: "请选择角色", trigger: "blur" }],
|
|
|
|
+ userMobile: [
|
|
|
|
+ { required: true, message: "请输入手机号", trigger: "blur" },
|
|
|
|
+ {
|
|
|
|
+ pattern: /^1(3\d|47|5((?!4)\d)|7(0|1|[6-8])|8\d)\d{8,8}$/,
|
|
|
|
+ required: true,
|
|
|
|
+ message: "请输入正确的手机号",
|
|
|
|
+ trigger: "blur"
|
|
|
|
+ }
|
|
],
|
|
],
|
|
- roleNo: [
|
|
|
|
- { required: true, message: '请输入角色代码', trigger: 'blur' }
|
|
|
|
|
|
+ userEmail: [
|
|
|
|
+ { required: true, message: "请输入邮箱", trigger: "blur" },
|
|
|
|
+ {
|
|
|
|
+ pattern: /^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/,
|
|
|
|
+ required: true,
|
|
|
|
+ message: "请输入正确的邮箱",
|
|
|
|
+ trigger: "blur"
|
|
|
|
+ }
|
|
],
|
|
],
|
|
- roleName: [
|
|
|
|
- { required: true, message: '请输入角色名称', trigger: 'blur' }
|
|
|
|
- ]
|
|
|
|
|
|
+ userSex: [{ required: true, message: "请选择性别", trigger: "blur" }]
|
|
},
|
|
},
|
|
|
|
+ // 删除用户
|
|
|
|
+ seletedata: {
|
|
|
|
+ ids: "",
|
|
|
|
+ token: localStorage.getItem("logintoken")
|
|
|
|
+ },
|
|
|
|
+ // 重置密码
|
|
|
|
+ resetpsd: {
|
|
|
|
+ userId: "",
|
|
|
|
+ token: localStorage.getItem("logintoken")
|
|
|
|
+ },
|
|
|
|
+ // 用户下线
|
|
|
|
+ offline: {
|
|
|
|
+ token: localStorage.getItem("logintoken")
|
|
|
|
+ },
|
|
|
|
+ // 请求数据参数
|
|
formInline: {
|
|
formInline: {
|
|
page: 1,
|
|
page: 1,
|
|
limit: 10,
|
|
limit: 10,
|
|
- varLable: '',
|
|
|
|
- varName: '',
|
|
|
|
- token: localStorage.getItem('logintoken')
|
|
|
|
- },
|
|
|
|
- // 删除
|
|
|
|
- seletedata: {
|
|
|
|
- ids: '',
|
|
|
|
- token: localStorage.getItem('logintoken')
|
|
|
|
|
|
+ deptId: "",
|
|
|
|
+ userName: "",
|
|
|
|
+ userMobile: "",
|
|
|
|
+ isLock: ""
|
|
},
|
|
},
|
|
- userparm: [], //搜索权限
|
|
|
|
- listData: [], //用户数据
|
|
|
|
|
|
+ //用户数据
|
|
|
|
+ userData: [],
|
|
|
|
+ originList: [],
|
|
// 数据权限
|
|
// 数据权限
|
|
- RoleRight: [],
|
|
|
|
- RoleRightProps: {
|
|
|
|
- children: 'children',
|
|
|
|
- label: 'name'
|
|
|
|
|
|
+ UserDept: [],
|
|
|
|
+ defaultProps: {
|
|
|
|
+ children: "children",
|
|
|
|
+ label: "name"
|
|
},
|
|
},
|
|
// 选中
|
|
// 选中
|
|
checkmenu: [],
|
|
checkmenu: [],
|
|
//参数role
|
|
//参数role
|
|
- saveroleId: '',
|
|
|
|
|
|
+ saveroleId: "",
|
|
// 分页参数
|
|
// 分页参数
|
|
pageparm: {
|
|
pageparm: {
|
|
currentPage: 1,
|
|
currentPage: 1,
|
|
pageSize: 10,
|
|
pageSize: 10,
|
|
- total: 10
|
|
|
|
|
|
+ total: 0
|
|
}
|
|
}
|
|
- }
|
|
|
|
|
|
+ };
|
|
},
|
|
},
|
|
// 注册组件
|
|
// 注册组件
|
|
components: {
|
|
components: {
|
|
Pagination
|
|
Pagination
|
|
},
|
|
},
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 数据发生改变
|
|
* 数据发生改变
|
|
*/
|
|
*/
|
|
-
|
|
|
|
watch: {},
|
|
watch: {},
|
|
|
|
|
|
/**
|
|
/**
|
|
* 创建完毕
|
|
* 创建完毕
|
|
*/
|
|
*/
|
|
-
|
|
|
|
created() {
|
|
created() {
|
|
- this.getdata(this.formInline)
|
|
|
|
|
|
+ this.getdata();
|
|
},
|
|
},
|
|
|
|
|
|
/**
|
|
/**
|
|
* 里面的方法只有被调用才会执行
|
|
* 里面的方法只有被调用才会执行
|
|
*/
|
|
*/
|
|
-
|
|
|
|
methods: {
|
|
methods: {
|
|
- // 获取角色列表
|
|
|
|
|
|
+ // 获取数据方法
|
|
getdata(parameter) {
|
|
getdata(parameter) {
|
|
- // 模拟数据
|
|
|
|
- let res = {
|
|
|
|
- code: 0,
|
|
|
|
- msg: null,
|
|
|
|
- count: 6,
|
|
|
|
- data: [
|
|
|
|
- {
|
|
|
|
- addUser: 'root',
|
|
|
|
- editUser: 'root',
|
|
|
|
- addTime: 1519182004000,
|
|
|
|
- editTime: 1520288426000,
|
|
|
|
- roleId: 1,
|
|
|
|
- systemNo: 'pmd',
|
|
|
|
- roleNo: 'Administrator',
|
|
|
|
- roleName: '超级管理员'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- addUser: null,
|
|
|
|
- editUser: null,
|
|
|
|
- addTime: 1521111376000,
|
|
|
|
- editTime: 1520678191000,
|
|
|
|
- roleId: 2,
|
|
|
|
- systemNo: 'order',
|
|
|
|
- roleNo: 'admin',
|
|
|
|
- roleName: '公司管理员'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- addUser: null,
|
|
|
|
- editUser: null,
|
|
|
|
- addTime: 1520678221000,
|
|
|
|
- editTime: 1520678221000,
|
|
|
|
- roleId: 95,
|
|
|
|
- systemNo: 'pm',
|
|
|
|
- roleNo: 'common',
|
|
|
|
- roleName: '普通用户'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- addUser: null,
|
|
|
|
- editUser: null,
|
|
|
|
- addTime: 1526349853000,
|
|
|
|
- editTime: 1526349853000,
|
|
|
|
- roleId: 96,
|
|
|
|
- systemNo: '1',
|
|
|
|
- roleNo: '1',
|
|
|
|
- roleName: '1'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- addUser: null,
|
|
|
|
- editUser: null,
|
|
|
|
- addTime: 1526349942000,
|
|
|
|
- editTime: 1526437443000,
|
|
|
|
- roleId: 97,
|
|
|
|
- systemNo: '2',
|
|
|
|
- roleNo: '2',
|
|
|
|
- roleName: '2'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- addUser: null,
|
|
|
|
- editUser: null,
|
|
|
|
- addTime: 1526652148000,
|
|
|
|
- editTime: 1526652148000,
|
|
|
|
- roleId: 101,
|
|
|
|
- systemNo: 'test',
|
|
|
|
- roleNo: 'demo',
|
|
|
|
- roleName: '演示角色'
|
|
|
|
- }
|
|
|
|
- ]
|
|
|
|
- }
|
|
|
|
- this.loading = false
|
|
|
|
- this.listData = res.data
|
|
|
|
- // 分页赋值
|
|
|
|
- this.pageparm.currentPage = this.formInline.page
|
|
|
|
- this.pageparm.pageSize = this.formInline.limit
|
|
|
|
- this.pageparm.total = res.count
|
|
|
|
- // 模拟数据结束
|
|
|
|
|
|
+ this.loading = true;
|
|
|
|
+ //获取用户列表
|
|
|
|
+ userList({ table: "luckRecord" }).then(res => {
|
|
|
|
+ this.loading = false;
|
|
|
|
+ res.forEach(item => {
|
|
|
|
+ item.nickName = item.nickName ? item.nickName : "暂无昵称";
|
|
|
|
+ });
|
|
|
|
+ this.originList = res.reverse();
|
|
|
|
+ this.pageparm.total = this.originList.length;
|
|
|
|
+ // this.userData = res.reverse();
|
|
|
|
+ // // 分页赋值
|
|
|
|
+ // this.pageparm.currentPage = this.formInline.page;
|
|
|
|
+ // this.pageparm.pageSize = this.formInline.limit;
|
|
|
|
+ // this.pageparm.total = this.userData.length;
|
|
|
|
+ this.pageChange(1)
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ // 分页操作
|
|
|
|
+ pageChange(page) {
|
|
|
|
+ let start = this.pageparm.pageSize * (page - 1);
|
|
|
|
+ let end = this.pageparm.pageSize * page;
|
|
|
|
+ this.pageparm.currentPage = page;
|
|
|
|
+ this.userData = this.originList.slice(start, end);
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ pageSizeChange(val) {
|
|
|
|
+ this.pageSizes = val;
|
|
|
|
+ this.pageChange(1);
|
|
|
|
+ },
|
|
|
|
|
|
- /***
|
|
|
|
- * 调用接口,注释上面模拟数据 取消下面注释
|
|
|
|
- */
|
|
|
|
- // roleList(parameter)
|
|
|
|
- // .then(res => {
|
|
|
|
- // this.loading = false
|
|
|
|
- // if (res.success == false) {
|
|
|
|
- // this.$message({
|
|
|
|
- // type: 'info',
|
|
|
|
- // message: res.msg
|
|
|
|
- // })
|
|
|
|
- // } else {
|
|
|
|
- // this.listData = res.data
|
|
|
|
- // // 分页赋值
|
|
|
|
- // this.pageparm.currentPage = this.formInline.page
|
|
|
|
- // this.pageparm.pageSize = this.formInline.limit
|
|
|
|
- // this.pageparm.total = res.count
|
|
|
|
- // }
|
|
|
|
- // })
|
|
|
|
- // .catch(err => {
|
|
|
|
- // this.loading = false
|
|
|
|
- // this.$message.error('获取角色列表失败,请稍后再试!')
|
|
|
|
- // })
|
|
|
|
|
|
+ arrayUnique2(arr, name) {
|
|
|
|
+ var hash = {};
|
|
|
|
+ return arr.reduce(function(item, next) {
|
|
|
|
+ hash[next[name]] ? "" : (hash[next[name]] = true && item.push(next));
|
|
|
|
+ return item;
|
|
|
|
+ }, []);
|
|
},
|
|
},
|
|
|
|
+
|
|
// 分页插件事件
|
|
// 分页插件事件
|
|
callFather(parm) {
|
|
callFather(parm) {
|
|
- this.formInline.page = parm.currentPage
|
|
|
|
- this.formInline.limit = parm.pageSize
|
|
|
|
- this.getdata(this.formInline)
|
|
|
|
|
|
+ this.pageparm.currentPage = parm.currentPage;
|
|
|
|
+ this.pageChange(parm.currentPage)
|
|
},
|
|
},
|
|
- // 搜索事件
|
|
|
|
|
|
+ //搜索事件
|
|
search() {
|
|
search() {
|
|
- this.getdata(this.formInline)
|
|
|
|
|
|
+ this.getdata(this.formInline);
|
|
|
|
+ },
|
|
|
|
+ // 修改type
|
|
|
|
+ editType: function(index, row) {
|
|
|
|
+ this.loading = true;
|
|
|
|
+ let parm = {
|
|
|
|
+ lock: "",
|
|
|
|
+ userId: "",
|
|
|
|
+ token: localStorage.getItem("logintoken")
|
|
|
|
+ };
|
|
|
|
+ parm.userId = row.userId;
|
|
|
|
+ let lock = row.isLock;
|
|
|
|
+ if (lock == "N") {
|
|
|
|
+ parm.lock = "Y";
|
|
|
|
+ } else {
|
|
|
|
+ parm.lock = "N";
|
|
|
|
+ }
|
|
|
|
+ // 修改状态
|
|
|
|
+ userLock(parm).then(res => {
|
|
|
|
+ this.loading = false;
|
|
|
|
+ if (res.success == false) {
|
|
|
|
+ this.$message({
|
|
|
|
+ type: "info",
|
|
|
|
+ message: res.msg
|
|
|
|
+ });
|
|
|
|
+ } else {
|
|
|
|
+ this.$message({
|
|
|
|
+ type: "success",
|
|
|
|
+ message: "状态修改成功"
|
|
|
|
+ });
|
|
|
|
+ this.getdata(this.formInline);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
},
|
|
},
|
|
//显示编辑界面
|
|
//显示编辑界面
|
|
handleEdit: function(index, row) {
|
|
handleEdit: function(index, row) {
|
|
- this.editFormVisible = true
|
|
|
|
- if (row != undefined && row != 'undefined') {
|
|
|
|
- this.title = '修改'
|
|
|
|
- this.editForm.roleId = row.roleId
|
|
|
|
- this.editForm.systemNo = row.systemNo
|
|
|
|
- this.editForm.roleNo = row.roleNo
|
|
|
|
- this.editForm.roleName = row.roleName
|
|
|
|
|
|
+ this.editFormVisible = true;
|
|
|
|
+ if (row != undefined && row != "undefined") {
|
|
|
|
+ this.title = "修改用户";
|
|
|
|
+ this.editForm.userId = row.userId;
|
|
|
|
+ this.editForm.userName = row.userName;
|
|
|
|
+ this.editForm.userRealName = row.userRealName;
|
|
|
|
+ this.editForm.roleId = row.roleId;
|
|
|
|
+ this.editForm.userMobile = row.userMobile;
|
|
|
|
+ this.editForm.userEmail = row.userEmail;
|
|
|
|
+ this.editForm.userSex = row.userSex;
|
|
} else {
|
|
} else {
|
|
- this.title = '添加'
|
|
|
|
- this.editForm.roleId = ''
|
|
|
|
- this.editForm.systemNo = ''
|
|
|
|
- this.editForm.roleNo = ''
|
|
|
|
- this.editForm.roleName = ''
|
|
|
|
|
|
+ this.title = "添加用户";
|
|
|
|
+ this.editForm.userId = "";
|
|
|
|
+ this.editForm.userName = "";
|
|
|
|
+ this.editForm.userRealName = "";
|
|
|
|
+ this.editForm.roleId = "";
|
|
|
|
+ this.editForm.userMobile = "";
|
|
|
|
+ this.editForm.userEmail = "";
|
|
|
|
+ this.editForm.userSex = "";
|
|
}
|
|
}
|
|
},
|
|
},
|
|
- // 编辑、增加页面保存方法
|
|
|
|
|
|
+ // 编辑、添加提交方法
|
|
submitForm(editData) {
|
|
submitForm(editData) {
|
|
this.$refs[editData].validate(valid => {
|
|
this.$refs[editData].validate(valid => {
|
|
if (valid) {
|
|
if (valid) {
|
|
- roleSave(this.editForm)
|
|
|
|
|
|
+ // 请求方法
|
|
|
|
+ userSave(this.editForm)
|
|
.then(res => {
|
|
.then(res => {
|
|
- this.editFormVisible = false
|
|
|
|
- this.loading = false
|
|
|
|
|
|
+ this.editFormVisible = false;
|
|
|
|
+ this.loading = false;
|
|
if (res.success) {
|
|
if (res.success) {
|
|
- this.getdata(this.formInline)
|
|
|
|
|
|
+ this.getdata(this.formInline);
|
|
this.$message({
|
|
this.$message({
|
|
- type: 'success',
|
|
|
|
- message: '角色保存成功!'
|
|
|
|
- })
|
|
|
|
|
|
+ type: "success",
|
|
|
|
+ message: "数据保存成功!"
|
|
|
|
+ });
|
|
} else {
|
|
} else {
|
|
this.$message({
|
|
this.$message({
|
|
- type: 'info',
|
|
|
|
|
|
+ type: "info",
|
|
message: res.msg
|
|
message: res.msg
|
|
- })
|
|
|
|
|
|
+ });
|
|
}
|
|
}
|
|
})
|
|
})
|
|
.catch(err => {
|
|
.catch(err => {
|
|
- this.editFormVisible = false
|
|
|
|
- this.loading = false
|
|
|
|
- this.$message.error('角色保存失败,请稍后再试!')
|
|
|
|
- })
|
|
|
|
|
|
+ this.editFormVisible = false;
|
|
|
|
+ this.loading = false;
|
|
|
|
+ this.$message.error("保存失败,请稍后再试!");
|
|
|
|
+ });
|
|
} else {
|
|
} else {
|
|
- return false
|
|
|
|
|
|
+ return false;
|
|
}
|
|
}
|
|
- })
|
|
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ // 显示部门设置
|
|
|
|
+ handleunit: function(index, row) {
|
|
|
|
+ this.unitAccessshow = true;
|
|
|
|
+ let parms = 0;
|
|
|
|
+ UserDeptdeptTree(parms)
|
|
|
|
+ .then(res => {
|
|
|
|
+ if (res.data.success) {
|
|
|
|
+ this.UserDept = this.changeArr(res.data.data);
|
|
|
|
+ } else {
|
|
|
|
+ this.$message({
|
|
|
|
+ type: "info",
|
|
|
|
+ message: res.msg
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ .catch(err => {
|
|
|
|
+ this.loading = false;
|
|
|
|
+ this.$message.error("配置权限失败,请稍后再试!");
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ handleClick(data, checked, node) {
|
|
|
|
+ if (checked) {
|
|
|
|
+ this.$refs.tree.setCheckedNodes([]);
|
|
|
|
+ this.$refs.tree.setCheckedNodes([data]);
|
|
|
|
+ this.unitparm.deptId = data.id;
|
|
|
|
+ this.unitparm.deptName = data.name;
|
|
|
|
+ //交叉点击节点
|
|
|
|
+ } else {
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ // 保存部门
|
|
|
|
+ unitPermSave() {
|
|
|
|
+ let len = this.selectdata;
|
|
|
|
+ let ids = [];
|
|
|
|
+ if (len != 0) {
|
|
|
|
+ for (let i = 0; i < len.length; i++) {
|
|
|
|
+ ids.push(len[i].userId);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ this.unitparm.userIds = ids.join(",");
|
|
|
|
+ UserChangeDept(this.unitparm)
|
|
|
|
+ .then(res => {
|
|
|
|
+ this.unitAccessshow = false;
|
|
|
|
+ if (res.success) {
|
|
|
|
+ this.$message({
|
|
|
|
+ type: "success",
|
|
|
|
+ message: "部门设置成功!"
|
|
|
|
+ });
|
|
|
|
+ this.getdata(this.formInline);
|
|
|
|
+ } else {
|
|
|
|
+ this.$message({
|
|
|
|
+ type: "info",
|
|
|
|
+ message: res.msg
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ .catch(err => {
|
|
|
|
+ this.loading = false;
|
|
|
|
+ this.$message.error("部门设置失败,请稍后再试!");
|
|
|
|
+ });
|
|
},
|
|
},
|
|
- // 删除角色
|
|
|
|
|
|
+ // 选择复选框事件
|
|
|
|
+ selectChange(val) {
|
|
|
|
+ this.selectdata = val;
|
|
|
|
+ },
|
|
|
|
+ // 关闭编辑、增加弹出框
|
|
|
|
+ closeDialog(dialog) {
|
|
|
|
+ if (dialog == "edit") {
|
|
|
|
+ this.editFormVisible = false;
|
|
|
|
+ } else if (dialog == "perm") {
|
|
|
|
+ this.dataAccessshow = false;
|
|
|
|
+ } else if (dialog == "unit") {
|
|
|
|
+ this.unitAccessshow = false;
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ // 删除用户
|
|
deleteUser(index, row) {
|
|
deleteUser(index, row) {
|
|
- this.$confirm('确定要删除吗?', '信息', {
|
|
|
|
- confirmButtonText: '确定',
|
|
|
|
- cancelButtonText: '取消',
|
|
|
|
- type: 'warning'
|
|
|
|
|
|
+ this.$confirm("确定要删除吗?", "信息", {
|
|
|
|
+ confirmButtonText: "确定",
|
|
|
|
+ cancelButtonText: "取消",
|
|
|
|
+ type: "warning"
|
|
})
|
|
})
|
|
.then(() => {
|
|
.then(() => {
|
|
- roleDelete(row.roleId)
|
|
|
|
|
|
+ // 删除
|
|
|
|
+ userDelete(row.id)
|
|
.then(res => {
|
|
.then(res => {
|
|
if (res.success) {
|
|
if (res.success) {
|
|
this.$message({
|
|
this.$message({
|
|
- type: 'success',
|
|
|
|
- message: '角色已删除!'
|
|
|
|
- })
|
|
|
|
- this.getdata(this.formInline)
|
|
|
|
|
|
+ type: "success",
|
|
|
|
+ message: "数据已删除!"
|
|
|
|
+ });
|
|
|
|
+ this.getdata(this.formInline);
|
|
} else {
|
|
} else {
|
|
this.$message({
|
|
this.$message({
|
|
- type: 'info',
|
|
|
|
|
|
+ type: "info",
|
|
message: res.msg
|
|
message: res.msg
|
|
- })
|
|
|
|
|
|
+ });
|
|
}
|
|
}
|
|
})
|
|
})
|
|
.catch(err => {
|
|
.catch(err => {
|
|
- this.loading = false
|
|
|
|
- this.$message.error('角色删除失败,请稍后再试!')
|
|
|
|
- })
|
|
|
|
|
|
+ this.loading = false;
|
|
|
|
+ this.$message.error("数据删除失败,请稍后再试!");
|
|
|
|
+ });
|
|
})
|
|
})
|
|
.catch(() => {
|
|
.catch(() => {
|
|
this.$message({
|
|
this.$message({
|
|
- type: 'info',
|
|
|
|
- message: '已取消删除'
|
|
|
|
- })
|
|
|
|
|
|
+ type: "info",
|
|
|
|
+ message: "已取消删除!"
|
|
|
|
+ });
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ // 重置密码
|
|
|
|
+ resetpwd(index, row) {
|
|
|
|
+ this.resetpsd.userId = row.userId;
|
|
|
|
+ this.$confirm("确定要重置密码吗?", "信息", {
|
|
|
|
+ confirmButtonText: "确定",
|
|
|
|
+ cancelButtonText: "取消",
|
|
|
|
+ type: "warning"
|
|
|
|
+ })
|
|
|
|
+ .then(() => {
|
|
|
|
+ userPwd(this.resetpsd)
|
|
|
|
+ .then(res => {
|
|
|
|
+ if (res.success) {
|
|
|
|
+ this.$message({
|
|
|
|
+ type: "success",
|
|
|
|
+ message: "重置密码成功!"
|
|
|
|
+ });
|
|
|
|
+ this.getdata(this.formInline);
|
|
|
|
+ } else {
|
|
|
|
+ this.$message({
|
|
|
|
+ type: "info",
|
|
|
|
+ message: res.msg
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ .catch(err => {
|
|
|
|
+ this.loading = false;
|
|
|
|
+ this.$message.error("重置密码失败,请稍后再试!");
|
|
|
|
+ });
|
|
})
|
|
})
|
|
|
|
+ .catch(() => {
|
|
|
|
+ this.$message({
|
|
|
|
+ type: "info",
|
|
|
|
+ message: "取消重置密码!"
|
|
|
|
+ });
|
|
|
|
+ });
|
|
},
|
|
},
|
|
// 数据权限
|
|
// 数据权限
|
|
- menuAccess: function(index, row) {
|
|
|
|
- this.menuAccessshow = true
|
|
|
|
- this.saveroleId = row.roleId
|
|
|
|
- RoleRightTree(row.roleId)
|
|
|
|
|
|
+ dataAccess: function(index, row) {
|
|
|
|
+ this.dataAccessshow = true;
|
|
|
|
+ this.saveroleId = row.userId;
|
|
|
|
+ UserDeptTree(row.userId)
|
|
.then(res => {
|
|
.then(res => {
|
|
if (res.data.success) {
|
|
if (res.data.success) {
|
|
- this.$message({
|
|
|
|
- type: 'success',
|
|
|
|
- message: '获取权限成功'
|
|
|
|
- })
|
|
|
|
- this.changemenu(res.data.data)
|
|
|
|
- this.RoleRight = this.changeArr(res.data.data)
|
|
|
|
|
|
+ this.checkmenu = this.changemenu(res.data.data);
|
|
|
|
+ this.UserDept = this.changeArr(res.data.data);
|
|
} else {
|
|
} else {
|
|
this.$message({
|
|
this.$message({
|
|
- type: 'info',
|
|
|
|
|
|
+ type: "info",
|
|
message: res.data.msg
|
|
message: res.data.msg
|
|
- })
|
|
|
|
|
|
+ });
|
|
}
|
|
}
|
|
})
|
|
})
|
|
.catch(err => {
|
|
.catch(err => {
|
|
- this.loading = false
|
|
|
|
- this.$message.error('获取权限失败,请稍后再试!')
|
|
|
|
- })
|
|
|
|
- },
|
|
|
|
- // 选中菜单
|
|
|
|
- changemenu(arr) {
|
|
|
|
- let change = []
|
|
|
|
- for (let i = 0; i < arr.length; i++) {
|
|
|
|
- if (arr[i].checked) {
|
|
|
|
- change.push(arr[i].id)
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- this.checkmenu = change
|
|
|
|
|
|
+ this.loading = false;
|
|
|
|
+ this.$message.error("获取权限失败,请稍后再试!");
|
|
|
|
+ });
|
|
},
|
|
},
|
|
- // tree 递归
|
|
|
|
- changeArr(list) {
|
|
|
|
- var temptree = [],
|
|
|
|
- tree = [],
|
|
|
|
- items = []
|
|
|
|
- for (var i in list) {
|
|
|
|
- if (!temptree[list[i].id]) {
|
|
|
|
- var trow = {
|
|
|
|
- id: list[i].id,
|
|
|
|
- pId: list[i].pId,
|
|
|
|
- name: list[i].name,
|
|
|
|
- open: list[i].open,
|
|
|
|
- checked: list[i].checked,
|
|
|
|
|
|
+ //数据格式化
|
|
|
|
+ changeArr(data) {
|
|
|
|
+ var pos = {};
|
|
|
|
+ var tree = [];
|
|
|
|
+ var i = 0;
|
|
|
|
+ while (data.length != 0) {
|
|
|
|
+ if (data[i].pId == 0) {
|
|
|
|
+ tree.push({
|
|
|
|
+ id: data[i].id,
|
|
|
|
+ name: data[i].name,
|
|
|
|
+ pId: data[i].pId,
|
|
|
|
+ open: data[i].open,
|
|
|
|
+ checked: data[i].checked,
|
|
children: []
|
|
children: []
|
|
|
|
+ });
|
|
|
|
+ pos[data[i].id] = [tree.length - 1];
|
|
|
|
+ data.splice(i, 1);
|
|
|
|
+ i--;
|
|
|
|
+ } else {
|
|
|
|
+ var posArr = pos[data[i].pId];
|
|
|
|
+ if (posArr != undefined) {
|
|
|
|
+ var obj = tree[posArr[0]];
|
|
|
|
+ for (var j = 1; j < posArr.length; j++) {
|
|
|
|
+ obj = obj.children[posArr[j]];
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ obj.children.push({
|
|
|
|
+ id: data[i].id,
|
|
|
|
+ name: data[i].name,
|
|
|
|
+ pId: data[i].pId,
|
|
|
|
+ open: data[i].open,
|
|
|
|
+ checked: data[i].checked,
|
|
|
|
+ children: []
|
|
|
|
+ });
|
|
|
|
+ pos[data[i].id] = posArr.concat([obj.children.length - 1]);
|
|
|
|
+ data.splice(i, 1);
|
|
|
|
+ i--;
|
|
}
|
|
}
|
|
- temptree[list[i].id] = trow
|
|
|
|
- items.push(trow)
|
|
|
|
}
|
|
}
|
|
- if (list[i].uid > 0) {
|
|
|
|
- temptree[list[i].id]['children'].push({
|
|
|
|
- id: list[i].id,
|
|
|
|
- pId: list[i].pId,
|
|
|
|
- name: list[i].name,
|
|
|
|
- open: list[i].open,
|
|
|
|
- checked: list[i].checked,
|
|
|
|
- children: []
|
|
|
|
- })
|
|
|
|
|
|
+ i++;
|
|
|
|
+ if (i > data.length - 1) {
|
|
|
|
+ i = 0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
- for (var j in items) {
|
|
|
|
- if (temptree[items[j].pId]) {
|
|
|
|
- temptree[items[j].pId]['children'].push(temptree[items[j].id])
|
|
|
|
- } else {
|
|
|
|
- tree.push(temptree[items[j].id])
|
|
|
|
|
|
+ return tree;
|
|
|
|
+ },
|
|
|
|
+ // 选中菜单
|
|
|
|
+ changemenu(arr) {
|
|
|
|
+ let change = [];
|
|
|
|
+ for (let i = 0; i < arr.length; i++) {
|
|
|
|
+ if (arr[i].checked) {
|
|
|
|
+ change.push(arr[i].id);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- temptree = null
|
|
|
|
- items = null
|
|
|
|
- return tree
|
|
|
|
|
|
+ return change;
|
|
},
|
|
},
|
|
// 菜单权限-保存
|
|
// 菜单权限-保存
|
|
menuPermSave() {
|
|
menuPermSave() {
|
|
let parm = {
|
|
let parm = {
|
|
- roleId: this.saveroleId,
|
|
|
|
- moduleIds: ''
|
|
|
|
- }
|
|
|
|
- let node = this.$refs.tree.getCheckedNodes()
|
|
|
|
- let moduleIds = []
|
|
|
|
|
|
+ userId: this.saveroleId,
|
|
|
|
+ deptIds: ""
|
|
|
|
+ };
|
|
|
|
+ let node = this.$refs.tree.getCheckedNodes();
|
|
|
|
+ let moduleIds = [];
|
|
if (node.length != 0) {
|
|
if (node.length != 0) {
|
|
for (let i = 0; i < node.length; i++) {
|
|
for (let i = 0; i < node.length; i++) {
|
|
- moduleIds.push(node[i].id)
|
|
|
|
|
|
+ moduleIds.push(node[i].id);
|
|
}
|
|
}
|
|
- parm.moduleIds = JSON.stringify(moduleIds)
|
|
|
|
|
|
+ parm.deptIds = JSON.stringify(moduleIds);
|
|
}
|
|
}
|
|
- RoleRightSave(parm)
|
|
|
|
|
|
+ UserDeptSave(parm)
|
|
.then(res => {
|
|
.then(res => {
|
|
if (res.success) {
|
|
if (res.success) {
|
|
this.$message({
|
|
this.$message({
|
|
- type: 'success',
|
|
|
|
- message: '权限保存成功'
|
|
|
|
- })
|
|
|
|
- this.menuAccessshow = false
|
|
|
|
- this.getdata(this.formInline)
|
|
|
|
|
|
+ type: "success",
|
|
|
|
+ message: "权限保存成功"
|
|
|
|
+ });
|
|
|
|
+ this.dataAccessshow = false;
|
|
|
|
+ this.getdata(this.formInline);
|
|
} else {
|
|
} else {
|
|
this.$message({
|
|
this.$message({
|
|
- type: 'info',
|
|
|
|
|
|
+ type: "info",
|
|
message: res.msg
|
|
message: res.msg
|
|
- })
|
|
|
|
|
|
+ });
|
|
}
|
|
}
|
|
})
|
|
})
|
|
.catch(err => {
|
|
.catch(err => {
|
|
- this.loading = false
|
|
|
|
- this.$message.error('权限保存失败,请稍后再试!')
|
|
|
|
|
|
+ this.loading = false;
|
|
|
|
+ this.$message.error("权限保存失败,请稍后再试!");
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ // 下线用户
|
|
|
|
+ offlineUser(index, row) {
|
|
|
|
+ this.$confirm("确定要让" + row.userName + "用户下线吗?", "信息", {
|
|
|
|
+ confirmButtonText: "确定",
|
|
|
|
+ cancelButtonText: "取消",
|
|
|
|
+ type: "warning"
|
|
|
|
+ })
|
|
|
|
+ .then(() => {
|
|
|
|
+ userExpireToken(row.userName)
|
|
|
|
+ .then(res => {
|
|
|
|
+ if (res.success) {
|
|
|
|
+ this.$message({
|
|
|
|
+ type: "success",
|
|
|
|
+ message: "用户" + row.userName + "强制下线成功!"
|
|
|
|
+ });
|
|
|
|
+ this.getdata(this.formInline);
|
|
|
|
+ } else {
|
|
|
|
+ this.$message({
|
|
|
|
+ type: "info",
|
|
|
|
+ message: res.msg
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ .catch(err => {
|
|
|
|
+ this.loading = false;
|
|
|
|
+ this.$message.error("用户下线失败,请稍后再试!");
|
|
|
|
+ });
|
|
})
|
|
})
|
|
|
|
+ .catch(() => {
|
|
|
|
+ this.$message({
|
|
|
|
+ type: "info",
|
|
|
|
+ message: "已取消"
|
|
|
|
+ });
|
|
|
|
+ });
|
|
},
|
|
},
|
|
- // 关闭编辑、增加弹出框
|
|
|
|
- closeDialog(dialog) {
|
|
|
|
- if (dialog == 'edit') {
|
|
|
|
- this.editFormVisible = false
|
|
|
|
- } else if (dialog == 'perm') {
|
|
|
|
- this.menuAccessshow = false
|
|
|
|
- }
|
|
|
|
|
|
+ // 刷新缓存
|
|
|
|
+ refreshCache(index, row) {
|
|
|
|
+ userFlashCache(row.userName)
|
|
|
|
+ .then(res => {
|
|
|
|
+ if (res.success) {
|
|
|
|
+ this.$message({
|
|
|
|
+ type: "success",
|
|
|
|
+ message: "刷新成功!"
|
|
|
|
+ });
|
|
|
|
+ this.getdata(this.formInline);
|
|
|
|
+ } else {
|
|
|
|
+ this.$message({
|
|
|
|
+ type: "info",
|
|
|
|
+ message: res.msg
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ .catch(err => {
|
|
|
|
+ this.loading = false;
|
|
|
|
+ this.$message.error("刷新失败,请稍后再试!");
|
|
|
|
+ });
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-}
|
|
|
|
|
|
+};
|
|
</script>
|
|
</script>
|
|
|
|
|
|
<style scoped>
|
|
<style scoped>
|