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