Преглед изворни кода

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

# Conflicts:
#	src/components/AddInspect/index.jsx
#	src/components/CopyRight/index.less
#	src/components/DiagnosticList/index.jsx
#	src/components/Inspect/index.jsx
#	src/components/NumberUnitDrop/index.jsx
#	src/components/Operation/index.jsx
#	src/components/PushContainer/index.jsx
#	src/components/Treat/index.jsx
#	src/components/Treat/index.less
#	src/containers/NumberUnitDrop.js
#	src/store/actions/otherHistory.js
#	src/store/async-actions/diagnosticList.js
#	src/store/async-actions/treat.js
#	src/utils/tools.js
zhouna пре 6 година
родитељ
комит
c900ae632d

+ 3 - 1
src/common/less/variables.less

@@ -53,9 +53,11 @@
 /*******下拉框公用样式**********/
 .pop{
   position: absolute;
-  top:40px;
+  // top:40px;
+  top:30px;
   background: #fff;
   box-shadow: 0 10px 20px 0 #989DA3;
+  filter:progid:DXImageTransform.Microsoft.Shadow(color='#CCCCCC',Direction=125,Strength=4);
   z-index: 203;
   padding: 20px;
   white-space: nowrap;

+ 5 - 4
src/components/AddInspect/index.jsx

@@ -110,12 +110,11 @@ class Inspect extends React.Component {
     handleFillShow(e,idx) {
         let tmpShow = this.state.showFill;
         let baseList = store.getState().inspect.fillActive;
-        const tmpTime = this.state.dateTime
         this.setState({
             showFill: !tmpShow, 
             currentIdx:idx,
             currentData:baseList,
-            dateTime:baseList.time?baseList.time:tmpTime
+            dateTime:baseList.time?baseList.time:this.getCurrentDate()
         })
         e.stopPropagation();
     }
@@ -341,7 +340,7 @@ class Inspect extends React.Component {
                                                     handleClear={(e)=>{
                                                         handleClear(e,idx)
                                                         this.setState({
-                                                            currentData:fillActive
+                                                            showFill:false
                                                         })
                                                     }}
                                                     handleConfirm={(e)=>{
@@ -358,7 +357,9 @@ class Inspect extends React.Component {
                                                     <div className={styles.searchResultT}>
                                                         <img style={{"position":"absolute","top":"8px","right":"8px"}} src={date1} alt="" onClick={this.handleShowDate}/>
                                                         <p style={{position:"absolute",right:"38px",top:"4px",lineHeight:"28px"}}>
-                                                            {this.state.dateTime}
+                                                            {
+                                                              this.state.dateTime
+                                                            }
                                                         </p>
                                                         <div style={{display:this.state.date?"block":"none",position:"relative"}}>
                                                             {/* 日期组件 */}

+ 1 - 1
src/components/CheckBody/index.jsx

@@ -76,7 +76,7 @@ class CheckBody extends Component{
     return  <div className={style['container']}>
       <ItemBox title='查体' editable={!data.length}  handleClick={this.handleClick} onchange={this.handleInput}>
         {this.getLabels()}
-        <SearchDrop data={searchData} show={!totalHide} left={boxLeft} top={boxTop} onSelect={this.handleSearchSelect}></SearchDrop>
+        {searchData && searchData.length>0?<SearchDrop data={searchData} show={!totalHide} left={boxLeft} top={boxTop} onSelect={this.handleSearchSelect}></SearchDrop>:''}
       </ItemBox>
     </div>
   }

+ 2 - 1
src/components/MultSpread/index.jsx

@@ -127,7 +127,8 @@ class MultSpread extends Component{
     return (<div style={{display:'inline-block'}}
                  onDoubleClick={this.changeToEdit}
                  contentEditable={this.state.editable}
-                 onBlur={this.handleEdit}>
+                 onBlur={this.handleEdit}
+                 onkeydown={tools.handleEnter}>
       {textPrefix?<span>{textPrefix}</span>:''}
       <div className={this.getClass()}>
       {this.getLabels()}

+ 0 - 12
src/components/Operation/index.jsx

@@ -287,18 +287,6 @@ class Operation extends Component {
       >
         {this.state.msg}
       </ConfirmModal>
-      <ConfirmModal
-        visible={diagShow}
-        confirm={() => { this.makeSure() }}
-        close={() => { diagShowTmp(false); this.setState({ title: '' }) }}
-        cancel={() => { diagShowTmp(false); this.setState({ title: '' }) }}
-        okText={this.state.okText}
-        okBorderColor={this.state.borderColor}
-        okColor={this.state.okColor}
-        oKBg={this.state.oKBg}
-      >
-        {this.state.msg}
-      </ConfirmModal>
     </div>;
   }
 }

+ 1 - 1
src/components/OtherHistory/index.jsx

@@ -104,7 +104,7 @@ class OtherHistory extends Component{
     return  <div>
       <ItemBox title='其他史' editable={hasData?false:true} isRead={isRead} handleClick={this.handleClick} handleFocus={this.getData} onchange={this.handleInput}>
         {this.getLabels()}
-        <SearchDrop data={searchData} show={!totalHide} left={boxLeft} top={boxTop} onSelect={this.handleSearchSelect}></SearchDrop>
+        {searchData && searchData.length>0?<SearchDrop data={searchData} show={!totalHide} left={boxLeft} top={boxTop} onSelect={this.handleSearchSelect}></SearchDrop>:''}
       </ItemBox>
     </div>
   }

+ 11 - 2
src/components/SpreadDrop/index.jsx

@@ -35,6 +35,8 @@ class SpreadDrop extends Component{
       ban:{},  //放'伴'字段
       editable:false,      //双击编辑
       labelVal:'',  //存放标签原有的值--主诉字数限制用
+      boxLeft:null,
+      boxTop:null
     };
     this.$div = React.createRef();
     this.handleSelect = this.handleSelect.bind(this);
@@ -51,6 +53,13 @@ class SpreadDrop extends Component{
   }
   handleShow(e){//单击
     e&&e.stopPropagation();
+    let boxLeft = e.pageX -175 + 'px';
+    let offsetTop = e.target.offsetTop;
+    let boxTop = offsetTop + 29 + 'px';
+    this.setState({
+      boxLeft:boxLeft,
+      boxTop:boxTop
+    })
     // window.event? window.event.cancelBubble = true : e.stopPropagation();
     // this.setStateInit();      //恢复初始选中状态
     const {ikey,handleShow,placeholder,flag,id,value,tagType,type} = this.props;
@@ -312,7 +321,7 @@ class SpreadDrop extends Component{
 
   render(){
     const {placeholder,value,show} = this.props;
-    const {editable} = this.state;
+    const {editable,boxLeft,boxTop} = this.state;
     return <div className={style['container']}
             onFocus={(e)=>e.stopPropagation()}
             onBlur={(e)=>e.stopPropagation()}
@@ -327,7 +336,7 @@ class SpreadDrop extends Component{
       onInput={this.onChange}
       onkeydown={handleEnter}
       >{value||placeholder}</div>
-      <div className={style["drop-list"]} style={{display:show?'block':'none'}} contentEditable="false" onClick={(e)=>{e.stopPropagation();}}>
+      <div className={style["drop-list"]} style={{display:show?'block':'none',top:boxTop,left:boxLeft}} contentEditable="false" onClick={(e)=>{e.stopPropagation();}}>
         {this.getLabels()}
         <div className="oper">
           <span className={style['clear']} onClick={this.handleClear}>清空选项</span>

+ 1 - 1
src/containers/eleType.js

@@ -35,7 +35,7 @@ export function singleRadio(params){
                         ikey={showInx}
                         hideTag={hideTag}></RadioDrop>;
     case 3:
-      return <EditableSpan {...params} value={data.value||data.name} update={Math.random()}/>;
+      return <EditableSpan {...params} value={data.value||data.value==''?data.value:data.name} update={Math.random()}/>;
     case 5://带单位数字键盘
       return <NumberUnitDrop prefix={data.labelPrefix}
                          suffix={data.labelSuffix}

+ 23 - 0
src/store/actions/checkBody.js

@@ -166,6 +166,29 @@ export const changeLabelVal = (state,action)=>{//双击标签输入改变值
   const index = action.data.ikey;
   const newVal = action.data.changeVal;     //下拉修改的内容
   const totalVal = action.data.totalVal;    //包含前后缀修改的内容
+  let labText = totalVal?totalVal:newVal;
+  let item = res.data[index];
+  // if(newVal && newVal.trim()){
+  if(labText && labText.trim()){
+    if(item){
+      item.value = newVal;
+      // res.saveText[index] = totalVal;
+      res.saveText[index] = labText;
+    }
+  }else{//删除完标签内容则删除该标签
+    res.data.splice(index,1);
+    res.saveText = fullfillText(res.data).saveText;
+  } 
+  
+  res.update = Math.random();
+  return res;
+}
+
+// 数字键盘较特殊,有直接输入
+export const changeNumLabelVal = (state,action)=>{
+  const res = Object.assign({},state);
+  const index = action.data.ikey;
+  const newVal = action.data.changeVal;
   let item = res.data[index];
   if(newVal.trim()){
     if(item){

+ 6 - 2
src/store/actions/currentIll.js

@@ -69,9 +69,13 @@ export const setData = (state,action) =>{
   let newMain = [];
   let mainLabelModule = res.mainLabelModule;//主诉选中的症状id获取到的模板
   let objToArr = [];
-  for(let m in mainLabelModule){
-    objToArr.push(mainLabelModule[m]);
+  let keyArr = Object.keys(mainLabelModule); 
+  for(let i=0; i<keyArr.length; i++){
+    objToArr.push(mainLabelModule[JSON.parse(keyArr[i])]);
   }
+  /*for(let m in mainLabelModule){
+    objToArr.push(mainLabelModule[m]);
+  }*/
   // 过滤掉没有mapping的数据
   let mainLabelModuleArr = objToArr;
   /*let mainLabelModuleArr = objToArr.filter((item)=>{

+ 18 - 6
src/store/actions/homePage.js

@@ -14,9 +14,13 @@ export const showDrop=(state,action)=>{
   const {ikey} = action.data;
   let obj = res.showDrop||{};
   let temp = Object.assign({},obj);
-  for(let i in obj){
+  let keyArr = Object.keys(obj); 
+  for(let i=0; i<keyArr.length; i++){
+    temp[JSON.parse(keyArr[i])] = false;
+  }
+  /*for(let i in obj){
     temp[i] = false;
-  };
+  };*/
   res.showDrop = Object.assign(temp,{[ikey]:action.show!==undefined?action.show:true});
   res.update=Math.random();
 
@@ -28,9 +32,13 @@ export const confirmHide=(state,action)=>{
   let res = Object.assign({},state);
   let obj = res.showDrop||{};
   let temp = Object.assign({},obj);
-  for(let i in obj){
+  let keyArr = Object.keys(obj); 
+  for(let i=0; i<keyArr.length; i++){
+    temp[JSON.parse(keyArr[i])] = false;
+  }
+  /*for(let i in obj){
     temp[i] = false;
-  };
+  };*/
   res.showDrop = temp;
   res.commSymHide = true;
   res.update=Math.random();
@@ -73,9 +81,13 @@ export const setLabelToEdit = (state,action)=>{
   const {ikey} = action.data;
   let obj = res.editState||{};
   let temp = Object.assign({},obj);
-  for(let i in obj){
+  let keyArr = Object.keys(obj); 
+  for(let i=0; i<keyArr.length; i++){
+    temp[JSON.parse(keyArr[i])] = false;
+  }
+  /*for(let i in obj){
     temp[i] = false;
-  };
+  };*/
   res.editState = Object.assign(temp,{[ikey]:action.edit!==undefined?action.edit:true});
   res.update=Math.random();
   return res;

+ 23 - 0
src/store/actions/mainSuit.js

@@ -361,6 +361,29 @@ export function setRadioValue(state,action){
 
 //双击标签输入改变值
 export const changeLabelVal = (state,action)=>{
+  const res = Object.assign({},state);
+  const index = action.data.ikey;
+  const newVal = action.data.changeVal;
+  let data = res.data;
+  let item = data[index];
+  if(newVal.trim()){
+    if(item){
+      item.value = newVal;
+      res.saveText[index] = newVal;
+    }
+  }else{//删除完标签内容则删除该标签
+    
+    data.splice(index,1);
+    // res.data.splice(index,1);
+    // res.saveText = fullfillText(res.data).saveText;
+    res.saveText.splice(index,1);
+  } 
+  res.update = Math.random();
+  return res;
+}
+
+// 数字键盘较特殊,有直接输入
+export const changeNumLabelVal = (state,action)=>{
   const res = Object.assign({},state);
   const index = action.data.ikey;
   const newVal = action.data.changeVal;

+ 20 - 21
src/utils/tools.js

@@ -479,32 +479,31 @@ function filterDataArr(arrTmp){   //数据处理
     let arr = arrTmp.join('').split('');
     for(let i = 0;i < arr.length;i++){
         if(arr[i] && arr[i].indexOf('undefined') == -1){
-            if(tmpArr[tmpArr.length-1] != ',' && tmpArr[tmpArr.length-1] != ',' && tmpArr[tmpArr.length-1] != '、' && tmpArr[tmpArr.length-1] != '。'){
+            if(tmpArr[tmpArr.length-1] != ',' && tmpArr[tmpArr.length-1] != ',' ){
                 tmpArr.push(arr[i])
-            }else {
-              if(tmpArr[tmpArr.length-1] == '。' && arr[i] != ',' && arr[i] != ',' && arr[i] != '、' && arr[i] != '。'){
-                  tmpArr.push(arr[i]);
-              }else if(tmpArr[tmpArr.length-1] != '。'){
-                if(arr[i] == '。'){
-                  tmpArr.pop();
-                  tmpArr.push(arr[i]);
-                }else if(arr[i] != '。' && tmpArr[tmpArr.length-1] == '、'){    //前面逗号后面顿号 [',','、']
-                  if(arr[i] != ',' && arr[i] != ',' && arr[i] != '、'){
-                    tmpArr.push(arr[i]);
-                  }else{
-                    tmpArr.pop();
-                    tmpArr.push(arr[i]);
-                  }
-                }else if(arr[i] != '。' && tmpArr[tmpArr.length-1] != '、'){
-                  if(arr[i] != ',' && arr[i] != ',' && arr[i] != '、'){
-                    tmpArr.push(arr[i]);
-                  }
-                }
+            }else if((tmpArr[tmpArr.length-1] == ',' && (arr[i] != ',' || arr[i] != ',')) || (tmpArr[tmpArr.length-1] == ',' && (arr[i] != ',' || arr[i] != ','))) {
+              if(arr[i] == '。'){     //前面逗号后面句号 [',','。']
+                tmpArr.pop();
+                tmpArr.push(arr[i]);
+              }else if(tmpArr[tmpArr.length-2] == '。' && (tmpArr[tmpArr.length-1] == ',' || tmpArr[tmpArr.length-1] == ',')){//前面句号后面逗号 ['。',',']
+                tmpArr.pop();
+                tmpArr.push(arr[i]);
+              }else if(arr[i] == ',' || arr[i] == ','){    //  中英文逗号交替[',',',']
+                tmpArr.pop();
+                tmpArr.push(arr[i]);
+              }else if(arr[i] == '、'){    //前面逗号后面句号 [',','、']
+                tmpArr.pop();
+                tmpArr.push(arr[i]);
+              }else if(tmpArr[tmpArr.length-2] == '、' && (tmpArr[tmpArr.length-1] == ',' || tmpArr[tmpArr.length-1] == ',')){    //前面逗号后面句号 ['、',',']
+                tmpArr.splice(tmpArr.length-2,1);
+                tmpArr.push(arr[i]);
+              }else{
+                tmpArr.push(arr[i]);
               }
             }
         }
     }
-    return (tmpArr.join('')).replace(/^,+/,"").replace(/,+$/,"").replace(/,+$/,"").replace(/,+$/,"").replace(/、+$/,"");
+    return (tmpArr.join('')).replace(/^,+/,"").replace(/,+$/,"").replace(/,+$/,"").replace(/,+$/,"");
 }
 // 取消默认行为
 function preventDefault(event) {