/* * 说明: &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 菜单API &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& * 1. 该API 是被发起、待办、在途三个菜单列表页面引入,并获取的数据的API。 * 2. 其中需要 config.js 获得 ccbpmHostDevelopAPI 定义的服务器IP. * 3. 需要cookies 中的sid 校验码(token). * 4. 获取流程发起列表: DB_Start() * 5. 获得待办 DB_Todolist() * 6. 获得在途 DB_Runing() * 7. 打开表单 OpenForm() 发起、待办、在途三个列表都需要打开表单. */ //获得发起列表. function DB_Start() { var myurl = ccbpmHostDevelopAPI + "DB_Start?token=" + GetToken() + "&domain=" + domain; var json = RunUrlReturnJSON(myurl); if (json.code == 500) { alert(json.msg); return; } var data = json.data; var information = JSON.parse(data) return information; } /** * 1.获得待办. 返回的Json数据源. * 2.列: Title,WorkID,FK_Flow,FK_Node . * 3.获得该数据源,调用 * */ function DB_Todolist() { var myurl = ccbpmHostDevelopAPI + "DB_Todolist?token=" + GetToken() + "&domain=" + domain + "&t=" + new Date().getTime(); var json = RunUrlReturnJSON(myurl); if (json.code == 500) { alert(json.msg); return; } var data = json.data; var information = JSON.parse(data) return information; } //获得在途. function DB_Runing() { var myurl = ccbpmHostDevelopAPI + "DB_Runing?token=" + GetToken() + "&domain=" + domain; var json = RunUrlReturnJSON(myurl); if (json.code == 500) { alert(json.msg); return; } var data = json.data; var information = JSON.parse(data) return information; } //获得草稿. function DB_Draft() { var myurl = ccbpmHostDevelopAPI + "DB_Draft?token=" + GetToken() + "&domain=" + domain; var json = RunUrlReturnJSON(myurl); if (json.code == 500) { alert(json.msg); return; } var data = json.data; var information = JSON.parse(data) return information; } //获得流程注册表信息,返回没有完成的数据. function DB_GenerWorkFlow(flowNo) { var myurl = ccbpmHostDevelopAPI + "DB_GenerWorkFlow?token=" + GetToken() + "&flowNo=" + flowNo; var json = RunUrlReturnJSON(myurl); if (json.code == 500) { alert(json.msg); return; } var data = json.data; var information = JSON.parse(data) return information; } /** * 打开表单, 如果是仅仅传入的是FlowNo就是启动流程. * @param {any} flowNo * @param {any} nodeID * @param {any} workid * @param {any} fid * @param {any} paras */ function OpenForm(flowNo, nodeID, workid, fid, paras) { var url = GenerFrmUrl(flowNo, nodeID, workid, fid, paras); // 打开工作处理器. OpenMyFlow(url); // window.open(url); } /** * 获得表单的 URL. * 该表单的URL存储在开始节点表单方案里. * @param {流程编号} flowNo * @param {节点ID默认为0} nodeID * @param {实例的ID} workID * @param {默认为:0} fid * @param {参数:格式为 &KeHuBianHao=001&KeHuMingCheng=新疆天业} paras */ function GenerFrmUrl(flowNo, nodeID = 0, workid = 0, fid = 0, paras = "") { // ccbpmHostDevelopAPI 变量是定义在 /config.js 的服务地址. 访问必须两个参数DoWhat,SID. //首先获得表单的URL. var myUrl = ccbpmHostDevelopAPI + "GenerFrmUrl?token=" + GetToken() + "&workID=" + workid + "&flowNo=" + flowNo + "&nodeID=" + nodeID + "&fid=" + fid; var frmUrl = RunUrlReturnString(myUrl); frmUrl += paras; //如果包含了通用的工作处理器. if (frmUrl.indexOf("WF/MyFlow.htm") >= 0) { frmUrl = host + JSON.parse(frmUrl).data;; } return frmUrl; } /* ******************************************************************* 开发接口JS: ******************************************************************* * 1. 该文件里提供了一些高级开发接口, * 2. 比如:创建WorkID,执行发送,催办. 批量删除. * 3. 每个接口都有明确的注释. */ /** * 创建空白的WorkID. * @param {校验码(登录时候产生的)} sid * @param {流程编号} flowNo */ function Node_CreateBlankWorkID(flowNo) { var url = ccbpmHostDevelopAPI + "Node_CreateBlankWorkID?token=" + GetToken() + "&flowNo=" + flowNo; return RunUrlReturnString(url); } function Node_SetDraft(flowNo, workID) { var url = ccbpmHostDevelopAPI + "Node_SetDraft?token=" + GetToken() + "&flowNo=" + flowNo + "&workID=" + workID; return RunUrlReturnString(url); } function Node_IsCanDealWork(workID) { var url = ccbpmHostDevelopAPI + "Node_Node_IsCanDealWork?token=" + GetToken() + "&workID=" + workID; return RunUrlReturnString(url); } /** * 保存表单数据到流程实例中 * @param {any} workid * @param {any} paras @Key1=val1@Key2=val2 */ function Node_SaveParas(workid, paras) { //@mhj 这里要对参数格式执行校验,不符合不让保存. var url = ccbpmHostDevelopAPI + "Node_SaveParas?token=" + GetToken() + "¶s=" + paras + "&workID=" + workid; return RunUrlReturnString(url); } /** * 执行发送 * @param {工作实例ID} workid * @param {要达到的节点,为0不指定节点,由节点配置自动计算} toNodeID * @param {要发送的人员,为null,不指定人员,由流程配置自动计算} toEmps * @param {参数,格式为:@Key1=val1@Key2=val2 } paras */ function Node_SendWork(workid, toNodeID, toEmps, paras = "") { if (paras == null || paras == undefined) paras = ""; paras = paras.replace('@', '&'); var url = ccbpmHostDevelopAPI + "Node_SendWork?token=" + GetToken(); url += "&workID=" + workid + "&toNodeID=" + toNodeID; url += "&toEmps=" + toEmps + "&1=2" + paras; return RunUrlReturnString(url); } /** * 获得可以退回的节点 * @param {校验码} sid * @param {流程编号} flowNo * @param {工作实例ID} workid * @param {FID} fid */ function DB_GenerWillReturnNodes(flowNo, workid, fid = 0) { var url = ccbpmHostDevelopAPI + "DB_GenerWillReturnNodes?token=" + GetToken() + "&flowNo=" + flowNo; url += "&workID=" + workid + "&fid=" + fid; return RunUrlReturnString(url); } /** * 批处理:获得批处理的节点. */ function Batch_Init() { var url = ccbpmHostDevelopAPI + "Batch_Init?token=" + GetToken() + "&domain=" + domain; var json = RunUrlReturnJSON(url); if (json.code == 500) { alert(json.msg); return; } var data = json.data; var information = JSON.parse(data) return information; } function WorkCheckModel_Init(nodeID) { var url = ccbpmHostDevelopAPI + "WorkCheckModel_Init?token=" + GetToken() + "&nodeID=" + nodeID; var json = RunUrlReturnJSON(url); if (json.code == 500) { alert(json.msg); return; } var data = json.data; var information = JSON.parse(data) return information; } function Node(nodeID) { var url = ccbpmHostDevelopAPI + "En_Node?token=" + GetToken() + "&nodeID=" + nodeID; var json = RunUrlReturnJSON(url); if (json.code == 500) { alert(json.msg); return; } var data = json.data; var information = JSON.parse(data) return information; } function Flow(flowNo) { var url = ccbpmHostDevelopAPI + "En_Flow?token=" + GetToken() + "&no=" + flowNo; var json = RunUrlReturnJSON(url); if (json.code == 500) { alert(json.msg); return; } var data = json.data; var information = JSON.parse(data) return information; } function Batch_InitDDL(nodeID) { var url = ccbpmHostDevelopAPI + "Batch_InitDDL?token=" + GetToken() + "&nodeID=" + nodeID; var json = RunUrlReturnJSON(url); if (json.code == 500) { alert(json.msg); return; } var data = json.data; var information = JSON.parse(data) return information; } function WorkCheckModel_Send(nodeID, CheckNote, ToNode, ToEmps) { var url = ccbpmHostDevelopAPI + "WorkCheckModel_Send?token=" + GetToken() + "&nodeID=" + nodeID + "&toNode=" + ToNode + "&toEmps=" + ToEmps + "&checkNote=" + CheckNote; var json = RunUrlReturnJSON(url); if (json.code == 500) { alert(json.msg); return; } var data = json.data; var information = JSON.parse(data) return information; } function Batch_Delete(WorkIDs) { var url = ccbpmHostDevelopAPI + "Batch_Delete?token=" + GetToken() + "&workIDs=" + WorkIDs; var json = RunUrlReturnJSON(url); if (json.code == 500) { alert(json.msg); return; } var data = json.data; var information = JSON.parse(data) return information; } /** * 退回 * @param {校验码} sid * @param {工作实例ID} workid * @param {退回到节点ID} returnToNodeID * @param {退回给人员} returnToEmp * @param {退回意见} msg * @param {是否原路返回?} isBackToThisNode */ function Node_ReturnWork(workid, returnToNodeID, returnToEmp, msg, isBackToThisNode = false) { var url = ccbpmHostDevelopAPI + "Node_ReturnWork?token=" + GetToken(); url += "&workID=" + workid; url += "&returnToNodeID=" + returnToNodeID; url += "&returnToEmp=" + returnToEmp; url += "&msg=" + msg; if (isBackToThisNode == true) url += "&IsBackToThisNode=1"; else url += "&IsBackToThisNode=0"; return RunUrlReturnString(url); } /** * 设置流程标题 * @param workID 工作ID. * @param title 流程标题 */ function Flow_SetTitle(workID, title) { var url = ccbpmHostDevelopAPI + "Flow_SetTitle?token=" + GetToken(); url += "&workID=" + workID; url += "&title=" + title; return RunUrlReturnString(url); } /** * 催办 * @param {要执行的实例,多个实例用逗号分开比如:1001,1002,1003} workidStrs */ function Flow_DoPress(workidStrs, msg) { var url = ccbpmHostDevelopAPI + "Flow_DoPress?token=" + GetToken(); url += "&workIDs=" + workidStrs; url += "&msg=" + msg; return RunUrlReturnString(url); } /** * 撤销发送,如果产生失败就会返回 err@+失败信息. * @param {要执行的实例,多个实例用逗号分开比如:1001,1002,1003} workidStrs */ function Flow_DoUnSend(workidStrs) { var url = ccbpmHostDevelopAPI + "Flow_DoUnSend?token=" + GetToken(); url += "&workIDs=" + workidStrs; return RunUrlReturnString(url); } /** * 删除流程 * @param {要删除的实例,多个实例用逗号分开比如:1001,1002,1003} workidStrs * @param {是否删除子流程} isDeleteSubFlows */ function Flow_BatchDeleteByReal(workidStrs, isDeleteSubFlows = true) { var url = ccbpmHostDevelopAPI + "Flow_BatchDeleteByReal?token=" + GetToken(); url += "&workIDs=" + workidStrs; if (isDeleteSubFlows == false) url += "&IsDeleteSubFlows=0"; else url += "&IsDeleteSubFlows=1"; return RunUrlReturnString(url); } /** * 恢复删除 * @param {any} workidStrs */ function Flow_BatchDeleteByFlagAndUnDone(workidStrs) { var url = ccbpmHostDevelopAPI + "Flow_BatchDeleteByFlagAndUnDone?token=" + GetToken(); url += "&workIDs=" + workidStrs; return RunUrlReturnString(url); } /** * 设置流程结束 * @param {要执行的实例,多个实例用逗号分开比如:1001,1002,1003} workidStrs */ function Flow_DoFlowOver(workidStrs) { var url = ccbpmHostDevelopAPI + "Flow_DoFlowOver?token=" + GetToken(); url += "&workIDs=" + workidStrs; return RunUrlReturnString(url); } /** * 批量设置抄送查看完毕 * @param {any} workidStrs */ function CC_BatchCheckOver(workidStrs) { var url = ccbpmHostDevelopAPI + "CC_BatchCheckOver?token=" + GetToken(); url += "&workIDs=" + workidStrs; return RunUrlReturnString(url); } /** * 删除草稿 * @param {要执行的实例,多个实例用逗号分开比如:1001,1002,1003} workidStrs */ function Flow_DeleteDraft(workidStrs) { var url = ccbpmHostDevelopAPI + "Flow_DeleteDraft?token=" + GetToken(); url += "&workIDs=" + workidStrs; return RunUrlReturnString(url); } /** * 移交 * @param {工作ID} workID * @param {要移交到的人} toEmpNo * @param {移交消息} msg */ function Node_Shift(workID, toEmpNo, msg) { var url = ccbpmHostDevelopAPI + "Node_Shift?token=" + GetToken(); url += "&workID=" + workID; url += "&toEmpNo=" + toEmpNo; url += "&msg=" + msg; return RunUrlReturnString(url); } /** * 增加人员 * @param {工作ID} workID * @param {增加的人员ID} empID */ function Node_AddTodolist(workID, empID) { var url = ccbpmHostDevelopAPI + "Node_AddTodolist?token=" + GetToken(); url += "&workID=" + workID; url += "&empNo=" + empID; return RunUrlReturnString(url); } /** * 流程实例的注册信息 * @param {实例ID} workID * @returns 流程实例的注册信息 */ function Flow_GenerWorkFlow(workID) { var url = ccbpmHostDevelopAPI + "Flow_GenerWorkFlow?token=" + GetToken(); url += "&workID=" + workID; return RunUrlReturnString(url); }