1.先去官网下载JS
https://wwo.wps.cn/docs-js-sdk/#/base/quick-start
2.main.js

import * as WPS from './assets/web/web-office-sdk-v1.1.3.es'
Vue.prototype.wps = WPS;

点击查看,先调后端给的接口,获取关键的jtoken,jwpsUrl

  // 修改async change() {let _this = this;try {let { data } = await _this.$http.get(`/v1/3rd/file/getViewUrlWebPath?fileId=${_this.fileid}&model=write`);if (data.success == true) {let form = {};form.jtoken = data.data.token;form.jwpsUrl = data.data.wpsUrl;sessionStorage.setItem("wps", JSON.stringify(form));}} catch (error) {}console.log("fileid", this.fileid);// window.open("/onlineediting");const jump = this.$router.resolve({ name: "onlineediting" });window.open(jump.href, "_blank");// this.$router.push("/onlineediting");}

跳转的页面

<template><div class="main"><div v-if="isview"><viewFile v-if="isview" v-bind:wpsUrl="jwpsUrl" v-bind:token="jtoken" /></div></div>
</template>
<script>
import viewFile from "../../components/view";
export default {data() {return {jwpsUrl: "",jtoken: "",isview: true};},created() {let acc = JSON.parse(sessionStorage.getItem("wps"));console.log(acc);this.jwpsUrl = acc.jwpsUrl;this.jtoken = acc.jtoken;},// 通过组件渲染wps的 iframe 框架components: {viewFile},methods: {return1() {this.isview = false;console.log(123);}}
};
</script><style lang='scss' scoped>
.main {width: 100%;height: 100%;padding: 2vw;display: flex;justify-content: center;align-items: center;position: relative;
}
.btn {position: fixed;top: 0;right: 10px;z-index: 99;
}
</style>

5.调用的组件

<template><div id="viewFile"></div>
</template>
<script>
export default {props: ["wpsUrl", "token"],data() {return {// 是否开启简易模式simpleMode: false,isCooperUsersAvatarVisible: false, //是否显示协作用户头像cooperUsersColor: [{userId: "xxxxxx", // 用户idcolor: "#F65B90" // 用户光标颜色}]};},mounted() {this.openWps(this.wpsUrl, this.token);},methods: {openWps(url, token) {let _this = this;const wps = _this.wps.config({mode: _this.simpleMode ? "simple" : "normal",mount: document.querySelector("#app"),wpsUrl: url,commandBars: [// 可以配置多个组件{cmbId: "HistoryVersion",attributes: {visible: false, // 隐藏组件enable: false // 禁用组件, 组件显示但不响应点击事件}},{cmbId: "HistoryVersionDivider",attributes: {visible: false, // 隐藏组件enable: false // 禁用组件, 组件显示但不响应点击事件}},{cmbId: "HistoryRecord",attributes: {visible: false, // 隐藏组件enable: false // 禁用组件, 组件显示但不响应点击事件}}]});wps.setToken({ token: token });let app = wps.Application;// this.console.log(JSON.stringify(app));}}
};
</script>
<style lang='scss' scoped>
#viewFile {width: 100%;height: 100%;position: relative;left: 0;top: 0;
}
</style>

会存在用弹框样式变了的问题,可以把组件直接换成iframe

   <!-- 查看正文 --><el-dialogstyle="width: 100%; height: 100%;"title="正文":visible.sync="fileDialogVisible"fullscreen="true"><div style="width: 100%; height: 900px;"><iframeclass="web-office-iframe"id="office-iframe":src="jwpsUrl"scrolling="no"frameborder="0"allowfullscreen="allowfullscreen"webkitallowfullscreen="true"mozallowfullscreen="true"style="width: 100%; height: 100%; z-index: 3000;"></iframe></div></el-dialog>

参考:

https://blog.csdn.net/qq_23501739/article/details/103032741
https://blog.csdn.net/weixin_42197834/article/details/106274706

vue引入 wps在线编辑版相关推荐

  1. vue引入 wps在线编辑版,可进行 预览,编辑, 打印等功能。

    项目需求是, 在vue中进行文档管理, 因此最后选择了wps在线编辑版本. 一.使用方法 在官网下载js-sdk js文件 全局引入 import * as WPS from './assets/js ...

  2. wps在线编辑梳理(此处整理了对接过后容易出错的地方)

    一.开发准备 1.申请服务商 申请服务商流程 2.接入方式 接入方式分为文件预览.文件编辑和文件新建 3 种. 以文件预览为例,文件预览适用于文件已存在公网服务器的场景. 例如接入 Word(文字)预 ...

  3. vue开发可在线编辑简历的webApp

    项目初始 在一个阳光明媚的下午,学院就业指导老师让我们每个人做一份简历,然后打印上交.后回到宿舍,苦苦在网上寻找,未果.因为不要钱的模板太丑,好看的模板得花钱...,像我等穷逼,哪里有什么闲钱.于是, ...

  4. Vue引入Udesk在线打电话组件

    业务需求需要在我们的CRM后台引入在线打电话功能 可以直接拨打电话给客户,首先需要在Vue中引入Udesk打包后的文件,在Vue项目中有两个地方用来存放静态资源文件,分别是assets和static文 ...

  5. vue实现xml在线编辑功能

    先看效果 避免误会 这是一个在线编辑器 我们可以在这上面随意的编写xml代码格式 我们修改上面的内容之后 就可以在控制台输出内容 如果这正是您想要的东西 那就可以先创建一个vue项目 我们先引入依赖 ...

  6. Cordova实现自定义下载插件和WPS在线预览

    Cordova实现自定义下载插件和WPS在线预览 简要描述 点击下载链接,请求URL,判断手机是否安装WPS,如果安装则调用wps在线编辑,没有安装则对文件进行下载,并在通知栏进行通知,显示下载进度( ...

  7. 在线编辑、在线预览、在线转换,基于wps.js + java + react / vue,无需任何插件,零安装

    基于wps.js在线编辑.在线预览.文档转换前台vue / react,后台java终于开源啦,无需任何插件,零安装,可以直接配置完打包部署,也可直接集成项目中,或者二次开发,后续会不定期更新,有好的 ...

  8. Vue中使用mavonEditor插件实现markdown在线编辑

    场景 若依前后端分离版手把手教你本地搭建环境并运行项目: 若依前后端分离版手把手教你本地搭建环境并运行项目_霸道流氓气质的博客-CSDN博客_若依前后端分离 在上面的基础上,怎样实现markdown在 ...

  9. Vue实现在线编辑excel

    目录 luckysheet 1.插件引入 2.声明excel在线预览编辑组件 3.excelJs分解Dom为excel文件流 luckysheet文档地址 exceljs文档地址        前言介 ...

最新文章

  1. 使用Fiddler抓取手机HTTP流量包
  2. 封装对MongoDB数据库的增删改查访问方法(基于MongoDB官方发布的C#驱动)
  3. 电子地图开发中栅格模型与矢量模型的区别
  4. rsync命令_浅谈利用rsync服务的攻击
  5. @Value(${xxxx})注解的配置及使用
  6. 欧几里得算法和扩展欧几里得算法的简单例子
  7. python自动打开浏览器下载zip,并且提取内容写入excel
  8. 虚拟机IP更换后 weblogic无法启动 java.net.BindException: 无法指定被请求的地址
  9. ZOJ 3527 Shinryaku! Kero Musume 【树形DP[带简单环]】
  10. 2017计算机应用基础实践,计算机应用基础试题及答案
  11. u盘写保护+计算机管理,电脑如何去除u盘写保护?
  12. 自动驾驶系列(七)——聊聊人机交互中的DMS驾驶员监控系统
  13. 华硕Z99jc安装win7出现安装程序无法定位现有系统分区,也无法创建新的系统分区解决办法...
  14. 淘宝自动回复机器人配置手册——目前2018年淘宝主流自动回复软件一览
  15. 专利撰写时一定要注重质量
  16. 学习HTML+CSS知识点
  17. O2O、C2C、B2B、B2C是什么意思
  18. 平安好医生遭遇困局:六年亏近47亿元 价值百亿品牌或被舍弃
  19. 2012年9月8日参加中国软件开发者大会学习笔记
  20. matlab中数据的多项式拟合

热门文章

  1. 《Adobe After Effects CS6中文版经典教程》——2.9 渲染合成图像
  2. 文件上传插件WebUploader的使用
  3. conda SSL错误 SSLError,爬虫应用总结
  4. MNE学习笔记(六):Epoched data的可视化
  5. (产品求职)阿里巴巴价值观和业务图
  6. 解决tf报Graph disconnected错误
  7. JAVA正反合——原码、补码与反码学习笔记’
  8. layuiTable固定列
  9. 将centos7打造成桌面系统centos
  10. python反爬虫与绕过_python中绕过反爬虫的方法总结