self-right-menus
Version:
这是一个基于Vue的自定义右键无限层级菜单项目
2 lines • 15 kB
JavaScript
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("rightMenu",[],t):"object"==typeof exports?exports.rightMenu=t():e.rightMenu=t()}("undefined"!=typeof self?self:this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var a=n[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,t),a.l=!0,a.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/dist/",t(t.s=11)}([function(e,t){function n(e,t){var n=e[1]||"",a=e[3];if(!a)return n;if(t&&"function"==typeof btoa){var i=r(a);return[n].concat(a.sources.map(function(e){return"/*# sourceURL="+a.sourceRoot+e+" */"})).concat([i]).join("\n")}return[n].join("\n")}function r(e){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(e))))+" */"}e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var r=n(t,e);return t[2]?"@media "+t[2]+"{"+r+"}":r}).join("")},t.i=function(e,n){"string"==typeof e&&(e=[[null,e,""]]);for(var r={},a=0;a<this.length;a++){var i=this[a][0];"number"==typeof i&&(r[i]=!0)}for(a=0;a<e.length;a++){var o=e[a];"number"==typeof o[0]&&r[o[0]]||(n&&!o[2]?o[2]=n:n&&(o[2]="("+o[2]+") and ("+n+")"),t.push(o))}},t}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default="data:application/vnd.ms-fontobject;base64,bW9kdWxlLmV4cG9ydHMgPSBfX3dlYnBhY2tfcHVibGljX3BhdGhfXyArICJpY29uZm9udC5lb3Q/ZDcxZmM0MjFkMTM5ZjI1ODQwMDExZWFmZDlmMTljN2IiOw=="},function(e,t,n){function r(e){for(var t=0;t<e.length;t++){var n=e[t],r=u[n.id];if(r){r.refs++;for(var a=0;a<r.parts.length;a++)r.parts[a](n.parts[a]);for(;a<n.parts.length;a++)r.parts.push(i(n.parts[a]));r.parts.length>n.parts.length&&(r.parts.length=n.parts.length)}else{for(var o=[],a=0;a<n.parts.length;a++)o.push(i(n.parts[a]));u[n.id]={id:n.id,refs:1,parts:o}}}}function a(){var e=document.createElement("style");return e.type="text/css",c.appendChild(e),e}function i(e){var t,n,r=document.querySelector("style["+m+'~="'+e.id+'"]');if(r){if(p)return v;r.parentNode.removeChild(r)}if(g){var i=h++;r=f||(f=a()),t=o.bind(null,r,i,!1),n=o.bind(null,r,i,!0)}else r=a(),t=s.bind(null,r),n=function(){r.parentNode.removeChild(r)};return t(e),function(r){if(r){if(r.css===e.css&&r.media===e.media&&r.sourceMap===e.sourceMap)return;t(e=r)}else n()}}function o(e,t,n,r){var a=n?"":r.css;if(e.styleSheet)e.styleSheet.cssText=x(t,a);else{var i=document.createTextNode(a),o=e.childNodes;o[t]&&e.removeChild(o[t]),o.length?e.insertBefore(i,o[t]):e.appendChild(i)}}function s(e,t){var n=t.css,r=t.media,a=t.sourceMap;if(r&&e.setAttribute("media",r),b.ssrId&&e.setAttribute(m,t.id),a&&(n+="\n/*# sourceURL="+a.sources[0]+" */",n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(a))))+" */"),e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}var d="undefined"!=typeof document;if("undefined"!=typeof DEBUG&&DEBUG&&!d)throw new Error("vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.");var l=n(15),u={},c=d&&(document.head||document.getElementsByTagName("head")[0]),f=null,h=0,p=!1,v=function(){},b=null,m="data-vue-ssr-id",g="undefined"!=typeof navigator&&/msie [6-9]\b/.test(navigator.userAgent.toLowerCase());e.exports=function(e,t,n,a){p=n,b=a||{};var i=l(e,t);return r(i),function(t){for(var n=[],a=0;a<i.length;a++){var o=i[a],s=u[o.id];s.refs--,n.push(s)}t?(i=l(e,t),r(i)):i=[];for(var a=0;a<n.length;a++){var s=n[a];if(0===s.refs){for(var d=0;d<s.parts.length;d++)s.parts[d]();delete u[s.id]}}}};var x=function(){var e=[];return function(t,n){return e[t]=n,e.filter(Boolean).join("\n")}}()},function(e,t){e.exports=function(e){return"string"!=typeof e?e:(/^['"].*['"]$/.test(e)&&(e=e.slice(1,-1)),/["'() \t\n]/.test(e)?'"'+e.replace(/"/g,'\\"').replace(/\n/g,"\\n")+'"':e)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default="data:font/woff2;base64,bW9kdWxlLmV4cG9ydHMgPSBfX3dlYnBhY2tfcHVibGljX3BhdGhfXyArICJpY29uZm9udC53b2ZmMj80NmNiN2Y4NDg0ODAzZWQyODRmMWYzY2NhYjE1NjllOSI7"},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default="data:font/woff;base64,bW9kdWxlLmV4cG9ydHMgPSBfX3dlYnBhY2tfcHVibGljX3BhdGhfXyArICJpY29uZm9udC53b2ZmPzk4OGIyNjM2YjA0OWMxNmFkZjU1OTA2ODIxYjE1OTA3Ijs="},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default="data:font/ttf;base64,bW9kdWxlLmV4cG9ydHMgPSBfX3dlYnBhY2tfcHVibGljX3BhdGhfXyArICJpY29uZm9udC50dGY/ZTY0NjEyZjI1NzVlZTE2MDI3NThhMGQ0Y2QzM2JkYjgiOw=="},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default="data:image/svg+xml;base64,bW9kdWxlLmV4cG9ydHMgPSBfX3dlYnBhY2tfcHVibGljX3BhdGhfXyArICJpY29uZm9udC5zdmc/ZjNkOTFhZjA3MmQ2MjI1MTJlYjQ4YzExYmU5NzAzZTUiOw=="},function(e,t){e.exports=function(e,t,n,r,a,i){var o,s=e=e||{},d=typeof e.default;"object"!==d&&"function"!==d||(o=e,s=e.default);var l="function"==typeof s?s.options:s;t&&(l.render=t.render,l.staticRenderFns=t.staticRenderFns,l._compiled=!0),n&&(l.functional=!0),a&&(l._scopeId=a);var u;if(i?(u=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(i)},l._ssrRegister=u):r&&(u=r),u){var c=l.functional,f=c?l.render:l.beforeCreate;c?(l._injectStyles=u,l.render=function(e,t){return u.call(t),f(e,t)}):l.beforeCreate=f?[].concat(f,u):[u]}return{esModule:o,exports:s,options:l}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(18),a=function(e){return e&&e.__esModule?e:{default:e}}(r);t.default={name:"right-menu",props:{rightMenuStatus:String,rightMenuTop:String,rightMenuLeft:String,rightMenuList:Array,width:[String,Number]},components:{menus:a.default},data:function(){return{show:!1}},methods:{handleRight:function(e){e.returnValue=!1},handleEnter:function(e,t){e.children&&this.$set(this.rightMenuList[t],"show",!0)},handleLeave:function(e,t){e.children&&this.$set(this.rightMenuList[t],"show",!1)}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={name:"menus",props:{data:Object,show:Boolean,left:[String,Number]},data:function(){return{showChild:!1}},methods:{handleRight:function(e){e.returnValue=!1},handleEnter:function(e,t){console.log(e.width),e.children&&this.$set(this.data.rightMenuList[t],"show",!0)},handleLeave:function(e,t){e.children&&this.$set(this.data.rightMenuList[t],"show",!1)}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a=n(12),i=function(e){return e&&e.__esModule?e:{default:e}}(a),o={},s=function(e){return Object.prototype.toString.call(e).slice(8,-1).toLowerCase()},d=null,l=null,u=1,c=function(e,t,n){var a=e.extend(t),i=document.createElement("div");document.body.appendChild(i);var o=new a({propsData:r({},n)}).$mount();return i.appendChild(o.$el),i};o.install=function(e){document.body.addEventListener("click",function(){null!=d&&(document.body.removeChild(d),d=null)}),document.body.addEventListener("contextmenu",function(e){var t=e===l;null==d||t||(document.body.removeChild(d),d=null)}),e.directive("rightMenu",function(t,n){if(null==t)throw"右键指令错误:元素未绑定";t.oncontextmenu=function(t){function r(e,t,n){for(var r=e.some(function(e){return e.break}),a=0;a<e.length;a++){u+=1;var i={text:e[a].label,handler:"function"===s(e[a].handler)&&e[a].handler,id:u,disabled:!!e[a].disabled&&e[a].disabled};i.break=r?!!e[a].break&&e[a].break:(a+1)%3==0,"object"===s(e[a].children)?i.children=n(e[a].children):i.children=!1,t.push(i)}}function a(e){if("object"===s(e)){var t={rightMenuList:[],width:e.width?e.width:166,show:!1},n=e.content;return"array"===s(n)&&n.length>0&&(r(n,t.rightMenuList,a),t)}return!1}if(l=t,null!=d&&(document.body.removeChild(d),d=null),!n.value)throw"右键指令错误:传值必须是对象";var o=n.value.width,f=n.value.content;if(!Array.isArray(f))throw"右键指令错误:指令内容content必须为数组";var h=[];r(f,h,a);var p=t.clientX,v=t.clientY;return console.log(h),d=c(e,i.default,{rightMenuStatus:"block",rightMenuTop:v+"px",rightMenuLeft:p+"px",width:o||166,rightMenuList:h}),!1}})},t.default=o},function(e,t,n){"use strict";function r(e){n(13),n(16)}Object.defineProperty(t,"__esModule",{value:!0});var a=n(9),i=n.n(a);for(var o in a)"default"!==o&&function(e){n.d(t,e,function(){return a[e]})}(o);var s=n(24),d=n(8),l=r,u=d(i.a,s.a,!1,l,"data-v-c7fadb1a",null);t.default=u.exports},function(e,t,n){var r=n(14);"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);n(2)("94780c04",r,!0,{})},function(e,t,n){var r=n(3);t=e.exports=n(0)(!1),t.push([e.i,"@font-face{font-family:self-right-arraw;src:url("+r(n(1))+");src:url("+r(n(1))+'?#iefix) format("embedded-opentype"),url('+r(n(4))+') format("woff2"),url('+r(n(5))+') format("woff"),url('+r(n(6))+') format("truetype"),url('+r(n(7))+'#iconfont) format("svg")}.self-right-arraw[data-v-c7fadb1a]{font-family:self-right-arraw!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}',""])},function(e,t){e.exports=function(e,t){for(var n=[],r={},a=0;a<t.length;a++){var i=t[a],o=i[0],s=i[1],d=i[2],l=i[3],u={id:e+":"+a,css:s,media:d,sourceMap:l};r[o]?r[o].parts.push(u):n.push(r[o]={id:o,parts:[u]})}return n}},function(e,t,n){var r=n(17);"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);n(2)("78b0635d",r,!0,{})},function(e,t,n){t=e.exports=n(0)(!1),t.push([e.i,"[data-v-c7fadb1a]{box-sizing:border-box}.right-menus[data-v-c7fadb1a]{position:fixed;left:0;top:0;width:166px;height:auto;background-color:#f2f2f2;border:1px solid #c2c1c2;box-shadow:0 10px 10px #c2c1c2;display:none;border-radius:5px;font-size:14px;padding:2px 0;z-index:3000}.menu-item[data-v-c7fadb1a]{position:relative}.menu-flex[data-v-c7fadb1a]{padding:0 6px;display:flex;justify-content:space-between;align-items:center;height:24px;cursor:pointer}.menu-flex[data-v-c7fadb1a]:hover{background:#888}.disabled[data-v-c7fadb1a]{cursor:not-allowed;color:#c0c4cc}.disabled[data-v-c7fadb1a]:hover{background:#f2f2f2}.inline[data-v-c7fadb1a]{border-bottom:1px solid #3e3c3c40;display:block;width:100%;margin:2px 0}",""])},function(e,t,n){"use strict";function r(e){n(19),n(21)}Object.defineProperty(t,"__esModule",{value:!0});var a=n(10),i=n.n(a);for(var o in a)"default"!==o&&function(e){n.d(t,e,function(){return a[e]})}(o);var s=n(23),d=n(8),l=r,u=d(i.a,s.a,!1,l,"data-v-2ba23b23",null);t.default=u.exports},function(e,t,n){var r=n(20);"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);n(2)("fb6ff912",r,!0,{})},function(e,t,n){var r=n(3);t=e.exports=n(0)(!1),t.push([e.i,"@font-face{font-family:self-right-arraw;src:url("+r(n(1))+");src:url("+r(n(1))+'?#iefix) format("embedded-opentype"),url('+r(n(4))+') format("woff2"),url('+r(n(5))+') format("woff"),url('+r(n(6))+') format("truetype"),url('+r(n(7))+'#iconfont) format("svg")}.self-right-arraw{font-family:self-right-arraw!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}',""])},function(e,t,n){var r=n(22);"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);n(2)("151249d7",r,!0,{})},function(e,t,n){t=e.exports=n(0)(!1),t.push([e.i,"[data-v-2ba23b23]{box-sizing:border-box}.menus[data-v-2ba23b23]{position:absolute;left:0;top:0;width:166px;height:auto;background-color:#f2f2f2;border:1px solid #c2c1c2;box-shadow:0 10px 10px #c2c1c2;display:none;border-radius:5px;font-size:14px;padding:2px 0;z-index:3100}.menu-flex[data-v-2ba23b23]{padding:0 6px;display:flex;justify-content:space-between;align-items:center;height:24px;cursor:pointer}.menu-flex[data-v-2ba23b23]:hover{background:#888}.disabled[data-v-2ba23b23]{cursor:not-allowed;color:#c0c4cc}.disabled[data-v-2ba23b23]:hover{background:#f2f2f2}.inline[data-v-2ba23b23]{border-bottom:1px solid #3e3c3c40;display:block;width:100%;margin:2px 0}",""])},function(e,t,n){"use strict";var r=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"menus",style:{width:e.data.width+"px",left:Number(e.left)-5+"px",display:e.show?"block":"none"},on:{contextmenu:e.handleRight}},e._l(e.data.rightMenuList,function(t,r){return n("div",{key:t.id,staticClass:"menu-item",on:{mouseenter:function(n){return e.handleEnter(t,r)},mouseleave:function(n){return e.handleLeave(t,r)}}},[!t.disabled&&t.handler?n("div",{staticClass:"menu-flex",class:{disabled:t.disabled},on:{click:t.handler}},[n("span",{staticClass:"title"},[e._v(e._s(t.text)+" ")]),e._v(" "),t.children?n("span",{staticClass:"self-right-arraw"},[e._v("")]):e._e()]):n("div",{staticClass:"menu-flex",class:{disabled:t.disabled}},[n("span",{staticClass:"title"},[e._v(e._s(t.text)+" ")]),e._v(" "),t.children?n("span",{staticClass:"self-right-arraw"},[e._v("")]):e._e()]),e._v(" "),t.children?n("menus",{attrs:{data:t.children,show:t.show,left:e.data.width}}):e._e(),e._v(" "),t.break?n("span",{staticClass:"inline"}):e._e()],1)}),0)},a=[],i={render:r,staticRenderFns:a};t.a=i},function(e,t,n){"use strict";var r=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"right-menus",style:{display:e.rightMenuStatus,top:e.rightMenuTop,left:e.rightMenuLeft,width:e.width+"px"},on:{contextmenu:e.handleRight}},e._l(e.rightMenuList,function(t,r){return n("div",{key:t.id,staticClass:"menu-item",on:{mouseenter:function(n){return e.handleEnter(t,r)},mouseleave:function(n){return e.handleLeave(t,r)}}},[!t.disabled&&t.handler?n("div",{staticClass:"menu-flex",class:{disabled:t.disabled},on:{click:t.handler}},[n("span",{staticClass:"title"},[e._v(e._s(t.text)+" ")]),e._v(" "),t.children?n("span",{staticClass:"self-right-arraw"},[e._v("")]):e._e()]):n("div",{staticClass:"menu-flex",class:{disabled:t.disabled}},[n("span",{staticClass:"title"},[e._v(e._s(t.text)+" ")]),e._v(" "),t.children?n("span",{staticClass:"self-right-arraw"},[e._v("")]):e._e()]),e._v(" "),t.children?n("menus",{attrs:{data:t.children,show:t.show,left:e.width}}):e._e(),e._v(" "),t.break?n("span",{staticClass:"inline"}):e._e()],1)}),0)},a=[],i={render:r,staticRenderFns:a};t.a=i}])});
//# sourceMappingURL=right-menu.js.map