SelectZenEmpty 下拉框 支持 最大长度 超出... vue 组件
<template>
<Select v-model="innerValue"
:disabled="disabled"
:clearable='clearable'
@on-change="onChangeHandle">
<Option v-for="item in this.selectList"
:title="item.nameTitle"
:value="item.code"
:key="item.code"> {{ item.nameLimit }}
</Option>
</Select>
</template>
<script>
export default {
name: 'SelectZenEmpty',
components: {},
props: {
disabled: {
type: Boolean,
default: false
},
value: {
type: String,
default: ''
},
clearable: {
type: Boolean,
default: false
}
},
data () {
return {
nameMaxSingleLength: 30,
innerValue: '',
selectList: []
}
},
watch: {
value (val) {
this.innerValue = val
}
},
computed: {},
methods: {
getSingleLength2 (str, length) {
let retLength = length
let len = 0
for (let i = 0; i < str.length; i++) {
const c = str.charAt(i)
if (escape(c).length > 4) {
len += 2
} else if (c !== "\r") {
len++
}
if (len >= length) {
retLength = i + 1
break
}
}
return retLength
},
getSingleLength (str) { // 中文2 英文 数字 1
return str.replace(/[^\\x00-\\xff]/g, "00").length
},
nameByLimit (name) {
if (this.getSingleLength(name) > this.nameMaxSingleLength) {
const singleLength = this.getSingleLength2(name, this.nameMaxSingleLength - 2)
console.info('singleLength', singleLength)
return name.substring(0, singleLength) + '...'
} else {
return name
}
},
nameByTitle (name) {
if (this.getSingleLength(name) > this.nameMaxSingleLength) {
return name
} else {
return ''
}
},
setSelectList (arr) {
if (arr.length > 0) {
this.selectList = arr.map(item => {
return {
...item,
nameTitle: this.nameByTitle(item.name),
nameLimit: this.nameByLimit(item.name)
}
})
} else {
this.selectList = arr
}
console.info('setSelectList this.selectList', this.selectList)
},
getItem (code) {
console.info('getItem code', code)
console.info('selectList', this.selectList)
return this.selectList.filter(item => {
return item.code === code
})[0]
},
onChange (code) { },
onChangeHandle (code) {
console.info('onChangeHandle', code)
// console.info('onChange', this.onChange)
this.$emit('input', code)
this.$emit('getItem', this.getItem(code))
this.onChange(code)
}
},
created () { },
activated () { },
mounted () { },
beforeDestroy () { }
}
</script>
<style>
</style>
SelectZenEmpty 下拉框 支持 最大长度 超出... vue 组件的更多相关文章
- 动态改变ComboBox下拉框的宽度
在C++Builder中有时下拉框的内容比较长,标准长度下根本显示不完,可以调用PostMessage()方法来实现 ::PostMessage(comb->Handle,CB_SETDROPP ...
- easyui combobox下拉框文字超出宽度有横向滚轮
//下拉框显示横向滚轮 $(".combo").mouseenter(function(){ $(this).prev().combobox("showPanel&quo ...
- 前端组件:支持多选,支持选项筛选的下拉框选择器(基于Jquery和Bootstrap)
效果图一:多选 效果图二:选项筛选 最后奉献源码,复制出来直接可用 <!DOCTYPE html> <html> <head> <meta charset=& ...
- jq插件又来了,模拟select下拉框,支持上下方向键哦
好久没来了,更新下插件, 这个原理就是利用的 input[type='hidden']和自定义属性data-value捆绑传值操作的,可是设置默认选项,回调等参数,代码不多,比较简单,吼吼 (func ...
- 获取下拉框的文本值和value值
http://www.cnblogs.com/djgs/p/3691979.html?utm_source=tuicool&utm_medium=referral 现在有一个Id为AreaId ...
- Js获取下拉框选定项的值和文本
Js获取下拉框的值和文本网上提供了2种方法:但有些人很不负责任,他们根本没考虑到浏览器之间的差异导致的错误,导致很多新手琢磨了半天找不出错误! 下面我总结下Firefox和IE下获取下拉框选定项的值和 ...
- Js获取下拉框当前选择项的文本和值
现在有一个Id为AreaId的下拉框,要获取它当前选择项的文本和值有以下方法: <span class="red">* </span> 地 区: ...
- 通过jquery来实现文本框和下拉框动态添加效果,能根据自己的需求来自定义最多允许添加数量,实用的jquery动态添加文本框特效
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- jQuery实现的3个基础案例(仿QQ列表分组,二级联动下拉框,模拟员工信息管理系统)
1.仿QQ列表分组 <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type&quo ...
- jquery 分页 下拉框
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
随机推荐
- MySQL 索引与性能调优
索引用于快速找出在某个列中有一特定值的行,如果不使用索引MySQL必须从第l条记录开始读完整个表,直到找出相关的行.表越大,查询数据所花费的时间越多,如果表中查询的列有一个索引,MySQL能快速到达某 ...
- 基于.NET三维控件的个性化管道软件开发
1 简介 管道广泛用于化工.工厂.建筑.市政等方面,关系到国计民生.虽然管道设计软件种类繁多,有的也非常强大(然而也非常昂贵),但也并不能完全满足个性化需要. 如何快速开发一款满足自己需求的三维管道设 ...
- 设置两个Chrome浏览器 一个正常使用 一个无图片版
添加两个Chrome浏览器 双击打开Chrome浏览器,点击右上角头像,点击添加 选择"在不登录帐号的情况下继续",创建一个名字,选个配色,勾选下面的创建桌面快捷方式 此时会打开一 ...
- 嫌 OSS 查询太慢?看我们如何将速度提升 10 倍!
背景 HDFS 是 Hadoop 生态的默认存储系统,很多数据分析和管理工具都是基于它的 API 设计和实现的.但 HDFS 是为传统机房设计的,在云上维护 HDFS 一点也不轻松,需要投入不少人力进 ...
- 手把手带你上手swagger3
配置POM 只需要加一个依赖,并且要注意,swagger3在springboot2.5版本以上会出现问题 <dependency> <groupId>io.springfox& ...
- DecisionTreeClassifier&DecisionTreeClassRegression
DecisionTreeClassifier from sklearn.datasets import load_wine # 红酒数据集 from sklearn.tree import Decis ...
- JavaFX的目录结构, 项目创建和发布, 基于JDK11+JavaFX SDK17
JDK 和 JavaFX SDK 需要使用JDK11, 推荐使用 https://adoptium.net/releases.html JDK11 JavaFX 11 不再是JDK的一部分, 需要单独 ...
- el-upload使用http-request自定义上传和进度条实战
介绍 项目中发现使用默认的el-upload上传动作发送上传请求的时候不会带上请求头,于是想通过自定义请求也就是http-request来自定义上传.实践证明这条路是通的,不过有个小问题就是原本上传的 ...
- Redhat6更改yum源
最近虚拟机中安装了redhat6.3企业版,自带的yum用不起来,软件都找不到. 网上搜了一下说是没付钱...,需要改下yum源.操作步骤如下: 1.切换到yum源存放目录 [root@rhel6 ~ ...
- win32 - 找出占用文件的进程id和name
日常文件操作的时候,在删除或者移动某个文件的时候,发现它被某些进程占用了. 那么下面的代码就可以帮助我们找出这些进程的id和name. 原理: 将资源注册到Restart Manager会话.重新启动 ...