vue3 ts table合计样式更改

table合计代码


          <el-table
            show-summary
            :summary-method="summary"
            :cell-style="cellStyle"
          >
         </el-table>
         

// 引入   ,因为返回不能是VNode,所以需要引入h函数
import {h} from "vue";


// 方法  (计算和官方写法一致),除了返回的时候有区分
    function summary(param: any) {
      const { columns, data } = param;

      const sums = [] as any ;
      columns.forEach((column: any, index: any) => {
        if (index === 0) {
          sums[index] = `合计(${
            state.baseInfoForPort.exchange == "CN"
              ? "元"
              : state.baseInfoForPort.exchange == "HK"
              ? "港币"
             : "美元"
         }`;
        return;
        }
        const values = data.map((item: any) => Number(item[column.property]));
        // 针对某列做合计
        if (
          column.property == "preMarketValue" ||
          column.property == "finalMarketValue"
        ) {
          if (!values.every((value: any) => Number.isNaN(value))) {
            sums[index] = `${values.reduce((prev: any, curr: any) => {
              const value = Number(curr);
              if (!Number.isNaN(value)) {
                return prev + curr;
              } else {
                return prev;
              }
            }, 0)}`;
          }
          // 样式更改在这里, 负数显示绿色,正数显示红色
          if(Number(sums[index])>0){
          sums[index] = h('span',{style:'color:#f56c6c'},format(Number(Number(sums[index]).toFixed(2))))
          }else
          sums[index] = h('span',{style:'color:#19BE3C'},format(Number(Number(sums[index]).toFixed(2))))
        } else {
          sums[index] = " ";
        }
      });

      return sums;
    }
 `

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值