Authored by 王涛

Merge branch 'master-500-dev-lushangqing' into 'master-500-dev'

菜单增加点击事件操作记录



See merge request !852
... ... @@ -8,7 +8,8 @@ layui.define(['element', 'admin'], function (exports) {
data: {
contextmenuTips: null,
contextmenus: [],
classNams: []
classNams: [],
handleLog: [] //lsq 页面点击操作集
},
getCurrentHash: function () {
return window.location.hash;
... ... @@ -80,12 +81,111 @@ layui.define(['element', 'admin'], function (exports) {
* 鼠标点击事件
*/
bindClickEvent(){
let that=this;
var eventKeys = ['a','button','[data-bizid]','.layui-table-link'];
// 菜单点击
$('#LAY-system-side-menu li a').click(function (e){
console.log($(this).text());
if(!$('#LAY-system-side-menu li a').hasClass("on_fn")){
$('#LAY-system-side-menu li a').on('click',(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)
}
console.log(text,that.data.handleLog);
},
/**
* 页面其他元素绑定事件
* @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(',');
}
console.log("abc",handleStr)
},
/**
* 页面其他元素绑定事件
* @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).on('click',(function (e){
e.preventDefault();
that.clickEventHandle($(this))
}))
}
})
},
/**
* 绑定鼠标右键事件
... ... @@ -93,7 +193,6 @@ layui.define(['element', 'admin'], function (exports) {
bindContextMenuEvent() {
var that = this;
var contextmenus = that.data.contextmenus;
var bindContextEvent = function (selector, index) {
var el = $(selector);
... ... @@ -163,7 +262,6 @@ layui.define(['element', 'admin'], function (exports) {
}
}
})
// 点击关闭所有tips
$(document).on('click', function (event) {
layer.closeAll('tips');
... ...