首页 文章 精选 留言 我的

精选列表

搜索[技术极客],共10000篇文章
优秀的个人博客,低调大师

SpreadJS V19.0 新特性解密:保护工作表下的透视表交互,安全与灵活兼得 | 葡萄城技术团队

在企业级数据应用中,工作表保护是保障数据安全的核心手段——比如财务报表、核心业务数据看板等场景,需要防止误编辑、数据篡改等风险。但传统工作表保护功能往往“一刀切”:启用保护后,透视表的所有操作都会被限制,用户无法进行筛选、排序、展开/折叠等基础分析操作;关闭保护则会暴露敏感数据,面临安全隐患。这种“安全与交互不可兼得”的矛盾,严重影响数据使用效率。 为解决这一痛点,SpreadJS V19.0 推出“受保护工作表中启用透视表”功能,通过 allowUsePivotTable 属性实现精细化权限控制,让工作表在保持保护状态的同时,支持透视表核心交互操作,完美平衡数据安全与分析灵活性。下面,我们深入解析这一特性的核心价值与使用细节。 核心功能解析:精细化权限控制,兼顾安全与交互 SpreadJS V19.0 以“最小权限原则”为设计核心,通过灵活的属性配置和明确的功能权限划分,让保护工作表下的透视表操作更可控、更贴合业务需求: 1. 核心属性 allowUsePivotTable:一键控制交互权限 新增 allowUsePivotTable 配置项,集成于工作表保护选项中,开发者可根据业务需求灵活开关: 当 allowUsePivotTable = true 时:工作表处于保护状态,但用户可对透视表执行筛选、排序、展开/折叠等核心分析操作,不影响数据安全; 当 allowUsePivotTable = false 时:透视表的大部分编辑操作被限制,仅保留少量基础查看功能,彻底锁定数据结构; 支持运行时动态修改:无需重新初始化工作表,可根据用户角色、业务场景实时调整权限,灵活性拉满。 2. 明确的功能权限划分:可用与不可用清晰界定 为避免权限混乱,特性对保护模式下的透视表功能进行了精准划分,确保“该开放的能用到,该保护的不泄露”: 保护模式下可用的核心功能 更改数据透视表名称:可重命名透视表实例,适配多报表管理场景; 更改小计类型:支持修改小计计算方式(如求和、平均值),满足不同分析需求; 显示空数据:控制空单元格显示行为,提升报表可读性; 字段小计位置调整:灵活设置各字段小计的显示位置(如顶部、底部); 字段区域与索引配置:可重新排列字段在透视表中的位置,优化数据维度组合; 展开与折叠:支持分组项的展开/折叠,深入查看明细数据或聚焦汇总结果; 筛选与排序:应用数值/标签筛选、调整字段排序方式,快速定位目标数据; 字段拖拽:在允许的区域内移动字段,实现动态数据维度切换。 保护模式下不可用的风险操作 布局与显示配置:禁止修改透视表选项、布局样式、字段标签重复、主题等,确保报表统一规范; 计算与字段操作:限制添加计算字段/计算项、设置条件格式,避免数据计算逻辑被篡改; 数据与结构操作:禁止更新数据源、删除透视表、分组数据、添加切片器/时间线等,防止数据结构破坏。 3. 权限生效规则:精准锁定风险点 仅限制 UI 层面操作:allowUsePivotTable 仅对界面操作进行权限控制,通过 API(代码)进行的修改不受限制,满足开发者二次开发需求; 依赖工作表保护状态:该属性仅在 isProtected = true(工作表保护开启)时生效,关闭保护后自动失效; 临时修改建议:若需通过界面对透视表进行高危操作(如修改数据源),建议临时关闭工作表保护,操作完成后重新启用,兼顾安全性与灵活性。 典型应用场景:让数据安全与分析效率双提升 该特性的推出,完美适配多个企业级核心场景,解决长期以来的权限管控痛点: 1. 财务报表共享与分析 集团公司的财务汇总报表需要保护核心数据(如营收、利润)不被篡改,但各部门需要通过透视表筛选、排序本部门数据进行分析。启用 allowUsePivotTable = true 后,既能锁定原始数据,又能让部门用户自由操作透视表,无需财务人员反复导出定制报表。 2. 企业数据看板展示 企业公开的业务数据看板(如门店销售数据、项目进度看板),需要防止无关人员修改数据结构,但允许查看者通过透视表展开/折叠数据、切换筛选条件,深入了解数据细节。保护模式下的透视表交互,让看板“可看可分析,不可改不可乱”。 3. 跨部门协作分析 跨部门协作时,需向合作方开放数据查看与基础分析权限,但要保护报表结构和核心计算逻辑。通过该特性,合作方可操作透视表进行维度切换、筛选排序,却无法修改报表布局、计算规则,确保协作安全高效。 4. 敏感数据合规管控 金融、医疗等行业的合规报表,既要满足监管要求(数据不可篡改),又要支持内部人员进行数据分析。特性通过精细化权限控制,让报表在符合合规要求的同时,不影响内部分析效率,避免“为了安全牺牲效率”。 操作指南:3 步实现保护工作表下的透视表交互 特性操作简洁,无需复杂配置,开发者快速上手: 初始化工作表并启用保护:创建 SpreadJS 工作簿,开启工作表保护(isProtected = true); 配置透视表交互权限:设置 protectionOptions.allowUsePivotTable = true,开放核心交互功能; var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss")); var sheet = spread.getActiveSheet(); sheet.options.isProtected = true; // 开启工作表保护 sheet.options.protectionOptions.allowUsePivotTable = true; // 开放透视表交互权限 动态调整权限(可选):根据业务需求实时修改 allowUsePivotTable 属性,无需重启应用。 注意事项:这些细节让权限管控更精准 区分 UI 操作与 API 操作:属性仅限制界面手动操作,API 修改不受约束,需在二次开发时做好权限校验; 生效条件不可忽视:仅当工作表保护开启(isProtected = true)时,allowUsePivotTable 才会生效,避免误配置; 高危操作需谨慎:若需执行修改数据源、删除透视表等高危操作,建议临时关闭工作表保护,操作完成后立即重新启用; 与其他保护选项兼容:该特性可与工作表其他保护选项(如单元格编辑限制)同时生效,协同保障数据安全。 总结与展望:让数据安全与灵活兼得 SpreadJS V19.0 推出的“受保护工作表中启用透视表”功能,以 allowUsePivotTable 属性为核心,通过精细化权限划分、动态配置能力,彻底解决了传统工作表保护“要么全锁、要么全放”的痛点,让数据安全与分析灵活性实现双赢。 作为面向企业级应用的纯前端表格控件,SpreadJS 始终聚焦开发者与终端用户的核心需求,此次透视表增强不仅包含保护模式下的交互能力,还带来了拖动自定义排序、日期分组等实用功能,全方位提升数据处理与分析体验。 如需了解更多功能细节,可访问 SpreadJS 官网 查看产品文档,或通过 在线 Demo 直接体验新特性。SpreadJS V19.0 即将正式发布,敬请期待这款更安全、更灵活的前端表格控件,为你的业务系统筑牢数据安全防线,同时释放数据分析潜力!

优秀的个人博客,低调大师

SpreadJS V19.0 新特性解密:透视表拖动自定义排序,解锁数据整理新姿势 | 葡萄城技术团队

在数据分析与报表制作场景中,透视表凭借强大的维度聚合能力成为开发者的核心工具。但传统透视表的排序功能往往受限于固定规则,当用户需要根据业务逻辑自定义调整字段项顺序时,操作繁琐、灵活性不足的问题尤为突出------比如想按业务优先级调整产品类别顺序,或按部门协作逻辑重组数据维度,都需要额外编写复杂代码或手动修改数据源,严重影响工作效率。 为解决这一痛点,SpreadJS V19.0 重磅推出透视表拖动(自定义)排序功能,让用户无需复杂配置,通过直观的拖拽操作即可实现字段项顺序的自由调整,彻底重构透视表数据整理的便捷性。下面,我们将深入解析这一特性的核心价值与使用细节。 核心功能解析:灵活拖拽,精准控序 SpreadJS V19.0 的透视表拖动排序功能,以"直观操作+全面兼容"为设计核心,覆盖多种使用场景,满足不同用户的排序需求: 1. 多维度拖拽选择,适配多样操作习惯 功能支持四种灵活的拖拽选择方式,无论用户习惯精准选择还是批量操作,都能快速上手: 仅选择字段头(PivotField Header):精准调整单个字段的整体顺序,不影响字段下的值区域; 选择字段头及部分值区域:针对字段下的特定数据项进行排序调整,保留其他项的原有位置; 选择字段头及全部值区域:批量移动整个字段及下属所有数据项,实现维度整体迁移; 点击字段头选择全部值区域:一键选中字段关联的所有数据,简化批量拖拽操作。 2. 可视化拖拽流程,操作直观无门槛 拖拽过程全程伴随清晰的视觉指引,降低操作学习成本: 鼠标移动到选中区域边缘时,光标自动切换为"移动状态",明确提示当前区域可拖拽; 按下鼠标开始拖拽后,系统会显示动态拖拽指示器,实时标注目标插入位置,避免误操作; 拖拽过程中,指示器会根据鼠标坐标智能判断:列字段按水平(x坐标)定位插入点,行字段按垂直(y坐标)定位,精准匹配透视表结构; 若拖拽的是父字段,指示器会自动跳过所有子字段的数据区域,确保层级结构不混乱; 释放鼠标后,选中的字段项会自动插入到指示器标注的位置,排序结果即时生效。 3. 排序选项智能联动,状态同步不脱节 拖拽排序后,字段项的排序状态会自动同步到透视表的排序选项对话框:当用户打开排序设置时,排序方式会默认切换为"手动(manual)",清晰标识当前为自定义拖拽排序结果,避免与系统自动排序规则冲突,也方便用户后续按需切换排序方式。 典型应用场景:让数据整理更贴合业务逻辑 这一特性的推出,让透视表排序彻底摆脱固定规则的束缚,在多个核心场景中发挥价值: 业务优先级排序:在销售报表中,将重点推广的产品类别拖拽到靠前位置,直观突出核心数据; 协作场景适配:跨部门协作分析时,按协作流程拖拽调整部门、项目等维度顺序,让报表更符合团队工作逻辑; 个性化报表展示:根据汇报对象需求,自定义调整透视表字段顺序,让数据呈现更具针对性; 临时数据重组:数据分析过程中,快速拖拽字段项进行多维度组合尝试,无需修改数据源即可探索不同数据视角。 操作指南:3步完成自定义拖拽排序 选中目标:在透视表中选择需要排序的字段项(支持前文提到的四种选择方式); 开始拖拽:鼠标移动到选中区域边缘,待光标变为移动状态后,按下鼠标并拖动; 确认插入:拖动过程中观察拖拽指示器,到达目标位置后释放鼠标,字段项自动完成排序调整。 注意事项:这些边界场景需留意 为确保功能使用顺畅,以下两类操作暂不支持,开发者需提前知晓: 不支持选中整行或整列进行字段项拖拽:仅能通过选中"字段头"或"字段头+值区域"的方式进行拖拽,全选行/列无法触发字段项排序; 不支持同时选择不同父字段下的同名子字段进行拖拽:SpreadJS 仅支持单个子字段的独立拖拽,避免多父字段下的子字段混淆。 总结与展望:让透视表更懂业务需求 SpreadJS V19.0 推出的透视表拖动自定义排序功能,以"直观操作、灵活适配、精准控制"为核心优势,彻底解决了传统透视表排序灵活性不足的痛点,让数据整理更贴合业务逻辑,大幅提升报表制作与数据分析效率。 作为一款面向企业级应用的纯前端表格控件,SpreadJS 始终聚焦开发者与终端用户的实际需求,持续优化透视表等核心功能的使用体验。除了拖动排序,V19.0 还为透视表带来了日期分组、受保护工作表中启用透视表等多项增强能力,全方位提升数据处理能力。 如需了解更多功能细节,可访问 SpreadJS 官网 查看产品文档,或通过 在线 Demo 直接体验新特性。SpreadJS V19.0 即将正式发布,敬请期待这款更强大、更灵活的前端表格控件,为你的业务系统注入新的活力!

优秀的个人博客,低调大师

测试用例设计方法六脉神剑——第四剑:石破天惊,功能图法攻阵| 京东物流技术团队

1 引言 前面几篇文章为我们讲述了因果图、判定表、正交试验等几种方法,主要是针对于不同条件输入输出的组合进行测试,但在实际需求中,我们也常会遇到需要对被测对象的状态流转进行验证的情况,此时前面几种方法将不再适用,对于这种状态转换类问题,功能图法则可大展身手。 2 概念及原理 2.1 基本概念 功能图:也称状态图法,该方法是一种专门解决动态说明问题的测试用例设计方法 ,主要由状态迁移图和逻辑功能模型两部分构成。 2.1.1 状态迁移图 用于描述一个特定对象生命期中满足某些条件的所有状态,以及由于各种事件的发生而引起的状态之间的转移。关于状态迁移图,有如下几点需要注意: 1)一个状态迁移图中包含如下几种状态: • 初态(即初始状态) ——实心圆 • 终态(即最终状态) ——一对同心圆(内圆为实心圆) • 中间状态——圆角矩形 2)在一张状态图中只能有一个初态,而终态则可以有0至多个。 3)状态图既可以表示单程生命周期,也可以表示系统循环运行过程。 2.1.2 逻辑功能模型 用于描述静态说明,表示在状态中输入条件和输出条件之间的对应关系。 2.2 核心思想 功能图法的核心思想在于:抽象出待测系统的若干状态以及状态之间的转换条件和转换路径,然后从状态迁移路径覆盖的角度设计测试用例。 3 方法步骤 1)分析需求,明确状态节点,具体关注以下几个信息 • 存在的状态; • 状态之间的转换关系; • 状态变化的触发条件。 2)梳理不同状态的转换,输出状态-条件表; 3)画出状态迁移图; • 定义初始状态; • 为初始状态增加一次操作改变初始状态,增加新的状态; • 为上一步步产生的新状态增加一次操作,再增加新的状态; • 循环直到没有新状态产生为止。 4)转换为状态迁移树; 结合广度优先遍历+深度优先遍历算法,遍历状态迁移图的每一条路径,得到状态迁移树。 5)从状态迁移树导出测试路径。 状态迁移树中根节点到每个叶子节点的路径即为一条测试用例。 4 举个栗子 场景:针对客服系统事件状态流转过程设计测试用例 1)分析客服事件可能存在的所有状态。 • 已创建/待分配 • 已分派 • 处理中 • 已解决 • 已关闭 • 升级待分派 • 再次打开  2)梳理状态之间的转换关系和触发条件,得到状态-条件表。  当前状态 下一个状态 状态转换条件 已创建/待分配 已分派 ①系统自动分派②手动领取 已分派 处理中 ①客服操作事件/事件有更新 已创建/待分配 处理中 ①事件转移 已创建/待分配 已解决 ①系统解决事件(如小程序-用户取消服务) 已创建/待分配 已关闭 ①mq触发关闭(如上游取消异常) 处理中 已解决 ①客服手动解决事件②系统自动解决事件 已解决 已关闭 ①归档 已解决 再次打开 ①手动reopen②系统触发reopen 处理中 升级待分派 ①客服升级事件 处理中 已关闭 ①合并 升级待分派 已分派 ①系统自动分派②手动领取 升级待分派 处理中 ①事件转移 再次打开 升级待分派 ①客服升级事件 再次打开 已解决 ①客服手动解决事件②系统自动解决事件 - 已创建/待分配 ①fxm/小程序等生成事件 - 已分派 ①客服手动创建②电话/咚咚等方式进线 - 升级待分派 ①系统升级事件(如邮政投诉事件) 3)根据状态-条件表,画出功能图/状态图。   4)根据功能图输出状态迁移树。   5)输出测试用例,下表举例输出前5条,其余类似不做赘述。  用例编号 测试项 标题 预置条件 操作步骤 预期结果 Test_01 改变事件状态 事件状态转变:【已创建/待分配】--【已分派】--【处理中】--【已解决】--【已关闭】 可正常操作事件 1、通过fxm渠道进线生成事件;2、客服手动领取事件;3、客服操作更新事件信息;4、客服点击解决事件;5、事件15天无操作,系统归档事件。 事件状态转变为:【已创建/待分配】--【已分派】--【处理中】--【已解决】--【已关闭】 Test_02 改变事件状态 事件状态转变:【已创建/待分配】--【已分派】--【处理中】--【已解决】--【再次打开】--【已解决】--【已关闭】 可正常操作事件 1、通过fxm渠道进线生成事件;2、客服手动领取事件;3、客服操作更新事件信息;4、客服点击解决事件;5、客服reopen事件;6、客服点击解决事件;7、事件15天无操作,系统归档事件。 事件状态转变为:【已创建/待分配】--【已分派】--【处理中】--【已解决】--【再次打开】--【已解决】--【已关闭】 Test_03 改变事件状态 事件状态转变:【已创建/待分配】--【已分派】--【处理中】--【已解决】--【再次打开】--【升级待分派】--【已分派】--【处理中】--【已解决】--【已关闭】 可正常操作事件 1、通过fxm渠道进线生成事件;2、客服手动领取事件;3、客服操作更新事件信息;4、客服点击解决事件;5、客服reopen事件;6、客服点击升级事件;7、事件分派至其他客服;8、客服操作更新事件信息;9、客服解决事件;10、事件15天无操作,系统归档事件。 事件状态转变为:【已创建/待分配】--【已分派】--【处理中】--【已解决】--【再次打开】--【升级待分派】--【已分派】--【处理中】--【已解决】--【已关闭】 Test_04 改变事件状态 事件状态转变:【已创建/待分配】--【已分派】--【处理中】--【已解决】--【再次打开】--【升级待分派】--【处理中】--【已解决】--【已关闭】 可正常操作事件 1、通过fxm渠道进线生成事件;2、客服手动领取事件;3、客服操作更新事件信息;4、客服点击解决事件;5、客服reopen事件;6、客服点击升级事件;7、主管转移事件;8、客服处理并解决事件;9、事件15天无操作,系统归档事件。 事件状态转变为:【已创建/待分配】--【已分派】--【处理中】--【已解决】--【再次打开】--【升级待分派】--【处理中】--【已解决】--【已关闭】 Test_05 改变事件状态 事件状态转变:【已创建/待分配】--【已分派】--【处理中】--【升级待分派】--【已分派】--【处理中】--【已解决】--【已关闭】 可正常操作事件 1、通过fxm渠道进线生成事件;2、客服手动领取事件;3、客服操作更新事件信息;4、客服点击升级事件;5、事件分派至其他客服;6、客服操作更新事件信息;7、客服解决事件;8、事件15天无操作,系统归档事件。 事件状态转变为:【已创建/待分配】--【已分派】--【处理中】--【升级待分派】--【已分派】--【处理中】--【已解决】--【已关闭】 ... ... ... ... ... ...  5 总结  功能图/状态图方法 适用场景 1、由于某种条件成立导致发生状态改变的情况。2、主要关注状态转移的正确性。 优点 1、通过状态图可以清晰掌握系统的整个交互过程;2、可保证每一个状态的所有可达状态都覆盖到;3、通过验证给定条件内是否能够产生需要的状态变化,可检验出是否存在不可达的状态、不必要的状态或其他非法状态,以及非法的状态迁移。 缺点 针对有效输入输出进行设计,所以无法覆盖无效路径和非法输入。 注意事项 1、每种状态至少需要访问一次;2、重点测试最常见、最普遍的状态转换;3、其次测试最不常用的状态转换路径;4、单个状态之间的转换可通过结合其他用例设计方法保证覆盖全面;5、添加非法测试路径进行测试。(异常输入、状态和条件的非法组合)  通过本节讲述的功能图测试用例设计方法,我们可以轻松设计存在对象状态转移变换需求的测试用例,从而清楚的掌握整个系统的交互过程,但如果我们面对的需求中更多描述复杂的业务处理流程,我们又该使用哪种方法呢?一起看看下一节的场景法吧~ 作者:京东物流 陈雨婷 来源:京东云开发者社区 自猿其说Tech 转载请注明来源

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册