You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

67 lines
1.8 KiB

<template>
<el-form-item :style="{ ...style, height: height, ...styleObject }"
:class="[{ 'column': column }, { 'w510': addClass == 'w510' }, { 'w388': addClass == 'w388' }, 'form-item']" :label="label"
:prop="prop" :rules="rules">
<p v-if="desc" class="desc_right">{{ desc }}</p>
<el-select :style="{ width: width }" :placeholder="placeholder1" @change="handleChange" v-model="selectedValue">
<el-option v-for="item in options" :key="item.value" :label="item.label" :disabled="item.disabled"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</template>
<script>
export default {
name: 'GuipTextarea',
props: ['options', 'styleObject', 'disabled', 'defaultValue', 'placeholder',
'width', 'height', 'label', 'type', 'prop', 'rules', 'column', 'addClass', 'desc'],
data() {
return {
selectedValue: '',
style: {},
placeholder1: '请选择'
}
},
watch: {
value(newVal) {
this.selectedValue = newVal;
},
defaultValue(newVal) {
this.selectedValue = newVal;
}
},
mounted() {
// 默认值赋值
if (this.defaultValue != null) {
this.selectedValue = this.defaultValue;
}
if (this.value != null) {
this.selectedValue = this.value;
}
// 默认提示语
if (this.placeholder) {
this.placeholder1 = this.placeholder;
}
this.$nextTick(() => {
let els = document.querySelectorAll('.el-select .el-input');
els.forEach(item => {
item.onmouseover = function () {
item.classList.add("hoverclass")
}
item.onmouseout = function () {
item.classList.remove("hoverclass")
}
})
})
},
methods: {
handleChange(value) {
this.$emit('input', value);
this.$emit('change', value);
},
}
}
</script>