|
|
@@ -19,20 +19,31 @@ class DoctorScreen extends React.Component {
|
|
|
reWaitPat: [],
|
|
|
};
|
|
|
}
|
|
|
+ static getDerivedStateFromProps(nextProps, prevState) {
|
|
|
+ if (nextProps && 'patList' in nextProps && JSON.stringify(nextProps.patList) !== JSON.stringify(prevState.patList)) {
|
|
|
+ return {
|
|
|
+ patList: JSON.parse(JSON.stringify(nextProps?.patList || [])), // 防止重复渲染
|
|
|
+ callPat: nextProps?.callPat || [],
|
|
|
+ waitPat: initArray(nextProps?.waitPat || [], 7),
|
|
|
+ reWaitPat: initArray(nextProps?.reWaitPat || [], 8),
|
|
|
+ };
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
componentDidMount() {
|
|
|
- //this.getQrcSrc('https://www.kimi.com/');
|
|
|
+ // this.getQrcSrc('https://www.kimi.com/');
|
|
|
}
|
|
|
componentDidUpdate(prev) {
|
|
|
if (prev?.userData?.userQrCode != this.props.userData?.userQrCode) {
|
|
|
this.getQrcSrc(this.props.userData?.userQrCode);
|
|
|
}
|
|
|
- if (prev.patList != this.props.patList) {
|
|
|
- this.setState({
|
|
|
- callPat: this.props.callPat,
|
|
|
- waitPat: initArray(this.props.waitPat, 7),
|
|
|
- reWaitPat: initArray(this.props.reWaitPat, 8),
|
|
|
- });
|
|
|
- }
|
|
|
+ // if (prev.patList != this.props.patList) {
|
|
|
+ // this.setState({
|
|
|
+ // callPat: this.props.callPat,
|
|
|
+ // waitPat: initArray(this.props.waitPat, 7),
|
|
|
+ // reWaitPat: initArray(this.props.reWaitPat, 8),
|
|
|
+ // });
|
|
|
+ // }
|
|
|
}
|
|
|
// 链接转二维码链接
|
|
|
getQrcSrc = (src) => {
|
|
|
@@ -61,7 +72,7 @@ class DoctorScreen extends React.Component {
|
|
|
<br /> Opening
|
|
|
</span>
|
|
|
</div>
|
|
|
- <Grid columns={3} gap={8} className='mt'>
|
|
|
+ <Grid columns={3} gap={8} className='mt'>
|
|
|
<Grid.Item span={1}>
|
|
|
<div className='section'>
|
|
|
<div className='chinese-name big'>{userData.roomDesc || '诊区'}</div>
|
|
|
@@ -75,7 +86,7 @@ class DoctorScreen extends React.Component {
|
|
|
</Grid>
|
|
|
<div className='section mt'>
|
|
|
<Grid columns={23} gap={8}>
|
|
|
- <Grid.Item span={4} style={{textAlign: 'center'}}>
|
|
|
+ <Grid.Item span={4} style={{ textAlign: 'center' }}>
|
|
|
<img
|
|
|
src={userData.userImage || userImage}
|
|
|
className='user-header'
|
|
|
@@ -89,17 +100,17 @@ class DoctorScreen extends React.Component {
|
|
|
</Grid.Item>
|
|
|
<Grid.Item span={11}>
|
|
|
<div className='section section-inner'>
|
|
|
- <div className='chinese-name'>{userData.userTitleDesc || '职称'}</div>
|
|
|
+ <div className='chinese-name'>{userData.userTitleDesc || '职称'}</div>
|
|
|
</div>
|
|
|
</Grid.Item>
|
|
|
</Grid>
|
|
|
</div>
|
|
|
<div className='section mt'>
|
|
|
- <Grid columns={4} gap={16}>
|
|
|
+ <Grid columns={4} gap={16}>
|
|
|
<Grid.Item span={3}>
|
|
|
<div className='doctor-profile'>
|
|
|
<ScrollTop text={userData.userIntroduce}>
|
|
|
- {userData.userIntroduce || '医生简介:暂无'}
|
|
|
+ {userData.userIntroduce || '医生简介:暂无'}
|
|
|
</ScrollTop>
|
|
|
</div>
|
|
|
</Grid.Item>
|
|
|
@@ -115,18 +126,18 @@ class DoctorScreen extends React.Component {
|
|
|
</Grid>
|
|
|
</div>
|
|
|
<div style={{ flex: 1, overflow: 'hidden' }} className='mt'>
|
|
|
- <div style={{display: 'flex', height: '100%'}}>
|
|
|
- <div style={{flex: '7', height: '100%', marginRight: '0.8rem'}}>
|
|
|
+ <div style={{ display: 'flex', height: '100%' }}>
|
|
|
+ <div style={{ flex: '7', height: '100%', marginRight: '0.8rem' }}>
|
|
|
<div className='table section scroll-wrap'>
|
|
|
- <Grid columns={1} gap={8}>
|
|
|
+ <Grid columns={1} gap={8}>
|
|
|
<Grid.Item span={1}>
|
|
|
<div className='table-header'>候诊</div>
|
|
|
</Grid.Item>
|
|
|
</Grid>
|
|
|
{this.state.callPat?.map((item, index) => {
|
|
|
- return (<Grid columns={14} gap={8} key={index} className='mt'>
|
|
|
+ return (<Grid columns={14} gap={8} key={index} className='mt'>
|
|
|
<Grid.Item span={10}>
|
|
|
- <div className='table-content'>{ item.patCallNo } {item.patName || '***'}</div>
|
|
|
+ <div className='table-content'>{item.patCallNo} {item.patName || '***'}</div>
|
|
|
</Grid.Item>
|
|
|
<Grid.Item span={4}>
|
|
|
<div className={'table-content red'}>就诊</div>
|
|
|
@@ -139,23 +150,23 @@ class DoctorScreen extends React.Component {
|
|
|
direction='vertical'
|
|
|
autoplayInterval={8000}
|
|
|
loop={true}
|
|
|
- style={{height: '100%'}}
|
|
|
+ style={{ height: '100%' }}
|
|
|
total={this.state.waitPat.length}
|
|
|
indicator={false}
|
|
|
defaultIndex={1}
|
|
|
>
|
|
|
{this.state.waitPat.map((patlist, index) => {
|
|
|
- return <Swiper.Item key={index} style={{ height: '100%', background: '#fff'}}>
|
|
|
+ return <Swiper.Item key={index} style={{ height: '100%', background: '#fff' }}>
|
|
|
{patlist?.map((item, index) => {
|
|
|
- return (<Grid columns={14} gap={8} key={index} className='mt'>
|
|
|
+ return (<Grid columns={14} gap={8} key={index} className='mt'>
|
|
|
<Grid.Item span={10}>
|
|
|
- <div className='table-content'>{item.patCallType} { item.patCallNo } {item.patName || '***'} </div>
|
|
|
+ <div className='table-content'>{item.patCallType} {item.patCallNo} {item.patName || '***'} </div>
|
|
|
</Grid.Item>
|
|
|
<Grid.Item span={4}>
|
|
|
<div className={
|
|
|
- item.patCallStatusDesc == '待诊'
|
|
|
- ? 'table-content green'
|
|
|
- : item.patCallStatusDesc == '未签'
|
|
|
+ item.patCallStatusDesc == '待诊'
|
|
|
+ ? 'table-content green'
|
|
|
+ : item.patCallStatusDesc == '未签'
|
|
|
? 'table-content yellow'
|
|
|
: 'table-content'
|
|
|
}>
|
|
|
@@ -170,41 +181,41 @@ class DoctorScreen extends React.Component {
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div style={{flex: '3', height: '100%'}}>
|
|
|
- <div className='table section scroll-wrap'>
|
|
|
- <Grid columns={1} gap={8}>
|
|
|
- <Grid.Item span={1}>
|
|
|
- <div className='table-header'>看报告</div>
|
|
|
- </Grid.Item>
|
|
|
- </Grid>
|
|
|
+ <div style={{ flex: '3', height: '100%' }}>
|
|
|
+ <div className='table section scroll-wrap'>
|
|
|
+ <Grid columns={1} gap={8}>
|
|
|
+ <Grid.Item span={1}>
|
|
|
+ <div className='table-header'>看报告</div>
|
|
|
+ </Grid.Item>
|
|
|
+ </Grid>
|
|
|
<div className="scroll-content">
|
|
|
- <Swiper
|
|
|
+ <Swiper
|
|
|
autoplay={true}
|
|
|
autoplayInterval={8000}
|
|
|
loop={true}
|
|
|
direction='vertical'
|
|
|
- style={{height: '100%'}}
|
|
|
+ style={{ height: '100%' }}
|
|
|
total={this.state.reWaitPat.length}
|
|
|
indicator={false}
|
|
|
defaultIndex={1}
|
|
|
>
|
|
|
{this.state.reWaitPat.map((patlist, index) => {
|
|
|
- return <Swiper.Item key={index} style={{ height: '100%',background: '#fff' }}>
|
|
|
- {patlist.map((item, index) => {
|
|
|
+ return <Swiper.Item key={index} style={{ height: '100%', background: '#fff' }}>
|
|
|
+ {patlist.map((item, index) => {
|
|
|
return (<Grid columns={1} gap={8} key={index} className='mt'>
|
|
|
<Grid.Item span={1}>
|
|
|
<div className='table-content'> {item.patCallNo}{item.patName || '***'}</div>
|
|
|
</Grid.Item>
|
|
|
</Grid>);
|
|
|
- })}
|
|
|
+ })}
|
|
|
</Swiper.Item>;
|
|
|
})}
|
|
|
</Swiper>
|
|
|
- <div>
|
|
|
-
|
|
|
+ <div>
|
|
|
+
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|