解决vue elementUI中table里数字、字母、中文混合排序问题


Posted in Javascript onJanuary 07, 2020

1.使用场景

使用elementUI中的table时,给包含数字字母中文的名称等字段排序

例如:数字(0->9)->大写字母(A->Z)->小写字母(a->z)->中文拼音(a->z)

2.代码解析

<el-table
   ref="multipleTable"
   border
   tooltip-effect="dark"
   class="xg-table"
   style="width: 100%"
   max-height="600">
   <el-table-column
    type="selection"
    width="60" />
   <el-table-column
    :default-sort = "{prop: 'DevName'}"
    :sort-method="sortDevName"
    prop="DevName"
    label="名称"
    sortable
    show-overflow-tooltip />
</el-table>

设置属性sortable,会按照自带的机制排序,不符合我们的预期;

所以增加属性 sort-method,在方法中自定义排序方式

<script>
  export default {
    methods: {
      sortDevName(str1, str2) {
       let res = 0
       for (let i = 0; ;i++) {
  if (!str1[i] || !str2[i]) {
   res = str1.length - str2.length
   break
  }
  const char1 = str1[i]
  const char1Type = this.getChartType(char1)
  const char2 = str2[i]
  const char2Type = this.getChartType(char2)
  // 类型相同的逐个比较字符
  if (char1Type[0] === char2Type[0]) {
   if (char1 === char2) {
   continue
   } else {
   if (char1Type[0] === 'zh') {
    res = char1.localeCompare(char2)
   } else if (char1Type[0] === 'en') {
    res = char1.charCodeAt(0) - char2.charCodeAt(0)
   } else {
    res = char1 - char2
   }
   break
   }
  } else {
  // 类型不同的,直接用返回的数字相减
   res = char1Type[1] - char2Type[1]
   break
  }
   }
   return res
  },
  getChartType(char) {
  // 数字可按照排序的要求进行自定义,我这边产品的要求是
  // 数字(0->9)->大写字母(A->Z)->小写字母(a->z)->中文拼音(a->z)
   if (/^[\u4e00-\u9fa5]$/.test(char)) {
  return ['zh', 300]
   }
   if (/^[a-zA-Z]$/.test(char)) {
  return ['en', 200]
   }
   if (/^[0-9]$/.test(char)) {
  return ['number', 100]
   }
   return ['others', 999]
  }
    }
  }
</script>

3.页面效果

 原列表                   ==》》            正序                 ==》》         倒序

解决vue elementUI中table里数字、字母、中文混合排序问题解决vue elementUI中table里数字、字母、中文混合排序问题解决vue elementUI中table里数字、字母、中文混合排序问题

总结

以上所述是小编给大家介绍的解决vue elementUI中table里数字、字母、中文混合排序问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
ExtJS4 动态生成的grid导出为excel示例
May 02 Javascript
使用delegate方法为一个tr标签加一个链接
Jun 27 Javascript
Js中使用hasOwnProperty方法检索ajax响应对象的例子
Dec 08 Javascript
jQuery无刷新分页完整实例代码
Oct 27 Javascript
每天一篇javascript学习小结(RegExp对象)
Nov 17 Javascript
js实现密码强度检测【附示例】
Mar 30 Javascript
JavaScript记录光标在编辑器中位置的实现方法
Apr 22 Javascript
AngularJS基础 ng-list 指令详解及示例代码
Aug 02 Javascript
vue多级多选菜单组件开发
Sep 08 Javascript
bootstrap css样式之表单
Jan 19 Javascript
webpack中CommonsChunkPlugin详细教程(小结)
Nov 09 Javascript
JS和JQuery实现雪花飘落效果
Nov 30 jQuery
Vue程序化的事件监听器(实例方案详解)
Jan 07 #Javascript
微信小程序服务器日期格式化问题
Jan 07 #Javascript
webpack 最佳配置指北(推荐)
Jan 07 #Javascript
微信小程序接入腾讯云验证码的方法步骤
Jan 07 #Javascript
vue实现数据控制视图的原理解析
Jan 07 #Javascript
微信小程序wx.navigateTo方法里的events参数使用详情及场景
Jan 07 #Javascript
详解微信小程序之提高应用速度小技巧
Jan 07 #Javascript
You might like
基于preg_match_all采集后数据处理的一点心得笔记(编码转换和正则匹配)
2014/01/31 PHP
jQuery层次选择器选择元素使用介绍
2013/04/18 Javascript
JS获取当前日期和时间的简单实例
2013/11/19 Javascript
js与C#进行时间戳转换
2014/11/14 Javascript
Linux下编译安装php libevent扩展实例
2015/02/14 Javascript
js表单提交和submit提交的区别实例分析
2015/12/10 Javascript
JavaScript正则表达式的分组匹配详解
2016/02/13 Javascript
JQuery实现简单的服务器轮询效果实例
2016/03/31 Javascript
使用jquery获取url及url参数的简单实例
2016/06/14 Javascript
为jQuery-easyui的tab组件添加右键菜单功能的简单实例
2016/10/10 Javascript
通过jquery获取上传文件名称、类型和大小的实现代码
2018/04/19 jQuery
详解基于Vue2.0实现的移动端弹窗(Alert, Confirm, Toast)组件
2018/08/02 Javascript
vue 自定义指令自动获取文本框焦点的方法
2018/08/25 Javascript
vue 实现特定条件下绑定事件
2019/11/09 Javascript
js实现省级联动(数据结构优化)
2020/07/17 Javascript
详解JavaScript类型判断的四种方法
2020/10/21 Javascript
[54:54]Newbee vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python转码问题的解决方法
2008/10/07 Python
Python使用urllib2模块抓取HTML页面资源的实例分享
2016/05/03 Python
python删除过期log文件操作实例解析
2018/01/31 Python
python之信息加密题目详解
2019/06/26 Python
Pytorch 抽取vgg各层并进行定制化处理的方法
2019/08/20 Python
python爬虫豆瓣网的模拟登录实现
2019/08/21 Python
使用 css3 transform 属性来变换背景图的方法
2019/05/07 HTML / CSS
CSS3 分类菜单效果
2019/05/27 HTML / CSS
Mavi牛仔裤美国官网:土耳其著名牛仔品牌
2016/09/24 全球购物
荷兰最大的多品牌男装连锁店:Adam Brandstore
2019/12/31 全球购物
.NET常见笔试题集
2012/12/01 面试题
专科毕业生就业推荐信
2013/11/01 职场文书
网络专业学生个人的自我评价
2013/12/16 职场文书
志愿者活动总结报告
2014/06/27 职场文书
敬老院献爱心活动总结
2014/07/08 职场文书
我的中国梦演讲稿小学篇
2014/08/19 职场文书
村委会贫困证明范本
2014/09/17 职场文书
铣工实训报告
2014/11/05 职场文书
Python爬虫进阶之Beautiful Soup库详解
2021/04/29 Python