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 ; case 1: //数据来源于大数据 return ; case 10: //数据来源于后台 return ; default: return ''; } } render() { const {disName,chronicMagItemName} =this.props; const data = this.props.data&&this.props.data[disName]; return
{ chronicMagItemName == disName?

诊断:{chronicMagItemName}复诊评估

:null }
{!data?

loading...

:''} {data&&data.length==0?

暂无数据!

:''} {data && data.map((it, i) => { return this.handoutTypes(it, i); })}
; } } export default AssessResult;