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});;
}

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring全家桶(三):Spring AOP

Spring AOP面向切面编程 1.面向切面编程思维&#xff08;AOP&#xff09; 1.1.面向切面编程思想AOP AOP&#xff1a;Aspect Oriented Programming面向切面编程 AOP可以说是OOP&#xff08;Object Oriented Programming&#xff0c;面向对象编程&#xff09;的补充和完善。O…

一键生成专业PPT:2024年AI技术在PPT软件中的应用

不知道你毕业答辩的时候有没有做过PPT&#xff0c;是不是也被这个工具折磨过。没想到现在都有AI生成PPT的工具了吧&#xff1f;这次我就介绍几款可以轻松生成PPT的AI工具吧。 1.笔灵AIPPT 连接直达&#xff1a;​​​​​​​https://ibiling.cn/ppt-zone 这个工具我最早是…

Nature Medicine:基于图像的深度学习和语言模型用于原发性糖尿病护理

首个糖尿病诊疗多模态大模型DeepDR-LLM已成功发表在Nature子刊。 这是全球首个面向糖尿病诊疗的视觉-大语言模型集成系统&#xff0c;结合了语言模型和基于眼底图像的深度学习技术。该系统旨在为基层医生提供个性化的糖尿病管理建议和辅助诊断结果&#xff0c;特别对中低收入国…

【实现100个unity特效之12】Unity中的冲击波 ——如何使用ShaderGraph制作一个冲击波着色器

最终效果 文章目录 最终效果新增LitShaderGraph圆环扭曲效果优化冲击波效果屏幕全屏冲击波圆形冲击波最终连线图代码控制补充源码完结 新增LitShaderGraph 圆环扭曲效果 让我们从一个UV节点开始 创建一个Vector2变量RingSpawnPosition表示冲击波生成位置,在X和Y上将其默认值…

PyTorch基于深度神经网络的语音情绪识别

【图书推荐】《PyTorch语音识别实战》-CSDN博客 《PyTorch语音识别实战&#xff08;人工智能技术丛书&#xff09;》(王晓华)【摘要 书评 试读】- 京东图书 (jd.com) 情绪数据的获取与标签的说明 首先是语音情绪数据集的下载&#xff0c;在这里使用瑞尔森情感语音和歌曲视听数…

sourcemap使用

sourcemap是什么以及怎么生成就不过多阐述了&#xff0c;这是之前看到的一篇文章感觉介绍的很详细&#xff1a;弄懂 SourceMap&#xff0c;前端开发提效 100% 浏览器加载sourcemap 我们线上代码一般不会开启sourcemap&#xff0c;在排查线上的问题时&#xff0c;可以通过浏览器…

DataX PostgreSQL 读写支持Geometry类型

这里写目录标题 简要说明依赖代码 简要说明 通过简单修改源码中关于相关的reader、writer和DBUtil工具类&#xff0c;实现表到表之间的Geometry字段类型数据的输送&#xff0c;目前修改仅测试过在postgresql的postgis插件下的Geometry类型可行。 依赖 1.通过gitclone 或者 到…

用户规模NO.1之后,钉钉还有多大的成长空间?

近日&#xff0c;第三方数据机构QuestMobile发布的《2024半年度中国移动互联网实力价值榜》显示&#xff0c;钉钉与微信、淘宝、抖音等一同入榜 “TOP50赛道用户规模NO.1 App”&#xff0c;蝉联效率办公赛道榜首。 可以看出&#xff0c;现阶段钉钉打开了较大的市场空间&#x…

Qt 跨平台APP单实例运行实现

一.调用方法 支持coreApplication和简单的application两种继承&#xff1a; 二.源码地址&#xff1a; SingleApp: Qt 单实例实现

android13 串口编号修改 串口名修改

总纲 android13 rom 开发总纲说明 目录 1.前言 2.技术分析 别名定义的语法规则 3.修改示例 使用别名 注意事项 4.不生效分析 5.编译查看 6.其他方法 7.彩蛋 1.前言 更改Android设备的串口编号涉及对系统深层次的配置进行修改,通常是为了解决硬件兼容性问题或满足特…

选择文件鼠标右键自定义菜单

注册表路径 计算机\HKEY_CLASSES_ROOT\*\shell 效果 操作 1.定位 winr&#xff0c;输入regedit, 地址栏输入以下路径&#xff0c;并回车。 计算机\HKEY_CLASSES_ROOT\*\shell 2.在shell上右键&#xff0c;新建项 3右键新建字符串值&#xff0c;Icon,Position 4 右键新建c…

LabVIEW压电陶瓷阻抗测试系统

开发了一种基于LabVIEW软件与PXI模块化仪器的压电陶瓷阻抗测试系统。该系统能在高电压工作条件下测量压电陶瓷的阻抗特性&#xff0c;包括阻抗模值与阻抗角的频率特性&#xff0c;为压电陶瓷的进一步分析与应用提供了重要参考。 项目背景 现有的阻抗测试仪大多只能在低电压条件…

【多模态】Flamingo: a Visual Language Model for Few-Shot Learning

链接&#xff1a;https://arxiv.org/pdf/2204.14198 论文&#xff1a;Flamingo: a Visual Language Model for Few-Shot Learning Introduction Motivation&#xff1a;仅使用少量标注样本来快速适应新任务的建模方式是多模态机器学习研究的一个挑战与难点定位&#xff1a;a …

案例分享-国外UI设计界面赏析

国外UI设计倾向于简洁的布局和清晰的排版&#xff0c;减少视觉干扰&#xff0c;提升用户体验。通过合理的色彩搭配和图标设计&#xff0c;营造舒适愉悦的使用氛围。 设计师不拘泥于传统框架&#xff0c;勇于尝试新元素和理念&#xff0c;使界面独特有趣。同时&#xff0c;强调以…

指纹失效,忘记iPhone屏幕解锁密码怎么应对?

为保证手机的安全及隐私&#xff0c;我们会给手机设置屏幕锁屏密码&#xff0c;通过输入设置密码来解锁手机屏幕锁&#xff0c;但为了给大家提供快速便捷的解锁方式&#xff0c;苹果公司提供了指纹解锁&#xff0c;不仅解锁更便捷了还极大地增强了设备的安全性。但有时我们手指…

Prompt万能框架与常用评估指标

引言 在人工智能的飞速发展中&#xff0c;大型语言模型&#xff08;LLM&#xff09;已成为研究和应用的热点。LLM以其强大的语言理解和生成能力&#xff0c;在诸如自然语言处理、文本生成、问答系统等多个领域展现出巨大潜力。然而&#xff0c;要充分发挥LLM的能力&#xff0c…

【Material-UI】按钮组:Split Button 详解

文章目录 一、Split Button 概述1. 组件介绍2. 基本用法 二、Split Button 的应用场景1. 提交操作2. 导出操作3. 文件操作 三、Split Button 的样式定制1. 变体&#xff08;Variants&#xff09;2. 颜色&#xff08;Colors&#xff09; 四、Split Button 的优势1. 提升用户体验…

信创安全 | 新一代内网安全方案—零信任沙盒

在当今数字化时代&#xff0c;访问安全和数据安全成为企业面临的重要挑战。传统的边界防御已经无法满足日益复杂的内网办公环境&#xff0c;层出不穷的攻击手段已经让市场单一的防御手段黔驴技穷。当企业面临越来越复杂的网络威胁和数据泄密风险时&#xff0c;更需要一种综合的…

数字新时代,如何守护网络空间安全?(非常详细)零基础入门到精通,收藏这一篇就够了

- 书籍推荐 - 网络空间已经成为继陆、海、空、天之后的第五疆域。随着大数据、云计算、人工智能的迅速发展&#xff0c;网络入侵、信息恶意窃取、数据篡改以及伪造攻击等行为严重影响国家安全&#xff0c;也损害公民、法人及其他组织的合法权益。毫无疑问&#xff0c;网络空间安…

华为OD-D卷多段线数据压缩

下图中&#xff0c;每个方块代表一个像素&#xff0c;每个像素用其行号和列号表示。 为简化处理&#xff0c;多段线的走向只能是水平、竖直、斜向45度。 上图中的多段线可以用下面的坐标串表示&#xff1a;(2, 8), (3, 7), (3, 6), (3, 5), (4, 4), (5, 3), (6, 2), (7, 3), (8…