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