From 07d1135a1913a919679dc23f0a38b9b61987171f Mon Sep 17 00:00:00 2001 From: zhongshujie <2862698242@qq.com> Date: 星期五, 01 八月 2025 15:29:37 +0800 Subject: [PATCH] Merge branch 'master' of http://182.92.203.7:2001/r/OAManage --- src/components/selectUser/index.tsx | 163 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 163 insertions(+), 0 deletions(-) diff --git a/src/components/selectUser/index.tsx b/src/components/selectUser/index.tsx new file mode 100644 index 0000000..1102bc2 --- /dev/null +++ b/src/components/selectUser/index.tsx @@ -0,0 +1,163 @@ +import { postOaStaffGetStaffList } from "@/services/WebApi/oaStaff"; +import { ProTable } from "@ant-design/pro-components"; +import { useModel } from "@umijs/max"; +import { Modal } from "antd"; +import React, { useRef, useState } from "react"; +import styles from "./index.less"; + +type SelectUserProps = { + title?: string; + mask?: boolean; + width?: string | number; + height?: string | number; + open?: boolean; + destroyOnClose?: boolean; + footerBtn?: FooterBtn; + onCancel?: () => void; + onConfirm?: (user: any) => void; +}; + +interface FooterBtn { + okBtn?: { + text?: string; + loading?: boolean; + disabled?: boolean; + click?: () => void; + }; + cancelBtn?: { + text?: string; + disabled?: boolean; + }; +} + +const SelectUser: React.FC<SelectUserProps> = (props) => { + const { + title, + mask, + width, + height, + open, + footerBtn, + destroyOnClose = false, + onConfirm, + onCancel, + } = props; + const [disabled, setDisabled] = useState(true); + const actionRef = useRef(null); + const { initialState, setInitialState } = useModel("@@initialState"); + const [selecRow, setSelecRow] = useState<any>([]) + const [selecRowKey, setSelecRowKey] = useState<any>([]) + + const columns = [ + { + title: "鍛樺伐濮撳悕", + key: "name", + dataIndex: "name", + align: "center", + search: false, + + }, + { + title: "閮ㄩ棬", + key: "department", + dataIndex: "department", + align: "center", + search: false, + render: (text, record) => { + return <span>{record.department.name}</span>; + }, + }, + { + title: "鑱屼綅", + key: "role", + dataIndex: "role", + align: "center", + search: false, + render: (text, record) => { + + return <span>{record?.role?.name || "-"}</span>; + }, + }, + { + title: "鍩庡競", + key: "city", + dataIndex: "city", + align: "center", + search: false, + render: (text, record) => { + console.log(record.city, "record"); + + return <span>{record?.city?.name || "-"}</span>; + }, + }, + ]; + + const handleOk = () => { + console.log(selecRow, "selecRow"); + onConfirm && onConfirm(selecRow[0]) + }; + const handleCancel = () => { }; + + const getTableData = (params: { current: number; pageSize: number }) => { + console.log(params, "params"); + const body = { + start: (params.current - 1) * params.pageSize, + size: params.pageSize, + filterList: [], + searchList: [], + orgId: 5, + // orgId: initialState?.appInfo?.org?.id, + }; + return postOaStaffGetStaffList(body).then((res) => { + console.log(res, "res"); + return { + data: res.datas, + total: res.totalSize, + }; + }); + }; + + return ( + <Modal + title={ + <div + onMouseOver={() => { + setDisabled(false); + }} + onMouseOut={() => { + setDisabled(true); + }} + > + {title} + </div> + } + open={true} + width={width || "50%"} + onOk={handleOk} + onCancel={onCancel} + centered={true} + > + <div style={{ height: height || "80vh" }} className={styles.dialogContent}> + <ProTable + actionRef={actionRef} + rowSelection={{ + type: 'radio', + fixed: 'left', + selectedRowKeys: selecRowKey, + onChange: (selectedRowKeys, selectedRows) => { + console.log(selectedRowKeys, selectedRows, 'selectedRows'); + setSelecRowKey(selectedRowKeys) + setSelecRow(selectedRows) + } + }} + rowKey="id" + columns={columns} + search={false} + request={getTableData} + /> + </div> + </Modal> + ); +}; + +export default SelectUser; -- Gitblit v1.9.1