【Vue3系列】vue3过滤器功能

1. computed

    computed: {
      computedStatus() {
        // 计算属性要return一个函数接收参数
        return function (state) {
          switch (state) {
            case 1:
              return '待支付';
              break;
            case 2:
              return '待签署合同';
              break;
            case 3:
              return '待发货';
              break;
            case 4:
              return '运输中';
              break;
            case 5:
              return '已完成';
              break;
            case 6:
              return '已取消';
              break;
            default:
              return '其他';
              break;
          }
        };
      },
    },

2. TSX写法

customRender: ({ record }) => {
        const arr = ['待支付', '待签署合同', '待发货', '运输中', '已完成', '已取消'];
        const arrStatus = ['default', 'processing', 'success', 'error', 'warning', 'default'];
        return <Badge status={arrStatus[record.status - 1]} text={arr[record.status - 1]} />;
      },
customRender: ({ record }) => {
      const status = record.is_show;
      const enable = ~~status === 1;
      const color = enable ? 'green' : 'red';
      const text = enable ? '启用' : '停用';
      return h(Tag, { color: color }, () => text);
    },
 customRender: ({ text }) => {
        const color =
          text === ErrorTypeEnum.VUE
            ? 'green'
            : text === ErrorTypeEnum.RESOURCE
            ? 'cyan'
            : text === ErrorTypeEnum.PROMISE
            ? 'blue'
            : ErrorTypeEnum.AJAX
            ? 'red'
            : 'purple';
        return <Tag color={color}>{() => text}</Tag>;
      },
customRender: ({ record }) => {
        if (!Reflect.has(record, 'pendingStatus')) {
          record.pendingStatus = false;
        }
        return h(Switch, {
          checked: record.is_show === 2,
          checkedChildren: '已启用',
          unCheckedChildren: '已禁用',
          loading: record.pendingStatus,
          async onChange(checked: boolean) {
            record.pendingStatus = true;
            const newStatus = checked ? 2 : 1;
            const { createMessage } = useMessage();
            try {
              const params = {
                id: record.id,
                is_show: newStatus,
              };
              await editVersion(params);
              createMessage.success(`已成功修改状态`);
              record.is_show = newStatus;
              reload();
            } finally {
              record.pendingStatus = false;
            }
          },
        });
      },
 render: (val: number) => {
      const arr = ['未知', '男', '女'];
      return arr[val];
    },
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不停喝水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值