|
@@ -9,14 +9,17 @@ import Empty from '@components/Empty'
|
|
|
import { pushAllDataList,didPushParamChange } from '@utils/tools';
|
|
|
import { dragBox } from '@utils/drag';
|
|
|
import { initItemList, setInitHistory } from '@store/async-actions/historyTemplates';
|
|
|
+import HistoryCases from '@containers/HistoryCases';
|
|
|
import $ from 'jquery';
|
|
|
import { ConfirmModal } from '@commonComp';
|
|
|
import {showHistory} from "@store/actions/historyTemplates";
|
|
|
import { SET_READ_MODE } from "@store/types/typeConfig";
|
|
|
import {billing} from '@store/async-actions/pushMessage';
|
|
|
import { getHistempDetail, asyncUpdateByIdUsNames, asyncCancelTemplateInfos} from '@store/async-actions/historyTemplates';
|
|
|
-import del from '../../../common/images/delete_no.png';
|
|
|
-import edit from '../../../common/images/check.png';
|
|
|
+import edit from '../../../common/images/icon_edit_default@2x.png';
|
|
|
+import editHover from '../../../common/images/icon_edit_hover@2x.png';
|
|
|
+import del from '../../../common/images/icon_del_default@2x.png';
|
|
|
+import delHover from '../../../common/images/icon_del_hover@2x.png';
|
|
|
import Notify from '@commonComp/Notify';
|
|
|
|
|
|
class HistoryCaseContainer extends React.Component {
|
|
@@ -32,9 +35,12 @@ class HistoryCaseContainer extends React.Component {
|
|
|
editVisible: false,
|
|
|
templateName: '', // 病历名称
|
|
|
historyCase: [],
|
|
|
- currentIndex:0,
|
|
|
+ currentIndex:-1,
|
|
|
delId: '', //删除病历id
|
|
|
editId: '', //编辑病历id
|
|
|
+ activeIndex: 0,
|
|
|
+ showEditIcon: false,
|
|
|
+ showDelIcon: false,
|
|
|
}
|
|
|
this.handleCaseClick=this.handleCaseClick.bind(this)
|
|
|
this.handleQuoteClick=this.handleQuoteClick.bind(this)
|
|
@@ -51,36 +57,28 @@ class HistoryCaseContainer extends React.Component {
|
|
|
}
|
|
|
componentDidMount(){
|
|
|
const {items} = this.props
|
|
|
- // items.forEach(item=>{
|
|
|
- // item.editShow = false
|
|
|
- // })
|
|
|
- // items[0].editShow = true
|
|
|
dragBox('hisWrapMove','closeHis','add')
|
|
|
setTimeout(() => {
|
|
|
this.handleCaseClick(0, items[0])
|
|
|
}, 50);
|
|
|
this.setState({
|
|
|
visible:false,
|
|
|
- // historyCase: items
|
|
|
})
|
|
|
}
|
|
|
|
|
|
componentWillReceiveProps(nextProps){
|
|
|
- const { items } = nextProps
|
|
|
- this.setState({
|
|
|
- // historyCase: items
|
|
|
- })
|
|
|
}
|
|
|
|
|
|
- // 获取列表数据
|
|
|
+ // 操作后获取获取列表数据
|
|
|
getTemplatePageAlls() {
|
|
|
- initItemList().then(res => {
|
|
|
- const result = res.data
|
|
|
- if (result.code == 0 && result.data) {
|
|
|
- store.dispatch(setInitHistory(result.data));
|
|
|
- } else {
|
|
|
- Notify.info("暂无历史病历");
|
|
|
- }
|
|
|
+ return new Promise((resolve,reject)=>{
|
|
|
+ initItemList().then(res => {
|
|
|
+ const result = res.data
|
|
|
+ if (result.code == 0 && result.data) {
|
|
|
+ store.dispatch(setInitHistory(result.data));
|
|
|
+ resolve('ok')
|
|
|
+ }
|
|
|
+ })
|
|
|
})
|
|
|
}
|
|
|
|
|
@@ -102,18 +100,20 @@ class HistoryCaseContainer extends React.Component {
|
|
|
this.setState({
|
|
|
activeId: idx,
|
|
|
activeHis: tmpItems,
|
|
|
- dataStr: tmpItems.detailList || [],
|
|
|
+ // dataStr: tmpItems.preview || {},
|
|
|
// dataJson:JSON.parse(tmpItems.dataJson)||{},
|
|
|
- currentIndex: idx
|
|
|
+ dataStr: JSON.parse(tmpItems.preview)||[],
|
|
|
+ activeIndex: idx
|
|
|
})
|
|
|
}
|
|
|
+ // 确认引用选中病历
|
|
|
makeSure(){
|
|
|
const {activeHis} = this.state;
|
|
|
this.setState({visible:false});
|
|
|
store.dispatch(showHistory(false));
|
|
|
//store.dispatch({type: CONFIRM_TYPE, confirmType: activeHis.sign});
|
|
|
//store.dispatch({type: SET_READ_MODE, readMode: activeHis.sign});
|
|
|
- store.dispatch(getHistempDetail(activeHis));
|
|
|
+ store.dispatch(getHistempDetail(activeHis)); // 获取引用数据
|
|
|
const {handleQuoteClick} = this.props;
|
|
|
handleQuoteClick&&handleQuoteClick();
|
|
|
dragBox('hisWrapMove','closeHis','del');
|
|
@@ -128,7 +128,19 @@ class HistoryCaseContainer extends React.Component {
|
|
|
delVisible: false
|
|
|
})
|
|
|
// 重新渲染列表
|
|
|
- this.getTemplatePageAlls()
|
|
|
+ this.getTemplatePageAlls().then(res=>{
|
|
|
+ if(res === 'ok'){
|
|
|
+ const { items } = this.props;
|
|
|
+ if(items.length ===0) {
|
|
|
+ this.setState({
|
|
|
+ activeHis: {}
|
|
|
+ })
|
|
|
+ store.dispatch(showHistory(false));
|
|
|
+ return
|
|
|
+ }
|
|
|
+ this.handleCaseClick(0, items[0])
|
|
|
+ }
|
|
|
+ })
|
|
|
}
|
|
|
}).catch(err => {
|
|
|
Notify.info(err.msg);
|
|
@@ -144,6 +156,7 @@ class HistoryCaseContainer extends React.Component {
|
|
|
}
|
|
|
// 显示删除确认框
|
|
|
handleDelQuoteClick(e, val, idx) {
|
|
|
+ e.stopPropagation()
|
|
|
this.setState({
|
|
|
delVisible: true,
|
|
|
delId: val.id
|
|
@@ -176,6 +189,7 @@ class HistoryCaseContainer extends React.Component {
|
|
|
}
|
|
|
// 显示编辑确认框
|
|
|
handleEditQuoteClick(e, val, idx) {
|
|
|
+ e.stopPropagation()
|
|
|
this.setState({
|
|
|
editVisible: true,
|
|
|
editId: val.id,
|
|
@@ -188,13 +202,16 @@ class HistoryCaseContainer extends React.Component {
|
|
|
visible:false
|
|
|
})
|
|
|
}
|
|
|
+
|
|
|
+ // 引用,右侧文本数据同步渲染
|
|
|
handleQuoteClick(e,val,idx){
|
|
|
this.setState({
|
|
|
visible:true,
|
|
|
activeId:idx,
|
|
|
activeHis:val,
|
|
|
- dataStr:val.detailList||[],
|
|
|
+ // dataStr: val.preview||{},
|
|
|
// dataJson:JSON.parse(val.dataJson)||{},
|
|
|
+ dataStr: JSON.parse(val.preview) || [],
|
|
|
})
|
|
|
}
|
|
|
// 修改模板名称 input的值
|
|
@@ -205,15 +222,50 @@ class HistoryCaseContainer extends React.Component {
|
|
|
}
|
|
|
|
|
|
// 处理鼠标移入
|
|
|
- handleMouseEnter(){
|
|
|
- // console.log('处理鼠标移入');
|
|
|
+ handleMouseEnterLi(idx){
|
|
|
+ // console.log('处理鼠标移入li');
|
|
|
+ this.setState({
|
|
|
+ currentIndex: idx
|
|
|
+ })
|
|
|
}
|
|
|
|
|
|
// 处理鼠标移除
|
|
|
- handleMouseLeave(){
|
|
|
- // console.log('处理鼠标移除');
|
|
|
+ handleMouseLeaveLi(idx){
|
|
|
+ // console.log('处理鼠标移除li');
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ // 处理鼠标移入编辑按钮
|
|
|
+ handleMouseEnterEdit(idx) {
|
|
|
+
|
|
|
+ this.setState({
|
|
|
+ showEditIcon: true
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ // 处理鼠标移出编辑按钮
|
|
|
+ handleMouseLeaveEdit(idx) {
|
|
|
+
|
|
|
+ this.setState({
|
|
|
+ showEditIcon: false
|
|
|
+ })
|
|
|
}
|
|
|
|
|
|
+ // 处理鼠标移入删除按钮
|
|
|
+ handleMouseEnterDel(idx) {
|
|
|
+
|
|
|
+ this.setState({
|
|
|
+ showDelIcon: true
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ // 处理鼠标移出删除按钮
|
|
|
+ handleMouseLeaveDel(idx) {
|
|
|
+ this.setState({
|
|
|
+ showDelIcon: false
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
// 排序
|
|
|
handleSortClick(){
|
|
|
const { items } = this.props;
|
|
@@ -227,22 +279,24 @@ class HistoryCaseContainer extends React.Component {
|
|
|
|
|
|
render(){
|
|
|
const { items,handleSortClick,showHistoryBox,preInfo } = this.props;
|
|
|
+ const { activeHis, visible, dataJson, dataStr, delVisible, editVisible, historyCase, currentIndex, activeIndex } = this.state;
|
|
|
|
|
|
- const { activeHis, visible, dataJson, dataStr, delVisible, editVisible, historyCase, currentIndex } = this.state;
|
|
|
-
|
|
|
- console.log(dataStr,'dataStr');
|
|
|
-
|
|
|
- const getAllDataStringList = () =>{ //获取所有模块文本的数据
|
|
|
+
|
|
|
+ const getAllDataStringList = (dataStr) =>{ //获取所有模块文本的数据
|
|
|
let jsonDataString = {};
|
|
|
jsonDataString.lis = {};
|
|
|
- jsonDataString.chief = dataStr[0].content || ''; //主诉
|
|
|
- jsonDataString.present = dataStr[1].content || ''; //现病史
|
|
|
- jsonDataString.other = dataStr[2].content || ''; //其他史
|
|
|
- jsonDataString.vital = dataStr[3].content || ''; //查体
|
|
|
- jsonDataString.lis = dataStr[4].content || ''; //化验导入填写
|
|
|
- jsonDataString.pacs = dataStr[5].content || ''; //辅检
|
|
|
- jsonDataString.diag = dataStr[6].content || ''; //诊断
|
|
|
- jsonDataString.advice = dataStr[7].content || ''; //医嘱
|
|
|
+ jsonDataString.chief = dataStr[0] && dataStr[0].content || ''; //主诉
|
|
|
+ jsonDataString.present = dataStr[1] &&dataStr[1].content || ''; //现病史
|
|
|
+ jsonDataString.pastHistory = dataStr[2] &&dataStr[2].content || '';
|
|
|
+ jsonDataString.personalHistory = dataStr[3] &&dataStr[3].content || '';
|
|
|
+ jsonDataString.familyHistory = dataStr[4] &&dataStr[4].content || '';
|
|
|
+ jsonDataString.marriageHistory = dataStr[5] &&dataStr[5].content || '';
|
|
|
+ jsonDataString.menstruationHistory = dataStr[6] && dataStr[6].content || '';
|
|
|
+ jsonDataString.vital = dataStr[7] && dataStr[7].content || ''; //查体
|
|
|
+ // jsonDataString.lis = dataStr[4].content || ''; //化验导入填写
|
|
|
+ // jsonDataString.pacs = dataStr[5].content || ''; //辅检
|
|
|
+ // jsonDataString.diag = dataStr[6].content || ''; //诊断
|
|
|
+ // jsonDataString.advice = dataStr[7].content || ''; //医嘱
|
|
|
return jsonDataString;
|
|
|
}
|
|
|
return (
|
|
@@ -252,43 +306,43 @@ class HistoryCaseContainer extends React.Component {
|
|
|
<div className={styles.mainHistoryLeft}>
|
|
|
<div className={styles.title}>
|
|
|
<span className={styles.his}>历史病历</span>
|
|
|
- {/* <span className={styles.sort} onClick={this.handleSortClick}>排序 <img src={sort} alt="排序"/></span> */}
|
|
|
+ <span className={styles.sort} onClick={this.handleSortClick}>排序 <img src={sort} alt="排序"/></span>
|
|
|
</div>
|
|
|
<div className={styles.lists}>
|
|
|
<ul id="hislistLeft">
|
|
|
{(items && items.length > 0) ? items.map((val,idx)=>{
|
|
|
// return <li key={val.id} className={val.id == activeHistory.id?styles.bgc:''} onClick={(e)=>{this.handleCaseClick(e,idx)}}>
|
|
|
- return <li key={val.id} onClick={() => { this.handleCaseClick(idx, val) }} onMouseEnter={() => this.handleMouseEnter()} onMouseLeave={() => this.handleMouseLeave()}>
|
|
|
- <div class={styles.itemLeft}>
|
|
|
- <span title={val.name}>{val.name}</span>
|
|
|
- { currentIndex === idx && (<div className={styles.edit} onClick={(e) => { this.handleEditQuoteClick(e, val, idx) }}>
|
|
|
- <img src={edit} />
|
|
|
- </div>)}
|
|
|
- </div>
|
|
|
- <div class={styles.itemRight}>
|
|
|
- <div className={styles.del} onClick={(e) => { this.handleDelQuoteClick(e, val, idx) }}>
|
|
|
- <img src={del} />
|
|
|
- </div>
|
|
|
+ return <li key={val.id} onClick={() => { this.handleCaseClick(idx, val) }} onMouseEnter={() => this.handleMouseEnterLi(idx)} onMouseLeave={() => this.handleMouseLeaveLi(idx)}>
|
|
|
+ <div className={styles.itemLeft}>
|
|
|
+ <div className={styles.historyTop}>
|
|
|
+ <span title={val.name} className={activeIndex === idx ? styles.itemNameActive :styles.itemName}>{val.name}</span>
|
|
|
+ {currentIndex === idx && (<div className={styles.edit} onClick={(e) => { this.handleEditQuoteClick(e, val, idx) }} onMouseEnter={() => this.handleMouseEnterEdit(idx)} onMouseLeave={() => this.handleMouseLeaveEdit(idx)}>
|
|
|
+ <img src={ this.state.showEditIcon ? editHover :edit} />
|
|
|
+ </div>)}
|
|
|
+ </div>
|
|
|
+ <div className={activeIndex === idx ? styles.timeActive : styles.time}>{val.inquiryDate}</div>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ <div className={styles.itemRight}>
|
|
|
+
|
|
|
<button
|
|
|
className={styles.quote}
|
|
|
onClick={(e) => { this.handleQuoteClick(e, val, idx) }}
|
|
|
>引 用</button>
|
|
|
+
|
|
|
+ {currentIndex === idx && (
|
|
|
+ <div className={styles.del} onClick={(e) => { this.handleDelQuoteClick(e, val, idx) }} onMouseEnter={() => this.handleMouseEnterDel(idx)} onMouseLeave={() => this.handleMouseLeaveDel(idx)}>
|
|
|
+ <img src={this.state.showDelIcon?delHover :del} />
|
|
|
+ </div>
|
|
|
+ )}
|
|
|
</div>
|
|
|
-
|
|
|
- {/* <span className={val.id == activeHistory.id?`${styles.time} ${styles.quoteHide}`:styles.time}>{val.inquiryDate}</span>
|
|
|
- <button
|
|
|
- className={val.id == activeHistory.id?`${styles.quote} ${styles.quoteShow}`:styles.quote}
|
|
|
- onClick={(e)=>{handleQuoteClick(e,val)}}
|
|
|
- >引 用</button> */}
|
|
|
-
|
|
|
- {/* <span className={styles.time}>{val.inquiryDate}</span> */}
|
|
|
</li>
|
|
|
}):<Empty message={'无历史病历'}></Empty>
|
|
|
}
|
|
|
</ul>
|
|
|
</div>
|
|
|
</div>
|
|
|
- {/* <div className={styles.mainHistoryRight}>
|
|
|
+ <div className={styles.mainHistoryRight}>
|
|
|
{
|
|
|
activeHis == undefined || JSON.stringify(activeHis) == "{}" ? null :
|
|
|
<PreviewBody
|
|
@@ -296,13 +350,13 @@ class HistoryCaseContainer extends React.Component {
|
|
|
showHistoryCases={this.props.showHistoryCases}
|
|
|
dataJson={dataJson}
|
|
|
baseObj={activeHis}
|
|
|
- dataStr={dataStr.length > 0?getAllDataStringList(dataStr):[]}
|
|
|
+ dataStr={dataStr.length > 0 ? getAllDataStringList(dataStr) : []}
|
|
|
show={false}
|
|
|
flg={true}
|
|
|
showAssessBtn={true}
|
|
|
></PreviewBody>
|
|
|
}
|
|
|
- </div> */}
|
|
|
+ </div>
|
|
|
|
|
|
<ConfirmModal
|
|
|
visible={visible}
|
|
@@ -342,23 +396,7 @@ class HistoryCaseContainer extends React.Component {
|
|
|
oKBg={'#3B9ED0'}
|
|
|
title={'编辑病历名称'}
|
|
|
height={200}
|
|
|
- >
|
|
|
- {/* <div className={style.name}>
|
|
|
- <span className={style.leftName}>模板名称:</span>
|
|
|
- <input className={style['ipt']}
|
|
|
- autocomplete="off"
|
|
|
- placeholder="请输入模板名称"
|
|
|
- type="text"
|
|
|
- maxLength='20'
|
|
|
- onInput={(e) => {
|
|
|
- this.handleInput(e)
|
|
|
- }}
|
|
|
- onPropertyChange={(e) => { // 兼容ie
|
|
|
- this.handleInput(e)
|
|
|
- }}
|
|
|
- onKeyPress={e => this.keypress(e)}
|
|
|
- />
|
|
|
- </div> */}
|
|
|
+ >
|
|
|
<div className={styles.outBox}>
|
|
|
<span>病历名称:</span>
|
|
|
<input type="text" placeholder="请输入病历名称" value={this.state.templateName} onChange={this.handleChange} autocomplete="off"/>
|