vue3+webOffice合集

1、webOffice 初始化

1)officeType:

文档位置:https://solution.wps.cn/docs/web/quick-start.html#officetype

2)appId: 前端使用appId 后端需要用到AppSecret

3)fileId: 由后端返回,前端无法生成 ,与上传文件生成的文件id无关

4)mount: 前端挂载的div

5)mode: 显示模式,nomal为普通模式,simple为极简模式

文档位置:https://solution.wps.cn/docs/web/config.html#显示模式

6)wordOptions: 其他配置

文档位置:https://solution.wps.cn/docs/web/config.html#文字选项

javascript 复制代码
//注意:这里一定要设置宽高,否则不会显示
 <div id='wps' ref='wpsRef' style="width:600px;height:500px"></div>
 	
 const init = async ()=>{
 	const ele = document.getElementById('wps') 
    const instance = await webOfficeSDK.init({
      officeType: 'w', 
      appId: 'xxxx',  
      fileId: '2',
      mount: ele,
      mode: 'simple',
      wordOptions: {
        isShowDocMap: false,  //是否开启目录功能
        isBestScale: true  //打开文档默认以最佳比例显示
      } 
    })
    //注意:一定要等到ready完才做其他的操作 不然会出现模块未定义或找不到
    const ready = await this.instance.ready()
    if(ready){
      ...
      return ture
     }
     return false
   }


//初始化
onMounted(async()=>{
	const res = await init()
	if(res){
		// 其他操作 例如 请求接口数据回显到下拉组件
	}
})

2、修改wps的宽度样式

1)需求描述:与官方案例类似 ,但是需要添加一个收缩/展示按钮,当右侧表单收缩时,左侧的文档宽度应为100%,当右侧表单展示时,左侧文档恢复原样

2)实现思路

  • 左侧div设置固定的宽度和高度,例如80%,且div里面放挂载wps的div,右侧表单设置固定宽度和高度,例如20%,根据按钮的显示隐藏动态设置其宽度
javascript 复制代码
<div :style="flg?'width:80%':'width:100%'">
	<div id='wps' style="width:100%;height:100%"></div>
</div>
<div :style="flg?'width:20%':'width:0%'">
	<div id='wps'></div>
</div>

注意:按钮控件可以控制外层div的宽度动态变化,无法控制wps的宽度变化,需要使用到实例对象值的iframe对象

文档位置:https://solution.wps.cn/docs/web/instance.html

  • 设置iframe
javascript 复制代码
//上面初始化时有个ready状态
const iframe = ref(null)
 
if(ready){
 iframe = await instance.iframe
 return ture
}
//当按钮点击时(不管是收缩还是展开都设置为100%且文档自适应)
iframe.style.width = "100%"
//app 也是在ready后面获取 可参考官方文档
app.ActiveDocument.ActiveWindow.View.Zoom.Percentage = 100 //设置窗口缩放比例
app.ActiveDocument.ActiveWindow.View.Zoom.PageFit = 2  //缩放视图自适应文档窗口的尺寸
相关推荐
高级程序源5 小时前
django校园寻物通失物招领平台32261-计算机课程设计、毕业设计
vue.js·python·mysql·小程序·django·flask·课程设计
WeiXin_DZbishe5 小时前
基于springboot宠物领养系统-计算机毕设 附源码【课程设计】94217
vue.js·spring boot·python·django·php·课程设计
WeiXin_DZbishe7 小时前
基于springboot城市公交实时运营与调度系统-计算机毕设 附源码【课程设计】66173
java·vue.js·spring boot·后端·python·php·课程设计
WeiXin_DZbishe8 小时前
基于Springboot+AI的kuall音乐广场的设计与实现-计算机毕设 附源码【课程设计】12715
vue.js·人工智能·spring boot·后端·python·php·课程设计
_馒头8 小时前
pixiJs游戏开发实践 - 跳棋小游戏
javascript·vue.js
AIGC小尼10 小时前
毕设实战|SpringBoot+Vue 实现多个系统项目
vue.js·spring boot·课程设计
踩着两条虫13 小时前
我在浏览器里“盖”了一个村:Vue + Three.js 大屏开发踩坑记
前端·vue.js·three.js
高级程序源14 小时前
SSM仓储管理系统31582-计算机课程设计、毕业设计
vue.js·python·mysql·小程序·flask·课程设计
溪语流沙14 小时前
【Web全栈进阶】前端世界观:现代工具链与框架为什么存在
前端·javascript·vue.js
WeiXin_DZbishe16 小时前
基于微信小程序的本地闲置物品交易平台-计算机毕设 附源码【课程设计】26825
vue.js·spring boot·python·微信小程序·架构·php·课程设计