<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文範例為大家分享了Vue下拉選擇框Select元件的使用方法,供大家參考,具體內容如下
效果圖如下:
下拉元件寬度可自定義設定以下屬性:
①下拉元件寬度width屬性,預設寬度290
②placeholder屬性
③是否禁用下拉的disabled屬性
已預設下拉選單最多8條,超過時捲動顯示,具體可自定義調整,如果下拉選項過長省略號顯示,滑鼠懸浮顯示全稱,由於業務需求,設定mode屬性,區別預設name和value 與 dictKey和dictVal
①建立元件Select.vue
<template> <div class="m-select-wrap f14" :style="`width: ${width}px;`"> <input :class="['u-select-input', { 'disabled': disabled }]" :style="`width: ${width - 32}px;`" type="text" :disabled="disabled" :placeholder="placeholder" readonly :title="selectName" @click="openSelect" @blur="onBlur" v-model="selectName" /> <div :class="['triangle-down', { 'rotate': rotate, 'disabled': disabled }]" @click="openSelect"></div> <div :class="['m-options-panel', showOptions ? 'show': 'hidden']" :style="`height: ${selectData.length * 40}px; max-height: 320px; width: ${width - 2}px;`"> <p class="u-option" :title="mode==='region' ? item.dictVal : item.name" @mousedown="getValue(mode==='region' ? item.dictVal : item.name, mode==='region' ? item.dictKey : item.value)" v-for="(item, index) in selectData" :key="index"> {{ mode==='region' ? item.dictVal : item.name }} </p> </div> </div> </template> <script> export default { name: 'Select', props: { selectData: { type: Array, default: () => { return [] } }, selValue: { // 將該prop值作為selV的初始值 default: undefined }, placeholder: { type: String, default: '請選擇' }, width: { // 下拉框寬度 type: Number, default: 290 }, disabled: { type: Boolean, default: false }, mode: { type: String, default: 'default' } }, computed: { selectName () { let selName this.selectData.forEach(item => { if (this.mode === 'region') { if (item.dictKey === this.selectValue) { selName = item.dictVal } } else { if (item.value === this.selectValue) { selName = item.name } } }) return selName }, selectValue: { get () { return this.selV }, set (newVal) { this.selV = newVal } } }, data () { return { selV: this.selValue, rotate: false, showOptions: false } }, methods: { openSelect () { this.showOptions = !this.showOptions this.rotate = !this.rotate }, getValue (name, value) { this.selectValue = value this.$emit('getValue', name, value) }, onBlur () { this.showOptions = false this.rotate = false } } } </script> <style lang="less" scoped> .m-select-wrap { display: inline-block; width: 290px; height: 40px; line-height: 40px; position: relative; font-weight: 400; color: #444444; .u-select-input { padding-left: 10px; width: 258px; height: 38px; border: 1px solid #d7d7d7; cursor: pointer; padding-right: 20px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; &:focus { border: 1px solid @mainColor; } } .triangle-down { // 下三角 width: 12px; height: 7px; font-size: 0; background: url('~@/assets/images/triangle.png') no-repeat center top; position: absolute; top: 17px; right: 10px; transition: all 0.3s ease-in-out; cursor: pointer; } .rotate { transform: rotate(180deg); -webkit-transform: rotate(180deg); } .disabled { cursor: default; pointer-events: none; } .m-options-panel { position: absolute; overflow-y: auto; background: #FFFFFF; width: 288px; border: 1px solid @mainColor; top: 40px; left: 0; color: #444; .u-option { padding: 0 20px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; // 溢位顯示省略號 cursor: pointer; } .u-option:hover { background: #EEEEEE; } } .show { display: block; } .hidden { display: none; } } </style>
②在要使用的頁面中參照
<Select :selectData="provinceData" :selValue="address.province" :width="143" placeholder="請選擇省" @getValue="getProvinceCode" /> import Select from '@/components/Select' components: { Select }, data () { return { provinceData: [], address: { province: '' } } } methods: { getProvinceCode (name, code) { console.log('province:', name, code) this.address.province = code } }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45