File tree Expand file tree Collapse file tree 5 files changed +59
-10
lines changed Expand file tree Collapse file tree 5 files changed +59
-10
lines changed Original file line number Diff line number Diff line change @@ -101,9 +101,9 @@ import '@wsfe/vue-tree/style.css'
101101| select | 选中时触发(单选) | 被选中的节点信息 |
102102| unselect | 取消选中时触发(单选) | 被取消选中的节点信息 |
103103| selected-change | 选中/取消选中时触发(单选) | 被选中节点 |
104- | click | 点击节点时触发 | 节点信息 |
105- | node-dblclick | 双击节点时触发 | 节点信息 |
106- | node-right-click | 右击节点时触发 | 节点信息 |
104+ | click | 点击节点时触发 | 节点信息, 鼠标事件 |
105+ | node-dblclick | 双击节点时触发 | 节点信息, 鼠标事件 |
106+ | node-right-click | 右击节点时触发 | 节点信息, 鼠标事件 |
107107| node-dragstart | 开始拖拽节点时触发 | 节点信息, 拖拽事件对象 |
108108| node-dragenter | dragenter 时触发 | 节点信息 , 拖拽事件对象, 事件触发的节点部位 ` 'before' \| 'body' \| 'after' ` |
109109| node-dragover | dragover 时触发 | 节点信息 , 拖拽事件对象, 事件触发的节点部位 ` 'before' \| 'body' \| 'after' ` |
Original file line number Diff line number Diff line change 1010 ref =" basicTreeRef"
1111 :data =" basicUsage"
1212 :nodeClassName =" node => `generated-class-${node.id}`"
13+ @click =" handleClick"
14+ @node-dblclick =" handleDblClick"
15+ @node-right-click =" handleRightClick"
1316 />
1417 </div >
1518 </div >
@@ -268,10 +271,27 @@ export default defineComponent({
268271 basicTreeRef .value .scrollTo (basicUsage .value [0 ].id , 0 )
269272 }
270273
274+ const handleClick = (node : TreeNode , e : MouseEvent ) => {
275+ console .log (' click' , node , e )
276+ console .log (' click mouse position' , e .x , e .y )
277+ }
278+ const handleDblClick = (node : TreeNode , e : MouseEvent ) => {
279+ console .log (' node-dblclick' , node , e )
280+ console .log (' node-dblclick mouse position' , e .x , e .y )
281+ }
282+ const handleRightClick = (node : TreeNode , e : MouseEvent ) => {
283+ e .preventDefault ()
284+ console .log (' node-right-click' , node , e )
285+ console .log (' node-right-click mouse position' , e .x , e .y )
286+ }
287+
271288 return {
272289 // 基本用法
273290 basicUsage ,
274291 basicTreeRef ,
292+ handleClick ,
293+ handleDblClick ,
294+ handleRightClick ,
275295 handleExpandAll ,
276296 handleCollapseAll ,
277297
Original file line number Diff line number Diff line change 11{
22 "name" : " @wsfe/vue-tree" ,
3- "version" : " 3.0.10 " ,
3+ "version" : " 3.1.0 " ,
44 "types" : " ./types" ,
55 "description" : " A vue tree component using virtual list." ,
66 "main" : " ./dist/v3/vue-tree.umd.js" ,
Original file line number Diff line number Diff line change @@ -219,8 +219,8 @@ export default defineComponent({
219219 emit (' check' , fullData .value )
220220 }
221221
222- function handleSelect(): void {
223- emit (' click' , fullData .value )
222+ function handleSelect(e : MouseEvent ): void {
223+ emit (' click' , fullData .value , e )
224224 if (props .selectable ) {
225225 if (props .disableAll || props .data ?.disabled ) return
226226 if (props .data ?.selected && ! props .unselectOnClick ) return
@@ -232,12 +232,12 @@ export default defineComponent({
232232 }
233233 }
234234
235- function handleDblclick(): void {
236- emit (' node-dblclick' , fullData .value )
235+ function handleDblclick(e : MouseEvent ): void {
236+ emit (' node-dblclick' , fullData .value , e )
237237 }
238238
239- function handleRightClick(): void {
240- emit (' node-right-click' , fullData .value )
239+ function handleRightClick(e : MouseEvent ): void {
240+ emit (' node-right-click' , fullData .value , e )
241241 }
242242
243243 // #region Drag handlers
Original file line number Diff line number Diff line change @@ -611,3 +611,32 @@ describe('节点拖拽测试', () => {
611611 } )
612612 } )
613613} )
614+
615+ describe ( '节点鼠标事件' , ( ) => {
616+ it ( '点击、双击与右键' , done => {
617+ const data = genData ( ) . data
618+ const wrapper = mount ( VTree as any , {
619+ propsData : {
620+ data,
621+ }
622+ } )
623+ const vm = wrapper . vm
624+
625+ vm . $nextTick ( ( ) => {
626+ const treeNodes : any [ ] = wrapper . findAllComponents ( { name : 'CTreeNode' } )
627+
628+ treeNodes [ 0 ] . find ( '.ctree-tree-node__title' ) . trigger ( 'click' )
629+ treeNodes [ 0 ] . find ( '.ctree-tree-node__title' ) . trigger ( 'dblclick' )
630+ treeNodes [ 0 ] . find ( '.ctree-tree-node__title' ) . trigger ( 'contextmenu' )
631+ vm . $nextTick ( ( ) => {
632+ expect ( wrapper . emitted ( 'click' ) ) . toHaveLength ( 1 )
633+ expect ( ( wrapper . emitted ( 'click' ) ?. [ 0 ] as any ) ?. [ 1 ] ) . toBeInstanceOf ( MouseEvent )
634+ expect ( wrapper . emitted ( 'node-dblclick' ) ) . toHaveLength ( 1 )
635+ expect ( ( wrapper . emitted ( 'node-dblclick' ) ?. [ 0 ] as any ) ?. [ 1 ] ) . toBeInstanceOf ( MouseEvent )
636+ expect ( wrapper . emitted ( 'node-right-click' ) ) . toHaveLength ( 1 )
637+ expect ( ( wrapper . emitted ( 'node-right-click' ) ?. [ 0 ] as any ) ?. [ 1 ] ) . toBeInstanceOf ( MouseEvent )
638+ done ( )
639+ } )
640+ } )
641+ } )
642+ } )
You can’t perform that action at this time.
0 commit comments