IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 微信小程序做一个文档预览 -> 正文阅读

[移动开发]微信小程序做一个文档预览

首先展示效果

在这里插入图片描述
在这里插入图片描述
图片预览:
在这里插入图片描述

视频预览
在这里插入图片描述

js页面

  1. 首先在data中定义变量
    itemId:null,
    saveTopList:[],//存储顶层文件列表
    folderList:[], //存储当前显示的文件列表
    showLever:[], //存储文件的父文件id
    isTop:true, //是否是顶层
  1. 先实现点击文件夹到下层文件去
  getFileDetail(e){
    // debugger
    let that = this;
    let fileId = e.currentTarget.dataset.fileid

    request('/fileNew/findChildFileList',{
      fileId:fileId,
      itemId:app.globalData.itemId,
      pageIndex: 1,
      pageSize: 1000,
    }).then(res=>{
      if(res.data.result){
        // debugger
        if(res.data.result.list.length===0){
          Toast('文件夹为空');
        }else{
          res.data.result.list.map(i=>{
            i.createDate =  tools.dateFormat(i.createDate,'YYYY-MM-DD')
           })
          that.data.showLever.push(fileId);
          that.setData({
            isTop:false,
            folderList:res.data.result.list,
            })
        }
      }
    })

  },

此处要记得把当前点击的文件夹fileId存到showLever数组中去。

  1. 实现点击上一级,回到上一层。
goBack(){
    if(this.data.showLever.length<=1){  //判断此层的上一级是否是顶层
      this.data.showLever.pop()
      this.setData({
        isTop:true,
        folderList:this.data.saveTopList,
        })
    }else{
      this.data.showLever.pop()
      let length = this.data.showLever.length-1

      request('/fileNew/findChildFileList',{
        fileId:this.data.showLever[length],
        itemId:app.globalData.itemId,
        pageIndex: 1,
        pageSize: 1000,
      }).then(res=>{
        if(res.data.result.list.length){
          res.data.result.list.map(i=>{
            i.createDate =  tools.dateFormat(i.createDate,'YYYY-MM-DD')
           })
          this.setData({
          isTop:false,
          folderList:res.data.result.list,
          })
        }
      })
    }
  },

4.实现图片、视频以及文档的预览。
实现文件的预览是下载文件资源到本地。调用wx.downloadFile()方法。客户端直接发起一个 HTTPS GET 请求,返回文件的本地临时路径 (本地路径),单次下载允许的最大文件为 200MB。

  getPreview(e){
    // debugger
    let file = e.currentTarget.dataset.filename
    tools.previewFile(file.fileName,file.fileUrl);
  },

tools.js页面

  //预览文件
    previewFile(fileName,fileUrl){
        let lastIndex = fileName.lastIndexOf('.');
        let extendName = fileName.substring(lastIndex+1,fileName.length);
        if (extendName.includes('mp')) {
            this.previewImageOrMedia(fileUrl,'video')
        } else if (extendName.includes('png') || extendName.includes('jpg')) {
          this.previewImageOrMedia(fileUrl,'image')
        } else {
            console.log('文档')
            this.downLoadFile(fileUrl,extendName)
        }
    },
     //下载文档到本地临时文件中并预览
  downLoadFile(fileUrl,fileExtendName){
     wx.downloadFile({
       url:tools.baseImgUrl()+fileUrl,
       success(res){
         let Path = res.tempFilePath                   
         wx.openDocument({
           fileType:fileExtendName,       
           filePath: Path,                               
           success: function (res) {
             console.log('打开文档成功');
           }
         })

       }
     })
  },

wxml页面

`<button wx:if="{{!isTop}}" bindtap="goBack" class="buttonstyle">上一级</button>   
   <view wx:for="{{folderList}}" wx:for-item="topName" wx:key="fileId">
   <view class="page-content" bindtap="{{topName.fileOrFolder===1?'getFileDetail':'getPreview'}}" data-fileName="{{topName}}" data-fileId="{{topName.fileId}}">
       页面样式.......
    </view>
    <view>`

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-03-03 16:26:11  更:2022-03-03 16:28:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 17:04:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码