import React, { Component } from "react";
import style from "./index.less";
import { Radio } from '@commonComp';
import ChooseItem from "./ChooseItem";
import ScaleItem from "./ScaleItem";
import Information from '../Information'
import ChartItem from "./ChartItem";
import Notify from '@commonComp/Notify';
import {readyKeepHistory,deepClone} from '@utils/tools';
import loadingIcon from '@common/images/loading.gif';
class AssessResult extends Component {
constructor(props) {
super(props);
const chooseSelecteds = deepClone(props.chooseSelecteds);
const wholeIndexs = deepClone(props.wholeIndexs); //深度复制,Object.assgin为浅复制,下下级会同源
const wholeScale = deepClone(props.wholeScaleItems);
const wholeResults = deepClone(props.wholeResults);
this.state={
chooseSelecteds:chooseSelecteds, //大数据选择模块
chartTimeTypes:{}, //图表模块
wholeAssessItems:wholeIndexs, //整体评估模块
wholeScaleItems:wholeScale,
wholeAssessText:props.wholeAssessText||{}, //整体评估补充说明
wholeResults: wholeResults,
calcuResult:props.calcuResult, //计算公式结果
calcuValues:props.calcuValues, //计算公式填的值
addedScaleIds:props.addedScaleIds, //已加入量表的id
};
this.handleChooseChange = this.handleChooseChange.bind(this);
this.handleScaleDel = this.handleScaleDel.bind(this);
this.handleScaleText = this.handleScaleText.bind(this);
this.handleResult = this.handleResult.bind(this);
}
/*componentWillMount(){
const {disId,disName,getAssess} = this.props;
//获取评估
getAssess&&getAssess(disId,disName);
}*/
handleScaleText(text){
const {disName} = this.props;
const obj = Object.assign({},this.state.wholeAssessText);
obj[disName] = text;
this.setState({
wholeAssessText:obj
})
}
handleScaleDel(isList,i,id,j){
let ids = [...this.state.addedScaleIds||[]],idIndex='';
if(id){
idIndex = ids.findIndex((ii)=>id==ii);
ids.splice(idIndex,1);
}
if(isList){ //删除全部量表中的项目
const items = Object.assign({},this.state.wholeScaleItems);
delete items[i];
//items[i]=null;
this.setState({
wholeScaleItems: items,
addedScaleIds:ids
});
}else{
const items = Object.assign({},this.state.wholeAssessItems);
const inx = items[i].findIndex(x=>x==j);
items[i].splice(inx,1);
this.setState({
wholeAssessItems: items,
addedScaleIds:ids
});
}
}
handleResult(opt){
const {wholeResults} = this.state.wholeResults;
const {savePossibleRes} = this.props;
const res = Object.assign({},wholeResults,opt);
this.setState({
wholeResults:res
});
savePossibleRes && savePossibleRes(res);
}
handleChooseChange(i,selects){
const {chooseSelecteds} = this.state;
this.setState({
chooseSelecteds: Object.assign(chooseSelecteds,{[i]:selects})
});
}
handleChartChange(i,selects){
const {chartTimeTypes} = this.state;
this.setState({
chartTimeTypes:Object.assign(chartTimeTypes,{[i]:selects})
});
}
handleCalcu(id,values,ret){
const {saveCalcuValue,saveCalcuResult}=this.props;
this.setState({
calcuResult:ret,
calcuValues:values
});
saveCalcuResult&&saveCalcuResult(ret);
saveCalcuValue&&saveCalcuValue(values,id);
}
componentWillUnmount(){
//点确定关闭弹窗时把参数传到父组件去
const {saveAssessInfos,isAssessConfirm,clearChartData} = this.props;
clearChartData&&clearChartData();
if(isAssessConfirm && readyKeepHistory() == 1){
Notify.error("主诉不能为空");
}else if(isAssessConfirm && readyKeepHistory() == 2){
Notify.info('诊断不能为空');
}
if(isAssessConfirm){
saveAssessInfos(this.state,readyKeepHistory());
}
}
componentWillReceiveProps(next){
if(JSON.stringify(next.addedScaleIds)!=JSON.stringify(this.props.addedScaleIds)){
this.setState({
addedScaleIds:[...next.addedScaleIds||[]]
})
}
}
handoutTypes(item,i){
const {getIndexData,indexData,timeTypes,wholeIndexs,closeAssess,showScaleFn,chronicPushItems,
formulaResult,indexNames,disName} =this.props;
let obj = [];
Object.keys(wholeIndexs).map((i)=>{
obj[i]=chronicPushItems[i];
});
const {chooseSelecteds,wholeAssessItems,wholeScaleItems,wholeAssessText,chartTimeTypes,wholeResults,calcuResult,calcuValues} = this.state;
const chartData = indexData;
const name = item.regionName+":";
const list = item.data&&item.data.rows;
switch (+item.regionType){
case 0: //数据来源与右侧手动添加
return
诊断:{chronicMagItemName}复诊评估
:null }暂无数据!
:''} {data && data.map((it, i) => { return this.handoutTypes(it, i); })}