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> ...
随机推荐
- 【动态内存】C语言动态内存使用常见错误及其避免方法(初学者避雷)
C语言动态内存使用常见错误及其避免方法(初学者动态内存避雷手册) 求个赞求个赞求个赞求个赞 谢谢 先赞后看好习惯 打字不容易,这都是很用心做的,希望得到支持你 大家的点赞和支持对于我来说是一种非常重要 ...
- NOIp 2023 游记
咕了正好一周的 NOIp 游记,是我第一篇游记,也是一张寄往四年后不得不退役的.即将画上青春句号的自己的,包含了自己的青涩.期待与成长的信笺. Day \((-\infty, -7)\) CSP-S ...
- Winows11-hosts文件无法修改保存
Win11系统hosts文件无法修改保存 新近使用win11新电脑修改hosts,添加IP和主机名映射,保存时提示host无法修改. 解决办法: 1.将hosts文件的权限"只读" ...
- CF1849
传送门 A 氵 B 在吃了五次罚时后,我终于放弃了卡常优先队列,并发现:把余 \(0\) 看作余 \(k\),答案就是余数从大到小排列的,每种余数内部又按照下标排序. C 我为什么没想到哈希?自我检讨 ...
- 如何使用ASP.NET Core 中的 Hangfire 实现作业调度
https://procodeguide.com/programming/hangfire-in-aspnet-core-schedule-jobs/ 如何使用ASP.NET Core 中的 Hang ...
- JS 可选链操作符?. 空值合并运算符?? 详解,更精简的安全取值与默认值设置小技巧
壹 ❀ 引 说来也比较惭愧,可选链操作符?.在公司项目中使用特别频繁,而我在之前一直以为是类似奇技淫巧的写法,所以也没去查阅相关文档,直到在学习typescript时碰巧看到了可选链操作符与空值合并操 ...
- ffmpeg之avformat_alloc_output_context2
函数原型: int avformat_alloc_output_context2(AVFormatContext **ctx, const AVOutputFormat *oformat, const ...
- postgresql备份和恢复操作
1.介绍 最近项目上用了postgresql数据库,部署的时候需要备份数据库并在现场进行恢复操作,特此记录.我是在windows上安装的pgadmin4,此处用cmd下操作的: 备份命令:pg_dum ...
- mysql存储过程实战
今天科比离去,今天肺炎病毒持续肆虐... 意识到生命的脆弱,今天我继续前行,比以往更加坚定和紧迫,这辈子不活好自己就算白来一趟. 最近需要用到mysql存储过程去处理一些表数据,然后利用java po ...
- Oracle设置和删除不可用列
Oracle设置和删除不可用列 1.不可用列是什么? 就是表中的1个或多个列被ALTER TABLE-SET UNUSED 语句设置为无法再被程序利用的列. 2.使用场景? If you are co ...