解决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 相关文章推荐
JS 继承实例分析
Nov 04 Javascript
JavaScript学习笔记(十七)js 优化
Feb 04 Javascript
js浮动图片的动态效果
Jul 10 Javascript
IE下window.onresize 多次调用与死循环bug处理方法介绍
Nov 12 Javascript
jquery.ajax的url中传递中文乱码问题的解决方法
Feb 07 Javascript
JavaScript实现自动弹出窗口并自动关闭窗口的方法
Aug 06 Javascript
JS创建事件的三种方法(实例代码)
May 12 Javascript
原生js实现弹出层效果
Jan 20 Javascript
BootStrap Fileinput上传插件使用实例代码
Jul 28 Javascript
Vue.js 十五分钟入门图文教程
Sep 12 Javascript
Vue模板语法中数据绑定的实例代码
May 17 Javascript
解决vue admin element noCache设置无效的问题
Nov 12 Javascript
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
十天学会php之第一天
2006/10/09 PHP
PHP处理Oracle的CLOB实例
2014/11/03 PHP
php调用新浪短链接API的方法
2014/11/08 PHP
php实现爬取和分析知乎用户数据
2016/01/26 PHP
用php和jQuery来实现“顶”和“踩”的投票功能
2016/10/13 PHP
微信公众平台开发教程④ ThinkPHP框架下微信支付功能图文详解
2019/04/10 PHP
JS操作XML中DTD介绍及使用方法分析
2019/07/04 PHP
JavaScript iframe的相互操作浅析
2009/10/14 Javascript
js 与或运算符 || &amp;&amp; 妙用
2009/12/09 Javascript
Extjs中ComboBox加载并赋初值的实现方法
2012/03/22 Javascript
浅谈Javascript鼠标和滚轮事件
2012/06/27 Javascript
Jquery ajax执行顺序 返回自定义错误信息(实例讲解)
2013/11/06 Javascript
js设置组合快捷键/tabindex功能的方法
2013/11/21 Javascript
页面刷新时记住滚动条的位置jquery代码
2014/06/17 Javascript
使用不同的方法结合/合并两个JS数组
2014/09/18 Javascript
js实现新浪微博首页效果
2015/10/16 Javascript
JS实现六位字符密码输入器功能
2016/08/19 Javascript
Angularjs手动解析表达式($parse)
2016/10/12 Javascript
微信小程序-小说阅读小程序实例(demo)
2017/01/12 Javascript
VsCode新建VueJs项目的详细步骤
2017/09/23 Javascript
Vue2.0点击切换类名改变样式的方法
2018/08/22 Javascript
vue使用Google地图的实现示例代码
2018/12/19 Javascript
[04:29]DOTA2亚洲邀请赛小组赛第一日 TOP10精彩集锦
2015/02/01 DOTA
Python的requests网络编程包使用教程
2016/07/11 Python
对Python3之方法的覆盖与super函数详解
2019/06/26 Python
css3动画鼠标放上图片逐渐变大鼠标离开图片逐渐缩小效果
2021/01/27 HTML / CSS
请问如下代码执行后a和b的值分别是什么
2016/05/05 面试题
电气自动化大学生求职信
2013/10/16 职场文书
信息部岗位职责
2013/11/12 职场文书
《分一分》教学反思
2014/04/13 职场文书
爱我中华教学反思
2014/04/28 职场文书
员工生日活动方案
2014/08/24 职场文书
新郎新娘答谢词
2015/01/04 职场文书
工程部主管岗位职责
2015/02/12 职场文书
五四青年节比赛演讲稿
2015/03/18 职场文书
新员工入职感想
2015/08/07 职场文书