Vuex状态管理(报警信息数量跟随变化)

需求:侧边栏显示报警信息数量

在store/project.js文件中定义相关状态

// 存储项目信息
const projectInfo = JSON.parse(sessionStorage.getItem('projectInfo')) ? JSON.parse(sessionStorage.getItem('projectInfo')) : '';
import { getUntreatedProjectAlarm } from '@/api/managealarm'
const state = {projectInfo: projectInfo,// 菜单按钮是否展开launch: true,// 报警信息数量alarmNumber: 0
}const mutations = {SET_PROJECT_INFO: (state, projectInfo) => {state.projectInfo = projectInfosessionStorage.setItem('projectInfo', JSON.stringify(projectInfo))},SET_LAUNCH: (state) => {state.launch = !state.launch},SET_ALARMNUMBER: (state, alarmNumber) => {state.alarmNumber = alarmNumber},
}const actions = {setProject({commit}, projectInfo) {commit('SET_PROJECT_INFO', projectInfo)},getAlarmNumber({ commit }) {return new Promise(() => {let params = {page: 1,rows: 500,alarmType: '',startDate: '',endDate: '',everconfirmed: '',projectId: state.projectInfo.id}getUntreatedProjectAlarm(params).then((res) => {let alarmNumber = res.total;commit('SET_ALARMNUMBER', alarmNumber)})})}
}export default {namespaced: true,state,mutations,actions
}

在侧边栏Sidebar.vue页面中调用

<el-badge :value="alarmNumber" class="item custombge">{{ subItem.name }}
</el-badge>
computed: {//使用计算属性,如果其他页面更改了状态(数量)那么它也更这变化alarmNumber() {return this.$store.state.project.alarmNumber;}},  
mounted() {// 页面加载后调用store里面的action方法获取数据this.$store.dispatch("project/getAlarmNumber");
},

在报警信息alarm.vue页面中

<el-table-column label="操作" align="center"><template slot-scope="scope"><div><el-button v-if="scope.row.everconfirmed == 0" type="primary" size="mini" @click="isTrue(scope.row.id)">确认</el-button><el-button v-else type="info" size="mini" @click="isTrue(scope.row.id)">取消</el-button></div></template>
</el-table-column>
methods: {// 点击确认、取消按钮调用此方法isTrue(val) {let params = {ids: [val]}batchUpdateProjectAlarmState(params).then((res) => {//获取页面数据// this.search();//重新更新报警信息数量this.getAlarmNumber();})},getAlarmNumber() {this.$store.dispatch("project/getAlarmNumber");},}

提示

javascript 一般调用mutations中的方法是使用commit 例如 this.$store.commit("project/SET_LAUNCH") 一般调用actions 中的方法是使用dispatch 例如 this.$store.dispatch("project/getAlarmNumber");

结果截图:
在这里插入图片描述

点击一个确认后
在这里插入图片描述

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

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

相关文章

Qt Creator可视化交互界面exe快速入门4

上一期介绍了信号与槽&#xff0c;本期介绍加法计算器 我们来新建一个项目 然后拖动设置按钮 还需要个输出框 这里拖动Line Edit 我这里只是简单演示一下&#xff0c;做个低配版计算器&#xff0c;再加个加号和一个等于号就结束了。 然后回到代码编辑部分&#xff0c;我们需要…

VGG网络分析与demo实例

参考自 up主的b站链接&#xff1a;霹雳吧啦Wz的个人空间-霹雳吧啦Wz个人主页-哔哩哔哩视频这位大佬的博客 Fun_机器学习,pytorch图像分类,工具箱-CSDN博客 VGG 在2014年由牛津大学著名研究组 VGG&#xff08;Visual Geometry Group&#xff09;提出&#xff0c;斩获该年 Imag…

Java 新手常踩得坑,清个缓存就解决了?

【IDEA教程】IDEA 如何清除缓存&#xff1f; 大家好&#xff0c;我是 JavaPub。 最近遇到群里小伙伴遇到一个很大的难题&#xff0c;相信这个问题很多人在初入行时都遇到过。 事情是这样&#xff0c;一个小伙伴刚入职一家公司&#xff0c;公司给了他一个任务&#xff0c;虽然…

公司使用了加密软件,文件无法复制

在当今数字化时代&#xff0c;企业面临着越来越多的数据泄露和信息安全威胁。为了保护公司的敏感信息和知识产权&#xff0c;许多企业选择使用加密软件来加强数据的安全性。其中一项重要的功能是防止未经授权的文件复制。本文将探讨公司使用加密软件后&#xff0c;为何文件无法…

枚举算法:解决问题的穷举之道(二)

&#x1f497;&#x1f497;&#x1f497;欢迎来到我的博客&#xff0c;你将找到有关如何使用技术解决问题的文章&#xff0c;也会找到某个技术的学习路线。无论你是何种职业&#xff0c;我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章&#xff0c;也欢…

macOS系统下载安装PyCharm社区版本的流程(详细)

第一步 进入PyCharm官网&#xff0c;链接&#xff1a;Get Your Educational Tool - JetBrains 第二步 选择下拉框&#xff0c;根据自己的电脑芯片选择下载版本&#xff08;芯片查看位置&#xff1a;设置-通用-关于本机&#xff09;然后点击Download按钮 ​​​​​​​ -- 第…

科研学习|论文解读——融合类目偏好和数据场聚类的协同过滤推荐算法研究

论文链接&#xff08;中国知网&#xff09;&#xff1a; 融合类目偏好和数据场聚类的协同过滤推荐算法研究 - 中国知网 (cnki.net) 摘要&#xff1a;[目的/意义]基于近邻用户的协同过滤推荐作为推荐系统应用最广泛的算法之一&#xff0c;受数据稀疏和计算可扩展问题影响&#x…

005.HCIA 传输层

传输层定义了主机应用程序之间端到端的连通性。传输层中最为常见的两个协议分别是传输控制协议TCP (Transmission Control Protocol)和用户数据包协议UDP (User Datagram Protocol)。 1、相关概念 a. 传输层的端口 端口范围&#xff1a;0-65535 知名端口&#xff1a;0-1023&…

图灵日记之java奇妙历险记--类和对象

目录 类的定义和使用类的定义格式 类的实例化类和对象的说明 this引用this引用的特性 对象的构造及初始化就地初始化构造方法 封装包导入包中的类自定义包 static成员static修饰成员变量static修饰成员方法 代码块代码块概念及分类构造代码块静态代码块 匿名对象 类的定义和使用…

运维工程师的出路到底在哪里

运维工程师的出路到底在哪里&#xff1f; 你是不是也常常听到身边的运维人员抱怨&#xff0c;他们的出路到底在哪里呢&#xff1f;别着急&#xff0c;让我告诉你&#xff0c;运维人员就像是IT界的“万金油”&#xff0c;他们像“修理工”一样维修服务器&#xff0c;像“消防员…

sleep(0)、sleep(1)与sleep(1000)函数是不是很迷?!

随着计算机科学和软件开发的飞速发展&#xff0c;开发者们常常需要在程序中引入一些时间控制的手段。其中&#xff0c;sleep函数成为了一种常见的工具&#xff0c;用于控制程序的执行速度、等待异步操作完成或者调度多线程任务。在这篇博客中&#xff0c;我们将深入研究三种睡眠…

安装、卸载、使用docker-compose

文章目录 Docker Compose一、安装Docker Compose二、卸载Docker Compose三、 使用docker compose编排nginxspringboot项目 Docker Compose 一、安装Docker Compose # Compose目前已经完全支持Linux、Mac OS和Windows&#xff0c;在我们安装Compose之前&#xff0c;需要先安装D…

在word文档中插入Latex格式的公式

用此方法可以不用在word中一点点插入公式&#xff0c;直接用Latex版的公式代码生成公式。 1.获取latex版公式 如我要在word中插入画框的公式&#xff0c;左边是该公式的latex版 也可以对公式截图使用如下的网页将公式的截图转为latex版 https://simpletex.cn/ai/latex_ocr …

Vue3超详细的ref()用法,看这一篇就够了

ref( ) 接受一个内部值&#xff0c;返回一个ref 对象&#xff0c;这个对象是响应式的、可更改的&#xff0c;且只有一个指向其内部值的属性 .value。 ref() 将传入参数的值包装为一个带 .value 属性的 ref 对象。 1、ref 对象是可更改的&#xff0c;即可以为 .value 赋予新的值…

Twinmotion教育版下载 / 找不到教育版解决方法

首先&#xff0c;在Epic Game Launcher中&#xff0c;找到Twinmotion标签 其中只有默认的试用版&#xff0c;没有教育版 众所周知&#xff0c;试用版没有相应的部分导出功能&#xff0c;而且有水印。 下载教育版&#xff1a; 1.打开官网&#xff1a;A cutting-edge real-time…

vue前端上传图片到阿里云OSS,超详细上传图片与视频教程

vue前端直传图片与视频到阿里云OSS 1. 简介与日常使用2. 为什么要这么干&#xff1f;是因为我司后端不行吗&#xff1f;&#xff1f;&#xff1f;&#xff08;确实&#xff01;&#xff09;3. vue前端直传的操作4. 如何上传到阿里OSS指定文件夹呢? 1. 简介与日常使用 阿里云…

python高级(补充)

闭包 闭包的定义: 在函数嵌套的前提下&#xff0c;内部函数使用了外部函数的变量&#xff0c;并且外部函数返回了内部函数&#xff0c;我们把这个使用外部函数变量的内部函数称为闭包 通过闭包的定义&#xff0c;我们可以得知闭包的形成条件: 1- 在函数嵌套(函数里面再定义…

【node-express】实现省县市/区三级联动接口

省县市/区三级联动接口 介绍接口步骤代码部分 介绍 源码地址&#xff1a;https://github.com/thinkasany/nestjs-course-code/tree/master/demo/address 使用 navicat 导入sql文件&#xff0c;新增表&#xff0c;然后只需要一个接口 localhost:3001/region?parentId1, 不断的…

Leetcode—2660.保龄球游戏的获胜者【简单】

2023每日刷题&#xff08;七十二&#xff09; Leetcode—2660.保龄球游戏的获胜者 实现代码 class Solution { public:int isWinner(vector<int>& player1, vector<int>& player2) {long long sum1 0, sum2 0;int n player1.size();for(int i 0; i &…

02之Python运算符与if结构

Day02之Python运算符与if结构 一、昨日回顾 1、回顾昨天的课程内容 略 2、回顾昨天的作业 定义变量&#xff0c;c1 ‘可乐’&#xff0c;c2 ‘牛奶’&#xff0c;通过Python代码把c1内容调整为牛奶&#xff0c;c2调整为可乐。 # 1、定义两个变量 c1 可乐 c2 牛奶# 2、…