美文网首页
Antd & Draggable 文件资源管理器 (一)

Antd & Draggable 文件资源管理器 (一)

作者: Lisburn | 来源:发表于2020-10-13 18:45 被阅读0次

涉及功能

  1. 可以用作各式办公文件的存放
  2. 迅速检索 / 拖拽排序 / 固定排序
  3. LIST / TABLE 切换
  4. 鼠标右按键响应菜单 / 焦点事件

a. 打开
b. 重命名弹框
c. 移动弹框
d. 排序
e. 删除

  1. 鼠标左按键焦点事件 / 双击事件 / 排序事件
  2. 面包屑 / 面包屑下拉菜单 / 记录
  3. 新增文件夹 / 新增文件

主题部分结构

        <ul class="container" v-show="this.conversionList">
            <draggable @update="datadragEnd" :move="move" :list="list">
                <transition-group>
                    <li v-for="item in list" :key="item.key">
                        <a-dropdown :trigger="['contextmenu']">
                            <div @click="options(item.key)" @dblclick="folder(item.childrenId != undefined ? item.childrenId : item.src , item.childrenId != undefined ? 'childrenId' : 'src')" @contextmenu.prevent="mouseclick(item.key)" :class="active==item.key ? 'activeClass' : '' ">
                                <h3>
                                    <a-icon :type="item.type == 'folder' ? 'folder' : 'file'" theme="twoTone"/>
                                </h3>
                                <p>{{item.name}}</p>
                            </div>
                            <a-menu slot="overlay">
                                <a-menu-item key="1" @click="openfolder()">
                                    OPEN
                                </a-menu-item>
                                <a-menu-item key="2" @click="openRenamed(item.title , item.key)">
                                    RENAMED
                                </a-menu-item>
                                <a-menu-item key="3">
                                    MOVING
                                </a-menu-item>
                                <a-menu-item key="4" @click="showConfirm(item.key)">
                                    DELETE
                                </a-menu-item>
                            </a-menu>
                        </a-dropdown>
                    </li>
                </transition-group>
            </draggable>
        </ul>
<div @click="options(item.key)" @dblclick="folder(item.childrenId != undefined ? item.childrenId : item.src , item.childrenId != undefined ? 'childrenId' : 'src')" @contextmenu.prevent="mouseclick(item.key)" :class="active==item.key ? 'activeClass' : '' ">

@click="options(item.key)"

左键焦点事件

@dblclick="folder(item.childrenId != undefined ? item.childrenId : item.src , item.childrenId != undefined ? 'childrenId' : 'src')"

双击事件
因为双击即进入文件夹或打开文件,此处传值做了三元运算判定双击文件类型
第一个值

item.childrenId != undefined ? item.childrenId : item.src
子文件夹是否存在 ? 存在传入ID :不存在传入文件SRC

item.childrenId != undefined ? 'childrenId' : 'src')"
子文件夹是否存在 ? 存在传入文件夹类型 :不存在传入文件类型

@contextmenu.prevent="mouseclick(item.key)"

鼠标右键焦点事件,并做冒泡处理

:class="active==item.key ? 'activeClass' : '' "

焦点样式处理

改名弹框

        <a-modal v-model="renamed" :title="folderName.name" on-ok="handleOk">
            <template slot="footer">
                <a-button key="back" @click="handleCancel">
                    Return
                </a-button>
                <a-button key="submit" type="primary" :loading="loading" @click="FolderNameUpload(folderName.id)">
                    Submit
                </a-button>
            </template>
            <h3 class="title">Please enter the name to be modified</h3>
            <input class="renamed" type="text" v-model="newName" >
        </a-modal>

相关文章

网友评论

      本文标题:Antd & Draggable 文件资源管理器 (一)

      本文链接:https://www.haomeiwen.com/subject/viwdpktx.html