实现一个文件选择组件

简介: 实现一个文件选择组件

前言


花了点时间利用广度与深度优先搜索算法实现了一个文件选择插件,支持无限层次的文件夹嵌套,已开源并打包上传到了npm。


本文将跟大家分享一下这个插件,欢迎各位感兴趣的开发者阅读本文。


插件安装


yarn add file-folder-selector
# or
npm install file-folder-selector --save


插件使用


在你需要使用此插件的业务代码中导入插件。


<script setup lang="ts">
  import { FileSelect } from "file-folder-selector";
  // 组件的样式文件,可以在项目的业务代码内导入,也可以在项目的入口文件导入
  import "file-folder-selector/dist/style.css";
</script>


template中使用即可。


<template>
  <file-select />
</template>


完成上述步骤后,启动项目即可看到如下所示的效果🤗


640.png

                                         效果图


参数说明


插件接收5个可选参数:


  • fileData 文件树结构数据
  • title 文件名, 值为string 类型
  • id 文件id, 值为string 类型
  • type 文件类型, 值为"file"或"folder"
  • imgSrc 文件图片地址(可选参数),值为string 类型
  • childData 子文件数据(可选参数),值为array类型,如果type为"folder",则传此参数,数组中的每一项类型就为fileData的类型。
  • defaultFolderImage 默认的文件夹图标,值为string 类型
  • defaultFileImage 默认的文件图标,值为string 类型
  • defaultSearchImage 默认的搜索图标,值为string 类型
  • defaultFolderPathImage 默认的文件夹路径图标,值为string 类型


注意:插件默认的图标更换不支持svg格式的图片,插件的fileData参数可参考源码中的FileConfig.json文件


插件提供了1个回调函数:


  • getSelectedFile 获取已选择的文件,它有1个参数selectedArray,它值为array类型,数组中的每一项类型为:{title: string; id: string; type: string }


具体的使用方法可以参考源码中的 file-select-test.vue 文件。


写在最后


至此,插件的所有使用方法就介绍完了。


我是神奇的程序员,一位前端开发工程师。


如果你对我感兴趣,请移步我的个人网站,进一步了解。

  • 公众号无法外链,如果文中有链接,可点击下方阅读原文查看😊
相关文章
|
7月前
|
JavaScript 前端开发
vue前端下载,实现点击按钮弹出本地窗口,选择自定义保存路径
这个不用代码实现(网上也找不到方法可以调出另存为窗口),更改浏览器设置就可以,否则,现在的浏览器都是默认直接保存到下载路径中
545 3
|
7月前
|
JavaScript 前端开发 搜索推荐
不想要网页默认的右键菜单栏,怎么封装一个可以自定义的右键菜单组件?
不想要网页默认的右键菜单栏,怎么封装一个可以自定义的右键菜单组件?
113 0
|
5月前
|
JavaScript
【vue】el-dialog 内的tinymce弹窗被遮挡的解决办法 及 tinymce打开弹出菜单后直接关闭对话组件,导致该弹出菜单残留
【vue】el-dialog 内的tinymce弹窗被遮挡的解决办法 及 tinymce打开弹出菜单后直接关闭对话组件,导致该弹出菜单残留
379 6
|
JavaScript
46EasyUI 窗口- 自定义窗口工具栏
46EasyUI 窗口- 自定义窗口工具栏
60 0
|
7月前
antd如何隐藏Upload组件的删除和预览图标
antd如何隐藏Upload组件的删除和预览图标
387 1
|
7月前
uniapp popup弹出窗详解以及相关属性
uniapp popup弹出窗详解以及相关属性
704 3
|
7月前
|
JavaScript API
Element Plus组件库中的input组件如何点击查看按钮时不可编辑,点击编辑时可编辑使用setup
Element Plus组件库中的input组件如何点击查看按钮时不可编辑,点击编辑时可编辑使用setup
146 0
|
JavaScript 前端开发
49EasyUI 窗口- 自定义带有工具条和按钮的对话框
49EasyUI 窗口- 自定义带有工具条和按钮的对话框
45 0
【C#】【桌面应用开发】拖拽文件到文本框获得所拖拽文件的路径
【C#】【桌面应用开发】拖拽文件到文本框获得所拖拽文件的路径
232 0
【C#】【桌面应用开发】拖拽文件到文本框获得所拖拽文件的路径
|
JavaScript 前端开发
如使用原生js自定义右键菜单
如使用原生js自定义右键菜单
272 0