update 实现部分表单使用detail获取详细数据
This commit is contained in:
@@ -13,6 +13,7 @@ using Microsoft.EntityFrameworkCore;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using System;
|
||||||
|
|
||||||
namespace Ewide.Application.Service
|
namespace Ewide.Application.Service
|
||||||
{
|
{
|
||||||
@@ -108,10 +109,10 @@ WHERE 1=1";
|
|||||||
|
|
||||||
var users = await _dapperRepository.QueryPageData<UserOutput>(sql, input, param);
|
var users = await _dapperRepository.QueryPageData<UserOutput>(sql, input, param);
|
||||||
|
|
||||||
foreach (var user in users.Items)
|
//foreach (var user in users.Items)
|
||||||
{
|
//{
|
||||||
user.SysEmpInfo = await _sysEmpService.GetEmpInfo(user.Id);
|
// user.SysEmpInfo = await _sysEmpService.GetEmpInfo(user.Id);
|
||||||
}
|
//}
|
||||||
return PageDataResult<UserOutput>.PageResult(users);
|
return PageDataResult<UserOutput>.PageResult(users);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -170,7 +171,10 @@ WHERE 1=1";
|
|||||||
[UnitOfWork]
|
[UnitOfWork]
|
||||||
public async Task DeleteUser(DeleteUserInput input)
|
public async Task DeleteUser(DeleteUserInput input)
|
||||||
{
|
{
|
||||||
// 片区监管员在本片区已有安全员的情况下无法删除
|
/*
|
||||||
|
* 未处理逻辑
|
||||||
|
* 片区监管员在本片区已有安全员的情况下无法删除
|
||||||
|
*/
|
||||||
|
|
||||||
await _sysUserService.DeleteUser(input);
|
await _sysUserService.DeleteUser(input);
|
||||||
}
|
}
|
||||||
@@ -185,6 +189,7 @@ WHERE 1=1";
|
|||||||
public async Task UpdateUser(UpdateUserInput input)
|
public async Task UpdateUser(UpdateUserInput input)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
|
* 未处理逻辑
|
||||||
* 如果移动组织架构,会产生以下几种逻辑
|
* 如果移动组织架构,会产生以下几种逻辑
|
||||||
* 片区1监管员(无安全员或有其他监管员)=>片区2,直接成功
|
* 片区1监管员(无安全员或有其他监管员)=>片区2,直接成功
|
||||||
* 片区1监管员(有安全员并且无其他监管员)=>片区2,无法移动
|
* 片区1监管员(有安全员并且无其他监管员)=>片区2,无法移动
|
||||||
@@ -203,7 +208,30 @@ WHERE 1=1";
|
|||||||
[HttpGet("/houseMember/detail")]
|
[HttpGet("/houseMember/detail")]
|
||||||
public async Task<dynamic> GetUser([FromQuery] QueryUserInput input)
|
public async Task<dynamic> GetUser([FromQuery] QueryUserInput input)
|
||||||
{
|
{
|
||||||
return await _sysUserService.GetUser(input);
|
var sql = @"SELECT
|
||||||
|
SU.*,
|
||||||
|
SO.Name OrgName,
|
||||||
|
SUR.RoleName,
|
||||||
|
SUR.RoleCode
|
||||||
|
FROM sys_user SU
|
||||||
|
LEFT JOIN sys_emp SE ON SU.Id = SE.Id
|
||||||
|
LEFT JOIN sys_org SO ON SE.OrgId = SO.Id
|
||||||
|
LEFT JOIN (
|
||||||
|
SELECT
|
||||||
|
SUR.SysUserId,
|
||||||
|
GROUP_CONCAT(SR.Name) RoleName,
|
||||||
|
GROUP_CONCAT(SR.Code) RoleCode
|
||||||
|
FROM sys_user_role SUR
|
||||||
|
LEFT JOIN sys_role SR ON SUR.SysRoleId = SR.Id
|
||||||
|
GROUP BY SUR.SysUserId
|
||||||
|
) SUR ON SU.Id = SUR.SysUserId
|
||||||
|
WHERE SU.Id=@Id";
|
||||||
|
var user = (await _dapperRepository.QueryAsync<UserOutput>(sql, new { input.Id })).SingleOrDefault();
|
||||||
|
if (user != null)
|
||||||
|
{
|
||||||
|
user.SysEmpInfo = await _sysEmpService.GetEmpInfo(user.Id);
|
||||||
|
}
|
||||||
|
return user;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -254,7 +282,7 @@ WHERE 1=1";
|
|||||||
var _sysOrgRep = Db.GetRepository<SysOrg>();
|
var _sysOrgRep = Db.GetRepository<SysOrg>();
|
||||||
var org = await _sysOrgRep.DetachedEntities.FirstOrDefaultAsync(p => p.Id == orgId);
|
var org = await _sysOrgRep.DetachedEntities.FirstOrDefaultAsync(p => p.Id == orgId);
|
||||||
// 如果当前组织为街道, 则直接返回安全员
|
// 如果当前组织为街道, 则直接返回安全员
|
||||||
if (org == null || org.Type <= 30)
|
if (org == null || org.Type <= (int)OrgType.乡镇街道办事处)
|
||||||
{
|
{
|
||||||
return roles.LastOrDefault();
|
return roles.LastOrDefault();
|
||||||
}
|
}
|
||||||
@@ -265,7 +293,7 @@ WHERE 1=1";
|
|||||||
var roleIds = await _sysUserRoleRep.DetachedEntities.Where(p => userIds.Contains(p.SysUserId)).Select(p => p.SysRoleId).ToListAsync();
|
var roleIds = await _sysUserRoleRep.DetachedEntities.Where(p => userIds.Contains(p.SysUserId)).Select(p => p.SysRoleId).ToListAsync();
|
||||||
|
|
||||||
var _sysRoleRep = Db.GetRepository<SysRole>();
|
var _sysRoleRep = Db.GetRepository<SysRole>();
|
||||||
var isExistZoneManager = await _sysRoleRep.DetachedEntities.AnyAsync(p => roleIds.Contains(p.Id) && p.Code == System.Enum.GetName(HouseManagerRole.ZoneManager).ToUnderScoreCase());
|
var isExistZoneManager = await _sysRoleRep.DetachedEntities.AnyAsync(p => roleIds.Contains(p.Id) && p.Code == Enum.GetName(HouseManagerRole.ZoneManager).ToUnderScoreCase());
|
||||||
// 存在片区监管员,返回安全员, 否则返回监管员
|
// 存在片区监管员,返回安全员, 否则返回监管员
|
||||||
if (isExistZoneManager)
|
if (isExistZoneManager)
|
||||||
{
|
{
|
||||||
@@ -282,7 +310,10 @@ WHERE 1=1";
|
|||||||
[NonAction]
|
[NonAction]
|
||||||
private async Task<List<SysRole>> GetRoleRange()
|
private async Task<List<SysRole>> GetRoleRange()
|
||||||
{
|
{
|
||||||
var codes = System.Enum.GetNames(typeof(HouseManagerRole)).Select(p => p.ToUnderScoreCase());
|
var codes = (new[] {
|
||||||
|
Enum.GetName(HouseManagerRole.ZoneManager),
|
||||||
|
Enum.GetName(HouseManagerRole.HouseSecurityManager),
|
||||||
|
}).Select(p => p.ToUnderScoreCase());
|
||||||
|
|
||||||
var _sysRoleRep = Db.GetRepository<SysRole>();
|
var _sysRoleRep = Db.GetRepository<SysRole>();
|
||||||
var roles = await _sysRoleRep.DetachedEntities.Where(p => codes.Contains(p.Code)).ToListAsync();
|
var roles = await _sysRoleRep.DetachedEntities.Where(p => codes.Contains(p.Code)).ToListAsync();
|
||||||
|
|||||||
@@ -86,10 +86,10 @@ namespace Ewide.Core.Service
|
|||||||
// emps.Add(_sysEmpService.GetEmpInfo(long.Parse(u.Id)));
|
// emps.Add(_sysEmpService.GetEmpInfo(long.Parse(u.Id)));
|
||||||
//});
|
//});
|
||||||
//await Task.WhenAll(emps);
|
//await Task.WhenAll(emps);
|
||||||
foreach (var user in users.Items)
|
//foreach (var user in users.Items)
|
||||||
{
|
//{
|
||||||
user.SysEmpInfo = await _sysEmpService.GetEmpInfo(user.Id);
|
// user.SysEmpInfo = await _sysEmpService.GetEmpInfo(user.Id);
|
||||||
}
|
//}
|
||||||
return PageDataResult<UserOutput>.PageResult(users);
|
return PageDataResult<UserOutput>.PageResult(users);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -170,8 +170,17 @@ namespace Ewide.Core.Service
|
|||||||
if (isExist) throw Oops.Oh(ErrorCode.D1003);
|
if (isExist) throw Oops.Oh(ErrorCode.D1003);
|
||||||
|
|
||||||
var user = input.Adapt<SysUser>();
|
var user = input.Adapt<SysUser>();
|
||||||
await user.UpdateExcludeAsync(new[] { nameof(SysUser.Password), nameof(SysUser.Status), nameof(SysUser.AdminType) }, true);
|
await user.UpdateIncludeAsync(new[] {
|
||||||
user.UpdateIncludeNow(new[] { nameof(SysUser.Birthday) });
|
nameof(SysUser.Account),
|
||||||
|
nameof(SysUser.NickName),
|
||||||
|
nameof(SysUser.Name),
|
||||||
|
nameof(SysUser.Birthday),
|
||||||
|
nameof(SysUser.Sex),
|
||||||
|
nameof(SysUser.Email),
|
||||||
|
nameof(SysUser.Phone),
|
||||||
|
nameof(SysUser.Tel),
|
||||||
|
}, true);
|
||||||
|
// user.UpdateIncludeNow(new[] { nameof(SysUser.Birthday) });
|
||||||
input.SysEmpParam.Id = user.Id.ToString();
|
input.SysEmpParam.Id = user.Id.ToString();
|
||||||
// 更新员工及附属机构职位信息
|
// 更新员工及附属机构职位信息
|
||||||
await _sysEmpService.AddOrUpdate(input.SysEmpParam);
|
await _sysEmpService.AddOrUpdate(input.SysEmpParam);
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import React, { Component } from 'react'
|
import React, { Component } from 'react'
|
||||||
import { Form, Spin } from 'antd'
|
import { Form, Spin } from 'antd'
|
||||||
import { AntIcon } from 'components'
|
import { AntIcon } from 'components'
|
||||||
import { cloneDeep } from 'lodash'
|
import { api } from 'common/api'
|
||||||
|
|
||||||
const initialValues = {}
|
const initialValues = {}
|
||||||
|
|
||||||
@@ -31,14 +31,15 @@ export default class form extends Component {
|
|||||||
* @param {*} params
|
* @param {*} params
|
||||||
*/
|
*/
|
||||||
async fillData(params) {
|
async fillData(params) {
|
||||||
this.record = cloneDeep(params.record)
|
const state = { loading: false }
|
||||||
//#region 从后端转换成前段所需格式,也可以在此处调用获取详细数据接口
|
//#region 从后端转换成前段所需格式,也可以在此处调用获取详细数据接口
|
||||||
|
if (params.id) {
|
||||||
|
this.record = (await api).data
|
||||||
|
}
|
||||||
//#endregion
|
//#endregion
|
||||||
this.form.current.setFieldsValue(this.record)
|
this.form.current.setFieldsValue(this.record)
|
||||||
|
|
||||||
this.setState({
|
this.setState(state)
|
||||||
loading: false,
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -63,16 +63,16 @@ export default class index extends Component {
|
|||||||
title: '操作',
|
title: '操作',
|
||||||
width: 150,
|
width: 150,
|
||||||
dataIndex: 'actions',
|
dataIndex: 'actions',
|
||||||
render: (text, record) => (
|
render: (text, { id }) => (
|
||||||
<QueryTableActions>
|
<QueryTableActions>
|
||||||
<Auth auth={{ [authName]: 'edit' }}>
|
<Auth auth={{ [authName]: 'edit' }}>
|
||||||
<a onClick={() => this.onOpen(this.editForm, record)}>编辑</a>
|
<a onClick={() => this.onOpen(this.editForm, id)}>编辑</a>
|
||||||
</Auth>
|
</Auth>
|
||||||
<Auth auth={{ [authName]: 'delete' }}>
|
<Auth auth={{ [authName]: 'delete' }}>
|
||||||
<Popconfirm
|
<Popconfirm
|
||||||
placement="topRight"
|
placement="topRight"
|
||||||
title="是否确认删除"
|
title="是否确认删除"
|
||||||
onConfirm={() => this.onDelete(record)}
|
onConfirm={() => this.onDelete(id)}
|
||||||
>
|
>
|
||||||
<a>删除</a>
|
<a>删除</a>
|
||||||
</Popconfirm>
|
</Popconfirm>
|
||||||
@@ -145,12 +145,10 @@ export default class index extends Component {
|
|||||||
/**
|
/**
|
||||||
* 打开新增/编辑弹窗
|
* 打开新增/编辑弹窗
|
||||||
* @param {*} modal
|
* @param {*} modal
|
||||||
* @param {*} record
|
* @param {*} id
|
||||||
*/
|
*/
|
||||||
onOpen(modal, record) {
|
onOpen(modal, id) {
|
||||||
modal.current.open({
|
modal.current.open({ id })
|
||||||
record,
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -177,10 +175,10 @@ export default class index extends Component {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除
|
* 删除
|
||||||
* @param {*} record
|
* @param {*} id
|
||||||
*/
|
*/
|
||||||
onDelete(record) {
|
onDelete(id) {
|
||||||
this.onAction(apiAction.delete(record), '删除成功')
|
this.onAction(apiAction.delete({ id }), '删除成功')
|
||||||
}
|
}
|
||||||
|
|
||||||
//#region 自定义方法
|
//#region 自定义方法
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ const urls = {
|
|||||||
houseMemberAdd: ['/houseMember/add', 'post'],
|
houseMemberAdd: ['/houseMember/add', 'post'],
|
||||||
houseMemberEdit: ['/houseMember/edit', 'post'],
|
houseMemberEdit: ['/houseMember/edit', 'post'],
|
||||||
houseMemberDelete: ['/houseMember/delete', 'post'],
|
houseMemberDelete: ['/houseMember/delete', 'post'],
|
||||||
|
houseMemberDetail: ['/houseMember/detail', 'detail'],
|
||||||
houseMemberOwnRole: ['/houseMember/ownRole', 'get'],
|
houseMemberOwnRole: ['/houseMember/ownRole', 'get'],
|
||||||
houseMemberOwnData: ['/houseMember/ownData', 'get'],
|
houseMemberOwnData: ['/houseMember/ownData', 'get'],
|
||||||
houseMemberGrantData: ['/houseMember/grantData', 'post'],
|
houseMemberGrantData: ['/houseMember/grantData', 'post'],
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ export default class dataForm extends Component {
|
|||||||
form = React.createRef()
|
form = React.createRef()
|
||||||
|
|
||||||
// 初始化数据
|
// 初始化数据
|
||||||
record = {}
|
id = ''
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* mount后回调
|
* mount后回调
|
||||||
@@ -29,11 +29,11 @@ export default class dataForm extends Component {
|
|||||||
this.props.created && this.props.created(this)
|
this.props.created && this.props.created(this)
|
||||||
}
|
}
|
||||||
async fillData(params) {
|
async fillData(params) {
|
||||||
this.record = cloneDeep(params.record)
|
this.id = params.id
|
||||||
//#region 从后端转换成前段所需格式
|
//#region 从后端转换成前段所需格式
|
||||||
const orgData = await this.loadOrgData()
|
const orgData = await this.loadOrgData()
|
||||||
const areaData = await this.loadAreaData()
|
const areaData = await this.loadAreaData()
|
||||||
const orgCheckedKeys = await this.loadMemberOwn(this.record.id)
|
const orgCheckedKeys = await this.loadMemberOwn(this.id)
|
||||||
this.setState({
|
this.setState({
|
||||||
options: {
|
options: {
|
||||||
orgData,
|
orgData,
|
||||||
@@ -42,7 +42,7 @@ export default class dataForm extends Component {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
this.form.current.setFieldsValue({
|
this.form.current.setFieldsValue({
|
||||||
id: this.record.id,
|
id: this.id,
|
||||||
grantOrgIdList: orgCheckedKeys,
|
grantOrgIdList: orgCheckedKeys,
|
||||||
grantAreaCodeList: [],
|
grantAreaCodeList: [],
|
||||||
})
|
})
|
||||||
@@ -63,8 +63,8 @@ export default class dataForm extends Component {
|
|||||||
const valid = await form.validateFields()
|
const valid = await form.validateFields()
|
||||||
if (valid) {
|
if (valid) {
|
||||||
const postData = form.getFieldsValue()
|
const postData = form.getFieldsValue()
|
||||||
if (this.record) {
|
if (this.id) {
|
||||||
postData.id = this.record.id
|
postData.id = this.id
|
||||||
}
|
}
|
||||||
//#region 从前段转换后端所需格式
|
//#region 从前段转换后端所需格式
|
||||||
//#endregion
|
//#endregion
|
||||||
|
|||||||
@@ -41,8 +41,10 @@ export default class form extends Component {
|
|||||||
* @param {*} params
|
* @param {*} params
|
||||||
*/
|
*/
|
||||||
async fillData(params) {
|
async fillData(params) {
|
||||||
this.record = cloneDeep(params.record || {})
|
|
||||||
//#region 从后端转换成前段所需格式
|
//#region 从后端转换成前段所需格式
|
||||||
|
if (params.id) {
|
||||||
|
this.record = (await api.houseMemberDetail({ id: params.id })).data
|
||||||
|
}
|
||||||
const orgData = await this.loadOrgData()
|
const orgData = await this.loadOrgData()
|
||||||
const roleData = await this.LoadRoleData()
|
const roleData = await this.LoadRoleData()
|
||||||
|
|
||||||
@@ -64,30 +66,22 @@ export default class form extends Component {
|
|||||||
if (params.orgId) {
|
if (params.orgId) {
|
||||||
this.record.sysEmpParam.orgId = params.orgId
|
this.record.sysEmpParam.orgId = params.orgId
|
||||||
}
|
}
|
||||||
const defaultRole = params.record
|
const defaultRole = params.id
|
||||||
? await this.loadOwnRole(params.record.id)
|
? await this.loadOwnRole(params.id)
|
||||||
: params.orgId
|
: await this.loadDefaultRole(params.orgId)
|
||||||
? await this.loadDefaultRole(params.orgId)
|
|
||||||
: []
|
|
||||||
|
|
||||||
if (defaultRole.constructor === Array) {
|
if (defaultRole.constructor === Array) {
|
||||||
this.record.roleId = defaultRole.length > 0 ? defaultRole[0] : ''
|
this.record.roleId = defaultRole[0]
|
||||||
this.setState({
|
|
||||||
lockRole: true,
|
|
||||||
})
|
|
||||||
} else {
|
} else {
|
||||||
this.record.roleId = defaultRole.id
|
this.record.roleId = defaultRole.id
|
||||||
this.setState({
|
|
||||||
lockRole: defaultRole.code === 'zone_manager',
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
const lockRole = this.doLockRole(defaultRole)
|
||||||
|
|
||||||
this.setState({
|
this.setState({
|
||||||
options: {
|
options: {
|
||||||
...this.state.options,
|
|
||||||
orgData,
|
orgData,
|
||||||
roleData,
|
roleData,
|
||||||
},
|
},
|
||||||
|
lockRole,
|
||||||
})
|
})
|
||||||
|
|
||||||
this.record = {
|
this.record = {
|
||||||
@@ -141,6 +135,27 @@ export default class form extends Component {
|
|||||||
const { data } = await api.houseMemberDefaultRole({ orgId })
|
const { data } = await api.houseMemberDefaultRole({ orgId })
|
||||||
return data
|
return data
|
||||||
}
|
}
|
||||||
|
async onOrgChange(orgId) {
|
||||||
|
this.setState({ loading: true })
|
||||||
|
const defaultRole = await this.loadDefaultRole(orgId)
|
||||||
|
const lockRole = this.doLockRole(defaultRole)
|
||||||
|
this.setState({ loading: false, lockRole })
|
||||||
|
}
|
||||||
|
|
||||||
|
doLockRole(defaultRole) {
|
||||||
|
if (defaultRole.constructor === Array) {
|
||||||
|
this.form.current.setFieldsValue({
|
||||||
|
roleId: defaultRole[0].id,
|
||||||
|
})
|
||||||
|
return true
|
||||||
|
} else {
|
||||||
|
this.form.current.setFieldsValue({
|
||||||
|
roleId: defaultRole.id,
|
||||||
|
})
|
||||||
|
return defaultRole.code === 'zone_manager'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
return (
|
return (
|
||||||
<Form initialValues={initialValues} ref={this.form} className="yo-form">
|
<Form initialValues={initialValues} ref={this.form} className="yo-form">
|
||||||
@@ -156,6 +171,7 @@ export default class form extends Component {
|
|||||||
dropdownStyle={{ maxHeight: '300px', overflow: 'auto' }}
|
dropdownStyle={{ maxHeight: '300px', overflow: 'auto' }}
|
||||||
treeDefaultExpandAll
|
treeDefaultExpandAll
|
||||||
placeholder="请选择所属组织机构"
|
placeholder="请选择所属组织机构"
|
||||||
|
onChange={value => this.onOrgChange(value)}
|
||||||
/>
|
/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
|
|||||||
@@ -149,12 +149,12 @@ export default class index extends Component {
|
|||||||
/**
|
/**
|
||||||
* 打开新增/编辑弹窗
|
* 打开新增/编辑弹窗
|
||||||
* @param {*} modal
|
* @param {*} modal
|
||||||
* @param {*} record
|
* @param {*} id
|
||||||
*/
|
*/
|
||||||
onOpen(modal, record) {
|
onOpen(modal, id) {
|
||||||
modal.current.open({
|
modal.current.open({
|
||||||
orgId: this.selectId,
|
orgId: this.selectId,
|
||||||
record,
|
id,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -177,35 +177,49 @@ export default class index extends Component {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除
|
* 删除
|
||||||
* @param {*} record
|
* @param {*} id
|
||||||
*/
|
*/
|
||||||
onDelete(record) {
|
onDelete(id) {
|
||||||
this.onAction(apiAction.delete(record), '删除成功')
|
this.onAction(apiAction.delete({ id }), '删除成功')
|
||||||
}
|
}
|
||||||
|
|
||||||
//#region 自定义方法
|
//#region 自定义方法
|
||||||
renderItem(record) {
|
renderItem(record) {
|
||||||
|
const {
|
||||||
|
id,
|
||||||
|
account,
|
||||||
|
name,
|
||||||
|
nickName,
|
||||||
|
avatar,
|
||||||
|
sex,
|
||||||
|
phone,
|
||||||
|
email,
|
||||||
|
status,
|
||||||
|
roleCode,
|
||||||
|
roleName,
|
||||||
|
orgName,
|
||||||
|
} = record
|
||||||
return (
|
return (
|
||||||
<List.Item
|
<List.Item
|
||||||
key={record.id}
|
key={id}
|
||||||
actions={[
|
actions={[
|
||||||
<Auth auth="houseMember:edit">
|
<Auth auth="houseMember:edit">
|
||||||
<a onClick={() => this.onOpen(this.editForm, record)}>编辑</a>
|
<a onClick={() => this.onOpen(this.editForm, id)}>编辑</a>
|
||||||
</Auth>,
|
</Auth>,
|
||||||
<Auth auth="houseMember:delete">
|
<Auth auth="houseMember:delete">
|
||||||
<Popconfirm
|
<Popconfirm
|
||||||
placement="topRight"
|
placement="topRight"
|
||||||
title="是否确认删除"
|
title="是否确认删除"
|
||||||
onConfirm={() => this.onDelete(record)}
|
onConfirm={() => this.onDelete(id)}
|
||||||
>
|
>
|
||||||
<a>删除</a>
|
<a>删除</a>
|
||||||
</Popconfirm>
|
</Popconfirm>
|
||||||
</Auth>,
|
</Auth>,
|
||||||
<Auth aut="houseMember:resetPwd">
|
<Auth aut="houseMember:resetPwd">
|
||||||
<a onClick={() => this.onResetPassword(record)}>重置密码</a>
|
<a onClick={() => this.onResetPassword(id)}>重置密码</a>
|
||||||
</Auth>,
|
</Auth>,
|
||||||
<Auth auth="houseMember:grantData">
|
<Auth auth="houseMember:grantData">
|
||||||
<a onClick={() => this.onOpen(this.dataForm, record)}>授权额外数据</a>
|
<a onClick={() => this.onOpen(this.dataForm, id)}>授权额外数据</a>
|
||||||
</Auth>,
|
</Auth>,
|
||||||
]}
|
]}
|
||||||
>
|
>
|
||||||
@@ -216,10 +230,10 @@ export default class index extends Component {
|
|||||||
type="avatar"
|
type="avatar"
|
||||||
shape="square"
|
shape="square"
|
||||||
size={48}
|
size={48}
|
||||||
id={record.avatar}
|
id={avatar}
|
||||||
icon={<AntIcon type="user" />}
|
icon={<AntIcon type="user" />}
|
||||||
/>
|
/>
|
||||||
{record.roleCode && record.roleCode.includes('house_security_manager') && (
|
{roleCode && roleCode.includes('house_security_manager') && (
|
||||||
<Button
|
<Button
|
||||||
size="small"
|
size="small"
|
||||||
type="primary"
|
type="primary"
|
||||||
@@ -233,9 +247,9 @@ export default class index extends Component {
|
|||||||
}
|
}
|
||||||
title={
|
title={
|
||||||
<>
|
<>
|
||||||
{record.nickName || record.name}
|
{nickName || name}
|
||||||
{record.roleName &&
|
{roleName &&
|
||||||
record.roleName.split(',').map((item, i) => (
|
roleName.split(',').map((item, i) => (
|
||||||
<span key={i}>
|
<span key={i}>
|
||||||
<Divider type="vertical" />
|
<Divider type="vertical" />
|
||||||
<Tag color="pink">{item}</Tag>
|
<Tag color="pink">{item}</Tag>
|
||||||
@@ -243,25 +257,24 @@ export default class index extends Component {
|
|||||||
))}
|
))}
|
||||||
</>
|
</>
|
||||||
}
|
}
|
||||||
description={record.account}
|
description={account}
|
||||||
/>
|
/>
|
||||||
<Descriptions className="flex-1" column={2}>
|
<Descriptions className="flex-1" column={2}>
|
||||||
<Descriptions.Item label="部门">{record.orgName}</Descriptions.Item>
|
<Descriptions.Item label="部门">{orgName}</Descriptions.Item>
|
||||||
<Descriptions.Item label="性别">
|
<Descriptions.Item label="性别">
|
||||||
{this.bindCodeValue(record.sex, 'sex')}
|
{this.bindCodeValue(sex, 'sex')}
|
||||||
</Descriptions.Item>
|
</Descriptions.Item>
|
||||||
<Descriptions.Item label="手机">{record.phone || '未设置'}</Descriptions.Item>
|
<Descriptions.Item label="手机">{phone || '未设置'}</Descriptions.Item>
|
||||||
<Descriptions.Item label="邮箱">{record.email || '未设置'}</Descriptions.Item>
|
<Descriptions.Item label="邮箱">{email || '未设置'}</Descriptions.Item>
|
||||||
</Descriptions>
|
</Descriptions>
|
||||||
<div className="yo-list-content--h">
|
<div className="yo-list-content--h">
|
||||||
<Auth auth="houseMember:changeStatus">
|
<Auth auth="houseMember:changeStatus">
|
||||||
<div className="yo-list-content--h--item text-center">
|
<div className="yo-list-content--h--item text-center">
|
||||||
<Switch
|
<Switch
|
||||||
checked={!record.status}
|
checked={!status}
|
||||||
loading={record.statusChanging}
|
|
||||||
checkedChildren={this.bindCodeValue(0, 'common_status')}
|
checkedChildren={this.bindCodeValue(0, 'common_status')}
|
||||||
unCheckedChildren={this.bindCodeValue(1, 'common_status')}
|
unCheckedChildren={this.bindCodeValue(1, 'common_status')}
|
||||||
onChange={checked => this.onSetUserStatus(record, checked)}
|
onChange={checked => this.onSetUserStatus(id, checked)}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</Auth>
|
</Auth>
|
||||||
@@ -270,18 +283,18 @@ export default class index extends Component {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
onSetUserStatus(record, checked) {
|
onSetUserStatus(id, checked) {
|
||||||
this.onAction(
|
this.onAction(
|
||||||
apiAction.changeStatus({
|
apiAction.changeStatus({
|
||||||
id: record.id,
|
id,
|
||||||
status: +!checked,
|
status: +!checked,
|
||||||
}),
|
}),
|
||||||
'设置成功'
|
'设置成功'
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
onResetPassword(record) {
|
onResetPassword(id) {
|
||||||
this.onAction(apiAction.resetPwd(record), '重置成功')
|
this.onAction(apiAction.resetPwd({ id }), '重置成功')
|
||||||
}
|
}
|
||||||
//#endregion
|
//#endregion
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ export default class index extends Component {
|
|||||||
*/
|
*/
|
||||||
async fillData(params) {
|
async fillData(params) {
|
||||||
this.setState({
|
this.setState({
|
||||||
userId: params.record.id,
|
userId: params.id,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ export default class data extends Component {
|
|||||||
form = React.createRef()
|
form = React.createRef()
|
||||||
|
|
||||||
// 初始化数据
|
// 初始化数据
|
||||||
record = {}
|
id = ''
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* mount后回调
|
* mount后回调
|
||||||
@@ -29,11 +29,11 @@ export default class data extends Component {
|
|||||||
this.props.created && this.props.created(this)
|
this.props.created && this.props.created(this)
|
||||||
}
|
}
|
||||||
async fillData(params) {
|
async fillData(params) {
|
||||||
this.record = cloneDeep(params.record)
|
this.id = params.id
|
||||||
//#region 从后端转换成前段所需格式
|
//#region 从后端转换成前段所需格式
|
||||||
const orgData = await this.loadOrgData()
|
const orgData = await this.loadOrgData()
|
||||||
const areaData = await this.loadAreaData()
|
const areaData = await this.loadAreaData()
|
||||||
const orgCheckedKeys = await this.loadMemberOwn(this.record.id)
|
const orgCheckedKeys = await this.loadMemberOwn(this.id)
|
||||||
this.setState({
|
this.setState({
|
||||||
options: {
|
options: {
|
||||||
orgData,
|
orgData,
|
||||||
@@ -42,7 +42,7 @@ export default class data extends Component {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
this.form.current.setFieldsValue({
|
this.form.current.setFieldsValue({
|
||||||
id: this.record.id,
|
id: this.id,
|
||||||
grantOrgIdList: orgCheckedKeys,
|
grantOrgIdList: orgCheckedKeys,
|
||||||
grantAreaCodeList: [],
|
grantAreaCodeList: [],
|
||||||
})
|
})
|
||||||
@@ -63,8 +63,8 @@ export default class data extends Component {
|
|||||||
const valid = await form.validateFields()
|
const valid = await form.validateFields()
|
||||||
if (valid) {
|
if (valid) {
|
||||||
const postData = form.getFieldsValue()
|
const postData = form.getFieldsValue()
|
||||||
if (this.record) {
|
if (this.id) {
|
||||||
postData.id = this.record.id
|
postData.id = this.id
|
||||||
}
|
}
|
||||||
//#region 从前段转换后端所需格式
|
//#region 从前段转换后端所需格式
|
||||||
//#endregion
|
//#endregion
|
||||||
|
|||||||
@@ -1,5 +1,17 @@
|
|||||||
import React, { Component } from 'react'
|
import React, { Component } from 'react'
|
||||||
import { Button, Row, Col, Form, Input, DatePicker, Radio, Table, Select, Spin, TreeSelect } from 'antd'
|
import {
|
||||||
|
Button,
|
||||||
|
Row,
|
||||||
|
Col,
|
||||||
|
Form,
|
||||||
|
Input,
|
||||||
|
DatePicker,
|
||||||
|
Radio,
|
||||||
|
Table,
|
||||||
|
Select,
|
||||||
|
Spin,
|
||||||
|
TreeSelect,
|
||||||
|
} from 'antd'
|
||||||
import { AntIcon } from 'components'
|
import { AntIcon } from 'components'
|
||||||
import { cloneDeep } from 'lodash'
|
import { cloneDeep } from 'lodash'
|
||||||
import getDictData from 'util/dic'
|
import getDictData from 'util/dic'
|
||||||
@@ -9,25 +21,24 @@ import moment from 'moment'
|
|||||||
|
|
||||||
const initialValues = {
|
const initialValues = {
|
||||||
sex: 0,
|
sex: 0,
|
||||||
sysEmpParam: {}
|
sysEmpParam: {},
|
||||||
}
|
}
|
||||||
|
|
||||||
export default class form extends Component {
|
export default class form extends Component {
|
||||||
|
|
||||||
state = {
|
state = {
|
||||||
// 加载状态
|
// 加载状态
|
||||||
loading: true,
|
loading: true,
|
||||||
codes: {
|
codes: {
|
||||||
orgType: []
|
orgType: [],
|
||||||
},
|
},
|
||||||
|
|
||||||
options: {
|
options: {
|
||||||
orgData: [],
|
orgData: [],
|
||||||
posData: []
|
posData: [],
|
||||||
},
|
},
|
||||||
sysEmpParam: {
|
sysEmpParam: {
|
||||||
extIds: []
|
extIds: [],
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
extColumns = [
|
extColumns = [
|
||||||
{
|
{
|
||||||
@@ -45,7 +56,7 @@ export default class form extends Component {
|
|||||||
placeholder="请选择附加组织机构"
|
placeholder="请选择附加组织机构"
|
||||||
/>
|
/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
)
|
),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '附属岗位',
|
title: '附属岗位',
|
||||||
@@ -56,33 +67,28 @@ export default class form extends Component {
|
|||||||
<Select
|
<Select
|
||||||
defaultValue={text}
|
defaultValue={text}
|
||||||
className="w-100-p"
|
className="w-100-p"
|
||||||
placeholder="请选择附加职位信息">
|
placeholder="请选择附加职位信息"
|
||||||
{
|
|
||||||
this.state.options.posData.map(item => {
|
|
||||||
return <Select.Option
|
|
||||||
key={item.id}
|
|
||||||
value={item.id}
|
|
||||||
>
|
>
|
||||||
{item.name}</Select.Option>
|
{this.state.options.posData.map(item => {
|
||||||
})
|
return (
|
||||||
}
|
<Select.Option key={item.id} value={item.id}>
|
||||||
|
{item.name}
|
||||||
|
</Select.Option>
|
||||||
|
)
|
||||||
|
})}
|
||||||
</Select>
|
</Select>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
)
|
),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '操作',
|
title: '操作',
|
||||||
key: 'action',
|
key: 'action',
|
||||||
width: '70px',
|
width: '70px',
|
||||||
render: (text, record) => (
|
render: (text, record) => (
|
||||||
<Button
|
<Button onClick={() => this.onRemoveExtData(record)} size="small" danger>
|
||||||
onClick={() => this.onRemoveExtData(record)}
|
|
||||||
size="small"
|
|
||||||
danger
|
|
||||||
>
|
|
||||||
删除
|
删除
|
||||||
</Button>
|
</Button>
|
||||||
)
|
),
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
// 表单实例
|
// 表单实例
|
||||||
@@ -105,8 +111,10 @@ export default class form extends Component {
|
|||||||
* @param {*} params
|
* @param {*} params
|
||||||
*/
|
*/
|
||||||
async fillData(params) {
|
async fillData(params) {
|
||||||
this.record = cloneDeep(params.record || {})
|
|
||||||
//#region 从后端转换成前段所需格式
|
//#region 从后端转换成前段所需格式
|
||||||
|
if (params.id) {
|
||||||
|
this.record = (await api.sysUserDetail({ id: params.id })).data
|
||||||
|
}
|
||||||
const orgData = await this.loadOrgData()
|
const orgData = await this.loadOrgData()
|
||||||
const posData = await this.loadPosData()
|
const posData = await this.loadPosData()
|
||||||
const codes = await getDictData('org_type')
|
const codes = await getDictData('org_type')
|
||||||
@@ -118,17 +126,17 @@ export default class form extends Component {
|
|||||||
|
|
||||||
// 提交的时候是"param",而获取下来却是"info",在这里转换一下
|
// 提交的时候是"param",而获取下来却是"info",在这里转换一下
|
||||||
if (this.record.sysEmpInfo) {
|
if (this.record.sysEmpInfo) {
|
||||||
this.record.sysEmpParam = this.record.sysEmpInfo;
|
this.record.sysEmpParam = this.record.sysEmpInfo
|
||||||
delete this.record.sysEmpInfo;
|
delete this.record.sysEmpInfo
|
||||||
} else if (!this.record.sysEmpParam) {
|
} else if (!this.record.sysEmpParam) {
|
||||||
this.record.sysEmpParam = {
|
this.record.sysEmpParam = {
|
||||||
extIds: [],
|
extIds: [],
|
||||||
};
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 转换职位信息列表
|
// 转换职位信息列表
|
||||||
if (this.record.sysEmpParam.positions) {
|
if (this.record.sysEmpParam.positions) {
|
||||||
this.record.sysEmpParam.posIdList = this.record.sysEmpParam.positions.map((p) => p.posId);
|
this.record.sysEmpParam.posIdList = this.record.sysEmpParam.positions.map(p => p.posId)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 附加信息
|
// 附加信息
|
||||||
@@ -138,12 +146,12 @@ export default class form extends Component {
|
|||||||
key: i,
|
key: i,
|
||||||
orgId: p.orgId,
|
orgId: p.orgId,
|
||||||
posId: p.posId,
|
posId: p.posId,
|
||||||
};
|
}
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
if (params.orgId) {
|
if (params.orgId) {
|
||||||
this.record.sysEmpParam.orgId = params.orgId;
|
this.record.sysEmpParam.orgId = params.orgId
|
||||||
}
|
}
|
||||||
|
|
||||||
this.setState({
|
this.setState({
|
||||||
@@ -154,18 +162,18 @@ export default class form extends Component {
|
|||||||
posData,
|
posData,
|
||||||
},
|
},
|
||||||
sysEmpParam: {
|
sysEmpParam: {
|
||||||
...this.record.sysEmpParam
|
...this.record.sysEmpParam,
|
||||||
}
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
this.record = {
|
this.record = {
|
||||||
...this.record
|
...this.record,
|
||||||
}
|
}
|
||||||
//#endregion
|
//#endregion
|
||||||
this.form.current.setFieldsValue(this.record)
|
this.form.current.setFieldsValue(this.record)
|
||||||
|
|
||||||
this.setState({
|
this.setState({
|
||||||
loading: false
|
loading: false,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -206,24 +214,26 @@ export default class form extends Component {
|
|||||||
const record = {
|
const record = {
|
||||||
key: extIds.length > 0 ? extIds[extIds.length - 1].key + 1 : 0,
|
key: extIds.length > 0 ? extIds[extIds.length - 1].key + 1 : 0,
|
||||||
orgId: undefined,
|
orgId: undefined,
|
||||||
posId: undefined
|
posId: undefined,
|
||||||
}
|
}
|
||||||
|
|
||||||
this.setState({
|
this.setState(
|
||||||
|
{
|
||||||
sysEmpParam: {
|
sysEmpParam: {
|
||||||
extIds: [...extIds, record]
|
extIds: [...extIds, record],
|
||||||
}
|
},
|
||||||
}, () => {
|
},
|
||||||
|
() => {
|
||||||
console.log(this.form.current.getFieldsValue())
|
console.log(this.form.current.getFieldsValue())
|
||||||
})
|
}
|
||||||
|
)
|
||||||
}
|
}
|
||||||
onRemoveExtData(record) {
|
onRemoveExtData(record) {
|
||||||
const ext = this.state.sysEmpParam.extIds,
|
const ext = this.state.sysEmpParam.extIds,
|
||||||
remove = ext.find((p) => p.key === record.key),
|
remove = ext.find(p => p.key === record.key),
|
||||||
index = ext.indexOf(remove);
|
index = ext.indexOf(remove)
|
||||||
|
|
||||||
ext.splice(index, 1);
|
ext.splice(index, 1)
|
||||||
console.log(ext)
|
console.log(ext)
|
||||||
|
|
||||||
// this.form.current.setFieldsValue({
|
// this.form.current.setFieldsValue({
|
||||||
@@ -232,14 +242,16 @@ export default class form extends Component {
|
|||||||
// }
|
// }
|
||||||
// })
|
// })
|
||||||
|
|
||||||
this.setState({
|
this.setState(
|
||||||
|
{
|
||||||
sysEmpParam: {
|
sysEmpParam: {
|
||||||
extIds: ext
|
extIds: ext,
|
||||||
}
|
},
|
||||||
}, () => {
|
},
|
||||||
|
() => {
|
||||||
//console.log(this.form.current.getFieldsValue())
|
//console.log(this.form.current.getFieldsValue())
|
||||||
})
|
}
|
||||||
|
)
|
||||||
}
|
}
|
||||||
//#endregion
|
//#endregion
|
||||||
renderExtInfoTable() {
|
renderExtInfoTable() {
|
||||||
@@ -251,50 +263,63 @@ export default class form extends Component {
|
|||||||
pagination={false}
|
pagination={false}
|
||||||
size="small"
|
size="small"
|
||||||
bordered
|
bordered
|
||||||
rowKey={(record) => record.key}
|
rowKey={record => record.key}
|
||||||
footer={
|
footer={() => (
|
||||||
() =>
|
|
||||||
<Button
|
<Button
|
||||||
block
|
block
|
||||||
icon={
|
icon={<AntIcon type="plus" />}
|
||||||
<AntIcon type="plus" />
|
|
||||||
}
|
|
||||||
type="dashed"
|
type="dashed"
|
||||||
onClick={() => this.onAddExtData()}>
|
onClick={() => this.onAddExtData()}
|
||||||
新增一项</Button>
|
|
||||||
}
|
|
||||||
>
|
>
|
||||||
</Table>
|
新增一项
|
||||||
|
</Button>
|
||||||
|
)}
|
||||||
|
></Table>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
return (
|
return (
|
||||||
<Form
|
<Form initialValues={initialValues} ref={this.form} className="yo-form">
|
||||||
initialValues={initialValues}
|
<Spin spinning={this.state.loading} indicator={<AntIcon type="loading" />}>
|
||||||
ref={this.form}
|
|
||||||
className="yo-form"
|
|
||||||
>
|
|
||||||
<Spin
|
|
||||||
spinning={this.state.loading}
|
|
||||||
indicator={<AntIcon type="loading" />}>
|
|
||||||
<h3 className="h3">基本信息</h3>
|
<h3 className="h3">基本信息</h3>
|
||||||
<div className="yo-form-group">
|
<div className="yo-form-group">
|
||||||
<Form.Item label="账号" name="account" rules={[{ required: true, message: '请输入账号', trigger: 'blur' }]}>
|
<Form.Item
|
||||||
|
label="账号"
|
||||||
|
name="account"
|
||||||
|
rules={[{ required: true, message: '请输入账号', trigger: 'blur' }]}
|
||||||
|
>
|
||||||
<Input autoComplete="off" placeholder="请输入账号" />
|
<Input autoComplete="off" placeholder="请输入账号" />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item label="姓名" name="name" rules={[{ required: true, message: '请输入姓名', trigger: 'blur' }]}>
|
<Form.Item
|
||||||
|
label="姓名"
|
||||||
|
name="name"
|
||||||
|
rules={[{ required: true, message: '请输入姓名', trigger: 'blur' }]}
|
||||||
|
>
|
||||||
<Input autoComplete="off" placeholder="请输入姓名" />
|
<Input autoComplete="off" placeholder="请输入姓名" />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
{this.props.mode == 'add' && <>
|
{this.props.mode == 'add' && (
|
||||||
<Form.Item label="密码" name="password" rules={[{ required: true, message: '请输入密码', trigger: 'blur' }]}>
|
<>
|
||||||
|
<Form.Item
|
||||||
|
label="密码"
|
||||||
|
name="password"
|
||||||
|
rules={[
|
||||||
|
{ required: true, message: '请输入密码', trigger: 'blur' },
|
||||||
|
]}
|
||||||
|
>
|
||||||
<Input.Password autoComplete="off" placeholder="请输入密码" />
|
<Input.Password autoComplete="off" placeholder="请输入密码" />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item label="确认密码" name="confirm" rules={[{ required: true, message: '请确认密码', trigger: 'blur' }]}>
|
<Form.Item
|
||||||
|
label="确认密码"
|
||||||
|
name="confirm"
|
||||||
|
rules={[
|
||||||
|
{ required: true, message: '请确认密码', trigger: 'blur' },
|
||||||
|
]}
|
||||||
|
>
|
||||||
<Input.Password autoComplete="off" placeholder="请确认密码" />
|
<Input.Password autoComplete="off" placeholder="请确认密码" />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</>
|
</>
|
||||||
}
|
)}
|
||||||
<Form.Item label="昵称" name="nickName">
|
<Form.Item label="昵称" name="nickName">
|
||||||
<Input autoComplete="off" placeholder="请输入昵称" />
|
<Input autoComplete="off" placeholder="请输入昵称" />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
@@ -308,11 +333,19 @@ export default class form extends Component {
|
|||||||
<span>保密</span>
|
<span>保密</span>
|
||||||
</Radio.Button>
|
</Radio.Button>
|
||||||
<Radio.Button value={1}>
|
<Radio.Button value={1}>
|
||||||
<AntIcon style={{ color: '#1890ff' }} className="mr-xxs" type="man" />
|
<AntIcon
|
||||||
|
style={{ color: '#1890ff' }}
|
||||||
|
className="mr-xxs"
|
||||||
|
type="man"
|
||||||
|
/>
|
||||||
<span>男</span>
|
<span>男</span>
|
||||||
</Radio.Button>
|
</Radio.Button>
|
||||||
<Radio.Button value={2}>
|
<Radio.Button value={2}>
|
||||||
<AntIcon style={{ color: '#eb2f96' }} className="mr-xxs" type="woman" />
|
<AntIcon
|
||||||
|
style={{ color: '#eb2f96' }}
|
||||||
|
className="mr-xxs"
|
||||||
|
type="woman"
|
||||||
|
/>
|
||||||
<span>女</span>
|
<span>女</span>
|
||||||
</Radio.Button>
|
</Radio.Button>
|
||||||
</Radio.Group>
|
</Radio.Group>
|
||||||
@@ -332,7 +365,8 @@ export default class form extends Component {
|
|||||||
<Form.Item
|
<Form.Item
|
||||||
label="所属组织机构"
|
label="所属组织机构"
|
||||||
name={['sysEmpParam', 'orgId']}
|
name={['sysEmpParam', 'orgId']}
|
||||||
rules={[{ required: true, message: '所属组织机构' }]}>
|
rules={[{ required: true, message: '所属组织机构' }]}
|
||||||
|
>
|
||||||
<TreeSelect
|
<TreeSelect
|
||||||
treeData={this.state.options.orgData}
|
treeData={this.state.options.orgData}
|
||||||
dropdownStyle={{ maxHeight: '300px', overflow: 'auto' }}
|
dropdownStyle={{ maxHeight: '300px', overflow: 'auto' }}
|
||||||
@@ -340,26 +374,18 @@ export default class form extends Component {
|
|||||||
placeholder="请选择所属组织机构"
|
placeholder="请选择所属组织机构"
|
||||||
/>
|
/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item
|
<Form.Item label="工号" name={['sysEmpParam', 'jobNum']}>
|
||||||
label="工号"
|
<Input autoComplete="off" placeholder="请输入工号" />
|
||||||
name={['sysEmpParam', 'jobNum']} >
|
|
||||||
<Input
|
|
||||||
autoComplete="off"
|
|
||||||
placeholder="请输入工号" />
|
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item label="职位信息" name={['sysEmpParam', 'posIdList']}>
|
<Form.Item label="职位信息" name={['sysEmpParam', 'posIdList']}>
|
||||||
<Select
|
<Select mode="multiple" placeholder="请选择职位信息">
|
||||||
mode="multiple"
|
{this.state.options.posData.map(item => {
|
||||||
placeholder="请选择职位信息">
|
return (
|
||||||
{
|
<Select.Option key={item.id} value={item.id}>
|
||||||
this.state.options.posData.map(item => {
|
{item.name}
|
||||||
return <Select.Option
|
</Select.Option>
|
||||||
key={item.id}
|
)
|
||||||
value={item.id}
|
})}
|
||||||
>
|
|
||||||
{item.name}</Select.Option>
|
|
||||||
})
|
|
||||||
}
|
|
||||||
</Select>
|
</Select>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -155,12 +155,12 @@ export default class index extends Component {
|
|||||||
/**
|
/**
|
||||||
* 打开新增/编辑弹窗
|
* 打开新增/编辑弹窗
|
||||||
* @param {*} modal
|
* @param {*} modal
|
||||||
* @param {*} record
|
* @param {*} id
|
||||||
*/
|
*/
|
||||||
onOpen(modal, record) {
|
onOpen(modal, id) {
|
||||||
modal.current.open({
|
modal.current.open({
|
||||||
orgId: this.selectId,
|
orgId: this.selectId,
|
||||||
record,
|
id,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -191,24 +191,25 @@ export default class index extends Component {
|
|||||||
|
|
||||||
//#region 自定义方法
|
//#region 自定义方法
|
||||||
renderItem(record) {
|
renderItem(record) {
|
||||||
|
const { id, account, name, nickName, avatar, sex, phone, email, status } = record
|
||||||
return (
|
return (
|
||||||
<List.Item
|
<List.Item
|
||||||
key={record.id}
|
key={id}
|
||||||
actions={[
|
actions={[
|
||||||
<Auth auth="sysUser:edit">
|
<Auth auth="sysUser:edit">
|
||||||
<a onClick={() => this.onOpen(this.editForm, record)}>编辑</a>
|
<a onClick={() => this.onOpen(this.editForm, id)}>编辑</a>
|
||||||
</Auth>,
|
</Auth>,
|
||||||
<Auth auth="sysOrg:delete">
|
<Auth auth="sysOrg:delete">
|
||||||
<Popconfirm
|
<Popconfirm
|
||||||
placement="topRight"
|
placement="topRight"
|
||||||
title="是否确认删除"
|
title="是否确认删除"
|
||||||
onConfirm={() => this.onDelete(record)}
|
onConfirm={() => this.onDelete(id)}
|
||||||
>
|
>
|
||||||
<a>删除</a>
|
<a>删除</a>
|
||||||
</Popconfirm>
|
</Popconfirm>
|
||||||
</Auth>,
|
</Auth>,
|
||||||
<Auth aut="sysUser:resetPwd">
|
<Auth aut="sysUser:resetPwd">
|
||||||
<a onClick={() => this.onResetPassword(record)}>重置密码</a>
|
<a onClick={() => this.onResetPassword(id)}>重置密码</a>
|
||||||
</Auth>,
|
</Auth>,
|
||||||
<Auth auth={{ sysUser: [['grantRole'], ['grantData']] }}>
|
<Auth auth={{ sysUser: [['grantRole'], ['grantData']] }}>
|
||||||
<Dropdown
|
<Dropdown
|
||||||
@@ -217,14 +218,14 @@ export default class index extends Component {
|
|||||||
<Menu>
|
<Menu>
|
||||||
{auth('sysUser:grantRole') && (
|
{auth('sysUser:grantRole') && (
|
||||||
<Menu.Item key="1">
|
<Menu.Item key="1">
|
||||||
<a onClick={() => this.onOpen(this.roleForm, record)}>
|
<a onClick={() => this.onOpen(this.roleForm, id)}>
|
||||||
授权角色
|
授权角色
|
||||||
</a>
|
</a>
|
||||||
</Menu.Item>
|
</Menu.Item>
|
||||||
)}
|
)}
|
||||||
{auth('sysUser:grantData') && (
|
{auth('sysUser:grantData') && (
|
||||||
<Menu.Item key="2">
|
<Menu.Item key="2">
|
||||||
<a onClick={() => this.onOpen(this.dataForm, record)}>
|
<a onClick={() => this.onOpen(this.dataForm, id)}>
|
||||||
授权额外数据
|
授权额外数据
|
||||||
</a>
|
</a>
|
||||||
</Menu.Item>
|
</Menu.Item>
|
||||||
@@ -246,29 +247,28 @@ export default class index extends Component {
|
|||||||
type="avatar"
|
type="avatar"
|
||||||
shape="square"
|
shape="square"
|
||||||
size={48}
|
size={48}
|
||||||
id={record.avatar}
|
id={avatar}
|
||||||
icon={<AntIcon type="user" />}
|
icon={<AntIcon type="user" />}
|
||||||
/>
|
/>
|
||||||
}
|
}
|
||||||
title={record.nickName || record.name}
|
title={nickName || name}
|
||||||
description={record.account}
|
description={account}
|
||||||
/>
|
/>
|
||||||
<Descriptions className="flex-1" column={2}>
|
<Descriptions className="flex-1" column={2}>
|
||||||
<Descriptions.Item label="性别">
|
<Descriptions.Item label="性别">
|
||||||
{this.bindCodeValue(record.sex, 'sex')}
|
{this.bindCodeValue(sex, 'sex')}
|
||||||
</Descriptions.Item>
|
</Descriptions.Item>
|
||||||
<Descriptions.Item label="手机">{record.phone || '未设置'}</Descriptions.Item>
|
<Descriptions.Item label="手机">{phone || '未设置'}</Descriptions.Item>
|
||||||
<Descriptions.Item label="邮箱">{record.email || '未设置'}</Descriptions.Item>
|
<Descriptions.Item label="邮箱">{email || '未设置'}</Descriptions.Item>
|
||||||
</Descriptions>
|
</Descriptions>
|
||||||
<div className="yo-list-content--h">
|
<div className="yo-list-content--h">
|
||||||
<Auth auth="sysUser:changeStatus">
|
<Auth auth="sysUser:changeStatus">
|
||||||
<div className="yo-list-content--h--item text-center">
|
<div className="yo-list-content--h--item text-center">
|
||||||
<Switch
|
<Switch
|
||||||
checked={!record.status}
|
checked={!status}
|
||||||
loading={record.statusChanging}
|
|
||||||
checkedChildren={this.bindCodeValue(0, 'common_status')}
|
checkedChildren={this.bindCodeValue(0, 'common_status')}
|
||||||
unCheckedChildren={this.bindCodeValue(1, 'common_status')}
|
unCheckedChildren={this.bindCodeValue(1, 'common_status')}
|
||||||
onChange={checked => this.onSetUserStatus(record, checked)}
|
onChange={checked => this.onSetUserStatus(id, checked)}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</Auth>
|
</Auth>
|
||||||
@@ -277,12 +277,12 @@ export default class index extends Component {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
onSetUserStatus(record, checked) {
|
onSetUserStatus(id, checked) {
|
||||||
this.onAction(apiAction.changeStatus({ id: record.id, status: +!checked }), '设置成功')
|
this.onAction(apiAction.changeStatus({ id, status: +!checked }), '设置成功')
|
||||||
}
|
}
|
||||||
|
|
||||||
onResetPassword(record) {
|
onResetPassword(id) {
|
||||||
this.onAction(apiAction.resetPwd(record), '重置成功')
|
this.onAction(apiAction.resetPwd({ id }), '重置成功')
|
||||||
}
|
}
|
||||||
//#endregion
|
//#endregion
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ export default class role extends Component {
|
|||||||
form = React.createRef()
|
form = React.createRef()
|
||||||
|
|
||||||
// 初始化数据
|
// 初始化数据
|
||||||
record = {}
|
id = ''
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* mount后回调
|
* mount后回调
|
||||||
@@ -28,10 +28,10 @@ export default class role extends Component {
|
|||||||
this.props.created && this.props.created(this)
|
this.props.created && this.props.created(this)
|
||||||
}
|
}
|
||||||
async fillData(params) {
|
async fillData(params) {
|
||||||
this.record = cloneDeep(params.record)
|
this.id = params.id
|
||||||
//#region 从后端转换成前段所需格式
|
//#region 从后端转换成前段所需格式
|
||||||
const roleData = await this.loadRoleData()
|
const roleData = await this.loadRoleData()
|
||||||
const roles = await this.loadRole(this.record.id)
|
const roles = await this.loadRole(this.id)
|
||||||
this.setState({
|
this.setState({
|
||||||
options: {
|
options: {
|
||||||
roleData,
|
roleData,
|
||||||
@@ -39,7 +39,7 @@ export default class role extends Component {
|
|||||||
roles,
|
roles,
|
||||||
})
|
})
|
||||||
this.form.current.setFieldsValue({
|
this.form.current.setFieldsValue({
|
||||||
id: this.record.id,
|
id: this.id,
|
||||||
grantRoleIdList: roles,
|
grantRoleIdList: roles,
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -59,8 +59,8 @@ export default class role extends Component {
|
|||||||
const valid = await form.validateFields()
|
const valid = await form.validateFields()
|
||||||
if (valid) {
|
if (valid) {
|
||||||
const postData = form.getFieldsValue()
|
const postData = form.getFieldsValue()
|
||||||
if (this.record) {
|
if (this.id) {
|
||||||
postData.id = this.record.id
|
postData.id = this.id
|
||||||
}
|
}
|
||||||
//#region 从前段转换后端所需格式
|
//#region 从前段转换后端所需格式
|
||||||
//#endregion
|
//#endregion
|
||||||
|
|||||||
Reference in New Issue
Block a user