部分可设计元素支持通过接口与数据源绑定,方便展示或打印,这里介绍下相关的数据格式和绑定思路
接口统一格式
项目中所有用到的接口均按以下统一格式返回
{
"data":any, //根据接口的具体作用,返回相应的如数组、对象等结构的数据
"success": boolean,//接口状态,成功为true,失败为false,当失败时,最好在"message"中提供相应的失败信息
"message": "" //当接口异常时可提供的信息
}
如果您购买了源码,则设计器中所有接口统一由designer/service.ts中发出,而状态success及数据data均可以在这里适配成其它现有接口的格式,无须按这里描述的格式进行处理。
另外一种适配方案是,通过提供的配置项response进行适配,返回上述格式即可,设计器并不要求您一定修改现有接口为上述结构,如果您还是不明白,可以联系作者。您只需要知道上述提到的格式只是设计器默认的数据格式而已,并且可以很方便的适配成其它结构。
全部数据源接口
该接口为设计器数据源面板中,显示的树形列表,如下图所示

该接口返回后端都有哪些数据接口可供使用,可查看当前项目中使用的一份写死的格式:https://github.com/xinglie/report-designer/blob/master/apis/fields.json
说明一下data中的格式
{
"data":[{//数组格式,可设置多个数据源
"name": "地区测试",//数据源名称,必须设置
"tag": "apis/area.json",//数据源接口地址、参数或其它标识,非必须
"id": 1,//数据源id,必须且唯一
"fields":[{//数据源中包含的可使用的字段
"name": "河北",//字段名称,必须
"key": "area_13"//字段key,必须
}]
}]
"success": true,
"message": ""
}
如上述示例中的”地区测试“数据源,需要配合相应的”地区测试“这个数据接口来看:https://github.com/xinglie/report-designer/blob/master/apis/area.json
其中最关键的是”fields“这个对象,该对象需要列出 https://github.com/xinglie/report-designer/blob/master/apis/area.json 接口中可供使用的字段集合,这是绑定数据源的关键。
对于tag字段,因为开发和发布最终的请求地址会不一样,因此tag可以只存放一个标识字符串,而在最终请求时,report-designer会交由统一的数据模块进行处理,可在这个数据模块里根据一定的规则,把tag存储的标识字符串转换成真实的url。该 Github 上的代码为了简单,tag 中直接存储的是接口地址。
对于绑定深层次的数据,绑定 key 中使用 / 分割,该分割字符可以自定义。示例请参考小票数据
点击这里查看如何通过tag或id在打印或预览时转换成真实的url
元素绑定数据源
所有元素均支持数据源的绑定,任意一个元素只要出现在属性面板中的属性也支持数据绑定。目前做了常用元素如文本、图片、条形码、二维码以及“数据”元素分组下的列表格、数据表格等的数据绑定,如果您需要定制元素或调整某些元素的某些属性成数据绑定的形式,请联系作者
元素在绑定时,内部会记录相应的接口地址或标识以及绑定的字段,在展示或打印时,由展示或打印页面根据元素绑定的接口,把数据设置到绑定信息上,而元素仅根据绑定的字段key把相应的数据取出来展示
自动分页
目前只有“数据”元素分组下的列表格、数据表格等能根据数据源的数据多少在打印时自动分页
根据可设计元素的不同,需要绑定的数据源是数组还是对象也不同。比如“数据”元素分组下的列表格、数据表格等要求数组。文本、图片等要求返回单个对象,即使返回数组也只会使用第一个。
更多规则
以上是个人根据以往的经验总结的格式,非必须按照执行的最终格式。包括元素绑定数据源时,到底使用对象还是数组,并非最终定论,可根据具体需求调整。
接口统一格式
项目中所有用到的接口均按以下统一格式返回
全部数据源接口
该接口返回后端都有哪些数据接口可供使用,可查看当前项目中使用的一份写死的格式:https://github.com/xinglie/report-designer/blob/master/apis/fields.json
说明一下data中的格式
如上述示例中的”地区测试“数据源,需要配合相应的”地区测试“这个数据接口来看:https://github.com/xinglie/report-designer/blob/master/apis/area.json
其中最关键的是”fields“这个对象,该对象需要列出 https://github.com/xinglie/report-designer/blob/master/apis/area.json 接口中可供使用的字段集合,这是绑定数据源的关键。
点击这里查看如何通过
tag或id在打印或预览时转换成真实的url元素绑定数据源
元素在绑定时,内部会记录相应的接口地址或标识以及绑定的字段,在展示或打印时,由展示或打印页面根据元素绑定的接口,把数据设置到绑定信息上,而元素仅根据绑定的字段key把相应的数据取出来展示
自动分页
根据可设计元素的不同,需要绑定的数据源是数组还是对象也不同。比如“数据”元素分组下的列表格、数据表格等要求数组。文本、图片等要求返回单个对象,即使返回数组也只会使用第一个。
更多规则
以上是个人根据以往的经验总结的格式,非必须按照执行的最终格式。包括元素绑定数据源时,到底使用对象还是数组,并非最终定论,可根据具体需求调整。