master
关凯 2024-01-26 17:51:10 +08:00
parent 2db0edeb5f
commit 1a4cd9575f
29 changed files with 45474 additions and 28535 deletions

View File

@ -360,6 +360,15 @@ layui.define(function (exports) {
on: function (msg, callback) {
return message.on(msg, callback)
},
/**
* 移除消息处理
* @param {*} msg
* @param {*} callback
* @returns
*/
off: function (msg, callback) {
return message.off(msg, callback)
},
/**
* 监听消息(只管来源fromHandle 的消息)
* @param fromHandle 消息来源目标的句柄全局唯一

View File

@ -215,7 +215,15 @@ layui.define([], function (exports) {
callback && callback(d);
}
}
});
}, true);
};
/**
* 移除消息处理
* @param {*} msg
* @param {*} callback
*/
Messenger.prototype.off = function (msg, callback) {
window.removeEventListener('message', callback, true);
};
/**
@ -243,7 +251,7 @@ layui.define([], function (exports) {
/**
* @param msgId 服务端消息唯一id
* @param timeOut [可选参数] 消息的监听停留时间单位秒; 默认: 300
* @param timeOut [可选参数] 消息的监听停留时间单位秒;
*/
constructor(msgId, timeOut) {
this.msgId = msgId;

View File

@ -3,8 +3,7 @@ layui.define(['laytpl', 'element', 'layer', 'zlPinYin', 'common'], function (exp
let $ = layui.jquery,
element = layui.element,
zlPinYin = layui.zlPinYin,
common = layui.common,
admin = layui.admin;
common = layui.common
let THEME = {
defaulStyles: [
{ name: '亮色风格', value: "light", color: '#f0f2f5' },
@ -22,7 +21,8 @@ layui.define(['laytpl', 'element', 'layer', 'zlPinYin', 'common'], function (exp
],
defaulLayouts: [
{ value: "left", name: '菜单在左边', icon: "url(" + layui.cache['contentPath'] + "/static/image/layout-left.svg)" },
{ value: "top", name: '菜单在顶部', icon: "url(" + layui.cache['contentPath'] + "/static/image/layout-top.svg)" }
{ value: "top", name: '菜单在顶部', icon: "url(" + layui.cache['contentPath'] + "/static/image/layout-top.svg)" },
{ value: "pop", name: '菜单鼠标移动弹出', icon: "url(" + layui.cache['contentPath'] + "/static/image/layout-pop.svg)" }
],
/**
* 默认主题
@ -425,6 +425,7 @@ layui.define(['laytpl', 'element', 'layer', 'zlPinYin', 'common'], function (exp
.navbar-side-search input::-ms-input-placeholder {
color:${themeObj.searchBoxFontColorInput}!important;
}
.kdayun-search-result a,
.kdayun-menu-ul a,
.kdayun-menu-ul i.layui-icon {
color:${themeObj.menuFontColorInput} !important;
@ -523,7 +524,36 @@ layui.define(['laytpl', 'element', 'layer', 'zlPinYin', 'common'], function (exp
}
.layui-card {
box-shadow: 0 3px 1px -2px rgb(0 0 0 / 20%), 0 2px 2px 0 rgb(0 0 0 / 14%), 0 1px 5px 0 rgb(0 0 0 / 12%);
}`;
}
.kdayun-suspension .kdayun-menu-ul li.kdayun-menu-item:hover {
background-color:${themeObj.menuSelectedBgInput || 'let(--kd-color)'} !important;
}
.kdayun-suspension .kdayun-menu-ul li.kdayun-menu-item:hover a{
color:${themeObj.menuSelectedFontColorInput || 'let(--kd-color)'} !important;
}
.layadmin-side-shrink .kdayun-menu-ul li.kdayun-menu-item:hover {
background-color: transparent !important;
}
.kdayun-app-layout-left.layadmin-side-shrink .kdayun-popmenu-search i#navbarSearchIcon{
color:${themeObj.menuFontColorInput}!important;
}
.kdayun-popmenu {
background-color:${(themeObj.menuBgInput || '#f2f2f2')}!important;
}
.kdayun-popmenu-arrow:after {
border-bottom-color: ${(themeObj.menuBgInput || '#f2f2f2')}!important;
}
.kdayun-suspension .kdayun-menu-ul .kdayun-popmenu .kdayun-popmenu-ul li:not(:first-child):hover {
background-color:${themeObj.menuSelectedBgInput || 'let(--kd-color)'} !important;
}
.kdayun-suspension .kdayun-menu-ul .kdayun-popmenu .kdayun-popmenu-ul li a {
color:${themeObj.menuFontColorInput || 'let(--kd-color)'} !important;
}
.kdayun-suspension .kdayun-menu-ul .kdayun-popmenu .kdayun-popmenu-ul li:not(:first-child):hover a{
color:${themeObj.menuSelectedFontColorInput || 'let(--kd-color)'} !important;
}
`;
if ('styleSheet' in style) {
style.setAttribute('type', 'text/css');
@ -731,23 +761,29 @@ layui.define(['laytpl', 'element', 'layer', 'zlPinYin', 'common'], function (exp
return ret;
},
/**
* 开始渲染主题
*/
render(isServer, isDefalut) {
let themeObj = THEME.getTheme(isServer);
if (this.themeRender) {
this.themeRender.destory();
this.themeRender = null
}
if (isDefalut) {
let leftThemeRender = new LeftTheme(themeObj);
leftThemeRender.render();
this.themeRender = new LeftTheme(themeObj);
this.themeRender.render();
return;
}
if (themeObj.layout == 'top' && window.screen.width > 767) {
let topThemeRender = new TopTheme(themeObj);
topThemeRender.render();
this.themeRender = new TopTheme(themeObj);
this.themeRender.render();
} else {
let leftThemeRender = new LeftTheme(themeObj);
leftThemeRender.render();
this.themeRender = new LeftTheme(themeObj);
this.themeRender.render();
}
}
}
@ -790,6 +826,12 @@ layui.define(['laytpl', 'element', 'layer', 'zlPinYin', 'common'], function (exp
}
element.init();
};
/**
* 释放资源或者事件
*/
ThemeRenderBase.prototype.destory = function () {
this.menuRender && (this.menuRender.destory(), this.menuRender = null)
}
ThemeRenderBase.prototype.isSmall = function () {
return window.screen.width < 767
}
@ -880,7 +922,6 @@ layui.define(['laytpl', 'element', 'layer', 'zlPinYin', 'common'], function (exp
})
}
ThemeRenderBase.prototype.renderHeader = function () {
let that = this;
that.config.$headerElem = $($('#tpl-header').html());
@ -895,15 +936,21 @@ layui.define(['laytpl', 'element', 'layer', 'zlPinYin', 'common'], function (exp
that.config.$menuElem.append($('#tpl-search').html())
that.config.$menuElem.find('.navbar-side-search').before($('#tpl-logo').html())
that.config.$menuElem.find('.navbar-side-search').after($('#tpl-menu').html())
let menuRender = new LeftMenuRender()
menuRender.set({
let { menuType, layout } = that.config.theme;
if (menuType == 'true' || layout == 'pop') {
that.menuRender = new LeftPopMenuRender(null, that)
} else {
that.menuRender = new LeftMenuRender(null, that)
}
that.menuRender.set({
spreadOne: true,
elem: '#admin-navbar-menu',
cached: false,
url: layui.cache['contentPath'] + '/core/security/querymenuauth',
type: 'post'
});
menuRender.render();
that.menuRender.render();
};
ThemeRenderBase.prototype.renderFoot = function () {
let that = this;
@ -921,15 +968,15 @@ layui.define(['laytpl', 'element', 'layer', 'zlPinYin', 'common'], function (exp
that.config.$menuElem.append($('#tpl-search').html())
that.config.$menuElem.find('.navbar-side-search').after($('#tpl-menu').html())
that.config.$menuElem.find('.kdayun-menu-container').after($('#tpl-logo').html())
let menuRender = new LeftMenuRender()
menuRender.set({
that.menuRender = new LeftMenuRender(null, that)
that.menuRender.set({
spreadOne: true,
elem: '#admin-navbar-menu',
cached: false,
url: layui.cache['contentPath'] + '/core/security/querymenuauth',
type: 'post'
});
menuRender.render();
that.menuRender.render();
};
ThemeRenderBase.prototype.renderSmallHeader = function () {
let that = this;
@ -1007,31 +1054,39 @@ layui.define(['laytpl', 'element', 'layer', 'zlPinYin', 'common'], function (exp
that.config.$headerElem.append($('#tpl-logo').html());
that.config.$headerElem.append($('#tpl-menu').html());
that.config.$menuElem = $('#admin-navbar-menu')
// that.config.$menuElem.after($('#tpl-search').html())
let menuRender = new TopMenuRender();
menuRender.set({
that.menuRender = new TopMenuRender(null, that);
that.menuRender.set({
spreadOne: true,
elem: '#admin-navbar-menu',
cached: false,
url: layui.cache['contentPath'] + '/core/security/querymenuauth',
type: 'post'
});
menuRender.render();
that.menuRender.render();
};
let MenuRenderBase = function (config) {
let MenuRenderBase = function (config, themeRender) {
this.themeRender = themeRender
/**
* 默认配置
*/
this.config = {
...{
elem: undefined, //容器
data: undefined, //数据源
url: undefined, //数据源地址
type: 'GET', //读取方式
cached: false, //是否使用缓存
spreadOne: false //设置是否只展开一个二级菜单
}, ...config
}
};
/**
* 释放资源或者事件
*/
MenuRenderBase.prototype.destory = function () {
}
MenuRenderBase.prototype.isSmall = function () {
return window.screen.width < 767
}
@ -1087,6 +1142,7 @@ layui.define(['laytpl', 'element', 'layer', 'zlPinYin', 'common'], function (exp
});
}
this.iniEvent();
return that;
};
MenuRenderBase.prototype.iniEvent = function () {
@ -1146,25 +1202,27 @@ layui.define(['laytpl', 'element', 'layer', 'zlPinYin', 'common'], function (exp
}
MenuRenderBase.prototype.iniSearchEvent = function () {
let that = this;
$('#navbarSearchValue').on('keyup', function (e) {
navbarSeacherHandle($(this).val(), this)
that.doSearch($(this).val(), this)
});
$('#navbarSearchIcon').on('click', function () {
navbarSeacherHandle($(this).siblings('input').val(), this)
that.doSearch($(this).siblings('input').val(), this)
});
// 点击搜索项
$('ul.navbarSearchResult').on('click', 'li', function () {
$('.kdayun-menu').on('click', 'ul.navbarSearchResult li', function () {
let value = $(this).find('cite').html();
$('ul.navbarSearchResult').removeClass('layui-show').addClass('layui-hide');
// $('ul.navbarSearchResult').removeClass('layui-show').addClass('layui-hide');
$(this).parent().siblings('input').val('');
if (!$('#admin-navbar-menu').find('a[lay-text="' + value + '"]').parent().hasClass('kdayun-menu-item-expand')) {
$('#admin-navbar-menu').find('a[lay-text="' + value + '"]').click();
}
})
}
function navbarSeacherHandle(value, dom) {
let targetData = $(dom).parent('div.navbar-side-search').siblings('div#admin-navbar-menu').find('a'),
ulItem = $(dom).siblings('ul.navbarSearchResult'),
MenuRenderBase.prototype.doSearch = function (value, dom) {
let targetData = $(dom).parents('.kdayun-menu').find('.kdayun-menu-item :not(ul) a'),
ulItem = $(dom).parents('.kdayun-menu').find('ul.navbarSearchResult'),
num = 0;
ulItem.html(' ');
if (value == '') {
@ -1175,8 +1233,8 @@ layui.define(['laytpl', 'element', 'layer', 'zlPinYin', 'common'], function (exp
let matchingTarget = $(targetData[i]).find('cite').html(),
imgHtml = $(targetData[i]).find('img').length > 0 ? $(targetData[i]).find('img')[0].outerHTML : '<i class="fa fa-file"></i>';
if (matchingTarget.indexOf(value) != -1 || zlPinYin.A(matchingTarget).toLowerCase().indexOf(value.toLowerCase()) != -1) {
ulItem.append('<li class="search-result-item">' + imgHtml + '<cite>' + matchingTarget + '</cite></li>');
if (matchingTarget && (matchingTarget.indexOf(value) != -1 || zlPinYin.A(matchingTarget).toLowerCase().indexOf(value.toLowerCase()) != -1)) {
ulItem.append('<li class="search-result-item">' + targetData[i].outerHTML + '</cite></li>');
num++;
}
}
@ -1185,7 +1243,6 @@ layui.define(['laytpl', 'element', 'layer', 'zlPinYin', 'common'], function (exp
ulItem.append('<li>未查询到对应数据!</li>')
}
}
};
/**
* 获取html字符串
* @param {Object} data 菜单的项数组
@ -1199,11 +1256,9 @@ layui.define(['laytpl', 'element', 'layer', 'zlPinYin', 'common'], function (exp
ulHtml += '<li class="kdayun-menu-item">';
}
ulHtml += this.getItemHtml(data[i]);
ulHtml += '</li>';
}
ulHtml += '</ul>';
return ulHtml;
};
MenuRenderBase.prototype.getTokenIdUrl = function (url, resid) {
@ -1230,7 +1285,7 @@ layui.define(['laytpl', 'element', 'layer', 'zlPinYin', 'common'], function (exp
}
let layhref = (url !== undefined && url !== '' && url !== null) ? 'yh-href="' + url + '"' : '';
ulHtml += '<a href="javascript:;" ' + layhref + ' lay-text="' + item.title + '" ' + (!this.isSmall() ? 'lay-tips="' + item.title + '""' : '') + '" lay-direction="2" resId=' + item.resid + ' >';
ulHtml += '<a ' + layhref + ' lay-text="' + item.title + '" ' + (!this.isSmall() ? 'lay-tips="' + item.title + '""' : '') + '" lay-direction="2" resId=' + item.resid + ' >';
if (item.icon != undefined && item.icon != '') {
ulHtml += '<img src="' + layui.cache['contentPath'] + item.icon + '" ' + svgOnLoad + ' style="width:16px;height:16px;vertical-align: text-bottom;">';
} else {
@ -1333,8 +1388,8 @@ layui.define(['laytpl', 'element', 'layer', 'zlPinYin', 'common'], function (exp
};
let TopMenuRender = function () {
MenuRenderBase.call(this);
let TopMenuRender = function (config, themeRender) {
MenuRenderBase.call(this, config, themeRender);
};
(function () {
let Super = function () { };
@ -1352,18 +1407,20 @@ layui.define(['laytpl', 'element', 'layer', 'zlPinYin', 'common'], function (exp
/**
* 菜单的渲染器
*/
let LeftMenuRender = function () {
MenuRenderBase.call(this);
let LeftMenuRender = function (config, themeRender) {
MenuRenderBase.call(this, config, themeRender);
let that = this;
common.on('TAB_ACTIVE', function (event) {
that.onActive = function (event) {
let resid = event.params;
if (resid) {
let { menuType, layout } = THEME.getTheme(false);
if (resid && (menuType != 'true' && layout != 'pop')) {
let $a = $(`a[resid='${resid}']`)
if ($a.length !== 0) {
that.activeMenu($a, false)
}
}
})
}
common.on('TAB_ACTIVE', that.onActive)
};
(function () {
@ -1371,6 +1428,239 @@ layui.define(['laytpl', 'element', 'layer', 'zlPinYin', 'common'], function (exp
Super.prototype = MenuRenderBase.prototype;
LeftMenuRender.prototype = new Super();
})();
/**
* 释放资源或者事件
*/
LeftMenuRender.prototype.destory = function () {
common.off('TAB_ACTIVE', this.onActive)
}
LeftMenuRender.prototype.iniEvent = function () {
MenuRenderBase.prototype.iniEvent.call(this);
$(".kdayun-app-layout-left").removeClass('kdayun-suspension')
$(".kdayun-app-layout-left").removeClass('kdayun-pop-menu')
};
/**
* 弹出菜单的渲染器
*/
let LeftPopMenuRender = function (config, themeRender) {
MenuRenderBase.call(this, config, themeRender);
let that = this;
that.onActive = function (event) {
let resid = event.params;
let { menuType, layout } = THEME.getTheme(false);
if (resid && (menuType == 'true' || layout == 'pop')) {
let $a = $(`a[resid='${resid}']`)
if ($a.length !== 0) {
that.activeMenu($a, false)
}
}
}
common.on('TAB_ACTIVE', that.onActive)
};
(function () {
let Super = function () { };
Super.prototype = LeftMenuRender.prototype;
LeftPopMenuRender.prototype = new Super();
})();
/**
* 释放资源或者事件
*/
LeftPopMenuRender.prototype.destory = function () {
common.off('TAB_ACTIVE', this.onActive)
}
LeftPopMenuRender.prototype.onActive = function (event) {
let resid = event.params;
if (resid) {
let $a = $(`a[resid='${resid}']`)
if ($a.length !== 0) {
// that.activeMenu($a, false)
}
}
}
LeftPopMenuRender.prototype.render = function () {
MenuRenderBase.prototype.render.call(this);
layui.admin.sideFlexible();
$(".kdayun-app-layout-left .kdayun-menu-more").hide();
$(`#kdayun-app-flexible`).parents('.layadmin-flexible').hide();
$(".kdayun-app-layout-left").removeClass('kdayun-suspension');
$(".kdayun-app-layout-left").addClass('kdayun-suspension')
$(".kdayun-app-layout-left").addClass('kdayun-pop-menu')
$(".kdayun-app-layout-left .kdayun-menu-more").hide();
let $search = $(".kdayun-app-layout-left .kdayun-search");
$search.addClass('kdayun-popmenu-search')
$search.find('.kdayun-search-result').remove()
$search.append($(`<div class="kdayun-popmenu-wrapper">
<div x-arrow="" class="kdayun-popmenu-arrow" style="top: 20px;"></div>
<ul class="navbarSearchResult kdayun-search-result layui-hide"></ul>
</div>`))
$search.find('.kdayun-popmenu-wrapper').append($search.find('#navbarSearchValue'))
$search.find('.kdayun-popmenu-wrapper').find('.kdayun-search-result').css({
position: "absolute",
top: "36px",
left: "12px",
textAlign: "left"
})
// $(".kdayun-app-layout-left .kdayun-menu-container").css()
}
LeftPopMenuRender.prototype.iniMenuClickEvent = function () {
let that = this,
$search = $(".kdayun-app-layout-left .kdayun-search");
$search.on('mouseenter', function (e) {
that.popMenu($(this), false, 'true')
e.stopPropagation();
}).on('mouseover', function (e) {
that.popMenu($(this), false, 'true')
e.stopPropagation();
})
that.config.elem.on('mouseenter', "a", function (e) {
that.popMenu($(this), false, 'true')
e.stopPropagation();
})
that.config.elem.on("mouseleave", function (e) {
$('.kdayun-popmenu-wrapper').removeClass('kdayun-popmenu-open');
});
that.config.elem.on('click', "a", function (e) {
let $a = $(this);
let href = $a.attr('yh-href'),
text = $a.attr('lay-text'),
resid = $a.attr('resid'),
searchBox = $a.parents('div#admin-navbar-menu').siblings('div.navbar-side-search');
searchBox.find('ul.navbarSearchResult ').removeClass('layui-show').addClass('layui-hide');
searchBox.find('input#navbarSearchValue').val('');
common.tabsPage.elem = $a;
let isOpen = true;
if (!common.isEmpty(href) && isOpen) {
if (that.isSmall()) {
common.openSmallPage(href, text || $a.text(), resid);
return;
} else {
common.openTabsPage(href, text || $a.text(), resid);
}
}
e.stopPropagation();
return false;
})
}
LeftPopMenuRender.prototype.activeMenu = function ($a, isOpen) {
$('.kdayun-menu-container li.layui-this').removeClass('layui-this');
$a.parent().addClass('layui-this');
}
LeftPopMenuRender.prototype.popMenu = function ($a, isOpen, menuType) {
let $parent = $a.hasClass('kdayun-popmenu-search') ? $a : $a.parent(),
$popMenuWrapper = $parent.children('.kdayun-popmenu-wrapper'),
$popMenu = $popMenuWrapper.children('.kdayun-popmenu'),
$menuContainer = $('.kdayun-menu-container'),
$arrow = $parent.find('.kdayun-popmenu-arrow')
$top = $menuContainer.offset().top + $menuContainer.height()
if ($('#kdayun-app').hasClass('kdayun-app-layout-left') &&
($parent.attr('class') == 'kdayun-menu-item' || $parent.attr('class') == 'kdayun-menu-item kdayun-menu-item-expand' || $a.hasClass('kdayun-popmenu-search'))) {
let $allwapper = $parent.parents('.kdayun-menu').find('.kdayun-popmenu-wrapper');
$allwapper.removeClass('kdayun-popmenu-open');
$allwapper.removeAttr('style');
$popMenuWrapper.addClass('kdayun-popmenu-open');
let left = $('.kdayun-menu-container').width() - 6;
$(".kdayun-app-layout-left").removeClass('kdayun-suspension');
$popMenuWrapper.css({ 'left': left });
let $height = $a.offset().top,
$menuRightDomHeight = $popMenu.height()
if ($menuRightDomHeight >= $top - $height) {
$popMenuWrapper.css({
bottom: 0 + 'px'
})
} else {
$popMenuWrapper.css({
top: `${$a.offset().top}px`
})
}
$popMenuWrapper.css({
maxHeight: `${window.innerHeight}px`
})
if ($popMenuWrapper[0] && $popMenuWrapper.offset().top == 0) {
$arrow.css({ top: `${$height + 20}px` })
} else {
$arrow.css({ top: `20px` })
}
if ($a.hasClass('kdayun-popmenu-search')) {
let wapperHeight = $parent.find('.kdayun-search-result').height() + $parent.find('#navbarSearchValue').height() + 20;
$popMenuWrapper.height(wapperHeight);
}
$popMenuWrapper.on('mouseleave', function () {
$popMenuWrapper.removeClass('kdayun-popmenu-open');
});
}
}
LeftPopMenuRender.prototype.getItemPopMenuHtml = function (item) {
let tree = this.flattenTree(item)
let ulHtml = '<div class="kdayun-popmenu-wrapper"><div class="kdayun-popmenu">';
for (let i in tree) {
let url = tree[i].href;
if (url != null) {
url = url.replace(/#{contentpath}/i, layui.cache['contentPath']);
}
let layhref = (url !== undefined && url !== '' && url !== null) ? 'yh-href="' + url + '"' : '';
ulHtml += '<ul class="kdayun-popmenu-ul"><li>';
ulHtml += `<a href="javascript:;" ${layhref} lay-text="${tree[i].title}" ${(!this.isSmall() ? `lay-tips="${tree[i].title}"` : '')}" lay-direction="2" resId=${tree[i].resid} >${tree[i].title}</a></li>`
let children = tree[i].children
for (let j in children) {
let url1 = children[j].href;
if (url1 != null) {
url1 = url1.replace(/#{contentpath}/i, layui.cache['contentPath']);
}
let layhref1 = (url1 !== undefined && url1 !== '' && url1 !== null) ? 'yh-href="' + url1 + '"' : '';
if (layhref1 != '') {
ulHtml += '<li>';
ulHtml += `<a href="javascript:;" ${layhref1} lay-text="${children[j].title}" ${(!this.isSmall() ? `lay-tips="${children[j].title}"` : '')}" lay-direction="2" resId=${children[j].resid} >${children[j].title}</a></li>`
}
}
ulHtml += '</ul>';
}
ulHtml += ' </div>'
ulHtml += '<div x-arrow="" class="kdayun-popmenu-arrow"></div>'
ulHtml += '</div>'
return ulHtml
}
LeftPopMenuRender.prototype.doSearch = function (value, dom) {
MenuRenderBase.prototype.doSearch.call(this, value, dom);
let $search = $(".kdayun-menu-container").parents('.kdayun-menu').find('.kdayun-popmenu-search');
let wapperHeight = $search.find('.kdayun-search-result').height() + $search.find('#navbarSearchValue').height() + 20;
$search.find('.kdayun-popmenu-wrapper.kdayun-popmenu-open').height(wapperHeight);
}
LeftPopMenuRender.prototype.flattenTree = function (tree) {
let flattenedArray = [];
function traverse(node, level) {
if (node.children.length > 0) {
for (let child of node.children) {
if (child.children.length > 0) {
traverse(child, level + 1);
} else {
let exists = flattenedArray.some(item => item.resid === node.resid);
if (!exists) {
flattenedArray.push(node);
}
}
}
} else {
flattenedArray.push(node);
}
}
traverse(tree, 0);
return flattenedArray;
}
LeftPopMenuRender.prototype.getItemHtml = function (data) {
let html = MenuRenderBase.prototype.getItemHtml.call(this, data);
data.children && data.children.length > 0 && (html += this.getItemPopMenuHtml(data))
return html;
};
!function () {

View File

@ -109,7 +109,7 @@ layui.define(['zlContext', 'layer', 'laytpl', 'colorpicker', 'zlPinYin', 'theme'
renderLayout(themeData) {
var $ul = $('.layui-form-item.layout ul')
$ul.empty();
if (!themeData.layouts) { themeData.layouts = theme.defaulLayouts }
themeData.layouts = theme.defaulLayouts
$ul.append('<input name="layout"/>');
for (let i = 0; i < themeData.layouts.length; i++) {
const layout = themeData.layouts[i];
@ -157,12 +157,23 @@ layui.define(['zlContext', 'layer', 'laytpl', 'colorpicker', 'zlPinYin', 'theme'
zlTheme.renderColorPicker(layero);
// form.render(null, 'theme-form');
zlTheme.renderOptionsFontFamily(layero);
// tanxy 添加菜单悬浮开启
let { memuType, layout } = zlTheme.ZL_theme
if (memuType == 'true' || layout == 'pop') {
layero.find('input[name="menuTypeSwitch"]').attr("checked", "checked");
} else {
layero.find('input[name="menuTypeSwitch"]').removeAttr('checked');
}
form.render('checkbox')
form.on('select', function (data) {
$(data.othis).find('input').css('font-family', data.value);
layero.find('button[lay-filter="themeForm"]').addClass('revised');
});
form.on('switch(switchTest)', function (data) {
layero.find('input[name="menuType"]').val(this.checked ? true : false)
});
layero.on('blur', 'input[name="theme_title"]', function () {
if ($(this).val() != zlTheme.ZL_theme.theme_title && !layero.find('li.layui-this').hasClass('newTheme')) {
layero.find('button[lay-filter="themeForm"]').addClass('revised');
@ -356,6 +367,13 @@ layui.define(['zlContext', 'layer', 'laytpl', 'colorpicker', 'zlPinYin', 'theme'
zlTheme.renderColorPicker(layero);
zlTheme.renderOptionsFontFamily(layero);
let { memuType, layout } = zlTheme.ZL_theme
if (memuType == 'true' || layout == 'pop') {
layero.find('input[name="menuTypeSwitch"]').attr("checked", "checked");
} else {
layero.find('input[name="menuTypeSwitch"]').removeAttr('checked');
}
form.render('checkbox')
// 默认主题禁止修改
if (id === '25CE6A8B1C') {
layero.find('input').prop('disabled', true);

View File

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1703907228842" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5078" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16"><path d="M213.333333 128h85.333334v85.333333H213.333333v213.333334a85.333333 85.333333 0 0 1-85.333333 85.333333 85.333333 85.333333 0 0 1 85.333333 85.333333v213.333334h85.333334v85.333333H213.333333c-45.653333-11.52-85.333333-38.4-85.333333-85.333333v-170.666667a85.333333 85.333333 0 0 0-85.333333-85.333333H0v-85.333334h42.666667a85.333333 85.333333 0 0 0 85.333333-85.333333V213.333333a85.333333 85.333333 0 0 1 85.333333-85.333333m597.333334 0a85.333333 85.333333 0 0 1 85.333333 85.333333v170.666667a85.333333 85.333333 0 0 0 85.333333 85.333333h42.666667v85.333334h-42.666667a85.333333 85.333333 0 0 0-85.333333 85.333333v170.666667a85.333333 85.333333 0 0 1-85.333333 85.333333h-85.333334v-85.333333h85.333334v-213.333334a85.333333 85.333333 0 0 1 85.333333-85.333333 85.333333 85.333333 0 0 1-85.333333-85.333333V213.333333h-85.333334V128h85.333334m-298.666667 512a42.666667 42.666667 0 0 1 42.666667 42.666667 42.666667 42.666667 0 0 1-42.666667 42.666666 42.666667 42.666667 0 0 1-42.666667-42.666666 42.666667 42.666667 0 0 1 42.666667-42.666667m-170.666667 0a42.666667 42.666667 0 0 1 42.666667 42.666667 42.666667 42.666667 0 0 1-42.666667 42.666666 42.666667 42.666667 0 0 1-42.666666-42.666666 42.666667 42.666667 0 0 1 42.666666-42.666667m341.333334 0a42.666667 42.666667 0 0 1 42.666666 42.666667 42.666667 42.666667 0 0 1-42.666666 42.666666 42.666667 42.666667 0 0 1-42.666667-42.666666 42.666667 42.666667 0 0 1 42.666667-42.666667z" fill="#1296db" p-id="5079"></path></svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1705472015943" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1457" width="32" height="32" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M926.165333 140.501333A42.666667 42.666667 0 0 1 938.666667 170.666667v682.666666a42.666667 42.666667 0 0 1-42.666667 42.666667H384V128h512a42.666667 42.666667 0 0 1 30.165333 12.501333zM128 896a42.666667 42.666667 0 0 1-42.666667-42.666667V170.666667a42.666667 42.666667 0 0 1 42.666667-42.666667h170.666667v768H128z" fill="#09121F" p-id="1458"></path></svg>

After

Width:  |  Height:  |  Size: 690 B

View File

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1703907409179" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6177" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16"><path d="M343.148833 1024a202.699487 202.699487 0 0 1-149.110154-66.166154l-1.155282-1.31282a243.659487 243.659487 0 0 1 0-325.054359l15.36-16.804103a37.100308 37.100308 0 0 1 27.700513-12.603077 40.461128 40.461128 0 0 1 9.714872 1.312821 40.014769 40.014769 0 0 1 27.437948 29.669743 44.032 44.032 0 0 1-10.502564 40.434872l-15.412513 16.804103a155.201641 155.201641 0 0 0-35.131077 141.784615 141.784615 141.784615 0 0 0 95.940923 103.712821 122.696205 122.696205 0 0 0 35.131077 4.988717 130.231795 130.231795 0 0 0 95.940923-42.797948l184.608821-200.073846a156.041846 156.041846 0 0 0 32.085333-152.28718 139.158974 139.158974 0 0 0-112.902564-97.411282 36.758974 36.758974 0 0 1-25.783795-15.228718 43.506872 43.506872 0 0 1-8.192-30.457436 39.384615 39.384615 0 0 1 38.124308-37.021538 23.446974 23.446974 0 0 1 4.279795 0.262564 203.250872 203.250872 0 0 1 108.859077 48.574359 228.430769 228.430769 0 0 1 68.266667 103.71282 247.913026 247.913026 0 0 1 6.695384 127.34359 233.682051 233.682051 0 0 1-56.923897 111.32718l-184.661334 199.811282A202.909538 202.909538 0 0 1 343.148833 1024z m153.678769-366.276923a205.850256 205.850256 0 0 1-150.107897-67.478974 243.659487 243.659487 0 0 1 0-325.054359l184.661333-199.811282a200.992821 200.992821 0 0 1 298.587897 2.100512 243.34441 243.34441 0 0 1 1.864206 322.953847l-15.307488 16.804102a36.260103 36.260103 0 0 1-53.799384-0.787692 44.268308 44.268308 0 0 1-0.472616-58.289231l15.36-16.541538a155.464205 155.464205 0 0 0 35.945026-142.309744 142.546051 142.546051 0 0 0-96.413538-104.237949 129.417846 129.417846 0 0 0-34.710975-4.726154 131.675897 131.675897 0 0 0-96.728615 43.848206l-184.661334 199.548717a156.803282 156.803282 0 0 0-27.726769 164.365129 135.719385 135.719385 0 0 0 123.588923 86.383589c2.861949 0 5.750154 0 8.612103-0.262564 0.997744 0 1.969231-0.262564 2.914461-0.262564a37.861744 37.861744 0 0 1 31.927795 18.642051 44.452103 44.452103 0 0 1 2.41559 41.747693 38.518154 38.518154 0 0 1-32.426667 22.843077c-4.542359 0.262564-9.058462 0.525128-13.522051 0.525128z" fill="#1296db" p-id="6178"></path></svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,3 @@
(function (a, b) { if ("function" == typeof define && define.amd) define([], b); else if ("undefined" != typeof exports) b(); else { b(), a.FileSaver = { exports: {} }.exports } })(this, function () { "use strict"; function b(a, b) { return "undefined" == typeof b ? b = { autoBom: !1 } : "object" != typeof b && (console.warn("Depricated: Expected third argument to be a object"), b = { autoBom: !b }), b.autoBom && /^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(a.type) ? new Blob(["\uFEFF", a], { type: a.type }) : a } function c(b, c, d) { var e = new XMLHttpRequest; e.open("GET", b), e.responseType = "blob", e.onload = function () { a(e.response, c, d) }, e.onerror = function () { console.error("could not download file") }, e.send() } function d(a) { var b = new XMLHttpRequest; return b.open("HEAD", a, !1), b.send(), 200 <= b.status && 299 >= b.status } function e(a) { try { a.dispatchEvent(new MouseEvent("click")) } catch (c) { var b = document.createEvent("MouseEvents"); b.initMouseEvent("click", !0, !0, window, 0, 0, 0, 80, 20, !1, !1, !1, !1, 0, null), a.dispatchEvent(b) } } var f = "object" == typeof window && window.window === window ? window : "object" == typeof self && self.self === self ? self : "object" == typeof global && global.global === global ? global : void 0, a = f.saveAs || "object" != typeof window || window !== f ? function () { } : "download" in HTMLAnchorElement.prototype ? function (b, g, h) { var i = f.URL || f.webkitURL, j = document.createElement("a"); g = g || b.name || "download", j.download = g, j.rel = "noopener", "string" == typeof b ? (j.href = b, j.origin === location.origin ? e(j) : d(j.href) ? c(b, g, h) : e(j, j.target = "_blank")) : (j.href = i.createObjectURL(b), setTimeout(function () { i.revokeObjectURL(j.href) }, 4E4), setTimeout(function () { e(j) }, 0)) } : "msSaveOrOpenBlob" in navigator ? function (f, g, h) { if (g = g || f.name || "download", "string" != typeof f) navigator.msSaveOrOpenBlob(b(f, h), g); else if (d(f)) c(f, g, h); else { var i = document.createElement("a"); i.href = f, i.target = "_blank", setTimeout(function () { e(i) }) } } : function (a, b, d, e) { if (e = e || open("", "_blank"), e && (e.document.title = e.document.body.innerText = "downloading..."), "string" == typeof a) return c(a, b, d); var g = "application/octet-stream" === a.type, h = /constructor/i.test(f.HTMLElement) || f.safari, i = /CriOS\/[\d]+/.test(navigator.userAgent); if ((i || g && h) && "object" == typeof FileReader) { var j = new FileReader; j.onloadend = function () { var a = j.result; a = i ? a : a.replace(/^data:[^;]*;/, "data:attachment/file;"), e ? e.location.href = a : location = a, e = null }, j.readAsDataURL(a) } else { var k = f.URL || f.webkitURL, l = k.createObjectURL(a); e ? e.location = l : location.href = l, e = null, setTimeout(function () { k.revokeObjectURL(l) }, 4E4) } }; f.saveAs = a.saveAs = a, "undefined" != typeof module && (module.exports = a) });
//# sourceMappingURL=FileSaver.min.js.map

File diff suppressed because one or more lines are too long

View File

@ -220,7 +220,7 @@
//容器
Class.pt.vessel = function (conType, callback) {
var that = this, times = that.index, config = that.config;
that.config.zIndex = Common.generalSeri(2);
that.config.zIndex = Common ? Common.generalSeri(2) : new Date().getTime().substring(0, 7);
var zIndex = config.zIndex + times, titype = typeof config.title === 'object';
var ismax = config.maxmin && (config.type === 1 || config.type === 2);
var titleHTML = (config.title ? '<div class="layui-layer-title" style="' + (titype ? config.title[1] : '') + '">'

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -118,7 +118,17 @@ layui.use(["zlContext"], function (exports) {
var $itemBody = undefined;
if (action && action != '1') {
var url = action.replace(/#{contentpath}/i, layui.cache['contentPath']);
$itemBody = $('<iframe src="' + getTokenIdUrl(url) + '&resId=' + rwid + '" width=100% height=100% frameborder=”no” border=”0″ marginwidth=”0″ marginheight=”0″ scrolling=”no” allowtransparency=”yes”></iframe>');
// $itemBody = $('<iframe src="' + getTokenIdUrl(url) + '&resId=' + rwid + '" width=100% height=100% frameborder=”no” border=”0″ marginwidth=”0″ marginheight=”0″ scrolling=”no” allowtransparency=”yes”></iframe>');
$itemBody = $(`<div id="${rwid}" resId="${rwid}">
<div class="skeleton">
<div class="card">
<div class="text text-1 skeleton-loading"></div>
<div class="title skeleton-loading"></div>
<div class="text skeleton-loading"></div>
<div class="text skeleton-loading"></div>
</div>
</div>
</div>`)
} else {
$itemBody = $(noAuthTemplate.join(''));
if ("1" == action) {
@ -134,9 +144,26 @@ layui.use(["zlContext"], function (exports) {
$item.find('.grid-stack-item-body').append($itemBody);
gridstackAction.grid.addWidget($item, node['x'], node['y'], node['width'], node['height'],
node['autoPosition'], node['minWidth'], node['maxWidth'], node['minHeight'], node['maxHeight'], node['id']);
let pageService = window['kdayun']['PageService'];
if (pageService && $itemBody.attr('resId') == rwid) {
let matchs = action.match(new RegExp(/(?<=modelId=).*/));
if (matchs && matchs[0]) {
let modelId = matchs[0];
setTimeout(() => {
modelId && pageService.renderByPageId($itemBody, modelId, rwid)
$item.find('.skeleton').remove()
}, 1000);
} else if (action) {
let url = action.replace(/#{contentpath}/i, layui.cache['contentPath']);
$itemBody.append($('<iframe src="' + url + '" width=100% height=100%></iframe>'));
$itemBody.find('.skeleton').remove()
}
} else {
$itemBody.find('.skeleton').remove()
}
});
} catch (error) {
zlContext.errorMsg("数据加载异常!!");
zlContext.errorMsg(`数据加载异常!!:${error}`);
}
}

View File

@ -1,4 +1,4 @@
layui.use(["zlContext", "zltreemenu"], function (exports) {
layui.use(["zlContext", "zltreemenu", 'zlpoptree'], function (exports) {
var $ = layui.$
, zlContext = layui.zlContext
, layer = layui.layer
@ -11,13 +11,30 @@ layui.use(["zlContext", "zltreemenu"], function (exports) {
, dataName = zlConfig.global.result.dataName
, OK = zlConfig.global.result.okState
, fullheight = 'full-30'
, loadingLayer;
, loadingLayer
, zlpoptree = layui.zlpoptree;
var options = {
float: false,
auto: true,
always_show_resize_handle: true
};
layui.ComponentSettings = {
MENU_ID: {
dataurl: layui.cache['contentPath'] + '/manager/corehomepage/modules',
method: 'post',
formtitle: '选择菜单',
placeholder: '请选择菜单',
callback: (data) => {
if (data[0]) {
$('div[name="MENU_ID"]').attr('data-url', data[0]['RES_ACTION'])
$('div[name="MENU_ID"]').attr('data-rwid', data[0]['RWID'])
$('input[name="item-title"]').val(data[0]['OBJNAME'])
}
}
},
}
var frmTemplate = [
'<div>'
, ' <div class="grid-stack-item-content">'
@ -220,25 +237,39 @@ layui.use(["zlContext", "zltreemenu"], function (exports) {
, ' </div>'
, ' </div>'
, ' </div>'
, ' <div class="layui-form-item">'
, ' <div class="layui-col-md12">'
, ' <label class="layui-form-label">关联的菜单</label>'
, ' <div class="layui-input-block">'
, ' <div name="MENU_ID" zlcomponent class="layui-form-select zlpoptree" text="" value="">'
, ' </div>'
, ' </div>'
, ' </div>'
, ' </div>'
, ' </form>'
, '</div>'
],
$itemtile = $item.find('.grid-stack-item-header .item-title'),
itemshowvalue = $itemtile.attr("isshow");
itemshowvalue = $itemtile.attr("isshow"),
$itemConent = $item.find('.grid-stack-item-content');
layer.open({
type: 1
, id: 'itemTitleLayer'
, title: "编辑标题"
, area: ["420px", "240px"]
, area: ["420px", "340px"]
, content: frmTitleLayer.join('')
, btn: ['确定', '取消']
, success: function () {
gridAction.curEditItem = $item;
var title = $itemtile.text();
let menuId = $itemConent.attr('data-zl-rwid')
if (itemshowvalue == '0') {
$('input[name="item-show"]').prop('checked', '');
}
$("#itemTitleLayer #layer-item-title input[name=item-title]").val(title);
$('div[name="MENU_ID"]').attr('value', menuId);
$('div[name="MENU_ID"]').attr('text', title);
form.render();
form.on('switch(itemshow)', function (data) {
itemshowvalue = $('input[name="item-show"]').prop('checked');
@ -251,11 +282,23 @@ layui.use(["zlContext", "zltreemenu"], function (exports) {
return false;
}
$itemtile.text(title);
let menuId = $('div[name="MENU_ID"]').val();
$itemConent.attr('data-zl-rwid', menuId)
let iframe = $itemConent.find('.grid-stack-item-body iframe')
if (iframe[0]) {
let url = $('div[name="MENU_ID"]').attr('data-url');
if (url) {
url = url.replace(/#{contentpath}/i, layui.cache['contentPath']);
iframe.attr('src', url);
}
}
$itemtile.attr('isshow', itemshowvalue ? 1 : 0);
layer.close(index);
}
});
},
resTreeGrid: function () {
loadingLayer = layer.msg('数据加载中,请稍候...', { icon: 16, time: false, shade: 0.1 });
layer.open({
@ -276,8 +319,9 @@ layui.use(["zlContext", "zltreemenu"], function (exports) {
return false;
}
$.each(nodes, function (i, node) {
if (!node.children || node.children.length == 0) {
var url = node['RES_ACTION'],
resId = node['RES_ID'];
resId = node['RWID'];
var titleName = node['OBJNAME'];
if (url != null) {
url = url.replace(/#{contentpath}/i, layui.cache['contentPath']);
@ -295,6 +339,7 @@ layui.use(["zlContext", "zltreemenu"], function (exports) {
var mod = i % 3;
gridstackAction.grid.addWidget($item, defaultNode.x + defaultNode.width * mod, defaultNode.y, defaultNode.width, defaultNode.height);
}
});
}
gridAction.resAuthTree.checkAllNodes(false);
@ -322,27 +367,32 @@ layui.use(["zlContext", "zltreemenu"], function (exports) {
radioType: "all",
dataurl: layui.cache['contentPath'] + "/manager/corehomepage/modules",
type: "get",
idKey: "RESRWID",
idKey: "RWID",
search: false,
dataFilter: function (treeId, parentNode, responseData) {
if (responseData[statusName] == OK) {
var data = responseData[dataName];
let RESTYPE = {
'4C5CE7CCD7124C448A82E65B965B36CC': '菜单目录',
'D0F4A751E3654AB3A714B8A0309D0BCB': '菜单',
'EB7113E02DA643D3B800A03ED2D87C09': '隐藏菜单'
}
for (var i = 0; i < data.length; i++) {
if (data[i].RES_TYPE == "4C5CE7CCD7124C448A82E65B965B36CC") {
data[i].icon = layui.cache['contentPath'] + "/static/image/menud.png";
if (!data[i].RES_TYPE) {
data[i].icon = layui.cache['contentPath'] + "/static/image/org.png";
data[i].chkDisabled = true;
} else if (data[i].RES_TYPE == "4C5CE7CCD7124C448A82E65B965B36CC") {
data[i].icon = layui.cache['contentPath'] + "/static/image/menud.png";
} else if (data[i].RES_TYPE == "D0F4A751E3654AB3A714B8A0309D0BCB") {
data[i].icon = layui.cache['contentPath'] + "/static/image/menu.png";
} else if (data[i].RES_TYPE == "EB7113E02DA643D3B800A03ED2D87C09") {
data[i].icon = layui.cache['contentPath'] + "/static/image/hidemenu.png";
if (!data[i].RES_ACTION) {
data[i].chkDisabled = true;
}
}
if (data[i].BEIZ != "") {
data[i].OBJNAME = data[i].OBJNAME + '(' + data[i].BEIZ + ')' + '-[' + data[i].RESTYPENAME + ']';
if (RESTYPE[data[i].RES_TYPE]) {
data[i].OBJNAME = `${data[i].OBJNAME}-[${RESTYPE[data[i].RES_TYPE]}]`;
} else {
data[i].OBJNAME = data[i].OBJNAME + '-[' + data[i].RESTYPENAME + ']';
data[i].OBJNAME = data[i].OBJNAME
}
}
return data;
@ -359,6 +409,7 @@ layui.use(["zlContext", "zltreemenu"], function (exports) {
var homepageRender = {
content: undefined,
resAuthMap: undefined,
items: undefined,
queryContentById: function (rwid) {
var url = layui.cache['contentPath'] + '/manager/corehomepage/querybyid';
var params = {
@ -368,6 +419,7 @@ layui.use(["zlContext", "zltreemenu"], function (exports) {
if (result[statusName] == OK) {
var obj = result[dataName];
homepageRender.resAuthMap = obj['RESAUTHMAP'] || {};
homepageRender.items = obj['ITEMMAP'] || {};
if (obj) {
if (obj['HP_CONTENT']) {
homepageRender.content = JSON.parse(obj['HP_CONTENT']);
@ -384,11 +436,11 @@ layui.use(["zlContext", "zltreemenu"], function (exports) {
if (!homepageRender.content) {
return;
}
var noAuthTemplate = [
var noTemplate = [
'<div class="empty-data" style="text-align:center;padding-top: 20px;font-size: 25px;color: #ccc;font-family: tahoma ,微软雅黑;">'
, ' <div class="no-data-show" style="padding-top: 10px;font-size: 22px;">无权限访问</div>'
, ' <div class="no-data-show" style="padding-top: 10px;font-size: 22px;">无效模块</div>'
, '</div>'
];
].join('');
$.each(homepageRender.content, function (index, node) {
var rwid = node['zlRwid'];
var titleName = node['titleName'] || '标题';
@ -406,16 +458,13 @@ layui.use(["zlContext", "zltreemenu"], function (exports) {
$item.find('.grid-stack-item-header .item-title').text(titleName);
$item.find('.item-title').attr('isshow', node.isshow);
//权限判断
var action = homepageRender.resAuthMap[rwid];
var action = homepageRender.items[rwid];
var $itemBody = undefined;
if (action && action != '1') {
var url = action.replace(/#{contentpath}/i, layui.cache['contentPath']);
$itemBody = $('<iframe src="' + url + '" width=100% height=100%></iframe>');
} else {
$itemBody = $(noAuthTemplate.join(''));
if ("1" == action) {
$itemBody.find('.no-data-show').text('无效模块');
}
action == '1' && ($itemBody = $(noTemplate))
}
if (node['isshow'] == '0') {
$item.find('.grid-stack-item-body').css("height", "100%");

View File

@ -15,7 +15,6 @@ layui.use(['element', 'table', 'tree', 'zltreemenu', 'zlSelectEx', 'zlpoptree',
, zlPopSourceExt = layui.zlPopSourceExt
, coreTable = function () {
};
var formindex,
authtree,
roletree,
@ -23,6 +22,7 @@ layui.use(['element', 'table', 'tree', 'zltreemenu', 'zlSelectEx', 'zlpoptree',
newFormObj = {},
isloadsearch = false;
// 机构区域 目录树渲染
var orgtreeObj = zltreemenu.render('orgtree', {
dataurl: layui.cache['contentPath'] + "/admin/coreorg/queryOrgddata",
@ -450,6 +450,10 @@ layui.use(['element', 'table', 'tree', 'zltreemenu', 'zlSelectEx', 'zlpoptree',
}
rendertable();
});
// 数据表格上方 权限复制
$('#btnCopyto').on('click', function () {
showCopyTo();
});
// 数据表格上方 移除人员角色
$('#btndel').on('click', function () {
var checkStatus = table.checkStatus('tbField')
@ -850,6 +854,67 @@ layui.use(['element', 'table', 'tree', 'zltreemenu', 'zlSelectEx', 'zlpoptree',
isloadsearch = false;
}
});
function showCopyTo() {
let html = `<form id ="frmGridUser" class="layui-form" action="" style="padding: 20px;">
<div class="layui-form-item">
<div class="layui-input-block" style="margin-left: 0px;">
<label class="layui-form-label">源用户</label>
<div class="layui-input-block">
<select name="formUser" zlcomponent lay-search class="select-ext"></select>
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block" style="margin-left: 0px;">
<label class="layui-form-label">目标用户</label>
<div class="layui-input-block">
<select name="toUser" zlcomponent lay-search class="select-ext"></select>
</div>
</div>
</div>
</form>`
layer.open({
type: 1,
id: 'CopyTo',
area: ['500px', '520px'],
content: html,
title: '权限复制',
btn: ['确定', '取消'],
success: function () {
form.render();
},
yes: function (index) {
let fromUserId = $('select[name="formUser"]').val(),
toUserId = $('select[name="toUser"]').val();
if (!toUserId) {
zlContext.errorMsg("请选择目标用户");
return;
}
if (!fromUserId) {
zlContext.errorMsg("请选择来源用户");
return;
}
zlContext.post(
layui.cache['contentPath'] + '/admin/coreuser/copyto',
{
fromUserId: fromUserId,
toUserId: toUserId
},
function (data) {
if (data.state == 'OK') {
zlContext.successMsg('完成复制');
} else {
zlContext.errorMsg(data.msg);
}
}
);
layer.close(index)
},
cancel: function (index, layero) {
layer.close(index)
}
});
}
function setoppositecheck(treenode) {
for (var i = 0; i < treenode.length; i++) {
@ -905,15 +970,33 @@ layui.use(['element', 'table', 'tree', 'zltreemenu', 'zlSelectEx', 'zlpoptree',
valuefield: "MXRWID",
dataurl: layui.cache['contentPath'] + '/manager/coreroleauth/queryUnuseRole?ORGID=' + orgNode[0].RWID
}
},
formUser: function () {
var orgNode = orgtreeObj.getSelectedNodes();
return {
method: 'POST',
titlefield: "OBJNAME",
valuefield: "RWID",
dataurl: layui.cache['contentPath'] + '/admin/coreuser/getUserByOrgId?ORGID=' + orgNode[0].RWID
}
},
toUser: function () {
var orgNode = orgtreeObj.getSelectedNodes();
return {
method: 'POST',
titlefield: "OBJNAME",
valuefield: "RWID",
dataurl: layui.cache['contentPath'] + '/admin/coreuser/getUserByOrgId?ORGID=' + orgNode[0].RWID
}
},
}
// frm 为新建和编辑角色时 弹窗的html内容
var frm = ['<div class="site-block"><form class="layui-form " id="addnew" >'
, ' <div class="layui-form-item roletype" style="display:none">'
, ' <div class="layui-col-md12">'
, ' <label class="layui-form-label">新增类型</label>'
, ' <div class="layui-input-block">'
, ' <select name="ROLETYPE" value="0" lay-filter="ROLETYPE">'
, ' <div class="layui-input-block">'
, ' <option value=""></option>'
, ' <option value="0">新增个性角色</option>'
, ' <option value="1">新增已删除角色</option>'

View File

@ -1,4 +1,3 @@
/* 布局 */
.site-inline {
font-size: 0;
@ -1784,6 +1783,7 @@ div.layui-card-header.zltree-header {
white-space: nowrap;
box-sizing: border-box;
}
.extSearch-form-input {
/* display: inline-block; */
padding: 0;
@ -1938,6 +1938,20 @@ div.layui-card-header.zltree-header {
box-shadow: 1px 0 2px 0 rgba(0, 0, 0, .05);
}
.themeSetter .layadmin-setTheme .layadmin-setTheme-popmenu {
position: absolute;
left: 11px;
top: 20px;
width: 35px;
height: 50%;
z-index: 11;
box-shadow: 1px 0 2px 0 rgba(0, 0, 0, .05);
}
.themeSetter .layadmin-setTheme .layadmin-setTheme-side:has(.layadmin-setTheme-popmenu) {
width: 10px;
}
.themeSetter .layadmin-setTheme .layadmin-setTheme-logo {
position: absolute;
left: 0;
@ -1983,23 +1997,20 @@ div.layui-card-header.zltree-header {
}
::-webkit-scrollbar
{
::-webkit-scrollbar {
width: 8px;
height: 8px;
background-color: #f5f5f5;
}
/*定义滚动条轨道 内阴影+圆角*/
::-webkit-scrollbar-track
{
::-webkit-scrollbar-track {
border-radius: 10px;
background-color: #f5f5f5;
}
/*定义滑块 内阴影+圆角*/
::-webkit-scrollbar-thumb
{
::-webkit-scrollbar-thumb {
height: 20px;
border-radius: 10px;
background-color: #555;
@ -2009,39 +2020,165 @@ div.layui-card-header.zltree-header {
/* 添加公式组件 */
.zlformulacmp{text-align: right;position: relative;}
.zlformulacmp .layui-i-del:hover,.zlformulacmp .zlui-icon-gongs:hover{cursor: pointer;}
.formulaCmp-box{ padding: 8px}
.formulaCmp-box *{box-sizing: border-box;}
.formulaCmp-box .layui-elem-field legend{font-size: 14px}
.formulaCmp-box .formulaCmp-textarea{width: calc(100% - 60px );float: left; min-height: 40px;}
.formulaCmp-box .btn-box{ overflow: hidden; margin-bottom: 5px}
.formulaCmp-box .btn-box .layui-form-radio{ margin-top: 0px}
.zlformulacmp {
text-align: right;
position: relative;
}
.zlformulacmp .layui-i-del:hover,
.zlformulacmp .zlui-icon-gongs:hover {
cursor: pointer;
}
.formulaCmp-box {
padding: 8px
}
.formulaCmp-box * {
box-sizing: border-box;
}
.formulaCmp-box .layui-elem-field legend {
font-size: 14px
}
.formulaCmp-box .formulaCmp-textarea {
width: calc(100% - 60px);
float: left;
min-height: 40px;
}
.formulaCmp-box .btn-box {
overflow: hidden;
margin-bottom: 5px
}
.formulaCmp-box .btn-box .layui-form-radio {
margin-top: 0px
}
/* .formulaCmp-box .formula-input-box{display: none} */
.formulaCmp-box .formula-parameter-box{display: inline-block;}
.formulaCmp-box .operator-select{ width: 200px; float: left; margin-right: 3px}
.formulaCmp-box .symbol-select{ width: 120px; float: left; margin-right: 3px}
.formulaCmp-box .operator-text{width: calc(100% - 400px); float: left; margin-right: 3px}
.formulaCmp-box .operator-btn{float: left; margin-top: 10px; margin-left: 5px; display: none}
.formulaCmp-box .operator-btn i{cursor: pointer;}
.formulaCmp-box .formula-parameter-box {
display: inline-block;
}
.custom-formula{ padding:5px 8px}
.custom-formula *{box-sizing: border-box;}
.custom-formula h5{height: 24px; line-height: 24px;padding:2px;}
.custom-formula .borderClass{border:1px solid #D2D2D2;}
.custom-formula .formula-text{height: 145px; width: 100%;}
.custom-formula .check-btn-box{ text-align: right;}
.custom-formula .formula-search-box{overflow: hidden;border: 1px solid #D2D2D2;border-radius: 2px;}
.custom-formula .formula-search-box input{border: none; float: left;width: calc(100% - 34px ); height: 22px; line-height: 22px}
.custom-formula .search-result{ height: 135px; border: 1px solid #D2D2D2;margin-top:5px;overflow: auto; }
.custom-formula .content-box{ height: 200px; overflow: auto; background: #f5f5f5; word-wrap: break-word;}
.custom-formula .content-box li,.custom-formula .search-result li{ font-size: 13px; cursor: pointer;padding: 2px}
.custom-formula .content-box li.active,.custom-formula .search-result li.active{ background-color: var(--kd-color); color: #fff;}
.custom-formula #function-name li{ display: none};
.custom-formula #formula-explanation{ padding: 2px};
.formulaCmp-box .operator-select {
width: 200px;
float: left;
margin-right: 3px
}
.select-type .layui-form-label{width: 100px;}
.select-type .layui-field-title{margin-bottom: 5px;margin: 10px 0;}
.formulaCmp-box .symbol-select {
width: 120px;
float: left;
margin-right: 3px
}
.formulaCmp-box .operator-text {
width: calc(100% - 400px);
float: left;
margin-right: 3px
}
.formulaCmp-box .operator-btn {
float: left;
margin-top: 10px;
margin-left: 5px;
display: none
}
.formulaCmp-box .operator-btn i {
cursor: pointer;
}
.custom-formula {
padding: 5px 8px
}
.custom-formula * {
box-sizing: border-box;
}
.custom-formula h5 {
height: 24px;
line-height: 24px;
padding: 2px;
}
.custom-formula .borderClass {
border: 1px solid #D2D2D2;
}
.custom-formula .formula-text {
height: 145px;
width: 100%;
}
.custom-formula .check-btn-box {
text-align: right;
}
.custom-formula .formula-search-box {
overflow: hidden;
border: 1px solid #D2D2D2;
border-radius: 2px;
}
.custom-formula .formula-search-box input {
border: none;
float: left;
width: calc(100% - 34px);
height: 22px;
line-height: 22px
}
.custom-formula .search-result {
height: 135px;
border: 1px solid #D2D2D2;
margin-top: 5px;
overflow: auto;
}
.custom-formula .content-box {
height: 200px;
overflow: auto;
background: #f5f5f5;
word-wrap: break-word;
}
.custom-formula .content-box li,
.custom-formula .search-result li {
font-size: 13px;
cursor: pointer;
padding: 2px
}
.custom-formula .content-box li.active,
.custom-formula .search-result li.active {
background-color: var(--kd-color);
color: #fff;
}
.custom-formula #function-name li {
display: none
}
;
.custom-formula #formula-explanation {
padding: 2px
}
;
.select-type .layui-form-label {
width: 100px;
}
.select-type .layui-field-title {
margin-bottom: 5px;
margin: 10px 0;
}
@ -2050,9 +2187,17 @@ div.layui-card-header.zltree-header {
/* 添加滑块在form表单里面的样式 */
.layui-input-block .demo-slider{ padding-top:16px}
.layui-rate .layui-inline{ width: auto;}
.layui-input-block .layui-rate{padding: 7px 5px 10px 0;}
.layui-input-block .demo-slider {
padding-top: 16px
}
.layui-rate .layui-inline {
width: auto;
}
.layui-input-block .layui-rate {
padding: 7px 5px 10px 0;
}
/* 添加数字翻牌器模块 */
@ -2109,6 +2254,7 @@ div.layui-card-header.zltree-header {
.numberCmp .title {
font-size: 20px;
}
.numberCmp .number span i {
font-family: "Microsoft Yahei";
font-size: 32px;
@ -2124,6 +2270,7 @@ div.layui-card-header.zltree-header {
/* background-color: rgba(6,26,103,1); */
min-height: 150px;
}
.tbl-header {
width: 100%;
position: absolute;
@ -2138,6 +2285,7 @@ div.layui-card-header.zltree-header {
top: 0;
left: 0;
}
.tablebox table {
width: 100%;
}
@ -2159,7 +2307,8 @@ div.layui-card-header.zltree-header {
background-color: transparent;
}
.tbl-body tr:nth-child(even) td,.tbl-body1 tr:nth-child(even) td {
.tbl-body tr:nth-child(even) td,
.tbl-body1 tr:nth-child(even) td {
/* background-color: rgba(31, 31, 156, .5); */
}

View File

@ -64,13 +64,13 @@ layui.define(['view', 'theme', 'common'], function (exports) {
} else {
app.removeClass(APP_SPREAD_SM);
}
app.removeClass(SIDE_SHRINK)
!app.hasClass('kdayun-pop-menu') && app.removeClass(SIDE_SHRINK)
} else {
//切换到搜索状态的 icon箭头
iconElem.removeClass(ICON_SHRINK).addClass(ICON_SPREAD);
//移动清除多余选择器恢复默认PC从右往左收缩
if (screen < 2) {
app.removeClass(SIDE_SHRINK);
!app.hasClass('kdayun-pop-menu') && app.removeClass(SIDE_SHRINK);
} else {
app.addClass(SIDE_SHRINK);
}
@ -343,13 +343,21 @@ layui.define(['view', 'theme', 'common'], function (exports) {
' <div class="layadmin-setTheme-title">' + item.theme_title + '</div>' +
' <div class="layadmin-setTheme-header" style="background-color: ' + item.navBgInput + ';"></div>' +
function getLayoutHtml() {
if (item.layout == 'top') {
let { layout, menuType } = item;
if (layout == 'top') {
return ''
} else {
if (menuType == 'true' || layout == 'pop') {
return ' <div class="layadmin-setTheme-side" style="background-color: ' + item.menuBgInput + ';">' +
' <div class="layadmin-setTheme-popmenu" style="background-color: ' + item.menuBgInput + ';"></div>' +
' <div class="layadmin-setTheme-logo" style="background-color: ' + item.logoBgInput + ';"></div>' +
' </div>'
} else {
return ' <div class="layadmin-setTheme-side" style="background-color: ' + item.menuBgInput + ';">' +
' <div class="layadmin-setTheme-logo" style="background-color: ' + item.logoBgInput + ';"></div>' +
' </div>'
}
}
}() +
'</li>'
}
@ -939,7 +947,7 @@ layui.define(['view', 'theme', 'common'], function (exports) {
MSG: 'NOTICE_MSG',
tokenId: userInfo.tokenId
})
let sse = new Sse(sseMsg, 30000);
let sse = new Sse(sseMsg, 0);
sse.on((data) => {
let msg
if (typeof data == 'string') {

View File

@ -1304,6 +1304,21 @@ ul.navbarSearchResult::-webkit-scrollbar-track {
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, .15);
}
.layadmin-setTheme-popmenu {
position: absolute;
left: 11px;
top: 20px;
width: 35px;
height: 50%;
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, .15);
}
.layadmin-setTheme-side:has(.layadmin-setTheme-popmenu) {
width: 10px;
}
.layadmin-form-right {
text-align: right;
}
@ -1635,6 +1650,8 @@ ul.navbarSearchResult::-webkit-scrollbar-track {
.kdayun-app-layout-left .layui-header .layui-layout-right .layui-nav-child {
left: auto;
right: 0;
max-width: 500px;
overflow-y: auto;
}
.kdayun-app-layout-left .layui-header .layui-nav .layui-nav-child li.layui-this a,
@ -2366,20 +2383,6 @@ CORE STYLES BELOW - NO TOUCHY
animation: fade-icon-close 0.5s;
}
@keyframes mobile-nav-slide-in {
0% {
left: -100%;
opacity: 0;
visibility: visible;
/*transition-timing-function: linear;*/
}
100% {
left: 0;
opacity: 1;
}
}
@keyframes mobile-nav-slide-out {
0% {
left: 0;
@ -2657,6 +2660,7 @@ CORE STYLES BELOW - NO TOUCHY
.kdayun-app-layout-left .kdayun-menu-item a cite {
padding: 0 10px;
/* font-family: 'Courier New', Courier, monospace; */
}
.kdayun-app-layout-left.layadmin-side-shrink .kdayun-menu {
@ -2676,6 +2680,7 @@ CORE STYLES BELOW - NO TOUCHY
display: none;
padding: 8px 0;
width: 200px;
/* font-family: 'Courier New', Courier, monospace; */
}
.kdayun-app-layout-left .layui-layout-left,
@ -2713,6 +2718,7 @@ CORE STYLES BELOW - NO TOUCHY
background-color: var(--kd-color);
border-radius: 4px;
filter: alpha(opacity=10);
font-weight: 800;
/* border: 1px darkcyan solid; */
}
@ -2728,7 +2734,7 @@ CORE STYLES BELOW - NO TOUCHY
display: table-cell !important;
line-height: 18px;
padding: 0 !important;
font-size: 10px;
font-size: 12px;
font-style: normal;
}
@ -2739,3 +2745,156 @@ CORE STYLES BELOW - NO TOUCHY
.kdayun-app-layout-left.layadmin-side-shrink .layui-logo {
padding: 0;
}
/*弹出的菜单*/
.kdayun-app-layout-left .kdayun-popmenu-wrapper {
background-color: transparent;
position: fixed;
display: none;
left: 0px;
}
/* .kdayun-app-layout-left.kdayun-pop-menu .kdayun-menu,
.kdayun-app-layout-left.kdayun-pop-menu .kdayun-menu .layui-side-menu,
.kdayun-app-layout-left.kdayun-pop-menu .kdayun-menu .layui-logo,
.kdayun-app-layout-left.kdayun-pop-menu .kdayun-menu .navbar-side-search {
width: 60px;
text-align: center;
}
.kdayun-app-layout-left.kdayun-pop-menu .kdayun-menu .layui-layout-left,
.kdayun-app-layout-left.kdayun-pop-menu .kdayun-menu .layadmin-pagetabs,
.kdayun-app-layout-left.kdayun-pop-menu .kdayun-menu .kdayun-pagetab-body,
.kdayun-app-layout-left.kdayun-pop-menu .kdayun-menu .layui-footer {
left: 60px;
} */
.kdayun-app-layout-left .kdayun-popmenu {
display: flex;
flex-direction: row;
background-color: #000000e3;
padding: 10px;
border-radius: 5px;
margin-left: 12px;
box-shadow: 2px 2px 5px rgba(0, 0, 0, .2);
overflow-y: auto;
}
.kdayun-app-layout-left .kdayun-popmenu-arrow {
top: 50%;
left: -2px;
margin-bottom: 3px;
border-right-color: #ebeef5;
border-left-width: 0;
filter: drop-shadow(0 2px 12px rgba(0, 0, 0, .03));
-moz-transform: rotate(270deg);
-webkit-transform: rotate(270deg);
-o-transform: rotate(270deg);
transform: rotate(270deg);
}
.kdayun-app-layout-left .kdayun-popmenu-arrow,
.kdayun-app-layout-left .kdayun-popmenu-arrow:after {
position: absolute;
display: block;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
}
.kdayun-app-layout-left .kdayun-popmenu-arrow:after {
top: 1px;
margin-left: -6px;
border-top-width: 0;
border-bottom-color: #fff;
content: " ";
border-width: 6px;
}
.kdayun-app-layout-left .kdayun-popmenu-open {
display: flex
}
.kdayun-app-layout-left .kdayun-popmenu-ul {
padding: 0px 10px
}
.kdayun-app-layout-left .kdayun-popmenu-ul li {
list-style-type: none;
border-radius: 4px;
}
.kdayun-app-layout-left .kdayun-popmenu-ul li a {
padding: 0px 10px !important;
line-height: unset !important;
text-align: center;
/* font-family: 'Courier New', Courier, monospace; */
}
.kdayun-app-layout-left .kdayun-popmenu-ul li:first-child {
font-weight: bold;
border-bottom: 1px solid #fff
}
.kdayun-app-layout-left .kdayun-popmenu-ul li:first-child a {
font-size: 15px;
text-decoration: none;
border-bottom: 1px solid #ddd
}
.kdayun-app-layout-left.layadmin-side-shrink .kdayun-popmenu-search {
display: flex;
justify-content: center;
align-items: center;
}
.kdayun-app-layout-left.layadmin-side-shrink .kdayun-popmenu-search i#navbarSearchIcon {
display: block;
position: initial;
}
.kdayun-app-layout-left.layadmin-side-shrink .kdayun-popmenu-search .kdayun-popmenu-wrapper.kdayun-popmenu-open #navbarSearchValue {
display: block;
border: none;
left: 7px;
width: 220px;
box-shadow: 2px 2px 5px rgba(0, 0, 0, .2);
}
.kdayun-app-layout-left.layadmin-side-shrink .kdayun-popmenu-search .kdayun-search-result {
box-shadow: 2px 2px 5px rgba(0, 0, 0, .2);
border-radius: 4px;
}
/* 重置悬浮菜单框架 */
.kdayun-app-layout-left.layadmin-side-shrink li.kdayun-menu-item .kdayun-popmenu-ul li:first-child a:hover {
background-color: transparent !important;
}
.kdayun-app-layout-left.kdayun-suspension .kdayun-menu {
width: 180px;
}
.kdayun-app-layout-left.kdayun-suspension.layadmin-side-shrink .kdayun-menu {
width: 60px;
}
.kdayun-app-layout-left.kdayun-suspension .layui-layout-left,
.kdayun-app-layout-left.kdayun-suspension .layadmin-pagetabs,
.kdayun-app-layout-left.kdayun-suspension .kdayun-pagetab-body,
.kdayun-app-layout-left.kdayun-suspension .layui-footer {
left: 180px !important;
}
.kdayun-app-layout-left.kdayun-suspension.layadmin-side-shrink .layadmin-pagetabs,
.kdayun-app-layout-left.kdayun-suspension.layadmin-side-shrink .kdayun-header .kdayun-header-left-tools,
.kdayun-app-layout-left.kdayun-suspension.layadmin-side-shrink .kdayun-pagetab-body {
left: 60px !important;
}

View File

@ -5,6 +5,11 @@
<#include "base/pageheader.ftl" />
<link type="text/css" rel="stylesheet" href="${request.contextPath}<@jstime url='/static/libs/gridstack/css/gridstack.css'> </@jstime>" />
<link rel="stylesheet" href="${request.contextPath}<@jstime url='/static/libs/formdesign/style.css'> </@jstime>">
<link rel="stylesheet" href="${request.contextPath}<@jstime url='/static/libs/formdesign/css/design.css'> </@jstime>">
<link rel="stylesheet" href="${request.contextPath}<@jstime url='/static/libs/formdesign/css/bigscreenTheme/theme.css'> </@jstime>">
<link rel="stylesheet" href="${request.contextPath}<@jstime url='/static/libs/formdesign/css/font-awesome/css/font-awesome.css'> </@jstime>" media="all" />
<link rel="stylesheet" href="${request.contextPath}<@jstime url='/static/libs/formdesign/css/iconfont/iconfont.css'> </@jstime>">
<style type="text/css">
body {
padding-bottom: 0px;
@ -55,10 +60,22 @@
</div>
<#include "base/pagefoot.ftl" />
<script type="text/javascript" src="${request.contextPath}<@jstime url='/static/libs/formdesign/libs/jquery.min.js'> </@jstime>"></script>
<script type="text/javascript" src="${request.contextPath}<@jstime url='/static/libs/formdesign/libs/layui/layui.js'> </@jstime>"></script>
<script type="text/javascript" src="${request.contextPath}<@jstime url='/static/libs/formdesign/libs/lodash.min.js'> </@jstime>"></script>
<script type="text/javascript" src="${request.contextPath}<@jstime url='/static/libs/formdesign/libs/vue.min.js'> </@jstime>"></script>
<script type="text/javascript" src="${request.contextPath}<@jstime url='/static/libs/formdesign/libs/ztree/js/jquery.ztree.all.min.js'> </@jstime>"></script>
<script type="text/javascript" src="${request.contextPath}<@jstime url='/static/libs/formdesign/libs/ztree/js/jquery.ztree.exhide.min.js'> </@jstime>"></script>
<script type="text/javascript" src="${request.contextPath}<@jstime url='/static/libs/ajaxhook.min.js'> </@jstime>"></script>
<script type="text/javascript" src="${request.contextPath}<@jstime url='/static/libs/token.js'> </@jstime>"></script>
<script type="text/javascript" src="${request.contextPath}/static/libs/gridstack/js/jquery-ui.min.js"></script>
<script type="text/javascript" src="${request.contextPath}/static/libs/gridstack/js/lodash.min.js"></script>
<script type="text/javascript" src="${request.contextPath}/static/libs/gridstack/js/gridstack.js"></script>
<script type="text/javascript" src="${request.contextPath}/static/libs/gridstack/js/gridstack.jQueryUI.js"></script>
<script>
layui.config({
base: '${request.contextPath}/static/framework/'
@ -66,8 +83,8 @@
, contentPath: '${request.contextPath}'
});
</script>
<script type="text/javascript"
src="${request.contextPath}<@jstime url='/static/modules/manager/corehomepage/homepage.js'> </@jstime>"></script>
<script type="text/javascript" src="${request.contextPath}<@jstime url='/static/modules/manager/corehomepage/homepage.js'> </@jstime>"></script>
<script type="text/javascript" src="${request.contextPath}<@jstime url='/static/libs/formdesign/preview.js'> </@jstime>"></script>
</body>
</html>

View File

@ -108,6 +108,8 @@
<i class="layui-icon layui-icon-add-circle-fine"></i>添加人员角色</button>
<button class="layui-btn layui-btn-sm" id="btndel">
<i class="layui-icon layui-icon-delete"></i>移除人员角色</button>
<button class="layui-btn layui-btn-sm" id="btnCopyto">
<i class="fa fa-copy" style="margin-right: 3px;"></i>人员权限复制</button>
</div>
<div class="layui-inline zl-seacher-div">
<div class="layui-inline">

View File

@ -147,6 +147,9 @@
<div class="layadmin-setTheme-header" style="background-color: {{item['navBgInput']}};"></div>
{{# if(item.layout !=='top'){ }}
<div class="layadmin-setTheme-side" style="background-color: {{item['menuBgInput']}};">
{{# if(item.menuType =='true'|| item.layout=='pop' ){ }}
<div class="layadmin-setTheme-popmenu" style="background-color: {{item['menuBgInput']}};"></div>
{{# }}}
<div class="layadmin-setTheme-logo" style="background-color: {{item['logoBgInput']}};"></div>
</div>
{{# }}}
@ -177,7 +180,7 @@
</div>
<fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
<legend>风格、色调、布局</legend>
<legend>风格、色调、布局、菜单类型</legend>
</fieldset>
<div class="layui-form-item style layui-hide">
<label class="layui-form-label">主题风格</label>
@ -304,6 +307,16 @@
<div class="layui-form-item">
<label class="layui-form-label">菜单</label>
<div class="layui-input-block"></div>
<#-- Tanxy添加 -->
<#-- <div class="layui-input-block" style="overflow: hidden;">
<label class="layui-form-label layui-form-label-child">子级菜单悬浮</label>
<div class="layui-input-block layui-input-block-child">
<div class="layui-input-block-child">
<input class="layui-hide" type="text" name="menuType" id="menuTypeInput" >
<input type="checkbox" name="menuTypeSwitch" lay-skin="switch" lay-filter="switchTest" lay-text="是|否">
</div>
</div>
</div> -->
<div class="layui-input-block">
<label class="layui-form-label layui-form-label-child">搜索框背景</label>
<div class="layui-input-block layui-input-block-child">

View File

@ -23,7 +23,7 @@
<!-- jdk版本 -->
<jdk.version>1.8</jdk.version>
<!-- 平台版本 -->
<base.version>5.0.233</base.version>
<base.version>5.0.234</base.version>
<!-- Spring 版本号 -->
<spring.version>5.1.2.RELEASE</spring.version>