| | |
| | | } |
| | | |
| | | useEffect(() => { |
| | | const handleResize = () => setBoxHeight(window.innerHeight - 420); |
| | | const handleResize = () => setBoxHeight(window.innerHeight - 320); |
| | | window.addEventListener('resize', handleResize); |
| | | handleResize(); |
| | | |
| | |
| | | title: 'No', |
| | | dataIndex: 'index', |
| | | valueType: 'indexBorder', |
| | | width: 30, |
| | | width: 48, |
| | | }, |
| | | { |
| | | title: '部门', |
| | | dataIndex: 'deptId$', |
| | | valueType: 'text', |
| | | hidden: false, |
| | | width: 100, |
| | | render: (_, record) => { |
| | | if (_ && _ !== '-') { |
| | | return <Tag color={""}>{_}</Tag> |
| | |
| | | valueType: 'text', |
| | | hidden: false, |
| | | copyable: true, |
| | | width: 100, |
| | | filterDropdown: (props) => <TextFilter |
| | | name='username' |
| | | {...props} |
| | |
| | | dataIndex: 'nickname', |
| | | valueType: 'text', |
| | | hidden: false, |
| | | width: 100, |
| | | filterDropdown: (props) => <TextFilter |
| | | name='nickname' |
| | | {...props} |
| | |
| | | dataIndex: 'password', |
| | | valueType: 'password', |
| | | hidden: false, |
| | | width: 100, |
| | | filterDropdown: (props) => <TextFilter |
| | | name='password' |
| | | {...props} |
| | |
| | | dataIndex: 'avatar', |
| | | valueType: 'text', |
| | | hidden: false, |
| | | width: 140, |
| | | filterDropdown: (props) => <TextFilter |
| | | name='avatar' |
| | | {...props} |
| | |
| | | dataIndex: 'code', |
| | | valueType: 'text', |
| | | hidden: false, |
| | | width: 140, |
| | | filterDropdown: (props) => <TextFilter |
| | | name='code' |
| | | {...props} |
| | |
| | | dataIndex: 'sex$', |
| | | valueType: 'text', |
| | | hidden: false, |
| | | width: 80, |
| | | filterDropdown: (props) => <SelectFilter |
| | | name='sex' |
| | | {...props} |
| | |
| | | dataIndex: 'phone', |
| | | valueType: 'text', |
| | | hidden: false, |
| | | width: 100, |
| | | filterDropdown: (props) => <TextFilter |
| | | name='phone' |
| | | {...props} |
| | |
| | | dataIndex: 'email', |
| | | valueType: 'text', |
| | | hidden: false, |
| | | width: 140, |
| | | filterDropdown: (props) => <TextFilter |
| | | name='email' |
| | | {...props} |
| | |
| | | dataIndex: 'emailVerified$', |
| | | valueType: 'text', |
| | | hidden: false, |
| | | width: 140, |
| | | filterDropdown: (props) => <SelectFilter |
| | | name='emailVerified' |
| | | {...props} |
| | |
| | | dataIndex: 'realName', |
| | | valueType: 'text', |
| | | hidden: false, |
| | | width: 140, |
| | | filterDropdown: (props) => <TextFilter |
| | | name='realName' |
| | | {...props} |
| | |
| | | dataIndex: 'idCard', |
| | | valueType: 'text', |
| | | hidden: false, |
| | | width: 140, |
| | | filterDropdown: (props) => <TextFilter |
| | | name='idCard' |
| | | {...props} |
| | |
| | | dataIndex: 'birthday', |
| | | valueType: 'text', |
| | | hidden: false, |
| | | width: 140, |
| | | filterDropdown: (props) => <TextFilter |
| | | name='birthday' |
| | | {...props} |
| | |
| | | dataIndex: 'introduction', |
| | | valueType: 'text', |
| | | hidden: false, |
| | | width: 140, |
| | | filterDropdown: (props) => <TextFilter |
| | | name='introduction' |
| | | {...props} |
| | |
| | | dataIndex: 'status$', |
| | | valueType: 'text', |
| | | hidden: false, |
| | | width: 80, |
| | | render: (_, record) => { |
| | | const status = statusMap[record.status] |
| | | return <Tag color={status.color}>{status.text}</Tag> |
| | |
| | | dataIndex: 'createTime$', |
| | | valueType: 'text', |
| | | hidden: false, |
| | | width: 140, |
| | | filterDropdown: (props) => <DatetimeRangeFilter |
| | | name='createTime' |
| | | {...props} |
| | |
| | | dataIndex: 'updateTime$', |
| | | valueType: 'text', |
| | | hidden: false, |
| | | width: 140, |
| | | filterDropdown: (props) => <DatetimeRangeFilter |
| | | name='updateTime' |
| | | {...props} |
| | |
| | | dataIndex: 'updateBy$', |
| | | valueType: 'text', |
| | | hidden: false, |
| | | width: 140, |
| | | filterDropdown: (props) => <LinkFilter |
| | | name='updateBy' |
| | | major='user' |
| | |
| | | dataIndex: 'memo', |
| | | valueType: 'text', |
| | | hidden: false, |
| | | width: 140, |
| | | filterDropdown: (props) => <TextFilter |
| | | name='memo' |
| | | {...props} |
| | |
| | | { |
| | | title: '操作', |
| | | dataIndex: 'option', |
| | | width: 120, |
| | | valueType: 'option', |
| | | width : 180, |
| | | render: (_, record) => [ |
| | | <Button |
| | | type="link" |
| | |
| | | > |
| | | <Row gutter={[16, 24]}> |
| | | <Col lg={6} md={24}> |
| | | <Card title="部门" style={{ width: '100%', height: 'calc(100vh - 252px)' }}> |
| | | <Card title="部门" style={{ width: '100%', height: 'calc(100vh - 160px)' }}> |
| | | <Input |
| | | style={{ marginBottom: 10 }} |
| | | placeholder="请输入" |
| | |
| | | }) |
| | | }} |
| | | /> |
| | | <div style={{ height: 'calc(100vh - 402px)', overflowY: 'auto' }}> |
| | | <div style={{ height: 'calc(100vh - 325px)', overflowY: 'auto' }}> |
| | | {deptTreeLoading ? ( |
| | | <Skeleton active /> |
| | | ) : ( |
| | |
| | | formRef={formTableRef} |
| | | columns={columns} |
| | | cardBordered |
| | | scroll={{ y: boxHeight }} |
| | | size='small' |
| | | // scroll={{ y: boxHeight }} |
| | | dateFormatter="string" |
| | | pagination={{ pageSize: 20 }} |
| | | pagination={{ pageSize: 12 }} |
| | | search={false} |
| | | toolbar={{ |
| | | search: { |
| | |
| | | }} |
| | | /> |
| | | </Col> |
| | | |
| | | <Edit |
| | | open={modalVisible} |
| | | values={currentRow || {}} |
| | | treeData={deptTreeData} |
| | | onCancel={ |
| | | () => { |
| | | setModalVisible(false); |
| | | setCurrentRow(undefined); |
| | | } |
| | | } |
| | | onSubmit={async (values) => { |
| | | let ok = false; |
| | | if (values.id) { |
| | | ok = await handleUpdate({ ...values }) |
| | | } else { |
| | | ok = await handleSave({ ...values }) |
| | | } |
| | | if (ok) { |
| | | setModalVisible(false); |
| | | setCurrentRow(undefined); |
| | | if (actionRef.current) { |
| | | actionRef.current.reload(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | /> |
| | | |
| | | <Pwd |
| | | open={pwdModalVisible} |
| | | values={currentRow || {}} |
| | | onCancel={ |
| | | () => { |
| | | setPwdModalVisible(false); |
| | | setCurrentRow(undefined); |
| | | } |
| | | } |
| | | onSubmit={async (values) => { |
| | | let ok = false; |
| | | if (values.id) { |
| | | ok = await handlePwd({ ...values }) |
| | | } |
| | | if (ok) { |
| | | setPwdModalVisible(false); |
| | | setCurrentRow(undefined); |
| | | if (actionRef.current) { |
| | | actionRef.current.reload(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | /> |
| | | |
| | | <AssignRole |
| | | open={assignModalVisible} |
| | | values={currentRow || {}} |
| | | onCancel={ |
| | | () => { |
| | | setAssignModalVisible(false); |
| | | setCurrentRow(undefined); |
| | | } |
| | | } |
| | | onSubmit={async (values) => { |
| | | let ok = false; |
| | | if (values.id) { |
| | | ok = await handleUpdate({ ...values }) |
| | | } |
| | | if (ok) { |
| | | setAssignModalVisible(false); |
| | | setCurrentRow(undefined); |
| | | if (actionRef.current) { |
| | | actionRef.current.reload(); |
| | | } |
| | | } |
| | | }} |
| | | /> |
| | | </Row> |
| | | |
| | | <Edit |
| | | open={modalVisible} |
| | | values={currentRow || {}} |
| | | treeData={deptTreeData} |
| | | onCancel={ |
| | | () => { |
| | | setModalVisible(false); |
| | | setCurrentRow(undefined); |
| | | } |
| | | } |
| | | onSubmit={async (values) => { |
| | | let ok = false; |
| | | if (values.id) { |
| | | ok = await handleUpdate({ ...values }) |
| | | } else { |
| | | ok = await handleSave({ ...values }) |
| | | } |
| | | if (ok) { |
| | | setModalVisible(false); |
| | | setCurrentRow(undefined); |
| | | if (actionRef.current) { |
| | | actionRef.current.reload(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | /> |
| | | |
| | | <Pwd |
| | | open={pwdModalVisible} |
| | | values={currentRow || {}} |
| | | onCancel={ |
| | | () => { |
| | | setPwdModalVisible(false); |
| | | setCurrentRow(undefined); |
| | | } |
| | | } |
| | | onSubmit={async (values) => { |
| | | let ok = false; |
| | | if (values.id) { |
| | | ok = await handlePwd({ ...values }) |
| | | } |
| | | if (ok) { |
| | | setPwdModalVisible(false); |
| | | setCurrentRow(undefined); |
| | | if (actionRef.current) { |
| | | actionRef.current.reload(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | /> |
| | | |
| | | <AssignRole |
| | | open={assignModalVisible} |
| | | values={currentRow || {}} |
| | | onCancel={ |
| | | () => { |
| | | setAssignModalVisible(false); |
| | | setCurrentRow(undefined); |
| | | } |
| | | } |
| | | onSubmit={async (values) => { |
| | | let ok = false; |
| | | if (values.id) { |
| | | ok = await handleUpdate({ ...values }) |
| | | } |
| | | if (ok) { |
| | | setAssignModalVisible(false); |
| | | setCurrentRow(undefined); |
| | | if (actionRef.current) { |
| | | actionRef.current.reload(); |
| | | } |
| | | } |
| | | }} |
| | | /> |
| | | |
| | | </PageContainer> |
| | | ); |
| | | }; |