vue引入 wps在线编辑版
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在线编辑版相关推荐
- vue引入 wps在线编辑版,可进行 预览,编辑, 打印等功能。
项目需求是, 在vue中进行文档管理, 因此最后选择了wps在线编辑版本. 一.使用方法 在官网下载js-sdk js文件 全局引入 import * as WPS from './assets/js ...
- wps在线编辑梳理(此处整理了对接过后容易出错的地方)
一.开发准备 1.申请服务商 申请服务商流程 2.接入方式 接入方式分为文件预览.文件编辑和文件新建 3 种. 以文件预览为例,文件预览适用于文件已存在公网服务器的场景. 例如接入 Word(文字)预 ...
- vue开发可在线编辑简历的webApp
项目初始 在一个阳光明媚的下午,学院就业指导老师让我们每个人做一份简历,然后打印上交.后回到宿舍,苦苦在网上寻找,未果.因为不要钱的模板太丑,好看的模板得花钱...,像我等穷逼,哪里有什么闲钱.于是, ...
- Vue引入Udesk在线打电话组件
业务需求需要在我们的CRM后台引入在线打电话功能 可以直接拨打电话给客户,首先需要在Vue中引入Udesk打包后的文件,在Vue项目中有两个地方用来存放静态资源文件,分别是assets和static文 ...
- vue实现xml在线编辑功能
先看效果 避免误会 这是一个在线编辑器 我们可以在这上面随意的编写xml代码格式 我们修改上面的内容之后 就可以在控制台输出内容 如果这正是您想要的东西 那就可以先创建一个vue项目 我们先引入依赖 ...
- Cordova实现自定义下载插件和WPS在线预览
Cordova实现自定义下载插件和WPS在线预览 简要描述 点击下载链接,请求URL,判断手机是否安装WPS,如果安装则调用wps在线编辑,没有安装则对文件进行下载,并在通知栏进行通知,显示下载进度( ...
- 在线编辑、在线预览、在线转换,基于wps.js + java + react / vue,无需任何插件,零安装
基于wps.js在线编辑.在线预览.文档转换前台vue / react,后台java终于开源啦,无需任何插件,零安装,可以直接配置完打包部署,也可直接集成项目中,或者二次开发,后续会不定期更新,有好的 ...
- Vue中使用mavonEditor插件实现markdown在线编辑
场景 若依前后端分离版手把手教你本地搭建环境并运行项目: 若依前后端分离版手把手教你本地搭建环境并运行项目_霸道流氓气质的博客-CSDN博客_若依前后端分离 在上面的基础上,怎样实现markdown在 ...
- Vue实现在线编辑excel
目录 luckysheet 1.插件引入 2.声明excel在线预览编辑组件 3.excelJs分解Dom为excel文件流 luckysheet文档地址 exceljs文档地址 前言介 ...
最新文章
- 【算法总结】二分搜索
- JS应用之禁止抓屏、复制、打印
- tcpip c语言程序设计,TCP 服务端和客户端程序设计(C)
- mysql innodb_sort_buffer_size_mysql优化---第7篇:参数 innodb_buffer_pool_instances设置
- shell中的条件判断和比较
- mkimage command not found
- mysql 终端模拟_mysql客户端模拟脏读、幻读和可重复读
- Oracle及Oracle客户端、PLSQL安装的一些问题
- Dreamweaver 8 jquery 代码提示
- linux下移动或者复制文件覆盖相同文件夹时,文件夹里面的每个文件都提示是否覆盖...
- pyaudio usb playback_电脑USB接口怎么禁用?系统禁用USB端口的两种方法
- js创建对象的七种方式
- 2017-10-湖南套题1
- Java 后端接口 ECharts 日历表统计每年每月每日的数据条数 ECharts Java 后端接口统计 利用日历表统计 MySQL 数据条数
- MongoDB 数据全量备份
- 数据挖掘之七种常用的方法
- ❤️❤️❤️Unity实现毛笔书法
- 10个实用技巧让你的 Vue 代码更优雅
- Android LCD整理二:mtk平台LCD流程分析(LK部分)
- 如何购买服务器及域名(阿里)