@@ -151,40 +151,33 @@ class FileTreeUI {
151151 attachEvents ( ) {
152152 // 文件夹展开/收起
153153 this . container . querySelectorAll ( '.file-tree-folder' ) . forEach ( ( folder ) => {
154- // 点击箭头切换展开状态
155- const toggle = folder . querySelector ( '.folder-toggle' ) ;
156- if ( toggle ) {
157- toggle . addEventListener ( 'click' , ( e ) => {
158- e . stopPropagation ( ) ;
154+ // 点击文件夹:选中并切换展开/折叠状态
155+ folder . addEventListener ( 'click' , ( e ) => {
159156 const path = folder . dataset . path ;
157+ // 选中文件夹
158+ this . handleItemClick ( e , path , 'folder' ) ;
159+ // 同时切换展开/折叠状态
160160 if ( this . expandedFolders . has ( path ) ) {
161161 this . expandedFolders . delete ( path ) ;
162162 } else {
163163 this . expandedFolders . add ( path ) ;
164164 }
165165 this . render ( ) ;
166166 } ) ;
167- }
168-
169- // 点击文件夹名称进行选择
170- folder . addEventListener ( 'click' , ( e ) => {
171- if ( e . target . classList . contains ( 'folder-toggle' ) ) return ;
172- this . handleItemClick ( e , folder . dataset . path , 'folder' ) ;
173- } ) ;
174167
175- // 文件夹右键菜单
176- folder . addEventListener ( 'contextmenu' , ( e ) => {
177- e . preventDefault ( ) ;
178- const path = folder . dataset . path ;
179- // 如果右键的项目未被选中,则只选中它
180- if ( ! this . selectedItems . has ( path ) ) {
181- this . selectedItems . clear ( ) ;
182- this . selectedItems . add ( path ) ;
183- this . render ( ) ;
184- }
185- this . showContextMenu ( e , path , 'folder' ) ;
168+ // 文件夹右键菜单
169+ folder . addEventListener ( 'contextmenu' , ( e ) => {
170+ e . preventDefault ( ) ;
171+ const path = folder . dataset . path ;
172+ // 如果右键的项目未被选中,则只选中它
173+ if ( ! this . selectedItems . has ( path ) ) {
174+ this . selectedItems . clear ( ) ;
175+ this . selectedItems . add ( path ) ;
176+ this . render ( ) ;
177+ }
178+ this . showContextMenu ( e , path , 'folder' ) ;
179+ } ) ;
186180 } ) ;
187- } ) ;
188181
189182 // 文件项点击
190183 this . container . querySelectorAll ( '.file-tree-item' ) . forEach ( ( item ) => {
0 commit comments