<template>
|
<div >
|
<el-form :model="params" :inline="true" class="demo-form-inline">
|
<el-form-item label="用户账号">
|
<el-input type="text" v-model="params.username" show-word-limit placeholder="输入用户账号" clearable></el-input>
|
</el-form-item>
|
<el-form-item label="用户昵称">
|
<el-input type="text" v-model="params.nickname" show-word-limit width="200" placeholder="输入用户昵称" clearable></el-input>
|
</el-form-item>
|
<el-form-item label="部门名称">
|
<el-select v-model="mineStatus" placeholder="请选择" collapse-tags>
|
<el-option :value="mineStatus" style="height: auto">
|
<!-- <el-tree :data="treeDate"
|
show-checkbox
|
check-strictly
|
node-key="id"
|
></el-tree>-->
|
</el-option>
|
<el-tree :data="treeDate"
|
show-checkbox
|
check-strictly
|
node-key="id"
|
ref="tree"
|
@check-change="handleCheckChange"></el-tree>
|
</el-select>
|
</el-form-item>
|
<el-form-item>
|
<el-button type="primary" @click="userSearch" icon="el-icon-search" size="small">查询</el-button>
|
</el-form-item>
|
<el-form-item>
|
<template slot-scope="scope">
|
<el-button type="primary" v-if="buttonList.user_manager_add.show" @click="showUserAddDialog" icon="el-icon-circle-plus" size="small">新增</el-button>
|
<el-button type="primary" size="small" icon="el-icon-search" @click="handleExportXls('用户管理报表')">导出</el-button>
|
</template>
|
</el-form-item>
|
</el-form>
|
<el-table :data="userList" class="show_table" v-if="userList"
|
highlight-current-row v-loading="buttonLoading"
|
style="width: 100%"
|
:height="conHeight.height" >
|
<el-table-column type="expand" >
|
<template slot-scope="props">
|
<el-form label-position="left" inline class="demo-table-expand">
|
<el-form-item label="用户账号">
|
<span>{{ props.row.username }}</span>
|
</el-form-item>
|
<el-form-item label="用户昵称">
|
<span>{{ props.row.nickname }}</span>
|
</el-form-item>
|
<el-form-item label="联系电话">
|
<span>{{ props.row.phoneNo }}</span>
|
</el-form-item>
|
<el-form-item label="出生日期">
|
<span>{{ props.row.birthday == null ? '':props.row.birthday.substring(0,10)}}</span>
|
</el-form-item>
|
<el-form-item label="用户性别" >
|
<span>{{sex_status[props.row.sex]}}</span>
|
</el-form-item>
|
<el-form-item label="联系邮箱">
|
<span>{{ props.row.email}}</span>
|
</el-form-item>
|
<el-form-item label="所属部门">
|
<el-tag
|
v-for="(item,index) in (props.row.departs)"
|
:key="index"
|
size="small"
|
>
|
{{ item.departName }}
|
</el-tag>
|
</el-form-item>
|
</el-form>
|
</template>
|
</el-table-column>
|
<el-table-column type="index" label="序号" class-name="right">
|
</el-table-column>
|
<el-table-column prop="username" label="用户账号" class-name="left">
|
</el-table-column>
|
<el-table-column prop="nickname" label="用户昵称" class-name="left">
|
</el-table-column>
|
<el-table-column prop="phoneNo" label="联系电话" class-name="right">
|
</el-table-column>
|
<el-table-column prop="departs" label="所属部门" class-name="left">
|
<template slot-scope="scope">
|
<el-tag
|
v-for="item in scope.row.departs"
|
:key="item.departId"
|
size="small"
|
>
|
{{ item.departName }}
|
</el-tag>
|
</template>
|
</el-table-column>
|
<el-table-column label="操作" align="center">
|
<template slot-scope="scope">
|
<el-button v-if="buttonList.user_manager_edit.show" size="mini" icon="el-icon-edit" @click="showUserEditDialog(scope.$index, scope.row)">编辑</el-button>
|
<el-button v-if="buttonList.user_manager_delete.show" size="mini" icon="el-icon-delete" @click="deleteUser(scope.$index, scope.row)">删除</el-button>
|
<el-button v-if="buttonList.user_manager_assign.show" size="mini" icon="el-icon-setting" @click="assignUserDialog(scope.$index, scope.row)">用户权限</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
<el-pagination
|
@size-change="handleSizeChange"
|
@current-change="handleCurrentChange"
|
:current-page="pageData.page"
|
:page-sizes="pageData.pageSizeArr"
|
:page-size="pageData.size"
|
layout="total, sizes, prev, pager, next, jumper"
|
:total="pageData.total">
|
</el-pagination>
|
<el-dialog :visible.sync="addFormVisible" class="user_dialog" :close-on-click-modal="false" title="新增用户" @close="closeDialog" width="480px">
|
<el-form :model="userAddData" :rules="userAddRules" ref="userAddForm" label-width="80px">
|
<el-form-item label="用户账号" prop="username">
|
<el-input placeholder="请输入账号" v-model.trim="userAddData.username"></el-input>
|
</el-form-item>
|
<el-form-item label="用户性别" prop="sex" >
|
<input type="radio" name="radios" value="1" v-model.trim="userAddData.sex"><label>男</label>
|
<input type="radio" name="radios" value="2" v-model.trim="userAddData.sex"><label>女</label>
|
</el-form-item>
|
<el-form-item label="用户昵称" prop="nickname">
|
<el-input placeholder="请输入昵称" v-model.trim="userAddData.nickname"></el-input>
|
</el-form-item>
|
|
<el-form-item label="登陆密码" prop="password">
|
<el-input placeholder="请输入密码" v-model.trim="userAddData.password" show-password></el-input>
|
</el-form-item>
|
<el-form-item label="出生日期" prop="birthday">
|
<el-date-picker
|
type="date"
|
placeholder="选择日期"
|
v-model.trim="userAddData.birthday"
|
format="yyyy-MM-dd"
|
value-format="yyyy-MM-dd"
|
style="width: 100%;">
|
</el-date-picker>
|
</el-form-item>
|
<el-form-item label="联系电话" prop="phoneNo">
|
<el-input placeholder="请输入电话" v-model.trim="userAddData.phoneNo" :maxlength='11' type="text" ></el-input>
|
</el-form-item>
|
<el-form-item label="联系邮箱" prop="email">
|
<el-input v-model.trim="userAddData.email" ></el-input>
|
</el-form-item>
|
|
|
</el-form>
|
<div slot="footer" class="dialog-footer">
|
<el-button @click.native="userAddCommit" :loading="buttonLoading" type="primary" class="btn-custom"><span>保 存</span></el-button>
|
<el-button @click="closeDialog" class="btn-custom"><span>取 消</span></el-button>
|
</div>
|
</el-dialog>
|
<el-dialog :visible.sync="editFormVisible" class="user_dialog" :close-on-click-modal="false" title="编辑用户信息" @close="closeDialog" width="480px">
|
<el-form :model="userAddData" :rules="userEditRules" ref="userEditForm" label-width="80px">
|
<el-form-item label="用户账号" prop="username">
|
<el-input v-model.trim="userAddData.username" readonly></el-input>
|
</el-form-item>
|
<el-form-item label="用户性别">
|
<el-radio-group v-model="userAddData.sex">
|
<el-radio :label="1">男</el-radio>
|
<el-radio :label="2">女</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
<el-form-item label="用户密码" prop="password" >
|
<el-input placeholder="请输入密码" v-model.trim="userAddData.password" show-password></el-input>
|
</el-form-item>
|
<el-form-item label="用户昵称" prop="nickname">
|
<el-input placeholder="请输入昵称" v-model.trim="userAddData.nickname"></el-input>
|
</el-form-item>
|
<el-form-item label="出生日期" prop="birthday">
|
<el-date-picker
|
type="date"
|
placeholder="选择日期"
|
v-model.trim="userAddData.birthday"
|
format="yyyy-MM-dd"
|
value-format="yyyy-MM-dd"
|
style="width: 100%;">
|
</el-date-picker>
|
</el-form-item>
|
|
<el-form-item label="联系电话" prop="phoneNo">
|
<el-input placeholder="请输入联系方式" v-model.trim="userAddData.phoneNo" :maxlength='11' type="text" ></el-input>
|
</el-form-item>
|
<el-form-item label="联系邮箱" prop="email">
|
<el-input v-model.trim="userAddData.email" ></el-input>
|
</el-form-item>
|
|
</el-form>
|
<div slot="footer" class="dialog-footer">
|
<el-button @click.native="userEditCommit" :loading="buttonLoading" type="primary" class="btn-custom">
|
<span>保 存</span>
|
</el-button>
|
<el-button @click="closeDialog" class="btn-custom">
|
<span>取 消</span>
|
</el-button>
|
</div>
|
</el-dialog>
|
<el-dialog :visible.sync="assignFormVisible" class="transfer_dialog" title="分配用户权限" @close="closeAssignDialog" width="50%">
|
<template>
|
<el-form :inline="true" class="demo-form-inline">
|
<el-form-item label="用户账号">
|
<el-input v-model.trim="currentRow.username" readOnly></el-input>
|
</el-form-item>
|
<el-form-item label="用户昵称">
|
<el-input v-model.trim="currentRow.nickname" readOnly></el-input>
|
</el-form-item>
|
</el-form>
|
<el-tabs v-model="activeName">
|
<el-tab-pane label="分配角色" name="first">
|
<template>
|
<div style="text-align: center">
|
<el-transfer
|
filterable
|
style="text-align: left; display: inline-block"
|
v-model="roleListKey"
|
:props="{
|
key: 'roleId',
|
label: 'roleName'
|
}"
|
:data="roleList"
|
@change="handleUserRoleListChange"
|
:titles="['未分配角色', '已分配角色']"
|
:button-texts="['移出角色','分配角色']"
|
>
|
|
</el-transfer>
|
</div>
|
</template>
|
</el-tab-pane>
|
<el-tab-pane label="分配部门" name="second">
|
<template>
|
<div style="text-align: center">
|
<el-transfer
|
filterable
|
style="text-align: left; display: inline-block"
|
v-model="departListKey"
|
:props="{
|
key: 'departId',
|
label: 'departName'
|
}"
|
:data="departList"
|
@change="handleUserDepartListChange"
|
:titles="['未分配部门', '已分配部门']"
|
:button-texts="['移出部门','分配部门']"
|
>
|
|
</el-transfer>
|
</div>
|
</template>
|
</el-tab-pane>
|
|
</el-tabs>
|
</template>
|
</el-dialog>
|
|
</div>
|
</template>
|
<script>
|
import * as userApi from '../api/user'
|
import * as SystemApi from '../../../base/api/system'
|
import axios from "axios";
|
|
export default {
|
data(){
|
var validatePhone=(rule, value, callback) => {
|
var re = /^1\d{10}$/;
|
if(value!=''&& !re.test(value)){
|
callback(new Error('电话号码不正确'));
|
} else {
|
callback();
|
}
|
}
|
var validateEmail=(rule, value, callback) => {
|
var regEmail = /^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/
|
if( value!=''&& !regEmail.test(value)){
|
callback(new Error('邮箱不正确'));
|
} else {
|
callback();
|
}
|
}
|
// 密码复杂度验证函数
|
var validatePassword = (rule, value, callback) => {
|
if (!value) {
|
return callback(new Error('请输入密码'));
|
}
|
|
// 密码复杂度规则:8-20位,包含大小写字母+数字+特殊字符
|
const hasLower = /[a-z]/.test(value);
|
const hasUpper = /[A-Z]/.test(value);
|
const hasDigit = /\d/.test(value);
|
const hasSpecial = /[!@#$%^&*()_+~`|}{[\]:;?<>,./\\=-]/.test(value);
|
|
// 计算密码强度
|
let strength = 0;
|
if (hasLower) strength++;
|
if (hasUpper) strength++;
|
if (hasDigit) strength++;
|
if (hasSpecial) strength++;
|
|
// 更新密码强度显示
|
this.passwordStrength = strength;
|
|
// 验证规则
|
if (!(hasLower && hasUpper && hasDigit && hasSpecial)) {
|
callback(new Error('密码需包含大小写字母、数字及特殊字符'));
|
} else {
|
callback();
|
}
|
};
|
return {
|
mineStatus: '',
|
treeDate: [],
|
pageData : {
|
page:1,
|
size : 10,
|
total:0,
|
pageSizeArr:[10, 20, 40]
|
},
|
params:{
|
username:'',//用户名
|
nickname:'', //昵称
|
departId:'' //部门id
|
},
|
buttonLoading:false,
|
currentRow:{},
|
userList:[],
|
roleList:[],
|
roleListKey:[],
|
departList:[],
|
departListKey:[],
|
buttonList:{
|
user_manager_add : {show:false, code : 'user_manager_add'},
|
user_manager_edit : {show:false, code : 'user_manager_edit'},
|
user_manager_delete : {show:false, code : 'user_manager_delete'},
|
user_manager_assign : {show:false, code : 'user_manager_assign'}
|
},
|
activeName: 'first',
|
conHeight:{//表格样式
|
height:'',
|
overflow: 'auto'
|
},
|
sex_status:{
|
'1':'男',
|
'2':'女'
|
},
|
addFormVisible : false,
|
editFormVisible: false,
|
assignFormVisible: false,
|
defaultUserAddData:{},
|
userAddData: {
|
username : '',
|
nickname : '',
|
password : '',
|
sex:1,
|
email:'',
|
phoneNo:'',
|
birthday: ''
|
},
|
userAddRules: {
|
username:[
|
{required: true, message: '请输入账号', trigger: 'blur'}
|
],
|
nickname:[
|
{required: true, message: '请输入昵称', trigger: 'blur'}
|
],
|
password: [
|
{required: true, validator: validatePassword, trigger: 'blur'}
|
],
|
phoneNo:[
|
{ required: false,validator: validatePhone, trigger: 'blur'}
|
],
|
email:[
|
{required: false,validator: validateEmail, trigger: 'blur'}
|
],
|
},
|
userEditRules: {
|
username:[
|
{required: true, message: '请输入账号', trigger: 'blur'}
|
],
|
nickname:[
|
{required: true, message:'请输入昵称', trigger: 'blur'}
|
],
|
phoneNo:[
|
{ required: false,validator: validatePhone, trigger: 'blur'}
|
],
|
email:[
|
{ required: false, validator: validateEmail, trigger: 'blur'}
|
],
|
},
|
url: {
|
exportXlsUrl: "/api/ucenter/user/exportXls",
|
},
|
}
|
},
|
methods:{
|
|
getHeight(){
|
this.conHeight.height=window.innerHeight-160;
|
},
|
showUserAddDialog() {
|
this.addFormVisible = true;
|
this.currentRow = {};
|
},
|
|
userAddCommit() {
|
|
this.$refs.userAddForm.validate((valid) => {
|
if (valid) {
|
this.$confirm('确认提交吗?', '提示', {}).then(() => {
|
this.buttonLoading = true;
|
userApi.user_add(this.userAddData).then((res) => {
|
if(res.success){
|
this.buttonLoading = false;
|
this.$message({
|
message: res.message,
|
type: 'success'
|
});
|
this.closeDialog();
|
this.userQuery();
|
}else if(res.message){
|
this.buttonLoading = false;
|
this.$message({
|
message: res.message,
|
type:'error'
|
});
|
}
|
}).catch((error) => {
|
this.$message({
|
message: '服务异常!',
|
type:'error'
|
});
|
});
|
});
|
}
|
});
|
},
|
showUserEditDialog(index ,row){
|
this.editFormVisible = true;
|
this.currentRow= row;
|
this.userAddData = Object.assign({}, row);
|
this.userAddData.password = '';
|
},
|
|
/**
|
* 手机号码校验
|
*/
|
/* animate(){
|
var re = /^1\d{10}$/;
|
let str = this.userAddData.phoneNo;
|
if(re.test(str)){
|
this.$message({
|
message: '手机号可正常',
|
type:'success'
|
});
|
}else {
|
this.$message({
|
message: '抱歉手机号不合法',
|
type:'error'
|
});
|
return
|
}
|
|
},*/
|
|
/**
|
* 邮箱校验
|
*/
|
/* sendEmail(){
|
var regEmail = /^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/
|
if (this.userAddData.email != '' && !regEmail.test(this.userAddData.email)) {
|
this.$message({
|
message: '邮箱格式不正确',
|
type: 'error'
|
})
|
return
|
}
|
},*/
|
|
userEditCommit(){
|
|
/* this.animate();
|
this.sendEmail();*/
|
this.$refs.userEditForm.validate((valid) => {
|
if (valid) {
|
this.$confirm('确认提交吗?', '提示', {}).then(() => {
|
this.buttonLoading = true;
|
userApi.user_edit(this.currentRow.userId,this.userAddData).then((res) => {
|
if (res.success) {
|
this.buttonLoading = false;
|
this.$message({
|
message: res.message,
|
type: 'success'
|
});
|
this.closeDialog();
|
this.userQuery();
|
} else if (res.message) {
|
this.buttonLoading = false;
|
this.$message({
|
message: res.message,
|
type:'error'
|
});
|
}
|
});
|
});
|
}
|
});
|
},
|
assignUserDialog(index ,row){
|
this.assignFormVisible = true;
|
this.currentRow = row;
|
this.getUserDepartList();
|
this.getUserRoleList();
|
},
|
changePage(page){
|
this.pageData.page = page;
|
this.userQuery()
|
},
|
userSearch(){
|
this.pageData.page = 1;
|
this.userQuery();
|
},
|
userQuery(){
|
this.buttonLoading = true;
|
userApi.user_list(this.pageData.page, this.pageData.size, this.params).then((res) => {
|
if (res.success) {
|
this.buttonLoading = false;
|
this.pageData.total = res.page.total;
|
this.userList = res.page.records;
|
console.log(this.userList)
|
} else if (res.message) {
|
this.buttonLoading = false;
|
this.$message({
|
type: 'error',
|
message: res.message
|
});
|
}
|
}).catch((error) => {
|
this.$message({
|
type: 'error',
|
message: '服务器异常!'
|
});
|
});
|
},
|
getButtonList(){
|
let params = {flag:1,param:this.$route.path};
|
SystemApi.button_list(params).then((res)=>{
|
if (res.success && res.list.length>0){
|
res.list.forEach((v,k)=>{
|
if(this.buttonList[v] && this.buttonList[v].code == v) {
|
this.buttonList[v].show = true
|
}
|
});
|
}
|
})
|
},
|
|
closeDialog () {
|
this.addFormVisible = false;
|
this.editFormVisible = false;
|
this.userAddData = JSON.parse(JSON.stringify(this.defaultUserAddData));
|
},
|
closeAssignDialog() {
|
this.assignFormVisible = false;
|
this.roleListKey=[];
|
this.departListKey=[];
|
this.currentRow = {};
|
},
|
handleCheckChange(data, checked, node) {
|
let res = this.$refs.tree.getCheckedNodes(false, true); //true,1. 是否只是叶子节点 2.选择的时候不包含父节点)
|
if (checked) {
|
this.$refs.tree.setCheckedNodes([]);
|
this.$refs.tree.setCheckedNodes([data]);
|
}
|
let arrLabel = [];
|
this.params.departId = '';
|
if (res.length > 0) {
|
res.forEach(item => {
|
arrLabel=item;
|
});
|
this.mineStatus = arrLabel.label;
|
this.params.departId = arrLabel.id;
|
}else {
|
this.mineStatus = '';
|
this.params.departId = '';
|
}
|
|
console.log(arrLabel, 'arrLabel',this.params.departId)
|
},
|
handleSizeChange(val) {
|
this.pageData.size = val;
|
this.userQuery();
|
},
|
handleCurrentChange(val) {
|
this.pageData.page = val;
|
this.userQuery();
|
},
|
handleUserDepartListChange(value, direction, movedKeys) {
|
let userId = '';
|
if(this.currentRow && this.currentRow.userId) {
|
userId = this.currentRow.userId;
|
}
|
if(userId && userId !== '') {
|
if(direction === 'right') {
|
userApi.assign_add_depart(userId, movedKeys).then((res) => {
|
if(res.success) {
|
this.$message({
|
type:'success',
|
message:res.message
|
});
|
}else {
|
this.$message({
|
type:'error',
|
message:res.message
|
});
|
}
|
}).catch((error) => {
|
this.$message({
|
type:'error',
|
message:'服务异常!'
|
});
|
})
|
}else {
|
userApi.assign_remove_depart(userId, movedKeys).then((res) => {
|
if(res.success) {
|
this.$message({
|
type:'success',
|
message:res.message
|
});
|
}else {
|
this.$message({
|
type:'error',
|
message:res.message
|
});
|
}
|
}).catch((error) => {
|
this.$message({
|
type:'error',
|
message:'服务异常!'
|
});
|
})
|
}
|
}else {
|
this.$message({
|
type:'error',
|
message:'当前选择用户为空!'
|
})
|
}
|
},
|
handleUserRoleListChange(value, direction, movedKeys) {
|
let userId = '';
|
if(this.currentRow && this.currentRow.userId) {
|
userId = this.currentRow.userId;
|
}
|
if(userId && userId !== '') {
|
if(direction === 'right') {
|
userApi.assign_add_role(userId, movedKeys).then((res) => {
|
if(res.success) {
|
this.$message({
|
type:'success',
|
message:res.message
|
});
|
}else {
|
this.$message({
|
type:'error',
|
message:res.message
|
});
|
}
|
}).catch((error) => {
|
this.$message({
|
type:'error',
|
message:'服务异常!'
|
});
|
})
|
}else {
|
userApi.assign_remove_role(userId, movedKeys).then((res) => {
|
if(res.success) {
|
this.$message({
|
type:'success',
|
message:res.message
|
});
|
}else {
|
this.$message({
|
type:'error',
|
message:res.message
|
});
|
}
|
}).catch((error) => {
|
this.$message({
|
type:'error',
|
message:'服务异常!'
|
});
|
})
|
}
|
}else {
|
this.$message({
|
type:'error',
|
message:'当前选择用户为空!'
|
})
|
}
|
},
|
getRoleList(){
|
userApi.role_list().then((res)=>{
|
if (res.success && res.list && res.list.length > 0) {
|
this.roleList = res.list;
|
}else {
|
this.roleList =[];
|
}
|
})
|
},
|
getUserRoleList(){
|
if(this.currentRow && this.currentRow.userId) {
|
userApi.user_role(this.currentRow.userId).then((res)=>{
|
if (res.success && res.list && res.list.length>0) {
|
this.roleListKey = [];
|
res.list.forEach((v, k) => {
|
this.roleListKey.push(v.roleId);
|
})
|
}else {
|
this.roleListKey=[];
|
}
|
})
|
}else {
|
this.roleListKey=[];
|
}
|
|
},
|
getDepartList(){
|
SystemApi.depart_list().then((res)=>{
|
if (res.success && res.list && res.list.length > 0) {
|
this.departList = res.list;
|
this.treeDate = res.list;
|
}
|
})
|
},
|
getDepartTree(){
|
SystemApi.get_depart_tree().then((res)=>{
|
if (res.success && res.list && res.list.length > 0) {
|
this.treeDate = res.list;
|
}
|
})
|
},
|
handleExportXls(fileName){
|
if(!fileName || typeof fileName != "string"){
|
fileName = "导出文件"
|
}
|
console.log("导出参数",this.params)
|
this.downFile(this.url.exportXlsUrl,this.params).then((res)=>{
|
if (!res.data) {
|
// this.$message.warning("文件下载失败")
|
this.$notification.warning({
|
message:'消息',
|
description:"文件下载失败"
|
});
|
return
|
}
|
if (typeof window.navigator.msSaveBlob !== 'undefined') {
|
window.navigator.msSaveBlob(new Blob([res.data],{type: 'application/vnd.ms-excel'}), fileName+'.xls')
|
}else{
|
let url = window.URL.createObjectURL(new Blob([res.data],{type: 'application/vnd.ms-excel'}));
|
let link = document.createElement('a')
|
link.style.display = 'none'
|
link.href = url
|
link.setAttribute('download', fileName+'.xls')
|
document.body.appendChild(link)
|
link.click()
|
document.body.removeChild(link); //下载完成移除元素
|
window.URL.revokeObjectURL(url); //释放掉blob对象
|
}
|
})
|
},
|
downFile(url,parameter, method='get'){
|
if(method === 'get'){
|
return axios({
|
url: url,
|
params: parameter,
|
method: method ,
|
responseType: 'blob'
|
})
|
}else{
|
return axios({
|
url: url,
|
method: method,
|
data: parameter,
|
responseType: 'blob'
|
})
|
}
|
},
|
getUserDepartList(){
|
if(this.currentRow && this.currentRow.userId) {
|
userApi.user_depart(this.currentRow.userId).then((res)=>{
|
if (res.success && res.list && res.list.length > 0) {
|
this.departListKey = [];
|
res.list.forEach((v,k)=>{
|
this.departListKey.push(v.departId);
|
});
|
}else {
|
this.departListKey = [];
|
}
|
});
|
}else {
|
this.departListKey = [];
|
}
|
},
|
deleteUser(index, row) {
|
this.$confirm('确认删除吗?', '提示', {}).then(() => {
|
userApi.delete_user(row.userId).then((res) => {
|
if (res.success) {
|
let totalPage = Math.ceil((this.pageData.total-1)/this.pageData.size);
|
totalPage = (totalPage < 1 ? 1 : totalPage);
|
this.pageData.page = this.pageData.page > totalPage ? totalPage : this.pageData.page;
|
this.userQuery();
|
this.$message({
|
message: res.message,
|
type: 'success'
|
});
|
} else if (res.message) {
|
this.$message({
|
message: res.message,
|
type: 'error'
|
});
|
}
|
});
|
});
|
}
|
},
|
computed:{
|
partsList:function(params) {
|
if (params && params.length>0){
|
|
}
|
},
|
},
|
created(){
|
this.defaultUserAddData = JSON.parse(JSON.stringify(this.userAddData));
|
window.addEventListener('resize', this.getHeight);
|
this.getHeight()
|
},
|
mounted() {
|
//按钮权限
|
this.getButtonList();
|
//默认查询页面
|
this.userQuery();
|
//初始化查询条件
|
this.getRoleList();
|
this.getDepartList();
|
this.getDepartTree();
|
}
|
}
|
</script>
|
|
<style>
|
.user_dialog .el-dialog__body .el-form-item{
|
margin-bottom: 2vh;
|
}
|
.demo-table-expand {
|
font-size: 0;
|
}
|
.demo-table-expand label {
|
width: 90px;
|
color: #99a9bf;
|
}
|
.demo-table-expand .el-form-item {
|
margin-right: 0;
|
margin-bottom: 0;
|
width: 50%;
|
}
|
.transfer-footer {
|
margin-left: 20px;
|
padding: 6px 5px;
|
}
|
.el-table__expanded-cell{
|
background-color: #FCFCFC;
|
}
|
.el-table__expanded-cell:hover{
|
background-color: #FCFCFC;
|
}
|
.show_table .el-tag+.el-tag {
|
margin-left: 5px;
|
}
|
</style>
|