【新增】新增用户导出及批量删除

This commit is contained in:
小诺 2021-06-01 00:14:04 +08:00 committed by 15099670051
parent 8c1ea4101a
commit bd6eb16124
5 changed files with 101 additions and 51 deletions

View File

@ -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'
})
}
/** /**
* 拥有角色 * 拥有角色
* *

View File

@ -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()
}, },

View File

@ -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();
} }

View File

@ -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);
/** /**
* 编辑系统用户 * 编辑系统用户

View File

@ -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)