1 line
3.6 KiB
JSON
1 line
3.6 KiB
JSON
{"remainingRequest":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/components/common/ContextMenu.vue?vue&type=style&index=0&id=5ac8f30c&lang=stylus&scoped=true","dependencies":[{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/components/common/ContextMenu.vue","mtime":1742646402766},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/css-loader/dist/cjs.js","mtime":1743264596127},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/loaders/stylePostLoader.js","mtime":1743264597030},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/postcss-loader/src/index.js","mtime":1743264596321},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/stylus-loader/index.js","mtime":1743264596421},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/style-resources-loader/lib/index.js","mtime":1743264596701},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js","mtime":1743264596512}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ci5jb250ZXh0bWVudQogIHBvc2l0aW9uIGZpeGVkCiAgei1pbmRleCAxMDAwCiAgYm9yZGVyLXJhZGl1cyA0cHgKICBib3JkZXIgMXB4IGxpZ2h0Z3JleSBzb2xpZAogIGJveC1zaGFkb3cgNHB4IDRweCAxMHB4IGxpZ2h0Z3JleSAhaW1wb3J0YW50Ci5hbnQtbWVudS1pdGVtCiAgbWFyZ2luIDAgIWltcG9ydGFudAo="},{"version":3,"sources":["ContextMenu.vue"],"names":[],"mappings":";AAoFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"ContextMenu.vue","sourceRoot":"src/components/common","sourcesContent":["<template>\n <a-menu\n v-show=\"visible\"\n class=\"contextmenu\"\n :style=\"style\"\n :selectedKeys=\"selectedKeys\"\n @click=\"handleClick\"\n >\n <a-menu-item v-for=\"item in list\" :key=\"item.key\">\n <a-icon v-if=\"item.icon\" :type=\"item.icon\"/>\n <span>{{ item.text }}</span>\n </a-menu-item>\n </a-menu>\n</template>\n\n<script>\nexport default {\n name: 'ContextMenu',\n props: {\n visible: {\n type: Boolean,\n required: false,\n default: false,\n },\n list: {\n type: Array,\n required: true,\n default: () => [],\n },\n },\n data() {\n return {\n left: 0,\n top: 0,\n target: null,\n selectedKeys: [],\n };\n },\n computed: {\n style() {\n return {\n left: this.left + 'px',\n top: this.top + 'px',\n };\n },\n },\n created() {\n const clickHandler = () => this.closeMenu();\n const contextMenuHandler = e => this.setPosition(e);\n window.addEventListener('click', clickHandler);\n window.addEventListener('contextmenu', contextMenuHandler);\n this.$emit('hook:beforeDestroy', () => {\n window.removeEventListener('click', clickHandler);\n window.removeEventListener('contextmenu', contextMenuHandler);\n });\n },\n methods: {\n closeMenu() {\n this.$emit('update:visible', false);\n },\n setPosition(e) {\n this.left = e.clientX;\n this.top = e.clientY;\n this.target = e.target;\n },\n handleClick({ key }) {\n this.$emit('select', key, this.target);\n this.closeMenu();\n },\n },\n};\n</script>\n\n<style lang=\"stylus\" scoped>\n .contextmenu\n position fixed\n z-index 1000\n border-radius 4px\n border 1px lightgrey solid\n box-shadow 4px 4px 10px lightgrey !important\n .ant-menu-item\n margin 0 !important\n</style>\n"]}]} |