import React, { useEffect, useState } from 'react'; import { connect } from 'react-redux'; import { DeleteOutlined, EllipsisOutlined, FormOutlined } from '@ant-design/icons'; import { Spin, Space, Button, Popconfirm, Row, Col, Tree, Table, Card, Switch, Tooltip } from 'antd'; import ProTable from '@ant-design/pro-table'; import { getDepMessage, getDepUser, createUser, updateUser, delUser, resetPwd, createDep, delDep, updateDep } from '../actions/user'; import UserModal from '../components/userModal'; import ResetPwd from '../components/resetPwd'; import DepModal from '../components/depModal'; const TreeNode = Tree.TreeNode; const UserManage = (props) => { const { dispatch, loading, depMessage, depUser, clientHeight } = props const [modalVisible, setModalVisible] = useState(false); const [modalType, setModalType] = useState(); const [modalRecord, setModalRecord] = useState(); const [pwdModalVisible, setPwdModalVisible] = useState(false); const [depSelectedKeys, setDepSelectedKeys] = useState([]) const [rowSelected, setRowSelected] = useState([]) const [depModalVisible, setDepModalVisible] = useState(false); const [depModalType, setDepModalType] = useState(); const [depModalRecord, setDepModalRecord] = useState(); const [selectedTree, setSelectedTree] = useState(); useEffect(() => { dispatch(getDepMessage()) }, []) useEffect(() => { if (depMessage.length) { setDepSelectedKeys([depMessage[0].id]) dispatch(getDepUser(depMessage[0].id)) } }, [depMessage]) const columns = [ { title: '姓名', dataIndex: 'name', }, { title: '手机号(用户名)', dataIndex: 'phone', }, { title: '邮箱', dataIndex: 'email', }, { title: '启用状态', dataIndex: 'enable', render: (_, r) => { return } }, { title: '操作', dataIndex: 'action', render: (dom, record) => { // return record.username == 'SuperAdmin' ? '' : [ // , // { // delUsers([record.id]) // }} // > // // , // // ] return [ , { delUsers([record.id]) }} > , ] }, }, ]; //弹窗确认 const onConfirm = (values) => { if (modalType == 'edit') { dispatch(updateUser(modalRecord.id, values.contract)).then(res => { if (res.success) { setModalVisible(false); dispatch(getDepUser(depSelectedKeys[0])); } }); } else { dispatch(createUser(values.contract)).then(res => { if (res.success) { setModalVisible(false); dispatch(getDepMessage()); } }); } } //打开弹窗 const openModal = (type, record) => { setModalVisible(true); setModalType(type); if (type == 'edit') { setModalRecord(record); } else { setModalRecord(null); } } //打开部门弹窗 const openDepModal = (type, record) => { setDepModalVisible(true) setDepModalType(type) if (type == 'edit') { setDepModalRecord(record); } else { setModalRecord(null); } } //删除用户 const delUsers = (ids, type) => { dispatch(delUser(ids)).then(res => { dispatch(getDepUser(depSelectedKeys[0])); if (type == 'batch') { setRowSelected([]); } }); } //重置密码 const onPwdConfirm = (values) => { dispatch(resetPwd(modalRecord.id, { password: values.password })).then(res => { if (res.success) { setPwdModalVisible(false); dispatch(getDepUser(depSelectedKeys[0])); } }); } //部门新增及编辑 const onDepConfirm = (data) => { if (depModalType == 'edit') { dispatch(updateDep(data)).then(res => { if (res.success) { setDepModalVisible(false); dispatch(getDepMessage()); } }); } else { dispatch(createDep(data)).then(res => { if (res.success) { setDepModalVisible(false); dispatch(getDepMessage()); } }); } } // 删除部门 const delDepartment = (id) => { dispatch(delDep(id)).then(res => { dispatch(getDepMessage()) }); } const renderTree = (item, id) => { return
{item.name}
{ selectedTree == id ? <> { setDepModalRecord(item) setDepModalVisible(true) setDepModalType('edit') }} /> { delDepartment(id) }}> : null }
} return (
{ depMessage.length ? { if (e.selected) { setSelectedTree(selectedKeys) setDepSelectedKeys(selectedKeys) dispatch(getDepUser(selectedKeys[0])) } }} style={{ paddingTop: 20 }} > { depMessage?.map((s, index) => { return { s.subordinate.map(k => { return { setIShowIcon(k.id) }} onMouseOut={() => { setIShowIcon(null) }}> { k.subordinate.map(i => { return { setIShowIcon(i.id) }} onMouseOut={() => { setIShowIcon(null) }}> }) } }) } }) } : '' } { setRowSelected(selectedRowKeys); }, getCheckboxProps: (record) => { return { disabled: record.username === 'SuperAdmin', } }, }} options={false} search={false} rowKey="id" toolBarRender={() => [ {/* */} { delUsers(rowSelected, 'batch') }}> ]} /> { depMessage.length && modalVisible ? : '' } {pwdModalVisible ? : ''} {depModalVisible ? : ''}
) } function mapStateToProps(state) { const { depMessage, depUser, global } = state; // console.log(state); return { clientHeight: global.clientHeight, loading: depMessage.isRequesting, depMessage: depMessage.data || [], depUser: depUser.data || [] }; } export default connect(mapStateToProps)(UserManage);