动态获取查询条件和table展示区字段 typeScript

背景:
动态获取菜单栏信息,每个item对应不同的formCode。formCode改变时,请求接口获得动态查询条件。以下图为例,点击考勤-请假Item后,请求得到的搜索项为“归档日期”、“单选项”。【查询】后,得到table的表头和table数据。
在这里插入图片描述
搜索区动态搜索条件的数据结构:
在这里插入图片描述
对应代码实现:

{/* 动态搜索条件 */}
            <Row gutter={24}>
              {dynamicDomData &&
                dynamicDomData.map((item, index) => {
                  return (
                    <Col span={12} key={index}>
                      <FormItem label={item.name}>
                        {getFieldDecorator(`${item.selectType}`)(
                          <Select mode="multiple" placeholder="请选择" onChange={value => this.dynamicSelectChange(value, item.selectType)}>
                            {item.value &&
                              item.value.map((option: TselectTypeItemDTO) => {
                                return (
                                  <Option key={option.key} value={option.key}>
                                    {option.name}
                                  </Option>
                                );
                              })}
                          </Select>,
                        )}
                      </FormItem>
                    </Col>
                  );
                })}
            </Row>

在这里插入图片描述

关于动态查询条件取值的获取
1.获取到动态搜素条件字段后,将data拼装成对象数组[{
key:select框取值,
selectType:字段名,
}]
在这里插入图片描述

table数据展示区
服务端会给出table 表头字段和数据栏。其数据结构为:
table表头数据
在这里插入图片描述
数据处理:
在这里插入图片描述

 getColumns = (tableHead: TtableHead[]) => {
    const testColumns: ColumnProps<Array<any>>[] = tableHead.map((item, index) => {
      return {
        title: item.headName,
        dataIndex: item.orderFile,
        // 倒序 降序 1: 升序
        sorter: !item.orderFile ? false : true,
        // render: (_: any, record: Array<any>) => record[index],
        render: (_: any, record: Array<any>) => <span className='width-limit' title={record[index]}>{record[index]}</span>,
      };
    });
    this.setState({
      columns: testColumns,
    });
  };

数据展示部分:
在这里插入图片描述
接口将每行要展示的所有数据放在了一个数组中。table表格要展示的数据存放在一个二维数组中。其数据展示逻辑为:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值