提交 | 用户 | age
|
a6a76f
|
1 |
$(function(){ |
951b1b
|
2 |
layui.use(['layer','element', 'laypage'], function () { |
da43d6
|
3 |
var element = layui.element; //Tab的切换功能,切换事件监听等,需要依赖element模块 |
X |
4 |
var laypage = layui.laypage; |
951b1b
|
5 |
var layer=layui.layer; |
da43d6
|
6 |
var $ = layui.$; |
c602a2
|
7 |
var itemColor="layui-bg-blue"; |
59940d
|
8 |
var Subscript=null;//要显示角标 |
5745f3
|
9 |
var sort = SortType || 'msgbyType';//默认 |
da43d6
|
10 |
var nowelem;//全局tab页卡对象 |
X |
11 |
var nowback = 0; |
|
12 |
var data = { |
5745f3
|
13 |
'm': SortType || 'msgbyType',//默认 |
da43d6
|
14 |
'userCode': $('#usercode').val(),//用户代码 |
X |
15 |
'hrCode': $('#usercode').val(),//用户代码 |
|
16 |
'isfinshed': 1,//是否已处理 |
|
17 |
'searchKey': '',//查询 |
|
18 |
'actionType': '',//审批类型 |
|
19 |
'num': 1, |
|
20 |
'msgType': 1,//内容类型 |
|
21 |
'formid': 0,//功能号 |
|
22 |
'pageSize': 20,//默认每页返回20条数据 |
|
23 |
'pageIndex': 1 //页码 |
|
24 |
} |
|
25 |
//监听tab1 |
|
26 |
element.on('tab(tab1)', function (elem) { |
|
27 |
$('.sort a').removeClass('disable-button'); |
|
28 |
data.isfinshed = $(this).data('isfinshed'); |
|
29 |
data.actionType = $(this).data('actiontype'); |
|
30 |
nowback = 0; |
|
31 |
data.formid = 0; |
|
32 |
data.num = 1; |
|
33 |
data.searchKey = ''; |
|
34 |
switch (elem.index) { |
|
35 |
case 0://待办 |
c602a2
|
36 |
itemColor=""; |
c251f2
|
37 |
element.tabChange('tab2', 1); //切换到:对应类型 |
da43d6
|
38 |
break; |
X |
39 |
case 1://已办 |
c602a2
|
40 |
itemColor="layui-bg-gray"; |
c251f2
|
41 |
element.tabChange('tab3', 1); //切换到:对应类型 |
da43d6
|
42 |
break; |
X |
43 |
case 2://在线交流 |
59940d
|
44 |
itemColor="layui-bg-blue"; |
X |
45 |
element.tabChange('tab4', 4); //切换到:对应类型 4表示未读页卡 |
|
46 |
break; |
da43d6
|
47 |
case 3://通知 |
c602a2
|
48 |
itemColor="layui-bg-blue"; |
59940d
|
49 |
element.tabChange('tab5', 4); //切换到:对应类型 4表示未读页卡 |
X |
50 |
// data.m = sort; |
|
51 |
// active(elem); |
da43d6
|
52 |
break; |
59940d
|
53 |
case 4://抄送我的 |
c602a2
|
54 |
itemColor="layui-bg-blue"; |
59940d
|
55 |
element.tabChange('tab6', 4); //切换到:对应类型 4表示未读页卡 |
d8ee82
|
56 |
break; |
da43d6
|
57 |
default://搜索 |
X |
58 |
if (!$($('.sort a')[0]).hasClass('disable-button')) { |
|
59 |
$($('.sort a')[0]).addClass('disable-button'); |
|
60 |
} |
|
61 |
if (data.m = 'msgbyType') { |
|
62 |
sort = 'msgv2'; |
|
63 |
data.m = sort; |
|
64 |
$('.sort a').removeClass('sortColor'); |
|
65 |
$($('.sort a')[1]).addClass('sortColor'); |
|
66 |
} |
951b1b
|
67 |
data.num=10; |
da43d6
|
68 |
data.searchKey = $('#demoReload').val(); |
X |
69 |
active(elem); |
|
70 |
break; |
a6a76f
|
71 |
|
da43d6
|
72 |
} |
X |
73 |
}); |
d8ee82
|
74 |
//监听tab2 |
da43d6
|
75 |
element.on('tab(tab2)', function (elem) { |
X |
76 |
data.msgType = $(this).attr('lay-id'); |
59940d
|
77 |
Subscript = (data.msgType == "1" ? this : null); |
X |
78 |
parmSet(elem); |
da43d6
|
79 |
}); |
d8ee82
|
80 |
//监听tab3 |
da43d6
|
81 |
element.on('tab(tab3)', function (elem) { |
59940d
|
82 |
Subscript=null; |
X |
83 |
parmSet(elem); |
d8ee82
|
84 |
}); |
X |
85 |
//监听tab4 |
|
86 |
element.on('tab(tab4)', function (elem) { |
c251f2
|
87 |
data.msgType = $(this).attr('lay-id'); |
59940d
|
88 |
Subscript = (data.msgType == "4" ? this : null); |
X |
89 |
parmSet(elem); |
da43d6
|
90 |
}); |
59940d
|
91 |
//监听tab5 |
X |
92 |
element.on('tab(tab5)', function (elem) { |
|
93 |
data.msgType = $(this).attr('lay-id'); |
|
94 |
Subscript = (data.msgType == "4" ? this : null); |
|
95 |
parmSet(elem); |
|
96 |
}); |
|
97 |
//监听tab6 |
|
98 |
element.on('tab(tab6)', function (elem) { |
|
99 |
data.msgType = $(this).attr('lay-id'); |
|
100 |
Subscript = (data.msgType == "4" ? this : null); |
|
101 |
parmSet(elem); |
|
102 |
}); |
|
103 |
|
da43d6
|
104 |
//搜索按钮触发 |
X |
105 |
$('.demoTable .layui-btn').on('click', function () { |
|
106 |
search(); |
|
107 |
}); |
|
108 |
//搜索回车触发 |
|
109 |
$('.demoTable input').on('keydown', function (e) { |
|
110 |
if (e.keyCode == 13) { |
|
111 |
search(); |
|
112 |
} |
|
113 |
}); |
|
114 |
//排序触发 |
|
115 |
$('.sort a').on('click', function () { |
|
116 |
if ($(this).hasClass('disable-button')) { |
|
117 |
return; |
|
118 |
} |
|
119 |
if (!$(this).hasClass('sortColor')) { |
|
120 |
$('.sort a').removeClass('sortColor'); |
|
121 |
$(this).addClass('sortColor'); |
|
122 |
} |
|
123 |
sort = $(this).data('type'); |
|
124 |
data.m = sort; |
|
125 |
data.formid = 0; |
|
126 |
data.num = 1; |
|
127 |
active(nowelem); |
|
128 |
}); |
|
129 |
|
59940d
|
130 |
var parmSet=function(elem){ |
X |
131 |
nowback = 0; |
|
132 |
data.formid = 0; |
|
133 |
data.num = 1; |
|
134 |
data.m = sort; |
|
135 |
active(elem); |
|
136 |
} |
da43d6
|
137 |
//触发加载数据 |
X |
138 |
var active = function (elem, label) { |
|
139 |
try { |
|
140 |
var id = elem.elem[0].id;//获取到对应页卡id |
|
141 |
var refresh = $(elem.elem[0].lastElementChild).find('.layui-breadcrumb');//刷新span对象 |
|
142 |
var collapse = $(elem.elem[0].lastElementChild).find('.layui-show').find('.layui-collapse');//内容div对象 |
|
143 |
Tips('layui-icon layui-icon-loading layui-anim layui-anim-rotate layui-anim-loop', '正在加载中...', collapse); |
|
144 |
var array = []; |
|
145 |
data.pageIndex = 1; |
|
146 |
var s = 0; |
|
147 |
for (var n = 0; n < data.num; n++) { |
|
148 |
data.pageIndex = n + 1; |
|
149 |
$.post('/webmenu.do?m=' + data.m, data, function (res) { |
|
150 |
s++ |
|
151 |
if (res != null && res.length > 0) { |
|
152 |
for (var r in res) { |
|
153 |
var key = res[r].key; |
|
154 |
var nuu = FFF(array, key); |
|
155 |
if (nuu >= 0) { |
|
156 |
var h = array[nuu].value.concat(res[r].value); |
|
157 |
array[nuu].value = h; |
|
158 |
} else { |
|
159 |
res[r].sort = sorct(key); |
|
160 |
array.push(res[r]); |
|
161 |
} |
|
162 |
} |
|
163 |
} |
|
164 |
if (s == data.num) { |
|
165 |
array = array.sort((a, b) => a.sort.localeCompare(b.sort, 'zh')) |
c84bc9
|
166 |
elem.index = elem.index > 2 ? 2 : elem.index; |
08c706
|
167 |
if (data.searchKey != null && data.searchKey != '') { |
59940d
|
168 |
collapse = collapse[5]; |
08c706
|
169 |
} else { |
X |
170 |
collapse = collapse.length > elem.index ? collapse[elem.index] : collapse[0]; |
|
171 |
} |
da43d6
|
172 |
getHtml(array, id, elem, label, refresh, collapse); |
X |
173 |
} |
|
174 |
}).error(function () { |
|
175 |
Tips('layui-icon layui-icon-face-surprised', '获取数据的时候出错了!', elem); |
|
176 |
return; |
|
177 |
}); |
|
178 |
} |
9f1481
|
179 |
getCountNum(true);//刷新角标数字 |
da43d6
|
180 |
} catch (e) { |
X |
181 |
Tips('layui-icon layui-icon-face-surprised', '数据处理异常!', elem); |
|
182 |
return; |
|
183 |
} |
9f1481
|
184 |
} |
X |
185 |
//加载角标数字总数 |
|
186 |
var getCountNum=function (isAsync) { |
|
187 |
$.ajaxSettings.async=isAsync;//是否异步处理 |
|
188 |
$.post('/webmenu.do?m=msgNumV2',function (data) { |
|
189 |
if (data != null && data.count != null && data.count > 0) { |
|
190 |
let list = data.list; |
|
191 |
let t; |
|
192 |
let tab = $(".tab1ul li"); |
|
193 |
for (let i = 0; i < list.length; i++) { |
c602a2
|
194 |
let color="layui-bg-blue"; |
9f1481
|
195 |
switch (list[i].ActionType) { |
X |
196 |
case '审核': |
|
197 |
t = tab.eq(0); |
c602a2
|
198 |
color=""; |
9f1481
|
199 |
break; |
X |
200 |
case '在线交流': |
|
201 |
t = tab.eq(2); |
|
202 |
break; |
|
203 |
case '通知': |
|
204 |
t = tab.eq(3); |
|
205 |
break |
|
206 |
case '抄送我的': |
|
207 |
t = tab.eq(4); |
|
208 |
break |
|
209 |
} |
|
210 |
t.find("span").remove(); |
|
211 |
if (list[i].ActionCount == 0) { |
|
212 |
continue; |
|
213 |
} |
c602a2
|
214 |
t.append("<span class=\"layui-badge "+color+"\">" + list[i].ActionCount + "</span>"); |
9f1481
|
215 |
} |
X |
216 |
} |
|
217 |
}) |
da43d6
|
218 |
} |
X |
219 |
var getHtml = function (res, id, elem, label, refresh, collapse) { |
|
220 |
var html = ""; |
c84bc9
|
221 |
let counts=[]; |
X |
222 |
let htttt=function(val){ |
|
223 |
let html = ''; |
|
224 |
html += '<div class="itemv2">'; |
|
225 |
html += '<div><img src="' + val.largImagePath + '"/></div>'; |
|
226 |
html += '<ul>'; |
|
227 |
html += '<li>' + val.topicText + '</li>'; |
|
228 |
html += '<li>' + (val.DocStatusName != null && val.DocStatusName != "" ? val.DocStatusName + ':' : '单据状态:') |
|
229 |
+ ((val.CurcheckerName != null && val.CurcheckerName != "") ? val.CurcheckerName : '') + '</li>'; |
|
230 |
html += '<li>[' + ((val.DocType != null && val.DocType != "") ? val.DocType + " / " : "") + (val.EnterName != null ? val.EnterName : "") + '提交]'; |
|
231 |
html += '<span style="float: right;">' + val.inserttime + '</span></li>'; |
|
232 |
html += '</ul>'; |
|
233 |
html += '</div>'; |
|
234 |
return html; |
|
235 |
} |
da43d6
|
236 |
if (res.length > 0) { |
59940d
|
237 |
let num=0;//角标数 |
da43d6
|
238 |
switch (data.m) { |
X |
239 |
case 'msgbyType': |
|
240 |
for (var i in res) { |
|
241 |
var t = (res[i].key != null && res[i].key != "" ? res[i].key : "其他"); |
|
242 |
html += '<div class="layui-colla-item">'; |
|
243 |
html += '<h3 class="layui-colla-title" style="height:25px;line-height:25px;">' + t + '</h3>'; |
bd49ac
|
244 |
html += '<div class="layui-colla-content layui-show">';//' + (i == nowback ? "layui-show" : (nowback == t ? "layui-show" : "")) + '">'; |
da43d6
|
245 |
for (var j in res[i].value) { |
X |
246 |
var val = res[i].value[j]; |
|
247 |
html += '<div class="item" title="' + val.FormName + '" data-formid="' + val.FormId + '" data-type="' + t + '">'; |
c602a2
|
248 |
html += '<span class="layui-badge '+itemColor+'">' + val.FormIdCount + '</span>'; |
da43d6
|
249 |
html += '<img src="' + val.largImagePath + '" /><br><span class="formName">' |
X |
250 |
+ (val.FormName.length > 5 ? val.FormName.substring(0, 5) + "..." : val.FormName) + '</span>'; |
|
251 |
html += '</div>'; |
59940d
|
252 |
num+=val.FormIdCount; |
da43d6
|
253 |
} |
X |
254 |
html += '</div></div>'; |
|
255 |
} |
|
256 |
break; |
|
257 |
case 'msgv2': |
|
258 |
case 'msgTime': |
|
259 |
for (var v in res) { |
|
260 |
html += '<div class="layui-colla-item">'; |
|
261 |
html += '<h3 class="layui-colla-title" style="height:25px;line-height:25px;">' + (res[v].key != null && res[v].key != "" ? res[v].key : "其他") + '</h3>'; |
c84bc9
|
262 |
html += '<div id="pii'+v+'" class="layui-colla-content collapse-height layui-show">';//' + (v == 0 ? "layui-show" : "") + '">'; |
X |
263 |
for (let j in res[v].value) { |
|
264 |
let val = res[v].value[j]; |
|
265 |
html+=htttt(val); |
da43d6
|
266 |
} |
c84bc9
|
267 |
html += '</div><div id="pageC'+v+'" data-it="pii'+v+'" class="pageCont" style="padding: 0px 14px;"></div></div>'; |
X |
268 |
counts['pageC'+v]=res[v].value; |
da43d6
|
269 |
} |
X |
270 |
break; |
|
271 |
default: |
|
272 |
html = Tips('layui-icon layui-icon-face-surprised', '切换排序类型时候出错了!'); |
|
273 |
break; |
59940d
|
274 |
} |
X |
275 |
if (Subscript != null) { |
|
276 |
if(data.m=="msgbyType"){ |
|
277 |
$(Subscript).find("span").remove(); |
|
278 |
} |
|
279 |
if (num != 0) { |
|
280 |
$(Subscript).append("<span class=\"layui-badge " + itemColor + "\" style='margin-top: 13px'>" + num + "</span>"); |
|
281 |
} |
da43d6
|
282 |
} |
X |
283 |
} else { |
|
284 |
html = Tips('layui-icon layui-icon-face-surprised', '没有需要办理的事宜'); |
|
285 |
} |
|
286 |
$(collapse).html(html); |
|
287 |
element.render('collapse', id + '-' + elem.index); |
c84bc9
|
288 |
$(collapse).find(".pageCont").each(function () { |
X |
289 |
let pii = $(this).data("it"); |
|
290 |
let data = counts[this.id]; |
|
291 |
if (data != null && data.length > 5) { |
|
292 |
laypage.render({ |
|
293 |
elem: this |
|
294 |
, limit: 5 |
|
295 |
, count: data.length //数据总数 |
|
296 |
, jump: function (obj,first) { |
|
297 |
//模拟渲染 |
|
298 |
$(collapse).find("#" + pii)[0].innerHTML = function () { |
|
299 |
// document.getElementById(pii).innerHTML = function(){ |
|
300 |
let html = '' |
|
301 |
, thisData = data.concat().splice(obj.curr * obj.limit - obj.limit, obj.limit); |
|
302 |
layui.each(thisData, function (index, item) { |
|
303 |
html += htttt(item); |
|
304 |
}); |
|
305 |
return html; |
|
306 |
}(); |
|
307 |
} |
|
308 |
}); |
|
309 |
} |
|
310 |
}) |
da43d6
|
311 |
//刷新和返回便签。 |
X |
312 |
$(refresh).html((label != undefined ? label : "") + '<a href="#" data-formid="' + data.formid + '">刷新</a>'); |
|
313 |
var ref = ''; |
|
314 |
if (id == 'tab2') { |
|
315 |
ref = 'refresh0'; |
|
316 |
} else if (id == 'tab3') { |
|
317 |
ref = 'refresh1'; |
d8ee82
|
318 |
} else if (id == 'tab4') { |
59940d
|
319 |
ref = 'refresh2'; |
X |
320 |
} else if (id == 'tab5') { |
|
321 |
ref = 'refresh3'; |
|
322 |
} else if (id == 'tab6') { |
d8ee82
|
323 |
ref = 'refresh4'; |
X |
324 |
}else { |
da43d6
|
325 |
ref = 'refresh' + elem.index; |
X |
326 |
} |
|
327 |
element.render('breadcrumb', ref); |
|
328 |
$('.item').on('click', function () { |
|
329 |
nowback = $(this).data('type'); |
|
330 |
data.formid = $(this).data('formid'); |
|
331 |
data.m = 'msgv2'; |
|
332 |
data.num = Math.ceil(Number($(this).find('.layui-badge').html()) / 20); |
|
333 |
active(elem, '<a href="#" data-formid="0">返回</a>'); |
|
334 |
}); |
|
335 |
$('.refresh a').on('click', function () { |
|
336 |
data.formid = $(this).data('formid'); |
|
337 |
if (data.formid == 0) { |
|
338 |
data.num = 1; |
|
339 |
data.m = sort; |
|
340 |
active(elem); |
|
341 |
} else { |
|
342 |
active(elem, '<a href="#" data-formid="0">返回</a>'); |
|
343 |
} |
|
344 |
}); |
|
345 |
nowelem = elem; |
|
346 |
} |
|
347 |
var FFF = function (array, key) { |
|
348 |
for (var a in array) { |
|
349 |
var jsonValue = array[a].key;//JSON.parse(array[a]); |
|
350 |
if (jsonValue == key) { |
|
351 |
return parseInt(a); |
|
352 |
} |
|
353 |
} |
|
354 |
return -1; |
|
355 |
} |
|
356 |
var sorct = function (sor) { |
|
357 |
var z = sor; |
|
358 |
switch (sor) { |
|
359 |
case '今天': |
|
360 |
z = 'a'; |
|
361 |
break |
|
362 |
case '昨天': |
|
363 |
z = 'b'; |
|
364 |
break |
|
365 |
case '星期一': |
|
366 |
z = 'c'; |
|
367 |
break |
|
368 |
case '星期二': |
|
369 |
z = 'd'; |
|
370 |
break |
|
371 |
case '星期三': |
|
372 |
z = 'e'; |
|
373 |
break |
|
374 |
case '星期四': |
|
375 |
z = 'f'; |
|
376 |
break |
|
377 |
case '星期五': |
|
378 |
z = 'g'; |
|
379 |
break |
|
380 |
case '星期六': |
|
381 |
z = 'h'; |
|
382 |
break |
|
383 |
case '星期日': |
|
384 |
z = 'i'; |
|
385 |
break |
|
386 |
case '上周': |
|
387 |
z = 'j'; |
|
388 |
break |
|
389 |
case '更早': |
|
390 |
z = 'k'; |
|
391 |
break |
|
392 |
} |
|
393 |
return z; |
|
394 |
} |
|
395 |
//搜索 |
|
396 |
var search = function () { |
951b1b
|
397 |
data.searchKey = $('#demoReload').val(); |
X |
398 |
if (data.searchKey==""){ |
|
399 |
layer.alert("请输入关键词搜索"); |
|
400 |
return; |
|
401 |
} |
59940d
|
402 |
var exist = $("li[lay-id='other']").length; //判断是否存在tab |
da43d6
|
403 |
if (exist == 0) { |
X |
404 |
//新增一个Tab项 |
|
405 |
element.tabAdd('tab1', { |
|
406 |
title: '<img src="/FangYuanAdmin/myImages/png/0187.png" class="layui-nav-img"/>搜索结果<i class="layui-icon layui-unselect layui-tab-close">ဆ</i>'//标题 |
59940d
|
407 |
, content: '<div class="layui-collapse" lay-filter="tab7"></div>'//内容 lay-accordion添加是手提琴模式 |
X |
408 |
, id: '6' //lay-id |
da43d6
|
409 |
}); |
X |
410 |
//关闭 |
|
411 |
$('.layui-tab-close').on('click', function () { |
59940d
|
412 |
element.tabDelete('tab1', '6'); |
da43d6
|
413 |
element.tabChange('tab1', '1'); |
X |
414 |
}); |
|
415 |
} |
59940d
|
416 |
element.tabChange('tab1', '6'); |
da43d6
|
417 |
} |
X |
418 |
//提示模板 |
|
419 |
var Tips = function (c, m, collapse) { |
|
420 |
var text = '<div class="mask"><i class="' + c + '"></i><span>' + m + '</span></div>'; |
|
421 |
if (collapse != undefined) { |
|
422 |
$(collapse).html(text); |
|
423 |
} else { |
|
424 |
return text; |
|
425 |
} |
|
426 |
} |
|
427 |
//跳转界面 |
|
428 |
postT219001 = function (s1, s2, s3, s4, s5) { |
|
429 |
parent.addTab(s1, s2, s3, s4, s5); |
59940d
|
430 |
setTimeout(function () { |
X |
431 |
getCountNum(false);//刷新角标 |
|
432 |
if (Subscript != null) { |
|
433 |
let num = $(Subscript).find("span").text(); |
|
434 |
if (num != null && num > 0) { |
|
435 |
if (num == 1) { |
|
436 |
$(Subscript).find("span").remove(); |
|
437 |
} else { |
|
438 |
$(Subscript).find("span").text(num - 1); |
|
439 |
} |
|
440 |
} |
|
441 |
} |
|
442 |
}, 1000) |
da43d6
|
443 |
} |
X |
444 |
//加载完后切换到对应类型。 |
|
445 |
element.tabChange('tab1', '1'); |
|
446 |
}); |
a6a76f
|
447 |
}) |