vue+ant-design+formBuiler表单构建器——技能提升——form design——亲测有效

news/2024/5/20 16:47:30

最近看到后端同事在弄一个后台管理系统,额,前端真的是夹缝中生存啊,AI抢饭碗,后端也想干前端的活儿。。。

他用到了表单构建器,具体效果如下:
在这里插入图片描述
网上有很多适用于ElementUiant-designform design插件,下面介绍一套完整的适用于ant-design的使用方法

步骤1:form-builder组件封装

components中添加form-builder文件夹
文件夹内容如下:
在这里插入图片描述
稍后我会把整个文件夹压缩上传到资源中,有需要的可自行下载。

步骤2:在页面中使用

我这边是在个弹窗中使用的,所以需要在弹窗中引入

<template><a-modalwidth="100%":title="title":visible="visible":confirm-loading="confirmLoading":footer="null"@cancel="handleCancel"><div style="height: 600px;overflow-y:auto;"><FormBuilder v-model="data" :gateway="gateway" :userModel="{}" @getData="saveData" /></div></a-modal>
</template>

对应的script中的代码:

<script>
import FormBuilder from '@/components/form-builder/FormBuilder';
import { addProp, updateProp, getPropDetail } from '@/services/project/propTemplate';//这个是接口,具体得让后端同事处理了。
export default {components: {FormBuilder},data() {return {title: '新增属性',visible: false,confirmLoading: false,data: {propName: '',list: [],config: {}},gateway: this.$store.state.setting.gateway,//gateway: "http://192.168.16.100:9001",也是后端同事提供templateId: '',id: ''}},methods: {showModal(templateId, record) {this.templateId = templateId;if (record) {this.title = '编辑属性';this.id = record.id;this.getDetail();} else {this.title = '新增属性';this.id = '';this.data = {propName: '',list: [],config: {}}}this.visible = true;},getDetail() {getPropDetail({propertyTemplateId: this.templateId,templateId: this.id}).then(res => {this.data = {propName: res.data.name,list: res.data.templateFiled && JSON.parse(res.data.templateFiled),config: res.data.templateText && JSON.parse(res.data.templateText)}})},saveData(v) {this.visible = false;if (this.id) {updateProp({propertyTemplateId: this.templateId,templateId: this.id,//模板属性id}, {name: v.propName,templateText: JSON.stringify(v.config),templateFiled: JSON.stringify(v.data)}).then(res => {this.$message.success('保存成功');this.$emit('ok');})} else {addProp(this.templateId, {name: v.propName,templateText: JSON.stringify(v.config),templateFiled: JSON.stringify(v.data)}).then(res => {this.$message.success('保存成功');this.$emit('ok');})}},handleCancel() {this.visible = false;}}
}
</script>

步骤3:步骤2弹窗的使用

import PropEdit from './PropEdit';
export default {components: {PropEdit},
}

页面使用

<a-button type="primary" @click="$refs.propEdit.showModal(templateId)">新增</a-button>
<PropEdit ref="propEdit" @ok="getPropList"></PropEdit>

http://www.mrgr.cn/p/57031733

相关文章

wePWNise:一款功能强大的红队Office宏VBA代码生成工具

关于wePWNise wePWNise是一款功能强大的Office宏VBA代码生成工具&#xff0c;该工具基于纯Python开发&#xff0c;可以帮助广大研究人员生成用于Office宏或模版的VBA代码&#xff0c;并以此来测试目标Office环境、应用程序控制和防护机制的安全性。 wePWNise的设计理念将自动化…

20211317李卓桐 Exp6 MSF攻防实践 实验报告

Exp6 MSF攻防实践 实践内容本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路。具体需要完成: 1.1一个主动攻击实践,尽量使用最新的类似漏洞; 1.2 一个针对浏览器的攻击,尽量使用最新的类似漏洞; 1.3 一个针对客户端的攻击,如Adobe或office,尽量使…

深入理解Django:中间件与信号处理的艺术

title: 深入理解Django:中间件与信号处理的艺术 date: 2024/5/9 18:41:21 updated: 2024/5/9 18:41:21 categories:后端开发tags:Django 中间件 信号 异步 性能 缓存 多语言引言 在当今的Web开发领域,Django以其强大的功能、简洁的代码结构和高度的可扩展性,已成为众多开发者…

JAVA链表相关习题2

1.反转一个单链表。 . - 力扣&#xff08;LeetCode&#xff09; //2在1前面 //1在3前面 //ListNode curhead.next //head.nextnull(翻转后头节点变为最后一个节点) // while(cur ! null) { //记录 当前需要翻转节点的下一个节点 ListNode curNext cu…

零知识证明: Tornado Cash 项目学习

前言 最近在了解零知识证明方面的内容,这方面的内容确实不好入门也不好掌握,在了解了一些基础的概念以后,决定选择一个应用了零知识证明的项目来进行进一步的学习。最终选择了 Tornado Cash 这个项目,因为它著名且精致,适合入门的同学进行学习。 学习 Tornado Cash 项目,…

高并发秒杀项目随手笔记

1 数据库基字符集为什么选择utf8mb4? 2 在 MyBatis 中,JavaBean 属性名和数据库字段名的映射非常关键,正确设置这一映射是保证数据正确封装到 JavaBean 中的前提。以下是 MyBatis 映射机制的详细解释: 1. 默认映射行为 如果在 MyBatis 的 <resultMap> 中没有明确指定…

创建数据库

#数据库的操作 #删除数据库指令 DROP DATABASE hsp_db01;#hsp_db01这个对应的是数据 #用指令创建数据库 CREATE DATABASE hsp_db01; #创建一个使用utf8字符集的hsp_db02数据库 CREATE DATABASE hsp_db02 CHARACTER SET utf8 #创建一个使用utf8字符集,并带校队规则的hsp_db03数…

前后端数据交互形式随手笔记

注解@RequestParam Map<String, String> params 的使用1 在Spring MVC中,使用@RequestParam Map<String, String> params可以接收前端发出的请求参数并将它们作为一个Map收集起来。这种方式非常灵活,可以处理来自前端的各种数据提交形式。以下是一些常见的前端数…

【华为】AC直连二层组网隧道转发实验配置

【华为】AC直连二层组网隧道转发实验配置 实验需求拓扑配置AC数据规划表 AC的配置顺序AC1基本配置(二层通信)AP上线VAP组关联--WLAN业务流量 LSW1AR1STA获取AP的业务流量 配置文档 实验需求 AC组网方式&#xff1a;直连二层组网。 业务数据转发方式&#xff1a;隧道转发。 DHC…

SpringBoot随手笔记

SpringBoot随手笔记 0 关于火狐浏览器什么时候会发出http请求的说明 在抓包的情况下(按下F12后的模式),不管是刷新页面还是在浏览器地址栏回车,该页面中的图片都会发出http请求; 但如果不是抓包的模式下,如果访问的页面和上一次访问的页面相同(地址栏的地址没有更改),不管是…

Maven随手笔记

1 当同时存在多个maven软件时,在windows上要如何区分?查看当前使用的是哪个maven的指令,mvn -v C:\Users\yangd>mvn -vApache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)Maven home: D:\Java_developer_tools\Must_learn_must_know_technology\MavenProgra…

解决$‘\r‘: command not found 或syntax error near unexpected token `$‘\r‘的四个方法

问题原因&#xff1a; 两个报错原因都是Linux和windows下的回车换行符不兼容 解决方法&#xff1a; 方法一&#xff1a;在windows系统可以用文本编辑器查看所有字符&#xff0c;例如notepad&#xff0c;编辑->档案格式转换->转换为UNIX格式 方法二&#xff1a;在Linux系…

XN297 2.4GHz 单片高速无线收发芯片

概述 XN297是一款工作在2.400~2.483GHz世界通用ISM频段的单片无线收发芯片。该芯片集成 射频收发器、频率发生器、晶体振荡器、调制解调器等功能模块&#xff0c;并且支持一对多组网和带 ACK的通信模式。发射输出功率、工作频道以及通信数据率均可配置。 主要特性 1、低功…

爬虫:爬取豆瓣电影

文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 前言 上篇我们将到如何利用xpath的规则&#xff0c;那么这一次&#xff0c;我们将通过案例来告诉读者如何使用Xpath来定位到我们需要的数据&#xff0c;就算你不懂H5代码是怎么个嵌套或者十分复…

springboot seata 全局捕获异常失效

问题:Spring boot使用@ControllerAdvice或@RestControllerAdvice全局捕获异常时,捕获不到自己抛出的相应异常 首先看一下全局异常组件有么有被扫描到如何查看,很简单只需要写一段类加载打印代码,如下 如果启动时,打印了你写的字符串就说明时烧苗到了 这就说明是其他的问题…

第二证券|炒股是波段好还是长期好?

炒股长时间比波段好一些&#xff0c;其原因如下&#xff1a; 1、长时间持有费用低 投资者在生意过程中&#xff0c;需求交纳必定的佣金费用、过户费用、印花税&#xff0c;而长时间持有股票&#xff0c;减少生意次数&#xff0c;能够节省一笔生意成本。 2、短期持有容易卖飞…

一种新的基于机器学习的示波法血压估计方法,开源、低功耗、低成本的人工智能软硬件提供者

具体的软硬件实现点击 http://mcu-ai.com/ MCU-AI技术网页_MCU-AI人工智能 血压的测量和预测是心脏病患者和有心脏问题的人的一个重要条件,应该保持持续的控制。在这项研究中,基于从使用袖带的个体获得的振荡波形,振荡波形分为三个周期。第一个周期是从起点到收缩压(SBP),第…

该做的都做了,但LCD还是啥都不显示

cubemx中不用配置lcd引脚&#xff0c;在lcd_init函数中就初始化好引脚了&#xff01;

已经有 Prometheus 了,还需要夜莺?

谈起当下监控,Prometheus 无疑是最火的项目,如果只是监控机器、网络设备,Zabbix 尚可一战,如果既要监控设备又要监控应用程序、Kubernetes 等基础设施,Prometheus 就是最佳选择。甚至有些开源项目,已经内置支持了 Prometheus 协议的指标暴露,比如新版本的 Zookeeper、新…