• ant-design-pro的可编辑表格editprotable的遇到的一些小问题


    需求:1、使用可编辑表格实现对某一行表格的数据进行编辑,对输入内容控制必须低于同行某一数据
    2、解决搜索数据和列名展示不同,和不可编辑的列不展示在搜索框
    实现效果
    在这里插入图片描述

    解决搜索和readonly之间的问题

    因为本次需求只要求修改一个数据,其他都需要使用readonly:true

    但是我用的时候出现了一个问题,如果使用了readonly:true,那么这个参数显示在搜索参数中就会变成一条横线,无法搜索,所以对于一些参数,比如我的需求是,虽然不可编辑,但是需要有搜索功能。所以我是写了两个关于这个参数的设置。

    例如我的姓名,它需要显示在搜索框,但是又不能编辑,但是加了readonly搜索框就会变成——一个横线,所以这时候就需要写两个,加了readonly的则加上hideInSearch: true,再写一个关于姓名的,不加readonly,但是加上 hideInTable:true
    以下供参考

    const displayCol2: ProColumns<MaterialDisplay>[] = [
        {
            dataIndex: 'index',
            valueType: 'indexBorder',
            width: 48,
            readonly: true,
    
        },
        {
            title: '姓名',
            dataIndex: 'staffName',
            hideInTable:true,
        },
        {
            title: '姓名',
            dataIndex: 'staffName',
            readonly: true,
            hideInSearch: true,
        },
    
    //时间的筛选转换参考
        {
            title: '创建时间',
            dataIndex: 'accpetDate',
            valueType: 'dateRange',
            hideInTable: true,
            search: {
                transform: (value) => {
                    return {
                        startTime: value[0],
                        endTime: value[1],
                    };
                },
            },
        }
      ];
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36

    2、使用validator解决输入数据校验为必须比同行数据小

    网上搜了好多关于validator的使用,但是一直没找到怎么获取同行数据做校验。
    在配置列中,使用 formItemProps
    使用箭头函数获取编辑行的数据

    {
            title: '回单数量',
            dataIndex: 'num',
            hideInSearch: true,
            formItemProps: (_, record) => {
                return {
                    rules: [
                        {
                          required: true,
                          message: '请输入数量',
                        },
                        // 校验输入数量
                        {
                            message: '请输入正确的数量', 
                            validator: async (_, value: number,) => {
                                console.log(_, value);
                                if(value > record.entity.oldNum || value<0) {
                                  return Promise.reject("输入数量小于物料库存")
                                }
                            }
                        }
                        
                      ],
                }
            },
        },
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
  • 相关阅读:
    蓝桥杯练习
    Java多线程:线程的生命周期的六种状态
    npm指令运行太慢的解决方案
    微信小程序开发之会议oa(首页搭建)
    一文了解tcp/ip协议的运行原理
    对基本类型-整型数据结构的认识
    关于 provide、inject 在Vue3中的用法
    攻克视频技术
    美国信用卡返现率优化到3%-5%,AI优化算法的应用
    pytorch+LSTM实现使用单参数预测,以及多参数预测(代码注释版)
  • 原文地址:https://blog.csdn.net/qq_44179024/article/details/133386773