[toc]
### 1. 鼠标移入移出显示或者隐藏分享、下载、更多等图标效果
```
<template>
<div class="border-bottom px-3 py-2 file-list">
<Row>
<Col span="12" class="d-flex align-items-center">
<Checkbox size="small" class="mb-0 mr-3" :value="item.checked"></Checkbox>
<i class="iconfont mr-3" :class="icon" style="font-size:28px"></i>
<small>{{item.name}}</small>
<div class="ml-auto text-primary hide">
<Tooltip content="分享" placement="bottom">
<Icon type="md-share" size="18" class="mx-2 icon" />
</Tooltip>
<Tooltip content="下载" placement="bottom">
<Icon type="md-cloud-download" size="18" class="mx-2 icon" />
</Tooltip>
<Dropdown>
<Icon type="ios-more" size="18" class="mx-2 icon" />
<DropdownMenu slot="list">
<DropdownItem>重命名</DropdownItem>
<DropdownItem>删除</DropdownItem>
</DropdownMenu>
</Dropdown>
</div>
</Col>
<Col span="6" class="d-flex align-items-center">-</Col>
<Col span="6" class="d-flex align-items-center"><small class="text-secondary">{{item.create_time}}</small></Col>
</Row>
</div>
</template>
<script>
const icons = {
dir:{
icon:"icon-file-b-2",
color:"text-warning"
},
image:{
icon:"icon-file-b-6",
color:"text-success"
},
video:{
icon:"icon-file-b-9",
color:"text-primary"
},
text:{
icon:"icon-file-s-7",
color:"text-info"
},
none:{
icon:"icon-file-b-8",
color:"text-muted"
},
};
export default {
props : {
item : Object,
index: [Number,String]
},
computed : {
icon(){
let o = icons[this.item.type]
return `${o.icon} ${o.color}`
}
}
}
</script>
<style scoped="scoped">
.file-list:hover{
background-color: rgba(45,140,240,0.1) !important;
}
.file-list .hide{
display: none;
}
.file-list:hover .hide{
display: flex;
}
</style>
```
### 2. 实现点击删除弹出对话框效果
```
<DropdownItem @click.native="deleteItem">删除</DropdownItem>
methods: {
deleteItem() {
this.$Modal.warning({
title: "提示",
content: "是否要删除当前选中?",
onOk: () => {
this.$Message.info('Clicked ok');
}
});
}
}
```
### 3. 实现点击删除功能效果
```
//media-list.vue
methods: {
deleteItem() {
this.$Modal.confirm({
title: "提示",
content: "是否要删除当前选中?",
onOk: () => {
console.log(this.item, this.index)
this.$emit("on-event",{
type : "delete",
item : this.item,
index : this.index
})
}
});
}
}
```
```
//index.vue
<media-list @on-event="handleEvent" v-for="(item,index) in list" :item="item" :index="index" :key="index"></media-list>
methods : {
handleEvent(e){
switch(e.type){
case "delete" :
this.list.splice(e.index,1);
this.$Message.success("删除成功")
break;
default :
break;
}
}
}
```
- 第一章 VUE-CLI+IVIEW进行项目初始化
- 1.1 使用vue-cli4创建项目
- 1.2 引入iview组件库
- 1.3 引入bootstrap4和图标库
- 1.4 安装和配置vue-router
- 第二章 pc端登录页开发
- 2.1 pc端登录页开发(一)
- 2.2 pc端登录页开发(二)
- 2.3 pc端登录页开发(三)
- 第三章 pc端全局布局开发
- 3.1 pc端全局布局开发(一)
- 3.2 pc端全局布局开发(二) 顶部导航
- 第四章 pc端侧边栏开发
- 4.1 pc端侧边栏开发(一) 菜单
- 4.2 pc端侧边栏开发(二) 容量提示
- 第五章 pc端文件列表开发
- 5.1 pc端文件列表开发(一) 操作条
- 5.2 pc端文件列表开发(二) 列表(1)
- 5.3 pc端文件列表开发(三) 列表(2)
- 第六章 封装多功能文件列表组件
- 6.1 封装文件列表组件(一)
- 6.2 封装文件列表组件(二) 删除
- 6.3 封装文件列表组件(三) 多选操作
- 6.4 封装文件列表组件(四) 重命名
- 6.5 封装文件列表组件(五) 图片预览
- 第七章 前端数据交互开发
- 7.1 pc端交互-引入axios和vuex
- 7.2 pc端交互-注册登录
- 7.3 pc端交互-初始化和退出登录
- 7.4 pc端交互-拦截器完善
- 7.5 权限验证
- 7.6 pc端交互-获取文件列表
- 7.7 pc端交互-创建文件夹
- 7.8 上传文件
- 7.9 pc端交互-文件重命名
- 7.10 pc端交互-批量删除
- 7.11 pc端交互-搜索文件
- 7.12 pc端交互-切换目录
- 7.13 pc端交互-优化体验和筛选类型
- 7.14 pc端交互-下载文件
- 7.15 pc端交互-生成分享链接
- 7.16 pc端交互-我的分享列表
- 7.17 pc端交互-查看分享
- 7.18 pc端交互-保存我的网盘
- 第八章 项目打包与部署
- 8.1 部署前环境搭建
- 8.2 部署pc端部分