|
@@ -7,6 +7,7 @@ import checkIcon from '@common/images/check.png';
|
|
import {ComplexModal,MiniToast,Radio} from '@commonComp';
|
|
import {ComplexModal,MiniToast,Radio} from '@commonComp';
|
|
import Notify from '@commonComp/Notify';
|
|
import Notify from '@commonComp/Notify';
|
|
import {deepClone} from '@utils/tools';
|
|
import {deepClone} from '@utils/tools';
|
|
|
|
+import { getFormulaResult } from '@store/async-actions/fetchModules'
|
|
/**
|
|
/**
|
|
* 来源于页面选择
|
|
* 来源于页面选择
|
|
*
|
|
*
|
|
@@ -110,24 +111,18 @@ class ScaleItem extends Component {
|
|
formulaId:null
|
|
formulaId:null
|
|
})
|
|
})
|
|
}
|
|
}
|
|
- calcuFormula(j, v, ii) { //计算公式计算
|
|
|
|
- const { calcuFormula,chronicPushItems,calcuValues } = this.props;
|
|
|
|
|
|
+ calcuFormula() { //计算公式计算
|
|
|
|
+ const { calcuResult,handleCalcu } = this.props;
|
|
const {formulaId,formulaData} = this.state;
|
|
const {formulaId,formulaData} = this.state;
|
|
let it=formulaData&&formulaData[formulaId];
|
|
let it=formulaData&&formulaData[formulaId];
|
|
- const rst = calcuValues&&calcuValues[formulaId];
|
|
|
|
- if(rst){
|
|
|
|
- it.content = rst;
|
|
|
|
- }
|
|
|
|
- let pushObj = deepClone(chronicPushItems);
|
|
|
|
- pushObj[ii].details[j]=it;
|
|
|
|
let allHasInfo = true;
|
|
let allHasInfo = true;
|
|
for (let i = 0; i < it.content.details.length; i++) {
|
|
for (let i = 0; i < it.content.details.length; i++) {
|
|
if(it.content.details[i].controlType == 2) { //输入框类型的有没有填值
|
|
if(it.content.details[i].controlType == 2) { //输入框类型的有没有填值
|
|
if(!it.content.details[i].value) {
|
|
if(!it.content.details[i].value) {
|
|
allHasInfo = false
|
|
allHasInfo = false
|
|
}
|
|
}
|
|
- } else if(it.content.details[i].controlType == 1) {
|
|
|
|
- let hasSelect = false
|
|
|
|
|
|
+ } else if(it.content.details[i].controlType == 0) {
|
|
|
|
+ let hasSelect = false;
|
|
for( let z = 0; z <it.content.details[i].details.length; z++) {
|
|
for( let z = 0; z <it.content.details[i].details.length; z++) {
|
|
if(it.content.details[i].details[z].state == 1) {
|
|
if(it.content.details[i].details[z].state == 1) {
|
|
hasSelect= true
|
|
hasSelect= true
|
|
@@ -140,15 +135,16 @@ class ScaleItem extends Component {
|
|
|
|
|
|
}
|
|
}
|
|
if(allHasInfo) { //所有都有值,则计算
|
|
if(allHasInfo) { //所有都有值,则计算
|
|
- // delete it.content.resultz
|
|
|
|
- let param = {
|
|
|
|
- type: 2,
|
|
|
|
- data: it,
|
|
|
|
- disId: v.id,
|
|
|
|
- pIndex: j,
|
|
|
|
- ppIndex: ii,
|
|
|
|
- }
|
|
|
|
- calcuFormula({param,chronicPushItems:pushObj})
|
|
|
|
|
|
+ let results = deepClone(calcuResult);
|
|
|
|
+ getFormulaResult({type:2,data:it}).then((res)=>{
|
|
|
|
+ if(+res.data.code==0){
|
|
|
|
+ const result = res.data.data.result;
|
|
|
|
+ results[formulaId] = result;
|
|
|
|
+ handleCalcu&&handleCalcu(results);
|
|
|
|
+ }else{
|
|
|
|
+ Notify.error(res.data.msg||'计算没有结果返回');
|
|
|
|
+ }
|
|
|
|
+ })
|
|
} else { //不是所有值都填过了
|
|
} else { //不是所有值都填过了
|
|
Notify.info('请填写计算公式内容')
|
|
Notify.info('请填写计算公式内容')
|
|
}
|
|
}
|
|
@@ -168,8 +164,8 @@ class ScaleItem extends Component {
|
|
}
|
|
}
|
|
getDetailItems(item,i){
|
|
getDetailItems(item,i){
|
|
let arr = [],temp='';
|
|
let arr = [],temp='';
|
|
- const {indexs,result,formulaResult,calcuResult,calcuValues,disabled} = this.props;
|
|
|
|
- const {optionId,formulaId,radioVal,formulaData,isFormulaConfirm} = this.state;
|
|
|
|
|
|
+ const {indexs,result,formulaResult,calcuValues,disabled,calcuResult} = this.props;
|
|
|
|
+ const {optionId,formulaId,radioVal,formulaData} = this.state;
|
|
const possible=result&&result.possible;
|
|
const possible=result&&result.possible;
|
|
|
|
|
|
item.details.map((its,j)=>{
|
|
item.details.map((its,j)=>{
|
|
@@ -180,7 +176,7 @@ class ScaleItem extends Component {
|
|
let scaleRes=formulaResult&&formulaResult[it.content.id]&&formulaResult[it.content.id].calcalculate;
|
|
let scaleRes=formulaResult&&formulaResult[it.content.id]&&formulaResult[it.content.id].calcalculate;
|
|
temp =<span className={style['scale']}
|
|
temp =<span className={style['scale']}
|
|
onClick={()=>this.handleShowScale(it.content,item.id,i)}>
|
|
onClick={()=>this.handleShowScale(it.content,item.id,i)}>
|
|
- {scaleRes&&scaleRes.result?(' 【'+it.content.name+'】 结果:'+scaleRes.result.value+" "+scaleRes.result.text):'【'+it.content.name+'】'}
|
|
|
|
|
|
+ {scaleRes&&scaleRes.result?(' 【'+it.content.name+'】 结果:'+scaleRes.result.value+" "+(scaleRes.result.text||'')):'【'+it.content.name+'】'}
|
|
</span>;
|
|
</span>;
|
|
}else if(its.type==2){ //计算公式
|
|
}else if(its.type==2){ //计算公式
|
|
it=formulaData[formulaId]||deepClone(its);
|
|
it=formulaData[formulaId]||deepClone(its);
|
|
@@ -233,9 +229,9 @@ class ScaleItem extends Component {
|
|
}
|
|
}
|
|
})}
|
|
})}
|
|
</table>
|
|
</table>
|
|
- {disabled?"":<div className={style["forMulBtn"]} onClick={this.calcuFormula.bind(this,j, item, i)}>计算</div>}
|
|
|
|
|
|
+ {disabled?"":<div className={style["forMulBtn"]} onClick={this.calcuFormula.bind(this)}>计算</div>}
|
|
<table>
|
|
<table>
|
|
- {showRes && Array.isArray(showRes) &&showRes.map((itemResult, resultIndex) => {
|
|
|
|
|
|
+ {showRes && Array.isArray(showRes) &&showRes.map((itemResult) => {
|
|
return <tr>
|
|
return <tr>
|
|
<td>
|
|
<td>
|
|
<span>{itemResult.name+':'}</span>
|
|
<span>{itemResult.name+':'}</span>
|
|
@@ -303,7 +299,7 @@ class ScaleItem extends Component {
|
|
if(!it) return '';
|
|
if(!it) return '';
|
|
let scaleRes=formulaResult&&formulaResult[it.id]&&formulaResult[it.id].calcalculate;
|
|
let scaleRes=formulaResult&&formulaResult[it.id]&&formulaResult[it.id].calcalculate;
|
|
temp =<span className={style['scale']} onClick={()=>this.handleShowScale(it)}>
|
|
temp =<span className={style['scale']} onClick={()=>this.handleShowScale(it)}>
|
|
- {scaleRes&&scaleRes.result?(' 【'+it.name+'】 结果:'+scaleRes.result.value+" "+scaleRes.result.text):'【'+it.name+'】'}
|
|
|
|
|
|
+ {scaleRes&&scaleRes.result?(' 【'+it.name+'】 结果:'+scaleRes.result.value+" "+(scaleRes.result.text||'')):'【'+it.name+'】'}
|
|
</span>;
|
|
</span>;
|
|
li = disabled?<li>
|
|
li = disabled?<li>
|
|
<span>相关量表:</span>
|
|
<span>相关量表:</span>
|