vue2 消息弹框

父页面

<template><div style="margin-top: 20px"><div class="nav-style msg-style"><el-badge :value="value" :max="99" class="num" v-if="value > 0"><i class="el-icon-bell"></i></el-badge><i class="el-icon-bell" v-else></i><message class="news-style" @getNums="getNumsFn"></message></div></div>
</template>
<script>
import message from './message.vue'
export default {components: { message },data() {return {value: 0}},methods: {getNumsFn(val) {this.value = val}}
}
</script><style scoped>
.el-icon-bell {font-size: 16px;
}.nav-style label {text-align: center;width: 16px;height: 16px;position: absolute;top: 3px;right: 16px;
}.nav-style .name {height: 22px;margin-top: 19px;margin-bottom: 19px;font-size: 14px;font-weight: 400;color: #24324c;line-height: 22px;
}.msg-style {position: relative;float: right;margin-right: 100px;
}
.msg-style:hover .news-style {display: block;
}
.msg-style .num {line-height: 100%;
}
::v-deep .msg-style .el-badge__content {margin-top: 3px;padding: 0 3px;/* width: 28px; */min-width: 16px;height: 16px;background: #f2314e;text-align: center;line-height: 16px;font-size: 12px;z-index: 3;
}.nav-style .el-button {font-size: 14px;
}
</style>

子页面(message.vue)

<template><div class="news-style"><div class="msg"><div class="msg-header">消息中心</div><div class="msg-style"><div v-if="msglist.length > 0"><div class="item" v-for="item in msglist" :key="item.id"><span class="blue dot"></span><a:href="item.url"target="_blank":class="[item.url ? 'title-style' : '', 'title']"v-bind:title="msglist.title"><span @click="titleFn(item.id)" v-html="item.title"></span></a></div></div><div class="no-item" v-else><span>暂无新消息,去别的地方看看吧~</span></div></div><div class="msg-footer"><el-button type="text" @click="markFn" :disabled="msglist.length === 0"> 全部标为已读 </el-button><!-- 跳转 --><a class="link" target="_blank" rel="noreferrer" href="#/">查看全部 <i class="el-icon-arrow-right"></i> </a></div></div></div>
</template><script>
export default {data() {return {msglist: [],isRead: false}},created() {this.informationFn() //信息},methods: {informationFn() {// 页面只能先展示2条const falselist = {num: 2,data: [{title: '宫1',id: 'c',url: 'https://fanyi.baidu.com/translate#en'},{title: '宫2',id: '0',url: 'https://www.baidu.com/'}]}this.msglist = falselist.data ? falselist.data : []this.$emit('getNums', falselist.num)},markFn() {const ids = this.msglist.map(item => item.id)// 调接口},titleFn(id) {// 调接口}},beforeDestroy() {}
}
</script><style lang="scss" scoped>
.news-style {position: absolute;// top: 40px;//这个是为了固定的right: -10px;display: none;background-color: #fff;border-radius: 8px;box-shadow: 0px 8px 12px 4px rgba(0, 16, 47, 0.05);transition: all 0.3s;
}
.news-style .msg {position: relative;padding: 20px 0px 28px 28px;width: 356px;height: 313px;height: 230px;
}
.msg-header {margin-bottom: 25px;font-family: PingFangSC-Regular;font-size: 16px;font-weight: normal;line-height: 24px;color: #24324c;
}
.msg-style {overflow-y: scroll;margin-bottom: 64px;padding-right: 28px;.item {display: flex;justify-content: start;align-items: center;height: 40px;line-height: 40px;border-bottom: 1px solid rgba(#00102f, $alpha: 5%);.dot {display: inline-block;margin-right: 6px;min-width: 8px;height: 8px;border-radius: 50%;}.title {white-space: nowrap;overflow: hidden;text-overflow: ellipsis;font-family: PingFangSC-Regular;color: #24324c;}.title-style:hover {color: #2662ff;}}.item:last-child {border: 0;}
}
.msg-style .no-item {display: flex;justify-content: center;align-items: center;flex-direction: column;cursor: default;color: #8c93a1;img {margin: 10px 0 5px 0;}
}
.msg-style .item .red {background: #ff5959;
}
.msg-style .item .org {background: #ff8800;
}
.msg-style .item .blue {background: #5987ff;
}
.msg-footer {position: absolute;bottom: 0;margin-bottom: 28px;display: flex;justify-content: space-between;width: 300px;line-height: 22px;img {vertical-align: bottom;}.link {margin-top: 9px;color: #2662ff;}::v-deep .el-button {font-family: PingFangSC-Regular;font-size: 14px;font-weight: normal;color: rgba(0, 16, 47, 0.65);}::v-deep .el-button--text.is-disabled {color: #bfc3cb;}
}
</style>

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

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

相关文章

Qt6学习笔记:对象树

使用QObject及其子类创建的对象是以对象树的形式来组织的。创建一个QObject对象时若设置一个父对象&#xff0c;它就会被添加到父对象的子对象列表里&#xff0c;一个父对象被删除时&#xff0c;其全部的子对象都会自动删除。QObject类的构造函数里有一个参数用于设置对象的父对…

gz-hamonic 安装提示缺少许多依赖无法安装

在软件更新源中增加gz-hamonic的软件源&#xff0c; 点击添加&#xff0c;在输入框中填入如下语句&#xff1a; deb http://packages.osrfoundation.org/ubuntu jammy main 如图所示&#xff1a; 然后执行 sudo apt -get install gz-hamonic即可安装。 如下图 在终端中输入…

iOS苹果和Android安卓测试APP应用程序的差异

Hello大家好呀&#xff0c;我是咕噜铁蛋&#xff01;我们经常需要关注移动应用程序的测试和优化&#xff0c;以提供更好的用户体验。在移动应用开发领域&#xff0c;iOS和Android是两个主要的操作系统平台。本文铁蛋讲给各位小伙伴们详细介绍在App测试中iOS和Android的差异&…

Bee的批量插入与事务使用

* Bee 在2.2之前,调用批量插入在每个批都会提交commit,但在2.2改为只调用一次且在事务中,在批量插入的方法内容不再提交,而由事务控制. * * 2.2之前,批量插入使用每一个批次提交一次事务; * 这样,当违反主键约束等就忽略的大批量插入效率是很高的; * 但当事务中有批量插…

Java大数据hadoop2.9.2搭建伪分布式yarn资源管理器

1、修改配置文件 cd /usr/local/hadoop/etc/hadoop cp ./mapred-site.xml.template ./mapred-site.xml vi mapred-site.xml <configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property> &l…

Postman Newman 教程:轻松管理 API 自动化测试步骤

Postman 中的 Newman 是什么&#xff1f; Newman 是一个 CLI&#xff08;命令行界面&#xff09;工具&#xff0c;用于运行 Postman 中的集合&#xff08;Collection&#xff09;和环境&#xff08;Environment&#xff09;来进行自动化测试。它允许直接从命令行运行 Postman …

Babylonjs 6.0文档 Deep Dive - 摄像机介绍(一)

摄像机 在Babylon.js的众多的可用摄像机中&#xff0c;最常用的两种可能是用于“第一人称”运动的通用相机、轨道相机ArcRotateCamera&#xff0c;以及用于现代虚拟现实体验的WebXRCamera。 为了允许用户输入&#xff0c;摄像机必须被附加在canvas中 camera.attachControl(c…

并查集(C++)

目录 一、并查集的原理二、并查集的实现路径压缩 三、并查集的应用结尾 一、并查集的原理 并查集的两个功能&#xff1a; 合并&#xff1a;合并两个不想联系的元素查询&#xff1a;判断两个元素是否在同一个组内 主要解决的是元素分组的问题。 例如&#xff1a;某班级要创建…

求实创新 不断探索 浙江移动基于亚信科技AntDB数据库率先完成CRM系统全域改造

12日20日&#xff0c;中国信息通信研究院&#xff08;简称&#xff1a;信通院&#xff09;和中国通信标准化协会大数据库技术推进委员会&#xff08;CCSA TC601&#xff09;共同组织的2023年大数据库“星河&#xff08;Galaxy&#xff09;”案例评选结果发布。中国移动通信集团…

驱动芯片,预计未来几年将达到605亿美元的规模

驱动芯片是指驱动显示屏幕幕的芯片&#xff0c;其应用广泛&#xff0c;主要用于电脑、手机、电视、平板电脑和汽车等设备。全球驱动芯片市场分析&#xff1a; 据市场研究预测&#xff0c;未来几年内&#xff0c;全球驱动芯片市场将保持稳定增长&#xff0c;并达到605亿美元的规…

leaflet呼吸闪烁效果

leaflet呼吸闪烁效果 1.功能背景 这个效果一把用于点击选中&#xff0c;报警提升效果。 2.功能开发 2.1 marker 这个效果还是很好实现&#xff0c;主要通过计时器设置透明度的组合实现。 function setTargetSelect(e){var i 1var int setInterval(() > {if(!e._map…