element select自定义模板 options span宽度设置

主要是span文本过长,到时下拉框被撑开了

<el-select
                v-model="updateList[item.property]"
                clearable
                value-key="xaptVmCode"
                style="width: 100%;"
                filterable
                @change="vmChange"
              >
                <el-option
                  v-for="(vm,iindex) in vmOptions"
                  :key="iindex"
                  :label="vm.xaptVmCode"
                  :value="vm"
                >
                  <span class="spanWidth" style="float: left" :title="vm.xaptVmCode">{{ vm.xaptVmCode }}</span>
                  <span class="spanWidth" style="float: right; color: #8492a6; font-size: 13px" :title="vm.xaptVmDesc">{{ vm.xaptVmDesc }}</span>
                </el-option>
              </el-select>
.spanWidth{
  white-space:nowrap;/*强制单行显示*/
  text-overflow:ellipsis;/*超出部分省略号表示*/
  overflow:hidden;/*超出部分隐藏*/
  width: 260px;/*设置显示的最大宽度*/
  display:inline-block;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Element-Plus 的 Select 组件支持自定义选项模板和选项分组,以下是一个简单的自定义 Select 组件示例: ```html <template> <el-select v-model="value" :placeholder="placeholder" :multiple="multiple" :collapse-tags="collapseTags" :filterable="filterable" :allow-create="allowCreate" :default-first-option="defaultFirstOption" :popper-class="popperClass" :remote="remote" :loading="loading" :loading-text="loadingText" :no-match-text="noMatchText" :no-data-text="noDataText" :popper-append-to-body="popperAppendToBody" :automatic-dropdown="automaticDropdown" :reserve-keyword="reserveKeyword" @change="handleChange"> <template #default="{option}"> <span v-if="option.value !== 'divider'" class="el-select-dropdown__item">{{ option.label }}</span> <el-divider v-else /> </template> <template #group="{group}"> <span class="el-select-dropdown__item el-select-group">{{ group.label }}</span> </template> </el-select> </template> <script> export default { name: 'CustomSelect', props: { placeholder: { type: String, default: '请选择' }, value: { type: [String, Number, Array], default: '' }, multiple: { type: Boolean, default: false }, collapseTags: { type: Boolean, default: false }, filterable: { type: Boolean, default: false }, allowCreate: { type: Boolean, default: false }, defaultFirstOption: { type: Boolean, default: false }, popperClass: { type: String, default: '' }, remote: { type: Boolean, default: false }, loading: { type: Boolean, default: false }, loadingText: { type: String, default: '加载中' }, noMatchText: { type: String, default: '无匹配数据' }, noDataText: { type: String, default: '暂无数据' }, popperAppendToBody: { type: Boolean, default: true }, automaticDropdown: { type: Boolean, default: false }, reserveKeyword: { type: Boolean, default: false }, options: { type: Array, default: () => [] } }, methods: { handleChange(value) { this.$emit('change', value) } } } </script> ``` 在模板中,我们定义了两个插槽:`default` 和 `group`。`default` 插槽用于渲染每个选项,`group` 插槽用于渲染选项分组。在插槽中,我们可以访问到 `option` 和 `group` 对象,它们包含了选项和分组的相关信息。 同时,我们还定义了一些 props,用来控制 Select 的行为和样式。 使用自定义 Select 组件时,只需要传入 `options` 属性,指定选项列表,即可完成自定义。例如: ```html <template> <custom-select :options="options" v-model="selected" /> </template> <script> import CustomSelect from './CustomSelect.vue' export default { components: { CustomSelect }, data() { return { selected: '', options: [ { label: '选项一', value: '1' }, { label: '选项二', value: '2' }, { label: '选项三', value: '3' }, { label: '分组一', value: 'divider' }, { label: '选项四', value: '4', group: '分组一' }, { label: '选项五', value: '5', group: '分组一' } ] } } } </script> ``` 注意,在定义选项时,我们可以通过 `group` 属性指定选项所属的分组,从而实现选项分组的效果。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值