泛积木-低代码 搭建 增删改查

news2024/11/18 6:02:59

文章首发于 增删改查 。

这里我们以增删改查作为示例,演示下从页面创建到各个功能齐全。创建页面的时候,建议接口先写好,当然也可以一边联调一边写接口,当前对增删改查提供以下测试接口:

测试接口

/contactsList 列表接口

可选参数 name, phone, page, perPage ,返回数据 { data: { rows: [], count: 1 }, status: 0 }

/contactsList/add 新增接口

必填参数 name, phone, address, cityInfo, 返回数据 { msg: '新增成功', status: 0 }

/contactsList/update 更新接口

必填参数 id, name, phone, address, newCityInfo, 返回数据 { msg: '更新成功', status: 0 }

/contactsList/delete 删除接口

必填参数 id, 返回数据 { msg: '删除成功', status: 0 }

页面创建

首先进入编辑页面,我们点击 菜单编辑 的右侧 按钮:

+ 菜单

菜单配置如下:

菜单配置

然后在 演示示例 菜单下新增增删改查页面:

增加增删改查页面

增删改查页面配置如下:

增删改查页面配置

编辑页面内容

编辑页面

进入页面之后,在组建内选择 增删改查 :

增删改查组件

先配置接口:

配置接口

接口链接

注意:如果未在前端项目的 config.js -> axiosBaseURL 接口基础链接中配置 /codeDemo: ... 增需要以 http/https 开头。

配置好链接之后点击 格式校验并自动生成列配置 按钮:

格式校验并自动生成列配置

会自动根据返回的数据生成列配置(一列就是根据一行数据配置生成),此时可以选择 启用功能 -> 新增、查询、操作栏编辑、操作栏删除 :

  1. 新增会以弹窗的方式,根据列生成form表单进行配置;
  2. 选择启用 查询 ,可以选择 启用的查询字段 ;
  3. 操作栏编辑会默认生成以弹窗的方式编辑内容;
  4. 操作栏删除可以增加二次确认。

启用的查询字段

更改列配置,点击确认之后就可以生成如下的页面:

表格

调整 搜索表单外观,在大纲里选择 表单:

表单

修改搜索名称

修改搜索样式

代码如下:

{
  "title": "查询条件",
  "mode": "inline",
  "body": [
    {
      "type": "input-text",
      "label": "姓名",
      "name": "name",
      "id": "u:6ee0718d2a02",
      "size": "md"
    },
    {
      "type": "input-text",
      "label": "手机号",
      "name": "phone",
      "id": "u:66ae96d9d539",
      "size": "md"
    }
  ],
  "id": "u:9d8669d8f703",
  "actions": [
    {
      "type": "reset",
      "label": "重置",
      "id": "u:049fba79f297"
    },
    {
      "type": "submit",
      "label": "搜索",
      "id": "u:c24e49ef0ae2",
      "level": "primary"
    }
  ]
}

新增弹窗内容配置

新增弹窗内容配置

弹窗内容自动生成的配置

我们调整弹窗内容如下:

弹窗内容

代码如下:

{
  "type": "dialog",
  "title": "新增",
  "body": [
    {
      "type": "form",
      "api": {
        "method": "post",
        "url": "/codeDemo/contactsList/add",
        "messages": {
        }
      },
      "body": [
        {
          "type": "input-text",
          "name": "name",
          "label": "名称",
          "id": "u:3be2aaff573c",
          "placeholder": "请输入名称",
          "required": true,
          "clearable": true
        },
        {
          "type": "input-text",
          "name": "phone",
          "label": "手机号",
          "id": "u:7382b1794385",
          "clearable": true,
          "placeholder": "请输入手机号",
          "required": true,
          "validations": {
            "isPhoneNumber": true
          }
        },
        {
          "type": "input-city",
          "name": "cityInfo",
          "label": "选择城市",
          "id": "u:1f3a3a0c0af6",
          "searchable": true,
          "required": true,
          "allowCity": true,
          "extractValue": false
        },
        {
          "type": "input-text",
          "name": "address",
          "label": "地址",
          "id": "u:8e07e9cb1a86",
          "placeholder": "请输入详细地址",
          "clearable": true,
          "required": true
        },
        {
          "type": "textarea",
          "name": "remark",
          "label": "备注",
          "id": "u:190772c3d06a",
          "minRows": 3,
          "maxRows": 20,
          "placeholder": "请输入备注信息"
        }
      ],
      "id": "u:0deafa809457"
    }
  ],
  "id": "u:2e94f9d7e9a8",
  "showCloseButton": true,
  "closeOnEsc": false,
  "showErrorMsg": true,
  "showLoading": true,
  "size": "md"
}

注意:修改完弹窗内容要记得点击确认,否则不会更新代码。

编辑弹窗内容

编辑弹窗内容

代码如下:

{
  "type": "dialog",
  "title": "编辑",
  "body": [
    {
      "type": "form",
      "api": {
        "method": "post",
        "url": "/codeDemo/contactsList/update",
        "messages": {
        },
        "data": {
          "&": "$$",
          "id": "${id}"
        }
      },
      "body": [
        {
          "label": "名称",
          "name": "name",
          "type": "input-text",
          "placeholder": "请输入名称",
          "required": true,
          "clearable": true,
          "id": "u:60913603ba5b"
        },
        {
          "label": "手机号",
          "name": "phone",
          "type": "input-text",
          "clearable": true,
          "placeholder": "请输入手机号",
          "required": true,
          "validations": {
            "isPhoneNumber": true
          },
          "id": "u:98fc0aea34f0"
        },
        {
          "label": "选择城市",
          "name": "newCityInfo",
          "type": "input-city",
          "searchable": true,
          "required": true,
          "allowCity": true,
          "extractValue": false,
          "id": "u:163f5d170601",
          "value": "${cityInfo.districtCode}"
        },
        {
          "label": "地址",
          "name": "address",
          "type": "input-text",
          "placeholder": "请输入详细地址",
          "clearable": true,
          "required": true,
          "id": "u:fff0f416d165"
        },
        {
          "label": "备注",
          "name": "remark",
          "type": "textarea",
          "minRows": 3,
          "maxRows": 20,
          "placeholder": "请输入备注信息",
          "id": "u:14a394b62a09"
        }
      ],
      "id": "u:5c5a1a1bf0c4"
    }
  ],
  "id": "u:92d55f353a9a",
  "showCloseButton": true,
  "closeOnEsc": false,
  "showErrorMsg": true,
  "showLoading": true,
  "size": "md"
}

删除按钮

{
  "type": "button",
  "label": "删除",
  "actionType": "ajax",
  "level": "link",
  "className": "text-danger",
  "confirmText": "确定要删除?",
  "api": {
    "method": "post",
    "url": "/codeDemo/contactsList/delete",
    "data": {
      "id": "${id}"
    },
    "messages": {
    }
  },
  "id": "u:a551bb1dc0bd"
}

到此一个完整的增删改查就完成了。

完整代码

{
  "type": "page",
  "title": "增删改查",
  "body": [
    {
      "type": "service",
      "api": {
        "method": "post",
        "url": "/codeApi/usersAllList",
        "messages": {
        },
        "responseData": {
          "usersList": "$$"
        }
      },
      "id": "u:d553fdf824a0",
      "body": [
        {
          "type": "crud",
          "id": "u:9b82c2a2dae3",
          "syncLocation": false,
          "api": {
            "method": "post",
            "url": "/codeDemo/contactsList",
            "messages": {
            }
          },
          "columns": [
            {
              "label": "ID",
              "type": "text",
              "name": "id",
              "id": "u:4482295c18f2"
            },
            {
              "label": "姓名",
              "type": "text",
              "name": "name",
              "id": "u:a0b3ae5acc59",
              "placeholder": "-",
              "copyable": false
            },
            {
              "label": "手机号",
              "type": "text",
              "name": "phone",
              "id": "u:74dfeafc538d"
            },
            {
              "label": "省份",
              "type": "text",
              "name": "province",
              "id": "u:cad82b2a55ff"
            },
            {
              "label": "省份code",
              "type": "text",
              "name": "provinceCode",
              "id": "u:b4a52c8810f5"
            },
            {
              "label": "城市",
              "type": "text",
              "name": "city",
              "id": "u:f042b81eca79"
            },
            {
              "label": "城市code",
              "type": "text",
              "name": "cityCode",
              "id": "u:e8bd8da0dd68"
            },
            {
              "label": "区域",
              "type": "text",
              "name": "district",
              "id": "u:71e061c2fc41"
            },
            {
              "label": "区域code",
              "type": "text",
              "name": "districtCode",
              "id": "u:1b2e481a10d5"
            },
            {
              "label": "地址",
              "type": "text",
              "name": "address",
              "id": "u:02c6b2d8b8e8"
            },
            {
              "label": "备注",
              "type": "text",
              "name": "remark",
              "id": "u:ae1c17a9f317"
            },
            {
              "label": "创建者",
              "type": "mapping",
              "name": "creatorId",
              "id": "u:ff5b03e95527",
              "source": "${usersList.items}"
            },
            {
              "label": "创建时间",
              "type": "text",
              "name": "createTime",
              "id": "u:b09036c3085a"
            },
            {
              "type": "mapping",
              "label": "更新者",
              "id": "u:ff5b03e95527",
              "name": "updaterId",
              "source": "${usersList.items}"
            },
            {
              "label": "更新时间",
              "type": "text",
              "name": "updateTime",
              "id": "u:b09036c3085a"
            },
            {
              "type": "operation",
              "label": "操作",
              "buttons": [
                {
                  "label": "编辑",
                  "type": "button",
                  "actionType": "dialog",
                  "level": "link",
                  "dialog": {
                    "type": "dialog",
                    "title": "编辑",
                    "body": [
                      {
                        "type": "form",
                        "api": {
                          "method": "post",
                          "url": "/codeDemo/contactsList/update",
                          "messages": {
                          },
                          "data": {
                            "&": "$$",
                            "id": "${id}"
                          }
                        },
                        "body": [
                          {
                            "label": "名称",
                            "name": "name",
                            "type": "input-text",
                            "placeholder": "请输入名称",
                            "required": true,
                            "clearable": true,
                            "id": "u:60913603ba5b"
                          },
                          {
                            "label": "手机号",
                            "name": "phone",
                            "type": "input-text",
                            "clearable": true,
                            "placeholder": "请输入手机号",
                            "required": true,
                            "validations": {
                              "isPhoneNumber": true
                            },
                            "id": "u:98fc0aea34f0"
                          },
                          {
                            "label": "选择城市",
                            "name": "newCityInfo",
                            "type": "input-city",
                            "searchable": true,
                            "required": true,
                            "allowCity": true,
                            "extractValue": false,
                            "id": "u:163f5d170601",
                            "value": "${cityInfo.districtCode}"
                          },
                          {
                            "label": "地址",
                            "name": "address",
                            "type": "input-text",
                            "placeholder": "请输入详细地址",
                            "clearable": true,
                            "required": true,
                            "id": "u:fff0f416d165"
                          },
                          {
                            "label": "备注",
                            "name": "remark",
                            "type": "textarea",
                            "minRows": 3,
                            "maxRows": 20,
                            "placeholder": "请输入备注信息",
                            "id": "u:14a394b62a09"
                          }
                        ],
                        "id": "u:5c5a1a1bf0c4"
                      }
                    ],
                    "id": "u:92d55f353a9a",
                    "showCloseButton": true,
                    "closeOnEsc": false,
                    "showErrorMsg": true,
                    "showLoading": true,
                    "size": "md"
                  },
                  "id": "u:a8bdcd1bd446"
                },
                {
                  "type": "button",
                  "label": "删除",
                  "actionType": "ajax",
                  "level": "link",
                  "className": "text-danger",
                  "confirmText": "确定要删除?",
                  "api": {
                    "method": "post",
                    "url": "/codeDemo/contactsList/delete",
                    "data": {
                      "id": "${id}"
                    },
                    "messages": {
                    }
                  },
                  "id": "u:a551bb1dc0bd"
                }
              ],
              "id": "u:14f45b2881bb"
            }
          ],
          "bulkActions": [
          ],
          "itemActions": [
          ],
          "filterSettingSource": [
            "id",
            "name",
            "phone",
            "province",
            "provinceCode",
            "city",
            "cityCode",
            "district",
            "districtCode",
            "addres",
            "remark",
            "creatorId",
            "createTime"
          ],
          "features": [
            "create",
            "filter",
            "update",
            "delete"
          ],
          "filterColumnCount": 3,
          "filterEnabledList": [
            {
              "label": "name",
              "value": "name"
            },
            {
              "label": "phone",
              "value": "phone"
            }
          ],
          "headerToolbar": [
            {
              "label": "新增",
              "type": "button",
              "actionType": "dialog",
              "level": "primary",
              "dialog": {
                "type": "dialog",
                "title": "新增",
                "body": [
                  {
                    "type": "form",
                    "api": {
                      "method": "post",
                      "url": "/codeDemo/contactsList/add",
                      "messages": {
                      }
                    },
                    "body": [
                      {
                        "type": "input-text",
                        "name": "name",
                        "label": "名称",
                        "id": "u:3be2aaff573c",
                        "placeholder": "请输入名称",
                        "required": true,
                        "clearable": true
                      },
                      {
                        "type": "input-text",
                        "name": "phone",
                        "label": "手机号",
                        "id": "u:7382b1794385",
                        "clearable": true,
                        "placeholder": "请输入手机号",
                        "required": true,
                        "validations": {
                          "isPhoneNumber": true
                        }
                      },
                      {
                        "type": "input-city",
                        "name": "cityInfo",
                        "label": "选择城市",
                        "id": "u:1f3a3a0c0af6",
                        "searchable": true,
                        "required": true,
                        "allowCity": true,
                        "extractValue": false
                      },
                      {
                        "type": "input-text",
                        "name": "address",
                        "label": "地址",
                        "id": "u:8e07e9cb1a86",
                        "placeholder": "请输入详细地址",
                        "clearable": true,
                        "required": true
                      },
                      {
                        "type": "textarea",
                        "name": "remark",
                        "label": "备注",
                        "id": "u:190772c3d06a",
                        "minRows": 3,
                        "maxRows": 20,
                        "placeholder": "请输入备注信息"
                      }
                    ],
                    "id": "u:0deafa809457"
                  }
                ],
                "id": "u:2e94f9d7e9a8",
                "showCloseButton": true,
                "closeOnEsc": false,
                "showErrorMsg": true,
                "showLoading": true,
                "size": "md"
              },
              "id": "u:157a6011cfe6"
            },
            "bulkActions"
          ],
          "filter": {
            "title": "查询条件",
            "mode": "inline",
            "body": [
              {
                "type": "input-text",
                "label": "姓名",
                "name": "name",
                "id": "u:6ee0718d2a02",
                "size": "md",
                "clearable": true
              },
              {
                "type": "input-text",
                "label": "手机号",
                "name": "phone",
                "id": "u:66ae96d9d539",
                "size": "md",
                "clearable": true
              }
            ],
            "id": "u:9d8669d8f703",
            "actions": [
              {
                "type": "reset",
                "label": "重置",
                "id": "u:049fba79f297"
              },
              {
                "type": "submit",
                "label": "搜索",
                "id": "u:c24e49ef0ae2",
                "level": "primary"
              }
            ]
          }
        }
      ]
    }
  ],
  "id": "u:b3abad984d9e",
  "asideResizor": false,
  "style": {
    "boxShadow": " 0px 0px 0px 0px transparent"
  },
  "pullRefresh": {
    "disabled": true
  }
}

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

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

相关文章

【数据结构】非线性结构之树结构(含堆)

前言 前面的三篇文章已经将线性结构讲述完毕了,下面的文章将会为大家将讲点新东西:非线性结构中的树结构。萌新对这里的知识点相对陌生,建议反复观看!! 关于线性结构的三篇文章放在下面: 线性表之顺序表 线…

数组与指针

博客内容:数组与指针 文章目录 一、 数组?指针?1.区别与联系大小赋值存储位置 二、指针数组、数组指针?二维数组和二级指针&数组名与数组的区别总结 一、 数组?指针? 数组 相同类型数据的集合 指针 指…

谷歌Bard更新:支持中文提问和语音朗读

ChatGPT不断更新功能,从GPT-3到3.5,再到GPT-4,甚至最新的plus版已经支持图像处理和图表生成,而谷歌Bard却自从推出后就一直很安静,没有什么大动作。眼见被ChatGPT、Claude甚至是文心一言抢去了风头,自然心有…

springcache的使用(小白也看得懂)

简介 SpringCache整合Redis可以使用Spring提供的Cacheable注解来实现对Redis的缓存操作。使用这种方式可以轻松地在应用程序中启用缓存,并且不需要手动编写访问Redis的代码。在配置文件中需要配置Redis的连接信息以及缓存管理器。使用这种方式可以做到轻松配置&…

C++报错:二进制“心<“没有找到接受“std:string“类型的右操作数的运算符(或没有可接受的转换)

1、问题&#xff1a;在进行二维数组的相关计算时报错&#xff1a; 二进制"心<"没有找到接受"std:string"类型的右操作数的运算符(或没有可接受的转换) 2、原因&#xff1a;没有加入头文件——String; 3、解决办法&#xff1a;加上头文件——String; 4、…

GNN学习笔记:A Gentle Introduction to Graph Neural Networks

原文地址&#xff1a; https://distill.pub/2021/gnn-intro/ 不同形式来源的图 Images as graphs 论文中提到将图像建模为一张拓扑图的方法是将图像的每一个像素看作图的一个结点&#xff0c;并将单个像素结点与其相邻的所有像素之间建立一条边。 每一个非边缘的像素结点具…

Linux下做性能分析4:怎么开始

战地分析 性能分析常常是一种战地分析&#xff0c;所以&#xff0c;在我们可以端起咖啡慢慢想怎么进行分析之前&#xff0c;我们要先说说我们在战地上的套路。 战地分析是说在实用环境中发现问题&#xff0c;我们真正需要进行性能分析的场合&#xff0c;通常都没有机会让你反…

LeetCode: 18. 四数之和 | 双指针专题

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

Java中的几种关键字this、super、static和final介绍

Java中的几种关键字this、super、static和final介绍 在Java编程语言中&#xff0c;关键字是具有特殊含义的预定义标识符。关键字是Java编程语言中具有特殊用途的保留单词&#xff0c;用于表示语法结构和程序行为。关键字在语法上具有特定的用途&#xff0c;不能用作变量名、方…

HTTP1.1、HTTPS、HTTP2.0 、HTTP3.0

HTTP1.1 优点&#xff1a; 整体方面&#xff1a;简单、灵活和易于扩展、应用广泛和跨平台 性能方面&#xff1a;长连接、管道网络传输解决请求队头阻塞&#xff08;没有使用&#xff09; 缺点&#xff1a; 安全方面&#xff1a;无状态、明文窃听、伪装、篡改 性能方面&am…

进程间通信之匿名管道

进程间通信—管道 一、进程间通信介绍二、管道1.匿名管道1.1父进程和一个子进程之间的通信1.2父进程和多个子进程之间的通信 一、进程间通信介绍 1.进程间为什么要进行通信&#xff1f; 进程间通信的是为了协调不同的进程&#xff0c;使之能在一个操作系统里同时运行&#xff…

代码随想录day4 | 24. 两两交换链表中的节点 19.删除链表的倒数第N个节点 02.07.链表相交 142.环形链表II

文章目录 一、两两交换链表中的节点二、删除链表的倒数第N个节点三、链表相交四、环形链表 24. 两两交换链表中的节点 19.删除链表的倒数第N个节点 面试题 02.07. 链表相交 142.环形链表II 一、两两交换链表中的节点 两两交换链表中的节点 注意是两两交换&#xff0c;采用虚拟…

Global symbol “%data“ requires explicit package name

Global symbol “%data” requires explicit package name 如图编写demo的时候出现了如图的问题&#xff0c;在网上查找到的原因是&#xff1a; 一&#xff0c;使用use strict; &#xff0c;修改其他代码&#xff0c;如下&#xff1a; 1&#xff0c;首先&#xff0c;检查你是不…

静态库和动态库的区别与优缺点

文章目录 静态库与动态库的区别动态库与静态库的优缺点 静态库与动态库的区别 静态库直接打包链接到可执行程序 动态库将不会链接到可执行文件 &#xff0c;执行文件运行时需要动态加载 动态库 &#xff0c;所以需要提前知道动态库路径&#xff0c;需要将路径保存到环境变量或…

亲测:2核4G云服务器性能测试能安装多少个网站?

2核4G服务器能安装多少个网站&#xff1f;2核4g配置能承载多少个网站&#xff1f;一台2核4G服务器可以安装多少个网站&#xff1f;阿腾云2核4G5M带宽服务器目前安装了14个网站&#xff0c;从技术角度是没有限制的&#xff0c;只要云服务器性能够用&#xff0c;想安装几个网站就…

【前端知识】React 基础巩固(二十六)——Portals 的使用

React 基础巩固(二十六)——Portals 的使用 Portals 通常&#xff0c;组件会渲染到 root 节点下。可使用 Portals 将组件渲染至其他节点。 添加 id 为 more、modal 的 div 元素 <div id"root"></div> <div id"more"></div> &l…

apache 工作模式 NPM Multi-processing module

Apache 三种工作模式 prefork work event 监控线程相当于 项目组长&#xff0c;面对客户&#xff0c;根据任务自行调度 团队成员。 Prefork模式为Apache默认使用的工作模式&#xff0c;在该模式下&#xff0c;采用的机制是预派生子进程的方式&#xff0c;使用单独的进程来…

设计模式之单例

文章目录 前言一、单例模式的基本定义二、懒汉式单例三、饿汉式单例四、懒汉式单例存在的线程安全问题总结 前言 单例模式是比较经典的设计模式&#xff0c;本篇我们将结合实际案例说明单例模式的实现原理&#xff0c;以及存在的问题。 一、单例模式的基本定义 单例模式&…

【前端知识】React 基础巩固(二十八)——StrictMode

React 基础巩固(二十八)——StrictMode StrictMode StrictMode 是一个用来突出显示应用程序中潜在问题的工具 与 Fragment 一样&#xff0c;StrictMode 不会渲染任何可见的 UI为后代出发额外的检测和警告严格模式检查仅在开发模式下运行&#xff0c;不影响生产构建 严格模式检…