From c623eae5f6b23aa7ab88511308379a75c78795e5 Mon Sep 17 00:00:00 2001 From: linfso Date: Thu, 20 Jun 2024 08:31:17 +0800 Subject: [PATCH] md --- src/components/XdTable/contextMenu.js | 79 +++++ src/components/XdTable/index_adv.vue | 413 ++++++++++++++++++++++++++ 2 files changed, 492 insertions(+) create mode 100644 src/components/XdTable/contextMenu.js create mode 100644 src/components/XdTable/index_adv.vue diff --git a/src/components/XdTable/contextMenu.js b/src/components/XdTable/contextMenu.js new file mode 100644 index 00000000..76480368 --- /dev/null +++ b/src/components/XdTable/contextMenu.js @@ -0,0 +1,79 @@ +export default { + name: 'XdTbContexMenu', + props: { + position: { + type: Object, + default: () => { + return { + top: 0, + left: 0 + } + } + }, + toggleShow:{ + type:Boolean, + default: false + }, + menuList : { + type: Array, + default: () => [] + } + }, + render(h) { + var self = this; + var menuInfo = []; + this.menuList.forEach((ele)=>{ + menuInfo.push(h('li',{ + style: { + width:"100%", + display:"flex" + }, + class: ['xd-table__context--list','ripple'], + on: { + click:function (){ + self.$emit('menuClick', ele) + } + } + }, + [ + h('i', { + class: [ele.icon,'xd-table__context--icon'] + }), + h('span',{class:['xd-table__context--info']}, ele.name) + ])) + }) + return h( + 'div', { + style: { + width:"300px", + padding: "8px 0px", + position:"fixed", + left: this.position.left + "px", + top: this.position.top + "px", + display: this.toggleShow ? "block" : "none", + zIndex:99999, + backgroundColor:"#fff", + borderRadius:"4px" + }, + class: ['xd-table__context--menu'] + }, + menuInfo + ); + }, + computed: { + + }, + data() { + return { + + }; + }, + created() { + + }, + methods: { + menuClick(){ + + } + } +}; diff --git a/src/components/XdTable/index_adv.vue b/src/components/XdTable/index_adv.vue new file mode 100644 index 00000000..c5e6edaf --- /dev/null +++ b/src/components/XdTable/index_adv.vue @@ -0,0 +1,413 @@ + + + +