找回密码
 立即注册

QQ登录

只需一步,快速开始

木舟

注册会员

14

主题

49

帖子

153

积分

注册会员

积分
153
木舟
注册会员   /  发表于:2022-3-18 14:19  /   查看:2206  /  回复:8
本帖最后由 木舟 于 2022-3-18 14:33 编辑

image.png34653319.png
上图错误的这个问题是什么情况下会出现,我怀疑是上图的问题 导致下面视频的问题(单击填写完数据不显示,双击才能看到),你们能帮忙看一下吗?

3e65328ea24a38c7e4735c17629b1e2d.mp4

2.75 MB, 下载次数: 71

8 个回复

倒序浏览
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2022-3-18 14:53:32
沙发
你好,从上面的截图以及视频这边暂时无法找出具体原因。请问是具体表单出现这个问题吗?还是所有的表单都会出现这个问题呢?另外,请问你的版本是多少呢?
为了能够更加准确地定位该问题以及有效解决,请在附件的demo中复现该问题并上传,这边来进行调研。

index (1).html

11.46 KB, 下载次数: 55

回复 使用道具 举报
木舟
注册会员   /  发表于:2022-4-26 18:31:06
板凳
问题复现 见附件demo,有两个问题:
1、在单元格填写数据不显示,好像双击之后才显示;
2、打开浏览器控制台,开启移动端模拟,点击任一单元格报第一次上传图片那样的错,
     但是关闭移动端模拟(就是普通PCweb页)就不会报错,但是在单元格填数据还是不显示;

麻烦帮忙看一下咋回事儿,谢谢!

demo.zip

356.24 KB, 阅读权限: 1, 下载次数: 86

回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2022-4-27 09:41:13
地板
木舟 发表于 2022-4-26 18:31
问题复现 见附件demo,有两个问题:
1、在单元格填写数据不显示,好像双击之后才显示;
2、打开浏览器控 ...

问题已收到,初步推断与vue3的用法有关,这边来做进一步调研,此贴先改为保留处理,有进展会在本帖更新。(SJS-12810)
回复 使用道具 举报
木舟
注册会员   /  发表于:2022-4-27 17:37:30
5#
Derrick.Jiao 发表于 2022-4-27 09:41
问题已收到,初步推断与vue3的用法有关,这边来做进一步调研,此贴先改为保留处理,有进展会在本帖更新。 ...

请问一下,大概什么时候能有结果,这个问题有什么临时解决方案么?
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2022-4-27 18:10:48
6#
木舟 发表于 2022-4-27 17:37
请问一下,大概什么时候能有结果,这个问题有什么临时解决方案么?

经调研,在VUE3中,一旦将数据应用于ref,vue将用proxy包裹该对象。
这个proxy将中断内部实例访问。

因此,如果希望将spread或designer实例作为全局变量处理,应该保留indicator,indicator类似于宿主,或宿主id或类似的内容。然后在尝试访问实例时,可以调用API来获取真实的实例。可以参考下面的代码进行调整。

image.png715066833.png
回复 使用道具 举报
木舟
注册会员   /  发表于:2022-4-27 18:56:23
7#
Derrick.Jiao 发表于 2022-4-27 18:10
经调研,在VUE3中,一旦将数据应用于ref,vue将用proxy包裹该对象。
这个proxy将中断内部实例访问。

谢谢你的解答,现在还有个问题, 你参考代码里的spreadTemp这个实例 我是需要把它导出的 ,因为这是我业务封装的一个组件里的属性,引入该组件的时候需要用到这个实例, 导出使用了vue3的defineExpose这个api,这样的话又得把spreadTemp定义成const spreadTemp = ref(null); 这种形式,这个问题就还是会出现,不知我是否表述清楚
回复 使用道具 举报
木舟
注册会员   /  发表于:2022-4-28 10:26:35
8#
Derrick.Jiao 发表于 2022-4-28 10:14
如果是这样确实又会出现这个问题,目前设计器在vue3中还没有一个完善的支持,只有SpreadJS已在vue3中正式 ...

好的 暂时解决了, 在所有引用自己封装组件的每个文件里都得重新调用API来获取真实的实例,就是多写一些代码,暂时这样处理吧,谢谢!
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2022-4-28 10:49:20
9#
木舟 发表于 2022-4-28 10:26
好的 暂时解决了, 在所有引用自己封装组件的每个文件里都得重新调用API来获取真实的实例,就是多写一些 ...

不用客气的,目前只能需要保存spread的host,host的element或者host的element的id。然后在另外一个地方,通过GC.Spread.Sheets.findControl(global variable)这种方式去拿。因为现在的三方框架,尤其是vue,只要敢往全局上放。那他就敢给你用property或者proxy封装。

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部