周边医院

main
wangyunfei 23 hours ago
parent 50daab4c6d
commit 192a367fd3

@ -2,7 +2,7 @@ import React, { useState, useEffect } from 'react';
import { Input, Button, Select, message, Modal } from 'antd'; import { Input, Button, Select, message, Modal } from 'antd';
import { SearchOutlined, PlusOutlined, DeleteOutlined, EditOutlined } from '@ant-design/icons'; import { SearchOutlined, PlusOutlined, DeleteOutlined, EditOutlined } from '@ant-design/icons';
import StandardTable from '@/components/StandardTable'; import StandardTable from '@/components/StandardTable';
import styles from './yjzbry.less'; import styles from './zbhy.less';
import iconsc from '@/assets/yjzygl/iconsc.svg'; import iconsc from '@/assets/yjzygl/iconsc.svg';
@ -11,7 +11,7 @@ const { Option } = Select;
const Zbhy = () => { const Zbhy = () => {
const [loading, setLoading] = useState(false); const [loading, setLoading] = useState(false);
const [selectedRowKeys, setSelectedRowKeys] = useState([]); const [selectedRowKeys, setSelectedRowKeys] = useState([]);
const [searchValue, setSearchValue] = useState(''); const [searchValue, setSearchValue] = useState(undefined);
const [pagination, setPagination] = useState({ const [pagination, setPagination] = useState({
current: 1, current: 1,
pageSize: 10, pageSize: 10,
@ -25,114 +25,162 @@ const Zbhy = () => {
const [dataSource, setDataSource] = useState([ const [dataSource, setDataSource] = useState([
{ {
key: '1', key: '1',
number: '01', hospitalName: '广播器材厂职工医院',
unitName: '文登市兴文新材料有限公司', hospitalLevel: '特级',
name: '国云海', equipmentType: '监测设备',
position: '生产班长', simultaneousPatients: 97,
mobile: '17898786567', specializedIn: '疑难杂症',
email: '1878967633@qq.com', medicalStaff: 81,
dutyTime: '夜班', bedCount: 97,
ambulanceCount: 44,
hospitalLocation: '西幸福区66号(且龙井品东南角)',
phone: '18084188242',
remarks: '无',
}, },
{ {
key: '2', key: '2',
number: '02', hospitalName: '塑阳区嘉隆店医院',
unitName: '文登市兴文新材料有限公司', hospitalLevel: '二级甲等',
name: '陈志强', equipmentType: '消毒设备',
position: '生产班长', simultaneousPatients: 96,
mobile: '17898786567', specializedIn: '烧伤烫伤',
email: '1878967633@qq.com', medicalStaff: 74,
dutyTime: '白班', bedCount: 82,
ambulanceCount: 25,
hospitalLocation: '栴花一区路与栴花一街交叉口东50米',
phone: '15135188171',
remarks: '备注二二',
}, },
{ {
key: '3', key: '3',
number: '03', hospitalName: '中国中医科学院眼科医院',
unitName: '合湾新材科技有限公司', hospitalLevel: '二级乙等',
name: '侯文涛', equipmentType: '仿真鉴定',
position: '班长', simultaneousPatients: 91,
mobile: '17898786567', specializedIn: '烧伤',
email: '1878967633@qq.com', medicalStaff: 48,
dutyTime: '白班', bedCount: 65,
ambulanceCount: 24,
hospitalLocation: '双兴东区21号楼双兴大卖场一层',
phone: '18057125277',
remarks: '备注三三',
}, },
{ {
key: '4', key: '4',
number: '04', hospitalName: '矿务局治病疗昨矿工...',
unitName: '山东万图高分子材料股份有限公司', hospitalLevel: '特等',
name: '宋东', equipmentType: '医疗设备',
position: '班长', simultaneousPatients: 59,
mobile: '17898786567', specializedIn: '疑难杂症',
email: '1878967633@qq.com', medicalStaff: 46,
dutyTime: '夜班', bedCount: 59,
ambulanceCount: 20,
hospitalLocation: '红杉一品8号楼底商',
phone: '18562861165',
remarks: '备注四四',
}, },
{ {
key: '5', key: '5',
number: '05', hospitalName: '公安医院',
unitName: '合鸿新材科技有限公司', hospitalLevel: '二级甲等',
name: '王一声', equipmentType: '检测设备',
position: '班长', simultaneousPatients: 50,
mobile: '17898786567', specializedIn: '骨折',
email: '1878967633@qq.com', medicalStaff: 6,
dutyTime: '夜班', bedCount: 51,
ambulanceCount: 19,
hospitalLocation: '光明街道幸福东区9号楼5单元101栋...',
phone: '17675250412',
remarks: '备注五五',
}, },
{ {
key: '6', key: '6',
number: '06', hospitalName: '武警总队医院',
unitName: '山东万图高分子材料股份有限公司', hospitalLevel: '二级乙等',
name: '赵小敏', equipmentType: '检测设备',
position: '班长', simultaneousPatients: 48,
mobile: '17898786567', specializedIn: '烧伤',
email: '1878987633@qq.com', medicalStaff: 4,
dutyTime: '夜班', bedCount: 19,
ambulanceCount: 5,
hospitalLocation: '金汉绿港家园一区9号楼京汉生牛生产厂...',
phone: '13489273919',
remarks: '备注六六',
}, },
]); ]);
// 表格列配置 // 表格列配置
const columns = [ const columns = [
{ {
title: '编号', title: '医院名称',
dataIndex: 'number', dataIndex: 'hospitalName',
key: 'number', key: 'hospitalName',
width: 80, width: 120,
}, },
{ {
title: '单位名称', title: '医院级别',
dataIndex: 'unitName', dataIndex: 'hospitalLevel',
key: 'unitName', key: 'hospitalLevel',
width: 200, width: 100,
}, },
{ {
title: '姓名', title: '医疗设备',
dataIndex: 'name', dataIndex: 'equipmentType',
key: 'name', key: 'equipmentType',
width: 100, width: 100,
}, },
{ {
title: '职务', title: '同时接待伤员数',
dataIndex: 'position', dataIndex: 'simultaneousPatients',
key: 'position', key: 'simultaneousPatients',
width: 120, width: 150,
},
{
title: '擅长处理症状',
dataIndex: 'specializedIn',
key: 'specializedIn',
width: 150,
}, },
{ {
title: '手机号', title: '医护人员数量',
dataIndex: 'mobile', dataIndex: 'medicalStaff',
key: 'mobile', key: 'medicalStaff',
width: 130, width: 150,
}, },
{ {
title: '邮箱', title: '医院床位数量',
dataIndex: 'email', dataIndex: 'bedCount',
key: 'email', key: 'bedCount',
width: 150,
},
{
title: '救护车数量',
dataIndex: 'ambulanceCount',
key: 'ambulanceCount',
width: 150,
},
{
title: '医院位置',
dataIndex: 'hospitalLocation',
key: 'hospitalLocation',
width: 180, width: 180,
}, },
{ {
title: '值班时间', title: '值班电话',
dataIndex: 'dutyTime', dataIndex: 'phone',
key: 'dutyTime', key: 'phone',
width: 100, width: 100,
}, },
{
title: '备注',
dataIndex: 'remarks',
key: 'remarks',
width: 80,
},
{ {
title: '操作', title: '操作',
key: 'action', key: 'action',
width: 120, width: 100,
render: (text, record) => ( render: (text, record) => (
<div className={styles.actionButtons}> <div className={styles.actionButtons}>
<Button <Button
@ -191,14 +239,14 @@ const Zbhy = () => {
// 编辑处理 // 编辑处理
const handleEdit = (record) => { const handleEdit = (record) => {
message.info(`编辑 ${record.name} 的信息`); message.info(`编辑 ${record.hospitalName} 的信息`);
}; };
// 删除处理 // 删除处理
const handleDelete = (record) => { const handleDelete = (record) => {
Modal.confirm({ Modal.confirm({
title: '确认删除', title: '确认删除',
content: `确定要删除 ${record.name} 吗?`, content: `确定要删除 ${record.hospitalName} 吗?`,
onOk() { onOk() {
setDataSource(dataSource.filter(item => item.key !== record.key)); setDataSource(dataSource.filter(item => item.key !== record.key));
message.success('删除成功'); message.success('删除成功');
@ -212,28 +260,28 @@ const Zbhy = () => {
}; };
return ( return (
<div className={styles.container}> <div className={styles.containerYJXFD}>
{/* 页面标题 */} {/* 页面标题 */}
<div className={styles.header}> <div className={styles.header}>
<div className={styles.titleBar}></div> <div className={styles.titleBar}></div>
<h2 className={styles.title}>应急值班人员</h2> <h2 className={styles.title}>值班医院</h2>
</div> </div>
{/* 搜索和操作区域 */} {/* 搜索和操作区域 */}
<div className={styles.searchBar}> <div className={styles.searchBar}>
<div className={styles.searchLeft}> <div className={styles.searchLeft}>
<Select <Input
placeholder="请选择单位名称" placeholder="请输入医院名称"
value={searchValue} style={{width: 180}}
onChange={setSearchValue} className={styles.customInput}
style={{width: 180, height: 30, borderRadius: 2}}
allowClear allowClear
> />
<Option value="文登市兴文新材料有限公司">文登市兴文新材料有限公司</Option> <Input
<Option value="合湾新材科技有限公司">合湾新材科技有限公司</Option> placeholder="请输入擅长处理症状"
<Option value="山东万图高分子材料股份有限公司">山东万图高分子材料股份有限公司</Option> style={{width: 180}}
<Option value="合鸿新材科技有限公司">合鸿新材科技有限公司</Option> className={styles.customInput}
</Select> allowClear
/>
<Button <Button
type="primary" type="primary"
icon={<SearchOutlined />} icon={<SearchOutlined />}
@ -253,14 +301,6 @@ const Zbhy = () => {
> >
新增 新增
</Button> </Button>
<Button
danger
style={{width: 70, height: 30, borderRadius: 2, display: 'flex', alignItems: 'center', justifyContent: 'center'}}
icon={<img src={iconsc} alt="delete" style={{width: 14, height: 14, marginTop: -2}}/>}
onClick={handleBatchDelete}
>
删除
</Button>
</div> </div>
</div> </div>

@ -1,4 +1,4 @@
.container { .containerYJXFD {
padding: 20px; padding: 20px;
background: #fff; background: #fff;
height:100vh; height:100vh;
@ -46,6 +46,33 @@
} }
} }
// 自定义 Select 样式
.customSelect {
:global {
.ant-select-selector {
height: 30px !important;
border-radius: 2px !important;
display: flex !important;
align-items: center !important;
}
.ant-select-selection-search-input {
height: 30px !important;
}
.ant-select-selection-item,
.ant-select-selection-placeholder {
line-height: 30px !important;
}
}
}
// 自定义 Input 样式
.customInput {
height: 30px !important;
border-radius: 2px !important;
}
// 自定义按钮样式 // 自定义按钮样式
.customButton { .customButton {
background-color: #2E4CD4 !important; background-color: #2E4CD4 !important;

Loading…
Cancel
Save