【新增】新增用户导出及批量删除
This commit is contained in:
parent
8c1ea4101a
commit
bd6eb16124
@ -70,6 +70,21 @@ export function sysUserDelete (parameter) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出用户
|
||||||
|
*
|
||||||
|
* @author yubaoshan
|
||||||
|
* @date 2021/5/30 00:23
|
||||||
|
*/
|
||||||
|
export function sysUserExport (parameter) {
|
||||||
|
return axios({
|
||||||
|
url: '/sysUser/export',
|
||||||
|
method: 'get',
|
||||||
|
params: parameter,
|
||||||
|
responseType: 'blob'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 拥有角色
|
* 拥有角色
|
||||||
*
|
*
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<a-row :gutter="24" >
|
<a-row :gutter="24">
|
||||||
<a-col :md="5" :sm="24">
|
<a-col :md="5" :sm="24">
|
||||||
<a-card :bordered="false" :loading="treeLoading">
|
<a-card :bordered="false" :loading="treeLoading">
|
||||||
<div v-if="this.orgTree != ''">
|
<div v-if="this.orgTree != ''">
|
||||||
@ -46,12 +46,18 @@
|
|||||||
ref="table"
|
ref="table"
|
||||||
:columns="columns"
|
:columns="columns"
|
||||||
:data="loadData"
|
:data="loadData"
|
||||||
:alert="true"
|
:alert="options.alert"
|
||||||
:rowKey="(record) => record.id"
|
:rowKey="(record) => record.id"
|
||||||
:rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
|
:rowSelection="options.rowSelection"
|
||||||
>
|
>
|
||||||
<template slot="operator" v-if="hasPerm('sysUser:add')">
|
<template slot="operator">
|
||||||
<a-button type="primary" v-if="hasPerm('sysUser:add')" icon="plus" @click="$refs.addForm.add()">新增用户</a-button>
|
<a-button type="primary" v-if="hasPerm('sysUser:add')" icon="plus" @click="$refs.addForm.add()">新增用户</a-button>
|
||||||
|
<a-button type="danger" :disabled="selectedRowKeys.length < 1" v-if="hasPerm('sysUser:delete')" @click="batchDelete"><a-icon type="delete"/>批量删除</a-button>
|
||||||
|
<x-down
|
||||||
|
v-if="hasPerm('sysUser:export')"
|
||||||
|
ref="batchExport"
|
||||||
|
@batchExport="batchExport"
|
||||||
|
/>
|
||||||
</template>
|
</template>
|
||||||
<span slot="sex" slot-scope="text">
|
<span slot="sex" slot-scope="text">
|
||||||
{{ sexFilter(text) }}
|
{{ sexFilter(text) }}
|
||||||
@ -84,7 +90,7 @@
|
|||||||
<a @click="$refs.userOrgForm.userOrg(record)">授权数据</a>
|
<a @click="$refs.userOrgForm.userOrg(record)">授权数据</a>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item v-if="hasPerm('sysUser:delete')">
|
<a-menu-item v-if="hasPerm('sysUser:delete')">
|
||||||
<a-popconfirm placement="topRight" title="确认删除?" @confirm="() => sysUserDelete(record)">
|
<a-popconfirm placement="topRight" title="确认删除?" @confirm="() => singleDelete(record)">
|
||||||
<a>删除</a>
|
<a>删除</a>
|
||||||
</a-popconfirm>
|
</a-popconfirm>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
@ -101,10 +107,10 @@
|
|||||||
</a-row>
|
</a-row>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { STable, XCard } from '@/components'
|
import { STable, XCard, XDown } from '@/components'
|
||||||
import { Empty } from 'ant-design-vue'
|
import { Empty } from 'ant-design-vue'
|
||||||
import { getOrgTree } from '@/api/modular/system/orgManage'
|
import { getOrgTree } from '@/api/modular/system/orgManage'
|
||||||
import { getUserPage, sysUserDelete, sysUserChangeStatus, sysUserResetPwd } from '@/api/modular/system/userManage'
|
import { getUserPage, sysUserDelete, sysUserChangeStatus, sysUserResetPwd, sysUserExport } from '@/api/modular/system/userManage'
|
||||||
import { sysDictTypeDropDown } from '@/api/modular/system/dictManage'
|
import { sysDictTypeDropDown } from '@/api/modular/system/dictManage'
|
||||||
import addForm from './addForm'
|
import addForm from './addForm'
|
||||||
import editForm from './editForm'
|
import editForm from './editForm'
|
||||||
@ -112,6 +118,7 @@
|
|||||||
import userOrgForm from './userOrgForm'
|
import userOrgForm from './userOrgForm'
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
|
XDown,
|
||||||
XCard,
|
XCard,
|
||||||
STable,
|
STable,
|
||||||
addForm,
|
addForm,
|
||||||
@ -121,8 +128,6 @@
|
|||||||
},
|
},
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
// 高级搜索 展开/关闭
|
|
||||||
advanced: false,
|
|
||||||
// 查询参数
|
// 查询参数
|
||||||
queryParam: {},
|
queryParam: {},
|
||||||
// 表头
|
// 表头
|
||||||
@ -165,6 +170,13 @@
|
|||||||
simpleImage: Empty.PRESENTED_IMAGE_SIMPLE,
|
simpleImage: Empty.PRESENTED_IMAGE_SIMPLE,
|
||||||
replaceFields: {
|
replaceFields: {
|
||||||
key: 'id'
|
key: 'id'
|
||||||
|
},
|
||||||
|
options: {
|
||||||
|
alert: { show: true, clear: () => { this.selectedRowKeys = [] } },
|
||||||
|
rowSelection: {
|
||||||
|
selectedRowKeys: this.selectedRowKeys,
|
||||||
|
onChange: this.onSelectChange
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -257,11 +269,26 @@
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* 删除用户
|
* 单个删除
|
||||||
* @param record
|
|
||||||
*/
|
*/
|
||||||
sysUserDelete (record) {
|
singleDelete (record) {
|
||||||
sysUserDelete(record).then((res) => {
|
const param = [{ 'id': record.id }]
|
||||||
|
this.sysUserDelete(param)
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 批量删除
|
||||||
|
*/
|
||||||
|
batchDelete () {
|
||||||
|
const paramIds = this.selectedRowKeys.map((d) => {
|
||||||
|
return { 'id': d }
|
||||||
|
})
|
||||||
|
this.sysUserDelete(paramIds)
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 删除用户
|
||||||
|
*/
|
||||||
|
sysUserDelete (param) {
|
||||||
|
sysUserDelete(param).then((res) => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
this.$message.success('删除成功')
|
this.$message.success('删除成功')
|
||||||
this.$refs.table.refresh()
|
this.$refs.table.refresh()
|
||||||
@ -272,6 +299,14 @@
|
|||||||
this.$message.error('删除错误:' + err.message)
|
this.$message.error('删除错误:' + err.message)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* 批量导出
|
||||||
|
*/
|
||||||
|
batchExport () {
|
||||||
|
sysUserExport().then((res) => {
|
||||||
|
this.$refs.batchExport.downloadfile(res)
|
||||||
|
})
|
||||||
|
},
|
||||||
/**
|
/**
|
||||||
* 点击左侧机构树查询列表
|
* 点击左侧机构树查询列表
|
||||||
*/
|
*/
|
||||||
@ -281,9 +316,6 @@
|
|||||||
}
|
}
|
||||||
this.$refs.table.refresh(true)
|
this.$refs.table.refresh(true)
|
||||||
},
|
},
|
||||||
toggleAdvanced () {
|
|
||||||
this.advanced = !this.advanced
|
|
||||||
},
|
|
||||||
handleOk () {
|
handleOk () {
|
||||||
this.$refs.table.refresh()
|
this.$refs.table.refresh()
|
||||||
},
|
},
|
||||||
|
@ -39,6 +39,7 @@ import org.springframework.web.bind.annotation.RequestBody;
|
|||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 系统用户控制器
|
* 系统用户控制器
|
||||||
@ -84,15 +85,15 @@ public class SysUserController {
|
|||||||
/**
|
/**
|
||||||
* 删除系统用户
|
* 删除系统用户
|
||||||
*
|
*
|
||||||
* @author xuyuxiang
|
* @author xuyuxiang yubaoshan
|
||||||
* @date 2020/3/23 16:28
|
* @date 2020/3/23 16:28
|
||||||
*/
|
*/
|
||||||
@Permission
|
@Permission
|
||||||
@DataScope
|
@DataScope
|
||||||
@PostMapping("/sysUser/delete")
|
@PostMapping("/sysUser/delete")
|
||||||
@BusinessLog(title = "系统用户_删除", opType = LogAnnotionOpTypeEnum.DELETE)
|
@BusinessLog(title = "系统用户_删除", opType = LogAnnotionOpTypeEnum.DELETE)
|
||||||
public ResponseData delete(@RequestBody @Validated(SysUserParam.delete.class) SysUserParam sysUserParam) {
|
public ResponseData delete(@RequestBody @Validated(SysUserParam.delete.class) List<SysUserParam> sysUserParamList) {
|
||||||
sysUserService.delete(sysUserParam);
|
sysUserService.delete(sysUserParamList);
|
||||||
return new SuccessResponseData();
|
return new SuccessResponseData();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -84,11 +84,11 @@ public interface SysUserService extends IService<SysUser> {
|
|||||||
/**
|
/**
|
||||||
* 删除系统用户
|
* 删除系统用户
|
||||||
*
|
*
|
||||||
* @param sysUserParam 删除参数
|
* @param sysUserParamList 删除集合
|
||||||
* @author xuyuxiang
|
* @author xuyuxiang yubaosahn
|
||||||
* @date 2020/3/23 9:26
|
* @date 2020/3/23 9:26
|
||||||
*/
|
*/
|
||||||
void delete(SysUserParam sysUserParam);
|
void delete(List<SysUserParam> sysUserParamList);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 编辑系统用户
|
* 编辑系统用户
|
||||||
|
@ -201,38 +201,40 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|||||||
|
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@Override
|
@Override
|
||||||
public void delete(SysUserParam sysUserParam) {
|
public void delete(List<SysUserParam> sysUserParamList) {
|
||||||
SysUser sysUser = this.querySysUser(sysUserParam);
|
sysUserParamList.forEach(sysUserParam -> {
|
||||||
//不能删除超级管理员
|
SysUser sysUser = this.querySysUser(sysUserParam);
|
||||||
if (AdminTypeEnum.SUPER_ADMIN.getCode().equals(sysUser.getAdminType())) {
|
//不能删除超级管理员
|
||||||
throw new ServiceException(SysUserExceptionEnum.USER_CAN_NOT_DELETE_ADMIN);
|
if (AdminTypeEnum.SUPER_ADMIN.getCode().equals(sysUser.getAdminType())) {
|
||||||
}
|
throw new ServiceException(SysUserExceptionEnum.USER_CAN_NOT_DELETE_ADMIN);
|
||||||
boolean superAdmin = LoginContextHolder.me().isSuperAdmin();
|
|
||||||
//如果登录用户不是超级管理员,则进行数据权限校验
|
|
||||||
if (!superAdmin) {
|
|
||||||
List<Long> dataScope = sysUserParam.getDataScope();
|
|
||||||
//获取要删除的用户的所属机构
|
|
||||||
SysEmpInfo sysEmpInfo = sysEmpService.getSysEmpInfo(sysUser.getId());
|
|
||||||
Long orgId = sysEmpInfo.getOrgId();
|
|
||||||
//数据范围为空
|
|
||||||
if (ObjectUtil.isEmpty(dataScope)) {
|
|
||||||
throw new PermissionException(PermissionExceptionEnum.NO_PERMISSION_OPERATE);
|
|
||||||
} else if (!dataScope.contains(orgId)) {
|
|
||||||
//所要删除的用户的所属机构不在自己的数据范围内
|
|
||||||
throw new PermissionException(PermissionExceptionEnum.NO_PERMISSION_OPERATE);
|
|
||||||
}
|
}
|
||||||
}
|
boolean superAdmin = LoginContextHolder.me().isSuperAdmin();
|
||||||
sysUser.setStatus(CommonStatusEnum.DELETED.getCode());
|
//如果登录用户不是超级管理员,则进行数据权限校验
|
||||||
this.updateById(sysUser);
|
if (!superAdmin) {
|
||||||
Long id = sysUser.getId();
|
List<Long> dataScope = sysUserParam.getDataScope();
|
||||||
//删除该用户对应的员工表信息
|
//获取要删除的用户的所属机构
|
||||||
sysEmpService.deleteEmpInfoByUserId(id);
|
SysEmpInfo sysEmpInfo = sysEmpService.getSysEmpInfo(sysUser.getId());
|
||||||
|
Long orgId = sysEmpInfo.getOrgId();
|
||||||
|
//数据范围为空
|
||||||
|
if (ObjectUtil.isEmpty(dataScope)) {
|
||||||
|
throw new PermissionException(PermissionExceptionEnum.NO_PERMISSION_OPERATE);
|
||||||
|
} else if (!dataScope.contains(orgId)) {
|
||||||
|
//所要删除的用户的所属机构不在自己的数据范围内
|
||||||
|
throw new PermissionException(PermissionExceptionEnum.NO_PERMISSION_OPERATE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sysUser.setStatus(CommonStatusEnum.DELETED.getCode());
|
||||||
|
this.updateById(sysUser);
|
||||||
|
Long id = sysUser.getId();
|
||||||
|
//删除该用户对应的员工表信息
|
||||||
|
sysEmpService.deleteEmpInfoByUserId(id);
|
||||||
|
|
||||||
//删除该用户对应的用户-角色表关联信息
|
//删除该用户对应的用户-角色表关联信息
|
||||||
sysUserRoleService.deleteUserRoleListByUserId(id);
|
sysUserRoleService.deleteUserRoleListByUserId(id);
|
||||||
|
|
||||||
//删除该用户对应的用户-数据范围表关联信息
|
//删除该用户对应的用户-数据范围表关联信息
|
||||||
sysUserDataScopeService.deleteUserDataScopeListByUserId(id);
|
sysUserDataScopeService.deleteUserDataScopeListByUserId(id);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user