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/pages/organizationDesign/departmentalEmployeeInformation/index.tsx |  389 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 389 insertions(+), 0 deletions(-)

diff --git a/src/pages/organizationDesign/departmentalEmployeeInformation/index.tsx b/src/pages/organizationDesign/departmentalEmployeeInformation/index.tsx
new file mode 100644
index 0000000..09daedd
--- /dev/null
+++ b/src/pages/organizationDesign/departmentalEmployeeInformation/index.tsx
@@ -0,0 +1,389 @@
+import { PageContainer } from "@ant-design/pro-components"
+import styles from './index.less'
+import { Col, DatePicker, Divider, Form, Input, Radio, Row, Select, Tree } from "antd"
+import { useEffect, useState } from "react";
+import { DownOutlined } from "@ant-design/icons";
+import { postOaDepartmentGetDepartmentList } from "@/services/WebApi/oaDepartment";
+import { postOaStaffGetStaffList } from "@/services/WebApi/oaStaff";
+import TextArea from "antd/es/input/TextArea";
+
+
+const departmentalEmployeeInformation: React.FC = () => {
+    const [expandedKeys, setExpandedKeys] = useState([]);
+    const [treeData, setTreeData] = useState([]);
+    const [deplist, setDepList] = useState([]);
+    const [birthday, setBirthday] = useState("")
+    const [jobList, setJobList] = useState([]);
+    const [oaJobLevelList, setOaJobLevelList] = useState([]);
+    const [formRef] = Form.useForm();
+    const [jobPositionList, setJobPositionList] = useState([]);
+    const [currentTreeNode, setCurrentTreeNode] = useState({});
+    useEffect(() => {
+        getDepList();
+    }, [])
+    useEffect(() => {
+        console.log(currentTreeNode, "currentTreeNode");
+        if (currentTreeNode && currentTreeNode?.roleId) {
+            formRef.setFieldsValue(currentTreeNode)
+        }
+    }, [currentTreeNode])
+
+    const findDepFun = (list, staff) => {
+        for (let i = 0; i < list.length; i++) {
+            const item = list[i];
+            if (item.id === staff.department?.id) {
+                item.children.push(staff);
+                return; 
+            }
+        }
+    }
+    const getStaffList = async (roleList) => {
+        const res = await postOaStaffGetStaffList({ start: 0, size: 100, orgId: 5 });
+        const staffList = res.datas.map((item: any) => {
+            return {
+                key: item.id + 'staff',
+                title: item.name,
+                roleId: item.role?.id,
+                ...item,
+            };
+        });
+        for (let i = 0; i < staffList.length; i++) {
+            const item = staffList[i];
+            findDepFun(roleList, item);
+        }
+        console.log(staffList, "staffList");
+        console.log(roleList, "roleList");
+        return roleList;
+    }
+    const getDepList = async () => {
+        const res = await postOaDepartmentGetDepartmentList({ start: 0, size: 100, orgId: 5 });
+        const treeDep = res.datas.map((item: any) => {
+            return {
+                key: item.id,
+                title: item.name,
+                children: [],
+                ...item,
+            };
+        });
+        for (let i = 0; i < treeDep.length; i++) {
+            const item = treeDep[i];
+            if (item.parent) {
+                const parent = treeDep.find((f) => f.id === item.parent?.id);
+                parent.children.push(item);
+            }
+        }
+        const haveStaffList = await getStaffList(treeDep);
+        console.log(haveStaffList, "haveStaffList");
+        const treeData = haveStaffList.filter((item) => !item.parent);
+        console.log(treeData, "treeData");
+        const keyList = treeDep.map((item) => item.key);
+        setTreeData(treeData);
+        setExpandedKeys(keyList);
+        setDepList(treeDep);
+    }
+    return (
+        <PageContainer>
+            <div className={styles.container} style={{ padding: 24 }}>
+                <div className={styles.leftTree}>
+                    <Tree
+                        style={{ width: '300px' }}
+                        defaultExpandAll
+                        expandedKeys={expandedKeys}
+                        showLine
+                        switcherIcon={<DownOutlined />}
+                        treeData={treeData}
+                        onSelect={(selectedKeys, info) => {
+                            console.log(selectedKeys, info);
+                            setCurrentTreeNode(info.node);
+                        }}
+                    />
+                </div>
+                <div className={styles.rightTable}>
+                    {
+                        currentTreeNode &&
+                        <Form form={formRef} labelCol={{ span: 6 }} wrapperCol={{ span: 18 }} disabled>
+                            <Row>
+                                <Col span={12}>
+                                    <Form.Item label="鍛樺伐濮撳悕" name="name" rules={[{ required: true, message: '璇疯緭鍏ュ憳宸ュ鍚�' }]}>
+                                        <span>{currentTreeNode?.name}</span>
+                                    </Form.Item>
+                                </Col>
+                                <Col span={12}>
+                                    <Form.Item label="閮ㄩ棬鍚嶇О" name="departmentId">
+                                        <span>{currentTreeNode?.department?.name}</span>
+                                    </Form.Item>
+                                </Col>
+                            </Row>
+                            <Row>
+                                <Col span={12}>
+                                    <Form.Item label="韬唤璇佸彿" name="idNum" rules={[{ required: true, message: '璇疯緭鍏ュ憳宸ュ鍚�' }]}>
+                                        <span>{currentTreeNode?.idNum}</span>
+                                    </Form.Item>
+                                </Col>
+                                <Col span={12}>
+                                    <Form.Item label="鎬у埆" name="sex">
+                                        <span>{currentTreeNode?.sex == 1 ? '鐢�' : '濂�'}</span>
+                                    </Form.Item>
+                                </Col>
+                            </Row>
+
+                            <Row>
+                                <Col span={12}>
+                                    <Form.Item label="绫嶈疮" name="nativePlace">
+                                        <span>{currentTreeNode?.nativePlace}</span>
+                                    </Form.Item>
+                                </Col>
+
+                                <Col span={12}>
+                                    <Form.Item label="闆囦剑绫诲瀷" name="employmentType">
+                                        <span>{currentTreeNode?.employmentType}</span>
+                                    </Form.Item>
+                                </Col>
+                            </Row>
+                            <Row>
+                                <Col span={12}>
+                                    <Form.Item label="鍑虹敓骞存湀" name="birthday">
+                                        <span>{currentTreeNode?.birthday}</span>
+                                    </Form.Item>
+                                </Col>
+                                <Col span={12}>
+                                    <Form.Item label="姘戞棌" name="race">
+                                        <span>{currentTreeNode?.race}</span>
+                                    </Form.Item>
+                                </Col>
+                            </Row>
+                            <Row>
+                                <Col span={12}>
+                                    <Form.Item label="濠氬Щ鐘跺喌" name="marriageStatus">
+                                        <span>{currentTreeNode?.marriageStatus}</span>
+                                    </Form.Item>
+                                </Col>
+                                <Col span={12}>
+                                    <Form.Item label="鏀挎不闈㈣矊" name="politicalStatus">
+                                        <span>{currentTreeNode?.politicalStatus}</span>
+                                    </Form.Item>
+                                </Col>
+                            </Row>
+                            <Row>
+                                <Col span={12}>
+                                    <Form.Item label="姣曚笟闄㈡牎" name="graduateSchool">
+                                        <span>{currentTreeNode?.graduateSchool}</span>
+                                    </Form.Item>
+                                </Col>
+
+                                <Col span={12}>
+                                    <Form.Item label="涓撲笟" name="major">
+                                        <span>{currentTreeNode?.major}</span>
+                                    </Form.Item>
+                                </Col>
+                            </Row>
+                            <Row>
+                                <Col span={12}>
+                                    <Form.Item label="鑱岀О" name="title">
+                                        <span>{currentTreeNode?.title}</span>
+                                    </Form.Item>
+                                </Col>
+
+                                <Col span={12}>
+                                    <Form.Item label="宸ョ" name="jobType">
+                                        <span>{currentTreeNode?.jobType}</span>
+                                    </Form.Item>
+                                </Col>
+                            </Row>
+                            <Row>
+                                <Col span={12}>
+                                    <Form.Item label="鏂囧寲绋嬪害" name="educationLevel">
+                                        <span>{currentTreeNode?.educationLevel}</span>
+                                    </Form.Item>
+                                </Col>
+
+                                <Col span={12}>
+                                    <Form.Item label="鎵嬫満" name="mobilePhone">
+                                        <span>{currentTreeNode?.mobilePhone}</span>
+                                    </Form.Item>
+                                </Col>
+                            </Row>
+                            <Row>
+                                <Col span={12}>
+                                    <Form.Item label="鑱旂郴鍦板潃" name="contactAddress">
+                                        <span>{currentTreeNode?.contactAddress}</span>
+                                    </Form.Item>
+                                </Col>
+
+                                <Col span={12}>
+                                    <Form.Item label="鐢靛瓙閭欢" name="eMail">
+                                        <span>{currentTreeNode?.eMail}</span>
+                                    </Form.Item>
+                                </Col>
+                            </Row>
+                            <Row>
+                                <Col span={12}>
+                                    <Form.Item label="瀹跺涵浣忓潃" name="homeAddress">
+                                        <span>{currentTreeNode?.homeAddress}</span>
+                                    </Form.Item>
+                                </Col>
+
+                                <Col span={12}>
+                                    <Form.Item label="鑱旂郴鐢佃瘽" name="phone">
+                                        <span>{currentTreeNode?.phone}</span>
+                                    </Form.Item>
+                                </Col>
+                            </Row>
+                            <Row>
+                                <Col span={12}>
+                                    <Form.Item label="澶囨敞" name="remarks">
+                                        <span>{currentTreeNode?.remarks}</span>
+                                    </Form.Item>
+                                </Col>
+                            </Row>
+                            <Divider orientation="left">宀椾綅淇℃伅</Divider>
+                            <Row>
+                                <Col span={12}>
+                                    <Form.Item label="宸ュ彿" name="jobNumber">
+                                        <span>{currentTreeNode?.jobNumber}</span>
+                                    </Form.Item>
+                                </Col>
+
+                                <Col span={12}>
+                                    <Form.Item label="鎵�鍦ㄥ煄甯�" name="city">
+                                        <span>{currentTreeNode?.jobPositionInfo?.city}</span>
+                                    </Form.Item>
+                                </Col>
+                            </Row>
+                            <Row>
+                                <Col span={12}>
+                                    <Form.Item label="宀椾綅" name="station">
+                                        <span>{currentTreeNode?.jobPositionInfo?.jobPosition?.name}</span>
+                                    </Form.Item>
+                                </Col>
+
+                                <Col span={12}>
+                                    <Form.Item label="鏄惁鍦ㄨ亴" name="isOnJob">
+                                        <span>{currentTreeNode?.jobPositionInfo?.isOnJob ? '鏄�' : '鍚�'}</span>
+                                    </Form.Item>
+                                </Col>
+                            </Row>
+                            <Row>
+                                <Col span={12}>
+                                    <Form.Item label="鍏ヨ亴鏃堕棿" name="joinDate">
+                                        <span>{currentTreeNode?.jobPositionInfo?.joinDate}</span>
+                                    </Form.Item>
+                                </Col>
+
+
+                                <Col span={12}>
+                                    <Form.Item label="绂昏亴鏃堕棿" name="offJobDate">
+                                        <span>{currentTreeNode?.jobPositionInfo?.offJobDate}</span>
+                                    </Form.Item>
+                                </Col>
+                            </Row>
+                            <Row>
+                                <Col span={12}>
+                                    <Form.Item label="鏄惁閫�浼�" name="isRetire">
+                                        <span>{currentTreeNode?.isRetire ? '鏄�' : '鍚�'}</span>
+                                    </Form.Item>
+                                </Col>
+                            </Row>
+                            <Row>
+                                <Col span={12}>
+                                    <Form.Item label="鍙傚姞宸ヤ綔鏃堕棿" name="beginWorkDate">
+                                        <span>{currentTreeNode?.jobPositionInfo?.beginWorkDate}</span>
+                                    </Form.Item>
+                                </Col>
+
+                                <Col span={12}>
+                                    <Form.Item label="甯﹁柂浼戝亣澶╂暟" name="payDayOffs">
+                                        <span>{currentTreeNode?.jobPositionInfo?.payDayOffs}澶�</span>
+                                    </Form.Item>
+                                </Col>
+                            </Row>
+                            <Row>
+                                <Col span={12}>
+                                    <Form.Item label="鑱屼綅" name="jobId">
+                                        <span>{currentTreeNode?.jobPositionInfo?.job.name}</span>
+                                    </Form.Item>
+                                </Col>
+
+                                <Col span={12}>
+                                    <Form.Item label="鑱岀骇" name="jobPositionId">
+                                        <span></span>
+                                    </Form.Item>
+                                </Col>
+                            </Row>
+                            <Row>
+                                <Col span={12}>
+                                    <Form.Item label="鍩烘湰宸ヨ祫" name="name333">
+                                        <span></span>
+                                    </Form.Item>
+                                </Col>
+
+                                <Col span={12}>
+                                    <Form.Item label="鑱岀骇宸ヨ祫" name="positionSalary">
+                                        <span>{currentTreeNode?.jobPositionInfo?.positionSalary}</span>
+                                    </Form.Item>
+                                </Col>
+                            </Row>
+                            <Row>
+                                <Col span={12}>
+                                    <Form.Item label="缁╂晥绯绘暟" name="performanceRates">
+                                        <span>{currentTreeNode?.jobPositionInfo?.performanceRates}</span>
+                                    </Form.Item>
+                                </Col>
+
+                                <Col span={12}>
+                                    <Form.Item label="缁╂晥宸ヨ祫" name="performanceSalary">
+                                        <span>{currentTreeNode?.jobPositionInfo?.performanceSalary || '-'}</span>
+                                    </Form.Item>
+                                </Col>
+                            </Row>
+                            <Row>
+                                <Col span={12}>
+                                    <Form.Item label="绀句繚鍩烘暟" name="socialRates">
+                                        <span>{currentTreeNode?.jobPositionInfo?.socialRates || '-'}</span>
+                                    </Form.Item>
+                                </Col>
+
+                                <Col span={12}>
+                                    <Form.Item label="鍏Н閲戝熀鏁�" name="publicRates">
+                                        <span>{currentTreeNode?.jobPositionInfo?.publicRates || '-'}</span>
+                                    </Form.Item>
+                                </Col>
+                            </Row>
+                            <Row>
+                                <Col span={12}>
+                                    <Form.Item label="缁╂晥绛夌骇" name="performanceLevel">
+                                        <span>{currentTreeNode?.jobPositionInfo?.performanceLevel || '-'}</span>
+                                    </Form.Item>
+                                </Col>
+
+                                <Col span={12}>
+                                    <Form.Item label="鏅嬪崌娼滃姏" name="promoteLevel">
+                                        <span>{currentTreeNode?.jobPositionInfo?.promoteLevel || '-'}</span>
+                                    </Form.Item>
+                                </Col>
+                            </Row>
+                            <Row>
+                                <Col span={12}>
+                                    <Form.Item label="绀句繚璐︽埛" name="socialAccount">
+                                        <span>{currentTreeNode?.jobPositionInfo?.socialAccount || '-'}</span>
+                                    </Form.Item>
+                                </Col>
+
+                                <Col span={12}>
+                                    <Form.Item label="閾惰璐﹀彿" name="bankAccount">
+                                        <span>{currentTreeNode?.jobPositionInfo?.bankAccount || '-'}</span>
+                                    </Form.Item>
+                                </Col>
+                            </Row>
+                        </Form>
+                    }
+
+
+                </div>
+            </div>
+        </PageContainer>
+    )
+}
+
+
+export default departmentalEmployeeInformation
\ No newline at end of file

--
Gitblit v1.9.1