当前位置: 首页 > 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;打开后…...

Win10 + Bindiff 6.0 + IDA 7.5 环境配置与实战对比指南

1. 环境准备&#xff1a;Win10下的基础配置 在开始二进制分析之前&#xff0c;我们需要先搭建好基础环境。我推荐使用Win10 64位系统作为工作平台&#xff0c;因为它在兼容性和稳定性方面表现都很不错。记得关闭杀毒软件的实时防护功能&#xff0c;避免误报导致安装失败。我自己…...

Prompt即API:将智能代码生成接入CI/CD流水线的4层抽象架构(含OpenAPI Schema定义与验证工具链)

第一章&#xff1a;Prompt即API&#xff1a;将智能代码生成接入CI/CD流水线的4层抽象架构&#xff08;含OpenAPI Schema定义与验证工具链&#xff09; 2026奇点智能技术大会(https://ml-summit.org) 当提示词&#xff08;Prompt&#xff09;被赋予结构化契约、可验证输入输出…...

如何从SQL获取当前登录用户数据_使用系统上下文函数

...

别再写if-elseif-else了!Matlab里这5个坑,新手程序员踩过几个?

别再写if-elseif-else了&#xff01;Matlab里这5个坑&#xff0c;新手程序员踩过几个&#xff1f; 刚接触Matlab时&#xff0c;我总以为条件语句不过是if-else的简单组合——直到某次调试让我对着屏幕怀疑人生。为什么明明逻辑正确的代码就是跑不出预期结果&#xff1f;为什么看…...

面试官:堆外内存爆了,Dump 文件没用,你怎么定位?3招定位线上“幽灵内存泄漏”

如果是堆外内存&#xff08;Direct Memory&#xff09;溢出怎么办&#xff1f;我看监控面板&#xff0c;Heap用得很少&#xff0c;但机器的内存RSS一直在飙升&#xff0c;最后进程直接被Linux的OOM Killer杀掉了。用MAT打开Dump文件&#xff0c;里面啥也没有&#xff0c;这咋整…...

别再只盯着模型权重量化了!深入拆解KV Cache量化如何成为LLM推理服务的‘降本增效’关键

KV Cache量化&#xff1a;解锁大模型推理服务的成本与性能平衡之道 在大型语言模型&#xff08;LLM&#xff09;的商业化部署浪潮中&#xff0c;企业技术团队正面临一个关键矛盾&#xff1a;如何在不牺牲服务质量的前提下&#xff0c;显著降低推理服务的运营成本&#xff1f;当…...

漫画迷的离线宝库:一键构建你的私人漫画图书馆

漫画迷的离线宝库&#xff1a;一键构建你的私人漫画图书馆 【免费下载链接】comics-downloader tool to download comics and manga in pdf/epub/cbr/cbz from a website 项目地址: https://gitcode.com/gh_mirrors/co/comics-downloader 还在为网络不稳定无法畅快阅读漫…...

告别TEM制样烦恼:用扫描电镜的ECCI技术无损表征块状样品位错(附操作要点)

解锁材料微观世界的无损密码&#xff1a;ECCI技术在位错表征中的革命性突破 当你在实验室里面对一块珍贵的TWIP钢试样&#xff0c;既需要了解其位错结构又不忍心将它减薄成TEM样品时&#xff0c;ECCI技术就像一位精通无损检测的"材料医生"。这项基于扫描电镜的电子通…...

04华夏之光永存:黄大年茶思屋榜文解法「第7期4题」信道色散补偿方案·双路径解法

华夏之光永存&#xff1a;黄大年茶思屋榜文解法「第7期4题」 信道色散补偿方案双路径解法&#xff08;约束内最优本源降维&#xff09; 一、摘要 本题为高速光通信领域底层核心技术难题&#xff0c;本文采用工程化可复现逻辑&#xff0c;提供两条标准化解题路径&#xff0c;全程…...

docker下的gitlab的备份 超简单之法

背景&#xff1a;docker下的gitlab&#xff0c;启动命令如下&#xff0c;使用gitlab-rake进行数据备份。备份目录回到绑定的本地的/home/gitlab/data下。gitlab.shdocker stop gitlab docker rm gitlab docker run -d \--privilegedtrue \--hostname 服务器IP \--publish 443:4…...