当前位置: 首页 > news >正文

为Element Plus封装业务组件FormDialog,将所有需要填写表单的弹窗组件封装,方便快速配置

使用FormDialog组件能够对表单弹窗进行快速配置,不用每次单独写弹窗表单业务组件,快速实现表单弹窗业务功能。

调用页面demo.vue

 validateRules.js引用

<script setup lang="ts">
import FormDialog from '@/components/FormDialog/index.vue'
import { validateRules } from '@/utils/validate'const formDialogRef = ref({})
const ruleFormRef = ref({})
const withdrawDialog = reactive({form: {pointName: '',},rules: {pointName: [validateRules.required('名称'),validateRules.max(10),],},confirm: {onClick(visible: { value: boolean }) {visible.value = falseconsole.log('withdrawDialog.form is: ', JSON.stringify(withdrawDialog.form))},},handleVisibleChange(v) {if (v) { // 处理回显加载等操作withdrawDialog.form.pointName = 'test'}else {ruleFormRef.value.resetFields()}},
})
</script><template><el-buttonlinktype="primary" @click="formDialogRef.open()">测试表单窗口</el-button><FormDialogref="formDialogRef" title="测试":confirm="withdrawDialog.confirm" width="480"@visible-change="withdrawDialog.handleVisibleChange"><el-formref="ruleFormRef":model="withdrawDialog.form":rules="withdrawDialog.rules"label-width="120px"class="demo-ruleForm"><el-form-item label="名称" prop="pointName"><el-input v-model="withdrawDialog.form.pointName" maxlength="50" /></el-form-item></el-form></FormDialog>
</template>

 FormDialog/index.vue

useDialog.js引用

<script lang="ts" setup>
import { useDialog } from '@/utils/useDialog'const props = defineProps({title: {type: String,},hideCancel: {type: Boolean,},cancel: {type: Object,default: () => ({show: true,}),},confirm: {type: Object,default: () => ({show: true,disabled: false,onClick: null,}),},width: {type: [Number, String],},
})
const emit = defineEmits(['visibleChange'])
const dialog = useDialog({ title: props.title, confirmDisabled: props.confirm.disabled })
const open = (data: any) => {dialog.visible.value = truedialog.data.value = data
}
watch(() => props.confirm.disabled, v => dialog.setConfirmDisabled(v))
watch(() => dialog.visible.value, v => emit('visibleChange', v))
const handleConfirmClick = () => {if (typeof props.confirm.onClick === 'function') {props.confirm.onClick(dialog.visible)}else {dialog.visible.value = false}
}
defineExpose({ open })
</script><template><el-dialogv-model="dialog.visible.value":title="dialog.title.value"class="form-dialog":before-close="dialog.handleClose"align-center:style="{ width: width ? (width.includes('px') ? width : `${width}px`) : null }"><slot /><template #footer><span class="dialog-footer"><el-button v-if="!hideCancel && cancel.show" auto-insert-space @click="dialog.visible.value = false">取消</el-button><el-buttonv-if="confirm.show || confirm.show === undefined":disabled="confirm.disabled"type="primary" auto-insert-space @click="handleConfirmClick">确认</el-button></span></template></el-dialog>
</template><style lang="scss">.form-dialog {.el-dialog__body{width: 100%;}}
</style>

相关文章:

为Element Plus封装业务组件FormDialog,将所有需要填写表单的弹窗组件封装,方便快速配置

使用FormDialog组件能够对表单弹窗进行快速配置&#xff0c;不用每次单独写弹窗表单业务组件&#xff0c;快速实现表单弹窗业务功能。 调用页面demo.vue validateRules.js引用 <script setup lang"ts"> import FormDialog from /components/FormDialog/index…...

ubuntu 设置和取消代理

背景 因为国内环境限制&#xff0c;在 linux 上安装一些软件的时候&#xff0c;因为限制就安装不了&#xff0c; 此时就可以通过设置代理的方式来规避这种问题&#xff0c;下面是具体的设置方式 步骤 sudo vim /etc/profile.d/proxy.sh添加以下内容到文件中 export http_pro…...

YOLOv7-PTQ量化部署

目录 前言一、PTQ量化浅析二、YOLOv7模型训练1. 项目的克隆和必要的环境依赖1.1 项目的克隆1.2 项目代码结构整体介绍1.3 环境安装 2. 数据集和预训练权重的准备2.1 数据集2.2 预训练权重准备 3. 训练模型3.1 修改模型配置文件3.2 修改数据配置文件3.3 训练模型3.4 mAP测试 三、…...

【网络协议】聊聊ICMP与ping是如何测试网络联通性

ICMP协议格式 ping是基于iCMP协议工作的&#xff0c;ICMP全称Internet Control Message Protocol&#xff0c;就是互联网控制报文协议。其实就是有点类似于古代行军打仗&#xff0c;哨探进行前方探明具体情况。 IMCP本身处于网络层&#xff0c;将报文封装在IP包里&#xff0c;…...

nginx tomcat 动静分离

动静分离&#xff1a; 访问静态和动态页面分开 实现动态和静态页面负载均衡。 五台虚拟机 实验1&#xff0c;动静分离 思路&#xff1a; 需要设备&#xff1a;三台虚拟机 一台nginx 代理又是静态 两台tomcat 请求动态页面 在全局模块中配置upstream tomcat 新建location…...

java读取指定文件夹下的全部文件,并输出文件名,文件大小,文件创建时间

import java.io.IOException; import java.nio.file.*; import java.nio.file.attribute.*; import java.util.ArrayList; import java.util.List; public class Main { public static void main(String[] args) { try { Path startingDir Paths.get("你的目…...

leetcode 105. 从前序与中序遍历序列构造二叉树

2023.10.21 本题需要根据前序遍历序列和中序遍历序列来构造出一颗二叉树。类似于从中序与后序遍历序列构造二叉树 。使用递归&#xff0c; java代码如下&#xff1a; /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* …...

【试题039】 多个逻辑或例题

题目&#xff1a;设int n;,执行表达式(n0)||(n1)||(n2)||(n3)后,n的值是&#xff1f;代码分析&#xff1a; //设int n; , 执行表达式(n 0) || (n 1) ||(n 2) ||(n 3)后, n的值是?int n;printf("n%d\n", (n 0) || (n 1) || (n 2) || (n 3));//分析&#xff1…...

打卡go学习第一天

8.1 下面展示一些 代码。 package mainimport ("fmt""net""os""time" )type Clock struct {Name stringAddr string &#xff5d; func main() {clocks : []Clock{{Name: "New York", Addr: "localhost:8000"…...

julia 笔记: 流程控制

1 复合表达式 用一个表达式有序地计算若干子表达式&#xff0c;并返回最后一个子表达式的值 1.1 begin代码块 z beginx 1y 2x yend z #3begin x 1; y 2; x y end #3 1.2 ;链 (x 1; y 2; x y) #3(x 1; y 2; x y) 3 2 条件表达式 x1 y2if x < yprintln(&q…...

【c++】 跟webrtc学周期性任务:tgcalls 5 网络超时检查

tgcalls 网络超时检查 G:\CDN\P2P-DEV\tdesktop-offical\Telegram\ThirdParty\tgcalls\tgcalls\NetworkManager.cppPostDelayedTask 使用的是rtc thread 方法 PostDelayedTask :G:\CDN\P2P-DEV\Libraries\tg_owt\src\rtc_base\thread.htemplate <class Closure,typename st…...

面试算法33:变位词组

题目 给定一组单词&#xff0c;请将它们按照变位词分组。例如&#xff0c;输入一组单词[“eat”&#xff0c;“tea”&#xff0c;“tan”&#xff0c;“ate”&#xff0c;“nat”&#xff0c;“bat”]&#xff0c;这组单词可以分成3组&#xff0c;分别是[“eat”&#xff0c;“…...

【C语言】每日一题(旋转数组)

旋转数组&#xff0c;链接奉上 目录 方法:创建额外的数组&#xff1a;整体思路&#xff1a;代码实现&#xff1a; 数组反转&#xff1a;整体思路&#xff1a;代码实现&#xff1a;小插曲&#xff1a; 方法: 创建额外的数组&#xff1a; 整体思路&#xff1a; 创建一个额外的…...

系统架构师考试科目一:综合知识

某软件公司欲开发一个 Windows 平台上的公告板系统。在明确用户需求后&#xff0c;该公司的 架构师决定采用 Command 模式实现该系统的界面显示部分&#xff0c;并设计 UML 类图如下 图所示。图中与 Command 模式中的 Invoker 角色相对应的类是( ) &#xff0c;与 ConcreteComm…...

面向对象与面向过程讲解

目录 简介 面向过程编程&#xff08;Procedural Programming&#xff09; 什么是面向过程编程&#xff1f; 特点&#xff1a; 面向对象编程&#xff08;Object-Oriented Programming&#xff09; 什么是面向对象编程&#xff1f; 特点&#xff1a; 面向对象 vs. 面向过程…...

【SA8295P 源码分析 (四)】23 - QNX Ethernet MAC 驱动 之 emac1_config.conf 配置文件解析

【SA8295P 源码分析】23 - QNX Ethernet MAC 驱动 之 emac1_config.conf 配置文件解析 系列文章汇总见:《【SA8295P 源码分析 (四)】网络模块 文章链接汇总 - 持续更新中》 本文链接:《【SA8295P 源码分析 (四)】23 - QNX Ethernet MAC 驱动 之 emac1_config.conf 配置文件解…...

Python【list列表去重】

目录 要求&#xff1a; 将list中的重复数据去重&#xff0c;至少使用两种方案 方案一&#xff1a; 方案二&#xff1a; 要求&#xff1a; 将list中的重复数据去重&#xff0c;至少使用两种方案 方案一&#xff1a; 使用set &#xff0c;可以将list转换为set&#xff0…...

Leetcode——字符

520. 检测大写字母 class Solution { public:bool detectCapitalUse(string word) {int big 0, small 0, len word.length();for (int i 0; i < len; i) {if (word[i] > 65 && word[i] < 90) {big;}else {small;}}if (big len || small len) {return tr…...

深入解析docker内核网桥

今天做虚拟桌面&#xff0c;朋友问我&#xff0c;为什么vnc 连接另一个docker 容器一直超时&#xff0c;原因是在docker 启动的时候没有组网&#xff0c;那么接下来我就要解析下docker的内核网络。 我们思考几个问题&#xff0c;带你了解linux 中docker 网络实现的基本原理。 文…...

ubuntu18.04服务器双网口配置上外网

记录一下配置服务器过程&#xff0c;本以为简单&#xff0c;结果整了一天。 服务器有2个网口&#xff0c;网口2是用来上外网的&#xff0c;原来用的01-netcfg.yaml进行ip地址设置&#xff0c;主要就用2条命令&#xff1a; vi /etc/netplan/01-netcfg.yaml &#xff08;打开后…...

04-初识css

一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

基于matlab策略迭代和值迭代法的动态规划

经典的基于策略迭代和值迭代法的动态规划matlab代码&#xff0c;实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

Pinocchio 库详解及其在足式机器人上的应用

Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库&#xff0c;专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性&#xff0c;并提供了一个通用的框架&…...

C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...

毫米波雷达基础理论(3D+4D)

3D、4D毫米波雷达基础知识及厂商选型 PreView : https://mp.weixin.qq.com/s/bQkju4r6med7I3TBGJI_bQ 1. FMCW毫米波雷达基础知识 主要参考博文&#xff1a; 一文入门汽车毫米波雷达基本原理 &#xff1a;https://mp.weixin.qq.com/s/_EN7A5lKcz2Eh8dLnjE19w 毫米波雷达基础…...

用 Rust 重写 Linux 内核模块实战:迈向安全内核的新篇章

用 Rust 重写 Linux 内核模块实战&#xff1a;迈向安全内核的新篇章 ​​摘要&#xff1a;​​ 操作系统内核的安全性、稳定性至关重要。传统 Linux 内核模块开发长期依赖于 C 语言&#xff0c;受限于 C 语言本身的内存安全和并发安全问题&#xff0c;开发复杂模块极易引入难以…...

python打卡第47天

昨天代码中注意力热图的部分顺移至今天 知识点回顾&#xff1a; 热力图 作业&#xff1a;对比不同卷积层热图可视化的结果 def visualize_attention_map(model, test_loader, device, class_names, num_samples3):"""可视化模型的注意力热力图&#xff0c;展示模…...

「Java基本语法」变量的使用

变量定义 变量是程序中存储数据的容器&#xff0c;用于保存可变的数据值。在Java中&#xff0c;变量必须先声明后使用&#xff0c;声明时需指定变量的数据类型和变量名。 语法 数据类型 变量名 [ 初始值]; 示例&#xff1a;声明与初始化 public class VariableDemo {publi…...

【系统架构设计师-2025上半年真题】综合知识-参考答案及部分详解(回忆版)

更多内容请见: 备考系统架构设计师-专栏介绍和目录 文章目录 【第1题】【第2题】【第3题】【第4题】【第5题】【第6题】【第7题】【第8题】【第9题】【第10题】【第11题】【第12题】【第13题】【第14题】【第15题】【第16题】【第17题】【第18题】【第19题】【第20~21题】【第…...