antd的Form实例控制表格,表格可收集/回显数据

该文章展示了如何结合antd的Form和Table组件来创建一个可收集和回显数据的表格。通过在表格中嵌套Form.Item组件,实现了特定单元格的数据控制。表格主要用于展示信息,而Form用于数据的输入和管理。
摘要由CSDN通过智能技术生成

大概就是如图的效果,但是需要控制数据的收集和回显

  •  首先看到这个页面,第一眼就想到table表格。但是我翻阅了下antd的Table组件,发现只能展示数据(也有可编辑单元格)。但是我需要这里的表格,可收集可回显。因为平常回显或收集数据,基本都是用到Form组件,所以我就想着直接最外面用Form组件包着,里面写原生的table。这样我只需要给需要控制的地方用Form.Item组件包裹即可

Yszryjl.jsx

  • 这里他们说最上面的table只需要展示数据,所以我就全用readonly禁用了
import React from 'react'
import { Form, Input, Row, Col } from 'antd'
import './Yszryjl.scss'
const { TextArea } = Input

export default function Yszryjl() {
  return (
    <div className="Yszryjl">
      <Form autoComplete="off">
        <div>
          <h3 style={{ textAlign: 'center', fontSize: 28, fontWeight: 600 }}>
            入院记录
          </h3>
          <table className="showTable">
            <tbody>
              <tr>
                <td>姓名</td>
                <td>
                  <Form.Item name="xm">
                    <Input bordered={false} readOnly />
                  </Form.Item>
                </td>
                <td>性别</td>
                <td>
                  <Form.Item name="xb">
                    <Input bordered={false} readOnly />
                  </Form.Item>
                </td>
                <td>年龄</td>
                <td>
                  <Form.Item name="nl">
                    <Input bordered={false} readOnly />
                  </Form.Item>
                </td>
                <td>籍贯</td>
                <td>
                  <Form.Item name="jg">
                    <Input bordered={false} readOnly />
                  </Form.Item>
                </td>
              </tr>
              <tr>
                <td>职业</td>
                <td>
                  <Form.Item name="xm">
                    <Input bordered={false} readOnly />
                  </Form.Item>
                </td>
                <td>婚姻</td>
                <td>
                  <Form.Item name="xb">
                    <Input bordered={false} readOnly />
                  </Form.Item>
                </td>
                <td>民族</td>
                <td>
                  <Form.Item name="nl">
                    <Input bordered={false} readOnly />
                  </Form.Item>
                </td>
                <td>入院时间</td>
                <td>
                  <Form.Item name="jg">
                    <Input bordered={false} readOnly />
                  </Form.Item>
                </td>
              </tr>
              <tr>
                <td>现住址</td>
                <td colSpan={3}>
                  <Form.Item name="xzz">
                    <Input bordered={false} readOnly />
                  </Form.Item>
                </td>
                <td>入院次数</td>
                <td colSpan={3}>
                  <Form.Item name="rycs">
                    <Input bordered={false} readOnly />
                  </Form.Item>
                </td>
              </tr>
              <tr>
                <td>联系人姓名</td>
                <td>
                  <Form.Item name="lxrxm">
                    <Input bordered={false} readOnly />
                  </Form.Item>
                </td>
                <td colSpan={2}>与患者关系</td>
                <td colSpan={2}>
                  <Form.Item name="yhzgx">
                    <Input bordered={false} readOnly />
                  </Form.Item>
                </td>
                <td>病例陈述者</td>
                <td>
                  <Form.Item name="blcsz">
                    <Input bordered={false} readOnly />
                  </Form.Item>
                </td>
              </tr>
              <tr>
                <td>联系人住址</td>
                <td colSpan={3}>
                  <Form.Item name="lxrzz">
                    <Input bordered={false} readOnly />
                  </Form.Item>
                </td>
                <td>电话</td>
                <td>
                  <Form.Item name="dh">
                    <Input bordered={false} readOnly />
                  </Form.Item>
                </td>
                <td>邮编</td>
                <td>
                  <Form.Item name="yb">
                    <Input bordered={false} readOnly />
                  </Form.Item>
                </td>
              </tr>
            </tbody>
          </table>
        </div>
        <br />
        <div>
          <Form.Item name="zs" label="&nbsp;&nbsp;主 诉">
            <TextArea
              rows={1}
              bordered={false}
              style={{
                borderLeft: '1px solid #000',
                borderRight: '1px solid #000',
              }}
            ></TextArea>
          </Form.Item>
          <br />
          <Form.Item name="xbs" label="现病史">
            <TextArea
              rows={1}
              bordered={false}
              style={{
                borderLeft: '1px solid #000',
                borderRight: '1px solid #000',
              }}
            ></TextArea>
          </Form.Item>
          <br />
          <Form.Item name="jws" label="既往史">
            <TextArea
              rows={1}
              bordered={false}
              style={{
                borderLeft: '1px solid #000',
                borderRight: '1px solid #000',
              }}
            ></TextArea>
          </Form.Item>
          <br />
          <Form.Item name="grs" label="个人史">
            <TextArea
              rows={1}
              bordered={false}
              style={{
                borderLeft: '1px solid #000',
                borderRight: '1px solid #000',
              }}
            ></TextArea>
          </Form.Item>
          <br />
          <Form.Item name="hys" label="婚姻史">
            <TextArea
              rows={1}
              bordered={false}
              style={{
                borderLeft: '1px solid #000',
                borderRight: '1px solid #000',
              }}
            ></TextArea>
          </Form.Item>
          <br />
          <Form.Item name="jzs" label="家族史">
            <TextArea
              rows={1}
              bordered={false}
              style={{
                borderLeft: '1px solid #000',
                borderRight: '1px solid #000',
              }}
            ></TextArea>
          </Form.Item>
        </div>
      </Form>
    </div>
  )
}

 Yszryjl.scss

.Yszryjl {
  width: 973px;

  // table合并单元格
  .showTable {
    border-collapse: collapse;
  }

  .showTable,
  tr,
  td {
    border: 1px solid #000;
  }

  td {
    text-align: center;
    white-space: nowrap;
  }

  .ant-form-item {
    margin: 0 !important;
  }
}

剩下的就是通过Form组件实例,进行数据的收集和回显了。前面的文章有提到怎么用Form收集和回显数据,有需要的可以看一下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值