Input add readonly prop & focus、blur events
Input add readonly prop & focus、blur events
This commit is contained in:
parent
c571d9ec2b
commit
0a48ac45a4
8 changed files with 78 additions and 4 deletions
21
src/components/cascader/cascader.vue
Normal file
21
src/components/cascader/cascader.vue
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
<template>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
props: {
|
||||||
|
|
||||||
|
},
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
2
src/components/cascader/index.js
Normal file
2
src/components/cascader/index.js
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
import Cascader from './cascader.vue';
|
||||||
|
export default Cascader;
|
|
@ -9,8 +9,11 @@
|
||||||
:placeholder="placeholder"
|
:placeholder="placeholder"
|
||||||
:disabled="disabled"
|
:disabled="disabled"
|
||||||
:maxlength="maxlength"
|
:maxlength="maxlength"
|
||||||
|
:readonly="readonly"
|
||||||
v-model="value"
|
v-model="value"
|
||||||
@keyup.enter="handleEnter">
|
@keyup.enter="handleEnter"
|
||||||
|
@focus="handleFocus"
|
||||||
|
@blur="handleBlur">
|
||||||
<div :class="[prefixCls + '-group-append']" v-if="append" v-el:append><slot name="append"></slot></div>
|
<div :class="[prefixCls + '-group-append']" v-if="append" v-el:append><slot name="append"></slot></div>
|
||||||
</template>
|
</template>
|
||||||
<textarea
|
<textarea
|
||||||
|
@ -22,8 +25,11 @@
|
||||||
:disabled="disabled"
|
:disabled="disabled"
|
||||||
:rows="rows"
|
:rows="rows"
|
||||||
:maxlength="maxlength"
|
:maxlength="maxlength"
|
||||||
|
:readonly="readonly"
|
||||||
v-model="value"
|
v-model="value"
|
||||||
@keyup.enter="handleEnter">
|
@keyup.enter="handleEnter"
|
||||||
|
@focus="handleFocus"
|
||||||
|
@blur="handleBlur">
|
||||||
</textarea>
|
</textarea>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
@ -70,6 +76,10 @@
|
||||||
rows: {
|
rows: {
|
||||||
type: Number,
|
type: Number,
|
||||||
default: 2
|
default: 2
|
||||||
|
},
|
||||||
|
readonly: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data () {
|
data () {
|
||||||
|
@ -117,6 +127,12 @@
|
||||||
handleIconClick () {
|
handleIconClick () {
|
||||||
this.$emit('on-click');
|
this.$emit('on-click');
|
||||||
},
|
},
|
||||||
|
handleFocus () {
|
||||||
|
this.$emit('on-focus');
|
||||||
|
},
|
||||||
|
handleBlur () {
|
||||||
|
this.$emit('on-blur');
|
||||||
|
},
|
||||||
resizeTextarea () {
|
resizeTextarea () {
|
||||||
const autosize = this.autosize;
|
const autosize = this.autosize;
|
||||||
if (!autosize || this.type !== 'textarea') {
|
if (!autosize || this.type !== 'textarea') {
|
||||||
|
|
|
@ -5,6 +5,7 @@ import Badge from './components/badge';
|
||||||
import Breadcrumb from './components/breadcrumb';
|
import Breadcrumb from './components/breadcrumb';
|
||||||
import Button from './components/button';
|
import Button from './components/button';
|
||||||
import Card from './components/card';
|
import Card from './components/card';
|
||||||
|
import Cascader from './components/cascader';
|
||||||
import Checkbox from './components/checkbox';
|
import Checkbox from './components/checkbox';
|
||||||
import Circle from './components/circle';
|
import Circle from './components/circle';
|
||||||
import Collapse from './components/collapse';
|
import Collapse from './components/collapse';
|
||||||
|
@ -40,6 +41,7 @@ const iview = {
|
||||||
iButton: Button,
|
iButton: Button,
|
||||||
ButtonGroup: Button.Group,
|
ButtonGroup: Button.Group,
|
||||||
Card,
|
Card,
|
||||||
|
Cascader,
|
||||||
Checkbox,
|
Checkbox,
|
||||||
CheckboxGroup: Checkbox.Group,
|
CheckboxGroup: Checkbox.Group,
|
||||||
Circle,
|
Circle,
|
||||||
|
|
|
@ -41,6 +41,7 @@ li + li {
|
||||||
<li><a v-link="'/alert'">Alert</a></li>
|
<li><a v-link="'/alert'">Alert</a></li>
|
||||||
<li><a v-link="'/tag'">Tag</a></li>
|
<li><a v-link="'/tag'">Tag</a></li>
|
||||||
<li><a v-link="'/input'">Input</a></li>
|
<li><a v-link="'/input'">Input</a></li>
|
||||||
|
<li><a v-link="'/cascader'">Cascader</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</nav>
|
</nav>
|
||||||
<router-view></router-view>
|
<router-view></router-view>
|
||||||
|
|
|
@ -92,6 +92,11 @@ router.map({
|
||||||
component: function (resolve) {
|
component: function (resolve) {
|
||||||
require(['./routers/tooltip.vue'], resolve);
|
require(['./routers/tooltip.vue'], resolve);
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
'/cascader': {
|
||||||
|
component: function (resolve) {
|
||||||
|
require(['./routers/cascader.vue'], resolve);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
21
test/routers/cascader.vue
Normal file
21
test/routers/cascader.vue
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
<template>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
props: {
|
||||||
|
|
||||||
|
},
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<i-input icon="ios-clock-outline" style="width:200px;" :value.sync="v" @on-enter="enter" @on-click="iconclick" size="large" placeholder="请输入"></i-input>
|
<i-input icon="ios-clock-outline" @on-focus="focus" @on-blur="blur" readonly style="width:200px;" :value.sync="v" @on-enter="enter" @on-click="iconclick" size="large" placeholder="请输入"></i-input>
|
||||||
<i-input icon="ios-clock-outline" style="width:200px;" :value.sync="v" @on-enter="enter" placeholder="请输入"></i-input>
|
<i-input icon="ios-clock-outline" style="width:200px;" :value.sync="v" @on-enter="enter" placeholder="请输入"></i-input>
|
||||||
<i-input icon="ios-clock-outline" style="width:200px;" :value.sync="v" @on-enter="enter" size="small" placeholder="请输入"></i-input>
|
<i-input icon="ios-clock-outline" style="width:200px;" :value.sync="v" @on-enter="enter" size="small" placeholder="请输入"></i-input>
|
||||||
<br>
|
<br>
|
||||||
|
@ -10,7 +10,7 @@
|
||||||
{{ v }}
|
{{ v }}
|
||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
<i-input placeholder="this is something" style="width:200px;" :value.sync="t" type="textarea" :autosize="autosize"></i-input>
|
<i-input readonly placeholder="this is something" style="width:200px;" :value.sync="t" type="textarea" :autosize="autosize"></i-input>
|
||||||
{{ t }}
|
{{ t }}
|
||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
|
@ -116,6 +116,12 @@
|
||||||
},
|
},
|
||||||
change (val) {
|
change (val) {
|
||||||
console.log(val)
|
console.log(val)
|
||||||
|
},
|
||||||
|
focus () {
|
||||||
|
this.$Message.info('focus');
|
||||||
|
},
|
||||||
|
blur () {
|
||||||
|
this.$Message.info('blur');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue