Blame view

juvenile-prosecution-vue/src/components/jeecg/JInput.vue 2.58 KB
6c637641   wxy   no message
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
  <template>
    <a-input :placeholder="placeholder" :value="inputVal" @input="backValue"></a-input>
  </template>
  
  <script>
    const JINPUT_QUERY_LIKE = 'like';
    const JINPUT_QUERY_NE = 'ne';
    const JINPUT_QUERY_GE = 'ge'; //大于等于
    const JINPUT_QUERY_LE = 'le'; //小于等于
    
    export default {
      name: 'JInput',
      props:{
        value:{
          type:String,
          required:false
        },
        type:{
          type:String,
          required:false,
          default:JINPUT_QUERY_LIKE
        },
        placeholder:{
          type:String,
          required:false,
          default:''
        },
        trim:{
          type: Boolean,
          required: false,
          default:false
        }
      },
      watch:{
        value:{
          immediate:true,
          handler:function(){
            this.initVal();
          }
        },
        // update-begin author:sunjianlei date:20200225 for:当 type 变化的时候重新计算值 ------
        type() {
          this.backValue({ target: { value: this.inputVal } })
        },
        // update-end author:sunjianlei date:20200225 for:当 type 变化的时候重新计算值 ------
      },
      model: {
        prop: 'value',
        event: 'change'
      },
      data(){
        return {
          inputVal:''
        }
      },
      methods:{
        initVal(){
          if(!this.value){
            this.inputVal = ''
          }else{
            let text = this.value
            switch (this.type) {
              case JINPUT_QUERY_LIKE:
                //修复路由传参的值传送到jinput框被前后各截取了一位 #1336
                if(text.indexOf("*") != -1){
                  text = text.substring(1,text.length-1);
                }
                break;
              case JINPUT_QUERY_NE:
                text = text.substring(1);
                break;
              case JINPUT_QUERY_GE:
                text = text.substring(2);
                break;
              case JINPUT_QUERY_LE:
                text = text.substring(2);
                break;
              default:
            }
            this.inputVal = text
          }
        },
        backValue(e){
          let text = e.target.value
          if(text && this.trim===true){
            text = text.trim()
          }
          switch (this.type) {
            case JINPUT_QUERY_LIKE:
              text = "*"+text+"*";
              break;
            case JINPUT_QUERY_NE:
              text = "!"+text;
              break;
            case JINPUT_QUERY_GE:
              text = ">="+text;
              break;
            case JINPUT_QUERY_LE:
              text = "<="+text;
              break;
            default:
          }
          this.$emit("change",text)
        }
      }
    }
  </script>
  
  <style scoped>
  
  </style>