vue3大事件项目3

news2024/12/23 10:15:16

弹框验证

先准备变量:

const formModel = ref({

  cate_name: '',

  cate_alias: ''

})

还有规则:

const rules = {

  cate_name: [

    { required: true, message: 'please input name', trigger: 'blur' },

    {

      pattern: /^\S{1,10}$/,

      message: 'must be 1-10',

      trigger: 'blur'

    }

  ],

  cate_alias: [

    { required: true, message: 'please input second name', trigger: 'blur' },

    {

      pattern: /^[a-zA-Z0-9]{1,15}$/,

      message: 'must be 1-15 number or aphlet',

      trigger: 'blur'

    }

  ]

}

1. form表单绑定变量和规则:<el-form :model="formModel" :rules="rules">

2.input框配置  v-model

 <el-input 

          v-model="formModel.cate_alias"

        ></el-input>

3. el-form-item标签配置prop,用于接收参数<el-form-item label="分类别名" prop="cate_name">

prop用于指定表单项所对应的Vue实例数据对象中的属性名。当你需要在表单提交时获取或验证表单项的值,就需要用到prop属性。

编辑需要回显,表单数据需要初始化

编辑时,数据回显

添加时为空

封装的组件当中

//组件对外暴露一个方法open,基于open传来的参数,区分是添加还是编辑
//open({}) => 表单没有渲染,说明是添加
//open({id,cate_name,...}) => 表单需要渲染,说明是编辑
//open调用后,可以打开弹窗
const open = (row) => {
  dialogVisible.value = true
  // formModel.value展开
  //添加 -> 传空值,相当于重置表单内容
  //编辑 -> 存储需要回显的数据
  formModel.value = { ...row }
}

基于传过来的表单数据,进行标题控制,有 id 的是编辑,没有的是添加,注意最外层加双引号

 <el-dialog
    v-model="dialogVisible"
    :title="formModel.id ? 'edit' : 'add'"
   >

添加或编辑完成后提交数据

1.封装接口:添加文章分类,post和编辑文章分类,put

//添加文章分类,post
export const artaddChannelService = (data) => request.post('/my/cate/add', data)
//编辑文章分类,put
export const arteditChannelService = (data) =>
  request.put('/my/cate/info', data)

2.为按钮绑定点击事件onSubmit

     <el-button type="primary" @click="onSubmit"> Confirm </el-button>

3.封装onSubmit

先校验,之后判断open方法有没有传id过来,有就是编辑,没有就是添加

const onSubmit = async () => {
  //校验,检验通过就执行下一步
  await formRef.value.validate()
  const isEdit = formModel.value.id
  if (isEdit) {
    await arteditChannelService(formModel.value)
    ElMessage.success('success edit')
  } else {
    await artaddChannelService(formModel.value)
    ElMessage.success('success add')
  }
}

4.在channelEdit里导入封装好的接口

import { arteditChannelService, artaddChannelService } from '@/api/article.js'

5.效果

6.备注:如果弹框不出现,就在最上面导入

import 'element-plus/dist/index.css'

7.关弹层

 //关弹窗
  dialogVisible.value = false

8.通知父组件

defineEmits` 是一个组合 API,用于定义父组件可以监听的子组件事件。

const emit = defineEmits(['success'])

当前的Vue组件正在向其父组件发出一个名为 'success' 的自定义事件。

  //通知父组件
  emit('success')

为了响应这个事件,父组件需要在其模板中使用 v-on 指令(或者简写为 @)来监听这个事件。

父组件:调用子组件

  <channel-edit ref="dialog" @success="onSuccess"></channel-edit>

父组件:封装方法(getChannelList()是父组件已经封装好的方法)

const onSuccess = () => {
  getChannelList()
}

9.完成:可以成功添加或修改,并且自动渲染


​​​​​​​

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

windows下使用nginx设置静态资源路由

1、下载nginx http://nginx.org/en/download.html 下载稳定版本&#xff0c;以nginx/Windows-1.24.0为例&#xff0c;下载后解压&#xff0c;解压后如下&#xff1a; 2、启动nginx 打开cmd命令窗口&#xff0c;切换到nginx解压目录下&#xff1a; start nginx # 启动nginx服务…

浮点数表示的数值范围详解(一)

学生问了一个问题&#xff1a; 这个问题如果想讲明白&#xff0c;需要将基础知识复习一下。 一、定点数 1、什么是定点数&#xff1f; 定点数指小数点在数中位置固定不变的数。 详细解释&#xff1a;计算机中小数点的位置固定不变&#xff0c;小数点前、后的数字&#xff…

一种动态防御策略——移动目标防御(MTD)

文章速览&#xff1a; 1、高级规避攻击 2、用移动目标防御对抗欺骗 常见做法操作系统和应用程序才是真正的战场打破游戏规则 网络攻击的技术变得愈发难测&#xff0c;网络攻击者用多态性、混淆、加密和自我修改乔装他们的恶意软件&#xff0c;以此逃避防御性的检测&#xf…

正基塑业邀您参观2024长三角快递物流供应链与技术装备展览会

2024.7.8-10 杭州国际博览中心 科技创新&#xff0c;数字赋能 同期举办&#xff1a;数字物流技术展新能源商用车及物流车展 电商物流包装展 冷链物流展 展会介绍 2024长三角快递物流供应链与技术装备展览会&#xff08;杭州&#xff09;&#xff0c;于2024年7月8-10日在杭州…

机器学习中的激活函数

激活函数存在的意义&#xff1a; 激活函数决定了某个神经元是否被激活&#xff0c;当这个神经元接收到的信息是有用或无用的时候&#xff0c;激活函数决定了对这个神经元接收到的信息是留下还是抛弃。如果不加激活函数&#xff0c;神经元仅仅做线性变换&#xff0c;那么该神经网…

【C++】priority_queuepriority_queue模拟实现

个人主页 &#xff1a; zxctscl 如有转载请先通知 文章目录 1. priority_queue的介绍2. priority_queue的使用3. 函数模板与类模板4. 仿函数5. priority_queue模拟实现5.1 push5.2 pop5.3 empty5.4 size5.5 top5.6 仿函数实现大小堆5.7 实现自定义类型的优先级队列 6. 附模拟实…

Linux的启动过程,了解一下?

Linux 系统启动过程 linux启动时我们会看到许多启动信息。 Linux系统的启动过程并不是大家想象中的那么复杂&#xff0c;其过程可以分为5个阶段&#xff1a; 内核的引导。运行 init。系统初始化。建立终端 。用户登录系统。 init程序的类型&#xff1a; SysV: init, CentO…

Linux系统编程开发环境搭建

开发环境搭建 桥接网络&#xff08;Bridged Network&#xff09;、网络地址转换&#xff08;NAT, Network Address Translation&#xff09;和主机模式网络&#xff08;Host-only Networking&#xff09; 在虚拟化环境中&#xff0c;常见的三种网络模式是桥接网络&#xff08…

好用的Python开发工具合集

​ Python是一种功能强大且易于学习的编程语言&#xff0c;被广泛应用于数据科学、机器学习、Web开发等领域。随着Python在各个领域的应用越来越广泛&#xff0c;越来越多的Python开发工具也涌现出来。但是&#xff0c;对于新手来说&#xff0c;选择一款合适的Python开发工具可…

OpenHarmony开发实例:【鸿蒙.bin文件烧录】

使用HiBurn烧录鸿蒙.bin文件到Hi3861开发板 鸿蒙官方文档的“Hi3861开发板第一个示例程序”中描述了——如何使用DevEco Device Tool工具烧录二进制文件到Hi3861开发板&#xff1b; 本文将介绍如何使用HiBurn工具烧录鸿蒙的.bin文件到Hi3861开发板。 获取HiBurn工具 通过鸿蒙…

云仓酒庄品酒师培训破大世界基尼斯纪录,市场专业化趋势势如破竹

近日&#xff0c;云仓酒庄举办的品酒师培训活动成功创下大世界基尼斯纪录&#xff0c;这一荣誉不仅彰显了云仓酒庄在酒类培训领域的专业实力&#xff0c;更折射出酒类市场专业化趋势的势如破竹。随着酒类市场的日益成熟和消费者品鉴需求的提升&#xff0c;酒类市场专业化趋势对…

通义千问:官方开放API开发基础

目录 一、模型介绍 1.1主要模型 1.2 计费单价 二、前置条件 2.1 开通DashScope并创建API-KEY 2.2 设置API-KEY 三、基于DashScope SDK开发 3.1 Maven引入SDK 3.2 代码实现 3.3 运行代码 一、模型介绍 通义千问是由阿里云自主研发的大语言模型&#xff0c;用于理解和分…

Vitis HLS 学习笔记--BLAS库之WideType

目录 1. WideType 数据类型 2. WideType 类模板参数 2.1 SFINAE技术 3. WideType 类中的函数 3.1 operator[](unsigned int p_Idx) 3.2 operator(const WideType& p_w) const 3.3 getValAddr() 3.4 operator const t_TypeInt() 4. 总结 1. WideType 数据类型 在 …

Java+saas模式 智慧校园系统源码Java Android +MySQL+ IDEA 多校运营数字化校园云平台源码

Javasaas模式 智慧校园系统源码Java Android MySQL IDEA 多校运营数字化校园云平台源码 智慧校园即智慧化的校园&#xff0c;也指按智慧化标准进行的校园建设&#xff0c;按标准《智慧校园总体框架》中对智慧校园的标准定义是&#xff1a;物理空间和信息空间的有机衔接&#…

前端学习<四>JavaScript基础——26-闭包

闭包的引入 我们知道&#xff0c;变量根据作用域的不同分为两种&#xff1a;全局变量和局部变量。 函数内部可以访问全局变量和局部变量。 函数外部只能访问全局变量&#xff0c;不能访问局部变量。 当函数执行完毕&#xff0c;本作用域内的局部变量会销毁。 比如下面这样…

Ubuntu20从0开始选择合适版本手动安装cuda,torch-geometric,jax

一个全新的ubuntu20台式机&#xff0c;在Additional Drivers安装nvidia-470-server&#xff08;一开始安装450&#xff0c;cunda版本只能到11.0&#xff0c;torch有些库用不了&#xff0c;可以直接切换点击Apply Changes重启就行&#xff09; nvidia-smi查看CUDA Version可到…

Redis 配置与使用 (Linux 虚拟机Windows客户端)

Centos7 安装Redis详细教程 - JcongJason - 博客园 (cnblogs.com) 安装 下载redis安装包并解压 # 下载&#xff0c;我是在root下执行的下载&#xff0c;所以我的下载目录为&#xff1a;/root/redis-5.0.5&#xff0c;这里按照自己的实际情况调整 wget https://download.redi…

JVM、maven、Nexus

一、jvm简介 1.应用程序申请内存时出现的三种情况&#xff1a; ①OOM:内存溢出&#xff0c;是指应用系统中存在无法回收的内存或使用的内存过多&#xff0c;最终使得程序运行要用到的内存大于能提供的最大内存。此时程序就运行不了&#xff0c;系统会提示内存溢出&#xff0c…

css3实现微信扫码登陆动画

在做微信扫码登陆时&#xff0c;出现一个背景光图上下扫码动画&#xff0c;用css3图片实现。 实现原理&#xff1a; 1.准备一个渐变的背景.png图 2.css动画帧实现动画 看效果&#xff1a; css代码&#xff1a; #wx-scan{position: absolute;top:0px;left: 50%;z-index: 3;ma…

错误分析 (Machine Learning研习十九)

错误分析 您将探索数据准备选项&#xff0c;尝试多个模型&#xff0c;筛选出最佳模型&#xff0c;使用 Grid SearchCV微调其超参数&#xff0c;并尽可能实现自动化。在此&#xff0c;我们假设您已经找到了一个有前途的模型&#xff0c;并希望找到改进它的方法。其中一种方法就…