Browse Source

单多选输入框必填

zhouna 5 years ago
parent
commit
6718a2771c
4 changed files with 15 additions and 8 deletions
  1. 12 5
      src/common/OptionInp.vue
  2. 1 1
      src/common/Radio.vue
  3. 1 1
      src/common/Select.vue
  4. 1 1
      src/components/MainPage.vue

+ 12 - 5
src/common/OptionInp.vue

@@ -6,10 +6,10 @@
             :placeholder="msg.placeholder"
             :style="{'width':!msg.prefix&&!msg.suffix?'90%':'33%'}"
             :class="[{'cancel':item.select==0}]"
-            v-model="txt"
+           v-model="txt"
            @click="handleCli"
            @input="changeVal"
-            @blur="handleBlur">
+    >
     <span class="suffix" v-if="msg.suffix">{{msg.suffix}}</span>
   </div>
 </template>
@@ -22,7 +22,7 @@ import $ from 'jquery';
     data(){
       return{
         msg:{},
-        txt:this.item.value || '',
+        txt:this.item.value||'',
         select:0,
         url:[require('../images/iptselect.png'),require('../images/iptdis.png')]
       }
@@ -34,19 +34,26 @@ import $ from 'jquery';
     },
     methods:{
       changeVal(e){
+        this.txt = e.target.value;
         if(this.msg.type=='number'){//数字键盘
           this.txt = e.target.value=e.target.value.replace(/^\.$/,'')
         }
+        this.$emit('handleInp',this.txt,this.inx);
+        if(this.txt&&!this.item.select||(!this.txt&&this.item.select)){
+          this.$emit("handleSelect")
+        }
       },
       handleBlur(){
-        this.$emit('handleInp',this.txt,this.inx);
+       /* if(this.txt){
+          this.$emit('handleInp',this.txt,this.inx);
+        }*/
         /*setTimeout(()=>{
           $(".foot").css({'display':'block'})
         },150)*/
 
       },
       handleCli(e){
-        if(this.select){//已选中后点击输入框不取消选中
+        if(this.select||!this.txt){//已选中后点击输入框不取消选中
           e.stopPropagation();
         }
       }

+ 1 - 1
src/common/Radio.vue

@@ -9,7 +9,7 @@
         @click="selectResult(item,idx)"
       >
         <span v-if="((item.description||item.name).indexOf('${'))==-1">{{item.description||item.name}}</span>
-        <OptionInp v-else :item="item" @handleInp="inpVal" :inx="idx"/>
+        <OptionInp v-else :item="item" @handleInp="inpVal" :inx="idx" @handleSelect="selectResult(item,idx)"/>
       </li>
     </ul>
     <div :class="sure?'realSure sure':'sure'" @click="makeSuer">

+ 1 - 1
src/common/Select.vue

@@ -9,7 +9,7 @@
         @click="selectResult(item,idx)"
       >
         <span v-if="((item.description||item.name).indexOf('${'))==-1">{{item.description||item.name}}</span>
-        <OptionInp v-else :item="item" @handleInp="inpVal" :inx="idx"/>
+        <OptionInp v-else :item="item" @handleInp="inpVal" :inx="idx" @handleSelect="selectResult(item,idx)"/>
       </li>
     </ul>
     <div :class="sure?'realSure sure':'sure'" @click="makeSuer">

+ 1 - 1
src/components/MainPage.vue

@@ -138,7 +138,7 @@ export default {
       defaultIndex: 0, //温度默认值
       order:0,
       userInfo: {}, //用户信息
-      pdbm:'9.93rem',
+      pdbm:'8.5rem',
       waring:'',        //错误提示语
       wrong:false,      //是否显示错误toast
       showConfirm: false,