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) { @@ -8,7 +8,8 @@ layui.define(['element', 'admin'], function (exports) {
8 data: { 8 data: {
9 contextmenuTips: null, 9 contextmenuTips: null,
10 contextmenus: [], 10 contextmenus: [],
11 - classNams: [] 11 + classNams: [],
  12 + handleLog: [] //lsq 页面点击操作集
12 }, 13 },
13 getCurrentHash: function () { 14 getCurrentHash: function () {
14 return window.location.hash; 15 return window.location.hash;
@@ -80,12 +81,111 @@ layui.define(['element', 'admin'], function (exports) { @@ -80,12 +81,111 @@ layui.define(['element', 'admin'], function (exports) {
80 * 鼠标点击事件 81 * 鼠标点击事件
81 */ 82 */
82 bindClickEvent(){ 83 bindClickEvent(){
  84 + let that=this;
83 var eventKeys = ['a','button','[data-bizid]','.layui-table-link']; 85 var eventKeys = ['a','button','[data-bizid]','.layui-table-link'];
84 // 菜单点击 86 // 菜单点击
85 - $('#LAY-system-side-menu li a').click(function (e){  
86 - console.log($(this).text());  
87 - e.preventDefault();  
88 - }); 87 + if(!$('#LAY-system-side-menu li a').hasClass("on_fn")){
  88 + $('#LAY-system-side-menu li a').on('click',(function (e){
  89 + e.preventDefault();
  90 + //start lsq 元素鼠标点击事件操作 2022-08-11
  91 + //绑定事件时增加一个class防止多次绑定事件
  92 + $(this).addClass("on_fn");
  93 + // 获取当前点击的菜单 2022-08-11
  94 + if($(this).parent('li').length>0){
  95 + //如果菜单是第一级,则清空菜单数组,重新插入
  96 + that.data.handleLog=[];
  97 + }
  98 + that.pushArrNoRepeat($(this),1);
  99 + }));
  100 + }
  101 +
  102 + //lsq 给页面的元素绑定点击事件 2022-08-11
  103 + setTimeout(function(){
  104 + that.bindElemClickEvent();
  105 + },500)
  106 + },
  107 + /**
  108 + * @desc 点击元素插入数组时的处理
  109 + * @author lsq
  110 + * @date 2022-08-11
  111 + * @param thisObj 为点击的元素
  112 + * @param flg 1菜单
  113 + */
  114 + pushArrNoRepeat (thisObj,flg) {
  115 + let that=this;
  116 + // 获取当前元素名称正则表达式
  117 + var reg = sessionStorage.getItem('regular');
  118 + // 获取当前点击的元素的内容
  119 + let text=thisObj.text()?thisObj.text().trim().replace(reg, ""):'';
  120 + // 获取当前点击的元素的lay-href-type值
  121 + let menuType=thisObj.attr('lay-href-type')?thisObj.attr('lay-href-type'):'';
  122 + // 获取当前点击的菜单的路由地址
  123 + let layHref=thisObj.attr('lay-href')?thisObj.attr('lay-href'):'';
  124 + let eleObj={
  125 + text:text,
  126 + menuType:menuType,
  127 + layHref:layHref
  128 + }
  129 + //数组中无当前点击的元素时再将当前点击元素加入到数组中
  130 + let textArr=[];
  131 + that.data.handleLog.map(item=>{
  132 + textArr.push(item.text)
  133 + })
  134 + if(textArr.indexOf(text)==-1){
  135 + if(flg && !layHref){
  136 + // 如果当前点击的菜单元素没有路由地址则删除
  137 + that.data.handleLog.splice(1) ;
  138 + }
  139 + that.data.handleLog.push(eleObj)
  140 + }
  141 + console.log(text,that.data.handleLog);
  142 + },
  143 + /**
  144 + * 页面其他元素绑定事件
  145 + * @author lsq
  146 + * @date 2022-08-11
  147 + */
  148 + clickEventHandle (thisObj) {
  149 + let that=this;
  150 + //绑定事件时增加一个class防止多次绑定事件
  151 + thisObj.addClass("on_fn");
  152 + that.pushArrNoRepeat(thisObj);
  153 + // 把点击的元素按顺序展示
  154 + let handleStr='';
  155 + let menuStrArr=[];
  156 + let menuStrArrSecond=[];
  157 + that.data.handleLog.map(item=>{
  158 + if(item.menuType){
  159 + menuStrArr.push(item.text)
  160 + }else{
  161 + menuStrArrSecond.push(item.text)
  162 + }
  163 + })
  164 + if(menuStrArr.length>0){
  165 + handleStr=menuStrArr.join('->');
  166 + }
  167 + if(menuStrArrSecond.length>0){
  168 + handleStr+='->'+menuStrArrSecond.join(',');
  169 + }
  170 + console.log("abc",handleStr)
  171 + },
  172 + /**
  173 + * 页面其他元素绑定事件
  174 + * @author lsq
  175 + * @date 2022-08-11
  176 + */
  177 + bindElemClickEvent() {
  178 + let that=this;
  179 + var eventKeys = ['button','[data-bizid]','.layui-table-link'];
  180 + eventKeys.map(item=>{
  181 + if(!$(item).hasClass("on_fn")){
  182 + $(item).on('click',(function (e){
  183 + e.preventDefault();
  184 + that.clickEventHandle($(this))
  185 + }))
  186 + }
  187 +
  188 + })
89 }, 189 },
90 /** 190 /**
91 * 绑定鼠标右键事件 191 * 绑定鼠标右键事件
@@ -93,7 +193,6 @@ layui.define(['element', 'admin'], function (exports) { @@ -93,7 +193,6 @@ layui.define(['element', 'admin'], function (exports) {
93 bindContextMenuEvent() { 193 bindContextMenuEvent() {
94 var that = this; 194 var that = this;
95 var contextmenus = that.data.contextmenus; 195 var contextmenus = that.data.contextmenus;
96 -  
97 var bindContextEvent = function (selector, index) { 196 var bindContextEvent = function (selector, index) {
98 var el = $(selector); 197 var el = $(selector);
99 198
@@ -163,7 +262,6 @@ layui.define(['element', 'admin'], function (exports) { @@ -163,7 +262,6 @@ layui.define(['element', 'admin'], function (exports) {
163 } 262 }
164 } 263 }
165 }) 264 })
166 -  
167 // 点击关闭所有tips 265 // 点击关闭所有tips
168 $(document).on('click', function (event) { 266 $(document).on('click', function (event) {
169 layer.closeAll('tips'); 267 layer.closeAll('tips');