以下是使用 JavaScript React Antd 编写的表单,表单由折叠面板包裹,包含名称、描述、语法、OID、允许修改属性和单值属性参数:

import React, { useState } from 'react';
import { Collapse, Input, Switch, Button, Form } from 'antd';
import { DeleteOutlined, EditOutlined } from '@ant-design/icons';

const FormItem = Form.Item;

const MyForm = () => {
  const [editable, setEditable] = useState(false);

  const handleEdit = () => {
    setEditable(true);
  };

  const handleDelete = () => {
    // TODO: Delete the form item
  };

  const handleSave = (values) => {
    // TODO: Save the form item
    setEditable(false);
  };

  return (
    <Form onFinish={handleSave}>
      <Collapse defaultActiveKey={['1']}>
        <Collapse.Panel header='表单' key='1'>
          <FormItem label='名称' name='name'>
            <Input disabled={!editable} />
          </FormItem>
          <FormItem label='描述' name='description'>
            <Input disabled={!editable} />
          </FormItem>
          <FormItem label='语法' name='syntax'>
            <Input disabled={!editable} />
          </FormItem>
          <FormItem label='OID' name='oid'>
            <Input disabled={!editable} />
          </FormItem>
          <FormItem label='允许修改属性' name='allowEdit'>
            <Switch disabled={!editable} />
          </FormItem>
          <FormItem label='单值属性' name='singleValue'>
            <Switch disabled={!editable} />
          </FormItem>
          <div style={{ display: 'flex', justifyContent: 'flex-end' }}>
            <Button
              type='primary'
              htmlType='submit'
              style={{ marginRight: 16 }}
              disabled={!editable}
            >
              保存
            </Button>
            {editable ? (
              <>
                <Button
                  icon={<DeleteOutlined />}
                  onClick={handleDelete}
                  style={{ marginRight: 8 }}
                >
                  删除
                </Button>
                <Button icon={<EditOutlined />} onClick={handleEdit}>
                  编辑
                </Button>
              </>
            ) : (
              <Button icon={<EditOutlined />} onClick={handleEdit}>
                查看
              </Button>
            )}
          </div>
        </Collapse.Panel>
      </Collapse>
    </Form>
  );
};

export default MyForm;

在上述代码中,我们使用了 Collapse 组件来包裹整个表单,其中 FormItem 组件用于渲染每个表单项,包含一个 label 和一个 InputSwitch。我们还添加了三个按钮:保存、删除和编辑/查看,其中删除和编辑按钮在编辑模式下显示,查看模式下只显示编辑按钮。我们还使用了 useState 钩子来管理表单的可编辑状态。

React Antd 表单组件:使用 Collapse 包裹并实现编辑和删除功能

原文地址: https://www.cveoy.top/t/topic/m9fN 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录