|
@@ -3,8 +3,6 @@ import style from './index.less';
|
|
|
import infoPic from "../../common/images/info-pic.png";
|
|
|
import chronicPic from "../../common/images/chronic.png";
|
|
|
import level1 from "../../common/images/级别1.png";
|
|
|
-import printIcon from '@common/images/team.png';
|
|
|
-import manageIcon from '@common/images/manage.png';
|
|
|
import tableIcon from '@common/images/table.png';
|
|
|
import allTableIcon from '@common/images/all-table.png';
|
|
|
import add from '@common/images/add-result.png';
|
|
@@ -12,7 +10,10 @@ import added from '@common/images/first.png';
|
|
|
import checkIcon from '@common/images/check.png';
|
|
|
import {ComplexModal,ConfirmModal,MiniToast, Radio,CheckBtn,Footer,Notify} from '@commonComp';
|
|
|
import AssessResult from '@containers/AssessResult';
|
|
|
+import infoShow from '@common/images/info-show.png';
|
|
|
+import infoMove from '@common/images/info-move.png';
|
|
|
import ScaleTable from '@containers/ScaleTable';
|
|
|
+import Notify from '@commonComp/Notify';
|
|
|
import {deepClone} from '@utils/tools';
|
|
|
import $ from 'jquery';
|
|
|
|
|
@@ -28,20 +29,21 @@ class ChronicInfo extends React.Component{
|
|
|
constructor(props){
|
|
|
super(props);
|
|
|
this.state = {
|
|
|
+ show:true,
|
|
|
+ showInfo:false,
|
|
|
+ showOption:false,
|
|
|
showAssess:false, //评估弹窗
|
|
|
infoId:null, //静态知识
|
|
|
formulaId:null, //计算公式
|
|
|
optionId:null, //可能结果,
|
|
|
isAssessConfirm:false, //是否点击评估弹窗确定按钮
|
|
|
- tableName:'' , //点击的量表名称
|
|
|
- tableId:null ,//点击的量表id
|
|
|
- parentId:null ,
|
|
|
- parentIndex:null,
|
|
|
radioVal:{}, //可能结果选择内容
|
|
|
possible:{}, //可能结果
|
|
|
formulaParam: {}, //量表计算公式计算入参
|
|
|
- showRecommend:false, //显示推荐结果弹窗
|
|
|
- isRecommendConfirm:false, //推荐结果确定
|
|
|
+ isCalculated:false, //是否刚计算过,关闭时值与结果对应
|
|
|
+ calcuValues:deepClone(props.calcuValues), //计算公式填的值
|
|
|
+ hasEnterImg: false, //是否移入info
|
|
|
+ currentIndex: -1 //当前index
|
|
|
};
|
|
|
|
|
|
this.showInfo = this.showInfo.bind(this);
|
|
@@ -50,15 +52,12 @@ class ChronicInfo extends React.Component{
|
|
|
this.closeOption = this.closeOption.bind(this);
|
|
|
this.showTable = this.showTable.bind(this);//显示量表弹窗
|
|
|
this.closeTable = this.closeTable.bind(this);//关闭量表弹窗
|
|
|
- this.showAssessFn = this.showAssessFn.bind(this); //开关评估弹窗
|
|
|
this.close = this.close.bind(this); //关闭量表列表
|
|
|
this.showFormula = this.showFormula.bind(this); //打开计算公式
|
|
|
- this.closeFormula = this.closeFormula.bind(this); //关闭计算公式
|
|
|
+ //this.closeFormula = this.closeFormula.bind(this); //关闭计算公式
|
|
|
this.handleAddAssessItem = this.handleAddAssessItem.bind(this); //加入病例记录
|
|
|
- this.handleSaveAssess = this.handleSaveAssess.bind(this); //评估弹窗确定
|
|
|
- this.onPrint = this.onPrint.bind(this);
|
|
|
+ this.onPrint = this.onPrint.bind(this);
|
|
|
this.handleForRadio = this.handleForRadio.bind(this);
|
|
|
- this.showRecommendFn = this.showRecommendFn.bind(this);
|
|
|
this.handleSaveCalcu = this.handleSaveCalcu.bind(this); //保存评估修改的计算和可能结果
|
|
|
this.getAddBtnState = this.getAddBtnState.bind(this);
|
|
|
}
|
|
@@ -86,7 +85,7 @@ class ChronicInfo extends React.Component{
|
|
|
}
|
|
|
handleListClick(item){//量表列表单项点击
|
|
|
this.showTable(item,null);
|
|
|
- this.close();
|
|
|
+ //this.close()
|
|
|
}
|
|
|
|
|
|
showInfo(id){
|
|
@@ -122,10 +121,10 @@ class ChronicInfo extends React.Component{
|
|
|
radioVal:Object.assign({},radioVal,possible),
|
|
|
optionId:null,
|
|
|
});
|
|
|
- }
|
|
|
+ }
|
|
|
}
|
|
|
- showTable(it,parentId,parentIndex){
|
|
|
- const {formulaResult,scaleInfo} = this.props;
|
|
|
+ showTable(it){
|
|
|
+ const {scaleInfo} = this.props;
|
|
|
// 密西根糖尿病周围神经病评分(MDNS), id:40744
|
|
|
const item = {
|
|
|
id:it.id,
|
|
@@ -133,103 +132,84 @@ class ChronicInfo extends React.Component{
|
|
|
};
|
|
|
// 判断:store里已经有该量表就无需重新调接口
|
|
|
if(scaleInfo&&scaleInfo[it.id]){
|
|
|
- this.props.hideList({name:'showTable',value:true});
|
|
|
+ this.props.hideList({name:'showTable',value:true},it);
|
|
|
}else{
|
|
|
this.props.getScaleInfo(item);
|
|
|
}
|
|
|
|
|
|
this.setState({
|
|
|
- tableName:it.name,
|
|
|
- tableId:it.id,
|
|
|
- parentId:parentId,
|
|
|
- parentIndex:parentIndex,
|
|
|
formulaId:null, //关闭计算公式和可能结果弹窗
|
|
|
optionId:null
|
|
|
})
|
|
|
}
|
|
|
closeTable(){
|
|
|
- this.setState({
|
|
|
- tableName:'',
|
|
|
- tableId:null,
|
|
|
- parentId:null,
|
|
|
- })
|
|
|
this.props.hideList({name:'showTable',value:false});
|
|
|
}
|
|
|
- showAssessFn(){
|
|
|
- this.setState({
|
|
|
- showAssess:!this.state.showAssess,
|
|
|
- isAssessConfirm:false
|
|
|
- });
|
|
|
- }
|
|
|
- showRecommendFn(){
|
|
|
- this.setState({
|
|
|
- isRecommendConfirm:false,
|
|
|
- showRecommend:!this.state.showRecommend,
|
|
|
- });
|
|
|
- }
|
|
|
showFormula(id){//计算公式
|
|
|
this.setState({
|
|
|
formulaId:id,
|
|
|
optionId:null //关闭可能结果
|
|
|
})
|
|
|
}
|
|
|
- closeFormula(){
|
|
|
+ closeFormula(it){
|
|
|
+ const {formulaId,isCalculated} =this.state;
|
|
|
+ if(!isCalculated){
|
|
|
+ //没有计算结果时,保存输入的值
|
|
|
+ const {calcuResult,calcuValues} = this.props;
|
|
|
+ const cres = calcuResult&&calcuResult[formulaId]||it.content.result;
|
|
|
+ const result = cres&&cres[1]&&cres[1].text;
|
|
|
+ if(result){
|
|
|
+ this.setState({
|
|
|
+ calcuValues:deepClone(calcuValues)
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
this.setState({
|
|
|
- formulaId:null
|
|
|
- })
|
|
|
+ formulaId:null,
|
|
|
+ });
|
|
|
}
|
|
|
handleAddAssessItem(v,pIndex,i){
|
|
|
const {addAssessItem} = this.props;
|
|
|
addAssessItem(v,pIndex,i);
|
|
|
}
|
|
|
- handleSaveRecommend(){
|
|
|
- this.setState({
|
|
|
- isRecommendConfirm:true
|
|
|
- });
|
|
|
- const that=this;
|
|
|
- setTimeout(()=>{
|
|
|
- that.showRecommendFn();
|
|
|
- });
|
|
|
+ handleReg(e){ //只能输入数字
|
|
|
+ const hasDot = e.target.value.indexOf('.')!=-1;
|
|
|
+ const key = e.key;
|
|
|
+ if(key!='Backspace'&&((/[^\d]/.test(key)&&key!='.')||(key=='.'&&(hasDot||!e.target.value)))){
|
|
|
+ e.preventDefault();
|
|
|
+ }
|
|
|
}
|
|
|
- handleSaveAssess(){
|
|
|
+ handleInputformula(id,calcuContent,i,e) {
|
|
|
+ const {calcuValues} = this.state;
|
|
|
+ let obj = deepClone(calcuValues);
|
|
|
+ let values = (obj&&obj[id])||deepClone(calcuContent);
|
|
|
+ const txt = e.target.value;
|
|
|
+ values[i].value = txt.replace(/[\u4e00-\u9fa5]|[^\d|.]/g,''); //处理中文输入法的情况
|
|
|
+ obj[id] = values;
|
|
|
+ if(/[\u4e00-\u9fa5]|[^\d|.]/g.test(txt)){
|
|
|
+ e.target.value = txt.replace(/[\u4e00-\u9fa5]|[^\d|.]/g,'');
|
|
|
+ }
|
|
|
this.setState({
|
|
|
- isAssessConfirm:true
|
|
|
- });
|
|
|
- const that=this;
|
|
|
- setTimeout(()=>{
|
|
|
- that.showAssessFn();
|
|
|
+ isCalculated:false,
|
|
|
+ calcuValues:obj
|
|
|
});
|
|
|
}
|
|
|
- handleInputformula(v,i, j,idd, e) {
|
|
|
- const { data, setChronicPush,calcuValues } = this.props;
|
|
|
- let data1 = JSON.parse(JSON.stringify(data));
|
|
|
- if(calcuValues&&calcuValues[data1[i].id]){
|
|
|
- data1[i].details[j].content=calcuValues&&calcuValues[data1[i].id];
|
|
|
- }
|
|
|
- const text = e.target.value;
|
|
|
- if (data1[i].details) {
|
|
|
- data1[i].details[j].content.details[idd].value = text
|
|
|
- }
|
|
|
-
|
|
|
- setChronicPush(data1,data1[i].id,data1[i].details[j].content)
|
|
|
- }
|
|
|
- handleForRadio(ii,v,i, j,idd, ind){//计算公式
|
|
|
- const { data, setChronicPush,calcuValues } = this.props;
|
|
|
- const data1 = JSON.parse(JSON.stringify(data));
|
|
|
- if(calcuValues&&calcuValues[data1[i].id]){
|
|
|
- data1[i].details[j].content=calcuValues&&calcuValues[data1[i].id];
|
|
|
- }
|
|
|
- if (data1[i].details) {
|
|
|
- for(let z = 0; z < data1[i].details[j].content.details[idd].details.length; z++) {
|
|
|
- data1[i].details[j].content.details[idd].details[z].state = 0
|
|
|
+ handleForRadio(id,calcuContent,i,fidx){//计算公式
|
|
|
+ const { calcuValues } = this.state;
|
|
|
+ let obj = deepClone(calcuValues);
|
|
|
+ let values = (obj&&obj[id])||deepClone(calcuContent);
|
|
|
+ let details = values[i].details;
|
|
|
+ for(let x=0;x<details.length;x++){
|
|
|
+ if(x!=fidx){
|
|
|
+ details[x].state=0;
|
|
|
+ }else{
|
|
|
+ details[x].state=1;
|
|
|
}
|
|
|
- data1[i].details[j].content.details[idd].details[ind].state = 1
|
|
|
}
|
|
|
- setChronicPush(data1,data1[i].id,data1[i].details[j].content);
|
|
|
- }
|
|
|
- confirmFormula(){//计算公式确定
|
|
|
+ obj[id] = values;
|
|
|
this.setState({
|
|
|
- formulaId:null
|
|
|
+ isCalculated:false,
|
|
|
+ calcuValues:obj
|
|
|
});
|
|
|
}
|
|
|
handleRadio(item,parent){//可能结果
|
|
@@ -254,51 +234,55 @@ class ChronicInfo extends React.Component{
|
|
|
radioVal:Object.assign({},obj.radioVal),//不设置radioVal只有最近一次选中的值
|
|
|
})
|
|
|
}
|
|
|
- calcuFormula(item,j, v, i) { //计算公式计算
|
|
|
- const { calcuFormula ,data,calcuValues} = this.props;
|
|
|
- let pushObj = deepClone(data);
|
|
|
- if(calcuValues&&calcuValues[pushObj[i].id]){
|
|
|
- pushObj[i].details[j].content=calcuValues&&calcuValues[pushObj[i].id];
|
|
|
- }
|
|
|
- let it = pushObj[i].details[j];
|
|
|
+ calcuFormula(id,it) { //计算公式计算
|
|
|
+ const { calcuFormula } = this.props;
|
|
|
+ let item = deepClone(it);
|
|
|
+ const values = this.state.calcuValues;
|
|
|
+ const calcuValues = Object.keys(values).length&&values[id]?values[id]:item.content.details;
|
|
|
let allHasInfo = true;
|
|
|
- for (let i = 0; i < it.content.details.length; i++) {
|
|
|
- if(it.content.details[i].controlType == 2) { //输入框类型的有没有填值
|
|
|
- if(!it.content.details[i].value) {
|
|
|
- allHasInfo = false
|
|
|
+ for (let i = 0; i < calcuValues.length; i++) {
|
|
|
+ if(calcuValues[i].controlType == 2) { //输入框类型的有没有填值
|
|
|
+ if(!calcuValues[i].value) {
|
|
|
+ allHasInfo = false;
|
|
|
}
|
|
|
- } else if(it.content.details[i].controlType == 1) {
|
|
|
- let hasSelect = false
|
|
|
- for( let z = 0; z <it.content.details[i].details.length; z++) {
|
|
|
- if(it.content.details[i].details[z].state == 1) {
|
|
|
- hasSelect= true
|
|
|
+ } else if(calcuValues[i].controlType == 1) {
|
|
|
+ let hasSelect = false;
|
|
|
+ for( let z = 0; z <calcuValues[i].details.length; z++) {
|
|
|
+ if(calcuValues[i].details[z].state == 1) {
|
|
|
+ hasSelect= true;
|
|
|
}
|
|
|
}
|
|
|
if(!hasSelect) {
|
|
|
- allHasInfo = false
|
|
|
+ allHasInfo = false;
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
+ item.content.details = calcuValues;
|
|
|
if(allHasInfo) { //所有都有值,则计算
|
|
|
let param = {
|
|
|
type: 2,
|
|
|
- data: it,
|
|
|
- disId: v.id,
|
|
|
- pIndex: j,
|
|
|
- ppIndex: i
|
|
|
+ data: item,
|
|
|
+ disId: id
|
|
|
};
|
|
|
- calcuFormula({param,chronicPushItems:pushObj})
|
|
|
+ calcuFormula(param);
|
|
|
+ this.setState({
|
|
|
+ isCalculated:true
|
|
|
+ });
|
|
|
} else { //不是所有值都填过了
|
|
|
Notify.info('请填写计算公式内容')
|
|
|
}
|
|
|
}
|
|
|
getAddBtnState(flag,v,i,j){
|
|
|
- const {indexs,wholeScaleItems,addScaleItems} = this.props;
|
|
|
- let btn = '';
|
|
|
+ const {indexs,wholeScaleItems,addScaleItems,chronicMagItem,chronicDesease,addedScaleIds} = this.props;
|
|
|
+ let btn = '',reCheck=false;
|
|
|
+ let show = chronicMagItem&&chronicMagItem.name||chronicDesease&&chronicDesease.name;
|
|
|
+ if(!show){
|
|
|
+ return '';
|
|
|
+ }
|
|
|
if(flag){ //有结果
|
|
|
if(j!==undefined){
|
|
|
- btn = indexs[i]&&indexs[i].includes(j)?<span className={style["add-record"]}>
|
|
|
+ reCheck = addedScaleIds.includes(v.details[j].content.id); //列表中是否加入同一量表
|
|
|
+ btn = (indexs[i]&&indexs[i].includes(j))||reCheck?<span className={style["add-record"]}>
|
|
|
<img src={added} />
|
|
|
已加入
|
|
|
</span>:<span className={style["listResult"]} onClick={()=>this.handleAddAssessItem(v,i,j)}>
|
|
@@ -306,7 +290,8 @@ class ChronicInfo extends React.Component{
|
|
|
加入病历记录
|
|
|
</span>;
|
|
|
}else{
|
|
|
- btn = wholeScaleItems&&wholeScaleItems[i]?<span className={style["add-record"]}>
|
|
|
+ reCheck = addedScaleIds.includes(v.id); //推送中是否加入同一量表
|
|
|
+ btn = (wholeScaleItems&&wholeScaleItems[i])||reCheck?<span className={style["add-record"]}>
|
|
|
<img src={added} />
|
|
|
已加入
|
|
|
</span>:<span className={style["listResult"]} onClick={()=>addScaleItems(v,i)}>
|
|
@@ -324,16 +309,57 @@ class ChronicInfo extends React.Component{
|
|
|
|
|
|
return btn;
|
|
|
}
|
|
|
+ handleMouseEnterDrug(index) {
|
|
|
+ this.setState({
|
|
|
+ currentIndex: index,
|
|
|
+ })
|
|
|
+ }
|
|
|
+ handleMouseLeaveDrug() {
|
|
|
+ this.setState({
|
|
|
+ currentIndex: -1,
|
|
|
+ })
|
|
|
+ }
|
|
|
+ handleMouseEnterImg() {
|
|
|
+ this.setState({
|
|
|
+ hasEnterImg: true
|
|
|
+ })
|
|
|
+ }
|
|
|
+ handleMouseLeaveImg() {
|
|
|
+ this.setState({
|
|
|
+ hasEnterImg: false
|
|
|
+ })
|
|
|
+ }
|
|
|
getDetail(){
|
|
|
- const {data,formulaResult,calcuResult,calcuValues} = this.props;
|
|
|
- const {formulaId,optionId,possible,radioVal} = this.state;
|
|
|
+ const {data,formulaResult,calcuResult} = this.props;
|
|
|
+ const {formulaId,optionId,possible,radioVal,calcuValues,currentIndex,hasEnterImg} = this.state;
|
|
|
let list = data&&data.map((v,i)=>{
|
|
|
return <div className={style["list"]}>
|
|
|
{v.name?<p>
|
|
|
- <span>{'患者可能有'+v.name}</span>
|
|
|
- <img src={infoPic} className={style["infoPic"]} onClick={this.showInfo.bind(this,v.id)}/>
|
|
|
+ <span>患者可能有</span>
|
|
|
+ <span
|
|
|
+ className={style['dis-name']}
|
|
|
+ onMouseEnter={this.handleMouseEnterDrug.bind(this, i)}
|
|
|
+ onMouseLeave = {this.handleMouseLeaveDrug.bind(this)}
|
|
|
+ >
|
|
|
+ {v.name}
|
|
|
+ {<img className={style['info-img']}
|
|
|
+ style ={currentIndex === i ? {display: "inline-block"} : {display: "none"}}
|
|
|
+ src={currentIndex === i ?(hasEnterImg ? infoMove : infoShow ): infoShow}
|
|
|
+ onMouseEnter={this.handleMouseEnterImg.bind(this)}
|
|
|
+ onMouseLeave = {this.handleMouseLeaveImg.bind(this)}
|
|
|
+ onClick={this.showInfo.bind(this,v.id)}/>}
|
|
|
+
|
|
|
+ </span>
|
|
|
+ {/* <img src={infoShow} className={style["infoPic"]} onClick={this.showInfo.bind(this,v.id)}/> */}
|
|
|
+
|
|
|
:
|
|
|
</p>:''}
|
|
|
+ {/*<MiniToast title='静态知识'
|
|
|
+ icon={allTableIcon}
|
|
|
+ show={infoId&&infoId==v.id?true:false}
|
|
|
+ close={this.closeInfo}>
|
|
|
+ {pureText}
|
|
|
+ </MiniToast>*/}
|
|
|
{v.details&&v.details.map((it,j)=>{
|
|
|
if(it.type==1){
|
|
|
return <p>
|
|
@@ -341,14 +367,19 @@ class ChronicInfo extends React.Component{
|
|
|
<i onClick={this.showTable.bind(this,it.content,v.id,i)}>{'【'+it.content.name+'】'}</i>
|
|
|
{formulaResult&&formulaResult[it.content.id]?<i>{'结果:'}{formulaResult[it.content.id].calcalculate&&formulaResult[it.content.id].calcalculate.result.value +' '+ formulaResult[it.content.id].calcalculate.result.text}</i>:''}
|
|
|
</span>
|
|
|
- {
|
|
|
- this.getAddBtnState(formulaResult&&formulaResult[it.content.id],v,i,j)
|
|
|
+ {indexs[i]&&indexs[i].includes(j)?<span className={style["addResult"]}>
|
|
|
+ <img src={added} />
|
|
|
+ 已加入
|
|
|
+ </span>:<span className={style["listResult"]} onClick={()=>this.handleAddAssessItem(v,i,j)}>
|
|
|
+ <img src={add} />
|
|
|
+ 加入病历记录
|
|
|
+ </span>
|
|
|
}
|
|
|
</p>
|
|
|
}else if(it.type==2){
|
|
|
const cres = calcuResult&&calcuResult[v.id]||it.content.result;
|
|
|
const result = cres&&cres[1]&&cres[1].text;
|
|
|
- const details = calcuValues&&calcuValues[v.id]&&calcuValues[v.id].details||it.content.details;
|
|
|
+ const details = calcuValues&&calcuValues[v.id]||it.content.details;
|
|
|
return <div className={style["marTop"]}>
|
|
|
<span className={style["limit"]}>
|
|
|
计算公式结果:
|
|
@@ -360,9 +391,10 @@ class ChronicInfo extends React.Component{
|
|
|
}
|
|
|
{formulaId&&formulaId==v.id&&<MiniToast title={it.content.name}
|
|
|
icon={allTableIcon}
|
|
|
+ confirmText='关闭'
|
|
|
show={formulaId&&formulaId==v.id?true:false}
|
|
|
- close={this.closeFormula}
|
|
|
- confirm={this.confirmFormula.bind(this,v,i)}
|
|
|
+ close={this.closeFormula.bind(this,it)}
|
|
|
+ confirm={this.closeFormula.bind(this,it)}
|
|
|
footer="true">
|
|
|
<table>
|
|
|
{details.map((item,idd)=>{
|
|
@@ -376,7 +408,7 @@ class ChronicInfo extends React.Component{
|
|
|
return <div className={style["chooseItem"]}>
|
|
|
<Radio label={ii.detailName}
|
|
|
isSelect={ii.state == 1}
|
|
|
- handleClick={this.handleForRadio.bind(this,ii,v,i, j,idd, ind)}>
|
|
|
+ handleClick={this.handleForRadio.bind(this,v.id,details,idd,ind)}>
|
|
|
</Radio>
|
|
|
</div>
|
|
|
})}
|
|
@@ -388,17 +420,17 @@ class ChronicInfo extends React.Component{
|
|
|
<span>{'请输入'+item.name+':'}</span>
|
|
|
</td>
|
|
|
<td>
|
|
|
- <input type="text" placeholder="请输入" value={item.value} onInput={this.handleInputformula.bind(this,v,i, j,idd)}/>
|
|
|
+ <input type="text" placeholder="请输入" value={item.value} onKeyDown={this.handleReg.bind(this)} onInput={this.handleInputformula.bind(this,v.id,details,idd)}/>
|
|
|
</td>
|
|
|
<td>
|
|
|
<span>{item.uint}</span>
|
|
|
</td>
|
|
|
-
|
|
|
+
|
|
|
</tr>
|
|
|
}
|
|
|
})}
|
|
|
</table>
|
|
|
- <div className={style["forMulBtn"]} onClick={this.calcuFormula.bind(this,it,j, v, i)}>计算</div>
|
|
|
+ <div className={style["forMulBtn"]} onClick={this.calcuFormula.bind(this,v.id,it)}>计算</div>
|
|
|
<table>
|
|
|
{cres && Array.isArray(cres) &&cres.map((itemResult, resultIndex) => {
|
|
|
return <tr>
|
|
@@ -434,7 +466,7 @@ class ChronicInfo extends React.Component{
|
|
|
<span>{it.content.name?it.content.name+':':''}</span>
|
|
|
{it.content.details&&it.content.details.map((lis,ind)=>{
|
|
|
return <div className={style["chooseItem"]}>
|
|
|
- <Radio label={lis.detailName}
|
|
|
+ <Radio label={lis.detailName}
|
|
|
isSelect={radioVal[v.id]==lis.detailName}
|
|
|
handleClick={this.handleRadio.bind(this,lis,v)}>
|
|
|
</Radio>
|
|
@@ -450,48 +482,30 @@ class ChronicInfo extends React.Component{
|
|
|
})
|
|
|
return list;
|
|
|
}
|
|
|
-
|
|
|
+ componentWillReceiveProps(next){
|
|
|
+ if(JSON.stringify(next.calcuValues)!=JSON.stringify(this.props.calcuValues)){
|
|
|
+ this.setState({
|
|
|
+ calcuValues:next.calcuValues
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
render(){
|
|
|
- const footer = <Footer print={true}
|
|
|
- footText="确定"
|
|
|
- handlePrint={this.onPrint}
|
|
|
- handleConfirm={this.handleSaveAssess} />
|
|
|
- const recFooter = <Footer print={false}
|
|
|
- footText="确定"
|
|
|
- handleConfirm={this.handleSaveRecommend}/>
|
|
|
const scaleFooter = <Footer print={true}
|
|
|
- footText="确定"
|
|
|
- handlePrint={this.onPrint}
|
|
|
- handleConfirm={this.closeTable}/>
|
|
|
- const {chronicMagItem,tableList,saveAssessInfos,chronicDesease,formulaResult,showHide} = this.props;
|
|
|
- const {showAssess,isAssessConfirm,tableName,tableId,parentId,parentIndex,isRecommendConfirm,showRecommend,radioVal,possible} = this.state;
|
|
|
- return <div className={style["tips"]}>
|
|
|
- <div className={style["tips-title"]}>
|
|
|
+ footText="确定"
|
|
|
+ handlePrint={this.onPrint}
|
|
|
+ handleConfirm={this.closeTable}/>;
|
|
|
+ const {chronicMagItem,tableList,chronicDesease,formulaResult,showHide} = this.props;
|
|
|
+ return <div className={style["tips"]} style={{marginBottom:'15px'}}>
|
|
|
+ <div className={`${style["tips-title"]} ${style["chronic"]}`}>
|
|
|
<div className={style["tips-name"]}>
|
|
|
<img src={chronicPic} />
|
|
|
<h2>{chronicMagItem&&chronicMagItem.name||chronicDesease&&chronicDesease.name||'病情提示'}</h2>
|
|
|
<span className={style["redTips"]}>(页面信息有更新可能影响评估结果)</span>
|
|
|
</div>
|
|
|
<div className={style["tips-btn"]} style={{display:chronicMagItem&&chronicMagItem.name||chronicDesease&&chronicDesease.name?'block':'none'}}>
|
|
|
- <span
|
|
|
- className={style["tipsDetails"]}
|
|
|
- style={{width:'70px'}}
|
|
|
- onClick={this.showAssessFn}
|
|
|
- >
|
|
|
- 管理和评估
|
|
|
- </span>
|
|
|
<span className={style["tipsDetails"]} onClick={() => this.showTableList(chronicDesease&&chronicDesease.id||chronicMagItem&&chronicMagItem.id)}>量表
|
|
|
</span>
|
|
|
</div>
|
|
|
- <div className={style["tips-btn"]} style={{display:chronicMagItem&&chronicMagItem.name||chronicDesease&&chronicDesease.name?'none':'block'}}>
|
|
|
- <span
|
|
|
- className={style["tipsDetails"]}
|
|
|
- style={{width:'70px'}}
|
|
|
- onClick={this.showRecommendFn}
|
|
|
- >
|
|
|
- 推荐结果
|
|
|
- </span>
|
|
|
- </div>
|
|
|
</div>
|
|
|
<div className={style["content"]}>
|
|
|
{this.getDetail()}
|
|
@@ -512,42 +526,12 @@ class ChronicInfo extends React.Component{
|
|
|
</ul>
|
|
|
</ConfirmModal>
|
|
|
{showHide&&showHide.showTable?<ComplexModal onclose={this.closeTable} footer={scaleFooter}
|
|
|
- title={tableName}
|
|
|
+ title={showHide.name}
|
|
|
icon={tableIcon}
|
|
|
top={20}
|
|
|
bottom={20}
|
|
|
width={820}>
|
|
|
- <ScaleTable tableId={tableId} parentId={parentId} parentIndex={parentIndex}></ScaleTable>
|
|
|
- </ComplexModal>:''}
|
|
|
- {showAssess?<ComplexModal onclose={this.showAssessFn} footer={footer}
|
|
|
- title='管理和评估'
|
|
|
- icon={manageIcon}
|
|
|
- top={'3%'}
|
|
|
- bottom={'3%'}
|
|
|
- width={820}>
|
|
|
- <AssessResult handleSave={saveAssessInfos}
|
|
|
- handleSaveCalcu={this.handleSaveCalcu}
|
|
|
- closeAssess={this.showAssessFn}
|
|
|
- showScaleFn={this.showTable.bind(this)}
|
|
|
- showListScale={this.handleListClick.bind(this)}
|
|
|
- radioVal={radioVal}
|
|
|
- possible={possible}
|
|
|
- isAssessConfirm={isAssessConfirm}></AssessResult>
|
|
|
- </ComplexModal>:''}
|
|
|
- {showRecommend?<ComplexModal onclose={this.showRecommendFn} footer={recFooter}
|
|
|
- title='推荐结果'
|
|
|
- icon={manageIcon}
|
|
|
- top={20}
|
|
|
- bottom={20}
|
|
|
- width={820}>
|
|
|
- <AssessResult handleSave={saveAssessInfos}
|
|
|
- handleSaveCalcu={this.handleSaveCalcu}
|
|
|
- closeAssess={this.showRecommendFn}
|
|
|
- isRecommend={true}
|
|
|
- showScaleFn={this.showTable.bind(this)}
|
|
|
- radioVal={radioVal}
|
|
|
- possible={possible}
|
|
|
- isAssessConfirm={isRecommendConfirm}></AssessResult>
|
|
|
+ <ScaleTable title={showHide.name} tableId={showHide.id}></ScaleTable>
|
|
|
</ComplexModal>:''}
|
|
|
</div>
|
|
|
}
|