1.0.3 • Published 5 years ago

vue-electron-folder v1.0.3

Weekly downloads
2
License
MIT
Repository
-
Last release
5 years ago

vue-electron-folder

vue-electron-folder 是一个适用于vue-electron应用的文件夹管理组件

目录

特性

  • 树形展示文件夹列表
  • 支持不同路径下的多个文件夹管理
  • 支持单选/多选/拖拽操作
  • 支持过滤/搜索文件
  • 支持自定义文件图标
  • 支持文件移动 TODO

演示

Demo

安装

$   npm install vue-electron-folder --save

使用

引入模块

import Folder from 'vue-electron-folder'

注册

全局注册

Vue.use(Folder)

组件内注册

<script>
export default {
  components: { Folder }
}
</script>

基础用法

示例代码:

<template>
  <div class="container">
    <folder :openedFolders="openedFolders"></folder>
  <div>
</template>

<script>
import Folder from 'vue-electron-folder'

export default {
  name: 'DemoComp',
  data () {
    return {
      openedFolders: []
    }
  },
  mounted () {
    this.openedFolders.push('/your/test/folder/path')
  },
  components: { Folder }
}
</script>

<style scoped>
.container{
  height: 500px;
}
</style>

自定义文件图标

需在项目中引入自定义图标的iconfont

示例代码:

<template>
  <div class="container">
    <folder 
      :openedFolders="openedFolders"
      :icons="icons"
    >
    </folder>
  <div>
</template>

<script>
import Folder from 'vue-electron-folder'

export default {
  name: 'DemoComp',
  data () {
    return {
      openedFolders: [],
      icons: {
        '.xlsx': { name: 'iconfile-excel-fill', color: '#56B158' },
        '.docx': { name: 'iconfile-word-fill', color: '#0A84F1' },
        '.pptx': { name: 'iconfile-ppt-fill', color: '#F12E0B' },
        '.zip': { name: 'iconfile-zip-fill', color: '#C8C800' },
        '.7z': { name: 'iconfile-zip-fill', color: '#C8C800' },
        '.pdf': { name: 'iconfile-pdf-fill', color: '#EA4DCF' },
        '.png': { name: 'iconfile-image-fill', color: '#E6880E' },
        '.jpg': { name: 'iconfile-image-fill', color: '#E6880E' },
        '.md': { name: 'iconfile-markdown-fill', color: '#844DEA' },
      }
    }
  },
  mounted () {
    this.openedFolders.push('/your/test/folder/path')
  },
  components: { Folder }
}
</script>

<style scoped>
.container{
  height: 500px;
}
</style>

调试

组件中提供了简单的调试示例

npm install
npm run dev

API

属性

参数说明类型可选值默认值示例
openedFolders打开的文件夹数组。由外层传入,内部监听数组变更Array[]'/home/dir1', '/home/dir2'
checkedFiles勾选的文件Array[]'/home/dir1/file1', '/home/dir2/file2'
includes只显示指定的文件Array[]'.js', '.py', '.html', '.css'
icons自定义的文件图标Objectnull{ '.md': { name: 'iconfile-markdown-fill', color: '#844DEA' } }
maxLevel单次最多遍历的文件夹层级数Number3-
enableClose是否显示关闭文件夹按钮Booleantrue-
enableReload是否显示刷新文件夹按钮Booleantrue-
enableReloadAll是否显示刷新所有文件夹按钮Booleantrue-
multiSelection是否启用多选功能Booleantrue-
multiSelectionBlacklist指定某些文件只能单选Array[]'.js', '.cpp'

事件

事件名说明回调参数
click单击文件/文件夹事件data
select单独选中文件/文件夹事件data
multi-select多选事件selected
dblclick双击文件的事件data
close关闭文件夹的事件data
drag-start开始拖拽的事件selectedFiles, event

插槽

作用域插槽

自定义右键打开的上下文菜单内容,参数为 { node, data }

示例:
  <folder>
    <div slot-scope="{ node, data }">
      <div>name: {{ data.label}}</div>
      <div>path: {{ data.path}}</div>
    </div>
  </folder>

参考

  • VS Code
  • Element UI
1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago

0.0.3

5 years ago

0.0.2

5 years ago

0.0.1

5 years ago