|
@@ -228,24 +228,27 @@ class ChronicInfo extends React.Component{
|
|
|
addAssessItem(v,pIndex,i);
|
|
|
}
|
|
|
addFormula(it,v,pIndex,i){
|
|
|
- const {chronicMagItem} = this.props;
|
|
|
+ const {chronicMagItem, setCalcuInfo} = this.props;
|
|
|
this.closeFormula(it);
|
|
|
- chronicMagItem&&this.handleAddAssessItem(v,pIndex,i);
|
|
|
+ const itCopy = deepClone(it)
|
|
|
+ const vCopy = deepClone(v)
|
|
|
+ setCalcuInfo && setCalcuInfo(v.conceptId,itCopy.content.details,itCopy.content.result)
|
|
|
+ chronicMagItem&&this.handleAddAssessItem(vCopy,pIndex,i);
|
|
|
}
|
|
|
- handleInputformula(id,calcuContent,i,e) {
|
|
|
- const {calcuValues} = this.state;
|
|
|
- let obj = deepClone(calcuValues);
|
|
|
- let values = (obj&&obj[id])||deepClone(calcuContent);
|
|
|
+ handleInputformula(id,calcuContent,i,j,idd,cres,e) {
|
|
|
+ // const {calcuValues} = this.state;
|
|
|
+ const {calcuResult,calcuValues,setCalcuInfo,data,setChronicPush} = this.props;
|
|
|
+ const dataCopy = deepClone(data)
|
|
|
+ let obj = deepClone(dataCopy[i].details[j].content.details);
|
|
|
+ let values = deepClone(obj);
|
|
|
const txt = e.target.value;
|
|
|
- values[i].value = txt.replace(/[\u4e00-\u9fa5]|[^\d.]/g,''); //处理中文输入法的情况
|
|
|
- obj[id] = values;
|
|
|
+ values[idd].value = txt.replace(/[\u4e00-\u9fa5]|[^\d.]/g,''); //处理中文输入法的情况
|
|
|
if(/[\u4e00-\u9fa5]|[^\d.]/g.test(txt)){
|
|
|
e.target.value = txt.replace(/[\u4e00-\u9fa5]|[^\d.]/g,'');
|
|
|
}
|
|
|
- this.setState({
|
|
|
- isCalculated:false,
|
|
|
- calcuValues:obj
|
|
|
- });
|
|
|
+
|
|
|
+ dataCopy[i].details[j].content.details = values
|
|
|
+ setChronicPush&&setChronicPush(dataCopy)
|
|
|
}
|
|
|
handleForRadio(id,calcuContent,i,fidx){//计算公式
|
|
|
const { calcuValues } = this.state;
|
|
@@ -295,11 +298,10 @@ class ChronicInfo extends React.Component{
|
|
|
radioVal:Object.assign({},obj.radioVal),//不设置radioVal只有最近一次选中的值
|
|
|
})
|
|
|
}
|
|
|
- calcuFormula(id,it) { //计算公式计算
|
|
|
- const { calcuFormula } = this.props;
|
|
|
+ calcuFormula(id,it,i,j) { //计算公式计算
|
|
|
+ const {calcuFormula, data } = this.props;
|
|
|
let item = deepClone(it);
|
|
|
- const values = this.state.calcuValues;
|
|
|
- const calcuValues = Object.keys(values).length&&values[id]?values[id]:item.content.details;
|
|
|
+ const calcuValues = item.content.details
|
|
|
let allHasInfo = true;
|
|
|
for (let i = 0; i < calcuValues.length; i++) {
|
|
|
if(calcuValues[i].controlType == 2) { //输入框类型的有没有填值
|
|
@@ -325,7 +327,7 @@ class ChronicInfo extends React.Component{
|
|
|
data: item,
|
|
|
disId: id
|
|
|
};
|
|
|
- calcuFormula(param);
|
|
|
+ calcuFormula(param,data,i, j);
|
|
|
this.setState({
|
|
|
isCalculated:true
|
|
|
});
|
|
@@ -404,9 +406,15 @@ class ChronicInfo extends React.Component{
|
|
|
</span>
|
|
|
</p>
|
|
|
}else if(it.type==2){
|
|
|
- const cres = calcuResult&&calcuResult[v.conceptId]||it.content.result;
|
|
|
+ //如果保存过,则使用保存内容
|
|
|
+ // const cres = calcuResult&&calcuResult[v.conceptId]||it.content.result;
|
|
|
+ //每次都取最新推送内容
|
|
|
+ const cres = it.content.result || [];
|
|
|
const result = cres&&cres[1]&&cres[1].text;
|
|
|
- const details = calcuValues&&calcuValues[v.conceptId]||it.content.details;
|
|
|
+ //如果保存过,则使用保存内容
|
|
|
+ // const details = calcuValues&&calcuValues[v.conceptId]||it.content.details;
|
|
|
+ //每次都取最新推送内容
|
|
|
+ const details = it.content.details || [];
|
|
|
return <div className={style["marTop"]}>
|
|
|
<span className={style["limit"]}>
|
|
|
计算公式结果:
|
|
@@ -449,7 +457,7 @@ class ChronicInfo extends React.Component{
|
|
|
<span>{item.isShow == '0' ? item.name+':':'请输入'+item.name+':'}</span>
|
|
|
</td>
|
|
|
<td>
|
|
|
- {item.isShow == '0' ? item.value + ' ' +item.uint : <input type="text" className={style['itemInp']} placeholder="请输入" value={item.value} onInput={this.handleInputformula.bind(this,v.conceptId,details,idd)}/>}
|
|
|
+ {item.isShow == '0' ? item.value + ' ' +item.uint : <input type="text" className={style['itemInp']} placeholder="请输入" value={item.value} onInput={this.handleInputformula.bind(this,v.conceptId,details,i,j,idd,cres)}/>}
|
|
|
</td>
|
|
|
<td>
|
|
|
{item.isShow != '0'&&<span>{item.uint}</span>}
|
|
@@ -459,7 +467,7 @@ class ChronicInfo extends React.Component{
|
|
|
}
|
|
|
})}
|
|
|
</table>
|
|
|
- <div className={style["forMulBtn"]} onClick={this.calcuFormula.bind(this,v.conceptId,it)}>计算</div>
|
|
|
+ <div className={style["forMulBtn"]} onClick={this.calcuFormula.bind(this,v.conceptId,it,i,j)}>计算</div>
|
|
|
<table>
|
|
|
{cres && Array.isArray(cres) &&cres.map((itemResult, resultIndex) => {
|
|
|
return <tr>
|