parent
f5ecd16777
commit
8f5b16867d
3 changed files with 48 additions and 8 deletions
|
@ -1,7 +1,8 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="ivu-select-dropdown"><slot></slot></div>
|
<div class="ivu-select-dropdown" :style="styles"><slot></slot></div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
import { getStyle } from '../../utils/assist';
|
||||||
import Popper from 'popper.js';
|
import Popper from 'popper.js';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
@ -13,9 +14,17 @@
|
||||||
},
|
},
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
popper: null
|
popper: null,
|
||||||
|
width: '',
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
computed: {
|
||||||
|
styles () {
|
||||||
|
let style = {};
|
||||||
|
if (this.width) style.width = `${this.width}px`;
|
||||||
|
return style;
|
||||||
|
}
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
update () {
|
update () {
|
||||||
if (this.popper) {
|
if (this.popper) {
|
||||||
|
@ -36,6 +45,10 @@
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
// set a height for parent is Modal and Select's width is 100%
|
||||||
|
if (this.$parent.$options.name === 'iSelect') {
|
||||||
|
this.width = parseInt(getStyle(this.$parent.$el, 'width'));
|
||||||
|
}
|
||||||
},
|
},
|
||||||
destroy () {
|
destroy () {
|
||||||
if (this.popper) {
|
if (this.popper) {
|
||||||
|
|
|
@ -40,6 +40,7 @@
|
||||||
const prefixCls = 'ivu-select';
|
const prefixCls = 'ivu-select';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
name: 'iSelect',
|
||||||
components: { Icon, Dropdown },
|
components: { Icon, Dropdown },
|
||||||
directives: { clickoutside },
|
directives: { clickoutside },
|
||||||
props: {
|
props: {
|
||||||
|
|
|
@ -1,14 +1,30 @@
|
||||||
<template>
|
<template>
|
||||||
<i-select :model.sync="model7" style="width:200px"
|
<i-button type="primary" @click="modal1 = true">i-selelct加入width样式</i-button>
|
||||||
filterable>
|
<i-button type="primary" @click="modal2 = true">i-selelct没有加入width样式</i-button>
|
||||||
<i-option v-for="item in cityList | limitBy 3" :value="item.value">{{ item.label }}</i-option>
|
|
||||||
<i-option v-for="item in cityList | limitBy 3 3" :value="item.value">{{ item.label }}</i-option>
|
<Modal
|
||||||
|
:visible.sync="modal1"
|
||||||
|
title="普通的Modal对话框标题">
|
||||||
|
<i-select :model.sync="model1" :style="modalStyle">
|
||||||
|
<i-option v-for="item in cityList" :value="item.value">{{ item.label }}</i-option>
|
||||||
</i-select>
|
</i-select>
|
||||||
|
</Modal>
|
||||||
|
|
||||||
|
<Modal
|
||||||
|
:visible.sync="modal2"
|
||||||
|
title="普通的Modal对话框标题">
|
||||||
|
<i-select :model.sync="model1" :style="modalStyle">
|
||||||
|
<i-option v-for="item in cityList" :value="item.value">{{ item.label }}</i-option>
|
||||||
|
</i-select>
|
||||||
|
</Modal>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
|
modal1: false,
|
||||||
|
modal2: false,
|
||||||
|
modalStyle: '',
|
||||||
cityList: [
|
cityList: [
|
||||||
{
|
{
|
||||||
value: 'beijing',
|
value: 'beijing',
|
||||||
|
@ -35,7 +51,17 @@
|
||||||
label: '重庆市'
|
label: '重庆市'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
model7: ''
|
model1: ''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
modalStyle: function(){
|
||||||
|
let s = ""
|
||||||
|
if (this.modal1)
|
||||||
|
s = "width: 200px"
|
||||||
|
if (this.modal2)
|
||||||
|
s = ""
|
||||||
|
return s
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue