从0开始搭建vue + flask 旅游景点数据分析系统(十):Element-UI消息插件封装

news2024/11/15 12:55:39

上一期我们使用过了elementui的Message来弹出消息提示框,但是上期的写法每次都要在vue文件中引入Message,并且要写不少重复代码,这一期就以插件方式将message封装到Vue的实例中。

创建plugins/message.js

这边加了判断的作用是,如果是直接塞入返回的数据,则不需要判断成功失败,根据返回的response.data.code自行判断。

如果手动传入(我们自己给出消息)这种情况,可以自己给出消息信息和类型,当然如果不传,那么默认是success,消息显示的时间默认是2000ms。

import { Message } from 'element-ui';

Vue.prototype.$message = function(response, type='success', duration = 2000,) {
            let message;
            let messageType;

            // 检查 response.data 是否存在
            if (response.data) {
                message = response.data.message;
                messageType = response.data.code === 0 ? 'success' : 'error';
            } else {
                // 如果 response.data 不存在,直接使用 response
                message = response || '未知错误';
                messageType = type || 'error'; // 使用传入的类型或者默认为 'error'
            }

            // 显示消息
            Message({
                message: message,
                type: messageType,
                duration: duration
            });
        };

export default MessagePlugin;

修改main.js

import MessagePlugin from './plugins/message'; // 引入插件

Vue.use(ElementUI)
Vue.use(MessagePlugin); // 使用插件

然后就可以把之间用到message的地方全部替换掉,例如这样

handleSaveTour() {
      if (this.form.id) {
        updateTour(this.form.id, this.form).then(res=>{
          // console.log(res.data.message)
          this.$message(res); // 使用封装的 $message 函数
        })
      } else {
        addTour(this.form).then(res=>{
          console.log(res.data.message)
          this.$message(res); // 使用封装的 $message 函数
        })
      }

效果:

在这里插入图片描述

再测试下错误的情况,在后端添加一个字段验证:

@main.route('/tour', methods=['POST'])
def add_tour():
    data = request.json  # 获取JSON数据
    # 这里可以进行数据验证,例如检查必填字段是否存在
    required_fields = ['img', 'title', 'title_en', 'comments', 'score', 'select_comment', 'nation', 'city']
    for field in required_fields:
        if field not in data:
            return make_response(code=1, message= f'错误,缺少字段: {field}')

    notnull_fields = ['title']
    for field in notnull_fields:
        if data[field]=='' or data[field]==None:
            return make_response(code=1, message= f'错误,字段不能为空: {field}')

新增一个空的景点(注意,在前端我们没有做任何验证),然后得到的是错误提示,这个是使用插件化的消息框得到的效果:

在这里插入图片描述

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

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

相关文章

备忘录内容可以隐藏内容吗 备忘录内容在哪隐藏

在现代忙碌的生活中,备忘录成为了我们不可或缺的助手。它帮助我们记录重要的事项、想法和灵感,确保我们不会错过任何关键信息。然而,随着备忘录里积累的内容越来越多,很多人开始担心这些私密信息的安全。毕竟,如果备忘…

光影漫游者:品牌推广与产品发布的理想展示空间—轻空间

在竞争日益激烈的市场环境中,品牌推广和产品发布会不仅要传递信息,更要留下深刻印象。而光影漫游者作为创新展示空间的典范,以其现代感十足的外观设计与高科技内饰配置,为企业提供了一个完美的展示平台,最大限度地吸引…

Steinberg SpectraLayers Pro for Mac:专业音频频谱编辑的巅峰之作

Steinberg SpectraLayers Pro for Mac是一款专为音频专业人士设计的专业音频频谱编辑器,它以其强大的频谱编辑功能和直观的操作界面,在音频处理领域树立了新的标杆。该软件不仅为音频编辑工作带来了前所未有的精确度和灵活性,还极大地提升了音…

map/set和unordered_map/unordered_set的区别及使用情况

map/set和unordered_map/unordered_set的区别 容器底层数据结构是否有序实现版本复杂度迭代器map/set红黑树有序C98O(logN)双向迭代器unordered_map/unordered_set哈希表/散列表无序C11O(1)单向迭代器 unordered_set无序的(VS下) void uno…

文件长度超出芯片容量, 超出部份将被忽略!ch341a编程器报错解决方法

出现这个错误提示,说明你正在刷的是华硕主板的cap格式BIOS文件。 编程器不支持这种文件,需要转换成编程器专用版本BIOS文件。 华硕cap格式BIOS转编程器bios文件,转换工具下载地址:https://download.csdn.net/download/baiseled/88…

CentOS 7设置静态IP地址的详细指南

CentOS 7设置静态IP地址的详细指南 配置静态IP地址是服务器或虚拟机管理的重要步骤之一,特别是在需要稳定、可预测的网络环境时。本文将详细介绍如何在CentOS 7上设置静态IP地址,帮助确保你的系统网络配置符合需求。 1. 查看当前网络配置 在进行任何更…

【SpringMVC】详细了解SpringMVC中WEB-INF 目录资源,视图解析器和静态资源放行的使用。

目录 1. 回顾SpringMVC请求转发和重定向 2. WEB-INF资源目录 3. 视图解析器 4. 静态资源放行 1. 回顾SpringMVC请求转发和重定向 概念:在一个项目中功能非常多,也就意味着有非常多的Servlet,不同的Servlet的职不 同 ,而用户发起…

开源网络评论引擎Comentario

什么是 Comentario ? Comentario 是一个轻量级评论平台,您可以使用 Docker 轻松自行托管。这一切都是为了简单和隐私。Comentario 是用 Go 编写的,使其快速且易于使用。支持 Markdown 语法、Disqus 导入、评论投票、垃圾邮件和毒性过滤器、审…

【python】python中如何通过ddddocr来识别验证码,突破滑块移动验证

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全…

zdpgo_cobra_req 新增解析请求体内容

zdpgo_cobra_req 使用Go语言开发的,类似于curl的HTTP客户端请求工具,用于便捷的测试各种HTTP地址 特性 1、帮助文档都是中文的2、支持常见的HTTP请求,比如GET、POST、PUT、DELETE等 下载 git clone https://github.com/zhangdapeng520/z…

Handler 消息处理机制总结

和你一起终身学习,这里是程序员Android 经典好文推荐,通过阅读本文,您将收获以下知识点: 一、Handler 简介二、Handler 消息处理机制原理三、Handler 机制处理的4个关键对象四、 Handler常用方法五、子线程更新UI 异常处理六、主线程给子线程…

1.Java基础概念-注释和关键字

欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 Facts speak louder than words! 注释是在程序的指定位置…

Shell脚本发送邮件的详细步骤与配置方法?

Shell脚本发送邮件的进阶技巧?怎么配置Shell脚本发信? 使用Shell脚本发送邮件是一种高效的自动化手段,特别是在需要定期发送报告、通知或警告信息时。AokSend将详细介绍Shell脚本发送邮件的步骤与配置方法,帮助您更好地掌握这一技…

java: 程序包org.springframework.boot.autoconfigure不存在

通过 mvn -U idea:idea 命令重新加载maven包,具体操作是这样的: 打开cmd窗口cd 到 工程根目录,比如我的工程是:D:\IdeaProjects\demo, 执行 mvn -U idea:idea 命令,完了以后重新运行项目就正常了&#xff…

2024年哪家蓝牙耳机性价比高?分享四款高性价比精品耳机产品

随着科技的发展,蓝牙耳机在市场上非常火爆,但很多人不知道该如何选一款适合自己的蓝牙耳机,经常被商家所迷惑,所以常入手到了导致品质低劣甚至买了与价格不匹配的耳机,所以说2024年哪家蓝牙耳机性价比高?作…

可调恒流电子负载如何实现的

可调恒流电子负载是模拟真实负载的电子设备,它可以在电源电压和电流范围内提供恒定的电流或电压。其工作原理主要基于欧姆定律和功率守恒定律。欧姆定律指出,电流通过一个电阻体时,电流的大小与电压的大小成正比,与电阻的大小成反…

跨站请求伪造漏洞

1. 跨站请求伪造漏洞 跨站请求伪造Cross-siterequest forgery (也称为CSRF、XSRF)是一种Web安全漏洞,允许攻击者诱导用户执行他们不打算执行的操作。攻击者通过伪造用户的浏览器的请求,向用户自己曾经认证访问过的网站发送出去,使目标网站接收…

【全网最全】sentinel接入gateway网关,使用nacos做sentinel规则的持久化

文章目录 目标官网接入准备环境配置测试环境启动 规则nacos持久化api分组初始化初始化api分组方式 遗留问题 ?初始化api分组,会导致服务无法注册到sentinel dashboard 目标 sentinel接入gateway网关,使用nacos做sentinel规则的持久化 官网 https://se…

经典算法题总结:数组常用技巧(双指针,二分查找和位运算)篇

双指针 在处理数组和链表相关问题时,双指针技巧是经常用到的,双指针技巧主要分为两类:左右指针和快慢指针。所谓左右指针,就是两个指针相向而行或者相背而行;而所谓快慢指针,就是两个指针同向而行&#xf…

夏季养宠难题,浮毛异味难消?别担心,一篇文章帮你解决烦恼

新手铲屎官们最近是不是饱受猫咪浮毛异味困扰?正值夏季,一些猫咪还处于换毛季,疯狂的掉毛加难耐的高温,稍不注意清理,家里就被浮毛异味双重攻击。别担心,那是因为你们少了宠物空气净化器这个好帮手。作为宠…