从零实现一套低代码(保姆级教程) --- 【8】补充数据录入组件,并实现分组

news2024/11/17 17:43:40

摘要

目前,我们实现的这一套低代码已经具备基本的功能了。从组件,到画布区,再到可视化的属性配置。就是我们这套低代码现在组件有点少,只有三个组件。

在这里插入图片描述
其实如果这三个组件,你已经实现了。那么如果你想根据antD新增其他组件,也不会是一件困难的事情了。所以,后面我不会用文章来讲解组件的添加了(除非有一些复杂的组件,例如Upload组件)。

如果你是第一次看到这一篇文章, 建议先看一下第一节内容:
从零实现一套低代码(保姆级教程) — 【1】初始化项目,实现左侧组件列表

这一篇文章,主要是来实现一些其他的组件,主要是数据录入组件为主。什么是数据录入组件,像文本框,数字框,评分,下拉框这种,让用户输入的组件,我们叫他数据录入组件。

而这一篇,我们主要是补充这些组件,当然,主要还是要看github的提交,我不会用大篇幅的段落去贴相关的代码。

现在我们开始吧!
在这里插入图片描述

1.实现Checkbox多选框

第一步肯定是打开antD官网

https://ant-design.antgroup.com/components/checkbox-cn

查询API和使用方式:

在这里插入图片描述

对于checkbox来说,只需要照着button是怎么实现的,完全拷贝,修修改改就能实现,不需要额外的操作。

相关的代码提交在github上:
https://github.com/TeacherXin/XinBuilder2
commit: 第八节: 实现checkbox组件

我这里也只实现了多选框的两个属性:

在这里插入图片描述

2.实现Radio单选框

在antD官网中,你会发现它的属性文档和checkbox基本一致:

在这里插入图片描述

所以我们直接和checkbox一样一样的复制一遍,只不过把组件的名称和图标换掉即可。

在这里插入图片描述

相关的代码提交在github上:
https://github.com/TeacherXin/XinBuilder2
commit: 第八节: 实现radio组件

3.实现Rate评分组件

继续在antD官网中,找到评分组件,可以看到它的属性还是比较多的。但是都不难,都是可以通过开关或者输入框进行控制的。

在这里插入图片描述

那我们依旧直接照着之前写的,再写一个组件。

在这里插入图片描述

相关的代码提交在github上:
https://github.com/TeacherXin/XinBuilder2
commit: 第八节: 实现rate组件

4.实现Switch开关组件

在这里插入图片描述

在文档中,这些属性和之前的也差不多,不多说了,照着实现。

相关的代码提交在github上:
https://github.com/TeacherXin/XinBuilder2
commit: 第八节: 实现switch组件

5.实现组件分组

针对于上面的组件,我们可以给它进行分组。
对于数据录入组件,我们给它放在一起,其他组件放在另一个分组。

所以我们的左侧面板,展示的应该是一个折叠面板。

现在我们修改一下我们的leftPart文件:

对于renderComponent方法,不能返回全部的组件,根据入参(组件列表)返回对应的组件。

// 引入折叠面板组件
import type { CollapseProps } from 'antd';
import { Collapse } from 'antd';

export default function LeftCom() {

  // 修改renderComponent方法
  const renderComponent = (comTypeList: string[]) => {
    const list = Object.keys(components).filter(item => comTypeList.includes(item))
    return <div className="componetGroup">
      {
        list.map(name => {
          const Icon = componentIconMap[name]
          const text = componentTextMap[name]
          return <div key={name} className='componentItem'>
            <div onDragStart={onDragStart(name)} draggable style={{display: 'inline-block'}}><Icon style={{marginRight:'10px'}} /><span>{text}</span></div>
          </div>
        })
      }
    </div>
  }

  // 每个折叠面板下,根据不同的组件列表类型,展示不同的组件
  const collapseItems: CollapseProps['items'] = [
    {
      key: 'enterDataCom',
      label: '数据录入组件',
      children: renderComponent(['Input','Checkbox','Radio','Rate','Switch']),
    },
    {
      key: 'otherCom',
      label: '其他组件',
      children: renderComponent(['Button','Icon']),
    }
  ];

  const items: TabsProps['items'] = [
    {
      key: 'component',
      label: <div style={{fontSize:'18px',width:'100px',textAlign:'center'}}>组件</div>,
      children: <Collapse className='comCollapse' items={collapseItems} defaultActiveKey={'enterDataCom'}/>,
    }
  ];
}

现在我们的分组做完之后,我们的平台就更加完善了!!!!

在这里插入图片描述

相关的代码提交在github上:
https://github.com/TeacherXin/XinBuilder2
commit: 第八节: 实现组件的分组

6.博主补充

如果大家对其他的组件比较感兴趣,那么可以继续实现,因为我也只是挑了一部分数据录入组件,进行实现。

这里我提两点,有两个组件是我们在后面会实现的。目前先不实现

第一个是Select下拉框组件,因为这个组件有一个下拉的动作,阻止了拖拽的效果。这个如果你有兴趣实现的话,应该会发现这个问题。
那到后面,有了运行时后,我们才会实现这个组件。

第二个事Upload组件,因为它要依靠后端实现,所以我们需要等后面将服务端的代码完善后,再实现这个组件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1338754.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

建议收藏!上位机编程学习经验分享

家好&#xff0c;我是卢工&#xff0c;今年6月毕业。 在网上看到朱老师的课程&#xff0c;经过多方面了解&#xff0c;决定报名线上全套课程&#xff0c;后来由于线上自制力不够&#xff0c;效果甚微&#xff0c;我决定线下学习&#xff0c;经过三个月系统学习&#xff0c;我成…

人工智能:网络犯罪分子的驱动力

随着 2024 年的临近&#xff0c;是时候展望今年的网络安全状况了。由于网络犯罪日益复杂&#xff0c;预计到 2025 年&#xff0c;全球网络安全成本将增至 10.5 万亿美元。 人工智能的使用不断发展&#xff0c;网络犯罪分子变得越来越有创造力 我们注意到&#xff0c;联邦调查…

改进YOLO系列 | YOLOv5/v7 引入高效的混合特征编码器 AIFI

论文地址:https://arxiv.org/abs/2304.08069 代码地址:https://github.com/PaddlePaddle/PaddleDetection 中文翻译:https://blog.csdn.net/weixin_43694096/article/details/131353118 注意!这个模块需要 torch>=1.9 才能使用 源代码 import torch import torch.nn …

Tomcat启动流程分析

通过前面的学习&#xff0c;相信已经对Tomcat这个容器已经有了自己的一些认知&#xff0c;接下来的话我们将会一起来进行探讨Tomcat的架构设计和目录解析。 一、Tomcat目录解析 /bin 启动、关闭和其他脚本/conf 配置文件和相关DTD。比较重要的是server.xml&#xff0c;这里面…

Python测试框架pytest核心库pluggy详解

代码案例 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 37 38 39 40 41 42 43 44 45 46 import pluggy # HookspecMarker 和 HookimplMarker 实质上是一个装饰器带参数的装饰器类&#xff0c;作用是给函数增加额外的…

SCA在 得物 DevSecOps 平台上应用

SCA在 得物 DevSecOps 平台上应用。 ############################# 免责声明:工具本身并无好坏,希望大家以遵守《网络安全法》相关法律为前提来使用该工具,支持研究学习,切勿用于非法犯罪活动,对于恶意使用该工具造成的损失,和本人及开发者无关。 ###################…

CAD objectArx 在操作mfc时出现“不支持尝试执行的操作“

问题原因&#xff1a; ARX中对话框通常继承自CAcUiDialog&#xff0c;CAcUiDialog 构造函数有个参数 HINSTANCE hInstance&#xff0c;默认为 NULL&#xff0c;指定了对话框资源所在DLL进程。如果没有指定该参数&#xff0c;在创建对话框&#xff08;DoModal或Create&#xff…

超维空间S2无人机使用说明书——42、使用3维雷达进行室内定位——实物篇

引言&#xff1a;为了提高无人机室内定位的稳定性和多种定位方案&#xff0c;S系列无人机推出了基于三维雷达激光点云数据的定位方案。该方案的提出是为了改善视觉定位容易受到光照等影响导致的位置漂移。 简介 定位采用fast-lio定位算法&#xff0c;通过修改源码直接发布定位…

MySQL数据库——多表查询

1. 概述 MySQL中的多表查询是指在一个查询中同时使用两个或多个表&#xff0c;通过某种关系将它们连接起来&#xff0c;以检索所需的数据。多表查询在数据库操作中非常常见&#xff0c;尤其是在处理复杂的数据关系时。 简单讲就是&#xff1a;多表查询是指从多个表中检索数据…

HPM6750开发笔记《第一个helloworld例程》

HPM_SDK的使用&#xff1a; HPM_SDK界面如下图 此处选择所支持的5款evk大家根据自己的板子选 此处选择想看的例程工程 此处可选择生成工程的类型 其中debug工程是在纯RAM中运行的&#xff0c;板子掉电后代码会被删除&#xff0c;用来测试比较合适 其中挂flash的工程有两种其中…

【Java基础系列】equals方法使用与总结

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

加速布局!美格智能获国内某自主大厂智能座舱项目模组定点

近日&#xff0c;销售前线又传来重大好消息&#xff0c;美格智能座舱模组正式获得国内某自主大厂前装智能座舱项目定点。此次项目由主机厂直接定点模组&#xff0c;基于美格智能座舱模组SLM925来打造平台化智能座舱解决方案&#xff0c;同时此方案也将会应用于该汽车品牌及旗下…

【JavaWeb学习笔记】15 - jQuery

项目代码 https://github.com/yinhai1114/JavaWeb_LearningCode/tree/main/jquery 目录 零、官方文档 一、jQuery基本介绍 1.基本介绍 2.原理图 二、JQuery入门使用 1.下载JQuery 2.jQuery快速入门 三、jQuery对象 1.什么是jQuery对象? 2.DOM对象转换成jQuery对象 …

数据结构与算法(C语言版)P11——查找

1、查找的基本概念 从着一章节开始学习查找&#xff0c; 查找时属于数据的运算里面的知识。 数据的元素包括&#xff1a;查找、排序、插入、删除、修改等。 问题一&#xff1a;那里查找&#xff1f; 首先要清楚&#xff0c;是在哪里进行查找操作&#xff1f;是在线性表中找…

【Redis】七、Redis主从复制(重点)

文章目录 1、概念1.1、主从复制的作用主要包括1.2、一般来说&#xff0c;要将Redis运用于工程项目中&#xff0c;只使用一台Redis是万万不能的&#xff08;宕机&#xff09;&#xff0c;原因如下 2、环境配置2.1、复制拷贝3个配置文件&#xff0c;然后修改对应的信息拷贝文件改…

2024,智能汽车走出独立曲线

文&#xff5c;刘俊宏 新能源汽车正在带领中国车市走向新的高峰。 在2023年&#xff0c;新能源汽车的增速显著超越整体车市。据中汽协预测&#xff0c;2023年&#xff0c;汽车总销量有望突破3000万辆&#xff0c;同比增长11.7%。其中&#xff0c;乘用车预计达到2600万辆&…

《软件需求分析报告》

第1章 序言 第2章 引言 2.1 项目概述 2.2 编写目的 2.3 文档约定 2.4 预期读者及阅读建议 第3章 技术要求 3.1 软件开发要求 第4章 项目建设内容 第5章 系统安全需求 5.1 物理设计安全 5.2 系统安全设计 5.3 网络安全设计 5.4 应用安全设计 5.5 对用户安全管理 …

SpringBoot3 应用分析

SpringBoot3-快速入门 1、简介 1. 前置知识 Java17Spring、SpringMVC、MyBatisMaven、IDEA 2. 环境要求 环境&工具版本&#xff08;or later&#xff09;SpringBoot3.0.5IDEA2021.2.1Java17Maven3.5Tomcat10.0Servlet5.0GraalVM Community22.3Native Build Tools0.9.1…

免费IDEA插件,Apipost出品!

IDEA插件市场中的API调试插件不是收费&#xff08;Fast Request &#xff09;就是不好用&#xff08;apidoc、apidocx等等&#xff09;今天给大家介绍一款国产的API调试插件&#xff1a;Apipost-Helper&#xff0c;完全免费且好看好用&#xff01; 这款插件由Apipost团队开发的…

12.26ARM作业

三个按键中断&#xff0c;控制对应灯亮灭 main.c #include "key_it.h"void delay(int ms){int i,j;for(i0;i<ms;i){for(j0;j<2000;j);}}int main(){all_led_init();key1_it_config();key2_it_config();key3_it_config();while(1){printf("do main...\n&…