Compare commits
2 Commits
60410c3595
...
bf3cd0b895
Author | SHA1 | Date |
---|---|---|
关凯 | bf3cd0b895 | |
关凯 | 03c5d05c59 |
|
@ -88,6 +88,11 @@
|
||||||
<artifactId>kdayun-demo</artifactId>
|
<artifactId>kdayun-demo</artifactId>
|
||||||
<version>1.0.1</version>
|
<version>1.0.1</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.kdayun</groupId>
|
||||||
|
<artifactId>kdayun-api</artifactId>
|
||||||
|
<version>1.0.2</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<build>
|
<build>
|
||||||
<defaultGoal>compile</defaultGoal>
|
<defaultGoal>compile</defaultGoal>
|
||||||
|
|
|
@ -5,5 +5,7 @@ mybatis:
|
||||||
type-handlers-package: com.kdayun.z1.core.mybatis.typehandle
|
type-handlers-package: com.kdayun.z1.core.mybatis.typehandle
|
||||||
configuration:
|
configuration:
|
||||||
jdbc-type-for-null: 'null'
|
jdbc-type-for-null: 'null'
|
||||||
|
# mybatis返回的map内的key全部转化成大写 如果使用了PostgreSql 需要开启这个选项. 否则返回的map 全部会转成小写导致无法显示数据
|
||||||
|
map-upper: false
|
||||||
|
|
||||||
|
|
|
@ -275,5 +275,5 @@
|
||||||
"explain": "nvl表达式,返回第一个不为空的值。示例:cxt.nvl(null,22) 返回22"
|
"explain": "nvl表达式,返回第一个不为空的值。示例:cxt.nvl(null,22) 返回22"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
}
|
||||||
]
|
]
|
|
@ -36,7 +36,6 @@ layui.define(function (exports) {
|
||||||
*/
|
*/
|
||||||
throwError: function (msg) {
|
throwError: function (msg) {
|
||||||
throw new Error(msg);
|
throw new Error(msg);
|
||||||
return;
|
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* 弹出一个错误提示
|
* 弹出一个错误提示
|
||||||
|
@ -139,6 +138,80 @@ layui.define(function (exports) {
|
||||||
$('.layui-icon-next').hide();
|
$('.layui-icon-next').hide();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* 打开tab标签页
|
||||||
|
* @param {*} url 页签的URL
|
||||||
|
* @param {*} text 页签的标题
|
||||||
|
* @param {*} resid 资源id
|
||||||
|
* @param {*} param 传递的参数
|
||||||
|
* @param {*} callback 完成回调
|
||||||
|
*/
|
||||||
|
openSmallPage: function (url, text, resid, param, callback) {
|
||||||
|
//遍历页签选项卡
|
||||||
|
var matchTo, tabs = $('.layadmin-tabsbody-item>iframe'),
|
||||||
|
path = url.replace(/(^http(s*):)|(\?[\s\S]*$)/g, ''),
|
||||||
|
tempresid = resid ? resid : url;
|
||||||
|
if (url.indexOf('isnewtab=1') > -1) {
|
||||||
|
window.open(url, "_blank");
|
||||||
|
callback && callback();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
url = common.setUrlParamObj(url, param, /tokenId/)
|
||||||
|
if (!common.isEmpty(resid)) {
|
||||||
|
url = common.setUrlParamObj(url, { resId: resid }, /tokenId/)
|
||||||
|
}
|
||||||
|
|
||||||
|
tabs.each(function (index) {
|
||||||
|
let iframe = $(this),
|
||||||
|
menuid = iframe.attr('menuid');
|
||||||
|
if (menuid === tempresid) {
|
||||||
|
matchTo = true;
|
||||||
|
common.tabsPage.index = index;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
var APP_BODY = '#LAY_app_body',
|
||||||
|
text = text || '签页标题';
|
||||||
|
|
||||||
|
$('.layadmin-tabsbody-item').removeClass("layui-show")
|
||||||
|
//如果未在选项卡中匹配到,则追加选项卡
|
||||||
|
if (!matchTo) {
|
||||||
|
$(APP_BODY).append([
|
||||||
|
'<div class="layadmin-tabsbody-item layui-show">',
|
||||||
|
'<iframe src="' + url + '" frameborder="0" menuid=' + resid + ' class="layadmin-iframe" name="layadmin-iframe"></iframe>',
|
||||||
|
'</div>'
|
||||||
|
].join(''));
|
||||||
|
common.tabsPage.index = tabs.length;
|
||||||
|
$(".kdayun-small-title-t").html(text)
|
||||||
|
common.setPrevAndNext();
|
||||||
|
$('.layadmin-tabsbody-shade').show();
|
||||||
|
}
|
||||||
|
|
||||||
|
let $iframe
|
||||||
|
if (path.indexOf('/coremodelshow') != -1 && resid) {
|
||||||
|
$iframe = $(APP_BODY).find('iframe[menuid="' + resid + '"]');
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$iframe = $(APP_BODY).find('iframe[src="' + url + '"]');
|
||||||
|
}
|
||||||
|
$iframe && !$iframe.attr('loaded') && $iframe.load(function () {
|
||||||
|
if (url.indexOf('http:') != -1 || url.indexOf('https:') != -1 || url.indexOf('/coremodelshow') == -1) {
|
||||||
|
$('.layadmin-tabsbody-shade').fadeOut('600');
|
||||||
|
}
|
||||||
|
$iframe.attr('loaded', 'true')
|
||||||
|
});
|
||||||
|
$iframe.parent().addClass("layui-show")
|
||||||
|
$(".kdayun-small-title-t").html(text)
|
||||||
|
callback && callback();
|
||||||
|
|
||||||
|
//执行 {setter.MOD_NAME}.tabsPage 下的事件
|
||||||
|
layui.event.call(this, setter.MOD_NAME, 'tabsPage({*})', {
|
||||||
|
url: tempresid,
|
||||||
|
text: text
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 打开tab标签页
|
* 打开tab标签页
|
||||||
* @param {*} url 页签的URL
|
* @param {*} url 页签的URL
|
||||||
|
@ -337,8 +410,56 @@ layui.define(function (exports) {
|
||||||
}
|
}
|
||||||
return message.broadcast(msgobj);
|
return message.broadcast(msgobj);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//页面服务
|
||||||
|
let PageService = {
|
||||||
|
doOpen: function (type, typeValue, pageCoinfg = {}, param = {}) {
|
||||||
|
let url, urlParam;
|
||||||
|
if (type == 'menuId') {
|
||||||
|
url = "/manager/coremodeldesign/queryDetailPageIdByMenuId";
|
||||||
|
urlParam = { menuId: typeValue };
|
||||||
|
} else {
|
||||||
|
url = "/manager/coremodeldesign/queryDetailPageIdByMenuCode";
|
||||||
|
urlParam = { menuCode: typeValue };
|
||||||
|
}
|
||||||
|
//得到菜单的资源信息
|
||||||
|
$.get(layui.cache['contentPath'] + url, urlParam,
|
||||||
|
function (res) {
|
||||||
|
res = JSON.parse(res)
|
||||||
|
if (res.state == 'OK') {
|
||||||
|
let pageId = 'a' + new Date().getTime(),
|
||||||
|
pageParamId = '&__pageId=' + pageId,
|
||||||
|
ret = res.obj
|
||||||
|
param = $.extend(param, ret);
|
||||||
|
param['__pageId'] = pageId;
|
||||||
|
let url = `${layui.cache['contentPath']}/manager/coremodelshow/?${type}=${typeValue}${pageParamId}`;
|
||||||
|
for (key in param) {
|
||||||
|
param[key] && (url += `&${key}=${param[key]}`)
|
||||||
|
}
|
||||||
|
pageCoinfg.area = pageCoinfg.area || ['70%', '70%']
|
||||||
|
pageCoinfg.content = url;
|
||||||
|
pageCoinfg.title = ret.title;
|
||||||
|
pageCoinfg.id = pageId
|
||||||
|
pageCoinfg.zIndex = new Date().getTime()
|
||||||
|
common.openLayerPage(pageCoinfg, param);
|
||||||
|
} else {
|
||||||
|
common.msgError(res.msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
},
|
||||||
|
openDetailPageByMenuId: function (menuId, pageCoinfg, param = {}) {
|
||||||
|
PageService.doOpen('menuId', menuId, pageCoinfg, param);
|
||||||
|
},
|
||||||
|
openDetailPageByMenuCode: function (menuCode, pageCoinfg, param = {}) {
|
||||||
|
PageService.doOpen('menuCode', menuCode, pageCoinfg, param);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
window['kdayun'] = window['kdayun'] || {}
|
||||||
|
window['kdayun']['PageService'] = PageService;
|
||||||
|
|
||||||
//对外暴露的接口
|
//对外暴露的接口
|
||||||
exports('common', common);
|
exports('common', common);
|
||||||
});
|
});
|
|
@ -132,14 +132,14 @@ layui.define([], function (exports) {
|
||||||
* @param {*} msg
|
* @param {*} msg
|
||||||
*/
|
*/
|
||||||
Messenger.prototype.broadcast = function (msg) {
|
Messenger.prototype.broadcast = function (msg) {
|
||||||
let getFrames=function(win){
|
let getFrames = function (win) {
|
||||||
if(!win){return []}
|
if (!win) { return [] }
|
||||||
var ret=[]
|
var ret = []
|
||||||
if(win.frames && win.frames.length>0){
|
if (win.frames && win.frames.length > 0) {
|
||||||
for (let i = 0; i < win.frames.length; i++) {
|
for (let i = 0; i < win.frames.length; i++) {
|
||||||
const fra = win.frames[i];
|
const fra = win.frames[i];
|
||||||
ret.push(fra);
|
ret.push(fra);
|
||||||
ret=ret.concat(getFrames(fra));
|
ret = ret.concat(getFrames(fra));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -148,7 +148,7 @@ layui.define([], function (exports) {
|
||||||
this.targets = {};
|
this.targets = {};
|
||||||
this.targets['top'] = new Target(top.window, 'top', this.prefix);
|
this.targets['top'] = new Target(top.window, 'top', this.prefix);
|
||||||
for (let i = 0; i < iframes.length; i++) {
|
for (let i = 0; i < iframes.length; i++) {
|
||||||
this.addTarget(iframes[i], iframes[i].name || this.generalGUID() );
|
this.addTarget(iframes[i], this.generalGUID());
|
||||||
}
|
}
|
||||||
let targets = this.targets;
|
let targets = this.targets;
|
||||||
for (let tar in targets) {
|
for (let tar in targets) {
|
||||||
|
@ -207,7 +207,7 @@ layui.define([], function (exports) {
|
||||||
* @param msg 消息值,常量
|
* @param msg 消息值,常量
|
||||||
* @param callback 消息处理回调
|
* @param callback 消息处理回调
|
||||||
*/
|
*/
|
||||||
Messenger.prototype.on = function ( msg, callback) {
|
Messenger.prototype.on = function (msg, callback) {
|
||||||
window.addEventListener('message', function (event) {
|
window.addEventListener('message', function (event) {
|
||||||
if (event.data) {
|
if (event.data) {
|
||||||
let d = JSON.parse(event.data);
|
let d = JSON.parse(event.data);
|
||||||
|
@ -236,5 +236,316 @@ layui.define([], function (exports) {
|
||||||
};
|
};
|
||||||
return Messenger;
|
return Messenger;
|
||||||
})();
|
})();
|
||||||
|
/**
|
||||||
|
* SSE类
|
||||||
|
*/
|
||||||
|
class Sse {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param msgId 服务端消息唯一id
|
||||||
|
* @param timeOut [可选参数] 消息的监听停留时间单位秒; 默认: 300秒
|
||||||
|
*/
|
||||||
|
constructor(msgId, timeOut) {
|
||||||
|
this.msgId = msgId;
|
||||||
|
this.timeOut = timeOut;
|
||||||
|
}
|
||||||
|
init() {
|
||||||
|
this.source = null;
|
||||||
|
if (window.EventSource) {
|
||||||
|
this.source = new EventSource(`${layui.cache['contentPath']}/core/sse/connect/${this.msgId}/${this.timeOut}`);
|
||||||
|
this.source.addEventListener('open', (e) => {
|
||||||
|
|
||||||
|
}, false);
|
||||||
|
this.source.addEventListener('message', (e) => {
|
||||||
|
let data = Base64.base64decode(e.data);
|
||||||
|
this.callback && this.callback(data);
|
||||||
|
});
|
||||||
|
this.source.addEventListener('error', (e) => {
|
||||||
|
if (e.readyState === EventSource.CLOSED) {
|
||||||
|
} else {
|
||||||
|
console.error(e);
|
||||||
|
}
|
||||||
|
}, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
on(callback) {
|
||||||
|
this.init();
|
||||||
|
this.callback = callback;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发送服务端消息
|
||||||
|
* @param message 消息内容
|
||||||
|
*/
|
||||||
|
send(message) {
|
||||||
|
Sse.sendTo(this.msgId, message)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 给指定的msgId 发送服务端消息
|
||||||
|
* @param msgId 服务端消息id
|
||||||
|
* @param message 消息内容
|
||||||
|
*/
|
||||||
|
sendTo(msgId, message) {
|
||||||
|
if (!message) { return }
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: `${layui.cache['contentPath']}/core/sse/push_one/${msgId}`,
|
||||||
|
data: Base64.base64encode(message),
|
||||||
|
success: (ret) => {
|
||||||
|
if (ret.state == RetState.ERROR) {
|
||||||
|
console.error(ret.msg);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: (jqXHR, textStatus, errorThrown) => {
|
||||||
|
console.error("error:", textStatus, errorThrown);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 关闭消息监听
|
||||||
|
*/
|
||||||
|
close() {
|
||||||
|
this.source.close();
|
||||||
|
const httpRequest = new XMLHttpRequest();
|
||||||
|
httpRequest.open('GET', `${layui.cache['contentPath']}/core/sse/close/${this.msgId}`, true);
|
||||||
|
httpRequest.send();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
|
||||||
|
const base64DecodeChars = [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1]
|
||||||
|
const keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
|
||||||
|
/**
|
||||||
|
* base64的编码类
|
||||||
|
* 用于base64的编码/解码
|
||||||
|
*/
|
||||||
|
class Base64 {
|
||||||
|
/**
|
||||||
|
* base64编码
|
||||||
|
* @param str 需要编码的字符串
|
||||||
|
* @returns 返回编码后的base64字符串
|
||||||
|
*/
|
||||||
|
static base64encode(str) {
|
||||||
|
let out, i, len;
|
||||||
|
let c1, c2, c3;
|
||||||
|
str = Base64.utf16to8(str);
|
||||||
|
len = str.length;
|
||||||
|
i = 0;
|
||||||
|
out = "";
|
||||||
|
while (i < len) {
|
||||||
|
c1 = str.charCodeAt(i++) & 0xff;
|
||||||
|
if (i == len) {
|
||||||
|
out += base64EncodeChars.charAt(c1 >> 2);
|
||||||
|
out += base64EncodeChars.charAt((c1 & 0x3) << 4);
|
||||||
|
out += "==";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
c2 = str.charCodeAt(i++);
|
||||||
|
if (i == len) {
|
||||||
|
out += base64EncodeChars.charAt(c1 >> 2);
|
||||||
|
out += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4));
|
||||||
|
out += base64EncodeChars.charAt((c2 & 0xF) << 2);
|
||||||
|
out += "=";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
c3 = str.charCodeAt(i++);
|
||||||
|
out += base64EncodeChars.charAt(c1 >> 2);
|
||||||
|
out += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4));
|
||||||
|
out += base64EncodeChars.charAt(((c2 & 0xF) << 2) | ((c3 & 0xC0) >> 6));
|
||||||
|
out += base64EncodeChars.charAt(c3 & 0x3F);
|
||||||
|
}
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* base64解码
|
||||||
|
* @param base64Str base64字符串
|
||||||
|
* @returns 返回解码后的字符串
|
||||||
|
*/
|
||||||
|
static base64decode(base64Str) {
|
||||||
|
let c1, c2, c3, c4;
|
||||||
|
let i, len, out;
|
||||||
|
// base64Str = Base64.utf8to16(base64Str);
|
||||||
|
len = base64Str.length;
|
||||||
|
i = 0;
|
||||||
|
out = "";
|
||||||
|
while (i < len) {
|
||||||
|
/* c1 */
|
||||||
|
do {
|
||||||
|
c1 = base64DecodeChars[base64Str.charCodeAt(i++) & 0xff];
|
||||||
|
}
|
||||||
|
while (i < len && c1 == -1);
|
||||||
|
if (c1 == -1)
|
||||||
|
break;
|
||||||
|
/* c2 */
|
||||||
|
do {
|
||||||
|
c2 = base64DecodeChars[base64Str.charCodeAt(i++) & 0xff];
|
||||||
|
}
|
||||||
|
while (i < len && c2 == -1);
|
||||||
|
if (c2 == -1)
|
||||||
|
break;
|
||||||
|
out += String.fromCharCode((c1 << 2) | ((c2 & 0x30) >> 4));
|
||||||
|
/* c3 */
|
||||||
|
do {
|
||||||
|
c3 = base64Str.charCodeAt(i++) & 0xff;
|
||||||
|
if (c3 == 61)
|
||||||
|
return Base64.utf8to16(out);
|
||||||
|
c3 = base64DecodeChars[c3];
|
||||||
|
}
|
||||||
|
while (i < len && c3 == -1);
|
||||||
|
if (c3 == -1)
|
||||||
|
break;
|
||||||
|
out += String.fromCharCode(((c2 & 0XF) << 4) | ((c3 & 0x3C) >> 2));
|
||||||
|
/* c4 */
|
||||||
|
do {
|
||||||
|
c4 = base64Str.charCodeAt(i++) & 0xff;
|
||||||
|
if (c4 == 61)
|
||||||
|
return Base64.utf8to16(out);
|
||||||
|
c4 = base64DecodeChars[c4];
|
||||||
|
}
|
||||||
|
while (i < len && c4 == -1);
|
||||||
|
if (c4 == -1)
|
||||||
|
break;
|
||||||
|
out += String.fromCharCode(((c3 & 0x03) << 6) | c4);
|
||||||
|
}
|
||||||
|
return Base64.utf8to16(out);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 将Ansi编码的字符串进行Base64编码
|
||||||
|
* @param input 输入的字符串
|
||||||
|
* @returns 返回加密的base64字符串
|
||||||
|
*/
|
||||||
|
static encode64(input) {
|
||||||
|
let output = "";
|
||||||
|
let chr1, chr2, chr3;
|
||||||
|
let enc1, enc2, enc3, enc4;
|
||||||
|
let i = 0;
|
||||||
|
do {
|
||||||
|
chr1 = input.charCodeAt(i++);
|
||||||
|
chr2 = input.charCodeAt(i++);
|
||||||
|
chr3 = input.charCodeAt(i++);
|
||||||
|
enc1 = chr1 >> 2;
|
||||||
|
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
|
||||||
|
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
|
||||||
|
enc4 = chr3 & 63;
|
||||||
|
if (isNaN(chr2)) {
|
||||||
|
enc3 = enc4 = 64;
|
||||||
|
} else if (isNaN(chr3)) {
|
||||||
|
enc4 = 64;
|
||||||
|
}
|
||||||
|
output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2)
|
||||||
|
+ keyStr.charAt(enc3) + keyStr.charAt(enc4);
|
||||||
|
chr1 = chr2 = chr3 = "";
|
||||||
|
enc1 = enc2 = enc3 = enc4 = "";
|
||||||
|
} while (i < input.length);
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 将Base64编码字符串转换成Ansi编码的字符串
|
||||||
|
* @param input 输入的字符串
|
||||||
|
* @returns 返回明文字符串
|
||||||
|
*/
|
||||||
|
static decode64(input) {
|
||||||
|
let output = "";
|
||||||
|
let chr1, chr2, chr3;
|
||||||
|
let enc1, enc2, enc3, enc4;
|
||||||
|
let i = 0;
|
||||||
|
|
||||||
|
|
||||||
|
if (input.length % 4 != 0) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
let base64test = /[^A-Za-z0-9\+\/\=]/g;
|
||||||
|
if (base64test.exec(input)) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
do {
|
||||||
|
enc1 = keyStr.indexOf(input.charAt(i++));
|
||||||
|
enc2 = keyStr.indexOf(input.charAt(i++));
|
||||||
|
enc3 = keyStr.indexOf(input.charAt(i++));
|
||||||
|
enc4 = keyStr.indexOf(input.charAt(i++));
|
||||||
|
chr1 = (enc1 << 2) | (enc2 >> 4);
|
||||||
|
chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
|
||||||
|
chr3 = ((enc3 & 3) << 6) | enc4;
|
||||||
|
|
||||||
|
|
||||||
|
output = output + String.fromCharCode(chr1);
|
||||||
|
if (enc3 != 64) {
|
||||||
|
output += String.fromCharCode(chr2);
|
||||||
|
}
|
||||||
|
if (enc4 != 64) {
|
||||||
|
output += String.fromCharCode(chr3);
|
||||||
|
}
|
||||||
|
chr1 = chr2 = chr3 = "";
|
||||||
|
enc1 = enc2 = enc3 = enc4 = "";
|
||||||
|
} while (i < input.length);
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 编码utf16转utf8
|
||||||
|
* @param str 需要转化的字符串
|
||||||
|
* @returns 返回转化后的utf8字符串
|
||||||
|
*/
|
||||||
|
static utf16to8(str) {
|
||||||
|
let out, i, len, c;
|
||||||
|
|
||||||
|
|
||||||
|
out = "";
|
||||||
|
len = str.length;
|
||||||
|
for (i = 0; i < len; i++) {
|
||||||
|
c = str.charCodeAt(i);
|
||||||
|
if ((c >= 0x0001) && (c <= 0x007F)) {
|
||||||
|
out += str.charAt(i);
|
||||||
|
} else if (c > 0x07FF) {
|
||||||
|
out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));
|
||||||
|
out += String.fromCharCode(0x80 | ((c >> 6) & 0x3F));
|
||||||
|
out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
|
||||||
|
} else {
|
||||||
|
out += String.fromCharCode(0xC0 | ((c >> 6) & 0x1F));
|
||||||
|
out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 编码utf8转utf16
|
||||||
|
* @param str 需要转化的字符串
|
||||||
|
* @returns 返回转化后的utf16字符串
|
||||||
|
*/
|
||||||
|
static utf8to16(str) {
|
||||||
|
let out, i, len, c;
|
||||||
|
let char2, char3;
|
||||||
|
out = "";
|
||||||
|
len = str.length;
|
||||||
|
i = 0;
|
||||||
|
while (i < len) {
|
||||||
|
c = str.charCodeAt(i++);
|
||||||
|
switch (c >> 4) {
|
||||||
|
case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:
|
||||||
|
// 0xxxxxxx
|
||||||
|
out += str.charAt(i - 1);
|
||||||
|
break;
|
||||||
|
case 12: case 13:
|
||||||
|
// 110x xxxx 10xx xxxx
|
||||||
|
char2 = str.charCodeAt(i++);
|
||||||
|
out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F));
|
||||||
|
break;
|
||||||
|
case 14:
|
||||||
|
// 1110 xxxx 10xx xxxx 10xx xxxx
|
||||||
|
char2 = str.charCodeAt(i++);
|
||||||
|
char3 = str.charCodeAt(i++);
|
||||||
|
out += String.fromCharCode(((c & 0x0F) << 12) |
|
||||||
|
((char2 & 0x3F) << 6) |
|
||||||
|
((char3 & 0x3F) << 0));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
window.Sse = Sse;
|
||||||
|
|
||||||
|
exports('Sse', window.Sse);
|
||||||
exports('messenger', window.Messenger);
|
exports('messenger', window.Messenger);
|
||||||
});
|
});
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
layui.define(['laytpl', 'element', 'layer', 'zlPinYin', 'common'], function (exports) {
|
layui.define(['laytpl', 'element', 'layer', 'zlPinYin', 'common'], function (exports) {
|
||||||
let $ = layui.jquery,
|
let $ = layui.jquery,
|
||||||
element = layui.element,
|
element = layui.element,
|
||||||
laytpl = layui.laytpl,
|
|
||||||
zlPinYin = layui.zlPinYin,
|
zlPinYin = layui.zlPinYin,
|
||||||
common = layui.common,
|
common = layui.common,
|
||||||
admin = layui.admin;
|
admin = layui.admin;
|
||||||
|
@ -476,15 +475,15 @@ layui.define(['laytpl', 'element', 'layer', 'zlPinYin', 'common'], function (exp
|
||||||
.kdayun-app-layout .layui-header a i.layui-icon,
|
.kdayun-app-layout .layui-header a i.layui-icon,
|
||||||
.kdayun-app-layout .layui-header a i.zlui-icon,
|
.kdayun-app-layout .layui-header a i.zlui-icon,
|
||||||
.kdayun-app-layout .layui-header a i.fa {
|
.kdayun-app-layout .layui-header a i.fa {
|
||||||
color:${themeObj.navIconColorInput};
|
color:${themeObj.navFontColorInput};
|
||||||
}
|
}
|
||||||
.kdayun-app-layout .layui-header a span.layui-nav-more {
|
.kdayun-app-layout .layui-header a span.layui-nav-more {
|
||||||
border-top-color:${themeObj.navIconColorInput} !important;
|
border-top-color:${themeObj.navIconColorInput} ;
|
||||||
border-bottom-color:rgba(255,0,0,0) !important;
|
border-bottom-color:rgba(255,0,0,0);
|
||||||
}
|
}
|
||||||
.kdayun-app-layout .layui-header a span.layui-nav-mored {
|
.kdayun-app-layout .layui-header a span.layui-nav-mored {
|
||||||
border-top-color:rgba(255,0,0,0) !important;
|
border-top-color:rgba(255,0,0,0) ;
|
||||||
border-bottom-color:${themeObj.navIconColorInput} !important;
|
border-bottom-color:${themeObj.navIconColorInput} ;
|
||||||
}
|
}
|
||||||
.kdayun-app-layout .layui-logo {
|
.kdayun-app-layout .layui-logo {
|
||||||
background-color:${themeObj.logoBgInput};
|
background-color:${themeObj.logoBgInput};
|
||||||
|
@ -743,7 +742,7 @@ layui.define(['laytpl', 'element', 'layer', 'zlPinYin', 'common'], function (exp
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (themeObj.layout == 'top') {
|
if (themeObj.layout == 'top' && window.screen.width > 767) {
|
||||||
let topThemeRender = new TopTheme(themeObj);
|
let topThemeRender = new TopTheme(themeObj);
|
||||||
topThemeRender.render();
|
topThemeRender.render();
|
||||||
} else {
|
} else {
|
||||||
|
@ -777,12 +776,111 @@ layui.define(['laytpl', 'element', 'layer', 'zlPinYin', 'common'], function (exp
|
||||||
ThemeRenderBase.prototype.render = function () {
|
ThemeRenderBase.prototype.render = function () {
|
||||||
let that = this;
|
let that = this;
|
||||||
that.config.$elem.empty();
|
that.config.$elem.empty();
|
||||||
|
if (that.isSmall()) {
|
||||||
|
that.renderSmallMenus();
|
||||||
|
that.renderSmallHeader()
|
||||||
|
that.renderSmallBody();
|
||||||
|
that.renderFoot();
|
||||||
|
that.initSmall();
|
||||||
|
} else {
|
||||||
that.renderHeader();
|
that.renderHeader();
|
||||||
that.renderMenus();
|
that.renderMenus();
|
||||||
that.renderBody();
|
that.renderBody();
|
||||||
that.renderFoot();
|
that.renderFoot();
|
||||||
|
}
|
||||||
element.init();
|
element.init();
|
||||||
};
|
};
|
||||||
|
ThemeRenderBase.prototype.isSmall = function () {
|
||||||
|
return window.screen.width < 767
|
||||||
|
}
|
||||||
|
ThemeRenderBase.prototype.initSmall = function () {
|
||||||
|
let startX = 0;
|
||||||
|
let endX = 0;
|
||||||
|
const touchStart = (e) => {
|
||||||
|
startX = e.touches[0].clientX;
|
||||||
|
};
|
||||||
|
const touchEnd = (e) => {
|
||||||
|
endX = e.changedTouches[0].clientX;
|
||||||
|
handleSwipe();
|
||||||
|
};
|
||||||
|
const handleSwipe = () => {
|
||||||
|
if (Math.abs(endX - startX) > 50) {
|
||||||
|
if (endX > startX) {
|
||||||
|
layui.admin.sideFlexible('spread');
|
||||||
|
} else {
|
||||||
|
layui.admin.sideFlexible();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
document.addEventListener("touchstart", touchStart, false);
|
||||||
|
document.addEventListener("touchend", touchEnd, false);
|
||||||
|
history.pushState(null, null, document.URL);
|
||||||
|
window.addEventListener('popstate', function () {
|
||||||
|
history.pushState(null, null, document.URL);
|
||||||
|
});
|
||||||
|
$(".kdayun-small-refresh").on('click', function (e) {
|
||||||
|
let iframe = $('.layadmin-tabsbody-item.layui-show iframe');
|
||||||
|
$('.layadmin-tabsbody-item.layui-show iframe')[0].contentWindow.location.reload();
|
||||||
|
$('.layadmin-tabsbody-shade').show();
|
||||||
|
iframe.one('load', function () {
|
||||||
|
$('.layadmin-tabsbody-shade').fadeOut('800');
|
||||||
|
});
|
||||||
|
})
|
||||||
|
$("#TOUX").on('click', function (e) {
|
||||||
|
let url = layui.cache['contentPath'] + '/info';
|
||||||
|
common.openSmallPage(url, '基本资料', url);
|
||||||
|
})
|
||||||
|
$(".kdayun-menu-close").on('click', function (e) {
|
||||||
|
layui.admin.sideFlexible();
|
||||||
|
});
|
||||||
|
|
||||||
|
$(".kdayun-header-role").on('click', function (e) {
|
||||||
|
let $rolediv = $(this),
|
||||||
|
$dl = $rolediv.find('dl'),
|
||||||
|
$more = $rolediv.find('.layui-nav-more');
|
||||||
|
|
||||||
|
if ($('.kdayun-header-role-dropdown').length == 0) {
|
||||||
|
$('body').append('<div class="kdayun-header-role-dropdown"></div>');
|
||||||
|
$('.kdayun-header-role-dropdown').append($dl.clone());
|
||||||
|
$dl.remove();
|
||||||
|
}
|
||||||
|
$dl = $('.kdayun-header-role-dropdown').find('dl');
|
||||||
|
|
||||||
|
$dl.find('a').on('click', function (e) {
|
||||||
|
let switchroleid = $(this).attr('roleid'),
|
||||||
|
deptid = $(this).attr('deptid') == undefined ? '' : $(this).attr('deptid')
|
||||||
|
layui.admin.switchRole(switchroleid, deptid)
|
||||||
|
$dl.removeClass('layui-show')
|
||||||
|
})
|
||||||
|
|
||||||
|
let offset = $rolediv.offset()
|
||||||
|
$dl.css({
|
||||||
|
left: offset.left,
|
||||||
|
top: offset.top + $rolediv.height(),
|
||||||
|
position: 'absolute',
|
||||||
|
zIndex: 10000,
|
||||||
|
})
|
||||||
|
|
||||||
|
if ($dl.is(":visible")) {
|
||||||
|
// $dl.css('display', 'none');
|
||||||
|
$dl.removeClass('layui-show')
|
||||||
|
} else {
|
||||||
|
// $dl.css('display', 'block');
|
||||||
|
$dl.addClass('layui-show')
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($more.hasClass('layui-nav-mored')) {
|
||||||
|
$more.removeClass('layui-nav-mored');
|
||||||
|
$dl.removeClass('layui-show')
|
||||||
|
} else {
|
||||||
|
$more.addClass('layui-nav-mored');
|
||||||
|
$dl.addClass('layui-show')
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
ThemeRenderBase.prototype.renderHeader = function () {
|
ThemeRenderBase.prototype.renderHeader = function () {
|
||||||
let that = this;
|
let that = this;
|
||||||
that.config.$headerElem = $($('#tpl-header').html());
|
that.config.$headerElem = $($('#tpl-header').html());
|
||||||
|
@ -815,6 +913,53 @@ layui.define(['laytpl', 'element', 'layer', 'zlPinYin', 'common'], function (exp
|
||||||
that.config.$menuElem = $($('#tpl-body').html())
|
that.config.$menuElem = $($('#tpl-body').html())
|
||||||
that.config.$elem.append(that.config.$menuElem);
|
that.config.$elem.append(that.config.$menuElem);
|
||||||
};
|
};
|
||||||
|
ThemeRenderBase.prototype.renderSmallMenus = function () {
|
||||||
|
let that = this;
|
||||||
|
that.config.$menuElem = $($('#tpl-left-side').html())
|
||||||
|
that.config.$elem.append(that.config.$menuElem);
|
||||||
|
that.config.$menuElem.append(`<i class="kdayun-menu-close fa fa-angle-double-left"></i>`)
|
||||||
|
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({
|
||||||
|
spreadOne: true,
|
||||||
|
elem: '#admin-navbar-menu',
|
||||||
|
cached: false,
|
||||||
|
url: layui.cache['contentPath'] + '/core/security/querymenuauth',
|
||||||
|
type: 'post'
|
||||||
|
});
|
||||||
|
menuRender.render();
|
||||||
|
};
|
||||||
|
ThemeRenderBase.prototype.renderSmallHeader = function () {
|
||||||
|
let that = this;
|
||||||
|
that.config.$headerElem = $($('#tpl-header').html());
|
||||||
|
that.config.$menuElem.children().eq(0).before(that.config.$headerElem);
|
||||||
|
that.config.$headerElem.append(`
|
||||||
|
<div class="kdayun-header-info">
|
||||||
|
<a href="javascript:;">
|
||||||
|
<img id="TOUX" src="" />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div class="kdayun-header-name-role">
|
||||||
|
<span id='OBJNAME'></span>
|
||||||
|
<div class ="kdayun-header-role">
|
||||||
|
<a href="javascript:;">
|
||||||
|
<span id='ROLENAME'></span>
|
||||||
|
<span class="layui-nav-more"></span>
|
||||||
|
</a>
|
||||||
|
<dl class="layui-nav-child" id="rolecourse">
|
||||||
|
</dl>
|
||||||
|
</div>
|
||||||
|
<span id='ORGNAME'></span>
|
||||||
|
</div>
|
||||||
|
`)
|
||||||
|
};
|
||||||
|
ThemeRenderBase.prototype.renderSmallBody = function () {
|
||||||
|
let that = this;
|
||||||
|
that.config.$menuElem = $($('#tpl-small-body').html())
|
||||||
|
that.config.$elem.append(that.config.$menuElem);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -887,6 +1032,9 @@ layui.define(['laytpl', 'element', 'layer', 'zlPinYin', 'common'], function (exp
|
||||||
spreadOne: false //设置是否只展开一个二级菜单
|
spreadOne: false //设置是否只展开一个二级菜单
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
MenuRenderBase.prototype.isSmall = function () {
|
||||||
|
return window.screen.width < 767
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* 渲染菜单
|
* 渲染菜单
|
||||||
*/
|
*/
|
||||||
|
@ -979,8 +1127,13 @@ layui.define(['laytpl', 'element', 'layer', 'zlPinYin', 'common'], function (exp
|
||||||
searchBox.find('input#navbarSearchValue').val('');
|
searchBox.find('input#navbarSearchValue').val('');
|
||||||
common.tabsPage.elem = $a;
|
common.tabsPage.elem = $a;
|
||||||
if (!common.isEmpty(href) && isOpen) {
|
if (!common.isEmpty(href) && isOpen) {
|
||||||
|
if (this.isSmall()) {
|
||||||
|
common.openSmallPage(href, text || $a.text(), resid);
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
common.openTabsPage(href, text || $a.text(), resid);
|
common.openTabsPage(href, text || $a.text(), resid);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if (!common.isEmpty(href)) {
|
if (!common.isEmpty(href)) {
|
||||||
$('.kdayun-menu-container li.layui-this').removeClass('layui-this');
|
$('.kdayun-menu-container li.layui-this').removeClass('layui-this');
|
||||||
if (parent.parents('.kdayun-menu-container')[0]) {
|
if (parent.parents('.kdayun-menu-container')[0]) {
|
||||||
|
@ -1004,8 +1157,8 @@ layui.define(['laytpl', 'element', 'layer', 'zlPinYin', 'common'], function (exp
|
||||||
let value = $(this).find('cite').html();
|
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('');
|
$(this).parent().siblings('input').val('');
|
||||||
if (!$('#admin-navbar-menu').find('a[lay-tips="' + value + '"]').parent().hasClass('kdayun-menu-item-expand')) {
|
if (!$('#admin-navbar-menu').find('a[lay-text="' + value + '"]').parent().hasClass('kdayun-menu-item-expand')) {
|
||||||
$('#admin-navbar-menu').find('a[lay-tips="' + value + '"]').click();
|
$('#admin-navbar-menu').find('a[lay-text="' + value + '"]').click();
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -1077,7 +1230,7 @@ layui.define(['laytpl', 'element', 'layer', 'zlPinYin', 'common'], function (exp
|
||||||
}
|
}
|
||||||
|
|
||||||
let layhref = (url !== undefined && url !== '' && url !== null) ? 'yh-href="' + url + '"' : '';
|
let layhref = (url !== undefined && url !== '' && url !== null) ? 'yh-href="' + url + '"' : '';
|
||||||
ulHtml += '<a href="javascript:;" ' + layhref + ' lay-text="' + item.title + '" lay-tips="' + item.title + '" lay-direction="2" resId=' + item.resid + ' >';
|
ulHtml += '<a href="javascript:;" ' + layhref + ' lay-text="' + item.title + '" ' + (!this.isSmall() ? 'lay-tips="' + item.title + '""' : '') + '" lay-direction="2" resId=' + item.resid + ' >';
|
||||||
if (item.icon != undefined && item.icon != '') {
|
if (item.icon != undefined && item.icon != '') {
|
||||||
ulHtml += '<img src="' + layui.cache['contentPath'] + item.icon + '" ' + svgOnLoad + ' style="width:16px;height:16px;vertical-align: text-bottom;">';
|
ulHtml += '<img src="' + layui.cache['contentPath'] + item.icon + '" ' + svgOnLoad + ' style="width:16px;height:16px;vertical-align: text-bottom;">';
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -91,7 +91,7 @@ layui.define(['zlContext', 'layer', 'zlConfig', 'form'],
|
||||||
{ name: '小于', field: '<' },
|
{ name: '小于', field: '<' },
|
||||||
{ name: '小于或等于', field: '<=' }
|
{ name: '小于或等于', field: '<=' }
|
||||||
]
|
]
|
||||||
var options = (settings ? JSON.parse(+ settings) : {})
|
var options = (settings ? JSON.parse(settings.replace(/'/g, '"')) : {})
|
||||||
, dataurl = options.dataurl
|
, dataurl = options.dataurl
|
||||||
, datas = typeof (options.sourcedata) == "string" ? JSON.parse(options.sourcedata || '[]') : options.sourcedata
|
, datas = typeof (options.sourcedata) == "string" ? JSON.parse(options.sourcedata || '[]') : options.sourcedata
|
||||||
, defaultOptions = {
|
, defaultOptions = {
|
||||||
|
|
|
@ -54,6 +54,30 @@
|
||||||
<div class="content unicode" style="display: block;">
|
<div class="content unicode" style="display: block;">
|
||||||
<ul class="icon_lists dib-box">
|
<ul class="icon_lists dib-box">
|
||||||
|
|
||||||
|
<li class="dib">
|
||||||
|
<span class="icon iconfont"></span>
|
||||||
|
<div class="name">chatgpt</div>
|
||||||
|
<div class="code-name">&#xe6bf;</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="dib">
|
||||||
|
<span class="icon iconfont"></span>
|
||||||
|
<div class="name">AI</div>
|
||||||
|
<div class="code-name">&#xec5f;</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="dib">
|
||||||
|
<span class="icon iconfont"></span>
|
||||||
|
<div class="name">API</div>
|
||||||
|
<div class="code-name">&#xe66d;</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="dib">
|
||||||
|
<span class="icon iconfont"></span>
|
||||||
|
<div class="name">API管理</div>
|
||||||
|
<div class="code-name">&#xe65f;</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
<li class="dib">
|
<li class="dib">
|
||||||
<span class="icon iconfont"></span>
|
<span class="icon iconfont"></span>
|
||||||
<div class="name">数据导出</div>
|
<div class="name">数据导出</div>
|
||||||
|
@ -330,9 +354,9 @@
|
||||||
<pre><code class="language-css"
|
<pre><code class="language-css"
|
||||||
>@font-face {
|
>@font-face {
|
||||||
font-family: 'iconfont';
|
font-family: 'iconfont';
|
||||||
src: url('iconfont.woff2?t=1693817483680') format('woff2'),
|
src: url('iconfont.woff2?t=1699242797963') format('woff2'),
|
||||||
url('iconfont.woff?t=1693817483680') format('woff'),
|
url('iconfont.woff?t=1699242797963') format('woff'),
|
||||||
url('iconfont.ttf?t=1693817483680') format('truetype');
|
url('iconfont.ttf?t=1699242797963') format('truetype');
|
||||||
}
|
}
|
||||||
</code></pre>
|
</code></pre>
|
||||||
<h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
|
<h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
|
||||||
|
@ -358,6 +382,42 @@
|
||||||
<div class="content font-class">
|
<div class="content font-class">
|
||||||
<ul class="icon_lists dib-box">
|
<ul class="icon_lists dib-box">
|
||||||
|
|
||||||
|
<li class="dib">
|
||||||
|
<span class="icon iconfont icon-chatgpt"></span>
|
||||||
|
<div class="name">
|
||||||
|
chatgpt
|
||||||
|
</div>
|
||||||
|
<div class="code-name">.icon-chatgpt
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="dib">
|
||||||
|
<span class="icon iconfont icon-wuguan"></span>
|
||||||
|
<div class="name">
|
||||||
|
AI
|
||||||
|
</div>
|
||||||
|
<div class="code-name">.icon-wuguan
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="dib">
|
||||||
|
<span class="icon iconfont icon-API"></span>
|
||||||
|
<div class="name">
|
||||||
|
API
|
||||||
|
</div>
|
||||||
|
<div class="code-name">.icon-API
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="dib">
|
||||||
|
<span class="icon iconfont icon-APIguanli"></span>
|
||||||
|
<div class="name">
|
||||||
|
API管理
|
||||||
|
</div>
|
||||||
|
<div class="code-name">.icon-APIguanli
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
<li class="dib">
|
<li class="dib">
|
||||||
<span class="icon iconfont icon-shujudaochu"></span>
|
<span class="icon iconfont icon-shujudaochu"></span>
|
||||||
<div class="name">
|
<div class="name">
|
||||||
|
@ -772,6 +832,38 @@
|
||||||
<div class="content symbol">
|
<div class="content symbol">
|
||||||
<ul class="icon_lists dib-box">
|
<ul class="icon_lists dib-box">
|
||||||
|
|
||||||
|
<li class="dib">
|
||||||
|
<svg class="icon svg-icon" aria-hidden="true">
|
||||||
|
<use xlink:href="#icon-chatgpt"></use>
|
||||||
|
</svg>
|
||||||
|
<div class="name">chatgpt</div>
|
||||||
|
<div class="code-name">#icon-chatgpt</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="dib">
|
||||||
|
<svg class="icon svg-icon" aria-hidden="true">
|
||||||
|
<use xlink:href="#icon-wuguan"></use>
|
||||||
|
</svg>
|
||||||
|
<div class="name">AI</div>
|
||||||
|
<div class="code-name">#icon-wuguan</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="dib">
|
||||||
|
<svg class="icon svg-icon" aria-hidden="true">
|
||||||
|
<use xlink:href="#icon-API"></use>
|
||||||
|
</svg>
|
||||||
|
<div class="name">API</div>
|
||||||
|
<div class="code-name">#icon-API</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="dib">
|
||||||
|
<svg class="icon svg-icon" aria-hidden="true">
|
||||||
|
<use xlink:href="#icon-APIguanli"></use>
|
||||||
|
</svg>
|
||||||
|
<div class="name">API管理</div>
|
||||||
|
<div class="code-name">#icon-APIguanli</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
<li class="dib">
|
<li class="dib">
|
||||||
<svg class="icon svg-icon" aria-hidden="true">
|
<svg class="icon svg-icon" aria-hidden="true">
|
||||||
<use xlink:href="#icon-shujudaochu"></use>
|
<use xlink:href="#icon-shujudaochu"></use>
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: "iconfont"; /* Project id 4067164 */
|
font-family: "iconfont"; /* Project id 4067164 */
|
||||||
src: url('iconfont.woff2?t=1693817483680') format('woff2'),
|
src: url('iconfont.woff2?t=1699242797963') format('woff2'),
|
||||||
url('iconfont.woff?t=1693817483680') format('woff'),
|
url('iconfont.woff?t=1699242797963') format('woff'),
|
||||||
url('iconfont.ttf?t=1693817483680') format('truetype');
|
url('iconfont.ttf?t=1699242797963') format('truetype');
|
||||||
}
|
}
|
||||||
|
|
||||||
.iconfont {
|
.iconfont {
|
||||||
|
@ -13,6 +13,22 @@
|
||||||
-moz-osx-font-smoothing: grayscale;
|
-moz-osx-font-smoothing: grayscale;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.icon-chatgpt:before {
|
||||||
|
content: "\e6bf";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-wuguan:before {
|
||||||
|
content: "\ec5f";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-API:before {
|
||||||
|
content: "\e66d";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-APIguanli:before {
|
||||||
|
content: "\e65f";
|
||||||
|
}
|
||||||
|
|
||||||
.icon-shujudaochu:before {
|
.icon-shujudaochu:before {
|
||||||
content: "\e695";
|
content: "\e695";
|
||||||
}
|
}
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -5,6 +5,34 @@
|
||||||
"css_prefix_text": "icon-",
|
"css_prefix_text": "icon-",
|
||||||
"description": "",
|
"description": "",
|
||||||
"glyphs": [
|
"glyphs": [
|
||||||
|
{
|
||||||
|
"icon_id": "35001563",
|
||||||
|
"name": "chatgpt",
|
||||||
|
"font_class": "chatgpt",
|
||||||
|
"unicode": "e6bf",
|
||||||
|
"unicode_decimal": 59071
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "5961321",
|
||||||
|
"name": "AI",
|
||||||
|
"font_class": "wuguan",
|
||||||
|
"unicode": "ec5f",
|
||||||
|
"unicode_decimal": 60511
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "33546560",
|
||||||
|
"name": "API",
|
||||||
|
"font_class": "API",
|
||||||
|
"unicode": "e66d",
|
||||||
|
"unicode_decimal": 58989
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "4417791",
|
||||||
|
"name": "API管理",
|
||||||
|
"font_class": "APIguanli",
|
||||||
|
"unicode": "e65f",
|
||||||
|
"unicode_decimal": 58975
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"icon_id": "22427570",
|
"icon_id": "22427570",
|
||||||
"name": "数据导出",
|
"name": "数据导出",
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
|
@ -1,3 +1,4 @@
|
||||||
|
import "yh-ai/dist/index";
|
||||||
import "yh-baidu/dist/index";
|
import "yh-baidu/dist/index";
|
||||||
import 'yh-bigscreen/dist/index';
|
import 'yh-bigscreen/dist/index';
|
||||||
import 'yh-business/dist/index';
|
import 'yh-business/dist/index';
|
||||||
|
@ -7,6 +8,7 @@ import 'yh-designer/dist/components/core/index';
|
||||||
import 'yh-designer/dist/designer/Designer';
|
import 'yh-designer/dist/designer/Designer';
|
||||||
import 'yh-designer/dist/designer/Preview';
|
import 'yh-designer/dist/designer/Preview';
|
||||||
import 'yh-designer/dist/services/index';
|
import 'yh-designer/dist/services/index';
|
||||||
|
import "yh-element/dist/index";
|
||||||
import "yh-map/dist/index";
|
import "yh-map/dist/index";
|
||||||
import "yh-moble/dist/index";
|
import "yh-moble/dist/index";
|
||||||
import 'yh-player/dist/index';
|
import 'yh-player/dist/index';
|
||||||
|
@ -15,4 +17,6 @@ import 'yh-standard/dist/extend/index';
|
||||||
import 'yh-standard/dist/form/index';
|
import 'yh-standard/dist/form/index';
|
||||||
import 'yh-standard/dist/layout/index';
|
import 'yh-standard/dist/layout/index';
|
||||||
import "yh-table/dist/index";
|
import "yh-table/dist/index";
|
||||||
|
import "yh-template/dist/index";
|
||||||
|
import "yh-vant/dist/index";
|
||||||
import "yh-wangeditor/dist/index";
|
import "yh-wangeditor/dist/index";
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
import "yh-ai/dist/index";
|
||||||
import "yh-baidu/dist/index";
|
import "yh-baidu/dist/index";
|
||||||
import 'yh-bigscreen/dist/index';
|
import 'yh-bigscreen/dist/index';
|
||||||
import 'yh-business/dist/index';
|
import 'yh-business/dist/index';
|
||||||
|
@ -5,7 +6,9 @@ import 'yh-chart/dist/index';
|
||||||
import 'yh-designer/dist/base/datasource/index';
|
import 'yh-designer/dist/base/datasource/index';
|
||||||
import 'yh-designer/dist/components/core/index';
|
import 'yh-designer/dist/components/core/index';
|
||||||
import 'yh-designer/dist/designer/Preview';
|
import 'yh-designer/dist/designer/Preview';
|
||||||
|
import 'yh-designer/dist/designer/VersionManger';
|
||||||
import 'yh-designer/dist/services/index';
|
import 'yh-designer/dist/services/index';
|
||||||
|
import "yh-element/dist/index";
|
||||||
import "yh-map/dist/index";
|
import "yh-map/dist/index";
|
||||||
import "yh-moble/dist/index";
|
import "yh-moble/dist/index";
|
||||||
import 'yh-player/dist/index';
|
import 'yh-player/dist/index';
|
||||||
|
@ -14,4 +17,5 @@ import 'yh-standard/dist/extend/index';
|
||||||
import 'yh-standard/dist/form/index';
|
import 'yh-standard/dist/form/index';
|
||||||
import 'yh-standard/dist/layout/index';
|
import 'yh-standard/dist/layout/index';
|
||||||
import "yh-table/dist/index";
|
import "yh-table/dist/index";
|
||||||
|
import "yh-vant/dist/index";
|
||||||
import "yh-wangeditor/dist/index";
|
import "yh-wangeditor/dist/index";
|
||||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -31,7 +31,7 @@
|
||||||
btn: ['确定', '取消'],
|
btn: ['确定', '取消'],
|
||||||
|
|
||||||
//五种原始层模式
|
//五种原始层模式
|
||||||
type: ['dialog', 'page', 'iframe', 'loading', 'tips'],
|
type: ['dialog', 'page', 'iframe', 'loading', 'tips', 'notice'],
|
||||||
|
|
||||||
//获取节点的style属性值
|
//获取节点的style属性值
|
||||||
getStyle: function (node, name) {
|
getStyle: function (node, name) {
|
||||||
|
@ -130,6 +130,27 @@
|
||||||
}, type ? {} : options));
|
}, type ? {} : options));
|
||||||
},
|
},
|
||||||
|
|
||||||
|
notice: function (content, options, end) {
|
||||||
|
let type = 5, rskin = ready.config.skin;
|
||||||
|
let skin = (rskin ? rskin + ' ' + rskin + '-msg' : '') || 'layui-layer-msg';
|
||||||
|
if (type) end = options;
|
||||||
|
let defalutOptions = {
|
||||||
|
type: type,
|
||||||
|
content: content,
|
||||||
|
time: 3000,
|
||||||
|
shade: false,
|
||||||
|
skin: skin,
|
||||||
|
offset: 'rt',
|
||||||
|
title: '提示',
|
||||||
|
closeBtn: false,
|
||||||
|
btn: false,
|
||||||
|
resize: false,
|
||||||
|
end: end,
|
||||||
|
zIndex: (new Date()).getTime()
|
||||||
|
}
|
||||||
|
return layer.open($.extend(defalutOptions, options));
|
||||||
|
|
||||||
|
},
|
||||||
msg: function (content, options, end) { //最常用提示层
|
msg: function (content, options, end) { //最常用提示层
|
||||||
var type = typeof options === 'function', rskin = ready.config.skin;
|
var type = typeof options === 'function', rskin = ready.config.skin;
|
||||||
var skin = (rskin ? rskin + ' ' + rskin + '-msg' : '') || 'layui-layer-msg';
|
var skin = (rskin ? rskin + ' ' + rskin + '-msg' : '') || 'layui-layer-msg';
|
||||||
|
@ -226,6 +247,24 @@
|
||||||
+ (titype ? config.title[0] : config.title)
|
+ (titype ? config.title[0] : config.title)
|
||||||
+ '</div>' : '');
|
+ '</div>' : '');
|
||||||
config.zIndex = zIndex;
|
config.zIndex = zIndex;
|
||||||
|
if (config.type == 5) {
|
||||||
|
let icons = {
|
||||||
|
0: { font: "fa fa-warning", "color": '#faad14' },
|
||||||
|
1: { font: "fa fa-check-circle", "color": '#52c41a' },
|
||||||
|
2: { font: "fa fa-times", "color": '#ff4d4f' },
|
||||||
|
3: { font: "fa fa-question-circle-o", "color": '#faad14' },
|
||||||
|
}
|
||||||
|
callback([
|
||||||
|
config.shade ? ('<div class="layui-layer-shade" id="layui-layer-shade' + times + '" times="' + times + '" style="' + ('z-index:' + (zIndex - 1) + '; ') + '"></div>') : '',
|
||||||
|
'<div class="' + doms[0] + ' layui-layer-' + ready.type[config.type] + ' animated bounceInRight" id="' + doms[0] + times + '" type="' + ready.type[config.type] + '" times="' + times + '" showtime="' + config.time + '" conType="' + (conType ? 'object' : 'string') + '" style="z-index: ' + zIndex + ';">'
|
||||||
|
+ '<div id="' + (config.id || '') + '" class="layui-layer-content' + ((config.type == 0 && config.icon !== -1) ? ' layui-layer-padding' : '') + (config.type == 3 ? ' layui-layer-loading' + config.icon : '') + '">'
|
||||||
|
+ ` <i class="${icons[config.icon].font}" style="color:${icons[config.icon].color};"></i>
|
||||||
|
<h2 class="layui-layer-notice-title">${config.title}</h2>
|
||||||
|
<div class="layui-layer-notice-content"><p>${config.content || ''}</p></div>
|
||||||
|
<i class="layui-layer-close fa fa-times-circle-o"></i>`
|
||||||
|
+ '</div>'
|
||||||
|
], titleHTML, $('<div class="layui-layer-move"></div>'))
|
||||||
|
} else {
|
||||||
callback([
|
callback([
|
||||||
//遮罩
|
//遮罩
|
||||||
config.shade ? ('<div class="layui-layer-shade" id="layui-layer-shade' + times + '" times="' + times + '" style="' + ('z-index:' + (zIndex - 1) + '; ') + '"></div>') : '',
|
config.shade ? ('<div class="layui-layer-shade" id="layui-layer-shade' + times + '" times="' + times + '" style="' + ('z-index:' + (zIndex - 1) + '; ') + '"></div>') : '',
|
||||||
|
@ -253,6 +292,7 @@
|
||||||
+ (config.resize ? '<span class="layui-layer-resize"></span>' : '')
|
+ (config.resize ? '<span class="layui-layer-resize"></span>' : '')
|
||||||
+ '</div>'
|
+ '</div>'
|
||||||
], titleHTML, $('<div class="layui-layer-move"></div>'));
|
], titleHTML, $('<div class="layui-layer-move"></div>'));
|
||||||
|
}
|
||||||
return that;
|
return that;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -304,6 +344,10 @@
|
||||||
config.tips = typeof config.tips === 'object' ? config.tips : [config.tips, true];
|
config.tips = typeof config.tips === 'object' ? config.tips : [config.tips, true];
|
||||||
config.tipsMore || layer.closeAll('tips');
|
config.tipsMore || layer.closeAll('tips');
|
||||||
break;
|
break;
|
||||||
|
case 5:
|
||||||
|
//notice
|
||||||
|
|
||||||
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
//建立容器
|
//建立容器
|
||||||
|
@ -318,7 +362,21 @@
|
||||||
$('#' + doms[0] + times).find('.' + doms[5]).before(titleHTML);
|
$('#' + doms[0] + times).find('.' + doms[5]).before(titleHTML);
|
||||||
}
|
}
|
||||||
}();
|
}();
|
||||||
}() : body.append(html[1]);
|
}() : function () {
|
||||||
|
if (config.type !== 5) {
|
||||||
|
return body.append(html[1])
|
||||||
|
} else {
|
||||||
|
let $container = $('.layui-layer-notice-container');
|
||||||
|
if ($container.length == 0) {
|
||||||
|
body.append(`<div class ="layui-layer-notice-container" style="z-index:${config.zIndex};"></div`)
|
||||||
|
$container = $('.layui-layer-notice-container');
|
||||||
|
}
|
||||||
|
$container.append(html[1]);
|
||||||
|
$container.children().last().find(".click").on('click', function (e) {
|
||||||
|
config.click && new Function(config.click).call(this, e);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}();
|
||||||
//修改源插件为post提交
|
//修改源插件为post提交
|
||||||
//-------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------
|
||||||
if (config.params != undefined || (config.method != undefined && config.method != 'get')) {
|
if (config.params != undefined || (config.method != undefined && config.method != 'get')) {
|
||||||
|
@ -432,6 +490,10 @@
|
||||||
//计算坐标
|
//计算坐标
|
||||||
Class.pt.offset = function () {
|
Class.pt.offset = function () {
|
||||||
var that = this, config = that.config, layero = that.layero;
|
var that = this, config = that.config, layero = that.layero;
|
||||||
|
if (config.type == 5) {
|
||||||
|
layero = layero.parent();
|
||||||
|
}
|
||||||
|
|
||||||
var area = [layero.outerWidth(), layero.outerHeight()];
|
var area = [layero.outerWidth(), layero.outerHeight()];
|
||||||
var type = typeof config.offset === 'object';
|
var type = typeof config.offset === 'object';
|
||||||
that.offsetTop = (win.height() - area[1]) / 2;
|
that.offsetTop = (win.height() - area[1]) / 2;
|
||||||
|
@ -457,7 +519,7 @@
|
||||||
that.offsetTop = win.height() - area[1];
|
that.offsetTop = win.height() - area[1];
|
||||||
that.offsetLeft = 0;
|
that.offsetLeft = 0;
|
||||||
} else if (config.offset === 'rt') { //右上角
|
} else if (config.offset === 'rt') { //右上角
|
||||||
that.offsetTop = 0;
|
that.offsetTop = 0 + (that.config.offsetTop || 0);
|
||||||
that.offsetLeft = win.width() - area[0];
|
that.offsetLeft = win.width() - area[0];
|
||||||
} else if (config.offset === 'rb') { //右下角
|
} else if (config.offset === 'rb') { //右下角
|
||||||
that.offsetTop = win.height() - area[1];
|
that.offsetTop = win.height() - area[1];
|
||||||
|
|
|
@ -58,35 +58,64 @@ layui.define(['view', 'theme', 'common'], function (exports) {
|
||||||
if (status === 'spread') {
|
if (status === 'spread') {
|
||||||
//切换到展开状态的 icon,箭头:←
|
//切换到展开状态的 icon,箭头:←
|
||||||
iconElem.removeClass(ICON_SPREAD).addClass(ICON_SHRINK);
|
iconElem.removeClass(ICON_SPREAD).addClass(ICON_SHRINK);
|
||||||
|
|
||||||
//移动:从左到右位移;PC:清除多余选择器恢复默认
|
//移动:从左到右位移;PC:清除多余选择器恢复默认
|
||||||
if (screen < 2) {
|
if (screen < 2) {
|
||||||
app.addClass(APP_SPREAD_SM);
|
app.addClass(APP_SPREAD_SM);
|
||||||
} else {
|
} else {
|
||||||
app.removeClass(APP_SPREAD_SM);
|
app.removeClass(APP_SPREAD_SM);
|
||||||
}
|
}
|
||||||
|
|
||||||
app.removeClass(SIDE_SHRINK)
|
app.removeClass(SIDE_SHRINK)
|
||||||
} else {
|
} else {
|
||||||
//切换到搜索状态的 icon,箭头:→
|
//切换到搜索状态的 icon,箭头:→
|
||||||
iconElem.removeClass(ICON_SHRINK).addClass(ICON_SPREAD);
|
iconElem.removeClass(ICON_SHRINK).addClass(ICON_SPREAD);
|
||||||
|
|
||||||
//移动:清除多余选择器恢复默认;PC:从右往左收缩
|
//移动:清除多余选择器恢复默认;PC:从右往左收缩
|
||||||
if (screen < 2) {
|
if (screen < 2) {
|
||||||
app.removeClass(SIDE_SHRINK);
|
app.removeClass(SIDE_SHRINK);
|
||||||
} else {
|
} else {
|
||||||
app.addClass(SIDE_SHRINK);
|
app.addClass(SIDE_SHRINK);
|
||||||
}
|
}
|
||||||
|
|
||||||
app.removeClass(APP_SPREAD_SM)
|
app.removeClass(APP_SPREAD_SM)
|
||||||
}
|
}
|
||||||
|
$('#rolecourse').removeClass('layui-show');
|
||||||
layui.event.call(this, setter.MOD_NAME, 'side({*})', {
|
layui.event.call(this, setter.MOD_NAME, 'side({*})', {
|
||||||
status: status
|
status: status
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* 切换角色
|
||||||
|
* @param {*} switchroleid 要切换的角色id
|
||||||
|
* @param {*} deptid 要切换的部门id
|
||||||
|
*/
|
||||||
|
switchRole: function (switchroleid, deptid) {
|
||||||
|
var curroleid = $('#ROLENAME').attr('roleid'),
|
||||||
|
currdeptid = $('#ROLENAME').attr('deptid'),
|
||||||
|
param = {
|
||||||
|
roleid: switchroleid,
|
||||||
|
deptid: deptid
|
||||||
|
}
|
||||||
|
if (curroleid == switchroleid && currdeptid == deptid) {
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
var index = layer.load();
|
||||||
|
$.ajax({
|
||||||
|
url: layui.cache['contentPath'] + '/switchRole?t=' + Math.floor(Math.random() * 100),
|
||||||
|
data: param,
|
||||||
|
type: 'get',
|
||||||
|
async: false,
|
||||||
|
dataType: 'json',
|
||||||
|
contentType: "application/json",
|
||||||
|
success: function (result) {
|
||||||
|
if (result.state == 'OK') {
|
||||||
|
layer.close(index);
|
||||||
|
top.location.href = layui.cache['contentPath'] + '/index?tokenId=' + $('#tokenId').val();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function (xhr, textStatus, errorThrown) {
|
||||||
|
layer.msg('请求异常!' + xhr.responseText);
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
/**
|
/**
|
||||||
* 获取当前用户信息
|
* 获取当前用户信息
|
||||||
* @param {*} callback 用户信息完成获取回调
|
* @param {*} callback 用户信息完成获取回调
|
||||||
|
@ -122,7 +151,7 @@ layui.define(['view', 'theme', 'common'], function (exports) {
|
||||||
doMessage: function (msg) {
|
doMessage: function (msg) {
|
||||||
let d = JSON.parse(msg);
|
let d = JSON.parse(msg);
|
||||||
if (d && d.msg == 'openTabPage') {
|
if (d && d.msg == 'openTabPage') {
|
||||||
common.openTabsPage(d.params.url, d.params.title, d.params.resid, d.params.paramm, function () {
|
common.openTabsPage(d.params.url, d.params.title, d.params.resid, d.params.param, function () {
|
||||||
var tabId = d.params.resid ? d.params.resid : d.params.url;
|
var tabId = d.params.resid ? d.params.resid : d.params.url;
|
||||||
admin.tabsBodyChange(tabsPage.index, {
|
admin.tabsBodyChange(tabsPage.index, {
|
||||||
url: tabId,
|
url: tabId,
|
||||||
|
@ -561,7 +590,8 @@ layui.define(['view', 'theme', 'common'], function (exports) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
},
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -734,7 +764,7 @@ layui.define(['view', 'theme', 'common'], function (exports) {
|
||||||
resizeSystem.lock = true;
|
resizeSystem.lock = true;
|
||||||
}
|
}
|
||||||
$win.on('resize', layui.data.resizeSystem);
|
$win.on('resize', layui.data.resizeSystem);
|
||||||
|
admin.sideFlexible(admin.screen() < 2 ? '' : 'spread');
|
||||||
/**
|
/**
|
||||||
* 渲染角色下拉
|
* 渲染角色下拉
|
||||||
* @param {*} loginInfo 登录的返回信息
|
* @param {*} loginInfo 登录的返回信息
|
||||||
|
@ -767,41 +797,16 @@ layui.define(['view', 'theme', 'common'], function (exports) {
|
||||||
$rolecourse.append(html);
|
$rolecourse.append(html);
|
||||||
initRoleClickEvent();
|
initRoleClickEvent();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 初始化角色点击事件
|
* 初始化角色点击事件
|
||||||
*/
|
*/
|
||||||
function initRoleClickEvent() {
|
function initRoleClickEvent() {
|
||||||
$('#rolecourse a').on('click', function () {
|
$('#rolecourse a').on('click', function () {
|
||||||
var curroleid = $('#ROLENAME').attr('roleid'),
|
let switchroleid = $(this).attr('roleid'),
|
||||||
currdeptid = $('#ROLENAME').attr('deptid'),
|
deptid = $(this).attr('deptid') == undefined ? '' : $(this).attr('deptid')
|
||||||
switchroleid = $(this).attr('roleid'),
|
admin.switchRole(switchroleid, deptid);
|
||||||
deptid = $(this).attr('deptid') == undefined ? '' : $(this).attr('deptid'),
|
|
||||||
param = {
|
|
||||||
roleid: switchroleid,
|
|
||||||
deptid: deptid
|
|
||||||
}
|
|
||||||
if (curroleid == switchroleid && currdeptid == deptid) {
|
|
||||||
return;
|
|
||||||
} else {
|
|
||||||
var index = layer.load();
|
|
||||||
$.ajax({
|
|
||||||
url: layui.cache['contentPath'] + '/switchRole?t=' + Math.floor(Math.random() * 100),
|
|
||||||
data: param,
|
|
||||||
type: 'get',
|
|
||||||
async: false,
|
|
||||||
dataType: 'json',
|
|
||||||
contentType: "application/json",
|
|
||||||
success: function (result) {
|
|
||||||
if (result.state == 'OK') {
|
|
||||||
layer.close(index);
|
|
||||||
top.location.href = layui.cache['contentPath'] + '/index?tokenId=' + $('#tokenId').val();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
error: function (xhr, textStatus, errorThrown) {
|
|
||||||
layer.msg('请求异常!' + xhr.responseText);
|
|
||||||
},
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
|
@ -889,7 +894,7 @@ layui.define(['view', 'theme', 'common'], function (exports) {
|
||||||
* 主题渲染
|
* 主题渲染
|
||||||
*/
|
*/
|
||||||
function renderTheme() {
|
function renderTheme() {
|
||||||
window['kdtheme'].render(true);
|
window['kdtheme'].render(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
function renderMenu(userInfo) {
|
function renderMenu(userInfo) {
|
||||||
|
@ -915,9 +920,8 @@ layui.define(['view', 'theme', 'common'], function (exports) {
|
||||||
//当前设定主题设置
|
//当前设定主题设置
|
||||||
let m = theme.getTheme(true);
|
let m = theme.getTheme(true);
|
||||||
if (m) {
|
if (m) {
|
||||||
var g_loginInfo = null
|
let g_loginInfo = null
|
||||||
common.on('setTheme', function (event) {
|
common.on('setTheme', function (event) {
|
||||||
renderTheme();
|
|
||||||
if (g_loginInfo === null) {
|
if (g_loginInfo === null) {
|
||||||
admin.getUserInfo(function (userInfo, error) {
|
admin.getUserInfo(function (userInfo, error) {
|
||||||
if (error) {
|
if (error) {
|
||||||
|
@ -925,6 +929,47 @@ layui.define(['view', 'theme', 'common'], function (exports) {
|
||||||
} else {
|
} else {
|
||||||
g_loginInfo = userInfo;
|
g_loginInfo = userInfo;
|
||||||
renderMenu(g_loginInfo)
|
renderMenu(g_loginInfo)
|
||||||
|
/**
|
||||||
|
* 接收到通知消息
|
||||||
|
*/
|
||||||
|
common.on('NOTICE_MSG', (event) => {
|
||||||
|
layer.notice(event.params.content, $.extend({ offsetTop: 80 }, event.params));
|
||||||
|
})
|
||||||
|
let sseMsg = JSON.stringify({
|
||||||
|
MSG: 'NOTICE_MSG',
|
||||||
|
tokenId: userInfo.tokenId
|
||||||
|
})
|
||||||
|
let sse = new Sse(sseMsg, 30000);
|
||||||
|
sse.on((data) => {
|
||||||
|
let msg
|
||||||
|
if (typeof data == 'string') {
|
||||||
|
if (data.startsWith('{') || data.startsWith('[')) {
|
||||||
|
msg = JSON.parse(data)
|
||||||
|
} else {
|
||||||
|
msg = data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let mp3 = new Audio(`${layui.cache['contentPath']}/static/image/message.mp3`) //创建音频对象
|
||||||
|
mp3.loop = false
|
||||||
|
mp3.play()
|
||||||
|
if (msg instanceof Array) {
|
||||||
|
msg && msg.forEach(item => {
|
||||||
|
layer.notice(item.msg, $.extend({ offsetTop: 80, click: item.click }, { icon: item.icon, time: item.time }))
|
||||||
|
});
|
||||||
|
} else if (typeof msg == 'string') {
|
||||||
|
layer.notice(msg, $.extend({ offsetTop: 80, content: msg }, { icon: 1, time: 0 }))
|
||||||
|
} else if (typeof msg == 'object') {
|
||||||
|
layer.notice(msg, $.extend({ icon: 1, time: 0 }, {
|
||||||
|
offsetTop: 80,
|
||||||
|
title: msg.msgTitle,
|
||||||
|
content: msg.msgContext,
|
||||||
|
icon: msg.icon,
|
||||||
|
time: msg.time,
|
||||||
|
click: msg.click
|
||||||
|
},))
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
|
@ -936,11 +981,6 @@ layui.define(['view', 'theme', 'common'], function (exports) {
|
||||||
/**
|
/**
|
||||||
* 判断是否已经加载主题
|
* 判断是否已经加载主题
|
||||||
*/
|
*/
|
||||||
window['--hasload-kd-Theme'] = true;
|
|
||||||
|
|
||||||
$('body').addClass('loaded');
|
|
||||||
$('#loader-wrapper .load_title').remove();
|
|
||||||
|
|
||||||
common.on('TabPageFinished', function (event) {
|
common.on('TabPageFinished', function (event) {
|
||||||
$('.layadmin-tabsbody-shade').fadeOut('600');
|
$('.layadmin-tabsbody-shade').fadeOut('600');
|
||||||
})
|
})
|
||||||
|
|
|
@ -1866,16 +1866,25 @@ ul.navbarSearchResult::-webkit-scrollbar-track {
|
||||||
}
|
}
|
||||||
|
|
||||||
.kdayun-app-layout-top .kdayun-logo {
|
.kdayun-app-layout-top .kdayun-logo {
|
||||||
display: block;
|
/* display: block;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
padding: 8px;
|
padding: 8px; */
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
align-items: center;
|
||||||
|
margin-left: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.kdayun-app-layout .layui-header {
|
||||||
|
display: flex;
|
||||||
}
|
}
|
||||||
|
|
||||||
.kdayun-app-layout-top .kdayun-menu-container {
|
.kdayun-app-layout-top .kdayun-menu-container {
|
||||||
position: relative;
|
/* position: relative;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
margin-left: 200px;
|
margin-left: 200px; */
|
||||||
margin-top: 25px;
|
margin-top: 25px;
|
||||||
|
width: calc(100% - 581px);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* .kdayun-app-layout-top .kdayun-menu-ul {
|
/* .kdayun-app-layout-top .kdayun-menu-ul {
|
||||||
|
@ -2184,7 +2193,154 @@ CORE STYLES BELOW - NO TOUCHY
|
||||||
@media (max-width:575px) {}
|
@media (max-width:575px) {}
|
||||||
|
|
||||||
/* Small (sm) and down */
|
/* Small (sm) and down */
|
||||||
@media (max-width:767px) {}
|
@media (max-width:767px) {
|
||||||
|
|
||||||
|
.kdayun-app-layout-left.layadmin-side-spread-sm .kdayun-menu {
|
||||||
|
width: 220px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.kdayun-app-layout-left.kdayun-app-layout .kdayun-menu {
|
||||||
|
width: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.kdayun-app-layout-left .kdayun-menu-container {
|
||||||
|
height: calc(100% - 194px) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.kdayun-app-layout-left .layui-layout-left,
|
||||||
|
.kdayun-app-layout-left .layadmin-pagetabs,
|
||||||
|
.kdayun-app-layout-left .kdayun-pagetab-body,
|
||||||
|
.kdayun-app-layout-left .layui-footer {
|
||||||
|
left: 0px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.kdayun-app-layout-left .layadmin-pagetabs {
|
||||||
|
top: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.kdayun-app-layout-left .kdayun-pagetab-body {
|
||||||
|
top: 38px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.kdayun-small-title-t {
|
||||||
|
display: inline-block;
|
||||||
|
margin: auto;
|
||||||
|
width: 80%;
|
||||||
|
text-align: center;
|
||||||
|
font-weight: 700;
|
||||||
|
font-size: medium;
|
||||||
|
}
|
||||||
|
|
||||||
|
.kdayun-small-title {
|
||||||
|
position: fixed;
|
||||||
|
width: 100%;
|
||||||
|
height: 35px;
|
||||||
|
line-height: 35px;
|
||||||
|
padding: 0 8px 0 8px;
|
||||||
|
background-color: #fff;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.kdayun-app-layout-left .kdayun-header {
|
||||||
|
height: 50px;
|
||||||
|
background-color: inherit !important;
|
||||||
|
padding: 10px;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
}
|
||||||
|
|
||||||
|
.kdayun-app-layout-left .kdayun-header-info img {
|
||||||
|
width: 64px;
|
||||||
|
height: 64px;
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.kdayun-app-layout-left .kdayun-header .kdayun-header-name-role {
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.kdayun-app-layout-left .kdayun-header .kdayun-header-name-role span {
|
||||||
|
font-size: 12px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.kdayun-app-layout-left .kdayun-header .kdayun-header-role,
|
||||||
|
.kdayun-app-layout-left .kdayun-header a {
|
||||||
|
color: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
.kdayun-app-layout-left .kdayun-header a {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
align-items: end;
|
||||||
|
}
|
||||||
|
|
||||||
|
.kdayun-app-layout-left .kdayun-header .layui-nav-more {
|
||||||
|
margin-left: 5px;
|
||||||
|
border-width: 6px;
|
||||||
|
border-top-style: solid;
|
||||||
|
border-top-color: #fff;
|
||||||
|
border-top-color: rgba(255, 255, 255, .7);
|
||||||
|
content: '';
|
||||||
|
width: 0;
|
||||||
|
height: 0;
|
||||||
|
border-style: dashed;
|
||||||
|
border-color: transparent;
|
||||||
|
overflow: hidden;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: all .2s;
|
||||||
|
-webkit-transition: all .2s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.kdayun-header-role-dropdown .layui-nav-child {
|
||||||
|
min-width: unset;
|
||||||
|
line-height: 31px;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.kdayun-header-role-dropdown .layui-nav-child dd {
|
||||||
|
margin-left: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.kdayun-app-layout-left .kdayun-header a:hover {
|
||||||
|
color: unset !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.kdayun-app-layout .layui-header a span.layui-nav-mored {
|
||||||
|
border-top-color: transparent !important;
|
||||||
|
border-bottom-color: unset !important;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
}
|
||||||
|
|
||||||
|
.kdayun-app-layout .layui-header a span.layui-nav-more {
|
||||||
|
border-top-color: unset !important;
|
||||||
|
border-bottom-color: transparent !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.kdayun-app-layout .kdayun-menu-close {
|
||||||
|
position: absolute;
|
||||||
|
right: 1px;
|
||||||
|
top: 1px;
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
z-index: 10000;
|
||||||
|
font-size: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.kdayun-small-refresh {
|
||||||
|
position: absolute;
|
||||||
|
right: 8px;
|
||||||
|
top: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.kdayun-pagetab-body .layadmin-tabsbody-shade div {
|
||||||
|
font-size: 26px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.kdayun-pagetab-body .layadmin-tabsbody-shade div:last-child {
|
||||||
|
font-size: 18px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Medium (md) and down */
|
/* Medium (md) and down */
|
||||||
@media (max-width:991px) {
|
@media (max-width:991px) {
|
||||||
|
|
|
@ -156,7 +156,19 @@
|
||||||
<ul class="navbarSearchResult layui-hide kdayun-search-result"></ul>
|
<ul class="navbarSearchResult layui-hide kdayun-search-result"></ul>
|
||||||
</div>
|
</div>
|
||||||
</script>
|
</script>
|
||||||
|
<script id="tpl-small-body" type="text/html">
|
||||||
|
<div class="layadmin-pagetabs kdayun-pagetabs" id="LAY_app_tabs" style="padding-left: 0px;padding-right: 40px;">
|
||||||
|
</div>
|
||||||
|
<div class="kdayun-pagetab-body" id="LAY_app_body">
|
||||||
|
<div class="layadmin-tabsbody-shade">
|
||||||
|
<div>页面载入中...</div>
|
||||||
|
<div><@configValue id='D9D9033598B54FD794995DA742A58A40'> </@configValue></div>
|
||||||
|
</div>
|
||||||
|
<div class="layadmin-tabsbody-item layui-show kdayun-pagetab-body-item">
|
||||||
|
<iframe src="${request.contextPath}/manager/corehomepage/web/index" frameborder="0" class="layadmin-iframe kdayun-pagetab-iframe"></iframe>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</script>
|
||||||
|
|
||||||
<script id="tpl-body" type="text/html">
|
<script id="tpl-body" type="text/html">
|
||||||
<div class="layadmin-pagetabs kdayun-pagetabs" id="LAY_app_tabs" style="padding-left: 0px;padding-right: 40px;">
|
<div class="layadmin-pagetabs kdayun-pagetabs" id="LAY_app_tabs" style="padding-left: 0px;padding-right: 40px;">
|
||||||
|
|
|
@ -64,7 +64,7 @@
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="layui-nav layui-layout-right" lay-filter="layadmin-layout-right">
|
<ul class="layui-nav layui-layout-right" lay-filter="layadmin-layout-right">
|
||||||
<li class="layui-nav-item" lay-unselect>
|
<li class="layui-nav-item" lay-unselect>
|
||||||
<a layadmin-event="message" yh-href="${request.contextPath}/manager/coremodelshow/?modelId=C2AB0681B83246F78D467A0D05E5B821" resid="5A61E550409841298EC15DBF68B95D8B" nopost="1" lay-text="消息中心">
|
<a layadmin-event="message" yh-href="${request.contextPath}/manager/coremodelshow/?modelId=A1411798AA8D40ABB6ED5877FF3D3342" resid="5A61E550409841298EC15DBF68B95D8B" nopost="1" lay-text="消息中心">
|
||||||
<i class="layui-icon layui-icon-notice"></i>
|
<i class="layui-icon layui-icon-notice"></i>
|
||||||
<!-- 如果有新消息,则显示小圆点 -->
|
<!-- 如果有新消息,则显示小圆点 -->
|
||||||
<span class="layui-badge-dot"></span>
|
<span class="layui-badge-dot"></span>
|
||||||
|
@ -258,7 +258,7 @@
|
||||||
<!-- 头部区域 -->
|
<!-- 头部区域 -->
|
||||||
<ul class="layui-nav layui-layout-right kdayun-header-right-tools" lay-filter="layadmin-layout-right">
|
<ul class="layui-nav layui-layout-right kdayun-header-right-tools" lay-filter="layadmin-layout-right">
|
||||||
<li class="layui-nav-item" lay-unselect>
|
<li class="layui-nav-item" lay-unselect>
|
||||||
<a layadmin-event="message" yh-href="${request.contextPath}/manager/coremodelshow/?modelId=C2AB0681B83246F78D467A0D05E5B821" resid="5A61E550409841298EC15DBF68B95D8B" nopost="1" lay-text="消息中心">
|
<a layadmin-event="message" yh-href="${request.contextPath}/manager/coremodelshow/?modelId=A91C3704525C4F9FADD779E939E949E5" resid="5A61E550409841298EC15DBF68B95D8B" nopost="1" lay-text="消息中心">
|
||||||
<i class="layui-icon layui-icon-notice"></i>
|
<i class="layui-icon layui-icon-notice"></i>
|
||||||
<!-- 如果有新消息,则显示小圆点 -->
|
<!-- 如果有新消息,则显示小圆点 -->
|
||||||
<span class="layui-badge-dot"></span>
|
<span class="layui-badge-dot"></span>
|
||||||
|
@ -342,7 +342,24 @@
|
||||||
<ul class="navbarSearchResult layui-hide kdayun-search-result"></ul>
|
<ul class="navbarSearchResult layui-hide kdayun-search-result"></ul>
|
||||||
</div>
|
</div>
|
||||||
</script>
|
</script>
|
||||||
|
<script id="tpl-small-body" type="text/html">
|
||||||
|
<div class="kdayun-small-title">
|
||||||
|
<a href="javascript:;" layadmin-event="flexible" title="侧边伸缩">
|
||||||
|
<i class="layui-icon layui-icon-spread-left" id="kdayun-app-flexible"></i>
|
||||||
|
</a>
|
||||||
|
<span class="kdayun-small-title-t">首页</span>
|
||||||
|
<i class="kdayun-small-refresh fa fa-refresh"></i>
|
||||||
|
</div>
|
||||||
|
<div class="kdayun-pagetab-body" id="LAY_app_body">
|
||||||
|
<div class="layadmin-tabsbody-shade">
|
||||||
|
<div>页面载入中...</div>
|
||||||
|
<div><@configValue id='D9D9033598B54FD794995DA742A58A40'> </@configValue></div>
|
||||||
|
</div>
|
||||||
|
<div class="layadmin-tabsbody-item layui-show kdayun-pagetab-body-item">
|
||||||
|
<iframe src="${request.contextPath}/manager/corehomepage/web/index" frameborder="0" class="layadmin-iframe kdayun-pagetab-iframe"></iframe>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</script>
|
||||||
|
|
||||||
<script id="tpl-body" type="text/html">
|
<script id="tpl-body" type="text/html">
|
||||||
<div class="layadmin-pagetabs kdayun-pagetabs" id="LAY_app_tabs" style="padding-left: 0px;padding-right: 40px;">
|
<div class="layadmin-pagetabs kdayun-pagetabs" id="LAY_app_tabs" style="padding-left: 0px;padding-right: 40px;">
|
||||||
|
|
2
pom.xml
2
pom.xml
|
@ -23,7 +23,7 @@
|
||||||
<!-- jdk版本 -->
|
<!-- jdk版本 -->
|
||||||
<jdk.version>1.8</jdk.version>
|
<jdk.version>1.8</jdk.version>
|
||||||
<!-- 平台版本 -->
|
<!-- 平台版本 -->
|
||||||
<base.version>5.0.232</base.version>
|
<base.version>5.0.233</base.version>
|
||||||
<!-- Spring 版本号 -->
|
<!-- Spring 版本号 -->
|
||||||
<spring.version>5.1.2.RELEASE</spring.version>
|
<spring.version>5.1.2.RELEASE</spring.version>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue