使用Ant Design UI库实现类似百度网盘

百度网盘就是文件层级明显

需求:

1、默认展示根目录下的文件及文件夹

2、实现上传功能,支持单个、多个文件的上传,大文件打包上传

3、实现点击目录可进入子目录,点击面包屑切换到对应目录层级

4、实现创建文件夹功能,重命名功能

5、实现文件下载,大文件打包下载

 这个博主牛👍

http://vmartaw.com/2020/04/22/使用Ant-Design-UI库实现类似百度网盘/

 仅供参考代码,react写法

1、新建文件夹、重命名

        

constructor(props) {
    super(props)
    this.state = {
      folder_name: '新建文件夹',
      editingKey: '', // 是否是重命名操作
    }
}


Button onClick={this.addFolder}><Icon type='folder-add' />新建文件夹</Button>


// 新建文件夹
addFolder = () => {
    // 参考图片2
}

columns = [ 参考图片1 ]


.......


import * as projectArchiveService from '../services/index.js';
namespace: 'projectArchiveModal',
state: {
    loading: false,
    backIdValue: '', // 父级标识,第一层级没有父级,标识为空,
    contentTableList: [], // 列表数据
    cataLogList: [], // 面包屑    
},

reducer: {
    setState (state, { payload }) {
        return { ...state, ...payload}
    },
},

thunk: {
    // 获取列表数据
    search ({ payload }, { put } ){
        put({
            type: 'projectArchiveModal/setState',
            payload: {
                loading: true,
            },
        });
        projectArchiveService.projecTableData(payload).then((res) => {
            if(res.code === 200){
                put({
                    type: 'projectArchiveModal/setState',
                    payload: {
                        loading: false,
                        backIdValue: res.data.backId,
                        contentTableList: res.data.content, // 列表数据
                        cataLogList: res.data.cataLog,
                    },
                })
            } else {
                message.error(res.data.message)
                put({
                    type: 'projectArchiveModal/setState',
                    payload: {
                        loading: true,
                    },
                });
            }
        }).catch((err) => {
            throw new Error(err)
        });
    }
},




......

// 获取列表数据
export function projecTableData (payload) {
    return request({
       url: '',
       method: 'post',
       data: {
            ...payload,
       },
    }};
}

// 新建文件夹,点击对勾调接口
export function savaAddNewFolder (payload) {
    return request({
       url: '',
       method: 'post',
       data: {
            ...payload,
       },
    }};
}

// 重命名
export function renameFile (payload) {
    return request({
       url: '',
       method: 'post',
       data: {
            ...payload,
       },
    }};
}

图片1:

图片3:由图片1中的代码产生的触发方法

图片2:

为了避免点击多次”新建文件夹”,新建页面显示许多,自定义一个id

react中一种传递调接口的方法

 拓展:

使用异步加载属性文件夹管理

使用Ant Design UI库实现异步加载树形结构文件夹管理 | WUWEI'S BLOG

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值