浏览代码

Merge remote-tracking branch 'origin/ChronicMag' into dev/new1

zhouna 6 年之前
父节点
当前提交
0416dcf749

+ 2 - 2
src/common/components/ConfirmModal/index.less

@@ -6,7 +6,7 @@
     border-radius: 5px;
     background: #fff;
     overflow: hidden;
-    z-index: 9999;
+    z-index: 1999;
 }
 
 .modal-title {
@@ -85,5 +85,5 @@
     opacity: .6;
     filter:alpha(opacity=60);
     -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(opacity=60);";
-    z-index: 9998;
+    z-index: 1998;
 }

+ 3 - 3
src/components/AssessResult/ScaleItem/index.jsx

@@ -64,7 +64,7 @@ class ScaleItem extends Component {
   }
   handleShowScale(item){
     const {showScaleFn,closeAssess} = this.props;
-    closeAssess&&closeAssess();    //关闭评估弹窗
+    //closeAssess&&closeAssess();    //关闭评估弹窗
     showScaleFn&&showScaleFn(item);
   }
   handleRadio(item,parent){
@@ -276,7 +276,7 @@ class ScaleItem extends Component {
           </li>:<li>
           <span>{item.name}:</span>
           <div className={style['row']}>{temp}</div>
-          <div className={style["recommend"]} onClick={()=>this.props.handleRemove(false,i,j,passId)}>
+          <div className={style["recommend"]} onClick={()=>this.props.handleRemove(false,i,passId,j)}>
             <img className={style["deleteIcon"]} src={deleteIcon} />
           </div>
         </li>;
@@ -306,7 +306,7 @@ class ScaleItem extends Component {
       </li>:<li>
         <span>相关量表:</span>
         <div className={style['row']}>{temp}</div>
-        <div className={style["recommend"]} onClick={()=>this.props.handleRemove(true,i)}>
+        <div className={style["recommend"]} onClick={()=>this.props.handleRemove(true,i,it.id)}>
           <img className={style["deleteIcon"]} src={deleteIcon} />
         </div>
       </li>;

+ 9 - 3
src/components/AssessResult/index.jsx

@@ -48,10 +48,9 @@ class AssessResult extends Component {
         wholeAssessText:obj
       })
   }
-  handleScaleDel(isList,i,j,id){
-    let ids = [],idIndex='';
+  handleScaleDel(isList,i,id,j){
+    let ids = [...this.state.addedScaleIds||[]],idIndex='';
     if(id){
-      ids = [...this.state.addedScaleIds||[]];
       idIndex = ids.findIndex((ii)=>id==ii);
       ids.splice(idIndex,1);
     }
@@ -111,6 +110,13 @@ class AssessResult extends Component {
       saveAssessInfos(this.state,readyKeepHistory());
     }
   }
+  componentWillReceiveProps(next){
+    if(JSON.stringify(next.addedScaleIds)!=JSON.stringify(this.props.addedScaleIds)){
+      this.setState({
+        addedScaleIds:[...next.addedScaleIds||[]]
+      })
+    }
+  }
   handoutTypes(item,i){
     const {getIndexData,indexData,timeTypes,wholeIndexs,closeAssess,showScaleFn,chronicPushItems,
       formulaResult,indexNames,disName} =this.props;

+ 32 - 16
src/components/ChronicInfo/index.jsx

@@ -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>