关于ABI如何使用API接口

396
2

908791215 数据达人Lv4

发表于2020-3-13 11:28

楼主
1、页面访问的API接口
android如果没有浏览器也可以下载测试应用测试,下载地址:https://www.pgyer.com/nZlp
使用方法在首页面输入框输入上述地址点跳转即可进入对应界面。

地址前缀:服务器地址 +  /emobportal/weixin.do?action=turnresource
注意:接口URL中不带"&id=用户名&pw=密码"是可以访问的,但如果用户未登陆,则会被拦截到登录页面,
假如需要访问时默认登录,那么需要加上这两个参数

1.1 查看移动应用首页
例如:服务器地址 +  /emobportal/weixin.do?action=turnresource
是否必须
参数
说明

id
用户名id
免登录(需要传)

pw
用户密码

1.2 查看某个移动应用
例如:服务器地址 +  /emobportal/weixin.do?action=turnresource&restype=1&appid=xxx
是否必须
参数
说明
restype
1
查看某个移动应用资源
appid
应用id


id
用户名id
免登录(需要传)

pw
用户密码

1.3 查看某个分析表(做填报表需要二维码的看这里!!!
例如:服务器地址 +  /emobportal/weixin.do?action=turnresource&restype=3&resid=xxx
这个地址拼出来以后,拿到这个地址去https://cli.im/这个网站上,把地址粘贴进去生成二维码!!!
是否必须
参数
说明
restype
3
查看报表
resid
报表id


resname
报表名称
假如需要额外指定报表名称(一般都是不需要的),
按下面写法来写,并且注意把tomcat配置utf-8编码,
resname=编码后的报表名称

id
用户名id
免登录(需要传)

pw
用户密码

openRefreshCalc
true|false
控制分析表是否可以下拉刷新计算

parampanelRightBtnOnlyBack
true|false
分析表参数面板右侧按钮是否只有关闭面板的功能

isHideFloatBtn
true|false
是否隐藏分析表浮动按钮

calcnow
true|false
分析表是否需要计算(可以不传,默认是true)计算

isShowZqWaitToast
true|false
点击钻取时是否显示黑色等待框(默认true)

自定义传递的报表参数



以下参数也可写在报表脚本中控制:
openRefreshCalc = false;
parampanelRightBtnTxt = "返回";//参数面板右侧按钮文字
parampanelRightBtnOnlyBack = true;
isHideFloatBtn = true;
isShowZqWaitToast = true;

2、脚本调整移动端分析表样式

2.1  调整移动端分析表样式脚本方法(abi 5.2.3版本后支持)
组件
脚本方法
调整计算参数位置
function adjustCalcparamPosition()
WidgetsBuilder 报表加载完毕后的事件,可以调整样式
function adjustWidgetBuilder(bodyarea)
WidgetObj 统计图或其他组件样式调整
function adjustWidgetObj(className,bodyarea,basedom)
WidgetObj 调整高度
function adjustWidgetObj_getChildMaxHeight(childnodes,max)
WidgetParamComboBox 下拉框样式
function adjustWidgetCombox(basedom,pnode,edit,label)
WidgetParamComboBox 加载前
function adjustWidgetCombox_initDom(basedom,pnode,edit,label)
WidgetParamComboBoxTree 下拉树组件
function adjustWidgetComboxTree(basedom,pnode,edit,label)
WidgetParamComboBoxTree 加载前
function adjustWidgetComboxTree_initDom(basedom,pnode,edit,label)
WidgetParamDate 日期组件
function adjustWidgetDate(basedom,pnode,edit,label)
WidgetParamDate 加载前
function adjustWidgetDate_initDom(basedom,pnode,edit,label)
WidgetParamEdit 输入框组件
function adjustWidgetEdit(basedom,pnode,edit,label)
WidgetParamEdit 加载前
function adjustWidgetEdit_initDom(basedom,pnode,edit,label)
WidgetTab tab组件样式
function adjustWidgetTab(tab)
WidgetTab 切换tab页 active 页
function adjustWidgetTabActive(active)
WidgetContainer 容器布局
function adjustWidgetContainer(basedom)
WidgetContainer 加载前
function adjustWidgetContainer_initDom(basedom)
WidgetContainer 渲染完成后
function adjustWidgetContainer_delayInit(basedom)
WidgetLayout sheet容器调整
function adjustAddSheet(widget)
WidgetResultGrid 表格样式
function adjustWidgetResultGrid(basedom,table)

例:
//提前注入移动端脚本
if((typeof(isInjectionMobileJs)!="undefined")&&!isInjectionMobileJs){
    //不显示钻取等待框
    isShowZqWaitToast = false;
    //固定tab标签页+调整参数框位置
    function adjustWidgetTab() {
        ......
    }
}

2.2 脚本方法使用示例2.2.1 表格不分页,一屏宽
1、设置表格外容器|布局,取消勾选【手机自适应】选择
2、适当调整表格中文字大小,12px以上比较好
3、报表添加脚本:
function adjustWidgetResultGrid(basedom,table){
    var width = this.document.body.clientWidth;
    var tableWidth = table.clientWidth;
    var scalenum = width/basedom.clientWidth;
    if(tableWidth > basedom.clientWidth){
        scalenum = width/tableWidth;
    }
    basedom.style.top= "-"+table.clientHeight*(1-scalenum)/2+"px";
    basedom.style.transform="scale("+scalenum +")";
    basedom.style.transformOrigin="left";  
}

2.2.2 tab标签头样式修改
function adjustWidgetTab() {
     //标签头字号
     $(".headcontainer .subhead, .headcontainer .subhead_active").css("font-size", "10px");
     //标签头高度
     $(".headcontainer").css({"height":"35px","line-height":"32px"});
     $(".bodycontainer").css({"top":"35px"});
}


2.2.3 报表下拉框样式
function adjustWidgetCombox(basedom, pnode, editinput, editlabel) {
    //是否是横屏
    var isHorScreen = false;
    if (window.screen.width > window.screen.height) {
        isHorScreen = true;
    } else {
        if (window.orientation == 90 || window.orientation == -90) {//ios
            isHorScreen = true;
        }
    }
    if(isHorScreen){//横屏情况下下拉框 左右间距20px  宽度占屏幕宽度的三分之一
        basedom.style.left = "0px";
        basedom.style.width = (window.screen.width - 40) / 3 + "px";
    }else{//竖屏情况下下拉框  宽度占屏幕宽度的二分之一
        basedom.style.width = (window.screen.width) / 2 + "px";
    }

}


2.2.4 容器加载完成后显示内容(避免容器渲染时看到内容位置闪动)
function adjustWidgetContainer_initDom(basedom){
    var wid = basedom.getAttribute("wid");
    if(wid==="WidgetContainer78"){
        basedom.style.visibility="hidden";
    }
}
function adjustWidgetContainer_delayInit(basedom){
    var wid = basedom.getAttribute("wid");
    if(wid==="WidgetContainer78"){
        basedom.style.visibility="";
    }
}

2.3 echart统计图设置2.3.1 上下滑动统计图
//报表中设置统计图属性【计算后】
datajson.dataZoom.type="inside";
datajson.dataZoom.moveOnMouseWheel=false;
datajson.dataZoom.preventDefaultMouseMove=false;
datajson.tooltip.triggerOn = "click";

3、获取应用及资源JSON格式API接口
地址前缀:服务器地址 + /emobportal/mobportalapi.do?
注意:接口URL中不带"&id=用户名&pw=密码"是可以访问的,但如果用户未登陆,则会被拦截到登录页面,假如需要访问时默认登录,那么需要加上这两个参数


3.1 获取所有移动应用(不包含应用下的资源)
例如:服务器地址 +  /emobportal/mobportalapi.do?action=listapps
是否必须
参数
说明
action
listapps
获取应用列表信息

id
用户id
免登录(必须传)

pw
用户密码
返回结果JSON:
{
    "icon":"%2Femobportal%2Fmobileappmgr.do%3Fcmd%3Dshowicon%26vfs%3Dtrue%26appid%3Dcad37ab183e24db28a81f5fdaf117f51%26iconpath%3D",
    "updatetime":"2019-08-29 17:12:26",
    "rescnt":5,
    "createby":"q",
    "enable":true,
    "caption":"测试123",
    "type":1,
    "url":"",
    "version":4,
    "id":"cad37ab183e24db28a81f5fdaf117f51",
    "createtime":"2019-05-30 11:27:44",
    "resInfos":[

    ],
    "visiable":true,
    "synchash":""
}

字段含义:
名称
描述
icon
图标,该资源获取icon的接口URL地址的编码格式
icon使用方法:java中解码,URLDecoder.decode(url, "UTF-8");
界面中直接在img的src=解码的地址即可获取图标
updatetime
最近更改时间
rescnt
该应用下的所有资源(分组+报表)的个数
createby
创建者
enable
该应用是否启用,即在移动端可见,使用时需与visiable区分开
caption
应用名称
type
应用类型。
0代表系统应用(如:新闻公告,待办事项等);
1代表门户应用(即用户创建的应用)
url
用于非单点系统时显示服务器地址,一般为""
version
版本号
id
应用id
createtime
该应用创建时间
resInfos
该应用下的所有资源的JSON格式
visiable
内部字段属性,一般为true,可忽略
synchash
内部字段属性,一般为"",可忽略


3.2 获取某移动应用下的所有资源
例如:服务器地址 +  /emobportal/mobportalapi.do?action=listres&appid=xxx
是否必须
参数
说明
action
listres
获取应用资源
appid
应用的ID


id
用户id
免登录(必须传)

pw
用户密码
返回结果JSON:
{
    "id":"c9ce57ee83214436be88b7b4dcb13c79",
    "icon":"%2Fqihch%2Femobportal%2Fmobileappmgr.do%3Fcmd%3Dshowicon%26vfs%3Dtrue%26appid%3D57e93325dbfc4c0884785552f020dccd%26resid%3Dc9ce57ee83214436be88b7b4dcb13c79%26groupid%3D%26iconpath%3D%26number%3D0.6956119912527589",
    "name":"123",
    "rpts":[
        {
            "id":"EANA$2$2$1$7a22a8c202ba402bb05b0c450493a445$67e233d40d01449d902d68e3ceae90cc",
            "icon":"%2Fqihch%2Femobportal%2Fmobileappmgr.do%3Fcmd%3Dshowicon%26vfs%3Dtrue%26appid%3D57e93325dbfc4c0884785552f020dccd%26resid%3DEANA%242%242%241%247a22a8c202ba402bb05b0c450493a445%2467e233d40d01449d902d68e3ceae90cc%26groupid%3Dc9ce57ee83214436be88b7b4dcb13c79%26iconpath%3D%26number%3D0.909506756856343",
            "visible":true,
            "name":"COPYOF_02表单回填-个人信息表demo",
            "type":1,
            "url":"",
            "ssoId":""
        }
    ],
    "type":0
}

字段含义(部分字段含义省略):
名称
描述
type
资源类型。0代表分组,1代表报表,3代表URL资源
rpts
表示分组下资源的JSON格式
previewUrl
主要用于服务器生成预览二维码,URL链接资源里存储的是跳转的地址
visiable
可忽略
url
可忽略
ssoId
可忽略


3.3 获取所有移动应用(包含应用下所有资源)
例如:服务器地址 +  /emobportal/mobportalapi.do?action=listappres
是否必须
参数
说明
action
listappres
获取应用资源

id
用户id
免登录(必须传)

pw
用户密码

4 、移动端分析表做表注意事项
4.1 表格不支持跨表取数
不支持通过宏表达式取其他表格数据,该类问题请做表解决。
因为移动端目前表格计算机制是,表格单独请求计算。


最近看过此主题的会员

张金满

1505121235

本主题由小亿于2020-3-17 16:16添加图章 精华

2个回答

只看楼主

小亿 管理员

发表于2020-3-17 16:16

只看该作者

取消 关注该作者的回复

沙发

技术贴优秀了!

lhl5230 数据小白Lv1

发表于2020-6-24 17:27

只看该作者

取消 关注该作者的回复

板凳

接口需要传递body参数, 这个数据源要怎么配置呢?

登录后可回答问题,请登录注册

快速回复 返回顶部 返回列表

小时

全天响应

分钟

快速处理问题

工程师强势助力

明星产品
解决方案
联系合作

渠道咨询电话:137-0120-6790

技术支持QQ:400-0011-866(工作日9:00-18:00)

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

进群交流、一对一指导

©2020ESENSOFT北京亿信华辰软件有限责任公司版权所有:京ICP备07017321号京公网安备11010802016281号