vue3 antd项目实战——修改和增加公用一个弹窗(页面组件传值)

news2024/11/24 0:18:31

vue3 antd项目实战——修改和增加公用一个弹窗(页面组件传值)

  • 往期知识调用(步骤不懂就看这儿)
  • 场景复现
  • 实战演示
    • 基础modal框的搭建
    • 现在我们就可以实现modal框及内部表单的动态绑定了!!! ![在这里插入图片描述](https://img-blog.csdnimg.cn/17bd1fd3bc8745c78dcecdf52399e2e8.gif)

往期知识调用(步骤不懂就看这儿)

文章内容文章链接
vue知识专栏https://blog.csdn.net/xsl_hr/category_12021337.html?spm=1001.2014.3001.5482
ant design vue组件库的引入与使用https://blog.csdn.net/XSL_HR/article/details/127396384

场景复现

在近期的项目开发中,碰到了一个关于数据编辑的页面是采用深入一个页面的方式还是采用dialog/modal弹窗的方式的问题(具体需求如下)。涉及到ant design vue组件库中modal模态框的使用,以及vue中的双向绑定方法。因此本期文章以需求为主线,学习上述两个知识点,实现需求。👇👇👇

具体需求

  • 表单内容较少时,使用modal框显示
  • 表单内容较多且操作复杂时,使用深入一个页面的方式

方法

  • 对modal框的标题进行动态绑定
  • 借助v-if对modal框中的form表单进行条件渲染

最终效果:(采用modal框)
在这里插入图片描述
最终效果:(深入一个页面)
在这里插入图片描述

我们不难发现,采用modal框时,表单内容只有两条或者三条甚至更少,都是简单的操作组件,不涉及到复杂的表单组件(比如上传文件组件)。而采用深入一个页面的方法时,表单内容明显复杂许多,涉及到多个内容的编辑,以及复杂的查空校验,因此不建议选择modal框进行单页面展示。

实战演示

下面将通过实战代码来实现上述需求👇👇👇

项目的UI框架依旧采用ant design vue组件库(移步官方文档查看详情)

搭建之前,我们先看看官方文档对modal的介绍,搭建适合共用的modal框。
在这里插入图片描述

在这里插入图片描述
我们需要注意三个属性和两个方法👇👇👇
在这里插入图片描述
我们可以利用footer属性,取消modal框底部的按钮,这样方便我们自定义样式。
在这里插入图片描述
我们可以通过title属性动态绑定标题,但是这里标题的样式显然不符合弹窗内容的通用排版,因此这里我们不使用title进行动态赋值。
在这里插入图片描述
visible是modal框甚至其他弹窗组件至关重要的一个属性,因为它决定着组件的显示与否。所以不管什么时候对需要对visible进行双向数据绑定。
在这里插入图片描述
确认和取消的回调函数,有时候点击叉叉按钮,表单并不会消失,这里可能是回调出了问题,我们可以手写一个关闭函数,来控制modal框的关闭。

基础modal框的搭建

首先我们来搭建一个没有任何表单内容的modal框,只搭建好大体的逻辑。

<template>
  <a-modal 
    :visible="visible"                
    :footer="null"
    >
  </a-modal>
</template>
<script setup lang="ts">
// 表格数据加载
const spinning = ref<boolean>(false) 
</script>

下一步我们开始填充modal框里面的内容

  <a-modal 
    :visible="visible"                
    :footer="null"
    @cancel="resetFormData()"
    >
    <a-form 
      class="form" 
      :model="tweetFormData"
      :label-col="{ span: 5 }"
      :wrapper-col="{ span: 17 }"
      autocomplete="off"
      ref="formRef"
      >
      <p>{{dialogTitle}}</p>
      <a-form-item
        label="推文标题"
        name="tweetTitle"
        :rules="[
          {required: true, message: '推文标题不能为空'}
          ]"
        >
        <a-input
          placeholder="请输入推文标题"
          v-model:value="tweetFormData.tweetTitle"
          allow-clear
          show-count
        />
      </a-form-item>
      <a-form-item
        label="推文链接"
        name="tweetLink"
        :rules="[
          {required: true, message: '推文链接不能为空'}
          ]"
        >
        <a-textarea
          placeholder="请输入推文链接"
          v-model:value="tweetFormData.tweetLink"
          allow-clear
          show-count
        />
      </a-form-item>
      <p>
        <a-button @click="resetFormData()">取消</a-button>
        <a-button 
            type="primary" 
            style="margin-left:10px"
            @click="confirmContent(updateObject)"
            >确定</a-button>
    </p>
    </a-form>
  </a-modal>

绑定的数据及数据类型,以及对应的函数如下👇👇👇

const dialogTitle = ref<string>("添加推文卡片信息")
const tweetFormData = ref<tweetFormDataType>({
  tweetLink:"", // 推文链接
  tweetTitle:"",
})

// 关闭弹窗清空数据
const resetFormData = () => {
  console.log("guanbi")
  visible.value = false
  tweetFormData.value = {
    tweetLink:'',
    tweetTitle:"",
  }
}

// 确认弹窗内容
const confirmContent = async(updateObject:string) => {
  // console.log(dialogTitle.value)
  if(tweetFormData.value.tweetLink == '' || tweetFormData.value.tweetTitle == '') {
    message.warning("信息不能为空!!请检查输入!!")
  } else {
    // 调用新增或者修改的函数
  }
}

关于modal框以及内部表单的搭建已经完成,还剩下表单表头数据的动态渲染,这个时候我们需要在点击新建和修改的两个函数里,对表单表头数据进行动态赋值。

// 生成新推文卡片
const insertTweet = async() => {
  // 打开弹窗
  visible.value = true
  dialogTitle.value = '添加推文卡片信息'
}

// 修改推文卡片
const updateTweet = async(tweetId:string) => {
  // 打开弹窗
  visible.value = true
  dialogTitle.value = '修改推文卡片信息'
  // 根据id获取推文卡片信息
}

现在我们就可以实现modal框及内部表单的动态绑定了!!!
在这里插入图片描述

此时,需求已经全部实现!!
以上就是关于的vue antd项目实战中修改和增加如何共用一个弹窗的知识分享,相信看完这篇文章的小伙伴们一定能运用这些方法在项目开发中。当然,可能有不足的地方,欢迎大家在评论区留言指正!


下期文章将介绍微信小程序【报错】更新域名~ ~
感兴趣的小伙伴可以订阅本专栏,方便后续了解学习~
觉得这篇文章有用的小伙伴们可以点赞➕收藏➕关注哦~

在这里插入图片描述

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

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

相关文章

国内可用 ChatGPT 网页版

前言 ChatGPT持续火热&#xff0c;然鹅国内很多人还是不会使用。 2023年6月1日消息&#xff0c;ChatGPT 聊天机器人可以根据用户的输入生成各种各样的文本&#xff0c;包括代码。但是&#xff0c;加拿大魁北克大学的四位研究人员发现&#xff0c;ChatGPT 生成的代码往往存在严…

读改变未来的九大算法笔记01_数据压缩

1. 起源 1.1. 香农–法诺编码&#xff08;Shannon-Fano Coding&#xff09; 1.1.1. 克劳德香农 1.1.1.1. 1948年论文创建信息理论领域的贝尔实验室科学家 1.1.2. 麻省理工学院教授罗伯特法诺&#xff08;Robert Fano&#xff09; 1.2. 霍夫曼编码 1.2.1. 大卫霍夫曼 1.2…

chatgpt赋能python:Python关联图简介

Python关联图简介 Python语言是一种非常流行和广泛使用的语言&#xff0c;可用于各种用途&#xff0c;包括数据分析和数据可视化。在数据可视化方面&#xff0c;Python有许多强大的库和工具&#xff0c;可以用来创建各种类型的图表和图形。其中之一是Python关联图。 在本篇文…

LNMP应用

安装 Nginx 服务 systemctl stop firewalld systemctl disable firewalld setenforce 0 1、安装依赖包 yum -y install pcre-devel zlib-devel gcc gcc-c make2、创建运行用户 useradd -M -s /sbin/nologin nginx3、编译安装 cd /opt tar zxvf nginx-1.12.0.tar.gz -C /op…

chatgpt赋能Python-python关联分析算法

介绍 Python是一种高级、通用、直译式编程语言。在数据科学和机器学习领域&#xff0c;它已成为首选语言之一。它有很多强大的库和框架&#xff0c;可以帮助数据分析师、科学家和工程师处理大量数据。Python关联分析算法就是其中之一。 Python关联分析算法可以帮助我们在数据…

MobileNetv1、MobileNetv2、MobileNetv3网络讲解

MobileNetv1、MobileNetv2、MobileNetv3网络讲解_mobilenetv3和mobilenetv2_I松风水月的博客-CSDN博客MobileNetv1、MobileNetv2、MobileNetv3网络讲解https://blog.csdn.net/qq_38683460/article/details/127409816

ChatGPT工作提效之layedit上传多附件的解决方案(layedit赋值、layui.js底层修改、追加模式多附件上传)

ChatGPT工作提效系列文章目录 ChatGPT工作提效之初探路径独孤九剑遇强则强ChatGPT工作提效之在程序开发中的巧劲和指令(创建MySQL语句、PHP语句、Javascript用法、python的交互)ChatGPT工作提效之生成开发需求和报价单并转为Excel格式ChatGPT工作提效之小鹅通二次开发批量API对…

人体姿态估计与MMPose

姿态估计&#xff1a;从给定的图像中识别人脸、手部、身体等关键点 输入&#xff1a;图像I 输出&#xff1a;所有关键点的像素坐标 2D姿态估计&#xff1a;在图像上定位人体关键点的坐标 基本思路&#xff1a; 1.将关键点检测建模为回归问题&#xff0c;让模型直接回归关键点…

共享打印机,报错0x0000011b不重装系统如何能使用(教程)

连接共享打印机0x0000011b共享打印机报错大家都遇到过吧&#xff1f;下面介绍个小方法供大家参考一下。 1.下载对应的打印机驱动并安装 2.1手动添加打印机 2.2点击‘我需要的打印机不在列表中’ 2.3选择手动设置添加本地打印机 2.4创建新的端口&#xff0c;如图所示 这里输入共…

I.MX6ull CP15协处理器

CP15 CP15协处理器是ARM处理器中一门重要的协处理器&#xff0c;主要用来控制 cache、TCM&#xff08; tiny code memory&#xff09;和存储器管理。 CP15协处理器包含16个32位的寄存器&#xff0c;其编号为0~15&#xff0c;其中CP15寄存器0是预留的&#xff0c;所以CP15实际有…

C#:在word表格中的某一行下面插入新行

今天要讲的文章是关于Word开发的相关知识&#xff0c;以前开发的过程中关于办公类文件的开发&#xff0c;做过PDF和Excel以及TXT或者是XML等文件的开发。没有做过Word文件的开发&#xff0c;刚接触了一些关于Word方面开发的知识下面分享给大家。 首先开发Word&#xff0c;需要…

chatgpt赋能python:Python免费开发环境介绍

Python免费开发环境介绍 Python是一种简单易学的编程语言&#xff0c;它有着很多应用场景&#xff0c;例如Web开发、数据科学、自动化脚本等等。对于想要学习Python的人来说&#xff0c;选择一个好的开发环境是至关重要的。由于Python是免费的&#xff0c;因此有许多免费的Pyt…

chatgpt赋能python:Python入侵WiFi网络:了解攻击方法和防范措施

Python入侵WiFi网络&#xff1a;了解攻击方法和防范措施 WiFi网络是现代生活中必不可少的组成部分&#xff0c;而Python编程语言可以用于许多WiFi网络应用&#xff0c;包括网络管理、渗透测试等。然而&#xff0c;Python也可以被黑客用于入侵WiFi网络&#xff0c;从而窃取信息…

chatgpt赋能python:Python关联规则Apriori算法

Python关联规则Apriori算法 介绍 Apriori算法是一个常用的关联规则挖掘算法&#xff0c;用于挖掘商品之间的关联关系。该算法的基本思想是先通过扫描数据集&#xff0c;找到满足最小支持度的所有项集&#xff0c;再通过计算置信度&#xff0c;从而得到满足最小置信度的强关联…

mysql查询语句执行过程及运行原理命令

Mysql查询语句执行原理 数据库查询语句如何执行&#xff1f; DML语句首先进行语法分析&#xff0c;对使用sql表示的查询进行语法分析&#xff0c;生成查询语法分析树。语义检查&#xff1a;检查sql中所涉及的对象以及是否在数据库中存在&#xff0c;用户是否具有操作权限等视…

(业务向) 数据分析知识 + 产品

数据分析方法 趋势分析法、对比分析法、多维分解法、用户细查、漏斗分析、留存分析、AB测试法、4P理论、PESTEL理论、SWOT分析、5W2H理论、逻辑树理论、用户使用行为理论、AARRR模型 数据指标体系 1. 概述 指标&#xff0c;是反映某种事物或现象&#xff0c;描述在一定时间和…

MAE(Masked Autoencoders) 详解

MAE详解 0. 引言1. 网络结构1.1 Mask 策略1.2 Encoder1.3 Decoder2. 关键问题解答2.1 进行分类任务怎么来做&#xff1f;2.2 非对称的编码器和解码器机制的介绍2.3 损失函数是怎么计算的&#xff1f;2.4 bert把mask放在编码端&#xff0c;为什么MAE加在解码端&#xff1f; 3. 总…

chatgpt赋能python:Python做词云:从入门到精通

Python做词云&#xff1a;从入门到精通 如果你对数据可视化有所追求&#xff0c;那么词云图一定会是你的首选之一。Python作为一种常用的编程语言&#xff0c;在这个领域也有着广泛的应用。本文将介绍Python做词云的方法&#xff0c;从入门到精通&#xff0c;让你轻松掌握这一…

伍尔特IT公司利用SNP软件实现SAP系统现代化

近日&#xff0c;SAP生态伙伴中的自动化数据迁移和数据管理软件提供商SNP公司&#xff0c;正在支持伍尔特IT公司&#xff08;Wrth IT&#xff09; 向SAP S/4HANA转型。伍尔特集团的全球IT服务提供商计划首先整合其现有的ECC系统&#xff0c;然后进行标准化&#xff0c;最后将清…

数据结构与算法课程设计---最小生成树的应用

文章目录 一.课题概述1.问题2.分析3.目标 二.图的实现1.图的存储结构2.图的基本操作2.1添加顶点2.2添加边弧2.3Kruskal算法2.4Prim算法 三.堆的实现1.堆的概念及结构2.堆的基本操作2.1入堆&#xff08;向上调整算法&#xff09;2.2出堆&#xff08;向下调整算法&#xff09; 四…