|
@@ -1,6 +1,6 @@
|
|
import React from 'react';
|
|
import React from 'react';
|
|
import style from './index.less';
|
|
import style from './index.less';
|
|
-import mocks from '../../mock/chronicTable.js'
|
|
|
|
|
|
+// import mocks from '../../mock/chronicTable.js'
|
|
import { Radio,CheckBtn ,Notify} from '@commonComp';
|
|
import { Radio,CheckBtn ,Notify} from '@commonComp';
|
|
import Information from '../Information';
|
|
import Information from '../Information';
|
|
import {deepClone} from '@utils/tools.js';
|
|
import {deepClone} from '@utils/tools.js';
|
|
@@ -129,7 +129,9 @@ class ScaleTable extends React.Component{
|
|
for(let i=0; i<group.length; i++){
|
|
for(let i=0; i<group.length; i++){
|
|
let rows = group[i].rows;
|
|
let rows = group[i].rows;
|
|
for(let j=0; j<rows.length; j++){
|
|
for(let j=0; j<rows.length; j++){
|
|
- if(rows[j].required==1&& (rows[j].row.filter((it,i)=>{return !it.isSelect})).length>0){
|
|
|
|
|
|
+ // if(rows[j].required==1&& (rows[j].row.filter((it,i)=>{return !it.isSelect})).length>0){
|
|
|
|
+ // 必填项下有一项选中既可
|
|
|
|
+ if(rows[j].required==1&& (rows[j].row.filter((it,i)=>{return it.isSelect})).length==0){
|
|
unfinish = true;
|
|
unfinish = true;
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
@@ -158,21 +160,33 @@ class ScaleTable extends React.Component{
|
|
}
|
|
}
|
|
})
|
|
})
|
|
}
|
|
}
|
|
|
|
+ filterScale(data){//type=1为表格内容
|
|
|
|
+ let scale = {};
|
|
|
|
+ for(let i=0; i<data.length; i++){
|
|
|
|
+ if(data[i].type==1){
|
|
|
|
+ scale = data[i];
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return scale;
|
|
|
|
+ }
|
|
componentWillReceiveProps(nextProps){
|
|
componentWillReceiveProps(nextProps){
|
|
const {tableId} = this.props;
|
|
const {tableId} = this.props;
|
|
- if(JSON.stringify(nextProps.scaleInfo) !== '{}'){
|
|
|
|
|
|
+ const data = nextProps.scaleInfo;
|
|
|
|
+ if(JSON.stringify(data) !== '{}' && data[tableId]){
|
|
|
|
+ let scale = this.filterScale(data[tableId]);
|
|
this.setState({
|
|
this.setState({
|
|
- // valueData:nextProps.scaleInfo[tableId].length?mocks.newData:JSON.parse(nextProps.scaleInfo[tableId].content),
|
|
|
|
- valueData:nextProps.scaleInfo[tableId]?JSON.parse(nextProps.scaleInfo[tableId][1].content):{},
|
|
|
|
|
|
+ // valueData:JSON.parse(nextProps.scaleInfo[tableId][1].content),
|
|
|
|
+ valueData:scale.content?JSON.parse(scale.content):{}
|
|
})
|
|
})
|
|
}
|
|
}
|
|
}
|
|
}
|
|
componentDidMount(){
|
|
componentDidMount(){
|
|
const {tableId,scaleInfo} = this.props;
|
|
const {tableId,scaleInfo} = this.props;
|
|
if(scaleInfo&&scaleInfo[tableId]){
|
|
if(scaleInfo&&scaleInfo[tableId]){
|
|
|
|
+ let scale = this.filterScale(scaleInfo[tableId]);
|
|
this.setState({
|
|
this.setState({
|
|
- // valueData:scaleInfo[tableId].length?mocks.newData:JSON.parse(scaleInfo[tableId].content)
|
|
|
|
- valueData:JSON.parse(scaleInfo[tableId][1].content)
|
|
|
|
|
|
+ // valueData:JSON.parse(scaleInfo[tableId][1].content)
|
|
|
|
+ valueData:scale.content?JSON.parse(scale.content):{}
|
|
})
|
|
})
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -183,7 +197,12 @@ class ScaleTable extends React.Component{
|
|
// 替换表格内容
|
|
// 替换表格内容
|
|
let allDatas = scaleInfo[tableId]?JSON.parse(JSON.stringify(scaleInfo[tableId])):'' ;
|
|
let allDatas = scaleInfo[tableId]?JSON.parse(JSON.stringify(scaleInfo[tableId])):'' ;
|
|
if(allDatas){
|
|
if(allDatas){
|
|
- allDatas[1].content = JSON.stringify(valueData);
|
|
|
|
|
|
+ // allDatas[1].content = JSON.stringify(valueData);
|
|
|
|
+ for(let i=0; i<allDatas.length; i++){
|
|
|
|
+ if(allDatas[i].type==1){
|
|
|
|
+ allDatas[i].content = JSON.stringify(valueData);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
// 需求:未点计算,直接点确定、关闭也保存选中数据 4-30
|
|
// 需求:未点计算,直接点确定、关闭也保存选中数据 4-30
|
|
saveScaleData&&saveScaleData({id:tableId,data:allDatas});
|
|
saveScaleData&&saveScaleData({id:tableId,data:allDatas});
|
|
}
|
|
}
|
|
@@ -261,26 +280,28 @@ class ScaleTable extends React.Component{
|
|
const {title,scaleInfo,tableId,formulaResult} = this.props;
|
|
const {title,scaleInfo,tableId,formulaResult} = this.props;
|
|
const data = scaleInfo[tableId];
|
|
const data = scaleInfo[tableId];
|
|
let {selecteds,scaleResult1} = this.state;
|
|
let {selecteds,scaleResult1} = this.state;
|
|
- const content = data && data[1].content;//表格内容
|
|
|
|
- const preContent = data && data[0].content;//表前文字
|
|
|
|
- const footContent = data && data[2].content; //表后文字
|
|
|
|
- const datas = content && JSON.parse(content);
|
|
|
|
|
|
+ const scale = data && this.filterScale(data);
|
|
|
|
+ const datas = scale && scale.content && JSON.parse(scale.content);
|
|
const scaleResult = scaleResult1 || formulaResult&&formulaResult[tableId]; //量表计算结果
|
|
const scaleResult = scaleResult1 || formulaResult&&formulaResult[tableId]; //量表计算结果
|
|
return <div className={style['tableBox']} id="printcontent">
|
|
return <div className={style['tableBox']} id="printcontent">
|
|
<div className={style['printShow']}>
|
|
<div className={style['printShow']}>
|
|
<Information></Information>
|
|
<Information></Information>
|
|
</div>
|
|
</div>
|
|
<h1>{datas?datas.scaleName:''}</h1>
|
|
<h1>{datas?datas.scaleName:''}</h1>
|
|
- <div dangerouslySetInnerHTML={{__html:preContent}} className={style['textlh']}></div>
|
|
|
|
- <div className={style['textContent']}>
|
|
|
|
- {this.getContent()}
|
|
|
|
- {datas&&datas.noCalc==0?<div className={style['total']}>
|
|
|
|
|
|
+ {data && data.map((v,i)=>{
|
|
|
|
+ if(v.type==0){
|
|
|
|
+ return <div dangerouslySetInnerHTML={{__html:v.content}} className={style['textlh']}></div>
|
|
|
|
+ }else{
|
|
|
|
+ return <div className={style['textContent']}>
|
|
|
|
+ {this.getContent()}
|
|
|
|
+ {datas&&datas.noCalc==0?<div className={style['total']}>
|
|
<span>总分:</span>
|
|
<span>总分:</span>
|
|
<span>{scaleResult&&scaleResult.calcalculate&&scaleResult.calcalculate.result&&scaleResult.calcalculate.result.value +' '+ scaleResult.calcalculate.result.text||''}</span>
|
|
<span>{scaleResult&&scaleResult.calcalculate&&scaleResult.calcalculate.result&&scaleResult.calcalculate.result.value +' '+ scaleResult.calcalculate.result.text||''}</span>
|
|
<span className={style['totalBtn']} onClick={this.handleFormula}>得分</span>
|
|
<span className={style['totalBtn']} onClick={this.handleFormula}>得分</span>
|
|
</div>:''}
|
|
</div>:''}
|
|
- </div>
|
|
|
|
- <div dangerouslySetInnerHTML={{__html:footContent}} className={style['textlh']}></div>
|
|
|
|
|
|
+ </div>
|
|
|
|
+ }
|
|
|
|
+ })}
|
|
</div>
|
|
</div>
|
|
}
|
|
}
|
|
}
|
|
}
|