Browse Source

键盘bug

luolei 5 years ago
parent
commit
87c1104d81

+ 8 - 4
src/common/CheckBox.vue

@@ -48,16 +48,20 @@ import OptionInp from '../common/OptionInp.vue';
     },
     methods:{
       handleClick(it,index,flag,flg){
+        if(flg){
+          document.activeElement.blur();      
+          document.activeElement.scrollIntoViewIfNeeded(true);
+          setTimeout(()=>{
+            document.activeElement.scrollIntoViewIfNeeded(true);
+          },300)
+        }
         const that = this;
         const list = this.datas;
         let data = list.questionDetailList&&list.questionDetailList.slice(0);
         // 处理互斥
         const excluArr = data.filter(it=>it.exclusion==1);
         const filArr = data.filter(it=>it.select==1);
-        if(flg){
-          document.activeElement.blur();
-          document.activeElement.scrollIntoViewIfNeeded(true);
-        }
+
         if(excluArr.length>0){//有互斥
           if(filArr.length>0){//有选中
             if(it.exclusion !== filArr[0].exclusion){

+ 3 - 0
src/common/ComTextArea.vue

@@ -37,6 +37,9 @@ export default {
     },
     blur(){
       document.activeElement.scrollIntoViewIfNeeded(true);
+      setTimeout(()=>{
+        document.activeElement.scrollIntoViewIfNeeded(true);
+      },300)
       const newData = Object.assign({},this.item,{value:this.txt,valueP:this.txt});
       this.$emit("updata",newData);
     }

+ 3 - 0
src/common/Input.vue

@@ -31,6 +31,9 @@
       },
       blur(){
         document.activeElement.scrollIntoViewIfNeeded(true);
+        setTimeout(()=>{
+          document.activeElement.scrollIntoViewIfNeeded(true);
+        },300)
         // this.borColor = false;
         // const newData = Object.assign({},this.item,{value:this.val,valueP:this.val});
         // this.$emit("updata",newData);

+ 7 - 4
src/common/Label.vue

@@ -41,13 +41,16 @@ import {moduleCP} from '@utils/tools';
     },
     methods:{
       handleClick(it,index,flg){
-        const arr = this.datas.questionMapping;
-        const excluArr = arr.filter(it=>it.exclusionType==1);
-        const filArr = arr.filter(it=>it.select==1);
         if(flg){
-          document.activeElement.blur();
+          document.activeElement.blur();      
           document.activeElement.scrollIntoViewIfNeeded(true);
+          setTimeout(()=>{
+            document.activeElement.scrollIntoViewIfNeeded(true);
+          },300)
         }
+        const arr = this.datas.questionMapping;
+        const excluArr = arr.filter(it=>it.exclusionType==1);
+        const filArr = arr.filter(it=>it.select==1);
         if(excluArr.length>0){//有互斥
           if(filArr.length>0){//有选中
             if(it.exclusionType !== filArr[0].exclusionType){

+ 4 - 1
src/common/MultiLineInput.vue

@@ -77,8 +77,11 @@ export default {
       // this.$emit('changeMultipVal',e.currentTarget.value,num)
     },
     blur(){
+      // 如果该项未选中,则不存值           
       document.activeElement.scrollIntoViewIfNeeded(true);
-      // 如果该项未选中,则不存值
+      setTimeout(()=>{
+        document.activeElement.scrollIntoViewIfNeeded(true);
+      },300)
       const select = this.part.select;
       // if(!select){return}
       const newData = Object.assign({},this.part,{value:this.txt,controlType:3,valueP:this.txt});

+ 3 - 0
src/common/OptionInp.vue

@@ -44,6 +44,9 @@ import { getExpStr,scrollToV,isIos} from '@utils/tools';
       },
       handleBlur(){
         document.activeElement.scrollIntoViewIfNeeded(true);
+        setTimeout(()=>{
+          document.activeElement.scrollIntoViewIfNeeded(true);
+        },300)
           // 如果该项未选中,则不存值
         // const select = this.item.select;
         // if(!select){return}

+ 7 - 4
src/common/Radio.vue

@@ -40,6 +40,13 @@ import OptionInp from '../common/OptionInp.vue';
     },
     methods:{
       handleClick(it,index,flg){
+        if(flg){
+          document.activeElement.blur();      
+          document.activeElement.scrollIntoViewIfNeeded(true);
+          setTimeout(()=>{
+            document.activeElement.scrollIntoViewIfNeeded(true);
+          },300)
+        }
         const list = this.datas;
         let data = list.questionDetailList&&list.questionDetailList.slice(0); //数组深拷贝?
         for(let i=0;i<data.length; i++){
@@ -51,10 +58,6 @@ import OptionInp from '../common/OptionInp.vue';
         let temp = concatVal(data);
         const newData = Object.assign({},this.datas,{questionDetailList:data,value:temp.value,valueP:temp.valueP})
         this.$emit("updata",newData);
-        if(flg){
-          document.activeElement.blur();
-          document.activeElement.scrollIntoViewIfNeeded(true);
-        }
       },
       inpVal(val,index){//输入框失焦处理  
         // 输入框回读

+ 2 - 0
src/utils/tools.js

@@ -275,6 +275,8 @@ function setScroll(scroll,flg,wrapper){
       bounceTime:500
   })
 }
+
+
 module.exports =  {
   imageUrlPrefix,
   getUrlArgObject,