OA模块代码说明

1、序言

为了体现移动应用优势,提升公司办公效率,通过移动OA建立线上工作方式,简化传统公司工作方式,结合现有EMM管理平台与MBaas数据相结合,满足高度运转的公司变化需要。 本文档供项目组全体成员及项目组领导、单元测试人员、及相关人员阅读,方便后期项目更新维护、相关人员尽快熟悉项目内容。

本文档用于企业移动协同办公的详细设计,该详细设计的范围是:系统各组成部分的构成、各个部分的相关功能描述及相关代码的详细介绍。

2、关键词名词解析

OA : 办公自动化(Office Automation,简称OA):是利用无线网络实现办公自动化的技术。它将原有OA系统上的公文、通讯录、日程、文件管理、通知公告等功能迁移到手机等移动设备上,让用户可以随时随地进行掌上办公,对于突发性事件和紧急性事件有极其高效和出色的支持。

3、办公OA管理

3.1、企业CIS模块
企业文化列表(cis_culture_content.html)

接口编号:zywx-culture-0001

接口地址:服务器地址+端口号 + "emoa/app"

代码说明:进入页面执行cultureListView.load(0)函数调用接口获取企业文化列表。

接口参数:{
"ifno": "zywx-culture-0001",
"condition": {
 "rowCnt": "10",
 "pageNo": pageNo
 },
"content": {
 "cltrType":"",
 "cltrTtl":""
 }
} 培训活动列表(cis_train_content.html)

接口编号:zywx-cult-0001

接口地址:服务器地址+端口号 + "emoa/app"

代码说明:存储appcan.setLocVal('CIS-TYPEJONED',"NO")以便设置相应接口参数;执行trainListView.load(0)函数调用接口获取培训活动列表。

接口参数:{
"ifno": "zywx-cult-0001",
"condition": {
  "rowCnt": "10",
 "pageNo": pageNo
 },
"content": {
 "cltrTtl":""
 }
}

文体活动列表(cis_sports_content.html)

接口编号:zywx-actv-0001

接口地址:服务器地址+端口号 + "emoa/app"

代码说明:存储appcan.setLocVal('CIS-TYPEJONED',"NO")以便设置相应接口参数;执行sportsListView.load(0)函数调用接口获取文体活动列表。

接口参数:{
"ifno": "zywx-actv-0001",
"condition": {
  "rowCnt": "10",
 "pageNo": pageNo
 },
"content": {
 "actvTtl":""
 }
}

培训活动列表(cis_joined_train_content.html)

接口编号:zywx-members-0002

接口地址:服务器地址+端口号 + "emoa/app"

代码说明:存储appcan.setLocVal('CIS-TYPEJONED',"YES")以便设置相应接口参数;执行trainListView.load(0)函数调用接口获取已报名培训活动列表。

接口参数:{
"ifno": "zywx-members-0002",
"condition": {
  "rowCnt": "10",
 "pageNo": pageNo
 "objEntityTypeId":"06"
 },
"content": {
  "title":""
 }
}

文体活动列表(cis_joined_sports_content.html)

接口编号:zywx-members-0002

接口地址:服务器地址+端口号 + "emoa/app"

代码说明:存储appcan.setLocVal('CIS-TYPEJONED',"YES")以便设置相应接口参数;执行sportsListView.load(0)函数根据相应参数调用接口获取文体活动列表。

接口参数:{
"ifno": "zywx-members-0002",
"condition": {
  "rowCnt": "10",
 "pageNo": pageNo
 "objEntityTypeId":"07"
 },
"content": {
  "title":""
 }
}

企业文化详情(cis_culture_detail.html)

接口编号:zywx-comm-0004

接口地址:服务器地址+端口号 + "emoa/app"

代码说明:进入页面执行cultureView.load()函数,根据活动ID,调用接口获取详情。

接口参数:{
"ifno" : "zywx-comm-0004",
"condition": {
 },
"content": {
  "entityTypeId" : "05",
  "objectId" : objectId
 }
}  

活动详情(cis_activity_detail.html)

接口编号:

1、类型不同,接口编号不同。
2、当类型为培训活动时,接口编号为:zywx-cult-0002
3、当类型为文体活动时,接口编号为:zywx-actv-0002

接口地址: 服务器地址+端口号 + "emoa/app"

代码说明:

1、活动类型不同,entityTypeId参数值不同。
2、当类型为培训活动时,entityTypeId值为:06
3、当类型为文体活动时,entityTypeId值为:07
4、进入页面执行getDetail()函数,根据活动ID,调用接口获取详情。
注:接口调用详见3.1.1.1企业文化列表(cis_culture_content.html)代码示例

接口参数:{
"ifno": (cisType=='cultivate_card'?"zywx-cult-0002": "zywx-actv-0002"),
"condition": {
 },
"content": {
  "entityTypeId": (cisType=='cultivate_card'?"06": "07"),
  "objectId" : objectId
 }
} |

 

活动报名(cis_activity_detail.html)

接口编号:zywx-members-0001

接口地址:服务器地址+端口号 + "emoa/app"

代码说明:

1、活动类型不同,objEntityTypeId参数值不同。
2、当类型为培训活动时,entityTypeId值为:0
3、当类型为文体活动时,entityTypeId值为:1
注:接口调用详见3.1.1.1企业文化列表(cis_culture_content.html)代码示例

接口参数:{
"ifno": "zywx-members-0001",
"condition": {
  "cultNumber": cultNumber,
  //人数限定"oprTypeId": "01"
 },
"content": {
  "entityTypeId": "08",
  "entity": {
    "objObjectId": objectId,
    "objEntityTypeId": (cisType=='cultivate_card'?0: 1),
    //0: 培训活动,1:文体活动"
    signupType": 0 //0: 自己报名, 1: 代报名
 }
}
}

3.2、公告模块
公告列表(notice.html)

接口编号:zywx-notice-0001

接口地址:服务器地址+端口号 + "emoa/app"

代码说明:进入页面执行noticeListView.load(0)函数,根据活动ID,调用接口获取详情。

接口参数:{
"ifno": "zywx-notice-0001",
"condition": {
  "pageNo": pageNo,
  "rowCnt": 10
 },
"content": {
  "noticeTtl": '',
  "noticeType": ''
}
}

公告详情(notice_detail.html)

接口编号:zywx-comm-0004

接口地址:服务器地址+端口号 + "emoa/app"

代码说明:进入页面执行noticeView.load()函数根据相应参数调用接口获取公告详情。

接口参数:{
"ifno": "zywx-comm-0004",
"condition": {
 },
"content": {
  "objectId": objectId,
  "entityTypeId": "09"
}
}

3.3、员工动态模块
员工入职列表(personnel_dynamics_new_content.html)

接口编号:zywx-ryyd-0001

接口地址:服务器地址+端口号 + "emoa/app"

代码说明:进入页面执行getDetail()函数根据相应参数调用接口获取员工入职列表。注意:接口返回值data.msg.entryInfo存在即属于员工入职列表项

接口参数:{
"ifno": "zywx-ryyd-0001",
"condition": {}, ,
"content": {}
}

员工异动列表(personnel_dynamics_content.html)

接口编号:zywx-ryyd-0001 接口地址:服务器地址+端口号 + "emoa/app" 代码说明:进入页面执行getDetail()函数根据相应参数调用接口获取员工异动列表。注意:接口返回值data.msg.transferInfo存在即属于员工异动列表项 接口参数:{
"ifno": "zywx-ryyd-0001",
"condition": {}, ,
"content": {}
}

3.4、考勤模块(punchCard.html)

接口编号:

1、获取考勤数据接口:zywx-atten-0002
2、打卡接口:zywx-atten-0001

接口地址:服务器地址+端口号 + "emoa/app"

代码说明:

1、进入页面执行selData()函数,调用接口获取当前月份打卡情况。
2、点击头部右侧日历按钮,选取时间后,通知punchCrad_content.html页面执行selData()函数更新页面数据。
3、打卡调用common.js中的addDaka()函数。详见注释4.8.1addDaka()

接口参数:{
"ifno": "zywx-atten-0002",
"condition": {}, ,
"content": {
 "year": curYear,
  "month": curMonth
 }
}

代码示例:1、右侧日历按钮,点击选取年份和月份,调用openDatePickerWithoutDay方法打开日期选择器。
uexControl.openDatePickerWithoutDay(year, months);
2、获取当前年份、月份
 var curYear = curDate.getFullYear();//当前年
 var curMonth = curDate.getMonth()+1;//当前月

3.5、规章制度模块
规章制度列表(rule.html)

接口编号:zywx-rule-0001

接口地址:服务器地址+端口号 + "emoa/app"

代码说明:进入页面执行RuleListViewInstance.load()函数根据相应参数调用接口获取规章制度列表。

接口参数:{
"ifno": "zywx-rule-0001",
"condition": { ,
"pageNo": pageNo,
"rowCnt": 10
},
"content": {
 "keyWord": '',
  "ruleTtl": ''
 }
}

规章制度详情(rule_detail.html)

接口编号:zywx-comm-0004

接口地址:服务器地址+端口号 + "emoa/app"

代码说明:进入页面执行ruleView.load()函数根据相应参数调用接口获取规章制度详情。

接口参数:{
"ifno": "zywx-comm-0004",
"condition": {
},
"content": {
 "objectId": objectId,
  "entityTypeId": "10"
 }
}  

3.6、日程模块 
日程列表(sched.html)

接口编号:

1、获取某天日程的编号:zywx-schedule-0001
2、删除日程接口编号:zywx-comm-0003
3、获取某月有活动的日期的接口编号:zywx-schedule-0002

接口地址:服务器地址+端口号 + "emoa/app"

代码说明:

1、执行openCalendar()函数,使用uexCalendar插件,显示日历。
2、选中某一天时执行schedListView.load()函数,查询当天日程列表。
3、执行SchedView.swipeLeft(),实现日程单项左滑动显示删除按钮效果。
4、执行SchedView.swipeRight(),实现日程单项右滑动隐藏删除按钮效果。
5、执行SchedView.gesture(),显示弹窗询问是否删除日志。
6、执行SchedView.discard(),删除日程。
7、执行calendarView.load()获取每月有活动的日期。

接口参数:

1、获取某天日程接口参数:
{
"ifno": "zywx-schedule-0001",
"condition": {
 "year": scdlY, //年
 "month": scdlM,
 day": scdlD//日
},
"content": {
 }
}
2、删除日程接口参数
{
"ifno": "zywx-comm-0003",
"condition": {
 "oprTypeId": "03" 
 },
"content": {
 "objectId": objectId,
 "entityTypeId": "25"
 }
}
3、获取某月有活动的日期的接口参数:
{
"ifno": "zywx-schedule-0002",
"condition": {
  "year": scdlY,
 //年"month": scdlM//月
 },
"content": {
 }
}
4、打开日历,传递的数据
var json={
"frame":{
"y":y//日历的起始高度(距离顶部的距离) 
 },
  "type":"0",
 "needScroll":"0",
 "startDate":rcxsny,
 "selectedColor":"0xe5e5e5",//日历选中项的颜色
  "todayColor":"0x50b9ff"//today的颜色
};

日程详情(sched_detail.html)

接口编号:zywx-comm-0004

接口地址:服务器地址+端口号 + "emoa/app"

代码说明:进入页面执行schedView.load()调用接口获取数据

接口参数:{
"ifno": "zywx-comm-0004",
"condition": {
},
"content": {
 "objectId": objectId,
  "entityTypeId": "25"
 }
}  

编辑日程(sched_add.html)

接口编号:zywx-comm-0002

接口地址:服务器地址+端口号 + "emoa/app"

代码说明:

1、进入页面,首先判断当前操作是编辑还是新建
;appcan.locStorage.val("openRichengPage")为’1’表示打开编辑日程页。
2、执行schedView.initData()函数展示旧数据。
3、选取日期使用uexControl.openDatePicker(year, month, day)日期选择器。
4、选取时间使用uexControl.openTimePicker(hours, min)日期选择器。
5、执行schedView.submit()函数调用接口存储数据,接口调用成功后通知日程列表页面以及日程详情页面刷新。

接口参数:{
"ifno": (objectId?"zywx-comm-0002": "zywx-comm-0001"),
"condition": {
 "oprTypeId": (objectId?"02": "01")
},
"content": {
  "entityTypeId": "25",
  "entity": {
    "schedTypeId": schedTypeId, //0工作、1个人、2特殊、3重要
    "schedContent": schedContent,
    "startTime": startTime,
    "endTime": endTime,
    "remind": remind, //0否,1是
    "remindTime": remindTime
  }
 }
}  

创建日程(sched_add.html)

接口编号:zywx-comm-0001

接口地址:服务器地址+端口号 + "emoa/app"

代码说明:

1、进入页面,首先判断当前操作是编辑还是新建;appcan.locStorage.val("openRichengPage")为’0’表示打开编辑日程页。
2、执行schedView.submit()函数调用接口存储数据,接口调用成功后通知日程列表页面以及日程详情页面刷新。

接口参数:{
"ifno": (objectId?"zywx-comm-0002": "zywx-comm-0001"),
"condition": {
  "oprTypeId": (objectId?"02": "01")
},
"content": {
  "entityTypeId": "25",
  "entity": {
    "schedTypeId": schedTypeId, //0工作、1个人、2特殊、3重要
    "schedContent": schedContent,
    "startTime": startTime,
    "endTime": endTime,
    "remind": remind, //0否,1是
    "remindTime": remindTime
  }
 }
}  

3.7、工单审批模块
工单列表(workFlowList.html)

接口编号:zywx-workFlow-0001

接口地址:服务器地址+端口号 + "emoa/app"

代码说明:进入页面执行BillTypeView.load()函数根据相应参数调用接口获取工单列表。

接口参数:{
"ifno" : "zywx-workFlow-0001",
"condition": {
  "url" : "/appdo-web-flow/workFlowData/getBillTypeList"
},
"content": {
 "tenantId" : tenantId,
  "metaid" : "",
 "billKey" : "",
 "prco_inset_id" : "",
 "rowCnt" : "",
 "pageNo" : ""
 }
}  

工单详情(workFlow_detail.html)

接口编号:zywx-workFlow-0005

接口地址:服务器地址+端口号 + "emoa/app"

代码说明:进入页面执行workflowView.load()调用接口获取工单详情。

接口参数:{
"ifno": "zywx-workFlow-0005",
"condition": {
  "url": "/appdo-web-flow/workFlowData/getBillTypeTemplateFileds",
  "objectId": this.workflowdata.businessKey,
  "entityTypeId": "24"
},
"content": {
  "tenantId": this.workflowdata.tenantId,
  "billKey": this.workflowdata.busiid,
  "metaid": this.workflowdata.metaid
  }
}  

办事轨迹(workFlowTrail.html)

接口编号:zywx-workFlow-0001

接口地址:服务器地址+端口号 + "emoa/app"

代码说明:进入页面执行WorkFlowTrailView.load()调用接口获取办事轨迹数据。

接口参数:{
"ifno" : "zywx-workFlow-0001",
"condition": {
  "url" : "/appdo-web-flow/workFlowData/getHistoryList"
 },
"content": {
  "tenantId" : this.WORKFLOWDATA.tenantId,
  "billKey" : this.WORKFLOWDATA.busiid,
  "metaid" : this.WORKFLOWDATA.metaid,
  "prco_inset_id" : this.WORKFLOWDATA.instanceid,
  "rowCnt" : "100",
  "pageNo" : "1"
  }
}  

发起审批(workFlowTypeList.html)

代码说明:

获取工单审批页面存储的数据即appcan.getLocVal("workFlowType"),根据数据使用FOR循环展示各种类型审批工单。  

添加工单(workFlow_add.html)

接口编号:zywx-workFlow-0008

接口地址:服务器地址+端口号 + "emoa/app"

代码说明:

1、执行add( )初始化工单信息,自动填充某些字段
2、执行FormView.save()提交工单

接口参数:{
"ifno": "zywx-workFlow-0008",
"condition": {
 "url": "/appdo-web-flow/workFlowAction/saveForm/" + options.flag,
 "masifno": "zywx-note-0001"
  },
"content": {
 "tenantId": String(workflowdata.tenantId),
  "entityTypeId": "24",
  "entity": this.toJSON()
  }
}  

编辑工单(workFlow_edit.html)

接口编号:1、获取工单信息接口编号:zywx-workFlow-0005
2、工单编辑后提交接口编号:zywx-workFlow-0008
3、工单编辑后保存接口:zywx-workFlow-0004|

接口地址:服务器地址+端口号 + "emoa/app"

代码说明

:1、执行update( )初始化工单信息
2、执行FormView.save()提交工单

接口参数:

读取工单接口参数:
{
"ifno": "zywx-workFlow-0005",
"condition": {
 "url": "/appdo-web-flow/workFlowData/getBillTypeTemplateFileds" 
  },
"content": {
 "tenantId": workflowdata.tenantId,
  "metaid": workflowdata.metaid
  }
}
未提交工单编辑后提交接口参数:
{
"ifno": "zywx-workFlow-0008",
"condition": {
 "url": "/appdo-web-flow/workFlowAction/saveForm/1",
  "masifno": "zywx-note-0004"
 },
"content": {
  "metaid": workflowdata.metaid,
  "user_info_id": workflowdata.userId,
  "tenantId": String(workflowdata.tenantId), 
  "objectId": this.id, 
  "entityTypeId": "24",
  "entity": this.toJSON()
  }
}
工单(除未提交订单)编辑后提交接口参数:
{
"ifno": "zywx-workFlow-0008",
"condition": {
 "url": "/appdo-web-flow/workFlowAction/commitTask",
 "masifno": "zywx-note-0004",
  "oprTypeId": "02",
 "editTypeId": "02", //编辑种类 01:办理,02编辑提交
 "edit": {
   "objectId": this.id,
   "entityTypeId": "24",
   "entity": this.toJSON()
}
  },
"content": {
 "user_info_id": workflowdata.userId,
  "tenantId": String(workflowdata.tenantId),
  "taskId": workflowdata.taskId,
  "approve": "true",
  "approveResult": ""
  }
}
工单编辑后保存接口:
{
"ifno": "zywx-workFlow-0004",
"condition": {
  "url": "",
  "masifno": "zywx-note-0004"
  },
"content": {
 "objectId": this.id,
  "entityTypeId": "24",
 "entity": this.toJSON()
  }
}  

3.8、注释
addDaka()

代码说明

1、addDaka()为在common.js 中封装的函数 2、getBaiduFromGoogle接口在设备未开启定位服务时跳转到系统的定位设置页面 3、根据获取的经纬度执行addDakaDo()函数调用接口进行打卡

代码示例

1、addDaka()函数

function addDaka(cb) {
    appcan.ready(function() {
        uexLocation.cbGetBaiduFromGoogle = function(log, lat) {
            appcan.logs("===" + log + "lat==" + lat);
            addDakaDo(cb, lat, log);
        }
        var n = 0;
        uexLocation.onChange = function(lat, log) {
            n++;
            uexLocation.closeLocation();
            if (n == 1) {
                if (isAndroid) {
                    addDakaDo(cb, lat, log);
                } else {
                    uexLocation.getBaiduFromGoogle(log, lat);
                }
            }
        }
    });
    uexLocation.openLocation();
}

2、接口编号:zywx-atten-0001 3、接口参数:

{
    "ifno": "zywx-atten-0001",
    "condition": {    },
    "content": {
        "lat": latitude,
        "lng": longitude
    }
}
还需要帮助吗? 联系我们
最新更新 8th Jul 2021