- OA模块代码说明
- 1、序言
- 2、关键词名词解析
- 3、办公OA管理
- 3.1、企业CIS模块
- 企业文化列表(cis_culture_content.html)
- 文体活动列表(cis_sports_content.html)
- 培训活动列表(cis_joined_train_content.html)
- 文体活动列表(cis_joined_sports_content.html)
- 企业文化详情(cis_culture_detail.html)
- 活动详情(cis_activity_detail.html)
- 活动报名(cis_activity_detail.html)
- 3.2、公告模块
- 公告列表(notice.html)
- 公告详情(notice_detail.html)
- 3.3、员工动态模块
- 员工入职列表(personnel_dynamics_new_content.html)
- 员工异动列表(personnel_dynamics_content.html)
- 3.4、考勤模块(punchCard.html)
- 3.5、规章制度模块
- 规章制度列表(rule.html)
- 规章制度详情(rule_detail.html)
- 3.6、日程模块
- 日程列表(sched.html)
- 日程详情(sched_detail.html)
- 编辑日程(sched_add.html)
- 创建日程(sched_add.html)
- 3.7、工单审批模块
- 工单列表(workFlowList.html)
- 工单详情(workFlow_detail.html)
- 办事轨迹(workFlowTrail.html)
- 发起审批(workFlowTypeList.html)
- 添加工单(workFlow_add.html)
- 编辑工单(workFlow_edit.html)
- 3.8、注释
- addDaka()
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()函数
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-00013、接口参数:
{
"ifno": "zywx-atten-0001",
"condition": { },
"content": {
"lat": latitude,
"lng": longitude
}
}