Commit ccdeec60f3e5e2e8e3f76461e825cfcc3502345d

Authored by lector
1 parent ab692199

消息通知:所有功能完成-补充读消息功能

src/main/java/com/huaheng/pc/system/notice/controller/SysNoticeController.java
@@ -45,7 +45,8 @@ public class SysNoticeController extends BaseController { @@ -45,7 +45,8 @@ public class SysNoticeController extends BaseController {
45 PageDomain pageDomain = TableSupport.buildPageRequest(); 45 PageDomain pageDomain = TableSupport.buildPageRequest();
46 Integer pageNum = pageDomain.getPageNum(); 46 Integer pageNum = pageDomain.getPageNum();
47 Integer pageSize = pageDomain.getPageSize(); 47 Integer pageSize = pageDomain.getPageSize();
48 - lambdaQueryWrapper.eq(StringUtils.isNotEmpty(status), SysNotice::getStatus, status); 48 + lambdaQueryWrapper.eq(StringUtils.isNotEmpty(status), SysNotice::getStatus, status)
  49 + .orderByAsc(SysNotice::getStatus);
49 if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)) { 50 if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)) {
50 Page<SysNotice> page = new Page(pageNum, pageSize); 51 Page<SysNotice> page = new Page(pageNum, pageSize);
51 IPage<SysNotice> iPage = sysNoticeService.page(page, lambdaQueryWrapper); 52 IPage<SysNotice> iPage = sysNoticeService.page(page, lambdaQueryWrapper);
src/main/resources/templates/index.html
@@ -296,11 +296,7 @@ @@ -296,11 +296,7 @@
296 url:"system/notice/readAll", 296 url:"system/notice/readAll",
297 type:"get", 297 type:"get",
298 success:function (response) { 298 success:function (response) {
299 - if (response.code == 200){  
300 location.reload() 299 location.reload()
301 - }else {  
302 - $.modal.alertError(response.msg)  
303 - }  
304 }, 300 },
305 error:function (response) { 301 error:function (response) {
306 $.modal.alertError("服务出错") 302 $.modal.alertError("服务出错")
src/main/resources/templates/system/notice/mailbox.html
@@ -10,12 +10,12 @@ @@ -10,12 +10,12 @@
10 <hr style="border-top:1px solid #C2C2C2;"> 10 <hr style="border-top:1px solid #C2C2C2;">
11 <div class="col-sm-8"> 11 <div class="col-sm-8">
12 <h3><strong>[[${user.loginName}]]</strong></h3> 12 <h3><strong>[[${user.loginName}]]</strong></h3>
13 -<!-- <p><i class="fa fa-user"></i> [[${user.userName}]] / [[${#strings.defaultString(roleGroup,'无角色')}]]-->  
14 -<!-- <p><i class="fa fa-phone"></i> [[${user.phoneNumber}]]</p>-->  
15 -<!-- <p><i class="fa fa-group"></i> [[${user.dept.deptName}]] / [[${#strings.defaultString(postGroup,'无岗位')}]]</p>-->  
16 -<!-- <p><i class="fa fa-transgender"></i> 性别:[[${user.sex}]]</p>-->  
17 -<!-- <p><i class="fa fa-envelope-o"></i> [[${user.email}]]</p>-->  
18 -<!-- <p><i class="fa fa-calendar"></i> [[${#dates.format(user.createTime, 'yyyy-MM-dd HH:mm:ss')}]]</p>--> 13 + <!-- <p><i class="fa fa-user"></i> [[${user.userName}]] / [[${#strings.defaultString(roleGroup,'无角色')}]]-->
  14 + <!-- <p><i class="fa fa-phone"></i> [[${user.phoneNumber}]]</p>-->
  15 + <!-- <p><i class="fa fa-group"></i> [[${user.dept.deptName}]] / [[${#strings.defaultString(postGroup,'无岗位')}]]</p>-->
  16 + <!-- <p><i class="fa fa-transgender"></i> 性别:[[${user.sex}]]</p>-->
  17 + <!-- <p><i class="fa fa-envelope-o"></i> [[${user.email}]]</p>-->
  18 + <!-- <p><i class="fa fa-calendar"></i> [[${#dates.format(user.createTime, 'yyyy-MM-dd HH:mm:ss')}]]</p>-->
19 </div> 19 </div>
20 </div> 20 </div>
21 </div> 21 </div>
@@ -23,15 +23,25 @@ @@ -23,15 +23,25 @@
23 <div class="col-sm-9" style="height: 100%"> 23 <div class="col-sm-9" style="height: 100%">
24 <div class="select-info"> 24 <div class="select-info">
25 <ul id="myTab" class="nav nav-tabs"> 25 <ul id="myTab" class="nav nav-tabs">
26 - <li class="active"><a href="#tabAll" data-toggle="tab">全部</a></li>  
27 - <li ><a href="#tabNotRead" data-toggle="tab">未读</a></li>  
28 - <li ><a href="#tabHavenRead" data-toggle="tab">已读</a></li> 26 + <li id="tabAllTap" class="active"><a href="#tabAll" data-toggle="tab">全部</a></li>
  27 + <li id="tabNotReadTap"><a href="#tabNotRead" data-toggle="tab">未读</a></li>
  28 + <li id="tabHavenReadTap"><a href="#tabHavenRead" data-toggle="tab">已读</a></li>
29 </ul> 29 </ul>
30 <div id="myTabContent" class="tab-content"> 30 <div id="myTabContent" class="tab-content">
31 <div class="tab-pane fade in active" id="tabAll"> 31 <div class="tab-pane fade in active" id="tabAll">
  32 + <div class="btn-group hidden-xs" id="toolbar" role="group">
  33 + <a class="btn btn-outline btn-success btn-rounded" onclick="readAll()">
  34 + 全部已读
  35 + </a>
  36 + </div>
32 <table class="table-bordered" id="bootstrap-table" data-mobile-responsive="true"></table> 37 <table class="table-bordered" id="bootstrap-table" data-mobile-responsive="true"></table>
33 </div> 38 </div>
34 <div class="tab-pane fade" id="tabNotRead"> 39 <div class="tab-pane fade" id="tabNotRead">
  40 + <div class="btn-group hidden-xs" id="toolbar1" role="group">
  41 + <a class="btn btn-outline btn-success btn-rounded" onclick="readAll()">
  42 + 全部已读
  43 + </a>
  44 + </div>
35 <table class="table-bordered" id="bootstrap-table1" data-mobile-responsive="true"></table> 45 <table class="table-bordered" id="bootstrap-table1" data-mobile-responsive="true"></table>
36 </div> 46 </div>
37 <div class="tab-pane fade" id="tabHavenRead"> 47 <div class="tab-pane fade" id="tabHavenRead">
@@ -46,94 +56,108 @@ @@ -46,94 +56,108 @@
46 56
47 var prefix = ctx + "system/notice" 57 var prefix = ctx + "system/notice"
48 58
49 - $(function() { 59 + $(function () {
50 var options = { 60 var options = {
51 url: prefix + "/list", 61 url: prefix + "/list",
52 - method:"get", 62 + method: "get",
53 modalName: "消息表-全部", 63 modalName: "消息表-全部",
54 - sidePagination:"server", 64 + sidePagination: "server",
55 search: false, 65 search: false,
56 pageSize: 10, 66 pageSize: 10,
  67 + onClickRow: function (row) {
  68 + if (row.status == 0) {
  69 + readOne(row.id)
  70 + }
  71 + },
57 columns: [ 72 columns: [
58 { 73 {
59 - field : 'content',  
60 - title : '消息',  
61 - width:80  
62 - 74 + field: 'content',
  75 + title: '消息',
  76 + width: 80,
  77 + formatter: function (value, row) {
  78 + if (row.status == 0) {
  79 + return value + "<span style='color:red'>*</span>"
  80 + } else {
  81 + return value
  82 + }
  83 + }
63 }, 84 },
64 { 85 {
65 - field : 'created',  
66 - title : '时间',  
67 - width:20 86 + field: 'created',
  87 + title: '时间',
  88 + width: 20
68 } 89 }
69 - ] 90 + ]
70 }; 91 };
71 $.table.init(options); 92 $.table.init(options);
72 }); 93 });
73 94
74 $("#bootstrap-table1").bootstrapTable({ 95 $("#bootstrap-table1").bootstrapTable({
75 url: prefix + "/list", 96 url: prefix + "/list",
76 - method:"get", 97 + method: "get",
  98 + toolbar: "#toolbar1",
77 iconSize: "outline", 99 iconSize: "outline",
78 - queryParams:{status:0}, 100 + queryParams: {status: 0},
79 showRefresh: true, //刷新 101 showRefresh: true, //刷新
80 showToggle: true, //视图切换 102 showToggle: true, //视图切换
81 showColumns: true, //列选择 103 showColumns: true, //列选择
82 modalName: "消息表-未读", 104 modalName: "消息表-未读",
83 - sidePagination:"server",  
84 - responseHandler:responseHandler, 105 + sidePagination: "server",
  106 + onClickRow: function (row) {
  107 + readOne(row.id)
  108 + },
  109 + responseHandler: responseHandler,
85 search: false, 110 search: false,
86 pageList: [10, 25, 50, 100], 111 pageList: [10, 25, 50, 100],
87 pageNumber: 1, 112 pageNumber: 1,
88 pageSize: 10, 113 pageSize: 10,
89 columns: [ 114 columns: [
90 { 115 {
91 - field : 'content',  
92 - title : '消息',  
93 - width:80 116 + field: 'content',
  117 + title: '消息',
  118 + width: 80
94 119
95 }, 120 },
96 { 121 {
97 - field : 'created',  
98 - title : '时间',  
99 - width:20 122 + field: 'created',
  123 + title: '时间',
  124 + width: 20
100 } 125 }
101 ] 126 ]
102 }) 127 })
103 $("#bootstrap-table2").bootstrapTable({ 128 $("#bootstrap-table2").bootstrapTable({
104 url: prefix + "/list", 129 url: prefix + "/list",
105 - method:"get", 130 + method: "get",
106 iconSize: "outline", 131 iconSize: "outline",
107 showRefresh: true, //刷新 132 showRefresh: true, //刷新
108 showToggle: true, //视图切换 133 showToggle: true, //视图切换
109 showColumns: true, //列选择 134 showColumns: true, //列选择
110 queryParams: function (params) { 135 queryParams: function (params) {
111 - console.log(params)  
112 return { 136 return {
113 - pageSize: params.limit,  
114 - pageNum: params.offset / params.limit + 1,  
115 - status:1 137 + pageSize: params.limit,
  138 + pageNum: params.offset / params.limit + 1,
  139 + status: 1
116 }; 140 };
117 }, 141 },
118 modalName: "消息表-已读", 142 modalName: "消息表-已读",
119 pagination: true, 143 pagination: true,
120 - sidePagination:"server",  
121 - responseHandler:responseHandler, 144 + sidePagination: "server",
  145 + responseHandler: responseHandler,
122 search: false, 146 search: false,
123 pageList: [10, 25, 50, 100], 147 pageList: [10, 25, 50, 100],
124 pageNumber: 1, 148 pageNumber: 1,
125 pageSize: 10, 149 pageSize: 10,
126 columns: [ 150 columns: [
127 { 151 {
128 - field : 'content',  
129 - title : '消息',  
130 - width:80 152 + field: 'content',
  153 + title: '消息',
  154 + width: 80
131 155
132 }, 156 },
133 { 157 {
134 - field : 'created',  
135 - title : '时间',  
136 - width:20 158 + field: 'created',
  159 + title: '时间',
  160 + width: 20
137 } 161 }
138 ] 162 ]
139 }) 163 })
@@ -147,6 +171,41 @@ @@ -147,6 +171,41 @@
147 } 171 }
148 } 172 }
149 173
  174 + function readOne(id) {
  175 + $.ajax({
  176 + url: prefix + "/readOne",
  177 + type: "get",
  178 + data: {id: id},
  179 + success: function (response) {
  180 + if (response.code == 200) {
  181 + $("#bootstrap-table").bootstrapTable("refresh")
  182 + $("#bootstrap-table1").bootstrapTable("refresh")
  183 + } else {
  184 + $.modal.alertError(response.msg)
  185 + }
  186 + },
  187 + error: function (response) {
  188 + $.modal.alertError("服务出错")
  189 + }
  190 + })
  191 + }
  192 +
  193 + function readAll() {
  194 + $.modal.confirm("是否已读所有消息?", function () {
  195 + $.ajax({
  196 + url: prefix + "/readAll",
  197 + type: "get",
  198 + success: function (response) {
  199 + if ($("#tabNotReadTap".hasClass("active"))) {
  200 + $("#bootstrap-table1").bootstrapTable("")
  201 + }
  202 + },
  203 + error: function (response) {
  204 + $.modal.alertError("服务出错")
  205 + }
  206 + })
  207 + })
  208 + }
150 209
151 </script> 210 </script>
152 </html> 211 </html>