当前位置: 首页 > news >正文

vue 预览zip

        ZIP的数据从接口传递数据流过来。解析数据流,并将zip的目录绑定到tree中。

1.引入插件jszip:

        yarn add jszip

2.在需要引用的页面引用:

        import JSZip from 'jszip'

3. 实现代码

        

   api(option).then((res)=>{   // 接口获取zip的数据流     let jszip = new JSZip()jszip.loadAsync(res.data).then(zip=>{let myData=[]that.transformData(zip, myData,0,)that.treeData=myData // 将数据绑定到treethat.$nextTick(()=>{that.expandedKeys=['0']})})});transformData(obj, myData, level = 0,) {let id=0if(Object.keys(obj.files).length==0){let fname=this.fileName.substring(0, this.fileName.lastIndexOf("."))let rootData={id:'0',parentId:'', key:'0',title:fname, children:[]}myData.push(rootData)}else{for (let key in obj.files) {let array=key.split('/').filter(item => item != '')if(array.length == level+1){if (obj.files[key].dir) {if(level==0){ let rootData={parentId:'', key:'0',title:array[level], children:[]}myData.push(rootData)this.transformData(obj, rootData,level+1)}else{if(key.indexOf(myData.fullName)===0 && key!= myData.fullName){let newData={ key:myData.id+'-'+id,parentId:myData.id, title:array[level],children:[],fullName:key}myData.children.push(newData)id++this.transformData(obj, newData,level+1)}}}else{ // 文件if(key.indexOf(myData.fullName)==0 && key!=myData.fullName){let data= {parentId:myData.id, key:myData.id+'-'+id,title:array[level],}myData.children.push(data)id++}}}}}return myData;},

http://www.lryc.cn/news/166322.html

相关文章:

  • 人先自辱,而后人辱之
  • web端三维重建算法-colmap++
  • MyBatisPlus(二)基础Mapperr接口:增删改查
  • 基础项目实用案例
  • sprngboot整合kabana
  • PostgreSQL 数据备份恢复
  • 线性代数的本质(七)——特征值和特征向量
  • c语言进阶部分详解(指针初阶)
  • Socks5代理IP在跨境电商与网络游戏中的网络安全应用
  • Gin框架---基础综述
  • 排序算法-快速排序
  • 【Spring容器的启动过程】
  • 普通二本+转专业学计算机是什么感受
  • 力扣1、两数之和
  • 一百七十三、Flume——Flume写入HDFS后的诸多小文件问题
  • Android.mk中C++使用
  • K8S:Pod概念、分类及相关的策略
  • 【Java杂谈】#1 【MCA JAVA后端架构师】
  • Vue3路由
  • Android Studio的笔记--aidl实现和调用
  • 大模型从入门到应用——LangChain:代理(Agents)-[工具包(Toolkit)]
  • VR全景算不算好的创业项目?有哪些特性?
  • Spring系列文章:Spring集成Log4j2⽇志框架、整合JUnit
  • flink的网络缓冲区
  • 产品经理学习笔记
  • 【深入理解Linux锁机制】七、互斥体
  • UGUI画布加载优化
  • SEC的下一步目标是什么?过时的证券法与加密货币行业,哪个会被先淘汰?
  • Kafka3.0.0版本——消费者(独立消费者消费某一个主题数据案例__订阅主题)
  • 笔记本多拓展出一个屏幕