微信小程序做一个文档预览

2023-11-11

首先展示效果

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

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

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>`

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

微信小程序做一个文档预览 的相关文章

  • Python基础——函数的基本使用

    文章目录 一 定义 二 属性 三 操作 1 函数的参数 2 函数返回值 3 函数多个返回值 4 多个return语句 5 函数调用函数 6 函数的联系及注释 7 局部变量和全局变量 8 数据的传递 9 lambda表达式 一 定义 1 语法
  • 【TensorFlow】TensorFlow函数精讲之 tf.nn.relu()

    tf nn relu 函数是将大于0的数保持不变 小于0的数置为0 函数如图1所示 ReLU函数是常用的神经网络激活函数之一 图1 ReLU函数图像 下边为ReLU例子 import tensorflow as tf v tf consta
  • 自动控制原理与动态系统的建模与分析

    1 开环系统和闭环系统 反馈控制 1 1开环控制 开环控制系统是指无被控量反馈的系统 即在系统中控制信息的流动未形成闭合回路 1 2 闭环控制 有被控量反馈的控制 即系统的输出信号沿反馈通道又回到系统的输入端 构成闭合通道 也叫做反馈控制
  • go get国内解决办法汇总

    go作为Google大佬的亲儿子 go开发过程中除了SDK自带的包外还经常会需要用到大佬提供的其他包 这些包都在golang org下 而下载这些包需要访问大佬的服务器 国内开发者就会遇到各种的问题 今天就给大家总结一下有哪些途径安装这些包
  • Android Studio Flutter 开发配置

    近来比较闲 就研究下Flutter 开发 在此记录下studio 配置过程 时间是2023 7 19 在 Windows 操作系统上安装和配置 Flutter 开发环境 1 首先下载 Flutter SDKhttps storage flu
  • 基于51单片机水塔水箱液水位WIFI监控报警设计proteus仿真原理图PCB

    功能 0 本项目采用STC89C52作为单片机系统的控制MCU 1 WIFI实时上传当前水位状态 2 通过液位传感器检测液位 检测到最低液位和最高液位时 超过设定阈值将声光报警 3 通过状态指示灯显示当前液位情况 三种颜色 红色代表低于下限

随机推荐

  • python urllib下载文件怎么停止_python下载文件的三种方法

    Python开发中时长遇到要下载文件的情况 最常用的方法就是通过Http利用urllib或者urllib2模块 当然你也可以利用ftplib从ftp站点下载文件 此外Python还提供了另外一种方法requests 下面来看看三种方法是如何
  • unity利用高阶贝塞尔曲线进行的轨道移动

    之前想做一个按照固定的路线进行移动的demo 就想到了路径的曲线 然后就想到了贝塞尔曲线 先上贝塞尔通用公式 借鉴网上的代码和相应的函数公式 组成了一个demo 通用的贝塞尔曲线工具类 using System Collections us
  • elasticsearch基础6——head插件安装和web页面查询操作使用、ik分词器

    文章目录 一 基本了解 1 1 插件分类 1 2 插件管理命令 二 分析插件 2 1 es中的分析插件 2 1 1 官方核心分析插件 2 1 2 社区提供分析插件 2 2 API扩展插件 三 Head 插件 3 1 安装 3 2 web页面
  • Python 基础知识5 元组操作

    元组 与列表不同之处 1 使用 定义 2 定以后元组的元素不能修改 元组定义 只有一个元素时元素后加 号 否则为整型 tup1 hello world 120 123 tup2 1 5 4 2 3 tup3 a b c d tup4 pri
  • Maven项目中读取src/main/resources目录下的配置文件

    在Maven项目的开发中 当需要读取src 下的配置文件时 该怎么做 我们假设Resources下有一个文件名为kafka properties的配置文件 为什么用kafka properties 因为这是在做kafka项目的时候碰到的问题
  • global::System.Runtime.Versioning.TargetFrameworkAttribute 特性重复

    visual studio code 反编译 报错 global System Runtime Versioning TargetFrameworkAttribute 特性重复 在 csproj文件内添加
  • itk.js读取.nii.gz文件,vtk.js进行渲染

    我们只需要用到itk中的 readImageArrayBuffer 从这个api我们可以看出 我们需要的是一个ArrayBuffer的数据 那么 我们通过 vtk js中的vtkHttpDataAccessHelper的方法把数据转换成Ar
  • 提高接口并发量,防止崩溃

    思路 对高并发的接口 单独配置线程池 需考虑线程池内的线程数量 以及tomcat总线程数量与CPU的关系 线程池的配置 接口如何配置单独的线程池 异步任务 Async myExecutors 对实时性要求高的 分析下 实时就是同步 每一次请
  • 如何卸载FF推荐?

    很多小伙伴们都发现 近一段时间 自己的电脑中时常会弹出一个叫 FF新推荐 的广告弹窗 扰民不说显示的内容也很猥亵 按理说 电脑上开启拦截软件后 一般的广告弹窗是不会出现的 那么这个能跳过安全工具拦截的家伙是何背景 能否永久地关闭它 今天小编
  • PingCAP刘奇:如何构建一个NewSQL数据库

    PingCAP刘奇 如何构建一个NewSQL数据库 75 0 0 编者按 6月24日 由香港主办 开源社群主导的国际技术会议 香港开源年会2016 HKOSCon 在港召开 PingCAP 联合创始人兼CEO刘奇应邀出席 与大家分享了 Ho
  • [Unity小游戏]打砖块(打方块)教程(超详细)

    Unity小游戏 打砖块 打方块 超详细 打砖块小游戏通常会被当做Unity学习的第一个案例 下面给大家介绍如何实现打砖块案例的 先来张图看看效果 首先我们要知道QWER分别是选择 移动 旋转 缩放工具的快捷键 英文模式下按住才有用 只有在
  • 计算机学报——主题“区块链”,检索到25篇

    CCF期刊导航https mp weixin qq com s Hu ozQG uoYDLN0jQzUhDQhttps mp weixin qq com s Hu ozQG uoYDLN0jQzUhDQ 按时间排序 序号 篇名 时间 关键词
  • main函数的前序执行过程简单介绍

    main函数的前序执行过程简单介绍 main函数其实是我们能控制的程序入口 但是程序编译之后进行执行却不是从main函数开始的 这里主要讲解下VC6 0 下编译的程序在执行main函数之前的流程 其实主要为在执行main函数之前做了环境变量
  • 光通量发光强度照度亮度关系_买灯只选瓦数?那就大错特错了,灯具亮度选择大有学问...

    一 在装修中 灯光的选择对最终的效果有着非常大的影响 太亮会曝光刺眼 太暗效果也不好 所以选择灯具也变得非常重要了 首先 说一下影响空间亮度的因素有哪些 1 灯具数量 这个起到直接影响因素 在灯具参数一样的情况下 数量多肯定会越亮 反之同理
  • 前端需要懂的nginx

    前言 作为一名前端 我们除了node作为服务以外 我们还有什么选择 那么简单容易上手的Nginx可以满足你的一切幻想 学习nginx可以让我们更加清晰前端项目上线的整个流程 作为一个前端 或多或少都会对Nginx有一些经验 那为什么还要学习
  • ASTreeView Demo:Add, Edit & Delete nodes

  • 主从数据库一致性问题

    原因 数据库集群的主从数据同步存在延时 延迟期间从库上的读请求会读取到不一致的数据 如下图所示 不管同步还是异步 只要存在数据冗余就存在数据一致性问题 解决方案 整体思路 数据库的主从同步可以实现数据的最终一致性 延迟时间一般在几毫秒以内
  • 电路原理 的 一些基础知识

    电容 与 电感 的 伏安特性 电感的伏安特性公式 电容的伏安特性公式 电感 和 电容 元件的串并联 电感串联 电感并联 电容串联 电容并联 RC电路 的 零输入响应 和 零状态响应 零输入响应 零状态响应 RLC串联谐振电路 变压器等效电路
  • 解决问题:Do not know how to handle these types to promote: {‘DoubleTensor‘, ‘FloatTensor‘}

    今天在使用pytorch1 7训练模型 调用apex时出现了该问题 Doubletensor是64位float类型 Floattensor是32位float类型 调试程序发现第二次迭代时 变量v和msd k 的数据类型不同 如图所示 因此在
  • 微信小程序做一个文档预览

    文档预览 首先展示效果 js页面 wxml页面 首先展示效果 图片预览 视频预览 js页面 首先在data中定义变量 itemId null saveTopList 存储顶层文件列表 folderList 存储当前显示的文件列表 showL