avue中实现消息的实时展示

a4265939b06faa2720878edcef4c42c8.png

大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂。

前言

一个功能写了大半天,主要是数据表设计的有点复杂,且这个项目是10月份就写的放那的,里面有些东西都忘记了……先看数据库结构,然后理思路,最后实现功能。

效果如下:

26f2384d8a02d1bce0ecf420b1d7ce7d.png

其实现在看看,也不是很难。

实现思路

  1. 项目背景:大致就是给教练用的系统,这个消息功能就是XXX运动员完成了XX方案时,该系统就会实时通知(对了,忘记加定时了,,,发完文章之后就去加…)。

  2. 方案表有一个方案的完成状态,通过该字段做判断,在前台展示消息。

  3. 方案表新加了个更改时间字段,为了在前台展示完成该方案的时间。

  4. 实现思路是将完成了的方案,封装成消息公告对象,最后添加在消息表中,展示在前台。每次去查询方案表中已完成了的方案时,都会执行添加消息的方法,这样就会造成添加重复,不管完成了的方案有没有被添加过,都会重新添加一次,所以又在方案表中新加了个作为区分的字段。

  5. 在前台实现遍历消息公告表,遍历展示在指定位置。

代码实现

项目中用的是avue,HTML中的代码如下:

<avue-notice @click="handleClick":data="noticeList":option="option"@page-change="pageChange"></avue-notice>

methods中的代码如下:(主要是用来遍历消息)

getNoticeList(){getNoticeStsteByDeptId().then(res => {const data  = res.data.data;for (let i = 0; i < data.length; i++) {let listInfo ={title: '',subtitle: '',tag: '',status: 0,id:0,};listInfo.subtitle = data[i].createTime;listInfo.tag = "查看";listInfo.title = data[i].title+"已经完成了"+data[i].content+"训练方案";listInfo.status = data[i].status;listInfo.id = data[i].id;if(data[i].status===1) {this.weiduNoticeCount += 1;}this.noticeList.push(listInfo);}this.xiaoxiLabel = "消息("+this.weiduNoticeCount+")";});},

声明的变量:

data () {return {activeName: 'second',option: {props: {img: 'img',title: 'title',subtitle: 'subtitle',tag: 'tag',status: 'status',id:'id'},},//公告信息noticeList: [],//未读的公告weiduNoticeCount:0,//消息的文本xiaoxiLabel:"",}},

单击公告时,将状态修改为已读:

//单击时,修改状态为已完成handleClick(item){var id = item.id;//根据编号修改信息updateNew(id).then(() => {this.$message({type: "success",message: "已读!"});done();this.getNoticeList();}, error => {window.console.log(error);loading();});},

notice.js中的方法如下:

/*** 获取消息(已完成的,根据机构编号)* @param id* @returns {*}*/
export const getNoticeStsteByDeptId = () => {return request({url: '/api/blade-desk/notice/getNoticeStsteByDeptId',method: 'get',})
}/*** 修改状态,原来的那个看不懂……* @returns {*}* @param id*/
export const updateNew = (id) => {return request({url: '/api/blade-desk/notice/updateNew',method: 'get',params: {id}})
}

最后就是后台控制器中的代码:

/*** 获取已完成的消息*/@GetMapping("/getNoticeStsteByDeptId")@ApiOperationSupport(order = 1)@ApiOperation(value = "详情", notes = "传入notice")public R<List<Notice>> getNoticeStsteByDeptId() {//获取当前用户所在的部门Long deptId = Long.parseLong(WebUtil.getCookieVal("dept_id"));//根据部门和状态查询信息List<Programme> programmeList = programmeService.getPaogramStateBydeptId(2,deptId,0);//遍历方案集合,得到方案的修改时间、方案名称,完成方案的人,添加到公告表中for(Programme programme : programmeList){//方案民称String programName = programme.getPnme();//时间Date updatetime = programme.getUpdateTime();Athletes athletes = new Athletes();athletes.setId(programme.getPaid());Athletes detail = athletesService.getOne(Condition.getQueryWrapper(athletes));String athName = detail.getAname();//调用添加公告的方法Notice notice = new Notice();notice.setContent(programName);notice.setCreateTime(updatetime);notice.setTitle(athName);//公告状态,4已读.1未读,notice.setStatus(1);//添加noticeService.save(notice);}//查询公告里面的信息List<Notice> noticeList = noticeService.list();return R.data(noticeList);}/*** 修改信息*/@GetMapping("/updateNew")@ApiOperation(value = "修改", notes = "传入notice")public R updateNew(Long id) {Notice notice = noticeService.getById(id);notice.setStatus(4);return R.status(noticeService.updateById(notice));}

OK,今天记录完毕!

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

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

相关文章

org.apache.ibatis.builder.BuilderException: Could not find value method on SQL annotation

转载自 mybatis 注解引发的bug&#xff0c;org.apache.ibatis.builder.BuilderException: Could not find value method on SQL anno Mybatis用注解开发且还用script标签 这种bug&#xff0c;网上一搜一大堆&#xff0c;但是都xml方式开发&#xff0c;大部分说的是返回类型或…

P2375-[NOI2014]动物园【KMP,字符串】

正题 评测记录:https://www.luogu.org/recordnew/lists?uid52918&pidP2375 题目大意 对于kmp操作&#xff0c;我们多求一个numnum数组&#xff0c;表示对于字符串SS的前i" role="presentation">ii个字符构成的子串&#xff0c;既是它的后缀同时又是它…

发达国家与发展中国家编程语言技术的分布差异性

近日&#xff0c;Stack Overflow在官方博客上发布了一组统计数据&#xff0c;表明发达国家与发展中国家在编程语言技术的采用上存在较大的差异。Stack Overflow对2017年1月至8月期间的访问数据进行了分析&#xff0c;选取了64个技术标签&#xff0c;每个标签所包含问题的访问次…

两个map中的数据,按照相同键,将所对应的值相加方法

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂”前言最近写代码的时候遇到了个需求&#xff0c;刚开始想的时候&#xff0c;感觉不难&#xff0c;挺简单的&#xff0c;结果写的时候&#xff0c;各种思考、各种费脑&#xff0c;耗费了点…

mybatis example处理and、or关系的方法

转载自 mybatis example处理and、or关系的方法 1.( xx and xx) or ( xx and xx) 实例代码&#xff1a; BaUserExample baUserExample new BaUserExample();Criteria criteria1 baUserExample.createCriteria(); criteria1.andOrgIdEqualTo("1"); criteria1.an…

P2580-于是他错误的点名开始了【Trie,字符串】

正题 评测记录:https://www.luogu.org/recordnew/lists?uid52918&pidP2580 题目大意 给n个字符串&#xff0c;用m个字符串和他们匹配&#xff0c;分为错误匹配,重复匹配,正确匹配。 解题思路 裸的TrieTrie(字典树) code #include<cstdio> #include<cstring&g…

publiccms中将推荐页的内容显示在页面片段中

遍历的代码如下&#xff1a; <#list page.list><ul><#items as a><li><figure><!-- ${a.itemType!} : ${a.itemId!} ,place/redirect:count and 301 jump to a.url,place/click:count and 302 jump to a.url--><a href"${site.dyn…

ASP.NET Core 运行原理解剖[3]:Middleware-请求管道的构成

在 ASP.NET 中&#xff0c;我们知道&#xff0c;它有一个面向切面的请求管道&#xff0c;有19个主要的事件构成&#xff0c;能够让我们进行灵活的扩展。通常是在 web.config 中通过注册 HttpModule 来实现对请求管道事件监听&#xff0c;并通过 HttpHandler 进入到我们的应用程…

【ajax】readyState=4并且status=200时,还进error方法

转载自 【ajax】readyState4并且status200时&#xff0c;还进error方法 今天在使用jquery.ajax方法去调用后台方法时&#xff0c;ajax中得参数data类型是"JSON",后台DEBUG调试&#xff0c;运行正常&#xff0c;返回正常的结果集,但是前端一直都进到ajax的error方法…

publiccms实现首页菜单栏下拉的方法

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。 今天接到了个需求&#xff0c;使用publiccms实现首页导航栏下拉的效果&#xff0c;效果如下&#xff1a; 目前我的思路如下&#xff1a; 采用分类的方法实现将左侧的项作为二级分类右边…

P2922-[USACO08DEC]秘密消息Secret Message【Trie,字符串】

正题 评测记录:https://www.luogu.org/recordnew/lists?uid52918&pidP2922 题目大意 给n个01串&#xff0c;用m个01串匹配&#xff0c;如果n是m的前缀或者m是n的前缀那么就算匹配成功&#xff0c;求每个串有多少个匹配成功。 解题思路 我们可以用Trie树&#xff0c;分为…

2017(深圳) .NET技术分享交流会(第二期)网络直播活动

.NET Core 2.0 已于2017年8月14日正式发布&#xff0c;2017(深圳) .NET技术分享交流会在公众号中发出2个小时后就被抢光了&#xff0c;受限于场地无法增加人数&#xff0c;这次如鹏网杨中科老师提供VIP级的网络直播支持&#xff0c;为了保证网络直播效果&#xff0c;另外开启网…

publiccms中,怎么修改默认的端口8080以及默认上下文名称

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。 我用的部署方式是springboot的方式,所以修改端口和项目名的方法和tomcat的方法不一样&#xff0c;tomcat的话去改一下conf目录下面的serve.xml文件。 springboot的方式不需要&#xff0c…

JQuery AJAX请求结果的null为key时无法进入success方法

一、问题复现 后台&#xff1a; import java.util.*; Controller public class Test{RequestMapping("/get/loadInfo.do")ResponseBodypublic Result getLoadInfo(){Result resnew Result();Map map new HashMap();map.put(null,"one");map.put("a&…

洛谷UVA1328,POJ1961-Period【KMP,字符串】

正题 洛谷评测记录:https://www.luogu.org/recordnew/lists?uid52918&pidUVA1328 POJ链接:http://poj.org/problem?id1961 题目大意 求一个字符串每个前缀的最短循环循环次数。 解题思路 计算next数组&#xff0c;然后直接计算循环节&#xff1a; 详见:POJ2752-Seek…

publiccms实现多层级选项卡效果

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂 前言 距离上次更新已经好久了~最近心有余而力不足。。 最近在学习freammarker标签&#xff0c;算是比较老的技术了&#xff0c;白天写&#xff0c;晚上做梦都在写&#xff0c;不吐槽了&am…

Java对象的引用类型

转载自 Java对象的引用类型 Java对象的引用类型有强引用&#xff0c;软引用&#xff0c;弱引用&#xff0c;虚引用和FinalReference,提供这几种引用类型的主要目的&#xff1a; 1.程序员可以通过不同的引用方式决定某些对象的生命周期&#xff1b; 2.利用JVM的垃圾回收机制&a…

“雪花”项目:Microsoft探索在.NET中实现手工内存管理

来自Microsoft研究院、剑桥大学和普林斯顿大学的一些研究人员构建了一个.NET的分支&#xff0c;实现了在运行时中添加支持手工内存管理的API。研究方法的细节及所获得的性能提升发表在名为“Project Snowflake: Non-blocking Safe Manual Memory Management in .NET”&#xff…

loj#10050-The XOR Largest Pair【Trie(字典树)】

正题 题目链接:https://loj.ac/problem/10050 题目大意 有n个数&#xff0c;求两个数使他们异或起来最大。 解题思路 我们考虑构建一个TrieTrie。 两个分叉为0,1&#xff0c;对于每个数二进制下不够30位我们将其补够30位&#xff0c;然后再根据二进制01构建TrieTrie。 然后…

publiccms按照指定显示的日期格式,格式化日期的写法

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂 前言 现在是2021年12月30日20:21:37&#xff0c;距离2021年结束仅仅不到2天的时间了&#xff0c;时间恍如白驹过隙&#xff01; 今天还是搞的publiccms,分享个简单的语法吧&#xff1a;在…