import { SearchBarPlugin, SearchBottonsCardPlugin } from '@/components/SearchBarPlugin'; import { post } from '@/services/ajax'; import { PageContainer } from '@ant-design/pro-components'; import { App, Button, Col, Drawer, Form, Input, Modal, Pagination, Row, Spin, Table, Tree, } from 'antd'; import { stringify } from 'qs'; import React, { useEffect, useState } from 'react'; import { IStaffsItem } from '../ChatLogs/ChatLogsType'; import { DepartmentMembersDetail } from './components/DepartmentMemberDetail'; import styles from './index.module.scss'; interface IDepartment { children: null | IDepartment[]; department_leader: string; id: number; name: string; parent_id: number; sort: number; } interface IStaffsData { count: number; data?: IStaffsItem[]; } type Param = { curr_page: number; page_count: number; dep_id: number; name?: string; position?: string; telephone?: string; mobile?: string; }; const DepartmentsList: React.FC = () => { const [param] = useState({ curr_page: 1, page_count: 20, dep_id: 0, }); const { notification } = App.useApp(); const [departmentID, setDepartmentsID] = useState(0); const [departmentsList, setDepartmentsList] = useState([]); const [staffsData, setStaffsData] = useState({ count: 0, data: [] }); const [loadingL, setLoadingL] = useState(false); const [loading, setLoading] = useState(false); const [open, setOpen] = useState(false); const [record, setRecord] = useState(); const getStaffsList = () => { setLoading(true); post({ url: '/Staffs/List', data: stringify(param) }).then((res) => { setLoading(false); if (res.err_code == 0) { if (!Array.isArray(res.data)) { res.data = []; } setStaffsData(res as IStaffsData); } }); }; const getDepartmentsList = () => { setLoadingL(true); post({ url: '/Departments/List' }).then((res) => { setLoadingL(false); if (res.err_code == 0) { if (Array.isArray(res.data) && res.data.length) { param.dep_id = res.data[0].id; setDepartmentsID(param.dep_id); setDepartmentsList(res.data); getStaffsList(); } } }); }; const page = (page: number) => { param.curr_page = page; getStaffsList(); }; useEffect(() => { getDepartmentsList(); }, []); // const [open, setOpen] = useState(false); // const [popOpen, setPopOpen] = useState(-1); const [syncLoading, setSyncLoading] = useState(false); const [syncOpen, setSyncOpen] = useState(''); const syncDepartments = () => { setSyncLoading(false); setSyncOpen('dep'); }; const syncStaffs = () => { setSyncLoading(false); setSyncOpen('staff'); }; const syncDepOrStaff = () => { if (syncLoading) return; setSyncLoading(true); if (syncOpen == 'dep') { post({ url: '/Sync/Departments' }).then((res) => { setSyncLoading(false); if (res.err_code == 0) { notification.success({ message: res.err_msg, }); getDepartmentsList(); } }); } else { post({ url: '/Sync/Staffs' }).then((res) => { setSyncLoading(false); if (res.err_code == 0) { notification.success({ message: res.err_msg, }); getStaffsList(); } }); } }; return ( {departmentsList.length ? ( { if (selectedKeys.length) { setDepartmentsID(Number(selectedKeys[0])); param.dep_id = Number(selectedKeys[0]); page(1); } }} titleRender={(nodeData: any) => { // console.log(nodeData); return ( {nodeData.name} {/* { e.stopPropagation(); setOpen(true); }} className={styles.edit} /> { setPopOpen(-1); e?.stopPropagation(); }} onConfirm={(e) => { e?.stopPropagation(); console.log(nodeData.id); }} > { e.stopPropagation(); setPopOpen(nodeData.id); }} className={styles.del} /> */} ); }} /> ) : null} setSyncOpen('')} centered width={300} > {syncOpen == 'dep' ? '确定同步部门?' : '确定同步员工?'} {/* setOpen(false)} centered onOk={() => {}} > */} 姓名}> { param.name = e.target.value.trim(); }} allowClear onPressEnter={() => page(1)} /> 职务}> { param.position = e.target.value.trim(); }} allowClear onPressEnter={() => page(1)} /> { param.mobile = e.target.value.trim(); }} allowClear onPressEnter={() => page(1)} /> {/* {}} options={[ { value: 'jack', label: 'Jack' }, { value: 'lucy', label: 'Lucy' }, { value: 'Yiminghe', label: 'yiminghe' }, ]} /> */} { page(1); }} style={{ marginRight: 12 }} > 搜索 { syncDepartments(); }} style={{ marginRight: 12 }} > 同步部门 { syncStaffs(); }} > 同步员工 { return ( { setRecord(record); setOpen(true); }} style={{ color: '#1890ff', cursor: 'pointer' }} > {value} {record?.isleader == 1 ? ( 负责人 ) : null} ); }} /> { return <>{val.join(',')}>; }} /> setOpen(false)} width={800}> { param.page_count = size; // setParam({ ...param }); page(1); }} showTotal={(total) => { return 共{total}条; }} onChange={(curr) => { page(curr); }} /> ); }; export default DepartmentsList;