实现elementui表格的排序

1:给table加上sort-change,给table每一项加上sortable和column-key,排序是根据column-key来进行排序的

<el-table :data="leavelist"
border
v-loading="tableLoading"
@sort-change="sortChange"
style="width: 100%">
<el-table-column
prop="otname"
sortable
column-key="otname"
:label="this.getRes('MyVacation.OverTimeType')"
></el-table-column>
<el-table-column
prop="txtbegindate"
sortable
column-key="begindate"
:label="this.getRes('MyVacation.OverTimeDate')"
></el-table-column>
<el-table-column
prop="num"
sortable
column-key="num"
:label="this.getRes('MyVacation.OverTimeHours')"
>
</el-table-column>
<el-table-column
prop="txtcl"
sortable
column-key="cl"
:label="this.getRes('MyVacation.Transfer')"
>
</el-table-column>
<el-table-column
prop="clhours"
sortable
column-key="clhours"
:label="this.getRes('MyVacation.TransferTime')"
>
</el-table-column>
<el-table-column
prop="txtclexp"
sortable
column-key="clexp"
:label="this.getRes('MyVacation.ExpirationDate')"
>
</el-table-column>
<el-table-column
prop="remark"
sortable
column-key="remark"
:label="this.getRes('MyVacation.Remark')"
>
</el-table-column>
<el-table-column
prop="txtstatus"
sortable
column-key="status"
:label="this.getRes('MyVacation.Status')"
>
</el-table-column>
</el-table>

2,定义sort-change方法

sortChange(column) {
if (column.column != null) {
let orderby = column.column.columnKey;
if (column.order == 'ascending') {
this.order = orderby + ' ' + 'asc';
this.handSearch();
} else if (column.order == 'descending') {
this.order = orderby + ' ' + 'desc';
this.handSearch();
}
} else {
this.order = 'begindate asc';
this.handSearch();
}
},

3,data里定义默认排序方法传入发送请求的位置

 data() {
return {
order: 'begindate asc'
}
},

4,发送请求时,传入order

handSearch() {
this.disabled = true;
this.tableLoading = true;
var me = this;
var serviceParams = {};
if (this.datarange[0] != new Date(new Date().setHours(0, 0, 0, 0) - 2592000000)) {
serviceParams.startdate = this.datarange[0];
} else {
serviceParams.startdate = new Date(new Date().setHours(0, 0, 0, 0) - 2592000000);
}
if (this.datarange[1] != new Date(new Date().setHours(0, 0, 0, 0))) {
serviceParams.enddate = this.datarange[1];
} else {
serviceParams.enddate = new Date(new Date().setHours(0, 0, 0, 0));
}
serviceParams.pageIndex = me.thisPage;
serviceParams.pageSize = me.thisPageSize;
serviceParams.orderBy = this.order;
if (this.overTimeValue) {
serviceParams.otType = this.overTimeValue;
} else {
serviceParams.otType = '';
}
if (this.statusValue) {
serviceParams.status = this.statusValue;
} else {
serviceParams.status = "";
}
var start = me.thisPage;
var limit = me.thisPageSize;
me.invokeService("OverTime", "GetMyOTInfoList", [serviceParams],
function (msg) {
this.disabled = false;
var datalist = msg.ReturnData.$.toJson();
me.total = msg.ReturnData.$.totalCount;
var language = localStorage.getItem("Language");
var arrylist = new Array();
for (var i = 0; i < datalist.length; i++) {
var item = datalist[i];
item["txtbegindate"] = "";
item["txtenddate"] = "";
item["txtunit"] = "";
item["txtattperiod"] = "";
item["txtstatus"] = "";
item["txtclexp"] = "";
item["txtcl"] = "";
if (item.status != "") {
item.txtstatus = this.getRes('MyVacation.' + item.status);
}
if (item.unit != "") {
item.txtunit = this.getRes('unit.' + item.unit);
}
if (item.begindate != "" && item.begindate != undefined) {
item.txtbegindate = item.begindate.dateFormat(me.LocalUser.DateFormat);
}
if (item.enddate != "" && item.enddate != undefined) {
item.txtenddate = item.enddate.dateFormat(me.LocalUser.DateFormat);
}
if (item.attperiod != "" && item.attperiod != undefined) {
if (item.attperiod == null) {
item.txtattperiod = "";
} else {
item.txtattperiod = item.attperiod.dateFormat(me.LocalUser.DateFormat);
}
}
if (item.clexp != "" && item.clexp != undefined) {
item.txtclexp = item.clexp.dateFormat(me.LocalUser.DateFormat);
}
if (item.cl != "" && item.cl != undefined) {
if (item.cl == '1') {
item.txtcl = '√'
} else {}
}
arrylist.push(item);
}
me.leavelist = arrylist;
this.tableLoading = false;
},
function () {
this.disabled = false;
this.tableLoading = false;
}
);
}

效果图:

 
 
 
 

element ui table 表格排序的更多相关文章

  1. vue + element ui table表格二次封装 常用功能

    因为在做后台管理项目的时候用到了大量的表格, 且功能大多相同,因此封装了一些常用的功能, 方便多次复用. 组件封装代码: <template> <el-table :data=&qu ...

  2. Vue+element ui table 导出到excel

    需求: Vue+element UI table下的根据搜索条件导出当前所有数据 参考: https://blog.csdn.net/u010427666/article/details/792081 ...

  3. element ui设置表格表头高度和每一行的高度

    填坑记录:今天用element ui的表格组件做用户信息展示,直接拉取的官网的代码过来,发现表头和每一行都太高了,如下: 因为第一次使用element ui的表格组件,不太清楚会遇到这样的坑,以为能轻 ...

  4. Element UI table组件源码分析

    本文章从如下图所示的最基本的table入手,分析table组件源代码.本人已经对table组件原来的源码进行削减,源码点击这里下载.本文只对重要的代码片段进行讲解,推荐下载代码把项目运行起来,跟着文章 ...

  5. VUE -- 对 Element UI table中数据进行二次处理

    时间——日期 后台经常给我们返回的是 时间戳 (例如:1535620671) 这时候我们页面展现的时候需要将时间戳转换为我们要的格式 例如 (YYYY-MM-DD HH:mm:ss) 如果是在Elem ...

  6. element ui table render-header自定义表头信息使用

    在使用vue自定义组件内容过程之中,我们绝大多数情况下都是通过预先写好不同的html模板,再通过props传入不同的值来渲染不同的模板.例如我们需要实现一个<v-title size='1'&g ...

  7. Element UI table参数中的selectable的使用

    Element UI table参数中的selectable的使用中遇到的坑:页面: <el-table-column :selectable='selectable' type="s ...

  8. element ui table 导出excel表格

    https://blog.csdn.net/u010427666/article/details/79208145 vue2.0 + element UI 中 el-table 数据导出Excel1. ...

  9. element ui table(表格)点击一行展开

    element ui是一个非常不错的vue的UI框架,element对table进行了封装,简化了vue对表格的渲染. element ui表格中有一个功能是展开行,在2.0版本官网例子中,只可以点击 ...

随机推荐

  1. [BUUCTF]REVERSE——xor

    xor 附件 步骤: 附件很小,直接用ida打开,根据检索得到的字符串,找到程序关键函数 程序很简单,一开始让我们输入一个长度为33的字符串给v6,然后v6从第二个字符开始与前一个字符做异或运算,得到 ...

  2. git 基本命令及idea集成使用

    目录 git基本命令使用 设置签名 gitHub 服务配置秘钥 上传代码 更新代码 分支管理 bat脚本更新 idea集成git git基本命令使用 设置签名 签名和秘钥大多数是一起设置的,设置后一般 ...

  3. 十年后回到百年前?(Excel技巧集团)

    在单元格里输入日期,有时可以偷懒,比如明年的日期可以输入至少一位的年+横杠(或斜杠)+至少一位的月+横杠(或斜杠)+至少一位的日,也就是"21-1-1",单元格里就会自动显示&qu ...

  4. 自定义日历(Project)

    <Project2016 企业项目管理实践>张会斌 董方好 编著 日历有三种:标准日历.24小时日历和夜班日历. 但这三种在现实中远远不够用,别的不说,就说那个标准日历,默认是8点到12点 ...

  5. div中出现滚动条,自动保持在最底端---显示聊天窗口最新的信息

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  6. AcWing 466. 回文日期

    题目: 在日常生活中,通过年.月.日这三个要素可以表示出一个唯一确定的日期. 牛牛习惯用 8 位数字表示一个日期,其中,前 4 位代表年份,接下来 2 位代表月份,最后 2 位代表日期. 显然:一个日 ...

  7. Kafka安装Kafka-Eagle可视化界面

    要先安装jdk 可以参考:https://www.cnblogs.com/pxblog/p/10512886.html 下载 http://download.kafka-eagle.org/ 上传到服 ...

  8. 【LeetCode】NO.376 摆动序列 (Python) [贪心算法]

    376. 摆动序列 题目 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 摆动序列 .第一个差(如果存在的话)可能是正数或负数.仅有一个元素或者含两个不等元素的序列也视作摆动序列. 例 ...

  9. 【LeetCode】747. Largest Number At Least Twice of Others 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 寻找两次最大值 排序 大顶堆 日期 题目地址:htt ...

  10. 【LeetCode】886. Possible Bipartition 解题报告(Python)

    [LeetCode]886. Possible Bipartition 解题报告(Python) 作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu ...