提交 cbfaa3cd 编写于 作者: U unknown

jsdoc

上级 bcbd599c
/**
* Work 数据结构,流程实例对象
* @typedef {Object} Work
* @example
* {
"id": "854e2c22-718e-48bb-98db-96f4b43e7ee8", //流程实例ID
"splitValue": "xxxxxxxxxxxxxx", //流程拆分后的拆分依据
"title": "xx7月北京出差报销审批", //流程实例名称
"startTime": "2018-09-07 14:03:22", //流程启动时间
"startTimeMonth": "2018-09", //流程启动的月份
"creatorPerson": "xx@huqi@P", //流程实例创建人
"creatorIdentity": "xx@481c9edc-5fb5-41f1-b5c2-6ea609082cdb@I", //流程实例创建人身份
"creatorUnit": "xx@c448d8bb-98b8-4305-9d3f-12537723cfcc@U", //流程实例创建人所在组织
"creatorUnitLevelName": "浙江兰德纵横/开发部", //流程实例创建人所在组织层次
"application": "1dc23336-6be6-402b-bed6-36e707a1dd17", //流程应用ID
"applicationName": "财务管理", //流程应用名称
"applicationAlias": "finance", //流程应用别名
"process": "2207db11-dddf-4ebd-864d-3819f3e173c6", //流程ID
"processName": "报销审批流程", //流程名称
"processAlias": "", //流程别名
"activity": "13d15daf-2ac5-4c1b-a669-1607a0e5ed15", //当前活动ID
"activityType": "manual", //当前活动类型
"activityName": "部门领导审核", //当前活动名称
"activityAlias": "", //当前活动别名
"activityDescription": "", //当前活动描述
"activityArrivedTime": "2018-09-27 22:49:21", //当前活动到达时间
"serial": "", //编号
"workStatus": "processing", //流程实例状态
"errorRetry": 0, //流转失败重试次数
"splitting": false, //流程是否拆分
"form": "db3b2766-93a1-4058-b522-0edb922bd84f", //流程展现所使用的表单
"manualTaskIdentityList" : "张三@db3b2766-93a1-4058-b522-0edb922bd84f@I", //预期的处理人
"manualTaskIdentityText" : "张三" //当前处理人身份合并文本,用','分割,超长截断,此字段仅用于显示当前工作的处理人,不索引.
}
*/
/**
* WorkCompleted 数据结构,已结束流程实例对象
* @typedef {Object} WorkCompleted
* @example
* {
"id": "be0195f1-f2e2-4eac-911c-99897a43ff8f", //流程实例ID
"title": "xx7月北京出差报销审批", //流程实例名称
"startTime": "2018-09-19 16:14:16", //流程启动时间
"startTimeMonth": "2018-09", //流程启动的月份
"completedTime": "2018-09-19 16:15:28", //流程完成时间
"completedTimeMonth": "2018-09", //流程完成的月份
"creatorPerson": "xx@huqi@P", //流程实例创建人
"creatorIdentity": "xx@481c9edc-5fb5-41f1-b5c2-6ea609082cdb@I", //流程实例创建人身份
"creatorUnit": "xx@c448d8bb-98b8-4305-9d3f-12537723cfcc@U", //流程实例创建人所在组织
"creatorUnitLevelName": "浙江兰德纵横/开发部", //流程实例创建人所在组织层次
"application": "1dc23336-6be6-402b-bed6-36e707a1dd17", //流程应用ID
"applicationName": "财务管理", //流程应用名称
"applicationAlias": "finance", //流程应用别名
"process": "2207db11-dddf-4ebd-864d-3819f3e173c6", //流程ID
"processName": "报销审批流程", //流程名称
"processAlias": "", //流程别名
"serial": "", //编号
"form": "320be1ca-ee49-478f-a751-f65ab67cf818", //流程展现所使用的表单
}
*/
/**
* Task数据结构,待办任务对象
* @typedef {Object} Task
* @example
* {
"id": "dd476045-7c79-44f7-9dba-f51d322de40f", //待办ID
"title": "XX7月北京出差报销审批", //流程实例标题
"startTime": "2018-09-27 22:49:22", //待办到达时间
"startTimeMonth": "2018-09", //待办到达的月份
"work": "854e2c22-718e-48bb-98db-96f4b43e7ee8", //流程实例ID
"application": "1dc23336-6be6-402b-bed6-36e707a1dd17", //流程应用ID
"applicationName": "财务管理", //流程应用名称
"applicationAlias": "finance", //流程应用别名
"process": "2207db11-dddf-4ebd-864d-3819f3e173c6", //流程ID
"processName": "报销审批流程", //流程名称
"processAlias": "", //流程别名
"serial": "", //流程编号
"person": "XXX@huqi@P", //待办人名称
"identity": "XX@481c9edc-5fb5-41f1-b5c2-6ea609082cdb@I", //待办人身份
"unit": "XX@c448d8bb-98b8-4305-9d3f-12537723cfcc@U", //待办人所在组织
"activity": "13d15daf-2ac5-4c1b-a669-1607a0e5ed15", //当前活动的ID
"activityName": "部门领导审核", //当前活动的名称
"activityAlias": "", //当前活动的别名
"activityDescription": "", //当前活动描述
"activityType": "manual", //当前活动类型
"creatorPerson": "XX@huqi@P", //流程实例创建人
"creatorIdentity": "XX@481c9edc-5fb5-41f1-b5c2-6ea609082cdb@I", //流程实例创建人的身份
"creatorUnit": "XX@c448d8bb-98b8-4305-9d3f-12537723cfcc@U", //流程实例创建人所在组织
"expired": false, //是否已超时
"urged": false, //是否进行催办
"routeList": [ //可选的路由ID
"89b58fe0-6dcb-4fe7-8c2e-3f77204df6d4",
"f3105b7a-2929-4682-aab8-15fef5ea0f23"
],
"routeNameList": [ //可选的路由名称
"退回申请人",
"送财务部门复审"
],
"routeOpinionList": [ //可选路由的默认意见
"",
""
],
"first" : true, //是否是第一条待办.
"properties": { //属性对象存储字段
"prevTaskIdentity": "张三@903dbb04-085c-4bb1-9c24-3009bd5f7372@I", //提交的处理人
"prevTaskIdentityList": [ //上一步处理人
"张三@903dbb04-085c-4bb1-9c24-3009bd5f7372@I"
],
"prevTaskList": [ //上一步任务信息
{
"routeName": "送办理",
"unit": "产品研发组@320189216@U",
"identity": "张三@903dbb04-085c-4bb1-9c24-3009bd5f7372@I",
"person": "张三@zhangsan@P",
"opinion": "",
"startTime": "2020-09-29 17:03:14",
"completedTime": "2020-09-29 17:04:38"
}
],
"prevTask": { //提交的任务信息
"routeName": "送办理",
"unit": "产品研发组@320189216@U",
"identity": "张三@903dbb04-085c-4bb1-9c24-3009bd5f7372@I",
"person": "张三@zhangsan@P",
"opinion": "",
"startTime": "2020-09-29 17:03:14",
"completedTime": "2020-09-29 17:04:38"
}
}
* }
*/
/**
* Read 数据结构,待阅任务对象
* @typedef {Object} Read
* @example
* {
"id": "dd476045-7c79-44f7-9dba-f51d322de40f", //待阅ID
"title": "XX7月北京出差报销审批", //流程实例标题
"startTime": "2018-09-27 22:49:22", //待阅产生时间
"startTimeMonth": "2018-09", //待阅产生的月份
"work": "854e2c22-718e-48bb-98db-96f4b43e7ee8", //流程实例ID
"application": "1dc23336-6be6-402b-bed6-36e707a1dd17", //流程应用ID
"applicationName": "财务管理", //流程应用名称
"applicationAlias": "finance", //流程应用别名
"process": "2207db11-dddf-4ebd-864d-3819f3e173c6", //流程ID
"processName": "报销审批流程", //流程名称
"processAlias": "", //流程别名
"completed": false, //流程是否已完成
"serial": "", //流程编号
"person": "XXX@huqi@P", //待阅人名称
"identity": "XX@481c9edc-5fb5-41f1-b5c2-6ea609082cdb@I", //待阅人身份
"unit": "XX@c448d8bb-98b8-4305-9d3f-12537723cfcc@U", //待阅人所在组织
"activity": "13d15daf-2ac5-4c1b-a669-1607a0e5ed15", //当前活动的ID
"activityName": "部门领导审核", //当前活动的名称
"activityAlias": "", //当前活动的别名
"activityDescription": "", //当前活动描述
"activityType": "manual", //当前活动类型
"creatorPerson": "XX@huqi@P", //流程实例创建人
"creatorIdentity": "XX@481c9edc-5fb5-41f1-b5c2-6ea609082cdb@I", //流程实例创建人的身份
"creatorUnit": "XX@c448d8bb-98b8-4305-9d3f-12537723cfcc@U" //流程实例创建人所在组织
}
*/
/**
* Activity 数据结构,流程实例所在的活动节点对象
* @typedef {Object} Activity
* @example
*
{
"id": "801087c5-a4e6-4b91-bf4d-a81cdaa04471", //节点ID
"name": "办理", //节点名称
"description": "", //节点描述
"alias": "", //节点别名
"resetRange": "department", //重置处理人范围
"resetCount": 0, //重置处理人数字
"allowReset": true, //是否允许重置
"manualMode": "single" //处理方式 单人single, 并行parallel, 串行queue, grab抢办
}
*/
MWF.xScript = MWF.xScript || {};
MWF.xScript.Environment = function(ev){
var _data = ev.data;
......@@ -58,11 +241,37 @@ MWF.xScript.Environment = function(ev){
* @summary 获取当前流程与当前用户相关的待办对象:task对象。
* @method getTask
* @static
* @return {string} The blended color.
* @return {(Task|Null)} 当前用户的待办任务对象:task。当前用户没有对此流程实例的待办时,或流程实例已经流转结束,返回null.
* @example
* var task = this.workContext.getTask();
*/
"getTask": function(){return ev.task || null;},
/**
* 获取当前流程实例对象:work对象或workCompleted对象。
* @method getWork
* @static
* @return {(Work|WorkCompleted)} 流程实例对象;如果流程已结束,返回已结束的流程实例对象.
* @example
* var work = this.workContext.getWork();
*/
"getWork": function(){return ev.work || ev.workCompleted;},
/**
* 获取当前流程实例所在的活动节点对象:activity对象。
* @method getActivity
* @static
* @return {(Activity|Null)} 当前流程实例所在的活动节点对象,如果当前流程实例已流转完成,则返回null.
* @example
* var activity = this.workContext.getActivity();
*/
"getActivity": function(){return ev.activity || null;},
/**
* 获取当前流程实例的所有待办对象。如果流程实例已流转完成,则返回一个空数组。
* @method getTaskList
* @static
* @return {(Task[])} 待办任务列表.
* @example
* var taskList = this.workContext.getTaskList();
*/
"getTaskList": function(callback, error){
var cb = (callback && o2.typeOf(callback)==="function") ? callback : null;
var ecb = (error && o2.typeOf(error)==="function") ? error : null;
......@@ -73,6 +282,14 @@ MWF.xScript.Environment = function(ev){
}, ecb, !!cb);
return list;
},
/**
* 根据当前工作的job获取当前流程实例的所有待办对象。如果流程实例已流转完成,则返回一个空数组。
* @method getTaskListByJob
* @static
* @return {(Task[])} 待办任务列表.
* @example
* var taskList = this.workContext.getTaskListByJob();
*/
"getTaskListByJob": function(callback, error){
var cb = (callback && o2.typeOf(callback)==="function") ? callback : null;
var ecb = (error && o2.typeOf(error)==="function") ? error : null;
......
......@@ -8,28 +8,24 @@ MWF.xApplication.process.Xform.$Module = MWF.APP$Module = new Class(
{
Implements: [Events],
options: {
// /**
// * 组件加载前事件。<br/>
// * 平台执行queryLoad事件的时候,组件还没有开始加载,这个时候可以根据条件修改组件的配置信息
// * @event MWF.xApplication.process.Xform.$Module#queryLoad
// * @example
// * var field = this.form.get("fieldName");
// * field.addEvent("queryLoad", function(){
// *
// * };
// */
// /**
// * Event reporting that a snowball has been hurled.
// *
// * @event MWF.xApplication.process.Xform.$Module#load
// * @property {number} velocity - The snowball's velocity, in meters per second.
// */
// /**
// * Event reporting that a snowball has been hurled.
// *
// * @event MWF.xApplication.process.Xform.$Module#postLoad
// * @property {number} velocity - The snowball's velocity, in meters per second.
// */
/**
* 组件加载前事件。<br/>
* 平台执行queryLoad事件的时候,组件还没有开始加载,这个时候可以根据条件修改组件的配置信息以改变加载细节。
* @event MWF.xApplication.process.Xform.$Module#queryLoad
* @example
* var field = this.form.get("fieldName");
* field.addEvent("queryLoad", function(){
*
* };
*/
/**
* 组件加载事件.
* @event MWF.xApplication.process.Xform.$Module#load
*/
/**
* 组件加载后事件.
* @event MWF.xApplication.process.Xform.$Module#postLoad
*/
"moduleEvents": ["load", "queryLoad", "postLoad"]
},
initialize: function(node, json, form, options){
......
//MWF.require("MWF.widget.PinYin", null, false);
MWF.xDesktop.requireApp("process.Xform", "Combox", null, false);
MWF.xApplication.process.Xform.Address = MWF.APPAddress = new Class({
/** @class Address 地址选择组件。
* @example
* //可以在脚本中获取该组件
* //方法1:
* var address = this.form.get("name"); //获取组件
* //方法2
* var address = this.target; //组件本身的事件和脚本中获取
* @extends MWF.xApplication.process.Xform.Combox
* @hideconstructor
*/
MWF.xApplication.process.Xform.Address = MWF.APPAddress = new Class(
/** @lends MWF.xApplication.process.Xform.Address# */
{
Implements: [Events],
Extends: MWF.APPCombox,
options: {
......
......@@ -1051,7 +1051,23 @@ MWF.xApplication.process.Xform.AttachmentController = new Class({
* @property {String} createTime - 创建时间.
* @property {String} updateTime - 修改时间.
* @property {String} extension - 附件扩展名.
* @example
* {
"id": "56c4e86f-a4c8-4cc2-a150-1a0d2c5febcb", //附件ID
"name": "133203a2-92e6-4653-9954-161b72ddb7f9.png", //附件名称
"extension": "png", //附件扩展名
"length": 43864, //附件大小
"person": "xx@huqi@P", //附件上传人
"lastUpdateTime": "2018-09-27 15:50:34", //最后的修改时间
"lastUpdatePerson": "xx@huqi@P", //最后的修改人
"activity": "e31ad938-c495-45a6-8d77-b8a9b61a165b", //附件上传的活动ID
"activityName": "申请人", //附件上传的活动名称
"activityType": "manual", //附件上传的活动类型
"site": "$mediaOpinion", //附件存储位置(一般用于区分附件在哪个表单元素中显示)
"type": "image/png" //附件类型(contentType)
}
*/
/** @class Actionbar 附件组件。
* @example
* //可以在脚本中获取该组件
......
......@@ -110,7 +110,7 @@ MWF.xApplication.process.Xform.Checkbox = MWF.APPCheckbox = new Class(
* @summary 获取选择项数组.
* @example
* var array = this.form.get('fieldName').getOptions();
* @return {Array} 选择项数组,如果脚本返回计算结果.
* @return {Array} 选择项数组,如果配置为脚本返回计算结果.
*/
getOptions: function(){
if (this.json.itemType == "values"){
......
MWF.xDesktop.requireApp("process.Xform", "$Input", null, false);
MWF.xApplication.process.Xform.Combox = MWF.APPCombox = new Class({
/** @class Combox 组合框组件。
* @example
* //可以在脚本中获取该组件
* //方法1:
* var field = this.form.get("fieldName"); //获取组件对象
* //方法2
* var field = this.target; //在组件本身的脚本中获取,比如事件脚本、默认值脚本、校验脚本等等
* @extends MWF.xApplication.process.Xform.$Input
* @hideconstructor
*/
MWF.xApplication.process.Xform.Combox = MWF.APPCombox = new Class(
/** @lends MWF.xApplication.process.Xform.Combox# */
{
Implements: [Events],
Extends: MWF.APP$Input,
iconStyle: "selectIcon",
......@@ -80,6 +92,12 @@ MWF.xApplication.process.Xform.Combox = MWF.APPCombox = new Class({
return null;
}
},
/**
* @summary 获取选择项数组.
* @example
* var array = this.form.get('fieldName').getOptions();
* @return {Array} 选择项数组,如果配置为脚本返回计算结果.
*/
getOptions: function(){
var list = [];
if (this.json.itemType === "values"){
......@@ -126,6 +144,20 @@ MWF.xApplication.process.Xform.Combox = MWF.APPCombox = new Class({
}
return [];
},
/**
* 当表单上没有对应组件的时候,可以使用this.data[fieldName] = data赋值。
* @summary 为组件赋值。
* @param value{String} .
* @example
* this.form.get("fieldName").setData("test"); //赋文本值
* @example
* //如果无法确定表单上是否有组件,需要判断
* if( this.form.get('fieldName') ){ //判断表单是否有无对应组件
* this.form.get('fieldName').setData( data );
* }else{
* this.data['fieldName'] = data;
* }
*/
setData: function(value){
this._setBusinessData(value);
this._setValue(value);
......@@ -166,13 +198,24 @@ MWF.xApplication.process.Xform.Combox = MWF.APPCombox = new Class({
}.bind(this));
}
},
/**
* @summary 重新计算下拉选项,该功能通常用在下拉选项为动态计算的情况.
* @example
* this.form.get('fieldName').resetOption();
*/
resetOption: function(){
if (this.combox){
var list = this.getOptions();
this.combox.setOptions({"list": list});
}
},
/**
* @summary 添加下拉选项.
* @param text {String} 下拉选项文本
* @param value {String} 下拉选项值
* @example
* this.form.get('fieldName').addOption("秘密","level1");
*/
addOption: function(text, value){
if (this.combox){
var list = this.getOptions();
......@@ -195,6 +238,12 @@ MWF.xApplication.process.Xform.Combox = MWF.APPCombox = new Class({
if (this.combox) return this.combox.getData();
return this._getBusinessData();
},
/**
* @summary 获取选中的值和文本.
* @example
* var array = this.form.get('fieldName').getTextData();
* @return {Object} 返回选中项值和文本,格式为 { 'value' : value, 'text' : text }.
*/
getTextData: function(){
var v = this.getData();
return {"value": v, "text": v};
......
......@@ -5,7 +5,17 @@ MWF.xApplication.process.Xform = MWF.xApplication.process.Xform || {};
MWF.xDesktop.requireApp("process.Xform", "lp." + MWF.language, null, false);
//MWF.xDesktop.requireApp("process.Xform", "Package", null, false);
MWF.xApplication.process.Xform.Form = MWF.APPForm = new Class({
/** @class Form 表单。
* @example
* //可以在脚本中获取表单
* //方法1:
* var form = this.form.getApp().appForm; //获取表单
* //方法2
* var form = this.target; //在表单本身的事件脚本中获取
*/
MWF.xApplication.process.Xform.Form = MWF.APPForm = new Class(
/** @lends MWF.xApplication.process.Xform.Form# */
{
Implements: [Options, Events],
Extends: MWF.widget.Common,
options: {
......@@ -41,10 +51,27 @@ MWF.xApplication.process.Xform.Form = MWF.APPForm = new Class({
initialize: function (node, data, options) {
this.setOptions(options);
/**
* @summary 表单容器
* @see https://mootools.net/core/docs/1.6.0/Element/Element
* @member {Element}
* @example
* //可以在脚本中获取表单容器
* var formContainer = this.form.getApp().appForm.container;
*/
this.container = $(node);
this.container.setStyle("-webkit-user-select", "text");
if (Browser.firefox) this.container.setStyle("opacity", 0);
this.data = data;
/**
* @summary 表单的配置信息,比如表单名称,提交方式等等.
* @member {JsonObject}
* @example
* //可以在脚本中获取表单配置信息
* var json = this.form.getApp().appForm.json; //表单配置信息
* var name = json.name; //表单名称
*/
this.json = data.json;
this.html = data.html;
......@@ -53,7 +80,36 @@ MWF.xApplication.process.Xform.Form = MWF.APPForm = new Class({
this._loadCss();
this.sectionListObj = {};
/**
* @summary 表单中的所有组件数组.
* @member {Array}
* @example
* //下面的样例对表单组件进行循环,并且判断是输入类型的组件
* var modules = this.form.getApp().appForm.modules; //获取所有表单组件
* for( var i=0; i<modules.length; i++ ){ //循环处理组件
* //获取组件的类型
var moduleName = module.json.moduleName;
if( !moduleName ){
moduleName = typeOf(module.json.type) === "string" ? module.json.type.toLowerCase() : "";
}
if( ["calendar","combox","number","textfield"].contains( moduleName )){ //输入类型框
//do something
}
* }
*/
this.modules = [];
/**
* 该对象的key是组件标识,value是组件对象,可以使用该对象直接根据组件标识获取组件。<br/>
* 需要注意的是,在子表单中嵌入不绑定数据的组件(比如div,common,button等等),系统允许重名。<br/>
* 在打开表单的时候,系统会根据重名情况,自动在组件的标识后跟上 "_1", "_2"。
* @summary 表单中的所有组件对象.
* @member {Object}
* @example
* var moduleAll = this.form.getApp().appForm.all; //获取组件对象
* var subjectField = moduleAll["subject"] //获取名称为subject的组件
*/
this.all = {};
this.allForName = {};
this.forms = {};
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册