/**
 * 根据V5的业务需求,提供了一些重要的业务组件,如:<br>
 *     <ul>
 *         <li>关联文档组件</li>
 *         <li>选人组件</li>
 *         <li>流程图组件</li>
 *         <li>签章组件</li>
 *     </ul>
 * @module V5
 */
/**
 * 选择关联文档组件
 * <br>根据V5业务需要,进行V5关联文档选择的界面:
 * @namespace cmp
 * @class accDoc
 * @constructor
 ** @param {String} id 实例化组件的唯一ID标识,可选
 * @param {Object} options 配置参数
 *      @param {Number} [options.fillbackData] 符合V5数据格式的协同或文档数据,JSON对象格式
 *      @param {Number} [options.callback] 选中的数据点击确定返回给开发者的数据
 *      @param {Function} [options.closeCallback] 点击取消的回调函数
 * @example
 * ```
 * <script>
 *     var accDoc = cmp.flowChart("accDoc_Id",{
 *              fillback: null,
 *                   callback:function(result){
 *                       result = cmp.parseJSON(result);
 *                       for(var i = 0;i< result.length; i ++){
 *                          console.log(cmp.parseJSON(result[i]));
 *                       }
 *                   },
 *                   closeCallback:function(){
 *                       //TODO
 *                   }
 *     });
 * </script>
 * ```
 */

/**
 * 流程图组件(v5数据格式)
 * @class flowV5
 * @namespace cmp
 * @constructor
 * @param {Object} data v5格式流程数据
 * @param {Object} options 配置参数
 *      @param {String} [options.id] 展示流程图的容器id
 *      @param {Number} [options.cWidth] 流程图显示的宽度 (默认:window的宽度)
 *      @param {Number} [options.cHeight] 流程图显示的高度 (默认:window的高度)
 *      @param {Function} [options.callback] 回调函数,返回点击到的对应节点的数据
 * @example
 * ```
 * <script>
 *     var flowChart = cmp.flowV5(data,{
 *                   id:"my_cvs",
 *                   cWidth: window.innerWidth,
 *                   cHeight: window.innerHeight,
 *                   callback:function(nodeInfo){
 *                       alert(cmp.toJSON(nodeInfo));
 *                   }
 *     });
 * </script>
 * ```
 * @returns {Object} 流程图对象
 *
 */

/**
 * 选人组件<br>
 *     由于移动端选人组件的展示的性能考虑,选人组件不会每次都重新实例化,选人组件是一款比较灵活复杂的组件,主要功能是根据V5业务进行设计的<br>
 *         开发者可以根据配置,实例化一个组件,进行各种业务的选人操作<br>
 *            注:选人组件分为流程选人和轻表单选人组织机构
 * @class selectOrg
 * @namespace cmp
 * @constructor
 * @demo cmp-selectOrg.html
 * @param {String} id 选人组件唯一标识,如果该id对应页面上的控件的id,则选人组件会主动给该控件绑定点击事件,点击后进行选人业务
 * @param {Object} options 配置参数
 *      @param {String} [options.title] 组件界面显示的标题,默认分为两种情况:<br>
 *          <ul>
 *              <li>流程选人,显示的是当前登录人员的单位名称</li>
 *              <li>轻表单选人,显示【单选】/【多选】加具体选择类型,如:【单选人员】</li>
 *          </ul>
 *      @param {Number} options.type 组件的类型<br>
 *          <ul>
 *              <li>1:流程选人</li>
 *              <li>2:轻表单选组织机构</li>
 *          </ul>
 *      @param {String} options.selectType 选择类型(流程选人不用配置此)<br>
 *          <ul>
 *              <li>member:选人</li>
 *              <li>department:选部门</li>
 *              <li>post:选岗位</li>
 *              <li>account:选单位</li>
 *              <li>level:选职务级别</li>
 *          </ul>
 *      @param {Number} [options.flowType] 专为流程选人定义的一个参数,用于同一个选人组件,选择条件改变的情况;具体值的含义:<br>
 *          <ul>
 *              <li>1:改变成单选(及进行替换操作)</li>
 *              <li>2:多选模式(多选操作)</li>
 *              <li>3:默认模式</li>
 *          </ul>
 *      @param {Boolean} [options.flowOptsChange] 是否进行流程选人配置参数的重置(由于业务改变才需要设置该值,只对流程选人有效),默认:false
 *      @param {Boolean} [options.lightOptsChange] 是否进行轻表单选人配置参数的重置(由于业务改变才需要设置该值,只对轻表单选人有效),默认:false
 *      @param {Number} [options.maxSize] 选中的最多数量,默认:-1,不受数量限制,如果设置成1,则为单选模式;(如果是流程选人,会忽略此参数,一概认定是多选)
 *      @param {Number} [options.minSize] 选中的最少数量,默认:-1,不受数量限制
 *      @param {Array} [options.label] 按需导入首页页签,默认:["dept","org","post","team","extP"],其中:<br>
 *          <ul>
 *              <li>dep:【本部门】</li>
 *              <li>org:【组织机构】</li>
 *              <li>post:【岗位】</li>
 *              <li>team:【组】</li>
 *              <li>extP:【外部人员】</li>
 *          </ul>
 *      @param {Boolean} [options.multitype] 是否进行多类型选择(用于轻表单选人中可进行部门选择,如果还有其他情况以后再进行扩展,默认是可以进行多类型选择的)默认:false
 *      @param {Boolean} [options.permission] 流程选人时,整体选部门,选岗位、选组是否受当前登录人员权限控制(默认流程选人要受权限控制)默认:true
 *      @param {Boolean} [options.directDepartment] 流程选人中是否直选部门(即不进行是否包含子部门的提示)默认:false
 *      @param {Array} [options.fillBackData] 回填值格式,其中<br>
 *          <ul>
 *              <li>人员数据:[{id:181818,name:"杨海",type:"member"}]</li>
 *              <li>部门数据:[{id:"-155555",name:"天龙八部",type:"department"}]</li>
 *              <li>单位(account)、职务(level)、岗位(post)只是type不一样</li>
 *          </ul>
 *      @param {Array} [options.excludeData] 被排除的不能选择的数据,格式同fillBackData一样
 *      @param {String} [options.server] 对于跨域请求rest接口的时候,需要开发者自定义服务器地址 如:http://192.168.10.55:8080
 *      @param {Function} options.callback 回调函数 根据组件类型返回的值有数据类型标识:<br>
 *          <ul>
 *              <li>light:轻表单类型数据</li>
 *              <li>concurrent:流程并联类型数据</li>
 *              <li>sequence:流程串联类型数据</li>
 *          </ul>
 *      @param {Function} [options.closeCallback] 关闭组件的回调函数
 * @returns {Object} 选人组件对象
 */


/**
 * 选人组件-销毁
 * @class selectOrgDestory
 * @namespace cmp
 * @constructor
 * @param {String} id 对应的创建的选人组件id
 * @example
 * ```
 * <script>
 *     cmp.selectOrgDestory(id);
 * </script>
 * ```
 * @returns {Object} 流程图对象
 *
 */

/**
 * 签章组件(只支持在M3环境下运行)
 * @class handWriteSignature
 * @namespace cmp
 *
 */

/**
 * 签章组件-初始化签章图片
 * @method initSignatureData
 * @namespace cmp.handWriteSignature
 * @param {Object} options 配置参数
 *      @param {Function} options.success 成功回调函数
 *      @param {Function} options.error 失败回调函数
 *      @param {Array} options.value 初始化需要传的值
 *              @param {String} options.value[0].fieldName 表单域名称
 *              @param {String} options.value[0].fieldValue 表单域值
 * @example
 * ```
 * <script>
 *     cmp.handWriteSignature.initSignatureData({
 *          success:function(result){
 *             var oneData = result[0];
 *             var fieldName = oneData.fieldName;
 *             var fieldValue = oneData.fieldValue;
 *             var picData = oneData.picData;//签章图片数据
 *          },
 *          error:function(e){
 *             console.log(e);
 *          },
 *          value:[{fieldName:"field0001",fieldValue:"12727"}]
 *     });
 * </script>
 * ```
 *
 */



/**
 * 签章组件-显示签章组件
 * @method show
 * @namespace cmp.handWriteSignature
 * @param {Object} options 配置参数
 *      @param {Function} options.success 成功回调函数
 *      @param {Function} options.error 失败回调函数
 *      @param {String} options.fieldName 表单域名称
 *      @param {String} options.fieldValue 需要提交到服务前端的base64数据
 *      @param {String} options.height 签章控件高
 *      @param {String} options.width 签章控件宽
 *      @param {String} options.picData 可以显示在当前表单的签章图片base64
 *      @param {String} options.recordID 表单的权限id
 *      @param {String} options.summaryID 表单参数
 *      @param {String} options.currentOrgID 表单参数
 *      @param {String} options.currentOrgName 表单参数
 *      @param {String} options.signatureListUrl 签章列表url地址,http//10.5.6.240:88/seeyon/rest/signet/signets
 *      @param {String} options.signaturePicUrl 获取签章数据url地址,http//10.5.6.240:88/seeyon/rest/signet/signetPic
 *      @param {String} options.hasSignetures 是否有签章权限
 *      @param {String} options.affairId 表单参数
 * @example
 * ```
 * <script>
 *     cmp.handWriteSignature.show({
 *          success:function(result){
 *
 *          },
 *          error:function(e){
 *             console.log(e);
 *          },
 *           "fieldName": "",
 *           "fieldValue": "", // 需要提交到服务前端的base64数据
 *           "height": "", // 签章控件高
 *           "width": "",   // 签章控件宽
 *           "picData": "", // 可以显示在当前表单的签章图片base64
 *           "recordID": "0",
 *           "summaryID": "",
 *           "currentOrgID": "",
 *           "currentOrgName": "",
 *           "signatureListUrl": "", //签章列表url地址,http//10.5.6.240:88/seeyon/rest/signet/signets
 *           "signaturePicUrl": "",//获取签章数据url地址,http//10.5.6.240:88/seeyon/rest/signet/signetPic
 *           "hasSignetures": false, // 是否有签章权限
 *           "affairId":""
 *     });
 * </script>
 * ```
 *
 */

/**
 * 签章组件-清除签章
 * @method clear
 * @namespace cmp.handWriteSignature
 * @param {Object} [options] 配置参数
 *      @param {Function} [options.success] 成功回调函数
 *      @param {Function} [options.error] 失败回调函数
 * @example
 * ```
 * <script>
 *     cmp.handWriteSignature.clear({
 *          success:function(){
 *          },
 *          error:function(e){
 *             console.log(e);
 *          },
 *     });
 * </script>
 * ```
 *
 */

    
Top