Files
SIPAIIS_WMS_JSSW/WebRoot/jsp/top.jsp

1380 lines
67 KiB
Plaintext
Raw Normal View History

2026-01-16 14:13:44 +08:00
<%@ page language="java" pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<link rel="stylesheet" href="<%=request.getContextPath()%>/plugins/toastr/toastr.min.css"/>
<style type="text/css">
#toast-container > .toast-success {
background-image: url(data:image/png;base64,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) !important;
}
.dropdown-menu ul li:hover {
color: #000000
}
.right .direct-chat-text:after, .right .direct-chat-text:before {
right: auto;
left: 100%;
border-right-color: transparent;
border-left-color: #9EEA6A;
}
#qrcode{
width: 160px;
height: 170px;
padding: 5px;
margin: auto;
}
/*.dropdown-submenu {
position: relative;
}
.dropdown-submenu>.dropdown-menu {
top: 0;
left: 100%;
margin-top: -6px;
margin-left: -1px;
-webkit-border-radius: 0 6px 6px 6px;
-moz-border-radius: 0 6px 6px;
border-radius: 0 6px 6px 6px;
}
.dropdown-submenu:hover>.dropdown-menu {
display: block;
}
.dropdown-submenu>a:after {
display: block;
content: " ";
float: right;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
border-width: 5px 0 5px 5px;
border-left-color: #ccc;
margin-top: 5px;
margin-right: -10px;
}
.dropdown-submenu:hover>a:after {
border-left-color: #fff;
}
.dropdown-submenu.pull-left {
float: none;
}
.dropdown-submenu.pull-left>.dropdown-menu {
left: -100%;
margin-left: 10px;
-webkit-border-radius: 6px 0 6px 6px;
-moz-border-radius: 6px 0 6px 6px;
border-radius: 6px 0 6px 6px;
}*/
.dropdown-menu {
width: 200px;
/*left: -90px !important;*/
}
</style>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/toastr/toastr.min.js"
charset="utf-8"></script>
<!-- Ionicons -->
<!-- 语音识别 -->
<script type="text/javascript" src="<%=request.getContextPath()%>/node_modules/Recorder-master/recorder.mp3.min.js"
charset="utf-8"></script>
<script type="text/javascript">
var logout = function () {
swal({
text: "您确定要退出系统?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function (willDelete) {
if (willDelete) {
$.post(ext.contextPath + "/Login/logout.do", function () {
delCookie("j_password");
delCookie('savePassword');
location.replace(ext.contextPath);
});
}
});
};
//修改密码
var changePassword = function () {
$.post(ext.contextPath + '/user/showChangePasswordPage.do', {}, function (data) {
$("#subPasswordDiv").html(data);
openModal('subPasswordModal');
});
}
//查看个人信息
var viewPersonalInformation = function () {
$.post(ext.contextPath + '/user/viewPersonalInformation.do', {id: '${cu.id}'}, function (data) {
$("#subPasswordDiv").html(data);
openModal('subPasswordModal');
});
}
//为body添加模态框的div
$(function () {
var topWidth = $('#top').outerWidth();
var topRightWidth = $('#topRight').outerWidth();
var titleWidth = topWidth - 195;//115
//$("#logo-title").css('width', titleWidth);
//获取配置的logo和文字
$.ajax({
type: 'post',
url: ext.contextPath + '/base/basicComponents/getBasicComponentsForCode.do',
data: {
code: 'logo',//配置位置
},
async: true,
globle: false,
error: function () {
},
success: function (data) {
var array = JSON.parse(data);
if (array != null && array != undefined && array.length > 0) {
for (var i = 0; i < array.length; i++) {
var top = null;
if ($('#' + array[i].id).length > 0) {
top = $('#' + array[i].id);
if (array[i].type != null) {
if (array[i].type == 'in_file') {
if (array[i].abspath != null && array[i].abspath != '') {
var path = array[i].abspath;
var img = '<img src="' + path + '" alt=""/>';
top.html(img);
} else {
top.html(array[i].text);
}
} else {
if (array[i].type == 'out_file') {
if (array[i].abspath != null && array[i].abspath != '') {
var path = ext.contextPath + "/showImg?src=" + encodeURIComponent(array[i].abspath);
var img = '<img src="' + path + '" alt=""/>';
top.html(img);
} else {
top.html(array[i].text);
}
} else {
if (array[i].type == 'text') {
top.html(array[i].text);
}
}
}
} else {
top.html(array[i].text);
}
}
}
}
}
});
$(document.body).append(
'<div id="subPasswordDiv"></div>' +
'<div id="bonusPointDiv"></div>' +
'<div id="themeDiv"></div>' +
'<div id="fileinputHeadPortraitDiv"></div>'
);
toastr.options.closeButton = true;
});
//读取cookies
function getCookie(name) {
var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
if (arr = document.cookie.match(reg)) return unescape(arr[2]);
else return null;
}
//删除cookies
function delCookie(name) {
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval = getCookie(name);
if (cval != null) document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
}
var websocket = null;
var restartDialog;
//判断当前浏览器是否支持WebSocket
if ('WebSocket' in window) {
websocket = new ReconnectingWebSocket(ext.basePath.replace("http", "ws") + "/msgWebSocket/${cu.id}");
} else {
alert('当前浏览器 Not support websocket')
}
//连接发生错误的回调方法
websocket.onerror = function () {
};
//连接成功建立的回调方法
websocket.onopen = function () {
console.info('消息滚动websocker开启');
}
//接收到消息的回调方法
websocket.onmessage = function (event) {
//var result= JSON.parse(event.data);
querynewmsg();
queryTaskNum();
}
//连接关闭的回调方法
websocket.onclose = function () {
console.info('消息滚动websocker关闭_top');
/* if(restartDialog==null){
restartDialog=swal({
title:'提醒',
text: '连接已断开,请刷新页面重试。',
dangerMode: true,
buttons: {
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-info",
closeModal: true
}
}
})
.then(function(willDelete) {
if (willDelete) {
location.replace(ext.contextPath);
}
});;
} */
closeWebSocket();
}
//监听窗口关闭事件当窗口关闭时主动去关闭websocket连接防止连接还没断开就关闭窗口server端会抛异常。
window.onbeforeunload = function () {
closeWebSocket();
}
//关闭WebSocket连接
function closeWebSocket() {
websocket.close();
}
var post = "";
var unReadMsgNum = 0;
function querynewmsg(isOnLoad) {
$.post(ext.contextPath + "/msg/getUnreadMsgs4main.do", function (data) {
var total = data.total;
var rows = data.rows;
//console.info(data)
if (unReadMsgNum < total) {
unReadMsgNum = total;
}
showView(data.rows, isOnLoad);
}, 'json');
}
function msgshow(id, a) {
swal({
title: '消息',
text: a,
dangerMode: true,
buttons: {
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-info",
closeModal: true
}
}
});
$.post(ext.contextPath + '/msg/updateMsgRecvStatus.do', {ids: id}, function (data) {
document.body.dataset.msgreaded = 'true';
}, 'json');
}
function contingencyPlanShow(id, a) {
swal({
title: '应急预案',
text: '应急预案措施内容...',
dangerMode: true,
buttons: {
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-info",
closeModal: true
}
}
});
$.post(ext.contextPath + '/msg/updateMsgRecvStatus.do', {ids: id}, function (data) {
document.body.dataset.msgreaded = 'true';
}, 'json');
}
var msgplayer = true;
function showView(rows, isOnLoad) {
if (!isOnLoad) {
if (document.body.dataset.msgreaded !== 'true') {
if (rows[0].typeid === "ALARM") {
toastr.error('<span onclick="contingencyPlanShow(\'' + rows[0].id + '\',\'' + rows[0].content + '\')">' + rows[0].content + '</span>', '异常报警');
} else if (rows[0].typeid === "PROFESSOR") {
toastr.success('<span onclick="goToLocation(\'work/KPIPro/showlist.do\')">' + rows[0].content + '</span>', '专家建议');
} else if (rows[0].typeid === "INFO") {
toastr.info(rows[0].content, '新公告');
} else {
toastr.warning(rows[0].content, '新消息');
}
//消息声音
console.log(msgplayer);
if (msgplayer) {
msgplayer = false;
var player = document.getElementById("msgMedia");
player.src = "<%=request.getContextPath()%>/node_modules/media/messaging.wav";
player.loop = false;
player.addEventListener('ended', function () {
msgplayer = true;
}, false);
}
}
}
if (rows.length > 0) {
$('#span_unread').html(rows.length);
} else {
$('#span_unread').html('');
}
$('#li_unread').html('您有' + rows.length + '条未读消息');
$('#msglist').empty();
document.body.dataset.msgreaded = 'false';
//只显示最近10条
for (var i = 0; i < rows.length && i < 10; i++) {
var caption = "XXX";
if (rows[i].susername != null) {
caption = rows[i].susername.caption
}
var content = rows[i].content;
if (content != null && content.length > 27) {
content = content.substring(0, 26) + "......";
}
var clickActionFunc = '"msgshow(\'' + rows[i].id + '\',\'' + rows[i].content + '\')"';
if (rows[i].typeid === "ALARM") {
clickActionFunc = '"contingencyPlanShow(\'' + rows[0].id + '\',\'' + rows[0].content + '\')"';
} else if (rows[i].typeid === "PROFESSOR") {
clickActionFunc = '"goToLocation(\'work/KPIPro/showlist.do\')"';
} else if (rows[i].typeid === "INFO") {
}
var item = '<li><a onclick=' + clickActionFunc + ' style="padding:7px;"><div class="pull-left" "><img src="' + ext.contextPath + '/plugins/AdminLTE/img/msg.png" style="padding:7px;" alt="User Image"></div>' +
'<h4>' + caption +
'<small><i class="fa fa-clock-o"></i>' + rows[i].insdt.substring(10, 16) + '</small>' +
'</h4>' +
'<p style="width:50px;" title="' + rows[i].content + '">' + content + '</p>' +
'</a></li>';
$('#msglist').append(item);
}
}
// function goToMsgListView(){
// $.post(ext.contextPath +"/user/getMenuRelation.do",{location:'msg/showMsgrecv.do'},function(data){
// //console.info(data)
//if(data.length>2){
//doforward('msg/showMsgrecv.do',data[2].id,data[1].id,data[0].id)
//}
// },'json');
//
// }
function goToMsgListView() {
addTab('UnreadTaskList', '未读消息', 'msg/showMsgrecv.do');
}
function goToTaskList() {
// $.post(ext.contextPath +"/user/getMenuRelation.do",{location:'activiti/workflow/taskList.do'},function(data){
// if(data.length>2){
// doforward('activiti/workflow/taskList.do',data[2].id,data[1].id,data[0].id)
// }
// },'json');
addTab('taskList', '待办事项', 'activiti/workflow/taskList.do');
/* var url = ext.contextPath +"/activiti/workflow/taskList.do";
nthTabs.addTab({
id:'tabId_taskList',
title:'待办事项',
url: url,
active: true,
allowClose: true,
location: true,
fadeIn: true
}); */
}
function goToDoneTaskList() {
addTab('donetaskList', '已办事项', 'activiti/workflow/donetaskList.do');
/* var url = ext.contextPath +"/activiti/workflow/donetaskList.do";
nthTabs.addTab({
id:'tabId_donetaskList',
title:'已办事项',
url: url,
active: true,
allowClose: true,
location: true,
fadeIn: true
}); */
}
function queryTaskNum() {
//获取所有当前待办任务数量
$.post(ext.contextPath + "/maintenance/getTaskListAmount.do", function (data) {
if (data.total > 0) {
$('#taskNum').html(data.total)
} else {
$('#taskNum').html();
}
}, 'json');
}
function changeTheme() {
$.post(ext.contextPath + '/user/showChangeTheme.do', {}, function (data) {
$("#themeDiv").html(data);
openModal('subThemeModal');
});
}
$(function () {
querynewmsg(true);
queryTaskNum();
setInterval(function() {
queryTaskNum();
},60000);
// $("#companytree").slimScroll({
// height:'500'
// });
//防止点击树的+号收起下拉框
// $("#top_company_tree").on("click", function (e) {
// event.stopPropagation();
// });
//点击空白隐藏树
$(document).click(function (e) {
var divTree = $('#top_company_tree'); // 设置目标区域
if (!divTree.is(e.target) && divTree.has(e.target).length === 0) {
divTree.hide();
}
})
});
function goToLocation(url) {
$.post(ext.contextPath + "/user/getMenuRelation.do", {location: url}, function (data) {
console.info(data)
if (data.length > 2) {
doforward(url, data[2].id, data[1].id, data[0].id)
}
}, 'json');
}
/*function doChoice(name){
$("#viewName").text(name);
}*/
function companyCheck(id, st, pid) {
event.stopPropagation();
// var checkList=$("#companytree"+st);
$("#companytree" + st + " div").each(function () {
var clickid = $(this).attr("id");
if (clickid == id) {
$("#" + clickid + "").css('box-shadow', "#d2cdcd 0px 3px 5px 2px");
} else {
$("#" + clickid + "").css('box-shadow', "");
}
});
if (st < Number(companyOpenNum)) {
if ($('#companytree' + (Number(st) + 1)).attr("pid") == id) {
for (var i = st; i < Number(companyOpenNum); i++) {
$('#companytree' + (Number(i) + 1)).remove();
}
$("#companyP").css('width', 220 * Number(st) + "px");
if (Number(st) > 2) {
$("#companyP").css('left', "-" + 220 * (Number(st) - 2) + "px");
} else {
$("#companyP").css('left', "0px");
}
companyOpenNum = st;
} else {
for (var i = st; i < Number(companyOpenNum); i++) {
$('#companytree' + (Number(i) + 1)).remove();
}
$.post(ext.contextPath + '/user/getUnitTreeForTop.do', {pid: id}, function (data) {
// console.log(data);
if (data != '') {
companyOpenNum = Number(st) + 1;
var cnum = Number(st) + 1;
if (cnum > 2) {
$("#companyP").css('left', "-" + 220 * (cnum - 2) + "px");
}
$("#companyP").css('width', 220 * cnum + "px");
$("#companytree").append("<div id='companytree" + cnum + "' st='" + cnum + "' pid='" + id + "' style='float:left;width:220px;height:100%;overflow-y:auto;background:rgba(250,250,250,0.75);border:1px solid #eee;'></div>");
var html = "";
for (var i = 0; i < data.length; i++) {
var indata = data[i];
html += "<div onmouseover='bizTreeMIn(\"" + indata.id + "\");' onmouseout='bizTreeMOut(\"" + indata.id + "\");' onclick='changgeCompany(\"" + indata.id + "\",\"" + indata.showtext + "\",\"" + st + "\");' id='" + indata.id + "' style='float:left;width:100%;height:32px;line-height:32px;margin-top:10px;cursor: pointer;position:relative;'>";
html += "<span class='" + indata.icon + "' style='width:35px;padding-left:30px;'></span><span style='width:120px;padding-left:15px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;position:absolute;' title=" + indata.text + ">" + indata.text + "</span>";
if (indata.next == 'true') {
html += "<span onclick='companyCheck(\"" + indata.id + "\",\"" + cnum + "\",\"" + id + "\");' class='btn btn-default btn-sm fa fa-angle-double-right pull-right' style='width:35px;margin-top:3px;margin-right:5px;cursor: pointer;'></span>";
}
html += "</div>";
}
$('#companytree' + cnum).html(html);
}
}, 'json');
}
} else {
$.post(ext.contextPath + '/user/getUnitTreeForTop.do', {pid: id}, function (data) {
// console.log(data);
if (data != '') {
companyOpenNum = Number(companyOpenNum) + 1;
var cnum = companyOpenNum;
if (cnum > 2) {
$("#companyP").css('left', "-" + 220 * (cnum - 2) + "px");
}
$("#companyP").css('width', 220 * cnum + "px");
$("#companytree").append("<div id='companytree" + cnum + "' st='" + cnum + "' pid='" + id + "' style='float:left;width:220px;height:100%;overflow-y:auto;background:rgba(250,250,250,0.75);border:1px solid #eee;'></div>");
var html = "";
for (var i = 0; i < data.length; i++) {
var indata = data[i];
html += "<div onmouseover='bizTreeMIn(\"" + indata.id + "\");' onmouseout='bizTreeMOut(\"" + indata.id + "\");' onclick='changgeCompany(\"" + indata.id + "\",\"" + indata.showtext + "\",\"" + st + "\");' id='" + indata.id + "' style='float:left;width:100%;height:32px;line-height:32px;margin-top:10px;cursor: pointer;position:relative;'>";
html += "<span class='" + indata.icon + "' style='width:35px;padding-left:30px;'></span><span style='width:120px;padding-left:15px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;position:absolute;' title=" + indata.text + ">" + indata.text + "</span>";
if (indata.next == 'true') {
html += "<span onclick='companyCheck(\"" + indata.id + "\",\"" + cnum + "\",\"" + id + "\");' class='btn btn-default btn-sm fa fa-angle-double-right pull-right' style='width:35px;margin-top:3px;margin-right:5px;cursor: pointer;'></span>";
}
html += "</div>";
}
$('#companytree' + cnum).html(html);
}
}, 'json');
}
}
$.post(ext.contextPath + '/user/getUnitTreeForTop.do', function (data) {
// console.log(data);
if (data != '') {
var html = "<div id=\"companytree1\" st=\"1\" pid=\"-1\" style=\"float:left;width:220px;height:100%;overflow-y:auto;background:rgba(250,250,250,0.75);border:1px solid #eee;\">";
for (var i = 0; i < data.length; i++) {
var indata = data[i];
html += "<div onmouseover='bizTreeMIn(\"" + indata.id + "\");' onmouseout='bizTreeMOut(\"" + indata.id + "\");' onclick='changgeCompany(\"" + indata.id + "\",\"" + indata.showtext + "\",\"1\");' id='" + indata.id + "' style='float:left;width:100%;height:32px;line-height:32px;margin-top:10px;cursor: pointer;position:relative;'>";
html += "<span class='" + indata.icon + "' style='width:35px;padding-left:30px;'></span><span style='width:120px;padding-left:15px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;position:absolute;' title=" + indata.text + ">" + indata.text + "</span>";
if (indata.next == 'true') {
html += "<span onclick='companyCheck(\"" + indata.id + "\",\"1\",\"-1\");' class='btn btn-default btn-sm fa fa-angle-double-right pull-right' style='width:35px;margin-top:3px;margin-right:5px;cursor: pointer;'></span>";
}
html += "</div>";
}
html += "</div>";
$("#companytree").html(html);
companyCheck(data[0].id, 1, -1);
$("#" + data[0].id + "").css('background-color', "#428BCA");
$("#" + data[0].id + "").css('color', "#ffffff");
$("#" + data[0].id + "").css('box-shadow', "#d2cdcd 0px 3px 5px 2px");
}
}, 'json');
function doChoice() {
$('#top_company_tree').show();
}
function bizTreeMIn(id) {
var style = $("#" + id + "").css("box-shadow");
if (style == 'rgb(210, 205, 205) 0px 3px 5px 2px') {
console.log(style);
$("#" + id + "").css('box-shadow', "#d2cdcd 0px 3px 5px 2px");
} else {
$("#" + id + "").css('box-shadow', "#d2cdcd 0px 2px 5px 2px");
}
}
function bizTreeMOut(id) {
var style = $("#" + id + "").css("box-shadow");
if (style == 'rgb(210, 205, 205) 0px 3px 5px 2px') {
$("#" + id + "").css('box-shadow', "#d2cdcd 0px 3px 5px 2px");
} else {
$("#" + id + "").css('box-shadow', "");
}
}
var companyOpenNum = '1';
var lastClickBizid = "-1";
function changgeCompany(bizid, bizname, st) {
st = Number(st) + 1;
$('#companyName').html(bizname);
$('#top_company_tree').hide();
$('#unitId').val(bizid);
//2021.11.25 JY 增加了自定义首页配置
$.ajax({
type: 'post',
url: ext.contextPath + '/base/basicHomePage/getJsonByUserId.do',
data: {
unitId: bizid,
},
dataType: 'json',
async: true,
globle: false,
success: function (pageData) {
// console.log(pageData)
let unrolePeople = "";
if (pageData.data != '' && pageData.data.length > 0) {
let nowUser = pageData.userId;
unrolePeople = pageData.data[0].unrolepeople;
let mainUrl = pageData.data[0].url;
if (unrolePeople != '' && unrolePeople.indexOf(nowUser) != -1) {//无权限查看
mainUrl = "base/basicHomePage/showNoRole.do"
} else {
if (mainUrl.substring(0, 1) == '/') {
mainUrl = mainUrl.substring(1, mainUrl.length);
}
}
// 刷新选项卡
nthTabs.refTab('tabId_home', mainUrl);
}
}
});
//防止厂名过长导致抬头文字换行
var topWidth = $('#top').outerWidth();
var topRightWidth = $('#topRight').outerWidth();
var titleWidth = topWidth - topRightWidth - 50;
//$("#logo-title").css('width', titleWidth);
//所有tab增加Company发生变更状态变化为true不变化为false
var tabList = nthTabs.getTabList();
for (var i = 0; i < tabList.length; i++) {
$(tabList[i].id).find("iframe").attr("data-changeCompany", true);
}
//刷新当前活动状态tab
var tabActiveId = nthTabs.getActiveId();
var url = $("#" + tabActiveId).find("iframe").attr("src");
$("#" + tabActiveId).find("iframe").attr('src', url);
$("#" + tabActiveId).find("iframe").attr('data-changeCompany', false);
//全部tab刷新
/* var tabList = nthTabs.getTabList();
for (var i = 0; i < tabList.length; i++) {
var url = $(tabList[i].id).find("iframe").attr("src");
$(tabList[i].id).find("iframe").attr('src', url);
} */
for (var i = st; i < Number(companyOpenNum); i++) {
$('#companytree' + (Number(i) + 1)).remove();
}
$("#companyP").css('width', 220 * Number(st) + "px");
if (Number(st) > 2) {
$("#companyP").css('left', "-" + 220 * (Number(st) - 2) + "px");
} else {
$("#companyP").css('left', "0px");
}
companyOpenNum = st;
$("#companytree" + st + " div").each(function () {
var clickid = $(this).attr("id");
if (clickid == bizid) {
$("#" + clickid + "").css('box-shadow', "#d2cdcd 0px 3px 5px 2px");
} else {
$("#" + clickid + "").css('box-shadow', "");
}
});
if (lastClickBizid != '-1') {
$.post(ext.contextPath + '/user/getAllParentBizId.do', {bizid: lastClickBizid}, function (data) {
var datas = data.substring(0, data.length - 1).split(",");
for (var i = 0; i < datas.length; i++) {
$("#" + datas[i] + "").css('background-color', "#fafafa");
$("#" + datas[i] + "").css('color', "#000000");
}
$.post(ext.contextPath + '/user/getAllParentBizId.do', {bizid: bizid}, function (data) {
var datas = data.substring(0, data.length - 1).split(",");
for (var i = 0; i < datas.length; i++) {
$("#" + datas[i] + "").css('background-color', "#428BCA");
$("#" + datas[i] + "").css('color', "#ffffff");
$("#" + datas[i] + "").css('box-shadow', "#d2cdcd 0px 3px 5px 2px");
}
});
});
} else {
$.post(ext.contextPath + '/user/getAllParentBizId.do', {bizid: bizid}, function (data) {
var datas = data.substring(0, data.length - 1).split(",");
for (var i = 0; i < datas.length; i++) {
$("#" + datas[i] + "").css('background-color', "#428BCA");
$("#" + datas[i] + "").css('color', "#ffffff");
$("#" + datas[i] + "").css('box-shadow', "#d2cdcd 0px 3px 5px 2px");
}
});
}
lastClickBizid = bizid;
}
//右上角点击回到主页
function goToMainTab() {
nthTabs.toggleTab('tabId_home');
}
var initialInfo = function () {
initialMainPageType('mainpage_container', bizId, '${cu.id}');
}
function showQrCode() {
$("#qrcode").html("");
$.post(ext.contextPath + '/app/doScanApk.do', {type: ""}, function (result) {
if (result == null && result == '') {
$("#qrcode").html("暂无安装包!");
} else {
var filename = result.res;
$("#qrcode").qrcode({
render: "canvas",
width: 150, //设置宽度
height: 150, //设置高度
typeNumber: -1, //计算模式
background: "#ffffff",//背景颜色
foreground: "#000000", //前景颜色
text: filename
});
}
}, "json");
/* $('#qrcode').qrcode({
render: "canvas",//canvas
width: 150,
height: 150,
//text: "http://www.baidu.com"
text: "http://127.0.0.1:8080/SIPAIIS_WMS/app/downLoadAPP.do?&path=D:\\Tomcat 7.0\\webapps\\SIPAIIS_WMS_APK&ng=''"
}); */
}
function showSpeechRecognition() {
let st = $('#speechRecognitiondrop').css('display');
if (st === 'none') {
$('#speechRecognitiondrop').css('display', 'block');
} else {
$('#speechRecognitiondrop').css('display', 'none');
}
// document.getElementById('speechRecognitiondrop').style.display = 'block';
}
var rec;
function speechRecognitionDown() {
rec = Recorder({type: "mp3", sampleRate: 16000, bitRate: 16, numChannels: 1});//使用默认配置mp3格式
//打开麦克风授权获得相关资源
rec.open(function () {
//开始录音
rec.start();
}, function (msg, isUserNotAllow) {
//用户拒绝了权限或浏览器不支持
alert((isUserNotAllow ? "用户拒绝了权限," : "") + "无法录音:" + msg);
});
}
function speechRecognitionUp() {
var waitDiv = "<div id='speechRecognitionContentWait' style='text-align:center;'>语音上传中,请稍等!</div>";
$('#speechRecognitionContent').append(waitDiv);
let robj = document.getElementById("speechRecognitionContent");
robj.scrollTop = robj.scrollHeight;
rec.stop(function (blob, duration) {
var api = ext.contextPath + "/data/baiDuAipSpeech/save.do";
var reader = new FileReader();
let to_speak = window.speechSynthesis;
reader.onloadend = function () {
$.ajax({
url: api, //上传接口地址
type: "POST",
data: {
type: blob.type, //告诉后端这个录音是什么格式的可能前后端都固定的mp3可以不用写
upfile_b64: (/.+;\s*base64\s*,\s*(.+)$/i.exec(reader.result) || [])[1] //录音文件内容后端进行base64解码成二进制
},
success: function (data) {
console.log(data);
$('#speechRecognitionContentWait').html("语音识别中,请稍等!");
data = eval('(' + data + ')');
let result = data.result[0];
// console.log(result);
let rightContent = "";
rightContent += "<div class='direct-chat-msg right'>";
rightContent += "<div class='direct-chat-info clearfix'><span class='direct-chat-timestamp pull-left'>" + getNowTime() + "</span></div>";
rightContent += "<i style='float: right;'>";
rightContent += "<svg t='1637637402247' class='icon' viewBox='0 0 1024 1024' width='40' height='40'>";
rightContent += "<path d='M586.945923 513.581008c55.067176-27.962865 92.91211-85.125773 92.91211-150.998039 0-93.338828-75.937506-169.276335-169.277358-169.276335s-169.275311 75.937506-169.275311 169.276335c0 65.872267 37.844933 123.034151 92.911086 150.998039-95.652524 32.016181-164.778904 122.45496-164.778904 228.743728 0 11.31572 9.17394 20.491707 20.491707 20.491707s20.491707-9.174963 20.491707-20.491707c0-110.36869 89.791026-200.160739 200.160739-200.160739S710.741413 631.956046 710.741413 742.324736c0 11.31572 9.17394 20.491707 20.491707 20.491707s20.491707-9.174963 20.491707-20.491707C751.723803 636.035968 682.598446 545.598212 586.945923 513.581008zM382.287753 362.582969c0-70.742181 57.552787-128.293945 128.292921-128.293945 70.742181 0 128.293945 57.552787 128.293945 128.293945 0 70.741157-57.552787 128.292921-128.293945 128.292921C439.84054 490.876913 382.287753 433.324126 382.287753 362.582969z' p-id='2444' fill='#8a8a8a'></path>";
rightContent += "<path d='M827.871087 196.127889C743.498468 111.757317 631.320573 65.290005 512 65.290005S280.500509 111.756293 196.128913 196.127889C111.756293 280.501532 65.291029 392.678404 65.291029 511.998977s46.465265 231.499491 130.837884 315.872111 196.550515 130.837884 315.871087 130.837884 231.498468-46.465265 315.871087-130.837884S958.708971 631.319549 958.708971 511.998977 912.243707 280.500509 827.871087 196.127889zM512 917.726581c-223.718271 0-405.726581-182.007287-405.726581-405.727605 0-223.718271 182.00831-405.726581 405.726581-405.726581s405.726581 182.007287 405.726581 405.726581C917.726581 735.719294 735.718271 917.726581 512 917.726581z' p-id='2445' fill='#8a8a8a'></path>";
rightContent += "</svg>";
rightContent += "</i>";
rightContent += "<div class='direct-chat-text' style='background: #9EEA6A;'>" + result + "</div>";
rightContent += "</div>";
$('#speechRecognitionContent').append(rightContent);
let robj = document.getElementById("speechRecognitionContent");
robj.scrollTop = robj.scrollHeight;
$.ajax({
url: ext.contextPath + '/work/speechRecognition/getJson.do', //上传接口地址
type: "POST",
data: {
text: result,
unitId: $('#unitId').val()
},
dataType: 'json',
success: function (speechRecognition) {
$('#speechRecognitionContentWait').remove();
// console.log(speechRecognition);
if (speechRecognition.length > 0) {
let nowS = speechRecognition[0];
if (nowS.systype == 'bim') {//三维使用
$.post(ext.contextPath + '/data/baiDuAipSpeech/sendBimByWebsocket.do', {
type: nowS.type,
code: nowS.code
}, function (data) {
console.log(data);
let leftContent = getSpeechRecognitionLeft(nowS.respondvoice);
$('#speechRecognitionContent').append(leftContent);
//to_speak = new SpeechSynthesisUtterance(nowS.respondvoice);
//window.speechSynthesis.speak(to_speak);
$.post(ext.contextPath + '/cmd/cmdController/handle4Speech.do', {
value: nowS.respondvoice
}, function (data) {
});
if (nowS.method != null && nowS.method != '') {
eval(nowS.method);
}
}, 'json');
} else if (nowS.systype == 'speak') {//语音讲话
let leftContent = getSpeechRecognitionLeft(nowS.respondvoice);
$('#speechRecognitionContent').append(leftContent);
//to_speak = new SpeechSynthesisUtterance(nowS.respondvoice);
//window.speechSynthesis.speak(to_speak);
$.post(ext.contextPath + '/cmd/cmdController/handle4Speech.do', {
value: nowS.respondvoice
}, function (data) {
});
if (nowS.method != null && nowS.method != '') {
eval(nowS.method);
}
}
let lobj = document.getElementById("speechRecognitionContent");
lobj.scrollTop = lobj.scrollHeight;
} else {
let leftContent = getSpeechRecognitionLeft("请再说一遍!");
$('#speechRecognitionContent').append(leftContent);
to_speak = new SpeechSynthesisUtterance("请再说一遍!");
window.speechSynthesis.speak(to_speak);
let lobj = document.getElementById("speechRecognitionContent");
lobj.scrollTop = lobj.scrollHeight;
}
}
});
rec.close();
},
error: function (s) {
console.error("上传失败", s);
rec.close();
}
});
};
reader.readAsDataURL(blob);
}, function (msg) {
alert("录音失败:" + msg);
rec.close();
});
}
function delSpeechRecognition() {
let content = "<div style='width: 100%;text-align: center;'>请按住录音键说话!</div>";
$('#speechRecognitionContent').html(content);
}
function getSpeechRecognitionLeft(result) {
let leftContent = "";
leftContent += "<div class='direct-chat-msg'>";
leftContent += "<div class='direct-chat-info clearfix'><span class='direct-chat-timestamp pull-right'>" + getNowTime() + "</span></div>";
leftContent += "<i style='float: left;'>";
leftContent += "<svg t='1637638254028' class='icon' viewBox='0 0 1024 1024' width='40' height='40'>";
leftContent += "<path d='M981.333333 618.666667h-106.666666v-21.333334a298.666667 298.666667 0 0 0-118.186667-244.053333l103.893333-162.986667a64 64 0 1 0-36.053333-23.04l-103.04 162.133334A416.213333 416.213333 0 0 0 512 277.333333a416.213333 416.213333 0 0 0-209.28 52.053334l-103.04-162.133334a64 64 0 1 0-36.053333 23.04l103.893333 162.986667A298.666667 298.666667 0 0 0 149.333333 597.333333v21.333334H42.666667v256h106.666666v85.333333h725.333334v-85.333333h106.666666zM85.333333 832v-170.666667h64v170.666667z m746.666667 85.333333H192V597.333333c0-192 160.64-277.333333 320-277.333333s320 85.333333 320 277.333333v320z m106.666667-85.333333h-64v-170.666667h64z' p-id='7909' fill='#8a8a8a'></path>";
leftContent += "<path d='M405.333333 661.333333m-42.666666 0a42.666667 42.666667 0 1 0 85.333333 0 42.666667 42.666667 0 1 0-85.333333 0Z' p-id='7910' fill='#8a8a8a'></path>";
leftContent += "<path d='M618.666667 661.333333m-42.666667 0a42.666667 42.666667 0 1 0 85.333333 0 42.666667 42.666667 0 1 0-85.333333 0Z' p-id='7911' fill='#8a8a8a'></path>";
leftContent += "<path d='M661.333333 533.333333H362.666667a128 128 0 0 0 0 256h298.666666a128 128 0 0 0 0-256z m0 213.333334H362.666667a85.333333 85.333333 0 0 1 0-170.666667h298.666666a85.333333 85.333333 0 0 1 0 170.666667z' p-id='7912' fill='#8a8a8a'></path>";
leftContent += "</svg>";
leftContent += "</i>";
leftContent += "<div class='direct-chat-text'>" + result + "</div>";
leftContent += "</div>";
return leftContent;
}
function topSpeechRecognitionSpeak(id) {
$.ajax({
url: ext.contextPath + '/work/speechRecognition/getJson.do', //上传接口地址
type: "POST",
data: {
id: id,
},
dataType: 'json',
success: function (speechRecognition) {
if (speechRecognition.length > 0) {
let nowS = speechRecognition[0];
speakText(nowS.respondvoice);
}
}
});
}
$(document).click(function (e) {
var divTree = $('#speechRecognitiondrop'); // 设置目标区域
if (!divTree.is(e.target) && divTree.has(e.target).length === 0) {
divTree.hide()
}
});
$(function () {
var lastkeyCode = -1;
$(document).keydown(function (event) {
if (event.keyCode == 32) {
if (event.keyCode == lastkeyCode) {
// console.log('重复')
} else {
let st = $('#speechRecognitiondrop').css('display');
if (st === 'none') {
$('#speechRecognitiondrop').css('display', 'block');
}
speechRecognitionDown();
// console.log('按下')
}
lastkeyCode = event.keyCode;
}
});
$(document).keyup(function (event) {
if (event.keyCode == 32) {
// console.log('松开')
lastkeyCode = -1;
speechRecognitionUp();
}
});
getPersonalAlarmNum();
});
function showAlarmList() {
addTab('alarmList', '报警信息', 'alarm/proAlarm/showlist.do');
}
function getPersonalAlarmNum() {
$.post(ext.contextPath + '/alarm/proAlarm/getPersonalAlarmNum.do', function (data) {
let top_alarm_num = Number(data);
if (top_alarm_num > 0) {
$('#top_alarm_path').css("fill", "#d81e06");
personalAlarmNum_time = setInterval(function () {
$('#top_alarm_div').animate({opacity: '0'}, 1000);
$('#top_alarm_div').animate({opacity: '1'}, 1000);
}, 2000)
if (top_alarm_num > 99) {
$('#top_alarm_Num').text("99+");
$('#top_alarm_Num').css("right", "-12px");
} else {
if (top_alarm_num < 10) {
$('#top_alarm_Num').css("right", "2px");
} else {
$('#top_alarm_Num').css("right", "-5px");
}
$('#top_alarm_Num').text(top_alarm_num);
}//消息声音
if (msgplayer) {
msgplayer = false;
var player = document.getElementById("msgMedia");
player.src = "<%=request.getContextPath()%>/node_modules/media/messaging.wav";
player.loop = false;
player.addEventListener('ended', function () {
msgplayer = true;
}, false);
}
} else {
$('#top_alarm_path').css("fill", "#00FF66");
// $('#top_alarm_Num').css("right", "2px");
$('#top_alarm_Num').text("");
}
}, 'json');
}
/*$(function() {
var topWidth=$('#top').outerWidth();
var topRightWidth=$('#topRight').outerWidth();
var titleWidth=topWidth-topRightWidth-50;
$("#topTitle").css('width',titleWidth);
$("#topTitle").text("智慧水务云平台");
});*/
</script>
<header class="main-header">
<input id="unitId" type="hidden" value="${unitId}"/>
<audio id="msgMedia" autoplay="autoplay" class="hidden"></audio>
<!-- Logo -->
<a onclick="goToMainTab();" style="cursor:pointer " class="logo">
<!-- mini logo for sidebar mini 50x50 pixels -->
<span class="logo-mini"><b id="logo-mini">平台</b></span>
<!-- logo for regular state and mobile devices -->
<span class="logo-lg"><b id="logo-lg"><%-- ${cu._pname} --%></b></span>
</a>
<!-- Navbar Right Menu -->
<div id="logo-top-title" class="pull-left hidden-xs hidden-sm"
style="line-height:50px;text-align: center;color: #ffffff;font-size: 1.2vw;font-weight: bold;letter-spacing:8px;position: absolute;
width: 40%;
z-index: 1001;
left: 30%;">
</div>
<!-- Header Navbar: style can be found in header.less -->
<!-- Header Navbar -->
<nav id="top" class="navbar navbar-static-top" role="navigation">
<!-- Sidebar toggle button-->
<a href="#" class="sidebar-toggle" data-toggle="push-menu" role="button">
<span class="sr-only">Toggle navigation</span>
</a>
<div id="topRight" class="navbar-custom-menu pull-right" style="position:absolute;right:0;top:0;">
<ul class="nav navbar-nav">
<!-- 二维码 -->
<!-- <li class="dropdown ">
Menu Toggle Button
<a onclick="showQrCode()" href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="glyphicon glyphicon-qrcode"></i>APP二维码</a>
<ul class="dropdown-menu" data-stopPropagation="true" style="width:150px;heigth:150px;" >
<li>
<div id="qrcode"></div>
</li>
</ul>
</li> -->
<li class="dropdown">
<!-- <a id="viewName" href="#" class="dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
珠海水务集团 <span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu" style="min-width:100%;">
<li class="dropdown-submenu" >
<a tabindex="-1" href="#" onclick="doChoice('珠海水务集团');">珠海水务集团</a>
<ul class="dropdown-menu">
<li><a tabindex="-1" href="#" onclick="doChoice('珠海一车间');">珠海一车间</a></li>
<li><a tabindex="-1" href="#" onclick="doChoice('珠海二车间');">珠海二车间</a></li>
</ul>
</li>
</ul> -->
<a id="companyName" href="#" class="dropdown-toggle" data-toggle="dropdown" onclick="doChoice();">
${cu._pname}
</a>
<ul id="top_company_tree" class="dropdown-menu" data-stopPropagation="true"
style="padding:0px;background:rgba(250,250,250,0.75);">
<li class="header" id="companyP"
style="width:220px;height:220px;background:rgba(250,250,250,0.75);position: absolute;top:0px;left:0px;box-shadow:#d2cdcd 0px 3px 5px 0px;">
<!-- <input type="hidden" id="companyOpenNum" value="1"> -->
<div id="companytree" style="float:left;width:100%;height:100%;overflow:hidden;"></div>
</li>
</ul>
</li>
<!-- Messages: style can be found in dropdown.less-->
<!-- <li class="dropdown">
<a onclick="goToMainTab();" style="cursor:pointer " title="首页">
<i class="fa fa-desktop fa-fw"></i>
</a>
</li> -->
<li class="dropdown alarm-menu" onclick="showAlarmList();">
<a onclick="" style="cursor:pointer;height: 50px;" title="报警消息">
<div id="top_alarm_div" style="width: 100%;height: 100%;">
<svg id="top_alarm_svg" t="1638000485128" class="icon" viewBox="0 0 1024 1024" width="18"
height="18"
style="z-index: 90;">
<path id="top_alarm_path"
d="M193 796c0 17.7 14.3 32 32 32h574c17.7 0 32-14.3 32-32V563c0-176.2-142.8-319-319-319S193 386.8 193 563v233z m72-233c0-136.4 110.6-247 247-247s247 110.6 247 247v193H404V585c0-5.5-4.5-10-10-10h-44c-5.5 0-10 4.5-10 10v171h-75V563z m-48.1-252.5l39.6-39.6c3.1-3.1 3.1-8.2 0-11.3l-67.9-67.9c-3.1-3.1-8.2-3.1-11.3 0l-39.6 39.6c-3.1 3.1-3.1 8.2 0 11.3l67.9 67.9c3.1 3.1 8.1 3.1 11.3 0z m669.6-79.2l-39.6-39.6c-3.1-3.1-8.2-3.1-11.3 0l-67.9 67.9c-3.1 3.1-3.1 8.2 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l67.9-67.9c3.1-3.2 3.1-8.2 0-11.3zM832 892H192c-17.7 0-32 14.3-32 32v24c0 4.4 3.6 8 8 8h688c4.4 0 8-3.6 8-8v-24c0-17.7-14.3-32-32-32zM484 180h56c4.4 0 8-3.6 8-8V76c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v96c0 4.4 3.6 8 8 8z"
p-id="2583" fill="transparent"></path>
<%-- <rect fill="transparent" width="100%" height="100%">--%>
<%-- <animate id="top_alarm_animate"--%>
<%-- attributeName="fill"--%>
<%-- values="transparent;transparent"--%>
<%-- begin="0s"--%>
<%-- dur="1s"--%>
<%-- calcMode="discrete"--%>
<%-- repeatCount="indefinite"--%>
<%-- />--%>
<%-- </rect>--%>
</svg>
</div>
<span class="label label-danger" id="top_alarm_Num" style="z-index: 80;right: 2px;"></span>
</a>
</li>
<li class="dropdown tasks-menu">
<a onclick="goToTaskList();" style="cursor:pointer " title="待办事项">
<i class="fa fa-flag-o fa-fw"></i>
<span class="label label-danger" id="taskNum"></span>
</a>
</li>
<!-- <li class="dropdown messages-menu">
<a onclick="goToMsgListView();" style="cursor:pointer;">
<i class="fa fa-envelope-o fa-fw"></i>
<span class="label label-success" id="span_unread"></span>
</a>
</li> -->
<li class="dropdown messages-menu">
<!-- Menu toggle button -->
<a href="#" class="dropdown-toggle" data-toggle="dropdown" title="消息">
<i class="fa fa-envelope-o fa-fw"></i>
<span class="label label-success" id="span_unread"></span>
</a>
<ul class="dropdown-menu">
<li class="header" id="li_unread"></li>
<li>
<!-- inner menu: contains the messages -->
<ul class="menu" id="msglist">
<!-- end message -->
</ul>
<!-- /.menu -->
</li>
<li class="footer"><a style="cursor:pointer " onclick="goToMsgListView();">查看所有信息</a></li>
</ul>
</li>
<!-- /.messages-menu -->
<!-- 已办事项 20220601取消-->
<!-- <li class="dropdown tasks-menu">
<a onclick="goToDoneTaskList();" style="cursor:pointer " title="已办事项">
<i class="fa fa-calendar-check-o fa-fw"></i>
<span class="label label-danger" id="taskNum"></span>
</a>
</li> -->
<!-- 二维码 -->
<li class="dropdown ">
<!-- Menu Toggle Button -->
<a onclick="showQrCode()" href="#" class="dropdown-toggle" data-toggle="dropdown"><i
class="glyphicon glyphicon-qrcode"></i></a>
<ul class="dropdown-menu" data-stopPropagation="true">
<li>
<div id="qrcode"></div>
</li>
</ul>
</li>
<li class="dropdown ">
<!-- <li class="dropdown" > -->
<a href="#" class="dropdown-toggle" data-toggle="dropdown" onclick="showSpeechRecognition();">
<i class="fa fa-commenting-o"></i>
</a>
<ul id="speechRecognitiondrop" class="dropdown-menu" data-stopPropagation="true"
style="width:280px;height:400px;overflow: auto;box-shadow:#d2cdcd 0px 3px 5px 0px;margin-left: -68px;">
<div id="speechRecognitionContent" class="direct-chat-messages"
style="float: left;width:100%;height: 360px;">
<div style="width: 100%;text-align: center;">请按住录音键说话!</div>
</div>
<!-- <div id="speechRecognitionContentWait" style="width: 100%;text-align: center;display:none;">识别中,请稍等!</div> -->
<div style="float: left;width:100%;">
<button style="float: right;margin-right: 5px;margin-top: 2px;" title="按住说话"
onmousedown="speechRecognitionDown();" onmouseup="speechRecognitionUp();">
<i class="fa fa-volume-down"></i>
</button>
<button style="float: right;margin-right: 5px;margin-top: 2px;" title="清除内容"
onclick="delSpeechRecognition();">
<i class="fa fa-trash-o"></i>
</button>
</div>
</ul>
<!-- Menu Toggle Button -->
<%-- <a onclick="showSpeechRecognition()" href="#" class="dropdown-toggle" data-toggle="dropdown"><i--%>
<%-- class="fa fa-commenting-o"></i></a>--%>
<%-- <ul class="dropdown-menu" data-stopPropagation="true" style="width:100%;height:200px;float: left;">--%>
<%-- <li>--%>
<%-- <div id="speechRecognition"></div>--%>
<%-- </li>--%>
<%-- </ul>--%>
</li>
<!-- Notifications Menu -->
<!-- <li class="dropdown notifications-menu">
Menu toggle button
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<i class="fa fa-bell-o"></i>
<span class="label label-warning">10</span>
</a>
<ul class="dropdown-menu">
<li class="header">You have 10 notifications</li>
<li>
Inner Menu: contains the notifications
<ul class="menu">
<li>start notification
<a href="#">
<i class="fa fa-users text-aqua"></i> 5 new members joined today
</a>
</li>
end notification
</ul>
</li>
<li class="footer"><a href="#">View all</a></li>
</ul>
</li>
Tasks Menu
-->
<!-- User Account Menu -->
<li class="dropdown user user-menu">
<!-- Menu Toggle Button -->
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<!-- The user image in the navbar-->
<!--如果用户没有上传过头像,显示系统默认头像 -->
<c:if test="${empty cu.userDetail}">
<c:choose>
<c:when test="${cu.sex=='0'}">
<img src="<%=request.getContextPath()%>/plugins/AdminLTE/img/avatar2.png"
class="user-image" alt="User Image">
</c:when>
<c:otherwise>
<img src="<%=request.getContextPath()%>/plugins/AdminLTE/img/avatar5.png"
class="user-image" alt="User Image">
</c:otherwise>
</c:choose>
</c:if>
<c:if test="${not empty cu.userDetail}">
<c:choose>
<c:when test="${not empty cu.userDetail.icon}">
<img src="${cu.userDetail.icon}"class="user-image" alt="User Image">
</c:when>
<c:otherwise>
<c:choose>
<c:when test="${cu.sex=='0'}">
<img src="<%=request.getContextPath()%>/plugins/AdminLTE/img/avatar2.png"
class="user-image" alt="User Image">
</c:when>
<c:otherwise>
<img src="<%=request.getContextPath()%>/plugins/AdminLTE/img/avatar5.png"
class="user-image" alt="User Image">
</c:otherwise>
</c:choose>
</c:otherwise>
</c:choose>
</c:if>
<!-- hidden-xs hides the username on small devices so only the image appears. -->
<span class="hidden-xs">${cu.caption}</span>
</a>
<ul class="dropdown-menu">
<!-- The user image in the menu -->
<li class="user-header">
<c:if test="${empty cu.userDetail}">
<c:choose>
<c:when test="${cu.sex=='0'}">
<img onclick="viewPersonalInformation()" style="cursor: pointer;"
src="<%=request.getContextPath()%>/plugins/AdminLTE/img/avatar2.png"
class="img-circle" alt="User Image">
</c:when>
<c:otherwise>
<img onclick="viewPersonalInformation()" style="cursor: pointer;"
src="<%=request.getContextPath()%>/plugins/AdminLTE/img/avatar5.png"
class="img-circle" alt="User Image">
</c:otherwise>
</c:choose>
</c:if>
<c:if test="${not empty cu.userDetail}">
<c:choose>
<c:when test="${not empty cu.userDetail.icon}">
<img onclick="viewPersonalInformation()" style="cursor: pointer;"
src="${cu.userDetail.icon}" class="img-circle" alt="User Image">
</c:when>
<c:otherwise>
<c:choose>
<c:when test="${cu.sex=='0'}">
<img onclick="viewPersonalInformation()" style="cursor: pointer;"
src="<%=request.getContextPath()%>/plugins/AdminLTE/img/avatar2.png"
class="img-circle" alt="User Image">
</c:when>
<c:otherwise>
<img onclick="viewPersonalInformation()" style="cursor: pointer;"
src="<%=request.getContextPath()%>/plugins/AdminLTE/img/avatar5.png"
class="img-circle" alt="User Image">
</c:otherwise>
</c:choose>
</c:otherwise>
</c:choose>
</c:if>
<p>
${cu.caption}
<small>上次登录时间:${cu.lastlogintime}</small>
</p>
</li>
<!-- Menu Body -->
<li class="user-body">
<div class="row">
<div class="col-xs-4 text-center">
<a onclick="changeTheme()" style="cursor: pointer;">切换主题</a>
</div>
<div class="col-xs-4 text-center">
<a onclick="changePassword()" style="cursor: pointer;">修改密码</a>
</div>
<div class="col-xs-4 text-center">
<a onclick="logout()" style="cursor: pointer;">登出</a>
</div>
</div>
</li>
<!-- Menu Footer-->
<!-- <li class="user-footer">
<div class="pull-right">
<a onclick="logout()" class="btn btn-default btn-flat">登出</a>
</div>
</li> -->
</ul>
</li>
<!-- Control Sidebar Toggle Button -->
<li>
<!-- <a href="#" data-toggle="control-sidebar"><i class="fa fa-gears"></i></a> -->
</li>
</ul>
</div>
</nav>
</header>