请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

eyAndrew

金牌服务用户

94

主题

434

帖子

1248

积分

金牌服务用户

积分
1248
eyAndrew
金牌服务用户   /  发表于:2022-10-10 10:03  /   查看:2231  /  回复:8
ctrl + c, ctrl + v,使用快捷键复制浮动对象, 怎么处理最新的浮动对象,我要修改内部的dom的id?

快捷键复制粘贴 会触发 FloatingObjectChanged 事件, 在这里能判断是复制粘贴么?目前测试 propertyName 只能拿到 position/isSelected。


监听 clipboardPasted事件, 多次 粘贴 只能触发一次, 怎么解决?


我们的需求是,通过浮动对象创建echarts的图表,复制粘贴后,拿到粘贴的浮动对象,修改生成的浮动对象内部dom
ID,做其他处理

8 个回复

Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-10-10 11:05:15
沙发
您提到“监听 clipboardPasted事件, 多次 粘贴 只能触发一次, 怎么解决?”这里未复现此问题,使用ctrl+c复制charts后,使用ctrl+v 粘贴,每次ctrl+v 都会触发“clipboardPasted”事件,如下图所示。



其次 您提到了如何处理获取的浮动对象,在ClipboardPasted事件中,获取到浮动对象后,可以参考api ,https://demo.grapecity.com.cn/spreadjs/help/api/classes/GC.Spread.Sheets.Charts.Chart
获取浮动对象相应的值。



  1.    sheet.bind(GC.Spread.Sheets.Events.ClipboardPasted, function (sender, args) {
  2.             console.log("ClipboardPasted",args);
  3.             if(args.objects.length>0){
  4.                 //获取浮动对象
  5.                 let floatObjecy = args.objects[0];
  6.                 console.log(floatObjecy.content())
  7.             }
  8.         });
复制代码


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
eyAndrew
金牌服务用户   /  发表于:2022-10-12 15:30:53
板凳
你这里的ClipboardPasted是绑定到sheet上的, 新增的sheet,没有绑定,所以没有触发这个事件,这个问题我通过bind到spread上解决了。  我的需求是,通过浮动对象生成的echarts图表,可以通过快捷键  c + v, 在不同的sheet上 粘贴,但是现在遇到的问题,ctrl + c的时候应该是没有复制到当前的 浮动对象,导致 粘贴的时候 拿到的是HTML, 看我的下面的gif
回复 使用道具 举报
eyAndrew
金牌服务用户   /  发表于:2022-10-12 15:36:55
地板
中间部分 我使用快捷键 ctrl + c, ctrl + v,粘贴是文本,我选中了浮动对象,没有复制成功。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-10-12 16:28:37
5#
eyAndrew 发表于 2022-10-12 15:36
中间部分 我使用快捷键 ctrl + c, ctrl + v,粘贴是文本,我选中了浮动对象,没有复制成功。

需要提供下 新增仪表盘相关代码。
回复 使用道具 举报
eyAndrew
金牌服务用户   /  发表于:2022-10-12 17:01:30
6#


新增仪表盘的UI逻辑,就是 1 初始化浮动对象,设置dom id  2 根据id init echart

其他的逻辑,就是echart的配置我会存到隐藏的系统sheet内,这个应该没影响的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
eyAndrew
金牌服务用户   /  发表于:2022-10-12 17:09:12
7#
找到问题了,应该是因为 我用svg生成的图表,换成canvas就可以了。。。 然后问题又来了 我粘贴过来的 浮动对象,怎么修改内部的dom?我要修改dom的id 和 粘贴生成的 浮动对象name一致

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
eyAndrew
金牌服务用户   /  发表于:2022-10-12 17:33:21
8#
目前使用content方法 是可以的, 想问下 浮动对象支持扩展属性么? 我的需求是, 粘贴过来的浮动对象,此时name已经自动变了,但是我要根据复制的浮动对象name拿到在隐藏sheet存的配置? 怎么做? 目前最笨的做法是,getHost()[0].children.children 一层一层去拿到 原来dom的id, 然后去取配置,有没有更好的做法?
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-10-12 17:37:25
9#
暂时没有更好的办法了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部