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

QQ登录

只需一步,快速开始

CTI_ELN

中级会员

60

主题

157

帖子

641

积分

中级会员

积分
641
CTI_ELN
中级会员   /  发表于:2022-10-31 11:30  /   查看:2362  /  回复:3
1金币
版本:15.1.2


根据业务需要,对设计器进行自定义开发导入导出,发现使用自定义导入的时候,设计器面板右侧的字段列表为空,但是使用设计器原有的导入功能一切正常

自定义导入代码如下:
  1. loadExcelJson(json) {
  2.   let spread = this.designer.Spread;
  3.   spread.fromJSON(JSON.parse(json));
  4.     },
复制代码
使用自定义导入右侧效果:

使用原有导入功能右侧效果:

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

最佳答案

查看完整内容

您提供的ssjson是存在designerBindingPathSchema字段的,所以猜测您说的应该是另一个ssjson的问题。 猜测那是因为设计器保存的时候会将右侧字段列表的结构序列化的结果拼到了SpreadJS tojson生成的ssjson中的designerBindingPathSchema字段里。您自定义的ssjson中肯定没有上述操作。所以导入进来利用上述我说的代码会找不到designerBindingPathSchema字段。 那么,您需要从源头序列化的时候就将右侧字段列表的信息通过您提供的ge ...

3 个回复

最佳答案
最佳答案
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-10-31 11:30:09
来自 4#
本帖最后由 Clark.Pan 于 2022-11-2 16:31 编辑

您提供的ssjson是存在designerBindingPathSchema字段的,所以猜测您说的应该是另一个ssjson的问题。
猜测那是因为设计器保存的时候会将右侧字段列表的结构序列化的结果拼到了SpreadJS tojson生成的ssjson中的designerBindingPathSchema字段里。您自定义的ssjson中肯定没有上述操作。所以导入进来利用上述我说的代码会找不到designerBindingPathSchema字段。
那么,您需要从源头序列化的时候就将右侧字段列表的信息通过您提供的getData方法拿到后拼到designerBindingPathSchema字段里
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-10-31 18:06:50
2#
因为fromJSON这个接口是SpreadJS的底层接口,SpreadJS中没有字段列表这个功能。
在线表格编辑器的导入是在fromJSON的基础上额外做了一些封装,用于支持同时导入字段列表的需求。
您如果自己实现,可以在fromJSON之后加上
  1. designer.setData("oldTreeNodeFromJson",JSON.stringify(json.designerBindingPathSchema))
  2. designer.setData("treeNodeFromJson",JSON.stringify(json.designerBindingPathSchema))
复制代码

这两句代码
回复 使用道具 举报
CTI_ELN
中级会员   /  发表于:2022-11-2 15:46:46
3#
Clark.Pan 发表于 2022-10-31 18:06
因为fromJSON这个接口是SpreadJS的底层接口,SpreadJS中没有字段列表这个功能。
在线表格编辑器的导入是在 ...

感谢,但是我现在有个问题是,使用设计器原有的打开 ssjson文件 json.designerBindingPathSchema 存在;使用自定义打开 ssjson 文件的功能,发现 json.designerBindingPathSchema  不存在;
自定义保存脚本其实也添加了字段列表的代码,如下所示:
  1. // 字段列表
  2.       let designerBindingPathSchema =
  3.         this.designer.getData("updatedTreeNode") ||
  4.         this.designer.getData("oldTreeNodeFromJson");
  5.       designerBindingPathSchema
  6.         ? (json.designerBindingPathSchema = JSON.parse(
  7.             designerBindingPathSchema
  8.           ))
  9.         : this.$message.warning("获取字段列表失败");
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部