找回密码
 立即注册

QQ登录

只需一步,快速开始

Wilson.Zhang

超级版主

30

主题

1579

帖子

2157

积分

超级版主

Rank: 8Rank: 8

积分
2157
Wilson.Zhang
超级版主   /  发表于:2024-9-27 18:47  /   查看:29  /  回复:0
SpreadJS的表单保护支持了对表单的操作权限控制,那么,对于导出功能可否加入权限控制呢?老规矩,先分析调查下。

在16版本前,SpreadJS的导出功能被封装在spread-excelio。从16版本开始,保留原有IO API的同时,引入了新的API以增强导入导出功能对多种序列化文件格式的支持,即spread-sheets-io。关于SpreadJS IO的介绍,可以参考官网文档了解详情:

https://demo.grapecity.com.cn/spreadjs/help/docs/faqs/file-import-export/%E5%AF%BC%E5%85%A5%E5%AF%BC%E5%87%BA%E6%8C%87%E5%8D%97#%E5%AF%BC%E5%85%A5%E5%AF%BC%E5%87%BA%E6%8C%87%E5%8D%97

以spread-sheets-io的导出API为例,Workbook:export()的参数列表包含了导出成功回调函数、导出失败回调函数、导出选项,如图1所示。其中,successCallBack和errorCallBack只能被调用一个,即要么成功要么失败,泾渭分明,中间没有薛定谔的猫。注意到successCallBack中调用了第三方API saveAs实际完成导出,那么,可以尝试下在saveAs之前对当前操作用户校验其权限,具备权限则予以导出,否则就此打住,结束执行。

image.png377594298.png
图1. Workbook:export()参数列表

Workbook:export()支持导出的文件类型包括.ssjson、.xlsx、.csv,如果需要导出为.sjs和.pdf文件,分别通过Workbook:save()和Workbook:savePDF()实现,参数列表与Workbook():export()如出一辙。

image.png207166136.png
图2. Workbook:save()参数列表


image.png167044066.png
图3. Workbook:savePDF()参数列表

如上所述,即可在SpreadJS提供的脚手架上搭积木,自定义完成导出权限控制。将加了权限控制的自定义导出功能与自定义按钮绑定,即可在页面触发该功能。附上demo,以供参考,实际效果如图4所示。

导出功能权限控制.gif415057677.png

图4. export权限控制

导出权限控制(Designer版本).html

7.24 KB, 下载次数: 0

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部