|
@@ -13,6 +13,7 @@ import checkIcon from '@common/images/check.png';
|
|
|
import {ComplexModal,ConfirmModal,MiniToast, Radio,CheckBtn} from '@commonComp';
|
|
|
import AssessResult from '@containers/AssessResult';
|
|
|
import ScaleTable from '@containers/ScaleTable';
|
|
|
+import Notify from '@commonComp/Notify';
|
|
|
import $ from 'jquery';
|
|
|
|
|
|
/***
|
|
@@ -41,6 +42,7 @@ class ChronicInfo extends React.Component{
|
|
|
parentIndex:null,
|
|
|
radioVal:{}, //可能结果选择内容
|
|
|
possible:{}, //可能结果
|
|
|
+ formulaParam: {}, //量表计算公式计算入参
|
|
|
};
|
|
|
|
|
|
this.showInfo = this.showInfo.bind(this);
|
|
@@ -126,7 +128,7 @@ class ChronicInfo extends React.Component{
|
|
|
}else{
|
|
|
this.props.getScaleInfo(item);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
this.setState({
|
|
|
tableName:it.name,
|
|
|
tableId:it.id,
|
|
@@ -150,7 +152,7 @@ class ChronicInfo extends React.Component{
|
|
|
isAssessConfirm:false
|
|
|
});
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
showFormula(id){//计算公式
|
|
|
this.setState({
|
|
|
formulaId:id,
|
|
@@ -174,10 +176,29 @@ class ChronicInfo extends React.Component{
|
|
|
setTimeout(()=>{
|
|
|
that.showAssessFn();
|
|
|
});
|
|
|
-
|
|
|
}
|
|
|
- handleForRadio(item,parent,pIndex){//计算公式
|
|
|
-
|
|
|
+ handleInputformula(v,i, j,idd, e) {
|
|
|
+ const { data, setChronicPush } = this.props
|
|
|
+ const text = e.target.value
|
|
|
+ if (data[i].details) {
|
|
|
+ data[i].details[j].content.details[idd].value = text
|
|
|
+ }
|
|
|
+
|
|
|
+ const data1 = JSON.parse(JSON.stringify(data))
|
|
|
+ setChronicPush(data1)
|
|
|
+ }
|
|
|
+ handleForRadio(ii,v,i, j,idd, ind){//计算公式
|
|
|
+ const { data, setChronicPush } = this.props
|
|
|
+
|
|
|
+ if (data[i].details) {
|
|
|
+ for(let z = 0; z < data[i].details[j].content.details[idd].details.length; z++) {
|
|
|
+ data[i].details[j].content.details[idd].details[z].state = 0
|
|
|
+ }
|
|
|
+ data[i].details[j].content.details[idd].details[ind].state = 1
|
|
|
+ }
|
|
|
+
|
|
|
+ const data1 = JSON.parse(JSON.stringify(data))
|
|
|
+ setChronicPush(data1)
|
|
|
}
|
|
|
confirmFormula(){//计算公式确定
|
|
|
|
|
@@ -197,6 +218,38 @@ class ChronicInfo extends React.Component{
|
|
|
})
|
|
|
|
|
|
}
|
|
|
+ calcuFormula(it, j, v) { //计算公式计算
|
|
|
+ const { calcuFormula } = this.props
|
|
|
+ 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
|
|
|
+ }
|
|
|
+ } 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
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(!hasSelect) {
|
|
|
+ allHasInfo = false
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ if(allHasInfo) { //所有都有值,则计算
|
|
|
+ let param = {
|
|
|
+ type: 2,
|
|
|
+ content: it,
|
|
|
+ disId: v.id
|
|
|
+ }
|
|
|
+ calcuFormula(param)
|
|
|
+ } else { //不是所有值都填过了
|
|
|
+ Notify.info('请填写计算公式内容')
|
|
|
+ }
|
|
|
+ }
|
|
|
getDetail(){
|
|
|
const {data,indexs,scaleInfo,formulaResult} = this.props;
|
|
|
const {showInfo,showOption,infoId,formulaId,optionId,possible,radioVal} = this.state;
|
|
@@ -253,7 +306,7 @@ class ChronicInfo extends React.Component{
|
|
|
footer="true">
|
|
|
<table>
|
|
|
{it.content.details.map((item,idd)=>{
|
|
|
- if(item.controlType==0){//单选
|
|
|
+ if(item.controlType==1){//单选
|
|
|
return <tr>
|
|
|
<td>
|
|
|
<span>{'请选择'+item.name+':'}</span>
|
|
@@ -262,8 +315,8 @@ class ChronicInfo extends React.Component{
|
|
|
{item.details.map((ii,ind)=>{
|
|
|
return <div className={style["chooseItem"]}>
|
|
|
<Radio label={ii.detailName}
|
|
|
- isSelect={radioVal[i]==ii.detailName}
|
|
|
- handleClick={this.handleForRadio.bind(this,ii,v,i)}>
|
|
|
+ isSelect={ii.state == 1}
|
|
|
+ handleClick={this.handleForRadio.bind(this,ii,v,i, j,idd, ind)}>
|
|
|
</Radio>
|
|
|
</div>
|
|
|
})}
|
|
@@ -277,7 +330,7 @@ class ChronicInfo extends React.Component{
|
|
|
<span>{'请输入'+item.name+':'}</span>
|
|
|
</td>
|
|
|
<td>
|
|
|
- <input type="text" placeholder="请输入" value={item.value}/>
|
|
|
+ <input type="text" placeholder="请输入" value={item.value} onInput={this.handleInputformula.bind(this,v,i, j,idd)}/>
|
|
|
</td>
|
|
|
<td>
|
|
|
<span>{item.uint}</span>
|
|
@@ -293,7 +346,8 @@ class ChronicInfo extends React.Component{
|
|
|
{item.details.map((ii,ind)=>{
|
|
|
return <div className={style["chooseItem"]}>
|
|
|
<Radio label={ii.detailName}
|
|
|
- isSelect={radioVal[i]==ii.detailName}
|
|
|
+ // isSelect={radioVal[i]==ii.detailName}
|
|
|
+ isSelect={ii.state == 1}
|
|
|
handleClick={this.handleForRadio.bind(this,ii,v,i)}>
|
|
|
</Radio>
|
|
|
</div>
|
|
@@ -304,7 +358,20 @@ class ChronicInfo extends React.Component{
|
|
|
}
|
|
|
})}
|
|
|
</table>
|
|
|
- <div className={style["forMulBtn"]}>计算</div>
|
|
|
+ <div className={style["forMulBtn"]} onClick={this.calcuFormula.bind(this,it,j, v)}>计算</div>
|
|
|
+ <table>
|
|
|
+ {/* {it.content.result &&it.content.result.map((itemResult, resultIndex) => {
|
|
|
+ return <tr>
|
|
|
+ <td>
|
|
|
+ <span>{itemResult.name+':'}</span>
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ <span>{itemResult.value}</span>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ })} */}
|
|
|
+ </table>
|
|
|
+
|
|
|
</MiniToast>
|
|
|
</div>
|
|
|
}else if(it.type==3){
|
|
@@ -349,10 +416,7 @@ class ChronicInfo extends React.Component{
|
|
|
}
|
|
|
|
|
|
render(){
|
|
|
- const footer = <div className={style['footer']}>
|
|
|
- <span className={style['print']} onClick={this.onPrint}><img src={printIcon} alt=""/>打印</span>
|
|
|
- <span className={style['okBtn']} onClick={()=>this.handleSaveAssess()}>确定</span>
|
|
|
- </div>;
|
|
|
+
|
|
|
const scaleFooter = <div className={style['footer']}>
|
|
|
<span className={style['print']} onClick={this.onPrint}><img src={printIcon} alt=""/>打印</span>
|
|
|
<span className={style['okBtn']} onClick={()=>this.closeTable()}>确定</span>
|