vue table表格每列按 数字/字母 顺序排序

需求:点击每列表头的上下箭头,当前列可进行升降排序

 

    <table
      :data="equipData"
      class="main-table"
      :sort-order.sync="orderData"
    >
      <table-column
        prop="deviceId"
        sortable
        :sort-method="sort"
        label="设备ID"
        min-width="100"
        fixed="left"
      >
        <template scope="scope">
          <span class="span-label" :title="scope.row.deviceId">{{
            scope.row.deviceId | deviceId
          }}</span>
        </template>
      </table-column>
  
      <table-column
        prop="appId"
        label="从属项目"
        min-width="100"
        sortable
        :sort-method="appid"
      >
      </table-column>
    </table>

// 设备ID
const sort =  (row1, row2) => {
    if(row1.deviceId > row2.deviceId ){
      return 1
    }else{
      return -1
    }
}

// 从属项目
const appid = (str1, str2) => {
    let res = 0
    for (let i = 0; ;i++) {
              if (!str1.appId[i] || !str2.appId[i]) {
        res = str1.length - str2.length
        break
              }
              const char1 = str1.appId[i]
              const char1Type = this.getChartType(char1)
              const char2 = str2.appId[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
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值