v-explorer

A vue component to explore files and folders.
873 1
Install
npm install v-explorer
Latest Version:1.0.4
Vue:2
License:MIT
Last Updated:Apr 2, 2019
Links: GitHub  ·  npm
Maintainer: lucasreis

v-explorer

A "file" explorer component for Vue.

How to:

Install

Yarn: yarn add v-explorer

NPM: npm i v-explorer --save

Use


JS
import Vue from 'vue'
import {Explorer, renameOption, File} from 'v-explorer'

Vue.component('v-explorer', Explorer); //for global usage

new Vue({
    el: '#app',
    data: {
        files: [],
        options: []
    },
    mounted() {
        this.options.push(renameOption);
        this.files =  [
            new File(1, "Folder 1", 10, 'folder'),
        ];
	this.files[0].dir = true;
        setTimeout(function() {
            this.files.push(new File(2, "Folder 2", 8, 'folder', 1, false, 0, true));			
        }.bind(this), 3000);
    },
    methods: {
        contextmenu(e) {}, //handle context menu events
        uploadCanceled(file) {}, //handle cancel events
        fileRename(file) {}, //handle rename events
        drop(files) {}, //handle drop events
        move(e) {} //handle move events
    }
});
HTML
<div id="app" style="height: 480px; width: 800px; border: 1px solid red; position: relative; top: 30px;">
    <v-explorer height="50%" 
    :files="files" :options="options" @contextmenu="contextmenu" 
    @upload-canceled="uploadCanceled" 
    @file-rename="fileRename" @drop="drop" @move="move"></v-explorer>
</div>

Will render something like this: v-explorer example You can see the whole code of this example in dist/index.html and assets/js/app.js.

Events


contextmenu

It will pass the selected file(s), if any, when a right click is executed.

select

It will pass the selected file when a left click is executed.

dragstart/dragend

It will pass the selected file when a file is dragged.

upload-canceled

It will pass the file that the upload has been canceled

file-rename

It will pass the file that has been renamed

drop

It will pass the file that has been dropped

move

It will pass the file that has been moved (after it's dropped)

dblclick

It will pass the file that has been double clicked

Props


files (required|array)

The files that are going to be displayed

Checkout the File class.

options (required|array)

The context menu options

Checkout the Option class.

width

The container's width (default: 100%|string)

height

The container's height (default: 100%|string)

root-drive

The root letter (default C:|string)

can-rename-files

Set if the user can rename the files (default: true|boolean)

You can also disable this options individually, checkout the Option class.

auto-resize-options

Explorer will try to resize the context menu options that don't fit will. It may have some unwanted behaviour so you can disable it by passing false to this option. (default: true|boolean)

Getters


In order to access some explorer data, you will need to import its store and get what you want like below:

import Vue from 'vue'
import {Explorer, store} from 'v-explorer'

Vue.component('v-explorer', Explorer); //for global usage

new Vue({
    el: '#app',
    store,
    computed: {
        currentFolder() { //returns the current displayed folder
            return this.$store.getters.currentFolder;
          },
          selectedFiles() { //return an array of the selected files
              return this.$store.getters.selectedFiles;
          }
      }
  })

Methods


You may also call some methods to change things on v-explorer. To do so, you will need to commit the action on the store.

import Vue from 'vue'
import {Explorer, store} from 'v-explorer'

Vue.component('v-explorer', Explorer); //for global usage

new Vue({
    el: '#app',
    store,
    methods: {
        openFolder() { //Open a folder from the current displayed folder
            this.$store.commit('openFolder', folder);
        }
    }
  })

Related Packages

vue-full-screen-file-drop

Vue component for full screen file drop

16,061 19
bxs-ui-vue

BSX Components

3,870
@~crazy/watcher

对象观察者

1,049
vue-cookies-ts

A simple Vue.js plugin for handling browser cookies

41,932 3
gitee-ent

A component library for Gitee Enterprise

17,708

Version History

Version Released Vue License
1.0.4 ^2.5.16 MIT
1.0.3 ^2.5.16 MIT
1.0.2 ^2.5.16 MIT
1.0.1 ^2.5.16 MIT
1.0.0 ^2.5.16 MIT