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-00023、当类型为文体活动时,接口编号为:zywx-actv-0002

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

代码说明:

1、活动类型不同,entityTypeId参数值不同。2、当类型为培训活动时,entityTypeId值为:063、当类型为文体活动时,entityTypeId值为:074、进入页面执行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值为:03、当类型为文体活动时,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-00022、打卡接口: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-00052、工单编辑后提交接口编号:zywx-workFlow-00083、工单编辑后保存接口: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()函数

  1. function addDaka(cb) {
  2. appcan.ready(function() {
  3. uexLocation.cbGetBaiduFromGoogle = function(log, lat) {
  4. appcan.logs("===" + log + "lat==" + lat);
  5. addDakaDo(cb, lat, log);
  6. }
  7. var n = 0;
  8. uexLocation.onChange = function(lat, log) {
  9. n++;
  10. uexLocation.closeLocation();
  11. if (n == 1) {
  12. if (isAndroid) {
  13. addDakaDo(cb, lat, log);
  14. } else {
  15. uexLocation.getBaiduFromGoogle(log, lat);
  16. }
  17. }
  18. }
  19. });
  20. uexLocation.openLocation();
  21. }

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

  1. {
  2. "ifno": "zywx-atten-0001",
  3. "condition": { },
  4. "content": {
  5. "lat": latitude,
  6. "lng": longitude
  7. }
  8. }