luolei 5 роки тому
батько
коміт
f1fdb6e05c

+ 57 - 11
src/common/components/EditableSpan/index.jsx

@@ -134,17 +134,27 @@ class EditableSpan extends Component{
     $(this.$span.current).off("paste");
   }
 
-  moveEnd(obj) {
+  moveEnd(obj,flg) {
     if(window.getSelection){//ie11 10 9 ff safari
-      obj.focus(); //解决ff不获取焦点无法定位问题
-      var range = window.getSelection();//创建range
-      range.selectAllChildren(obj);//range 选择obj下所有子内容
-      range.collapseToEnd();//光标移至最后
+      setTimeout(() => {
+        obj.focus(); //解决ff不获取焦点无法定位问题
+        var range = window.getSelection();//创建range
+        range.selectAllChildren(obj);//range 选择obj下所有子内容
+        if(flg){
+          range.collapseToStart();//光标移至最后
+        }else{
+          range.collapseToEnd();//光标移至最后
+        }
+      }, 0);
     }
     else if (document.selection) {//ie10 9 8 7 6 5
       var range = document.selection.createRange();//创建选择对象
       range.moveToElementText(obj);//range定位到obj
-      range.collapse(false);//光标移至最后
+      if(flg){
+        range.collapse(true);//光标移至最后
+      }else{
+        range.collapse(false);//光标移至最后
+      }
       range.select();
     }
   }
@@ -165,6 +175,18 @@ class EditableSpan extends Component{
     }
     let range = window.getSelection();
     let textIndex = range.focusOffset;
+    
+    
+    let preObj = $(this.$span.current).prev();
+    let nexObj = $(this.$span.current).next();
+    if(preObj &&preObj[0] && preObj[0].nodeName !="DIV"&&textIndex == 0&&innerVal.length>0&&ev.keyCode==8){//在span的第一位
+      let obj = preObj[0]&&preObj[0].nodeName=="DIV"?preObj.prev():preObj;
+      this.moveEnd(obj[0]);
+    }else if(nexObj &&nexObj[0] && nexObj[0].nodeName !="DIV"&&textIndex == innerVal.length&&innerVal.length>0&&ev.keyCode==46){//最后一位
+      let obj = nexObj[0]&&nexObj[0].nodeName=="DIV"?nexObj.next():nexObj;
+      this.moveEnd(obj[0],true);
+    }
+
     let textLength = range.anchorNode.length;
     if(ev.keyCode==37&& i!=0){//向左
       let preObj = $(this.$span.current).prev();
@@ -190,10 +212,12 @@ class EditableSpan extends Component{
           ev.returnValue=false;
         }
         if(obj){
-          obj.focus();
+          // obj.focus();
+          this.moveEnd(obj[0],1)
         }
       }
     }
+
   }
   handleKeyup(e){
     const {boxMark,handleKeydown,removeId,handleClear,removeSpan} = this.props;
@@ -208,28 +232,48 @@ class EditableSpan extends Component{
     if(ev.keyCode==46){//delete
       //判断nexObj
       // let nextObj = $(this.$span.current).next();
+      // ||textIndex ==innerVal.length&&preObj[0].nodeName=="DIV"
+      let range = window.getSelection();
+      let textIndex = range.focusOffset;
       let nextObj = $(this.$span.current);
+      let nexObj = $(this.$span.current).next();
+      let neObj = $(this.$span.current).next().next();
+      let preObj = $(this.$span.current).prev();
       if(preVal.trim().length==1&& !innerVal){
         removeId && removeId({boxMark,i:index,text:"",flag:'del'});
         handleClear && handleClear({boxMark});//删除最后一个字时清空搜索结果,避免现病史搜索框不立即消失的情况
         //如果后一个不是标签,则光标移到最前
         if(nextObj && nextObj[0].nodeName !=="DIV"){
-          nextObj.focus();
+          // nextObj.focus();
+          this.moveEnd(nextObj[0],1)
+        }else{
+          this.moveEnd(preObj[0])
         }
       }
       //action里往后删除
       if(innerVal == preVal){
         let data = innerVal.trim();
         if(nextObj && !config.punctuationReg.test(data) || data=='<br>'){
+          // console.log(nextObj,nexObj,neObj)
+          // nextObj.focus();
+          console.log(9)
           handleKeydown&&handleKeydown({boxMark,i:index,text:data,flag:'del'});
-          // nextObj.focus();  
           if(nextObj && nextObj[0] && nextObj[0].nodeName !=="DIV"){
             // IE浏览器focus光标在最后,其他浏览器在最前
-            nextObj.focus();
+            // nextObj.focus();
+            this.moveEnd(nextObj[0]);
           }
           /*this.setState({
             index: null
           })*/
+        }else if(textIndex ==innerVal.length&&nexObj[0]&&nexObj[0].nodeName=="DIV"){
+          console.log(99)
+          handleKeydown&&handleKeydown({boxMark,i:index+1,text:data,flag:'del'});
+          this.moveEnd(nextObj[0]);
+        }else if(nexObj[0].nodeName=="SPAN"){
+          console.log(999)
+          handleKeydown&&handleKeydown({boxMark,i:index,text:'',flag:'del'});
+          this.moveEnd(nextObj[0]);
         }
       }
     }
@@ -246,6 +290,8 @@ class EditableSpan extends Component{
         }
       }
 
+      let range = window.getSelection();
+      let textIndex = range.focusOffset;
       if(innerVal !== preVal){
 
       }else{
@@ -264,7 +310,7 @@ class EditableSpan extends Component{
         // let pattern = new RegExp(/^\,?$|^\,?$|^\.?$|^\。?$|^\、?$|^\;?$|^\;?$|^\:?$|^\:?$|\s/);
         // if(index!==0 && pattern.test(data)){
         // 后半段是处理IE
-        if(index!==0 && !config.punctuationReg.test(data) || index!==0 && data=='<br>'){
+        if(index!==0 && !config.punctuationReg.test(data) || index!==0 && data=='<br>'||textIndex ==0&&preObj[0]&&preObj[0].nodeName=="DIV"){
           // let preObj = $(this.$span.current).prev();
           let obj = preObj[0].nodeName=="DIV"?preObj.prev():preObj;
           handleKeydown&&handleKeydown({boxMark,i:index,text:data,flag:'backsp'});

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

@@ -315,8 +315,10 @@ class Inspect extends React.Component {
     </ul>
   }
   showDetails(val) {
-    let min = val.minValue, max = val.maxValue, value = val.value, dom = '';
-    if (!isNaN(min) && !isNaN(max)) {//有最大值最小值
+    let min = val.minValue||undefined, max = val.maxValue||undefined, value = val.value, dom = '';
+    if(min == null&&max == null||min == undefined&&max == undefined||min == ''&&max == ''){
+      dom = getStatusImg(0, value, 1)
+    }else if (!isNaN(min) && !isNaN(max)) {//有最大值最小值
       if (isNaN(value)) {//输入的不是数据
         dom = getStatusImg(1, value, 1)
       } else if (value <= min) {//下降
@@ -338,7 +340,7 @@ class Inspect extends React.Component {
       } else {//正常
         dom = getStatusImg(0, value, 1)
       }
-    } else {//无最大最小值
+    } else {//无最大最小值(中文))
       dom = getStatusImg(1, value, 1)
     }
     if (val.questionDetailList.length > 0) {

+ 3 - 1
src/components/PreviewBody/index.jsx

@@ -52,7 +52,9 @@ class PreviewBody extends Component {
   }
   showDetails(val) {
     let min = val.minValue, max = val.maxValue, value = val.value, dom = '';
-    if (!isNaN(min) && !isNaN(max)) {//有最大值最小值
+    if(min == null&&max == null||min == undefined&&max == undefined||min == ''&&max == ''){
+      dom = getStatusImg(0, value, 1)
+    }else if (!isNaN(min) && !isNaN(max)) {//有最大值最小值
       if (isNaN(value)) {//输入的不是数据
         dom = getStatusImg(1, value, 1)
       } else if (value <= min) {//下降

+ 2 - 2
src/utils/config.js

@@ -1,8 +1,8 @@
 // const host='http://192.168.3.1:5050';//赵
 // const host='http://192.168.3.100:5050';//王峰
-const host='http://192.168.2.121:5050';//后端接口访问地址
 // const host='http://192.168.2.121:5050';//后端接口访问地址
-// const host='http://192.168.2.241:5050';//后端接口访问地址
+// const host='http://192.168.2.236:5050';//后端接口访问地址
+const host='http://192.168.2.241:5050';//后端接口访问地址
 // const host='http://192.168.3.11:5050';//王宇
 //const host='http://192.168.2.164:8080';
 // const host='http://192.168.3.117:5050'; //周铁刚