...
|
...
|
@@ -8,7 +8,8 @@ layui.define(['element', 'admin'], function (exports) { |
|
|
data: {
|
|
|
contextmenuTips: null,
|
|
|
contextmenus: [],
|
|
|
classNams: []
|
|
|
classNams: [],
|
|
|
handleLog: [] //lsq 页面点击操作集
|
|
|
},
|
|
|
getCurrentHash: function () {
|
|
|
return window.location.hash;
|
...
|
...
|
@@ -16,11 +17,16 @@ layui.define(['element', 'admin'], function (exports) { |
|
|
init: function () {
|
|
|
var that = this;
|
|
|
|
|
|
that.bindClickEvent();
|
|
|
|
|
|
//lsq给带有title的元素绑定点击事件复制元素内容 2022-09-05
|
|
|
that.copyTitle();
|
|
|
|
|
|
if (that.data.contextmenus.length > 0) {
|
|
|
that.bindContextMenuEvent();
|
|
|
return that.data.contextmenus;
|
|
|
}
|
|
|
if('#/user/login/redirect=%2F' == that.getCurrentHash()){
|
|
|
if ('#/user/login/redirect=%2F' == that.getCurrentHash()) {
|
|
|
return;
|
|
|
}
|
|
|
// 获取配置的信息
|
...
|
...
|
@@ -68,16 +74,155 @@ layui.define(['element', 'admin'], function (exports) { |
|
|
}
|
|
|
})
|
|
|
|
|
|
setTimeout(function (){
|
|
|
setTimeout(function () {
|
|
|
layer.closeAll('tips');
|
|
|
},5000)
|
|
|
}, 5000)
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
/**
|
|
|
* ajax掉接口之前传参
|
|
|
* @author lsq
|
|
|
* @date 2022-08-18
|
|
|
* */
|
|
|
sendAjaxData(menuPath,elementName){
|
|
|
let name=encodeURIComponent(elementName);
|
|
|
$.ajaxSetup({
|
|
|
headers:{
|
|
|
menuPath:menuPath,
|
|
|
elementName:name
|
|
|
}
|
|
|
|
|
|
});
|
|
|
},
|
|
|
/**
|
|
|
* 鼠标点击事件
|
|
|
*/
|
|
|
bindClickEvent(){
|
|
|
let that=this;
|
|
|
var eventKeys = ['a','button','[data-bizid]','.layui-table-link'];
|
|
|
// 菜单点击
|
|
|
if(!$('#LAY-system-side-menu li a').hasClass("on_fn")){
|
|
|
$('#LAY-system-side-menu li a').unbind('click.handle').on('click.handle',(function (e){
|
|
|
e.preventDefault();
|
|
|
//start lsq 元素鼠标点击事件操作 2022-08-11
|
|
|
//绑定事件时增加一个class防止多次绑定事件
|
|
|
$(this).addClass("on_fn");
|
|
|
// 获取当前点击的菜单 2022-08-11
|
|
|
if($(this).parent('li').length>0){
|
|
|
//如果菜单是第一级,则清空菜单数组,重新插入
|
|
|
that.data.handleLog=[];
|
|
|
}
|
|
|
that.pushArrNoRepeat($(this),1);
|
|
|
}));
|
|
|
}
|
|
|
|
|
|
//lsq 给页面的元素绑定点击事件 2022-08-11
|
|
|
setTimeout(function(){
|
|
|
that.bindElemClickEvent();
|
|
|
},500)
|
|
|
},
|
|
|
/**
|
|
|
* @desc 点击元素插入数组时的处理
|
|
|
* @author lsq
|
|
|
* @date 2022-08-11
|
|
|
* @param thisObj 为点击的元素
|
|
|
* @param flg 1菜单
|
|
|
*/
|
|
|
pushArrNoRepeat (thisObj,flg) {
|
|
|
let that=this;
|
|
|
// 获取当前元素名称正则表达式
|
|
|
var reg = sessionStorage.getItem('regular');
|
|
|
// 获取当前点击的元素的内容
|
|
|
let text=thisObj.text()?thisObj.text().trim().replace(reg, ""):'';
|
|
|
// 获取当前点击的元素的lay-href-type值
|
|
|
let menuType=thisObj.attr('lay-href-type')?thisObj.attr('lay-href-type'):'';
|
|
|
// 获取当前点击的菜单的路由地址
|
|
|
let layHref=thisObj.attr('lay-href')?thisObj.attr('lay-href'):'';
|
|
|
let eleObj={
|
|
|
text:text,
|
|
|
menuType:menuType,
|
|
|
layHref:layHref
|
|
|
}
|
|
|
//数组中无当前点击的元素时再将当前点击元素加入到数组中
|
|
|
let textArr=[];
|
|
|
that.data.handleLog.map(item=>{
|
|
|
textArr.push(item.text)
|
|
|
})
|
|
|
if(textArr.indexOf(text)==-1){
|
|
|
if(flg && !layHref){
|
|
|
// 如果当前点击的菜单元素没有路由地址则删除
|
|
|
that.data.handleLog.splice(1) ;
|
|
|
}
|
|
|
that.data.handleLog.push(eleObj)
|
|
|
}
|
|
|
//菜单点击传入属性lay-href的值,普通元素传入当前页面路由
|
|
|
if(flg){
|
|
|
that.sendAjaxData(layHref,text)
|
|
|
|
|
|
}else{
|
|
|
let locationPath=location.hash;
|
|
|
let pathArr=locationPath.split("#/");
|
|
|
let path='/'
|
|
|
if(pathArr && pathArr.length>1){
|
|
|
path=pathArr[1]
|
|
|
}
|
|
|
that.sendAjaxData(path,text)
|
|
|
|
|
|
}
|
|
|
},
|
|
|
/**
|
|
|
* 页面其他元素绑定事件
|
|
|
* @author lsq
|
|
|
* @date 2022-08-11
|
|
|
*/
|
|
|
clickEventHandle (thisObj) {
|
|
|
let that=this;
|
|
|
//绑定事件时增加一个class防止多次绑定事件
|
|
|
thisObj.addClass("on_fn");
|
|
|
that.pushArrNoRepeat(thisObj);
|
|
|
// 把点击的元素按顺序展示
|
|
|
let handleStr='';
|
|
|
let menuStrArr=[];
|
|
|
let menuStrArrSecond=[];
|
|
|
that.data.handleLog.map(item=>{
|
|
|
if(item.menuType){
|
|
|
menuStrArr.push(item.text)
|
|
|
}else{
|
|
|
menuStrArrSecond.push(item.text)
|
|
|
}
|
|
|
})
|
|
|
if(menuStrArr.length>0){
|
|
|
handleStr=menuStrArr.join('->');
|
|
|
}
|
|
|
if(menuStrArrSecond.length>0){
|
|
|
handleStr+='->'+menuStrArrSecond.join(',');
|
|
|
}
|
|
|
},
|
|
|
/**
|
|
|
* 页面其他元素绑定事件
|
|
|
* @author lsq
|
|
|
* @date 2022-08-11
|
|
|
*/
|
|
|
bindElemClickEvent() {
|
|
|
let that=this;
|
|
|
var eventKeys = ['button','[data-bizid]','.layui-table-link'];
|
|
|
eventKeys.map(item=>{
|
|
|
if(!$(item).hasClass("on_fn")){
|
|
|
$(item).unbind('click.handle').on('click.handle',(function (e){
|
|
|
e.preventDefault();
|
|
|
that.clickEventHandle($(this))
|
|
|
}))
|
|
|
}
|
|
|
|
|
|
})
|
|
|
},
|
|
|
/**
|
|
|
* 绑定鼠标右键事件
|
|
|
*/
|
|
|
bindContextMenuEvent() {
|
|
|
var that = this;
|
|
|
var contextmenus = that.data.contextmenus;
|
|
|
|
|
|
var bindContextEvent = function (selector, index) {
|
|
|
var el = $(selector);
|
|
|
|
...
|
...
|
@@ -92,47 +237,84 @@ layui.define(['element', 'admin'], function (exports) { |
|
|
}, 500)
|
|
|
return;
|
|
|
}
|
|
|
if (el.length > 0) {
|
|
|
$(el).each(function (i, v) {
|
|
|
var elItem = $(v);
|
|
|
elItem.attr('title', '点击鼠标右键查看功能点描述信息')
|
|
|
setTimeout(function () {
|
|
|
elItem.contextmenu(function (e) {
|
|
|
e.preventDefault();
|
|
|
let thatItem = $(this);
|
|
|
// 获取当前元素名称正则表达式
|
|
|
var reg = sessionStorage.getItem('regular');
|
|
|
let elementName = thatItem.text().replace(reg, "");
|
|
|
that.getTipsDetail(elementName, thatItem);
|
|
|
})
|
|
|
}, 1000)
|
|
|
});
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
el.attr('title', '点击鼠标右键查看功能点描述信息')
|
|
|
el.contextmenu(function (e) {
|
|
|
e.preventDefault();
|
|
|
let thatItem = $(this);
|
|
|
// 获取当前元素名称正则表达式
|
|
|
var reg = sessionStorage.getItem('regular');
|
|
|
let elementName = thatItem.text().replace(reg, "");
|
|
|
that.getTipsDetail(elementName, thatItem);
|
|
|
})
|
|
|
setTimeout(function () {
|
|
|
el.contextmenu(function (e) {
|
|
|
e.preventDefault();
|
|
|
let thatItem = $(this);
|
|
|
// 获取当前元素名称正则表达式
|
|
|
var reg = sessionStorage.getItem('regular');
|
|
|
let elementName = thatItem.text().replace(reg, "");
|
|
|
that.getTipsDetail(elementName, thatItem);
|
|
|
})
|
|
|
}, 1000)
|
|
|
}
|
|
|
|
|
|
// 循环绑定事件
|
|
|
var bind = function (){
|
|
|
$(contextmenus).each(function (index) {
|
|
|
let val = contextmenus[index];
|
|
|
|
|
|
if (val.indexOf('el::') != -1) {
|
|
|
let elName = val.replace('el::', '');
|
|
|
bindContextEvent(elName, 0);
|
|
|
}
|
|
|
})
|
|
|
var bind = function () {
|
|
|
//lsq 表格数据中的元素有时绑定不了事件,加延时 2022-08-11
|
|
|
setTimeout(function (){
|
|
|
$(contextmenus).each(function (index) {
|
|
|
let val = contextmenus[index];
|
|
|
if (val.indexOf('el::') != -1) {
|
|
|
let elName = val.replace('el::', '');
|
|
|
bindContextEvent(elName, 0);
|
|
|
}
|
|
|
})
|
|
|
},300)
|
|
|
}
|
|
|
|
|
|
// 获取当前页面,是否在配置中
|
|
|
var page = that.getCurrentHash();
|
|
|
$(contextmenus).each(function (index) {
|
|
|
let val = contextmenus[index];
|
|
|
if (val.indexOf('page::') != -1 ) {
|
|
|
if (val.indexOf('page::') != -1) {
|
|
|
let elName = val.replace('page::', '');
|
|
|
if(elName == page){
|
|
|
if (elName == page) {
|
|
|
bind();
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
})
|
|
|
|
|
|
// 点击关闭所有tips
|
|
|
$(document).on('click', function (event) {
|
|
|
layer.closeAll('tips');
|
|
|
})
|
|
|
},
|
|
|
/**
|
|
|
* lsq
|
|
|
* 2022-09-13
|
|
|
* 给带有title的元素绑定点击事件
|
|
|
*/
|
|
|
copyTitle() {
|
|
|
$('[title]').unbind('click.title').on('click.title',(function (e){
|
|
|
e.preventDefault();
|
|
|
let oInput = document.createElement('input');
|
|
|
oInput.value = $(this).attr('title').trim();
|
|
|
document.body.appendChild(oInput);
|
|
|
oInput.select();
|
|
|
document.execCommand("Copy");
|
|
|
oInput.className = 'oInput';
|
|
|
oInput.style.display = 'none';
|
|
|
// layer.msg('内容复制成功', {icon: 1, time: 2000});
|
|
|
|
|
|
}))
|
|
|
}
|
|
|
}
|
|
|
|
...
|
...
|
|