elementUi自定义排序问题

做项目过程中需要第一行**合计不参与排序**,保持固定,以下是**整数类型**排序和**浮点数**类型排序,包括**带单位的%**利率类的问题进行排序代码。

HTML代码

 <div class="table" ref="table">
          <Table
            border
            :columns="columns1"
            :data="data1"
            :default-sort="{ prop: 'count', order: 'descending' }"
            :max-height="tableHeight"
            class="table-css ivu-table-tip-left"
          ></Table>
        </div>

js代码

	**//这是表格数据data**
    filterData(data) {
      this.data1 = [];
      if (data && data.length > 0) {
        data.map((item, index) => {
          this.data1.push({
            spinstlevel: item.spinstlevel,
			 //整数类,合计设为字符串类型,不参与排序
            count: index == 0 ? String(item.count) : Number(item.count),
            //金额类,合计设为字符串类型,不参与排序
            opsumRMB:
              index == 0
                ? new String(item.opsumRMB)
                : parseFloat(item.opsumRMB).toFixed(2),

            loansumRMB: item.loansumRMB,
            notLoansumRMB: item.notLoansumRMB,
            //百分数,new 字符串对象进行标记处理
            loansumRate: new String(item.loansumRate),    
          });

          if (index == 0) {
            this.data1[0].opsumRMB.type = "合计";
            this.data1[0].loansumRate.type = "合计";
          }
        });
        console.log(this.data1);
      }
    },



//data里面的数据对表格数据进行填充
columns1: [
 {
          sortable: true,
          title: "用率",
          key: "loansumRate",
          //带单位的排序
          sortMethod: (a, b, type) => {
            if (a.type == "合计" || b.type == "合计") {
              return 0;
            } else {
              if (type == "asc") {
                return Number(a.substring(0, a.length - 1)) >
                  Number(b.substring(0, b.length - 1))
                  ? -1
                  : 1;
              } else {
                return Number(a.substring(0, a.length - 1)) <
                  Number(b.substring(0, b.length - 1))
                  ? -1
                  : 1;
              }
            }
          },
	//浮点类排序	
  sortMethod: function (a, b, type) {
            if (a.type == "合计" || b.type == "合计") {
              return 0;
            } else {
              a = parseFloat(a);
              b = parseFloat(b);

              if (type == "asc") {
                return parseFloat(a) > parseFloat(b) ? -1 : 1;
              } else {
                return parseFloat(a) < parseFloat(b) ? -1 : 1;
              }
            }
          },
          // width: fontSize(this.table_single_width)
        },
        //整数类
           sortMethod: (a, b, type) => {
            if (typeof a == "string" || typeof b == "string") {
              return 0;
            } else {
              if (type == "asc") {
                return Number(a) > Number(b) ? -1 : 1;
              } else {
                return a < b ? -1 : 1;
              }
            }
          },
//三个里面选择自己想要的一个函数就行了,不要全部搞上去,否则,死定了。
]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值