|
|
@@ -0,0 +1,197 @@
|
|
|
+/*
|
|
|
+ * @Author: your name
|
|
|
+ * @Date: 2022-02-17 15:50:33
|
|
|
+ * @LastEditTime: 2022-02-18 15:04:08
|
|
|
+ * @LastEditors: Please set LastEditors
|
|
|
+ * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
|
|
+ * @FilePath: /MedicalQualificationMana/src/pages/personalCenter/myApplication/Modals/mineProfile.tsx
|
|
|
+ */
|
|
|
+
|
|
|
+import KCModal from '@/components/KCModal';
|
|
|
+import react, { useState } from 'react';
|
|
|
+import { Upload, message, Button, Spin } from 'antd';
|
|
|
+import { UploadOutlined, LoadingOutlined } from '@ant-design/icons';
|
|
|
+
|
|
|
+import './style.less';
|
|
|
+import { ProFormDateTimePicker, ProFormSelect, ProFormText, ProFormTextArea } from '@ant-design/pro-form';
|
|
|
+
|
|
|
+
|
|
|
+interface MineProfileModalPropsType {
|
|
|
+ visible: boolean,
|
|
|
+ onVisibleChange: (bool: boolean) => void
|
|
|
+}
|
|
|
+
|
|
|
+const antIcon = <LoadingOutlined style={{ fontSize: 24 }} spin />;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+const MineProfileModal: react.FC<MineProfileModalPropsType> = ({ visible, onVisibleChange }) => {
|
|
|
+
|
|
|
+ const [avatarUrl, setAvatarUrl] = useState<string>('');
|
|
|
+ const [loadAvatar, setLoadAvatar] = useState(false);
|
|
|
+
|
|
|
+ const props = {
|
|
|
+ name: 'file',
|
|
|
+ maxCount: 1,
|
|
|
+ showUploadList: false,
|
|
|
+ onChange(info: { file: { originFileObj: File, status: string; name: any; }; fileList: any; }) {
|
|
|
+
|
|
|
+ setLoadAvatar(true);
|
|
|
+
|
|
|
+ if (info.file.status !== 'uploading') {
|
|
|
+ // console.log(info.file, info.fileList);
|
|
|
+ const reader = new FileReader();
|
|
|
+ reader.readAsDataURL(info.file.originFileObj);//读取图像文件 result 为 DataURL, DataURL 可直接 赋值给 img.src
|
|
|
+ reader.onload = function (event) {
|
|
|
+ if (event.target && typeof event.target.result == 'string') {
|
|
|
+ setAvatarUrl(event.target.result);//base64
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (info.file.status === 'done') {
|
|
|
+ setLoadAvatar(false);
|
|
|
+ } else if (info.file.status === 'error') {
|
|
|
+ message.error(`${info.file.name} 上传失败!`);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ }
|
|
|
+
|
|
|
+ return (
|
|
|
+ <KCModal
|
|
|
+ title='个人档案'
|
|
|
+ visible={visible}
|
|
|
+ onVisibleChange={onVisibleChange}
|
|
|
+ className='MineProfileModal'
|
|
|
+ layout='horizontal'
|
|
|
+ labelCol={{ span: 5 }}
|
|
|
+ wrapperCol={{ span: 18 }}
|
|
|
+ >
|
|
|
+ <div className='wraper'>
|
|
|
+ <div className='left'>
|
|
|
+ <div className='avatarContainer'>
|
|
|
+ <span>个人照片:</span>
|
|
|
+ <div className='avatar'>
|
|
|
+ {avatarUrl && <img src={avatarUrl} alt="avatar" />}
|
|
|
+ {loadAvatar && <Spin className='spin' indicator={antIcon} />}
|
|
|
+ </div>
|
|
|
+ <Upload {...props} className='UploadBtn'>
|
|
|
+ <Button icon={<UploadOutlined />}>上传照片(100*130)</Button>
|
|
|
+ </Upload>
|
|
|
+ </div>
|
|
|
+ <div className='formItem'>
|
|
|
+ <ProFormSelect
|
|
|
+ name="a"
|
|
|
+ label="所学专业:"
|
|
|
+ request={async () => [
|
|
|
+ { label: '全部', value: 'all' },
|
|
|
+ ]}
|
|
|
+ placeholder="请选择"
|
|
|
+ rules={[{ required: true, message: '请选择专业!' }]}
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div className='formItem'>
|
|
|
+ <ProFormSelect
|
|
|
+ name="b"
|
|
|
+ label="职务:"
|
|
|
+ request={async () => [
|
|
|
+ { label: '全部', value: 'all' },
|
|
|
+ ]}
|
|
|
+ placeholder="请选择"
|
|
|
+ rules={[{ required: true, message: '请选择职务!' }]}
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div className='formItem'>
|
|
|
+ <ProFormText name="text" label="手机号:" placeholder="请输入" />
|
|
|
+ </div>
|
|
|
+ <div className='formItem'>
|
|
|
+ <ProFormText name="text" label="资格证号:" placeholder="请输入" />
|
|
|
+ </div>
|
|
|
+ <div className='formItem'>
|
|
|
+ <ProFormSelect
|
|
|
+ name="a"
|
|
|
+ label="医师级别:"
|
|
|
+ request={async () => [
|
|
|
+ { label: '全部', value: 'all' },
|
|
|
+ ]}
|
|
|
+ placeholder="请选择"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div className='formItem'>
|
|
|
+ <ProFormSelect
|
|
|
+ name="a"
|
|
|
+ label="执业科目:"
|
|
|
+ request={async () => [
|
|
|
+ { label: '全部', value: 'all' },
|
|
|
+ ]}
|
|
|
+ placeholder="请选择"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div className='right'>
|
|
|
+ <div className='formItem'>
|
|
|
+ <ProFormText name="text" label="姓名:" placeholder="请输入" rules={[{ required: true, message: '请输入姓名!' }]} />
|
|
|
+ </div>
|
|
|
+ <div className='formItem'>
|
|
|
+ <ProFormText name="text" label="工号:" placeholder="请输入" rules={[{ required: true, message: '请输入工号!' }]} />
|
|
|
+ </div>
|
|
|
+ <div className='formItem'>
|
|
|
+ <ProFormSelect
|
|
|
+ name="b"
|
|
|
+ label="性别:"
|
|
|
+ request={async () => [
|
|
|
+ { label: '全部', value: 'all' },
|
|
|
+ ]}
|
|
|
+ placeholder="请选择"
|
|
|
+ rules={[{ required: true, message: '请选择性别!' }]}
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div className='formItem'>
|
|
|
+ <ProFormText name="text" label="科室:" placeholder="请输入" rules={[{ required: true, message: '请输入工号!' }]} />
|
|
|
+ </div>
|
|
|
+ <div className='formItem'>
|
|
|
+ <ProFormSelect
|
|
|
+ name="b"
|
|
|
+ label="职称:"
|
|
|
+ request={async () => [
|
|
|
+ { label: '全部', value: 'all' },
|
|
|
+ ]}
|
|
|
+ placeholder="请选择"
|
|
|
+ rules={[{ required: true, message: '请选择职称!' }]}
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div className='formItem'>
|
|
|
+ <ProFormDateTimePicker name="datetime" label="入职时间" placeholder={'请选择日期'} />
|
|
|
+ </div>
|
|
|
+ <div className='formItem'>
|
|
|
+ <ProFormText name="text" label="执业证号:" placeholder="请输入" />
|
|
|
+ </div>
|
|
|
+ <div className='formItem'>
|
|
|
+ <ProFormSelect
|
|
|
+ name="b"
|
|
|
+ label="执业类别:"
|
|
|
+ request={async () => [
|
|
|
+ { label: '全部', value: 'all' },
|
|
|
+ ]}
|
|
|
+ placeholder="请选择"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div className='formItem'>
|
|
|
+ <ProFormSelect
|
|
|
+ name="b"
|
|
|
+ label="执业状态:"
|
|
|
+ request={async () => [
|
|
|
+ { label: '全部', value: 'all' },
|
|
|
+ ]}
|
|
|
+ placeholder="请选择"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div className='remarkArea' >
|
|
|
+ <ProFormTextArea width="xl" label="备注:" name="remark" />
|
|
|
+ </div>
|
|
|
+ </KCModal>
|
|
|
+ )
|
|
|
+}
|
|
|
+
|
|
|
+export default MineProfileModal;
|