通用

页面引入js文件

https://jsapi.hecom.cn/scripts/hqapi-dist.js

全局变量、命名空间

全局变量hq,命名空间:设备(hq.device)、业务(hq.biz)、数据(hq.internal)

权限验证配置[未实现]

红圈插件市场JS API安全验证,只有经过安全验证的插件才能调用安全级别较高的API,未经过验证的插件只能调用基础API。此接口尚未开放,请开发者提前做好准备。

hq.config({
    appId: '', // 必填,微应用ID
    corpId: '',//企业ID
    timestamp: , // 必填,生成签名的时间戳
    nonceStr: '', // 必填,生成签名的随机串
    signature: ''// 必填,签名
});

通过ready接口处理成功验证

hq.ready(function(){
    // 须把相关接口放在ready函数中调用来确保正确执行
    // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
});

通过error接口处理失败验证[未实现]

hq.error(function(res){
    // config信息验证失败会执行error函数,如签名过期导致验证失败
});

接口约定

  • 所有接口都为异步
  • 接受一个object类型的参数
  • 成功回调 onSuccess
  • 失败回调 onFail
hq.命名空间.功能.方法({
    参数1: '',
    参数2: '',
    onSuccess: function(result) {
        //成功回调
        //所有返回信息都输出在这里
    },
    onFail: function(){
        //失败回调
    }
})

容器

获取容器信息

hq.runtime.info({
    onSuccess: function(result) {
        /*
        {
            ability: '0.0.2', //容器版本,用来标识JSAPI能力,可根据该版本来决定能否使用jsapi
            serverURL:'',//服务器地址(图片服务器地址)
        }
        */
    }
})

设备

hq.device

弹窗

alert

hq.device.notification.alert({
    message: String,
    title: String,//可传空
    buttonName: String,
    onSuccess : function() {
        /*回调*/
    },
    onFail : function(err) {}
});

confirm

hq.device.notification.confirm({
    message: String,
    title: String,
    buttonLabels: ['确认', '取消'],
    onSuccess : function(result) {
        /*
        {
            buttonIndex: 0 //被点击按钮的索引值,Number类型,从0开始
        }
        */
    },
    onFail : function(err) {}
});

prompt

hq.device.notification.prompt({
    message: String,
    title: String,
    buttonLabels: ['确认', '取消'],
    onSuccess : function(result) {
        /*
        {
            buttonIndex: 0, //被点击按钮的索引值,Number类型,从0开始
            value: '' //输入的值
        }
        */
    },
    onFail : function(err) {}
});

promptWithCheckbox

hq.device.notification.promptWithCheckbox({
    message: String,
    title: String,
    checkbox:[{display:"啦啦啦啦"},{display:"德玛西亚"}]
    placeholder:String
    buttonLabels: ['确认', '取消'],
    onSuccess : function(result) {
        /*
        {
            buttonIndex: 0, //被点击按钮的索引值,Number类型,从0开始
            value: '' //输入的值
            checkbox:[{value:0},{value:1}]//0未选中,1选中
        }
        */
    },
    onFail : function(err) {}
});

showPreloader

hq.device.notification.showPreloader({
    text: String, //loading显示的字符,空表示不显示文字
    onSuccess : function(result) {
        /*{}*/
    },
    onFail : function(err) {}
})

hidePreloader

hq.device.notification.hidePreloader({
    onSuccess : function(result) {
        /*{}*/
    },
    onFail : function(err) {}
})

toast

hq.device.notification.toast({
    text: String, //提示信息
    onSuccess : function(result) {
        /*{}*/
    },
    onFail : function(err) {}
})

actionsheet

hq.device.notification.actionSheet({
    title: '', //标题
    cancelButton: '取消', //取消按钮文本
    otherButtons: ['按钮1', '按钮2', '按钮3'],
    onSuccess : function(result) {
        /*{
            buttonIndex: 0 //被点击按钮的索引值,Number,从0开始, 取消按钮为-1
        }*/
    },
    onFail : function(err) {}
})
hq.device.notification.modal({
    image: "http://gw.alicdn.com/tps/i2/TB1SlYwGFXXXXXrXVXX9vKJ2XXX-2880-1560.jpg_200x200.jpg", // 标题图片地址
    title: "2.4版本更新", //标题
    content: "1.功能更新2.功能更新;", //文本内容
    buttonLabels: ["了解更多","知道了"], //最多两个按钮,至少有一个按钮。
    onSuccess : function(result) {
        /*
        {
            buttonIndex: 0 //被点击按钮的索引值,Number,从0开始
        }
        */
    },
    onFail : function(err) {}
})

震动

hq.device.notification.vibrate({
    duration: 300, //震动时间,android可配置 iOS忽略
    onSuccess : function(result) {
        /*
        {}
        */
    },
    onFail : function(err) {}
})

地理位置

获取当前地址位置

hq.device.geolocation.get({
    onSuccess : function(result) {
        /*
        {
            netType : "wifi", //混合定位类型,wifi/lbs/gps 等
            longitude : Number, //经度
            latitude : Number, //纬度
            accuracy : Number, //精确度半径
            province : "北京市", //所在省 
            city : "北京市", //所在城市
            district : "海淀区", //所在区,或县镇
            road : "海淀北二街", //道路名称
            address : "北京市海淀区海淀北二街靠近中关村摄影器材城", //格式化地址信息
        }
        */
    },
    onFail : function(err) {}
});

搜索地理位置

hq.device.geolocation.search({
    onSuccess : function(result) {
        /*
        {
            locationName:'十月大厦'
            locationAddress:'xxxx大街xxx号'
            locationCoordinate:{"lng":"经度1","lat":"纬度1"}
        }
        */
    },
    onFail : function(err) {}
});

业务

hq.biz

POI选择

hq.biz.map.locate({
    onSuccess: function(result) {
        /*
        {
            longitude: 116.36818454445626, //经度
            latitude: 40.22350666418106,   //纬度
            distance: 55.72796,            //距离中心点距离
            poiName: "北京敬华实验学校",   //建筑名称
            address: "北京市昌平区东辛路", //建筑位置
            locationType: "network",       //定位获取方式
        }
         */
    },
    onFail: function() {}
})

上传图片

选择图片+上传,防止恶意上传

选择图片+拍照

hq.biz.util.uploadImage({
    isMark:'',
    onSuccess : function(result) {
        /*
        {
        url: 'http://gtms03.alicdn.com/tps/i3/TB1VF6uGFXXXXalaXXXmh5R_VXX-237-236.png'
        }
        */
    },
    onFail : function() {}
})

上传多张图片

选择图片+上传,防止恶意上传

选择图片+拍照

hq.biz.util.uploadMultiImage({
    size:'',//最大上传数量
    isMark:'',
    onSuccess : function(result) {
        /*
        {
        url: 'http://gtms03.alicdn.com/tps/i3/TB1VF6uGFXXXXalaXXXmh5R_VXX-237-236.png'
        }
        */
    },
    onFail : function() {}
})
参数 类型 说明
type String 返回URL类型

仅现场拍照

hq.biz.util.uploadImageFromCamera({
    onSuccess: function(result) {
        /*
        {  
        url: 'http://gtms03.alicdn.com/tps/i3/TB1VF6uGFXXXXalaXXXmh5R_VXX-237-236.png'
        }
        */
    },
    onFail: function(error) {}
})
参数 类型 说明
type String 返回URL类型

仅从相册选择

hq.biz.util.uploadImageFromGallery({
    onSuccess: function(result) {
        /*
        {           
         url: 'http://gtms03.alicdn.com/tps/i3/TB1VF6uGFXXXXalaXXXmh5R_VXX-237-236.png'
        }
        */
    },
    onFail: function() {}
})
参数 类型 说明
type String 返回URL类型

选择本地图片

0.0.2

hq.biz.util.selectLocalFile({
 "fileType":"image", //此版本仅支持type:image 
 "source":["camera","gallery"]  // 此版本仅支持两种情况:1、拍照["camera"],2,拍照+相册选择 ["camera","gallery"]  
 "mutilple":"0" ,//0 代表不能多选 ;1代表多选,目前仅支持单选   
 onSuccess:function(data){
  /*
  {
    "filePath":"uid_YYYY_mm_dd.jpg", //加密后的字符串          "fileName":"uid_YYYY_mm_dd.jpg", 
    "fileType":"image" //目前仅支持image类型  
    }
  */
 }         
})

如果fileType为image,H5查看缩略图方式
http://app/imagePreview?filePath=[param] [param]=urlEncode(filePath)

图片浏览器

0.0.2
调用此api,将显示一个图片浏览器

hq.biz.util.previewImage({
    urls: [String],//图片地址列表
    current: String,//当前显示的图片链接
    onSuccess : function(result) {
        /**/
    },
    onFail : function() {}
})

上传头像

hq.biz.util.uploadAvatarImage({
   title:'',//string
    onSuccess: function(result) {
        /*
        data:{          
         url: 'http://gtms03.alicdn.com/tps/i3/TB1VF6uGFXXXXalaXXXmh5R_VXX-237-236.png'
        }
        */
    },
    onFail: function() {}
})

参数说明

参数 参数类型 说明
urls Array[String] 图片地址列表
current String 当前显示的图片链接

图片连拍

hq.biz.util.continuousUploadImageFromCamera({
size:’9’,//String,连拍张数
onSuccess: function(result) {
/*
[{
url: ‘ http://gtms03.alicdn.com/tps/i3/TB1VF6uGFXXXXalaXXXmh5R_VXX-237-236.png
}]
*/
},
onFail: function(error) {}
})

下拉控件

hq.biz.util.chosen({
    source:[{
        key: '选项1', //显示文本
        value: 123 //值,
    },{
        key: '选项2',
        value: 234
    }],
    multiple:'0',//0-单选,1-多选
    onSuccess : function(result) {
        /*
        data:[{
            key: '选项2',
            value: 234     
        }]
        */
    },
    onFail : function() {}
})

打开远程url

hq.biz.util.openLink({
    url: String,
    onSuccess : function() {
        /**/
    },
    onFail : function(err) {}
})

应用内分享

hq.biz.util.share({
    url: String,//url地址
    title: String,//分享标题
    image: String,//分享图片
    content: String,//分享内容摘要
    onSuccess: function() {
        /**/
    },
    onFail: function(err) {}
})

卡片分享

hq.biz.util.shareCard({
    data:{
         "chatid": "chatxxxxxxxxx", //可为空
         "sender": "manager1122", //empCode,可为空
         "msgtype": "oa",
        "oa": {
        "type": "report",
        "action":"1",
        "head": "    ",
        "detailId":"1",
        "templateId":"xxxx",
        "message_url": "https://www.dingtalk.com/report?id=1",
        "pc_message_url": "https://oa.dingtalk.com/report?id=1",
         "body": {
            "title": "    ",
            "image": "http://www.hecom.cn/static/123.png",
            "content": "", 
            "form": [
                {
                "key": "  :", "value": "  "
                },],
            "tags": [ "  1","2", "  3", "  4", "  5", "  5", "  6", "  7"],
             "icon_text": {
                 "icon": "location",
                 "text": "京西酒店" },
             "signature": {
                 "author": "laotian",
                 "date": "1403234234234234"
                 }
                }
             }
          }
    onSuccess: function() {
        /**/
    },
    onFail: function(err) {}
})

打开应用内页面

hq.biz.util.open({
    name: String,//页面名称
    params: Object,//传参
    onSuccess : function() {
        /**/
    },
    onFail : function(err) {}
})

页面及参数名称说明:

  • profile:detail, 个人中心-个人资料页 0.0.2新增
  • profile:points, 个人中心-积分任务
  • profile:invite, 个人中心-邀请朋友体验
  • im:chat, 沟通-个人聊天,参数:{ deviceId: "用户ID", nickname: "用户姓名" }
  • im:personDetail, 沟通-人员详情,参数:{ deviceId: "用户ID" }
  • customer:detail, 客户-客户详情,参数:{ customerCode: "客户code" }
  • mustreceived:send,必达 0.0.2 {empCode:'接收员工code'}
  • product:detail,产品详情 0.0.2 {'productId':'产品id'}
  • examine:detail,审批详情, {templateId:'',detailId:'',fixedType:''}
  • customerContact:detail,客户联系人详情, {code:'客户联系人ID'}
  • crmProject:detail,crm项目详情, {projectId:'crm项目ID'}
  • enterprise:setting,企业功能设置

日期选择器

注意:format只支持android系统规范,即2015-03-31格式为yyyy-MM-dd

日期

hq.biz.util.datepicker({
    format: 'yyyy-MM-dd',
    value: '2015-04-17', //默认显示日期  0.0.3
    onSuccess : function(result) {
        /*{
            value: "2015-02-10"
        }
        */
    },
    onFail : function() {}
})

时间

hq.biz.util.timepicker({
    format: 'HH:mm',
    value: '14:00', //默认显示时间  0.0.3
    onSuccess : function(result) {
        /*{
            value: "10:00"
        }
        */
    },
    onFail : function() {}
})

日期+时间

hq.biz.util.datetimepicker({
    format: 'yyyy-MM-dd HH:mm',
    value: '2015-04-17 08:00', //默认显示
    onSuccess : function(result) {
        /*{
            value: "2015-06-10 09:50"
        }
        */
    },
    onFail : function() {}
})

选择时长

hq.biz.util.durationpicker({

    onSuccess : function(result) {
        /*{
            data:'xxxx',//string,时长
        }
        */
    },
    onFail : function() {}
})

ut埋点

请使用此接口时,详细讨论使用场景及方法

hq.biz.util.usertrack({
    method: 'C',
    arguments: {
        target: '测试按钮'
    },
    onSuccess: function(result) {},
    onFail: function() {}
})

methodarguments 必须提供

method 类型及意义:

参数 说明
PS Page Show,进入页
PL Page Left,退出页
BS Box Show,打开对话框
BL Box Left,关闭对话框
C Click,点击
LS List Select,选中列表中某行
LD List Down to refresh,下拉刷新
LU List Up to refresh,上拉刷新

argments 参数:

target
代表事件发生的对象可读名称
row
LS 选中列表某行事件需要提供此参数,其它均不需要

通知native调整webview高度

适用于原生页面嵌入H5页面时,H5加载完调用此方法通知原生页面调整webview高度

hq.biz.util.adjustWebviewHeight({
    height:'20',//H5页面高度,单位PX
    onSuccess:function(){
    },
    onError:function(){

    }
});

语音输入

打开原生页面进行语音输入,返回语音输入文字结果

hq.biz.util.voiceInput({
    text:'string',//已输入文字
    onSuccess:function(result){
     /**
      *  data:'string',//语音输入
      */
    },
    onError:function(){

    }
});

事件通知

hq.biz.util.eventChange({
    type: String,//事件名称
    data: Object,//传参
    onSuccess : function() {
        /**/
    },
    onFail : function(err) {}
})

根据ID获取定位信息

hq.biz.util.getLocationById({
    id: String,//
    onSuccess : function() {
        /*
         {data:""}
         */
    },
    onFail : function(err) {}
})

上传附件 [新增]

hq.biz.util.uploadFile({
    title:'', String,可选
    onSuccess : function() {
        /**/
         data:{
         url:'',
         filename:'',
         filetype:'',
         filesize:''
         }
    },
    onFail : function(err) {}
})

附件预览 [新增]

hq.biz.util.previewFile({
    url:'',
    filename:'',
    filetype:'',
    filesize:'',
    onSuccess : function() {
        /**/

    },
    onFail : function(err) {}
})

写入日志

hq.biz.util.setLog({
    value:'',
    onSuccess : function() {
        /**/
    },
    onFail : function(err) {}
})

产品

选择产品

`0.0.2 `

原生提供选择界面,返回选中产品数据

hq.biz.product.choose({
    productID:['id'],//已选择ID列表
    specID:['id'],//规格ID
    multiple:'0',//0单选,1多选,目前只支持单选  
    onSuccess:function(result){
        /*
         data:[{productID:'',//产品Id
           productCode:'',产品code
           productName:'',//产品名称
           specID:'',//规格ID
           specName:'',//规格名称
            }]  
         */
    },
    onFail:function(error){

    }
})

选择产品分类

`0.0.2 `

原生提供选择界面,返回选中产品分类数据

hq.biz.product.cateChoose({
    cateId:['id'],//已选择ID列表
    onSuccess:function(result){
        /*
         data:
         [{id:'',//分类品Id
           name:'',//分类名称
            }]  
         */
    },
    onFail:function(error){

    }
})

添加产品

`0.0.2 `
hq.biz.product.add({
    onSuccess:function(result){
        /*
         */
    },
    onFail:function(error){

    }
})

添加产品分类

`0.0.2 `
hq.biz.product.addCate({
    onSuccess:function(result){
        /*
         */
    },
    onFail:function(error){

    }
})

编辑产品分类

`0.0.2 `
hq.biz.product.editCate({
    cateCode:'string',//分类code,
    cateid:'string',//分类id,
    cateName:'string',//分类名
    parentCode:'string',//上级分类code
    parentName:'string',//上级分类名
    onSuccess:function(result){
        /*
         data:
         [{isDeleted:'1',//是否删除分类,1-是,0-否
            }]  
         */
    },
    onFail:function(error){

    }
})

编辑产品

`0.0.2 `
hq.biz.product.editProduct({
    productCode:'string',//产品code,
    onSuccess:function(result){
        /*
         data:
         [{isDeleted:'1',//是否删除,1-是,0-否
            }]  
         */
    },
    onFail:function(error){

    }
})

模板

`0.0.2`
红圈管理模板业务相关jsapi

- templateType-模板类型说明

参数 类型 说明
visit String 拜访模板
task String 任务模板
meet String 会议模板
train String 培训模板
examine String 审批模板
log String 审批模板
customer String 客户模板
product String 产品模板
project String 项目模板
crm-project String CRM商机模板
crm-cluepool String CRM线索模板
examine String 项目合同模板 fixedType=crm-contract
examine String 项目费用模板 fixedType=crm-expense
examine String 申报回款模板 fixedType=crm-receipts
examine String 订单模板 fixedType=crm-order
crm-receipts-plan String 回款计划模板
  • templateFields-type-模板栏位类型说明
type value 说明
1 extends.value.1 单行文本
extends.value.2 多行文本
2 数字
3 array 下拉单选
4 extends.value.1 选择日期
extends.value.2 选择日期和时间
5 extends.value.1 拍照,仅支持现场拍照
extends.value.2 拍照和从手机相册选取
6 产品
7
8 选择客户
9 extends.value.1 选择部门内员工
extends.value.2 选择全企业员工
10 定位
11 关联日程
12 自动计算
13 选择项目(红圈通项目)
14 选择合同
16 选择客户联系人
17 CRM项目
18 电话
19 邮箱
20 下拉多选
21 合同/订单
22 回款计划
23 订单明细
  • 模板详情数据格式RECORD
{
    templateId:"11111", //  模板ID,string  
    templateType:"examine", //模板类型
    detailId:"xxxx", // 详情Id,string  
    empCode:string , // 提交时不提供,服务器通过list,add结果返回时提供       
    empName:string ,//  提交时不提供,服务器通过list,add结果返回时提供         
    createTime:string,//提交时不提供,服务器通过list,add结果返回时提供    
    summary:{
        template:{ 
        templateId:string, 
        templateName:string, 
        templateIcon:string
    },  
    view:{
        forms:[{"key":"xxxx","value":"xxxx"}] 
        }
    },
    content:{},//用户填写内容
    status:string,//审批状态
    extend:{ // 扩展项   
        flow:[{ //审批工作流          
        }] 
        }
}

获取模板

`0.0.2`
hq.biz.template.getTemplate({
    templateType:'',//模板类型
    templateId:'',//模板ID
    onSuccess:function(result){
        /**
         * 模板数据
         */
    },
    onFail:function(error){
    }
})

获取模板详情

`0.0.2`
hq.biz.template.getDetail({
    templateType:'',//模板类型
    detailId:'',//详情id,可选
    draftId:'',//草稿id,可选
    onSuccess:function(result){
        /**
         * 模板详情json数据
         */
    },
    onFail:function(error){
    }
})
参数 类型 说明
templateType String 模板类型
detailId String 详情ID,根据templateType判断具体ID
draftId String 草稿ID

说明:detailId和draftId选其一

获取上一个或下一个模板详情

`0.0.2`
hq.biz.template.getDetailIdOffset({
    templateType:'',//模板类型
    detailId:'',//当前id
    offset:'1',//1代表下一条,-1代表上一条
    onSuccess:function(result){
        /**
         * {detailId:''}
         */
    },
    onFail:function(error){
    }
})

没结果返回通用没有记录的错误

切换模板

0.0.2

hq.biz.template.selectTemplate({
    templateType:'log',
    onSuccess:function(result){
        /**
         * {
            templateType:"",
            templatedId:"",
            }
         */
    },
    onFail:function(error){
    }

原生提供选择界面,返回选中数据

保存模板详情

`0.0.2`

H5调用jsapi保存用户填写的模板内容

 hq.biz.template.saveDetail({
    submit:"0|1",//0保存草稿,1 直接提交
    templateType:"log",//模板详情
    draftId:"XXX",//如果从草稿转入编辑,提供draftId,否则不传
    localFiles:['uid_xxxx.jpg','uid_XXXX.jpg'],
    data:{RECORD},
    onSuccess:function(result){
        /**
         * 
         */
    },
    onFail:function(error){
    }
});

说明:如果编辑草稿则传入draftId,新增模板详情不传draftId

删除草稿

0.0.2

 hq.biz.template.delDraft({
    templateType:"log",//模板类型
    draftId:"XXX",//如果从草稿转入编辑,提供draftId,否则不传
    onSuccess:function(result){
        /**
         * 
         */
    },
    onFail:function(error){
    }
});

H5提交详情之后需要调用此接口删除草稿

保存模板审批/接收人

 hq.biz.template.saveContact({
    templateType:"log",//string,模板类型
    templateId:"1",//string,模板ID
    data:"XXX",//string,联系人,用逗号分隔 
    onSuccess:function(result){
        /**
         * 
         */
    },
    onFail:function(error){
    }
});

获取模板审批/接收人

 hq.biz.template.getContact({
    templateType:"log",//string,模板类型
    templateId:"1",//string,模板ID
    onSuccess:function(result){
        /**
         * data:'XXX',
         */
    },
    onFail:function(error){
    }
});

H5更新本地数据接口

hq.biz.data.notifyChange({
    type:'log',
    action:'list|add|delete|update', // 增删改查,查就是列表         
    items:[{RECORD}] ,//根据类型传入服务器返回数据
    onSuccess:function(data){

    },
    onFail:function(error){
    }
 })
  • type 参数说明
参数 类型 说明
visit String 拜访
task String 任务
meet String 会议
train String 培训
examine String 审批
log String 日志
customer String 客户
template String 模板
templateFields String 模板栏位详情
employee String 员工信息

H5更新服务器数据后,调用此接口更新本地数据

导航栏

设置属性

hq.biz.navigation.set({
    visible: false,//控制titlebar是否显示,默认显示
    onSuccess : function(result) {
        /*
        {}
        */
    },
    onFail : function(err) {}
})

设置标题

hq.biz.navigation.setTitle({
    text: '邮箱正文',//控制标题文本,空字符串表示不显示
    onSuccess : function(result) {
        /*
        {}
        */
    },
    onFail : function(err) {}
});

设置左侧导航按钮

hq.biz.navigation.setLeft({
    text: '',//控制显示文本,空字符串表示显示默认文字或icon
    onSuccess : function(result) {
        /*
        {}
        */
    },
    onFail : function(err) {}
});

设置右侧导航按钮

hq.biz.navigation.setRight({
    type: 'text',//按钮类型,text或icon
    value: ['发送'],//控制显示文本,最多两个,空数组表示不显示
    //value: ['SEARCH', 'OK'],//控制显示icon,最多两个,ICON是预定义的几种类型,空数组表示不显示
    onSuccess : function(result) {
        /*
        {
            buttonIndex: 0 //被点击按钮的索引值,Number类型,从0开始
        }
        */
    },
    onFail : function(err) {}
});

触发关闭

hq.biz.navigation.close({
    onSuccess : function(result) {
        /*
        {}
        */
    },
    onFail : function(err) {}
})

退出登录

hq.biz.navigation.logOut({
onSuccess:function(result){
},
onFail:function(error){

}

});

企业通讯录

选人

hq.biz.contact.choose({
    title: '请选择',//通讯录界面标题,请尽量简短,默认 [请选择]
    multiple: true,//是否支持多选,默认单选
    onSuccess : function(result) {
        /*
        {
            data: [
                {
                    name: '姓名',
                    deviceId: 'deviceId',
                    empCode:"",//人员code `新增`
                    deptName: '部门名称', //通讯录部门名称
                },
                ...
            ]
        }
        */
    },
    onFail : function(err) {}
});

选择部门和人员

0.0.2

hq.biz.enterprise.choose({
    parentCode:'',//string,上级部门,可传空
    title:'选择员工',//string,默认选择员工
    empCodes:'1111,222',//string,已选择部门和人员列表,用逗号分隔
    type:'0',//string,默认0,可选择部门和人员,1-只选部门,2-只选员工,3-执行人,4-接收人
    mode:'0',//string,默认0,0-选择人员,1-删除人员,目前仅在type=2时有用
    hasSelf:'0',//string,是否包含自己,默认0,0-可选择自己,1-不可选择自己
    multiple:true,//true-多选,false-单选
    onSuccess:function(result){
        /*
         data:[{code:'',//部门或人员code
           name:'',//部门或人员名称
           isEmployee:'1',//1员工,0部门
            }]  
         */
    },
    onFail:function(error){

    }
})

添加员工

0.0.2

hq.biz.enterprise.employeeAdd({
    deptCode:'',//string,部门Code
    deptName:'',//string,部门名称
    onSuccess:function(result){
        /*
         data:'0',//0-成功,其他值失败
         */
    },
    onFail:function(error){

    }
})

选择客户

0.0.2

hq.biz.enterprise.customerChoose({
    title:'',//string,标题
    isEdit:'1',//string,是否可编辑,1-是,0-否
    projectCode:'',//string,项目Code 可选 
    orgCode:'',//string,部门code 可选
    onSuccess:function(result){
        /*
         data:{
         'code':'',
         'name':'',
         'project':{
            'code':'',
            'name':''
           }
         }
         */
    },
    onFail:function(error){

    }
})

选择普通项目 [新增]

  • 原生提供选择界面,返回选择结果
hq.biz.enterprise.projectChoose({
    title:'',//string,标题 可选
    onSuccess:function(result){
        /*
         data:{
         'code':'',
         'name':'',
         'customer':{
            'code':'',
            'name':''
          }
         }
         */
    },
    onFail:function(error){

    }
})

选择CRM项目 [新增]

  • 原生提供选择界面,返回选择结果
hq.biz.enterprise.crmProjectChoose({
    title:'',//string,标题 可选
    onSuccess:function(result){
        /*
         data:{
         'code':'',
         'name':'',
         'customer':{
            'code':'',
            'name':''
          }
         }
         */
    },
    onFail:function(error){

    }
})

选择合同 [新增]

  • 原生提供选择界面,返回选择结果
hq.biz.enterprise.contractChoose({
    title:'',//string,标题 可选
    projectId:'',string,项目Id
    onSuccess:function(result){
        /*
         data:{
         'code':'',
         'name':'',
         'returnMoney':'',//回款金额
          'products':[],//合同产品
         }
         */
    },
    onFail:function(error){

    }
})

选择合同/订单

  • 原生提供选择界面,返回选择结果
hq.biz.enterprise.contractOrderChoose({
    title:'',//string,标题 可选
    projectId:'',string,项目Id,可选,为空可选全部,不为空只能选择指定商机的合同或订单
    onSuccess:function(result){
        /*
         data:{
         'code':'',
         'name':'',
         'type':'',//1-合同,2-订单
         'money':'',//合同/订单金额
         }
         */
    },
    onFail:function(error){

    }
})

选择回款计划

  • 原生提供选择界面,返回选择结果
hq.biz.enterprise.receiptsPlanChoose({
    title:'',//string,标题 可选
    ref:{
     id:'',//string,合同或订单id
     type:'',//string1-合同,2-订单
    },
    onSuccess:function(result){
        /*
         data:{
         'code':'',//计划id
         'planDate':'',//回款时间
         'planPrice':'',//回款金额

         }
         */
    },
    onFail:function(error){

    }
})

新增/编辑/查看订单明细

  • 原生提供选择界面,返回选择结果
hq.biz.enterprise.orderDetail({
    title:'',//string,标题 可选
    action:'new',//string,new-新增,edit-编辑,view-查看
    id:'',//选填,查看的时候有
    orderDetail:{},//选填,订单明细数据,编辑的时候有
    onSuccess:function(result){
        /*
         data:{ },//订单明细数据
         */
    },
    onFail:function(error){

    }
})

选择客户联系人 [新增]

  • 原生提供选择界面,返回选择结果
hq.biz.enterprise.customerContactChoose({
    title:'',//string,标题 可选
    customerCode:'',//string,客户code 可选
    projectId:'',//string,项目ID 可选
    selectedItems: "", //当前已选中的客户联系人customerContactId
    type:'',//string,customer-选择客户联系人,project-选择项目联系人
    onSuccess:function(result){
        /*
         data:{
          'customerContactId':''
          'name':'',//姓名
          'phone':'',//电话
         }
         */
    },
    onFail:function(error){

    }
})

恢复已删除员工

0.0.2

hq.biz.enterprise.employeeRestore({
    arguments:{"name":cm.name,'parentCode':cm.parentCode,'parentName':cm.parentName,'telphone':cm.telphone,'title':cm.title,'email':cm.email},
    onSuccess:function(result){
        /*
         data:{
         'code':'',//员工code
         'status':'1',//1-已恢复,0-未恢复
         }
         */
    },
    onFail:function(error){

    }
})

恢复已停用员工

0.0.2

hq.biz.enterprise.employeeRecovery({
    arguments:{"name":cm.name,'parentCode':cm.parentCode,'parentName':cm.parentName,'telphone':cm.telphone,'title':cm.title,'email':cm.email},
    onSuccess:function(result){
        /*
         data:{
         'code':'',//员工code
         'status':'1',//1-已恢复,0-未恢复
         }
         */
    },
    onFail:function(error){

    }
})

恢复客户

0.0.2

hq.biz.enterprise.customerRestore({
    customerCode:'',//string,客户Code
    onSuccess:function(result){
        /*
          data:{
         'code':'',//客户code
         'status':'1',//1-已恢复,0-未恢复
         }
         */
    },
    onFail:function(error){

    }
})

编辑角色


hq.biz.enterprise.roleEdit({
    code:'123',//员工code
    roleList:[{'code':"123",'name':'xxx',roleFlag:'0'}],//array,角色列表
    onSuccess:function(result){

    },
    onFail:function(error){

    }
})


搜索员工

hq.biz.enterprise.search({
    title:'选择员工',//string,默认选择员工
    onSuccess:function(result){
        /*
         data:[{code:'',//人员code
           name:'',//人员名称
            }]  
         */
    },
    onFail:function(error){

    }
})

解散企业

0.0.2

hq.biz.enterprise.dismiss({
    onSuccess:function(result){
    },
    onFail:function(error){

    }
});

数据

hq.internal

此命名空间下的api调用了内部业务数据,主要为业务数据获取,数据弹窗选择,用户信息获取等,需要做严格的权限限制,是否开放也需要谨慎考虑。

业务数据获取

hq.internal.data.call({
    method: String,//方法名
    arguments: Object,//参数
    onSuccess: function() {
        /*
        {
            data: [
                {
                    code: 1, //数据代码
                    name: '名称', //数据名称
                    //其余字段根据数据的不同而不同
                },
                ...
            ]
        }
        */
    },
    onFail: function(err) {}
});

方法及参数说明

getStatusByType

根据类型获取状态种类

参数 类型 说明
type String ORDER=订单状态(具体类型询问国庆)

状态类别

参数 说明
ORDER 订单
SALES 报销量
PROMOTION 执行促销
PRODUCT_ONSALE 巡店

getOrgList

获取本地部门数据

参数 类型 说明
pageNum Integer 页码
pageSize Integer 每页条数
searchKey String 搜索关键字
searchSize Integer 搜索条数
parentCode String 部门编码(空值就是权限下最高部门)

结果附加字段

Key 类型 说明
leaf String 是否是叶子节点,’0’: 否,’1’: 是
deviceId String 用户deviceId

getProductList

获取本地产品数据

参数 类型 说明
pageNum Integer 页码
pageSize Integer 每页条数
searchKey String 搜索关键字
searchSize Integer 搜索条数
parentCode String 产品编码(根据该编码获取下级产品列表)
结果附加字段
Key 类型 说明
price String? 产品价格

getDictList

获取字典数据

参数 类型 说明
parentCode String 字典数据类型编码(具体可以咨询国庆)

getCustomerList

获取本地客户数据

参数 类型 说明
pageNum Integer 页码
pageSize Integer 每页条数
searchKey String 搜索关键字
searchSize Integer 搜索条数

getDeliveryManList

获取经销商数据

参数 类型 说明
pageNum Integer 页码
pageSize Integer 每页条数
searchKey String 搜索关键字
searchSize Integer 搜索条数

getSupplieList

获取物料数据

参数 类型 说明
pageNum Integer 页码
pageSize Integer 每页条数
searchKey String 搜索关键字
searchSize Integer 搜索条数

getLayers

获取本地图层,空参数

getUserInfoList

获取用户基本信息列表 0.0.2 修改

参数 类型 说明
deviceIds String 用户ID,可传多个,逗号分隔,为空则输出全部
empCodes String 员工Code,可传多个,逗号分隔,为空则输出全部 ,优先使用deviceIds 0.0.2 新增

结果字段非附加

Key 类型 说明
deviceId String 用户ID
nickName String 用户姓名
telPhone String 手机号码
headUrl String 头像大图地址,可为空
headThumbnailUrl String 头像缩略图地址,可为空
email String 邮箱,新增
orgCode String 部门code,新增
orgName String 部门名称,新增
position String 职位,新增
role String 角色,新增
userTime String 个人时间,新增
active String 激活状态,新增

getCustomerInfoList

获取客户基本信息列表

参数 类型 说明
codes String 客户customerCode,可传多个,逗号分隔,不可为空

结果附加字段

Key 类型 说明
level String 客户等级code
headUrl String 客户头像(缩略图,直接使用)

getPhotoConfig

获取拍照应用类型配置信息,空参数

getLocalOrgList

获取本地部门列表,空参数

结果字段`非附加`
Key 类型 说明
code String 部门Code
name String 部门名称
deviceId String 用户ID
leaf String 叶子节点

getSubOrgList

获取子部门列表

参数 类型 说明
code String 部门code,-1为权限下最高部门列表

结果字段非附加

Key 类型 说明
code String 部门Code
name String 部门名称
deviceId String 用户ID
leaf String 叶子节点

getEmpInfo

获取员工信息,空参数

结果字段`非附加`
Key 类型 说明
deviceId String 用户Id
empCode String 员工编码
empName String 员工姓名
deptCode String 部门code
deptName String 部门名称

queryCusCodeByArea

根据地图名称获取客户Code列表

参数 类型 说明
areas String 地图名称,可传多个,逗号分隔,为空则输出全部

结果字段非附加

Key 类型 说明
code String 客户Code

getAreaList

获取地区列表

参数 类型 说明
parentCode String 上级地区编码,默认为空

结果字段非附加

Key 类型 说明
code String 地区Code
name String 地区name

getOrganizationList

0.0.2

获取部门以及部门人员列表

参数 类型 说明
orgCode String 上级部门编码,-1为权限下最高部门和人员
keyword String 搜索关键词,员工姓名或

返回结果

[
{   code:111,//部门或员工code
    name:111,//部门或员工名称
    isEmployee:1,//1代表员工,0代表部门
    empCount:1,//员工数
    position:工程师,//职位
    headImg:touxiang,//头像
    role:1,//角色
    active:1,//激活状态
    }]

获取用户身份[未加密]信息 0.0.2 修改

hq.internal.account.getId({
    onSuccess : function(result) {
        /*
        {
                loginId:'',//账号
            deviceId: '13011111111',//用户ID
            version:'',//版本号
            isSysAdmin: '0',//-1或者空代表非管理员,0代表企业管理员,1代表部门管理员
            entCode: 'v40new',//公司代码
            uid:'',
            sessionId:'',
            orgCode:'',//部门代码
            orgName:'',//部门名称
            empCode:'',//员工代码
            empName:'',//员工姓名
            deviceCode: 'XXXXXFFFFFFFXXXXXXVVVV',//设备代码
            experienceAccount: '',//TODO:
        }
        */
    },
    onFail : function(err) {}
});

通用本地存储接口

获取数据

hq.util.localStorage.getItem({
    name:'value'//string
    onSuccess : function(result) {
        /*
         * data:{value:''}
        */
    },
    onFail : function(err) {}
});

设置数据

hq.util.localStorage.setItem({
    {name:value},//object
    onSuccess : function(result) {
        /*
         * 
        */
    },
    onFail : function(err) {}
});

删除数据

hq.util.localStorage.removeItem({
    name:'value'//string
    onSuccess : function(result) {
        /*
         * 
        */
    },
    onFail : function(err) {}
});

清除数据

hq.util.localStorage.clear({
    onSuccess : function(result) {
        /*
         * 
        */
    },
    onFail : function(err) {}
});

附录

容器能力

// v0.0.1
'runtime.info',
'device.notification.alert',
'device.notification.confirm',
'device.notification.prompt',
'device.notification.showPreloader',
'device.notification.hidePreloader',
'device.notification.toast',
'device.notification.actionsheet',
'device.notification.modal',
'device.notification.vibrate',
'device.geolocation.get',
'biz.map.locate',
'biz.util.uploadImage',
'biz.util.uploadImageFromCamera',
'biz.util.uploadImageFromGallery',
'biz.util.chosen',
'biz.util.openLink',
'biz.util.share',
'biz.util.open',
'biz.util.datepicker',
'biz.util.timepicker',
'biz.util.datetimepicker',
'biz.navigation.set',
'biz.navigation.setTitle',
'biz.navigation.setLeft',
'biz.navigation.setRight',
'biz.navigation.close',
'biz.contact.choose',
'biz.util.usertrack',
'internal.data.call',
'internal.account.getId',
//v0.0.2
'biz.util.selectLocalFile',
'biz.until.previewImage',
'biz.product.choose',
'biz.template.getTemplate',
'biz.template.getDetail',
'biz.template.selectTemplate',
'biz.template.getDetailIdOffset',
'biz.template.saveDetail',
'biz.template.delDraft',
'biz.data.notifyChange',
'biz.util.shareCard',