JeecgBoot低代码平台简单记录
BasicModal弹窗
Usage
由于弹窗内代码一般作为单文件组件存在,也推荐这样做,所以示例都为单文件组件形式
注意v-bind="$attrs"记得写,用于将弹窗组件的attribute传入BasicModal组件
attribute:是属性的意思,大概意思是接收父组件传过来的数据
@register=“register” 用于注册useModal,如果需要使用useModal提供的 api,必须将register传入组件的onRegister
原理其实很简单,就是 vue 的组件子传父通信,内部通过emit(“register”,instance)实现。
同时独立出去的组件需要将attrs绑定到BasicModal上面。
1.1,下面是子组件 Modal.vue
<BasicModal v-bind="$attrs" title="Modal Title" :helpMessage="['提示1', '提示2']">Modal Info.</BasicModal>import { BasicModal } from '/@/components/Modal';
1.2,页面引用弹窗
<div class="px-10"><Modal @register="register" /></div>import { useModal } from '/@/components/Modal';import Modal from './Modal.vue'const [register, { openModal, setModalProps }] = useModal();
1.3,可在父组件引入弹框使用参数介绍
1.4,closeModal:用于关闭弹窗
closeModal();
1.5,openModal :用于打开/关闭弹窗 参考下面的点击方法使用
// true/false: 打开关闭弹窗
// data: 传递到子组件的数据
openModal(true, data);
1.6,setModalProps :用于更改 子组件modal 的 props 参数
在父组件注册弹框时引入注册
const [addEditorPop, {openModal: changeAddEditorPop, setModalProps: setAddEditorPop }] = useModal();
例如可以在父组件点击方法中这么使用
//新增编辑调用方法处理事件
function handleLOpenAddModal(data, type) {setAddEditorPop({title: type == 'add' ? '生育津贴及医疗费登记' : '生育津贴及医疗费登记编辑',width: "100%",draggable: false,destroyOnClose: true,});changeAddEditorPop(true, { row: data, type, fileList })//打开弹窗方法,可以这样传参
}
1.7,子组件弹框组件中可使用方法
<BasicModal v-bind="$attrs" title="Modal Title" :helpMessage="['提示1', '提示2']">Modal Info.</BasicModal>import { BasicModal, useModalInner } from '/@/components/Modal';const [register, { closeModal, setModalProps }] = useModalInner(async (data) => {//data是父组件传过来的参数接收新增编辑传过来的数据addEditingParameters = data;});
2.1,弹框中有from表单需要校验时,点击弹框确认件获取表单的值,并进行校验
2.2,from表单数据定义:
export const formState1: FormSchema[] = [{label: '姓名', //显示labelfield: 'name', //查询字段component: 'Input', //渲染的组件//自动触发检验,布尔类型required: true,colProps: { span: 8 },},{label: '身份证号', //显示labelfield: 'identityId', //查询字段component: 'Input', //渲染的组件//检验的时候不加上标题rulesMessageJoinLabel: false,// rules: [{ required: false, message: '请输入正确的身份证号', pattern: /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/ }],//动态自定义正则,values: 当前表单的所有值dynamicRules: ({ values }) => {console.log('values:', values);//需要returnreturn [{//默认开启表单检验required: true,// value 当前手机号输入的值validator: (_, value) => {//需要return 一个Promise对象return new Promise((resolve, reject) => {if (!value) {reject('请输入身份证号!');}//验证手机号是否正确let reg = /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;if (!reg.test(value)) {reject('请输入正确身份证号!');}resolve();});},},];},colProps: { span: 8 },},
]
2.3,弹框子组件点击确定事件

2.4,在子组件的表单中这样引入一下确定事件的方法
//注册第一个表单
const [registerForm1, { validate: validate1, setFieldsValue: setFieldsValue1, getFieldsValue: getFieldsValue1, setFieldsValue }] = useForm({//注册表单列schemas: formState1,showResetButton: false,showSubmitButton: false,autoSubmitOnEnter: true,submitFunc: addEditingConfirmation,//确定事件的方法这样注册一下
});
2.5,点击确定的事件
//新增编辑请求
async function addEditingConfirmation() {validate1().then(function (res) {校验成功处理的事件}}).catch(function (err) {检验不成功直接弹出提示console.log(err);return});;
}
2,提示框
import { useMessage } from "/@/hooks/web/useMessage";//引入提示组件//注册Message
const { createMessage } = useMessage();//使用
createMessage.error("请选择一条登记信息!");
3,表单校验
1,在数据中添加 :required: true, //自动触发检验,布尔类型
{label: '服务费', //显示labelfield: 'customName6', //查询字段//自动触发检验,布尔类型required: true,component: 'Input', //渲染的组件colProps: { span: 12 },},
2,在注册的表单中添加校验函数submitFunc: saveBtn, 也需要引入校验函数validate
const [registerForm,{ validate,getFieldsValue,validate}] = useForm({//注册表单列schemas: addFormAgreement,showResetButton: false,showSubmitButton: false,showActionButtonGroup: false,submitFunc: saveBtn,
});
3,在执行的函数中使用validate()
注意,函数前面必须添加 async
async function saveBtn(){validate1().then(function (res) {//校验成功的逻辑}).catch(function (err) {console.log(err);return});;
}
相关文章:
JeecgBoot低代码平台简单记录
BasicModal弹窗 Usage 由于弹窗内代码一般作为单文件组件存在,也推荐这样做,所以示例都为单文件组件形式 注意v-bind"$attrs"记得写,用于将弹窗组件的attribute传入BasicModal组件 attribute:是属性的意思,…...
零基础入门转录组数据分析——机器学习算法之xgboost(筛选特征基因)
零基础入门转录组数据分析——机器学习算法之xgboost(筛选特征基因) 目录 零基础入门转录组数据分析——机器学习算法之xgboost(筛选特征基因)1. xgboost基础知识2. xgboost(Rstudio)——代码实操2. 1 数据…...
C#开发常见面试题三(浅复制和深复制的区别)
C#开发常见面试题三(浅复制和深复制的区别) 一.浅复制和深复制定义 (1)浅复制:复制一个对象的时候,仅仅复制原始对象中所有的非静态类型成员和所有的引用类型成员的引用。(新对象和原对象将共享所有引用类型成员的实…...
Linux/C 高级——Linux命令
从这里开始,我们展开对Linux/c 高级的学习,首先介绍的是在Linux/c高级中,Linux的部分 目录 1.Linux简介 1.1Linux起源 1.2查看系统版本命令 1.3分层结构 1.4系统关机重启命令 2.Linux安装工具 2.1软件包安装 2.1.1软件包的管理机制 …...
怎么在 tailwindcss 项目中自定义一些可复用的样式
在 Tailwind CSS 项目中自定义可复用的样式有几种常用方法: 使用 apply 指令 你可以在 CSS 文件中使用 apply 指令来创建可复用的样式类: layer components {.btn-primary {apply py-2 px-4 bg-blue-500 text-white font-semibold rounded-lg shadow-md hover:bg-blue-700 f…...
在vue3中 引入echarts
安装:npm install echarts --save 方式一:直接在组件中引用 <template><divref"myChart"id"myChart":style"{ width: 800px, height: 400px }"></div></template><script>import * as echa…...
栈和队列(数据结构)
1. 栈(Stack) 1.1 概念 栈 :一种特殊的线性表,其 只允许在固定的一端进行插入和删除元素操作 。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO ( Last In First Out )的原…...
如何实现ElementUI表单项label的文字提示?
在Vue和ElementUI的丰富组件库中,定制化表单是常见的需求之一。那么如何在表单项label后添加文字提示,以提升用户体验呢? 首先我们来看一下效果图: 这里我们鼠标移动到❓图标上就会出现提示 在 ElementUI 中,el-form-item 组件允许使用 slot 自定义 label。通过在 el-fo…...
c++中的标准库
前言 hello,我是文宇。 正文 C标准库是C编程语言的基本组成部分之一,它为开发人员提供了一套丰富和强大的工具和功能,以便快速开发高效、可靠和可移植的应用程序。C标准库由两个主要部分组成:STL(Standard Template…...
洛谷 B2145 digit 函数 B2146 Hermite 多项式 题解
题目目录: No.1 B2145 digit 函数 No.2 B2146 Hermite 多项式 OK,开始正文! 第一题:B2145 digit 函数 题目描述 在程序中定义一函数 digit(n,k),它能分离出整数 n 从右边数第 k 个数字。 输入格式 正整数 n …...
tailwindcss @apply 和 @layer 有什么区别
在 Tailwind CSS 中,apply 和 layer 是两个不同的指令,它们各自有不同的用途和功能。以下是它们的区别和使用方法: apply 指令 apply 指令用于将一组现有的 Tailwind CSS 工具类应用到一个自定义的 CSS 类中。这对于简化和复用复杂的样式非…...
React 中的 useMemo 和 useCallback
1. useMemo语法 const memoizedValue useMemo(() > computeExpensiveValue(a, b), deps); 1. 传入一个函数进去,会返回一个 memoized 值,需要注意的是,函数内必须有返回值; 2. 第二个参数会依赖值,当依赖值更新…...
idea社区版lombok总是突然失效:log未知的变量
用maven打包运行就没问题,就是idea的原因 有这么个参数 -Djps.track.ap.dependenciesfalse 是用来配置 IntelliJ IDEA 的 JVM 参数,它控制着 IntelliJ IDEA 是否跟踪处理器相关的依赖关系。具体来说,-Djps.track.ap.dependenciesfalse 参数的…...
Java语言程序设计基础篇_编程练习题*16.13(比较不同利率的贷款)
目录 题目:*16.13(比较不同利率的贷款) 习题思路 代码示例 结果展示 题目:*16.13(比较不同利率的贷款) 改写编程练习题5.21,创建一个图形用户界面,如图16-41b所示。程序应该允许…...
正点原子imx6ull-mini-Linux驱动之Regmap API 实验
我们在前面学习 I2C 和 SPI 驱动的时候,针对 I2C 和 SPI 设备寄存器的操作都是通过相关 的 API 函数进行操作的。这样 Linux 内核中就会充斥着大量的重复、冗余代码,但是这些本质 上都是对寄存器的操作,所以为了方便内核开发人员统一访问 I2C…...
postgresql 双重排序后 重复项 标识次序
postgresql 双重排序后 重复项 标识次序 在PostgreSQL中,如果你想要在双重排序后标识重复项的次序,可以使用窗口函数(window functions)。一个常见的方法是使用ROW_NUMBER()窗口函数,它会为每个分组内的行分配一个唯一…...
线程池ThreadPoolExecutor使用
文章目录 一、基础-Java中线程创建的方式1.1、继承Thread类创建线程1.2、实现Runnable接口创建线程1.3、实现Calable接口创建线程1.4、使用线程池创建线程二、概念-线程池基本概念2.1、并发和井行的主要区别2.1.1、处理任务不同2.1.2、存在不同2.1.3、CPU资源不同2.2、什么是线…...
Codeforces Round 963 (Div. 2)
A题:Question Marks 题目: Tim正在做一个由 4n 个问题组成的测试,每个问题都有 4 个选项:“A”、“B”、“C”和“D”。对于每个选项,有 n 个正确答案对应于该选项,这意味着有 n 个问题的答案为“A”。 n…...
Mysql函数学习笔记
MySQL 字符串函数 ASCII(s) 返回字符串 s 的第一个字符的 ASCII 码。 //返回 CustomerName 字段第一个字母的 ASCII 码 SELECT ASCII(CustomerName) AS NumCodeOfFirstChar FROM Customers;CHAR_LENGTH(s)-返回字符串 s 的字符数 //返回字符串 RUNOOB 的字符数 SELECT CHAR…...
【Linux基础】Linux基本指令(一)
目录 前言1, ls指令2,pwd指令三,cd指令3.1 当前目录与上级目录3.2 绝对路径和相对路径 四,创建一个普通文件或目录4.1 touch指令4.2 mkdir指令 五,删除目录或文件5.1 rmdir指令5.2 rm 指令 前言 从本章开始࿰…...
大数据学习栈记——Neo4j的安装与使用
本文介绍图数据库Neofj的安装与使用,操作系统:Ubuntu24.04,Neofj版本:2025.04.0。 Apt安装 Neofj可以进行官网安装:Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...
376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...
【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...
CSS设置元素的宽度根据其内容自动调整
width: fit-content 是 CSS 中的一个属性值,用于设置元素的宽度根据其内容自动调整,确保宽度刚好容纳内容而不会超出。 效果对比 默认情况(width: auto): 块级元素(如 <div>)会占满父容器…...
vulnyx Blogger writeup
信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面,gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...
免费数学几何作图web平台
光锐软件免费数学工具,maths,数学制图,数学作图,几何作图,几何,AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...
Windows安装Miniconda
一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...
MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 🍺 最新版brew安装慢到怀疑人生?别怕,教你轻松起飞! 最近Homebrew更新至最新版,每次执行 brew 命令时都会自动从官方地址 https://formulae.…...
【Linux系统】Linux环境变量:系统配置的隐形指挥官
。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量:setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...
【UE5 C++】通过文件对话框获取选择文件的路径
目录 效果 步骤 源码 效果 步骤 1. 在“xxx.Build.cs”中添加需要使用的模块 ,这里主要使用“DesktopPlatform”模块 2. 添加后闭UE编辑器,右键点击 .uproject 文件,选择 "Generate Visual Studio project files",重…...
