diff --git a/web/src/main/resources/template/assets/lib/layui/customer/indexMenu.js b/web/src/main/resources/template/assets/lib/layui/customer/indexMenu.js
index 65aebd54b76f821d4bd5c91f35b52f2d298b155c..c70cdf2dfcce0d00a94f4807f2a6d93e432fcade 100644
--- a/web/src/main/resources/template/assets/lib/layui/customer/indexMenu.js
+++ b/web/src/main/resources/template/assets/lib/layui/customer/indexMenu.js
@@ -2,9 +2,25 @@
// 菜单按钮相关工具类
var indexMenu = {
-
- getUrlPath: function (){
-
+ /**
+ * 分布式部署获取真实的访问路径
+ *
+ * @param url 系统自定义路径
+ * @param menuSysWinUrl 分布式系统域名
+ * @returns {string|*}
+ */
+ getUrlPath: function (url, menuSysWinUrl){
+ if((url.substr(0, 7).toLowerCase() == "http://"
+ || url.substr(0, 8).toLowerCase() == "https://")
+ && url.indexOf("/tpl/") != -1){
+ url += '?userToken=' + getCookie("userToken");
+ return url;
+ } else {
+ if(!isNull(menuSysWinUrl)){
+ url = menuSysWinUrl + url + '?userToken=' + getCookie("userToken");
+ }
+ }
+ return url;
},
/**
@@ -17,26 +33,48 @@ var indexMenu = {
if(isNull(icon)){
icon = "";
}
+ var id = dataMenu.attr("data-id");
+ var title = dataMenu.attr("data-title");
+ var sysWinUrl = dataMenu.attr("data-sysWinUrl");
+ var url = dataMenu.attr("data-url");
+ url = indexMenu.getUrlPath(url, sysWinUrl);
// 这时会判断右侧#LAY_app_tabsheader属性下的有lay-id属性的li的数目,即已经打开的tab项数目
if($("#LAY_app_tabsheader li[lay-id]").length <= 0) {
// 如果比零小,则直接打开新的tab项
- active.tabAdd(dataMenu.attr("data-url"), dataMenu.attr("data-id"), icon + dataMenu.attr("data-title"));
+ active.tabAdd(url, id, icon + title);
} else {
// 否则判断该tab项是否以及存在
var isData = false; // 初始化一个标志,为false说明未打开该tab项 为true则说明已有
$.each($("#LAY_app_tabsheader li[lay-id]"), function() {
// 如果点击左侧菜单栏所传入的id 在右侧tab项中的lay-id属性可以找到,则说明该tab项已经打开
- if($(this).attr("lay-id") === dataMenu.attr("data-id")) {
+ if($(this).attr("lay-id") === id) {
isData = true;
}
})
if(isData == false) {
// 标志为false 新增一个tab项
- active.tabAdd(dataMenu.attr("data-url"), dataMenu.attr("data-id"), icon + dataMenu.attr("data-title"));
+ active.tabAdd(url, id, icon + title);
}
}
// 最后不管是否新增tab,最后都转到要打开的选项页面上
- active.tabChange(dataMenu.attr("data-id"));
+ active.tabChange(id);
+ indexMenu.sendMessageToChildIFrame(url, id);
+ },
+
+ /**
+ * 分布式部署,发送消息给其他项目,实现权限点共享
+ *
+ * @param url url地址
+ * @param id frame的id
+ */
+ sendMessageToChildIFrame: function (url, id){
+ if((url.substr(0, 7).toLowerCase() == "http://"
+ || url.substr(0, 8).toLowerCase() == "https://")
+ && url.indexOf("/tpl/") != -1){
+ var childIframe = $("#" + id).find('iframe')[0];
+ // 发送消息,实现权限点共享
+ childIframe.contentWindow.postMessage(localStorage.getItem("authpoints"), "*");
+ }
}
}
diff --git a/web/src/main/resources/template/assets/lib/winui/js/winui.desktop.js b/web/src/main/resources/template/assets/lib/winui/js/winui.desktop.js
index 454b828d7252eef33985d91db305eb083cb8ce4c..a0fb73e6daf05caaf851a826195c9b75e83420bb 100644
--- a/web/src/main/resources/template/assets/lib/winui/js/winui.desktop.js
+++ b/web/src/main/resources/template/assets/lib/winui/js/winui.desktop.js
@@ -15,7 +15,7 @@ layui.define(['jquery', 'layer', 'winui'], function (exports) {
this.data = null;
};
- //渲染HTML
+ // 渲染HTML
Desktop.prototype.render = function (callback) {
if (this.data === null) return;
var html = '';
@@ -23,17 +23,18 @@ layui.define(['jquery', 'layer', 'winui'], function (exports) {
if(languageType == 'cn'){
item.name = item.menuNameEn;
}
- var id = (item.id == '' || item.id == undefined) ? '' : 'win-id="' + item.id + '"',
- url = (item.pageURL == '' || item.pageURL == undefined) ? '' : 'win-url="' + item.pageURL + '"',
+ var id = isNull(item.id) ? '' : 'win-id="' + item.id + '"',
+ url = isNull(item.pageURL) ? '' : 'win-url="' + item.pageURL + '"',
title = isNull(item.name) ? '' : 'win-title="' + item.name + '"',
- opentype = (item.openType == '' || item.openType == undefined) ? '' : 'win-opentype="' + item.openType + '"',
- maxOpen = (item.maxOpen == '' || item.maxOpen == undefined) ? '' : 'win-maxOpen="' + item.maxOpen + '"',
- menuIconBg = (item.menuIconBg == '' || item.menuIconBg == undefined) ? '' : 'win-menuIconBg="' + item.menuIconBg + '"',
- menuIconColor = (item.menuIconColor == '' || item.menuIconColor == undefined) ? '' : 'win-menuIconColor="' + item.menuIconColor + '"',
+ opentype = isNull(item.openType) ? '' : 'win-opentype="' + item.openType + '"',
+ maxOpen = isNull(item.maxOpen) ? '' : 'win-maxOpen="' + item.maxOpen + '"',
+ menuIconBg = isNull(item.menuIconBg) ? '' : 'win-menuIconBg="' + item.menuIconBg + '"',
+ menuIconColor = isNull(item.menuIconColor) ? '' : 'win-menuIconColor="' + item.menuIconColor + '"',
+ menuSysWinUrl = isNull(item.sysWinUrl) ? '' : 'win-sysWinUrl="' + item.sysWinUrl + '"',
menuIcon = '';
var icon = "", isFaIcon = "";
if(item.menuIconType === '1'){//icon
- menuIcon = (item.icon == '' || item.icon == undefined) ? '' : 'win-icon="' + item.icon + '"';
+ menuIcon = isNull(item.icon) ? '' : 'win-icon="' + item.icon + '"';
if(!isNull(item.menuIconColor)){
icon = '';
}else{
@@ -41,8 +42,8 @@ layui.define(['jquery', 'layer', 'winui'], function (exports) {
}
isFaIcon = "winui-icon-font";
}else if(item.menuIconType === '2'){//图片
- menuIcon = (item.menuIconPic == '' || item.menuIconPic == undefined) ? '' : 'win-icon="' + item.menuIconPic + '"';
- icon = '';
+ menuIcon = isNull(item.menuIconPic) ? '' : 'win-icon="' + item.menuIconPic + '"';
+ icon = '
';
isFaIcon = "winui-icon-img";
}
if(isNull(item.childs)){//没有子菜单
@@ -55,7 +56,7 @@ layui.define(['jquery', 'layer', 'winui'], function (exports) {
html += '
' + item.name + '
'; html += ''; }else{ - html += '