/* * @Author: your name * @Date: 2022-01-11 09:43:18 * @LastEditTime: 2024-12-02 14:15:06 * @LastEditors: code4eat awesomedema@gmail.com * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @FilePath: /KC-MiddlePlatform/src/pages/platform/userManage/index.tsx */ import { FC, useEffect, useState } from 'react'; import { userManageModelState, ConnectProps, Loading, connect } from 'umi'; import { Button, Divider, Popconfirm } from 'antd'; import KCTable from '@/components/kcTable'; import type { ProColumns } from '@ant-design/pro-table'; import { getUserRelaSeletData, getUsers, UserRelaSeletDataListType, UserRelaSeletDataType } from '@/service/user'; import { TableRequestParamsType } from '@/typings'; import ActModal from './modal'; import './style.less'; import { TableListItem } from './typings'; import { ModalForm, ProFormSelect, ProFormUploadButton } from '@ant-design/pro-form'; import KCUpload from '@/components/KCUpload'; import { RcFile } from 'antd/lib/upload/interface'; import { KCInput } from '@/components/KCInput'; import FormItem from 'antd/es/form/FormItem'; import { getDepartmentData } from '../departmentMana/service'; export enum TableActType { NOACT, ADD, DEL, EDIT, } interface PageProps extends ConnectProps { userManageModel: userManageModelState; loading: boolean; } const UserManage: FC = ({ userManageModel: state, dispatch }) => { const { reloadTable } = state; const [tableDataFilterParams, set_tableDataFilterParams] = useState(); const [tableDataSearchKeywords, set_tableDataSearchKeywords] = useState(''); const [dirData, set_dirData] = useState([]); const columns: ProColumns[] = [ { title: '院区', dataIndex: 'hospName', ellipsis:true, width:210 }, { title: '姓名', dataIndex: 'name', hideInSearch: false, }, { title: '工号', dataIndex: 'account', hideInSearch: false, }, { title: '电话', dataIndex: 'phoneNumber', }, { title: '身份证号', dataIndex: 'idCardNum', }, { title: '在职状态', dataIndex: 'isOnService', valueEnum: { 0: { text: '否', status: 'Default' }, 1: { text: '是', status: 'Success' }, }, }, { title: '操作', width: 220, key: 'option', valueType: 'option', render: (text, record) => [ editHandle(record)}> 编辑 , , delHandle(record)} // onCancel={cancel} okText="确定" cancelText="取消" key="link2" > 删除 , , resetUserPaswdHandle(record)}> 重置密码 , ], }, ]; const getUserData = async (params: TableRequestParamsType) => { const { current = 1, pageSize = 10, name = undefined, account = undefined, departmentId = undefined } = params; const resp = await getUsers({ current, pageSize, keyword: name ? name : account, departmentId, }); //获取万最新数据取消重置reload dispatch && dispatch({ type: 'userManageModel/reloadTable', payload: false, }); return { data: resp.list ? resp.list : [], success: true, total: resp.totalCount, }; }; const addUserHandle = () => { dispatch && dispatch({ type: 'userManageModel/addUser', payload: { tableAct: TableActType.ADD, isShowModal: true, }, }); }; const editHandle = (record: TableListItem) => { dispatch && dispatch({ type: 'userManageModel/editUser', payload: { userData: record, act: TableActType.EDIT, isShowModal: true, }, }); }; const delHandle = (record: TableListItem) => { dispatch && dispatch({ type: 'userManageModel/delUsersRequest', payload: [record.id], }); }; const getUserTemplateHandle = () => { dispatch && dispatch({ type: 'userManageModel/getUserTemplateReq', }); }; const resetUserPaswdHandle = (record: TableListItem) => { dispatch && dispatch({ type: 'userManageModel/resetUserPwd', payload: { id: record.id, }, }); }; const importUserHandle = (file: RcFile | undefined) => { if (file) { dispatch && dispatch({ type: 'userManageModel/importUsers', payload: file, }); } }; const getDirecData = async (key?: string) => { const data = await getUserRelaSeletData(key); if (data) { set_dirData(data); } }; const tableDataSearchHandle = (paramName: string) => { set_tableDataFilterParams({ ...tableDataFilterParams, current:1, [`${paramName}`]: tableDataSearchKeywords, }); }; const importData = (name: string) => { return ( 导入} onFinish={async (values: any) => { const { importFile: { fileList }, } = values; let formData = new FormData(); console.log({ values }); formData.append('file', fileList[0].originFileObj); dispatch && dispatch({ type: 'userManageModel/importUsers', payload: formData, }); return true; }} > getUserTemplateHandle()} /> ); }; const setSelectorData = (key: string) => { let result = dirData.filter((t: any) => t.code == key); if (result.length > 0) { let dataArr = result[0].dataVoList; let defaultValue = dataArr.filter((t) => t.defaultValue == 1); dataArr.sort((prev: UserRelaSeletDataListType, next: UserRelaSeletDataListType) => { return prev.sort - next.sort; }); return { defaultvalue: defaultValue[0] ? defaultValue[0].value : '', list: dataArr.map((t) => { return { label: t.name, value: t.code }; }), }; } return { defaultvalue: '', list: [], }; }; useEffect(() => { getDirecData(); }, []); // console.log({state}); return (
科室: { const resp = await getDepartmentData({ pageSize: 1000 }); if (resp) { return resp.list.map((a) => ({ label: a.name, value: a.id })); } return []; }} fieldProps={{ size:'small', showSearch: true, onChange: (val) => { set_tableDataFilterParams({ ...tableDataFilterParams, current:1, departmentId: val, }); }, }} />
检索: { set_tableDataSearchKeywords(e.target.value); if (e.target.value.length == 0) { set_tableDataFilterParams({ ...tableDataFilterParams, current:1, name: '', }); } }} onSearch={() => tableDataSearchHandle('name')} />
{importData('员工')} 新增
(
进院时间:{record.entryTime} 手机号:{record.phoneNumber} 所学专业:{record.major} 资格证号:{record.qualificationCertificateNo} 医师级别:{record.doctorLevel} 执业证号:{record.practiceCertificateNo} 执业类别:{record.practiceSubject} 执业科目:{record.practiceCate} 执业状态:{record.practiceStatus} 备注:{record.remark}
), rowExpandable: () => true, }} // toolBarRender={() => [ // { // if (file.status == 'done') { // importUserHandle(file.originFileObj); // } // }, // showUploadList: false, // }} // />, // , // , // ]} request={(params) => getUserData(params)} />
); }; export default connect(({ userManageModel, loading }: { userManageModel: userManageModelState; loading: Loading }) => { // console.log({userManageModel}); return { userManageModel, loading: loading.models.userManageModel, }; })(UserManage);