diff --git a/src/main/java/cn/stylefeng/guns/modular/index/controller/IndexViewController.java b/src/main/java/cn/stylefeng/guns/modular/index/controller/IndexViewController.java index 70d10c18..da910b78 100644 --- a/src/main/java/cn/stylefeng/guns/modular/index/controller/IndexViewController.java +++ b/src/main/java/cn/stylefeng/guns/modular/index/controller/IndexViewController.java @@ -88,15 +88,4 @@ public class IndexViewController { return "/modular/index/change_password.html"; } - - /** - * 系统消息界面 - * - * @author liuhanqing - * @date 2021/1/10 17:42 - */ - @GetResource(name = "系统消息界面", path = "/view/message", requiredPermission = false) - public String message() { - return "/modular/index/message.html"; - } } diff --git a/src/main/java/cn/stylefeng/guns/modular/index/service/IndexService.java b/src/main/java/cn/stylefeng/guns/modular/index/service/IndexService.java index 5688bc92..e9f44159 100644 --- a/src/main/java/cn/stylefeng/guns/modular/index/service/IndexService.java +++ b/src/main/java/cn/stylefeng/guns/modular/index/service/IndexService.java @@ -7,6 +7,9 @@ import cn.stylefeng.roses.kernel.auth.api.pojo.login.LoginUser; import cn.stylefeng.roses.kernel.auth.api.pojo.login.basic.SimpleRoleInfo; import cn.stylefeng.roses.kernel.auth.api.pojo.login.basic.SimpleUserInfo; import cn.stylefeng.roses.kernel.menu.modular.service.SysMenuService; +import cn.stylefeng.roses.kernel.message.api.MessageApi; +import cn.stylefeng.roses.kernel.message.api.enums.MessageReadFlagEnum; +import cn.stylefeng.roses.kernel.message.api.pojo.MessageParam; import cn.stylefeng.roses.kernel.system.modular.organization.entity.HrOrganization; import cn.stylefeng.roses.kernel.system.modular.organization.service.HrOrganizationService; import cn.stylefeng.roses.kernel.system.modular.user.service.SysUserService; @@ -36,6 +39,8 @@ public class IndexService { @Resource private HrOrganizationService hrOrganizationService; + @Resource + private MessageApi messageApi; /** * 获取首页需要渲染的参数 * @@ -59,6 +64,11 @@ public class IndexService { // 获取人员姓名 renderMap.put("name", simpleUserInfo.getRealName()); + // 未读消息数量 + MessageParam messageParam = new MessageParam(); + messageParam.setReadFlag(MessageReadFlagEnum.UNREAD.getCode()); + renderMap.put("msgUnReadCount", messageApi.queryCountCurrentUser(messageParam)); + return renderMap; } diff --git a/src/main/java/cn/stylefeng/guns/modular/message/controller/MessageViewController.java b/src/main/java/cn/stylefeng/guns/modular/message/controller/MessageViewController.java new file mode 100644 index 00000000..fd4bbb52 --- /dev/null +++ b/src/main/java/cn/stylefeng/guns/modular/message/controller/MessageViewController.java @@ -0,0 +1,50 @@ +package cn.stylefeng.guns.modular.message.controller; + +import cn.stylefeng.guns.modular.index.service.IndexService; +import cn.stylefeng.roses.kernel.auth.api.context.LoginContext; +import cn.stylefeng.roses.kernel.message.api.MessageApi; +import cn.stylefeng.roses.kernel.message.api.enums.MessageReadFlagEnum; +import cn.stylefeng.roses.kernel.message.api.pojo.MessageParam; +import cn.stylefeng.roses.kernel.message.api.pojo.MessageResponse; +import cn.stylefeng.roses.kernel.resource.api.annotation.ApiResource; +import cn.stylefeng.roses.kernel.resource.api.annotation.GetResource; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 系统消息相关的界面渲染 + * + * @author liuhanqing + * @date 2021/1/11 19:37 + */ +@Controller +@Slf4j +@ApiResource(name = "系统消息相关的界面渲染") +public class MessageViewController { + + @Resource + private MessageApi messageApi; + + + + /** + * 系统消息界面 + * + * @author liuhanqing + * @date 2021/1/10 17:42 + */ + @GetResource(name = "系统消息界面", path = "/view/message", requiredPermission = false) + public String message(Model model) { + MessageParam messageParam = new MessageParam(); + messageParam.setReadFlag(MessageReadFlagEnum.UNREAD.getCode()); + Integer messageCount = messageApi.queryCountCurrentUser(messageParam); + List messageList = messageApi.queryListCurrentUser(messageParam); + model.addAttribute("msgUnReadCount", messageCount); + model.addAttribute("msgUnReadList", messageList); + return "/modular/index/message.html"; + } +} diff --git a/src/main/webapp/assets/modular/frame/message.css b/src/main/webapp/assets/modular/frame/message.css index 5139c3a5..c23503d3 100644 --- a/src/main/webapp/assets/modular/frame/message.css +++ b/src/main/webapp/assets/modular/frame/message.css @@ -1,82 +1,68 @@ -/** 消息列表样式 */ .message-list { position: absolute; - top: 48px; + top: 51px; + bottom: 44px; left: 0; right: 0; - bottom: 45px; overflow-y: auto; - -webkit-overflow-scrolling: touch; } .message-list-item { - display: block; - padding: 10px 20px; - line-height: 24px; - position: relative; + padding: 10px 24px; border-bottom: 1px solid #e8e8e8; + -ms-flex-align: start; + align-items: flex-start; + display: flex; + -ms-flex: 1 1; + flex: 1 1; } .message-list-item:hover, .message-btn-clear:hover, .message-btn-more:hover { background: #F2F2F2; } -.message-list-item .message-item-icon { +.message-item-icon { width: 40px; height: 40px; - line-height: 40px; - margin-top: -20px; - border-radius: 50%; - position: absolute; - left: 20px; - top: 50%; + margin-right: 16px; + display: block; + margin-top: 4px; } -.message-list-item .message-item-icon.layui-icon { - color: #fff; - font-size: 22px; - text-align: center; - background-color: #FE5D58; +.message-item-right { + display: block; + flex: 1 0; + line-height: 24px; } -.message-list-item .message-item-icon + .message-item-right { - margin-left: 55px; -} - -.message-list-item .message-item-title { - color: #666; +.message-item-title { font-size: 14px; + color: rgba(0, 0, 0, .65); } -.message-list-item .message-item-text { - color: #999; +.message-item-text { + color: rgba(0, 0, 0, .45); font-size: 12px; } -.message-list-item > .layui-badge { - position: absolute; - right: 20px; - top: 12px; -} - -.message-list-item > .layui-badge + .message-item-right { - margin-right: 50px; +.pull-right { + float: right; } .message-btn-clear, .message-btn-more { - color: #666; display: block; padding: 10px 5px; - line-height: 24px; text-align: center; - cursor: pointer; + line-height: 24px; + color: #333; } .message-btn-clear { position: absolute; - left: 0; - right: 0; bottom: 0; + left: 0; + background: white; + right: 0; border-top: 1px solid #e8e8e8; } @@ -85,30 +71,13 @@ font-size: 13px; } -.message-btn-more.ew-btn-loading > .ew-btn-loading-text { - font-size: 13px !important; -} - .message-list-empty { - color: #999; - padding: 100px 0; text-align: center; - display: none; + color: rgba(0, 0, 0, .45); + padding: 73px 0 88px; } -.message-list-empty > .layui-icon { - color: #ccc; - display: block; - font-size: 45px; - margin-bottom: 15px; -} - -.show-empty .message-list-empty { - display: block; -} - -.show-empty .message-btn-clear, .show-empty .message-list { - display: none; -} - -/** //消息列表样式结束 */ \ No newline at end of file +.message-list-empty img { + height: 76px; + margin-bottom: 16px; +} \ No newline at end of file diff --git a/src/main/webapp/assets/modular/frame/message.js b/src/main/webapp/assets/modular/frame/message.js index 976018b1..a1317d7a 100644 --- a/src/main/webapp/assets/modular/frame/message.js +++ b/src/main/webapp/assets/modular/frame/message.js @@ -1,20 +1,35 @@ -layui.use(['element', 'admin'], function () { +var Message = {} +layui.use(['element', 'admin', 'ax'], function () { var $ = layui.jquery; var admin = layui.admin; + var $ax = layui.ax; /* 加载更多按钮点击事件 */ - $('#messageMoreBtn2').click(function () { + /*$('#messageMoreBtn2').click(function () { var $that = $(this); admin.btnLoading($that); setTimeout(function () { admin.btnLoading($that, false); $that.before($that.prev()[0].outerHTML); }, 300); - }); - + });*/ + /** + * 全部标记为已读 + */ + Message.allReadMessage = function () { + var ajax = new $ax(Feng.ctxPath + "/sysMessage/allMessageReadFlag", function (data) { + Feng.success("已读成功!"); + }, function (data) { + Feng.error("标记已读失败!" + data.responseJSON.message + "!"); + }); + ajax.setAsync(true) + ajax.start(); + }; /* 清空消息点击事件 */ - $('#messageClearBtn1,#messageClearBtn2,#messageClearBtn3').click(function () { + $('#messageClearBtn').click(function () { + debugger $(this).parents('.layui-tab-item').addClass('show-empty'); + Message.allReadMessage() }); }); \ No newline at end of file diff --git a/src/main/webapp/pages/layout/_header.html b/src/main/webapp/pages/layout/_header.html index 938edfc8..b7478d0b 100644 --- a/src/main/webapp/pages/layout/_header.html +++ b/src/main/webapp/pages/layout/_header.html @@ -24,7 +24,9 @@
  • - + @if(msgUnReadCount>0){ + + @}
  • diff --git a/src/main/webapp/pages/modular/index/message.html b/src/main/webapp/pages/modular/index/message.html index a42ee4af..da03c346 100644 --- a/src/main/webapp/pages/modular/index/message.html +++ b/src/main/webapp/pages/modular/index/message.html @@ -1,114 +1,38 @@ - +