|
@@ -50,7 +50,7 @@ class ChronicInfo extends React.Component{
|
|
|
this.closeTable = this.closeTable.bind(this);//关闭量表弹窗
|
|
|
this.close = this.close.bind(this); //关闭量表列表
|
|
|
this.showFormula = this.showFormula.bind(this); //打开计算公式
|
|
|
- this.closeFormula = this.closeFormula.bind(this); //关闭计算公式
|
|
|
+ //this.closeFormula = this.closeFormula.bind(this); //关闭计算公式
|
|
|
this.handleAddAssessItem = this.handleAddAssessItem.bind(this); //加入病例记录
|
|
|
this.onPrint = this.onPrint.bind(this);
|
|
|
this.handleForRadio = this.handleForRadio.bind(this);
|
|
@@ -81,7 +81,7 @@ class ChronicInfo extends React.Component{
|
|
|
}
|
|
|
handleListClick(item){//量表列表单项点击
|
|
|
this.showTable(item,null);
|
|
|
- this.close()
|
|
|
+ //this.close()
|
|
|
}
|
|
|
|
|
|
showInfo(id){
|
|
@@ -147,28 +147,44 @@ class ChronicInfo extends React.Component{
|
|
|
optionId:null //关闭可能结果
|
|
|
})
|
|
|
}
|
|
|
- closeFormula(){
|
|
|
- if(this.state.isCalculated){
|
|
|
- this.setState({
|
|
|
- formulaId:null,
|
|
|
- });
|
|
|
- }else{
|
|
|
- this.setState({
|
|
|
- formulaId:null,
|
|
|
- calcuValues:deepClone(this.props.calcuValues)
|
|
|
- });
|
|
|
+ closeFormula(it){
|
|
|
+ const {formulaId,isCalculated} =this.state;
|
|
|
+ if(!isCalculated){
|
|
|
+ //没有计算结果时,保存输入的值
|
|
|
+ const {calcuResult,calcuValues} = this.props;
|
|
|
+ const cres = calcuResult&&calcuResult[formulaId]||it.content.result;
|
|
|
+ const result = cres&&cres[1]&&cres[1].text;
|
|
|
+ if(result){
|
|
|
+ this.setState({
|
|
|
+ calcuValues:deepClone(calcuValues)
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
+ this.setState({
|
|
|
+ formulaId:null,
|
|
|
+ });
|
|
|
}
|
|
|
handleAddAssessItem(v,pIndex,i){
|
|
|
const {addAssessItem} = this.props;
|
|
|
addAssessItem(v,pIndex,i);
|
|
|
}
|
|
|
+ handleReg(e){ //只能输入数字
|
|
|
+ const hasDot = e.target.value.indexOf('.')!=-1;
|
|
|
+ const key = e.key;
|
|
|
+ if(key!='Backspace'&&((/[^\d]/.test(key)&&key!='.')||(key=='.'&&(hasDot||!e.target.value)))){
|
|
|
+ e.preventDefault();
|
|
|
+ }
|
|
|
+ }
|
|
|
handleInputformula(id,calcuContent,i,e) {
|
|
|
const {calcuValues} = this.state;
|
|
|
let obj = deepClone(calcuValues);
|
|
|
let values = (obj&&obj[id])||deepClone(calcuContent);
|
|
|
- values[i].value = e.target.value;
|
|
|
+ const txt = e.target.value;
|
|
|
+ values[i].value = txt.replace(/[\u4e00-\u9fa5]|[^\d|.]/g,''); //处理中文输入法的情况
|
|
|
obj[id] = values;
|
|
|
+ if(/[\u4e00-\u9fa5]|[^\d|.]/g.test(txt)){
|
|
|
+ e.target.value = txt.replace(/[\u4e00-\u9fa5]|[^\d|.]/g,'');
|
|
|
+ }
|
|
|
this.setState({
|
|
|
isCalculated:false,
|
|
|
calcuValues:obj
|
|
@@ -327,8 +343,8 @@ class ChronicInfo extends React.Component{
|
|
|
icon={allTableIcon}
|
|
|
confirmText='关闭'
|
|
|
show={formulaId&&formulaId==v.id?true:false}
|
|
|
- close={this.closeFormula}
|
|
|
- confirm={this.closeFormula}
|
|
|
+ close={this.closeFormula.bind(this,it)}
|
|
|
+ confirm={this.closeFormula.bind(this,it)}
|
|
|
footer="true">
|
|
|
<table>
|
|
|
{details.map((item,idd)=>{
|
|
@@ -354,7 +370,7 @@ class ChronicInfo extends React.Component{
|
|
|
<span>{'请输入'+item.name+':'}</span>
|
|
|
</td>
|
|
|
<td>
|
|
|
- <input type="text" placeholder="请输入" value={item.value} onInput={this.handleInputformula.bind(this,v.id,details,idd)}/>
|
|
|
+ <input type="text" placeholder="请输入" value={item.value} onKeyDown={this.handleReg.bind(this)} onInput={this.handleInputformula.bind(this,v.id,details,idd)}/>
|
|
|
</td>
|
|
|
<td>
|
|
|
<span>{item.uint}</span>
|