/** ***** begin license block *****
* |------------------------------------------------------------------------------|
* | o2oa 活力办公 创意无限 o2m.api.js |
* |------------------------------------------------------------------------------|
* | distributed under the agpl license: |
* |------------------------------------------------------------------------------|
* | 游戏厅捕鱼达人 copyright © 2018, o2oa.net, o2server.io o2 team |
* | all rights reserved. |
* |------------------------------------------------------------------------------|
*
* this file is part of o2oa.
*
* o2oa is free software: you can redistribute it and/or modify
* it under the terms of the gnu affero general public license as published by
* the free software foundation, either version 3 of the license, or
* (at your option) any later version.
*
* o2oa is distributed in the hope that it will be useful,
* but without any warranty; without even the implied warranty of
* merchantability or fitness for a particular purpose. see the
* gnu affero general public license for more details.
*
* you should have received a copy of the gnu general public license
* along with foobar. if not, see .
*
* ***** end license block ******/
/**
* @summary
* o2m 是o2oa移动端app提供的调用原生控件的能力,帮助开发者高效使用拍照、定位等手机系统的能力,同时可以直接使用扫一扫、打开原生应用、选择时间,人员,组织等业务的能力,带给门户接近原生代码的体验
*
* o2m 只有在o2oa移动端app中才能提供能力
* @namespace o2m
* @o2cn 平台移动app api
* @o2category mobile
* @o2ordernumber 13
* @o2range {流程表单|门户}
* @o2syntax
* // 可以在移动端 流程表单、门户 上使用
* window.o2m
*
*/
(function () {
this.o2m = {
version: {
v: "1.1.0",
build: "2021.01.20",
info: "o2oa 活力办公 创意无限. 游戏厅捕鱼达人 copyright © 2021, o2oa.net o2 team all rights reserved."
},
log: function (message) {
window.o2android && window.o2android.o2mlog ? window.o2android.o2mlog(message) : window.webkit.messagehandlers.o2mlog.postmessage(message);
}
};
/** ***** begin notification block *****
@ignore
@summary notification 模块
alert
confirm
prompt
vibrate
toast
actionsheet
showloading
hideloading
* ***** end notification block ******/
this.o2m.notification = {};
var _notification_post = function (body, onfail) {
if (body == null) {
if (onfail && typeof onfail === "function") {
onfail("参数异常!");
return
}
}
var message = json.stringify(body);
if (window.flutter_inappwebview && window.flutter_inappwebview.callhandler) {
window.flutter_inappwebview.callhandler('o2mnotification', message);
} else if (window.o2mnotification && window.o2mnotification.postmessage) {
window.o2mnotification.postmessage(message);
} else if (window.webkit && window.webkit.messagehandlers && window.webkit.messagehandlers.o2mnotification) {
window.webkit.messagehandlers.o2mnotification.postmessage(message);
} else {
if (onfail && typeof onfail === "function") {
onfail("请在o2oa移动端使用!");
return
}
}
};
this.o2m.notification.alertsuccess = function () {
console.log("notification alert back");
};
var _o2m_n_alert = function (alert) {
var message = alert && alert.message ? alert.message : "";
var title = alert && alert.title ? alert.title : "";
var buttonname = alert && alert.buttonname ? alert.buttonname : "";
var onsuccess = alert && alert.onsuccess ? alert.onsuccess : null;
var onfail = alert && alert.onfail ? alert.onfail : null;
if (message === "") {
if (typeof onfail === "function") { onfail("消息内容不能为空!"); }
return;
}
if (onsuccess && typeof onsuccess === "function") {
o2m.notification.alertsuccess = onsuccess;
}
var body = {
type: "alert",
callback: "o2m.notification.alertsuccess",
data: {
message: message,
title: title,
buttonname: buttonname,
}
};
_notification_post(body, onfail);
};
/**
* 原生alert提示弹出窗
* @method alert
* @memberof o2m
* @o2membercategory notification
* @static
* @param {object} obj 提示窗传入对象
* {
* "title": "提示", //消息标题,可为空
* "message": "这里是消息内容", //消息内容
* "buttonname": "确定", //确定按钮名称
* "onsuccess": function, //成功回调
* "onfail": function, //失败回调
* }
* @example
*
* 样例效果:
*
*
* o2m.notification.alert({
* message: "亲爱的",
* title: "提示",//可传空
* buttonname: "收到",
* onsuccess : function() {//onsuccess将在点击button之后回调},
* onfail : function(err) {}
* });
*
*/
this.o2m.notification.alert = _o2m_n_alert;
//notification.confirm
this.o2m.notification.confirmsuccess = function (index) {
console.log("notification confirm back, click button index: " index);
};
var _o2m_n_confirm = function (c) {
var buttonlabels = c && c.buttonlabels ? c.buttonlabels : ["确定", "取消"];
var message = c && c.message ? c.message : "";
var title = c && c.title ? c.title : "";
var onsuccess = c && c.onsuccess ? c.onsuccess : null;
var onfail = c && c.onfail ? c.onfail : null;
if (message === "") {
if (typeof onfail === "function") { onfail("消息内容message不能为空!"); }
return;
}
if (buttonlabels.length != 2) {
if (typeof onfail === "function") { onfail("按钮名称数组长度只能是2!"); }
return;
}
if (onsuccess && typeof onsuccess === "function") {
o2m.notification.confirmsuccess = onsuccess;
}
var body = {
type: "confirm",
callback: "o2m.notification.confirmsuccess",
data: {
message: message,
title: title,
buttonlabels: buttonlabels,
}
};
_notification_post(body, onfail);
}
/**
* 原生confirm提示弹出窗
* @method confirm
* @memberof o2m
* @o2membercategory notification
* @static
* @param {object} obj 提示窗传入对象
* {
* "title": "提示", //消息标题,可为空
* "message": "这里是消息内容", //消息内容
* "buttonlabels": ["确定", "取消"], //按钮名称 array[string]
* "onsuccess": function, //成功回调
* "onfail": function, //失败回调
* }
* @example
*
* 样例效果:
*
*
* o2m.notification.confirm({
* message: "你爱我吗",
* title: "提示",//可传空
* buttonlabels: ['爱', '不爱'],
* onsuccess : function(buttonindex) {
* //onsuccess将在点击button之后回调
* //buttonindex: 0 被点击按钮的索引值,number类型,从0开始
* },
* onfail : function(err) {}
* });
*
*/
this.o2m.notification.confirm = _o2m_n_confirm;
//notification.prompt
this.o2m.notification.promptsuccess = function (result) {
console.log("notification prompt back, click button result: " result);
};
var _o2m_n_prompt = function (c) {
var buttonlabels = c && c.buttonlabels ? c.buttonlabels : ["确定", "取消"];
var message = c && c.message ? c.message : "";
var title = c && c.title ? c.title : "";
var onsuccess = c && c.onsuccess ? c.onsuccess : null;
var onfail = c && c.onfail ? c.onfail : null;
if (message === "") {
if (typeof onfail === "function") { onfail("消息内容message不能为空!"); }
return;
}
if (buttonlabels.length != 2) {
if (typeof onfail === "function") { onfail("按钮名称数组长度只能是2!"); }
return;
}
if (onsuccess && typeof onsuccess === "function") {
o2m.notification.promptsuccess = onsuccess;
}
var body = {
type: "prompt",
callback: "o2m.notification.promptsuccess",
data: {
message: message,
title: title,
buttonlabels: buttonlabels,
}
};
_notification_post(body, onfail);
}
/**
* 原生prompt提示弹出窗
* @method prompt
* @memberof o2m
* @o2membercategory notification
* @static
* @param {object} obj prompt需要传入对象
* {
* "title": "提示", //消息标题,可为空
* "message": "这里是消息内容", //消息内容
* "buttonlabels": ['继续', '不玩了'], //按钮名称 array[string]
* "onsuccess": function, //成功回调
* "onfail": function, //失败回调
* }
* @example
*
* 样例效果:
*
*
* o2m.notification.prompt({
* message: "再说一遍?",
* title: "提示",//可传空
* buttonlabels: ['继续', '不玩了'],
* onsuccess : function(result) {
* //result是一个字符串,格式是json格式,内容如下:
* //{
* // buttonindex: 0, //被点击按钮的索引值,number类型,从0开始
* // value: '' //输入的值
* //}
* },
* onfail : function(err) {}
* });
*
*/
this.o2m.notification.prompt = _o2m_n_prompt;
//notification.vibrate
this.o2m.notification.vibratesuccess = function () {
console.log("notification vibrate back, click button");
};
var _o2m_n_vibrate = function (c) {
var duration = c && c.duration ? c.duration : 300;
var onsuccess = c && c.onsuccess ? c.onsuccess : null;
var onfail = c && c.onfail ? c.onfail : null;
if (onsuccess && typeof onsuccess === "function") {
o2m.notification.vibratesuccess = onsuccess;
}
var body = {
type: "vibrate",
callback: "o2m.notification.vibratesuccess",
data: {
duration: duration
}
};
_notification_post(body, onfail);
};
/**
* 手机震动
* @method vibrate
* @memberof o2m
* @o2membercategory notification
* @static
* @param {object} obj 震动需要传入对象
* {
* "duration": 300, //震动时间,android可配置 ios忽略
* "onsuccess": function, //成功回调
* "onfail": function, //失败回调
* }
* @example
* o2m.notification.vibrate({
* duration: 300,
* onsuccess : function() {
* },
* onfail : function(err) {}
* });
*
*/
this.o2m.notification.vibrate = _o2m_n_vibrate;
//notification.toast
this.o2m.notification.toastsuccess = function () {
console.log("notification toast back, click button");
};
var _o2m_n_toast = function (c) {
var duration = c && c.duration ? c.duration : 300;
var message = c && c.message ? c.message : "";
var onsuccess = c && c.onsuccess ? c.onsuccess : null;
var onfail = c && c.onfail ? c.onfail : null;
if (message === "") {
if (typeof onfail === "function") { onfail("消息内容message不能为空!"); }
return;
}
if (onsuccess && typeof onsuccess === "function") {
o2m.notification.toastsuccess = onsuccess;
}
var body = {
type: "toast",
callback: "o2m.notification.toastsuccess",
data: {
duration: duration,
message: message
}
};
_notification_post(body, onfail);
};
/**
* toast提示
* @method toast
* @memberof o2m
* @o2membercategory notification
* @static
* @param {object} obj toast需要传入对象
* {
* "message": "这里是提示信息",
* "onsuccess": function, //成功回调
* "onfail": function, //失败回调
* }
* @example
* o2m.notification.toast({
* message: "提示消息内容",
* onsuccess : function() {
* },
* onfail : function(err) {}
* });
*
*/
this.o2m.notification.toast = _o2m_n_toast;
//notification.actionsheet
this.o2m.notification.actionsheetsuccess = function (buttonindex) {
console.log("notification actionsheet back, click button:" buttonindex);
};
var _o2m_n_actionsheet = function (c) {
var title = c && c.title ? c.title : "";
var cancelbutton = c && c.cancelbutton ? c.cancelbutton : "取消";
var otherbuttons = c && c.otherbuttons ? c.otherbuttons : [];
var onsuccess = c && c.onsuccess ? c.onsuccess : null;
var onfail = c && c.onfail ? c.onfail : null;
if (title === "") {
if (typeof onfail === "function") { onfail("title标题不能为空!"); }
return;
}
if (otherbuttons.length < 1) {
if (typeof onfail === "function") { onfail("其他按钮列表不能为空!"); }
return;
}
if (onsuccess && typeof onsuccess === "function") {
o2m.notification.actionsheetsuccess = onsuccess;
}
var body = {
type: "actionsheet",
callback: "o2m.notification.actionsheetsuccess",
data: {
title: title,
cancelbutton: cancelbutton,
otherbuttons: otherbuttons
}
};
_notification_post(body, onfail);
};
/**
* 底部弹出菜单
* @method actionsheet
* @memberof o2m
* @o2membercategory notification
* @static
* @param {object} obj actionsheet需要传入对象
* {
* "title": "谁是最棒哒?",//标题
* "cancelbutton": '取消', //取消按钮文本
* "otherbuttons": ["孙悟空","猪八戒","唐僧","沙和尚"], //其他选项按钮名称
* "onsuccess": function, //成功回调
* "onfail": function, //失败回调
* }
* @example
*
* 样例效果:
*
*
* o2m.notification.actionsheet({
* title: "谁是最棒哒?", //标题
* cancelbutton: '取消', //取消按钮文本
* otherbuttons: ["孙悟空","猪八戒","唐僧","沙和尚"],
* onsuccess : function(buttonindex) {
* //buttonindex: 0 被点击按钮的索引值,number,从0开始, 取消按钮为-1
* },
* onfail : function(err) {}
* });
*
*/
this.o2m.notification.actionsheet = _o2m_n_actionsheet;
//notification.showloading
this.o2m.notification.showloadingsuccess = function () {
console.log("notification showloading back");
};
var _o2m_n_showloading = function (c) {
var text = c && c.text ? c.text : "";
var onsuccess = c && c.onsuccess ? c.onsuccess : null;
var onfail = c && c.onfail ? c.onfail : null;
if (onsuccess && typeof onsuccess === "function") {
o2m.notification.showloadingsuccess = onsuccess;
}
var body = {
type: "showloading",
callback: "o2m.notification.showloadingsuccess",
data: {
text: text
}
};
_notification_post(body, onfail);
};
/**
* 显示loading浮层,请和hideloading配合使用
* @method showloading
* @memberof o2m
* @o2membercategory notification
* @static
* @param {object} obj showloading需要传入对象
* {
* text: "使劲加载中..", //loading显示的字符,空表示不显示文字
* "onsuccess": function, //成功回调
* "onfail": function, //失败回调
* }
* @example
*
* 样例效果:
*
*
* o2m.notification.showloading({
* text: "使劲加载中..", //loading显示的字符,空表示不显示文字
* onsuccess : function() {
* },
* onfail : function(err) {}
* });
*
*/
this.o2m.notification.showloading = _o2m_n_showloading;
//notification.hideloading
this.o2m.notification.hideloadingsuccess = function () {
console.log("notification hideloading back");
};
var _o2m_n_hideloading = function (c) {
var onsuccess = c && c.onsuccess ? c.onsuccess : null;
var onfail = c && c.onfail ? c.onfail : null;
if (onsuccess && typeof onsuccess === "function") {
o2m.notification.hideloadingsuccess = onsuccess;
}
var body = {
type: "hideloading",
callback: "o2m.notification.hideloadingsuccess",
data: {
}
};
_notification_post(body, onfail);
}
/**
* 隐藏loading浮层
* @method hideloading
* @memberof o2m
* @o2membercategory notification
* @static
* @param {object} obj hideloading需要传入对象
* {
* "onsuccess": function, //成功回调
* "onfail": function, //失败回调
* }
* @example
* o2m.notification.hideloading({
* onsuccess : function() {
* },
* onfail : function(err) {}
* });
*
*/
this.o2m.notification.hideloading = _o2m_n_hideloading;
/** ***** begin util block *****
* @ignore
* @summary
util 模块
date
o2m.util.date.datepicker
o2m.util.date.timepicker
o2m.util.date.datetimepicker
calendar
o2m.util.calendar.chooseoneday
o2m.util.calendar.choosedatetime
o2m.util.calendar.chooseinterval
device
o2m.util.device.getphoneinfo
o2m.util.device.scan
o2m.util.deveice.location
navigation
o2m.util.navigation.settitle
o2m.util.navigation.close
o2m.util.navigation.goback
o2m.util.navigation.openinnerapp
o2m.util.navigation.openotherapp
o2m.util.navigation.openwindow
* ***** end util block ******/
this.o2m.util = {
date: {},
calendar: {},
device: {},
navigation: {}
};
var _util_post = function (body, onfail) {
if (body == null) {
if (onfail && typeof onfail === "function") {
onfail("参数异常!");
return;
}
}
var message = json.stringify(body);
if (window.flutter_inappwebview && window.flutter_inappwebview.callhandler) {
window.flutter_inappwebview.callhandler('o2mutil', message);
} else if (window.o2mutil && window.o2mutil.postmessage) {
window.o2mutil.postmessage(message);
} else if (window.webkit && window.webkit.messagehandlers && window.webkit.messagehandlers.o2mutil) {
window.webkit.messagehandlers.o2mutil.postmessage(message);
} else {
if (onfail && typeof onfail === "function") {
onfail("请在o2oa移动端使用!");
}
}
};
//o2m.util.date.datepicker
this.o2m.util.date.datepickersuccess = function (result) {
console.log("util date datepicker back, result:" result);
};
var _o2m_u_date_datepicker = function (c) {
var onsuccess = c && c.onsuccess ? c.onsuccess : null;
var onfail = c && c.onfail ? c.onfail : null;
var value = c && c.value ? c.value : "";
if (onsuccess && typeof onsuccess === "function") {
o2m.util.date.datepickersuccess = onsuccess;
}
var body = {
type: "date.datepicker",
callback: "o2m.util.date.datepickersuccess",
data: {
value: value
}
};
_util_post(body, onfail);
};
/**
* 日期选择器
* @method datepicker
* @memberof o2m
* @o2membercategory util.date
* @static
* @param {object} obj datepicker需要传入对象
* {
* value: '2019-04-17', //默认显示日期
* "onsuccess": function, //成功回调
* "onfail": function, //失败回调
* }
* @example
*
* 样例效果:
*
*
* o2m.util.date.datepicker({
* value: '2019-04-17', //默认显示日期
* onsuccess : function(result) {
* //onsuccess将在点击完成之后回调
* {
* value: "2019-02-10"
* }
* },
* onfail : function(err) {}
*});
*/
this.o2m.util.date.datepicker = _o2m_u_date_datepicker;
//o2m.util.date.timepicker
this.o2m.util.date.timepickersuccess = function (result) {
console.log("util date timepicker back, result:" result);
};
var _o2m_u_date_timepicker = function (c) {
var onsuccess = c && c.onsuccess ? c.onsuccess : null;
var onfail = c && c.onfail ? c.onfail : null;
var value = c && c.value ? c.value : "";
if (onsuccess && typeof onsuccess === "function") {
o2m.util.date.timepickersuccess = onsuccess;
}
var body = {
type: "date.timepicker",
callback: "o2m.util.date.timepickersuccess",
data: {
value: value
}
};
_util_post(body, onfail);
};
/**
* 时间选择器
* @method timepicker
* @memberof o2m
* @o2membercategory util.date
* @static
* @param {object} obj timepicker需要传入对象
* {
* value: '14:00', //默认显示时间
* "onsuccess": function, //成功回调
* "onfail": function, //失败回调
* }
* @example
*
* 样例效果:
*
*
* o2m.util.date.timepicker({
* value: '14:00', //默认显示时间
* onsuccess : function(result) {
* //onsuccess将在点击完成之后回调
* {
* value: "18:10"
* }
* },
* onfail : function(err) {}
*});
*/
this.o2m.util.date.timepicker = _o2m_u_date_timepicker;
//o2m.util.date.datetimepicker
this.o2m.util.date.datetimepickersuccess = function (result) {
console.log("util date datetimepicker back, result:" result);
};
var _o2m_u_date_datetimepicker = function (c) {
var onsuccess = c && c.onsuccess ? c.onsuccess : null;
var onfail = c && c.onfail ? c.onfail : null;
var value = c && c.value ? c.value : "";
if (onsuccess && typeof onsuccess === "function") {
o2m.util.date.datetimepickersuccess = onsuccess;
}
var body = {
type: "date.datetimepicker",
callback: "o2m.util.date.datetimepickersuccess",
data: {
value: value
}
};
_util_post(body, onfail);
};
/**
* 日期时间选择器
* @method datetimepicker
* @memberof o2m
* @o2membercategory util.date
* @static
* @param {object} obj datetimepicker需要传入对象
* {
* value: '2019-05-05 14:00', //默认显示时间
* "onsuccess": function, //成功回调
* "onfail": function, //失败回调
* }
* @example
*
* 样例效果:
*
*
* o2m.util.date.datetimepicker({
* value: '2019-05-05 14:00', //默认显示时间
* onsuccess : function(result) {
* //onsuccess将在点击完成之后回调
* {
* value: "2019-03-18 18:10"
* }
* },
* onfail : function(err) {}
*});
*/
this.o2m.util.date.datetimepicker = _o2m_u_date_datetimepicker;
//o2m.util.calendar.chooseoneday
this.o2m.util.calendar.chooseonedaysuccess = function (result) {
console.log("util calendar chooseoneday back, result:" result);
};
var _o2m_u_calendar_chooseoneday = function (c) {
var onsuccess = c && c.onsuccess ? c.onsuccess : null;
var onfail = c && c.onfail ? c.onfail : null;
var value = c && c.value ? c.value : "";
if (onsuccess && typeof onsuccess === "function") {
o2m.util.calendar.chooseonedaysuccess = onsuccess;
}
var body = {
type: "calendar.chooseoneday",
callback: "o2m.util.calendar.chooseonedaysuccess",
data: {
value: value
}
};
_util_post(body, onfail);
};
/**
* 月历日期选择器
* @method chooseoneday
* @memberof o2m
* @o2membercategory util.calendar
* @static
* @param {object} obj chooseoneday需要传入对象
* {
* value: '2019-05-05', //默认显示日期
* "onsuccess": function, //成功回调
* "onfail": function, //失败回调
* }
* @example
*
* 样例效果:
*
*
* o2m.util.calendar.chooseoneday({
* value: '2019-05-05', //默认显示日期
* onsuccess : function(result) {
* //onsuccess将在点击完成之后回调
* {
* value: "2019-03-18"
* }
* },
* onfail : function(err) {}
*});
*/
this.o2m.util.calendar.chooseoneday = _o2m_u_calendar_chooseoneday;
//o2m.util.calendar.choosedatetime
this.o2m.util.calendar.choosedatetimesuccess = function (result) {
console.log("util calendar choosedatetime back, result:" result);
};
var _o2m_u_calendar_choosedatetime = function (c) {
var onsuccess = c && c.onsuccess ? c.onsuccess : null;
var onfail = c && c.onfail ? c.onfail : null;
var value = c && c.value ? c.value : "";
if (onsuccess && typeof onsuccess === "function") {
o2m.util.calendar.choosedatetimesuccess = onsuccess;
}
var body = {
type: "calendar.choosedatetime",
callback: "o2m.util.calendar.choosedatetimesuccess",
data: {
value: value
}
};
_util_post(body, onfail);
};
/**
* 月历日期时间选择器
* @method choosedatetime
* @memberof o2m
* @o2membercategory util.calendar
* @static
* @param {object} obj choosedatetime需要传入对象
* {
* value: '2019-05-05 11:00', //默认显示时间
* "onsuccess": function, //成功回调
* "onfail": function, //失败回调
* }
* @example
*
* 样例效果:
*
*
* o2m.util.calendar.choosedatetime({
* value: '2019-05-05 11:00', //默认显示时间
* onsuccess : function(result) {
* //onsuccess将在点击完成之后回调
* {
* value: "2019-03-18 18:45"
* }
* },
* onfail : function(err) {}
*});
*/
this.o2m.util.calendar.choosedatetime = _o2m_u_calendar_choosedatetime;
//o2m.util.calendar.chooseinterval
this.o2m.util.calendar.chooseintervalsuccess = function (result) {
console.log("util calendar chooseinterval back, result:" result);
};
var _o2m_u_calendar_chooseinterval = function (c) {
var onsuccess = c && c.onsuccess ? c.onsuccess : null;
var onfail = c && c.onfail ? c.onfail : null;
var startdate = c && c.startdate ? c.startdate : "";
var enddate = c && c.enddate ? c.enddate : "";
if (onsuccess && typeof onsuccess === "function") {
o2m.util.calendar.chooseintervalsuccess = onsuccess;
}
var body = {
type: "calendar.chooseinterval",
callback: "o2m.util.calendar.chooseintervalsuccess",
data: {
startdate: startdate,
enddate: enddate
}
};
_util_post(body, onfail);
};
/**
* 月历日期区间选择器
* @method chooseinterval
* @memberof o2m
* @o2membercategory util.calendar
* @static
* @param {object} obj chooseinterval需要传入对象
* {
* startdate: '2019-05-05',
* enddate: '2019-05-06',
* "onsuccess": function, //成功回调
* "onfail": function, //失败回调
* }
* @example
*
* 样例效果:
*
*
* o2m.util.calendar.chooseinterval({
* startdate: '2019-05-05',
* enddate: '2019-05-06',
* onsuccess : function(result) {
* //onsuccess将在点击完成之后回调
* {
* startdate: "2019-05-05",
enddate: "2019-05-06",
* }
* },
* onfail : function(err) {}
*});
*/
this.o2m.util.calendar.chooseinterval = _o2m_u_calendar_chooseinterval;
//o2m.util.device.getphoneinfo
this.o2m.util.device.getphoneinfosuccess = function (result) {
console.log("util calendar chooseinterval back, result:" result);
};
var _o2m_u_device_getphoneinfo = function (c) {
var onsuccess = c && c.onsuccess ? c.onsuccess : null;
var onfail = c && c.onfail ? c.onfail : null;
if (onsuccess && typeof onsuccess === "function") {
o2m.util.device.getphoneinfosuccess = onsuccess;
}
var body = {
type: "device.getphoneinfo",
callback: "o2m.util.device.getphoneinfosuccess",
data: {
}
};
_util_post(body, onfail);
};
/**
* 获取手机基础信息
* @method getphoneinfo
* @memberof o2m
* @o2membercategory util.device
* @static
* @param {object} obj getphoneinfo需要传入对象
* {
* "onsuccess": function, //成功回调
* "onfail": function, //失败回调
* }
* @example
* o2m.util.device.getphoneinfo({
* onsuccess : function(result) {
* {
* screenwidth: 1080, // 手机屏幕宽度
* screenheight: 1920, // 手机屏幕高度
* brand:'mi', // 手机品牌
* model:'note4', // 手机型号
* version:'7.0'. // 版本
* netinfo:'wifi' , // 网络类型 wifi/4g/3g
* operatortype :'xx' // 运营商信息
* }
* },
* onfail : function(err) {}
*});
*/
this.o2m.util.device.getphoneinfo = _o2m_u_device_getphoneinfo;
//o2m.util.device.rotate
this.o2m.util.device.rotatesuccess = function (result) {
console.log("util device rotate back, result:" result);
};
var _o2m_u_device_rotate = function (c) {
var onsuccess = c && c.onsuccess ? c.onsuccess : null;
var onfail = c && c.onfail ? c.onfail : null;
if (onsuccess && typeof onsuccess === "function") {
o2m.util.device.rotatesuccess = onsuccess;
}
var body = {
type: "device.rotate",
callback: "o2m.util.device.rotatesuccess",
data: {
}
};
_util_post(body, onfail);
};
/**
* 旋转屏幕
* @method rotate
* @memberof o2m
* @o2membercategory util.device
* @static
* @param {object} obj rotate
* {
* "onsuccess": function, //成功回调
* "onfail": function, //失败回调
* }
* @example
* o2m.util.device.rotate({
* onsuccess : function(result) {
* },
* onfail : function(err) {}
*});
*/
this.o2m.util.device.rotate = _o2m_u_device_rotate;
//o2m.util.device.scan
this.o2m.util.device.scansuccess = function (result) {
console.log("util device scan back, result:" result);
};
var _o2m_u_device_scan = function (c) {
var onsuccess = c && c.onsuccess ? c.onsuccess : null;
var onfail = c && c.onfail ? c.onfail : null;
if (onsuccess && typeof onsuccess === "function") {
o2m.util.device.scansuccess = onsuccess;
}
var body = {
type: "device.scan",
callback: "o2m.util.device.scansuccess",
data: {
}
};
_util_post(body, onfail);
};
/**
* 扫二维码
* @method scan
* @memberof o2m
* @o2membercategory util.device
* @static
* @param {object} obj scan需要传入对象
* {
* "onsuccess": function, //成功回调
* "onfail": function, //失败回调
* }
* @example
* o2m.util.device.scan({
* onsuccess : function(result) {
* // result返回结果就是扫码的结果
* },
* onfail : function(err) {}
*});
*/
this.o2m.util.device.scan = _o2m_u_device_scan;
//o2m.util.device.location
this.o2m.util.device.locationsuccess = function (result) {
console.log("util device location back, result:" result);
};
var _o2m_u_device_location = function (c) {
var onsuccess = c && c.onsuccess ? c.onsuccess : null;
var onfail = c && c.onfail ? c.onfail : null;
if (onsuccess && typeof onsuccess === "function") {
o2m.util.device.locationsuccess = onsuccess;
}
var body = {
type: "device.location",
callback: "o2m.util.device.locationsuccess",
data: {
}
};
_util_post(body, onfail);
};
/**
* 单次定位
* @method location
* @memberof o2m
* @o2membercategory util.device
* @static
* @param {object} obj location需要传入对象
* {
* "onsuccess": function, //成功回调
* "onfail": function, //失败回调
* }
* @example
* o2m.util.device.location({
* onsuccess : function(result) {
* //这里返回百度坐标系的定位信息
* {
* 'latitude': 39.903578, // 纬度
* 'longitude': 116.473565, // 经度
* 'address': '地址描述'
* }
* },
* onfail : function(err) {}
*});
*/
this.o2m.util.device.location = _o2m_u_device_location;
//o2m.util.navigation.settitle
this.o2m.util.navigation.settitlesuccess = function (result) {
console.log("util calendar chooseinterval back, result:" result);
};
var _o2m_u_navigation_settitle = function (c) {
var onsuccess = c && c.onsuccess ? c.onsuccess : null;
var onfail = c && c.onfail ? c.onfail : null;
var title = c && c.title ? c.title : "";
if (onsuccess && typeof onsuccess === "function") {
o2m.util.navigation.settitlesuccess = onsuccess;
}
var body = {
type: "navigation.settitle",
callback: "o2m.util.navigation.settitlesuccess",
data: {
title: title
}
};
_util_post(body, onfail);
};
/**
* 设置原生页面标题
* @method settitle
* @memberof o2m
* @o2membercategory util.navigation
* @static
* @param {object} obj settitle需要传入对象
* {
* title : '导航标题',
* "onsuccess": function, //成功回调
* "onfail": function, //失败回调
* }
* @example
* o2m.util.navigation.settitle({
* title : '导航标题',
* onsuccess : function() {
* },
* onfail : function(err) {}
*});
*/
this.o2m.util.navigation.settitle = _o2m_u_navigation_settitle;
//o2m.util.navigation.close
this.o2m.util.navigation.closesuccess = function (result) {
console.log("util calendar chooseinterval back, result:" result);
};
var _o2m_u_navigation_close = function (c) {
var onsuccess = c && c.onsuccess ? c.onsuccess : null;
var onfail = c && c.onfail ? c.onfail : null;
if (onsuccess && typeof onsuccess === "function") {
o2m.util.navigation.closesuccess = onsuccess;
}
var body = {
type: "navigation.close",
callback: "o2m.util.navigation.closesuccess",
data: {
}
};
_util_post(body, onfail);
};
/**
* 关闭当前原生页面
* @method close
* @memberof o2m
* @o2membercategory util.navigation
* @static
* @example
* o2m.util.navigation.close();
*/
this.o2m.util.navigation.close = _o2m_u_navigation_close;
//o2m.util.navigation.goback
this.o2m.util.navigation.gobacksuccess = function (result) {
console.log("util calendar chooseinterval back, result:" result);
};
var _o2m_u_navigation_goback = function (c) {
var onsuccess = c && c.onsuccess ? c.onsuccess : null;
var onfail = c && c.onfail ? c.onfail : null;
if (onsuccess && typeof onsuccess === "function") {
o2m.util.navigation.gobacksuccess = onsuccess;
}
var body = {
type: "navigation.goback",
callback: "o2m.util.navigation.gobacksuccess",
data: {
}
};
_util_post(body, onfail);
};
/**
* 返回上级原生页面
* @method goback
* @memberof o2m
* @o2membercategory util.navigation
* @static
* @example
* o2m.util.navigation.goback();
*/
this.o2m.util.navigation.goback = _o2m_u_navigation_goback;
//o2m.util.navigation.openinnerapp 内部应用打开 包含门户
this.o2m.util.navigation.openinnerappsuccess = function (result) {
console.log("util navigation openinnerapp back, result:" result);
};
var _o2m_u_navigation_openinnerapp = function (c) {
var onsuccess = c && c.onsuccess ? c.onsuccess : null;
var onfail = c && c.onfail ? c.onfail : null;
if (onsuccess && typeof onsuccess === "function") {
o2m.util.navigation.openinnerappsuccess = onsuccess;
}
var appkey = c && c.appkey ? c.appkey : "";
var portalflag = c && c.portalflag ? c.portalflag : "";
var portaltitle = c && c.portaltitle ? c.portaltitle : "";
var portalpage = c && c.portalpage ? c.portalpage : "";
var body = {
type: "navigation.openinnerapp",
callback: "o2m.util.navigation.openinnerappsuccess",
data: {
appkey: appkey,
portalflag: portalflag,
portaltitle: portaltitle,
portalpage: portalpage
}
};
_util_post(body, onfail);
};
/**
* 打开内部应用
* @method openinnerapp
* @memberof o2m
* @o2membercategory util.navigation
* @static
* @param {object} obj openinnerapp需要传入对象
* {
* appkey : 'attendance', // 对应用的 key: task(待办)、taskcompleted(已办)、read(待阅)、readcompleted(已阅)、meeting(会议管理)、clouddisk(网盘)、bbs(论坛)、cms(信息中心)、attendance(考勤)、calendar(日程)、mindmap(脑图)、portal(门户,门户需要传入portalflag和portaltitle)
* portalflag : '门户标识',
* portaltitle : '门户标题',
* portalpage : '门户页面 id',
* "onsuccess": function, //成功回调
* "onfail": function, //失败回调
* }
* @example
* o2m.util.navigation.openinnerapp({
* appkey : 'attendance',
* onsuccess : function() {
* },
* onfail : function(err) {}
*});
*/
this.o2m.util.navigation.openinnerapp = _o2m_u_navigation_openinnerapp;
//o2m.util.navigation.openotherapp 功能不完整,有很多限制。暂时不开放
this.o2m.util.navigation.openotherappsuccess = function (result) {
console.log("util navigation openotherapp back, result:" result);
};
var _o2m_u_navigation_openotherapp = function (c) {
var onsuccess = c && c.onsuccess ? c.onsuccess : null;
var onfail = c && c.onfail ? c.onfail : null;
if (onsuccess && typeof onsuccess === "function") {
o2m.util.navigation.openotherappsuccess = onsuccess;
}
var schema = c && c.schema ? c.schema : "";
var body = {
type: "navigation.openotherapp",
callback: "o2m.util.navigation.openotherappsuccess",
data: {
schema: schema
}
};
_util_post(body, onfail);
};
this.o2m.util.navigation.openotherapp = _o2m_u_navigation_openotherapp;
//o2m.util.navigation.openwindow 新窗口打开网页 门户
this.o2m.util.navigation.openwindowsuccess = function (result) {
console.log("util navigation openwindow back, result:" result);
};
var _o2m_u_navigation_openwindow = function (c) {
var onsuccess = c && c.onsuccess ? c.onsuccess : null;
var onfail = c && c.onfail ? c.onfail : null;
if (onsuccess && typeof onsuccess === "function") {
o2m.util.navigation.openwindowsuccess = onsuccess;
}
var url = c && c.url ? c.url : "";
var body = {
type: "navigation.openwindow",
callback: "o2m.util.navigation.openwindowsuccess",
data: {
url: url
}
};
_util_post(body, onfail);
};
/**
* 新窗口打开网页
* @method openwindow
* @memberof o2m
* @o2membercategory util.navigation
* @static
* @param {object} obj openwindow需要传入对象
* {
* url : 'https://www.o2oa.net', // 打开的网址
* "onsuccess": function, //成功回调
* "onfail": function, //失败回调
* }
* @example
* o2m.util.navigation.openwindow({
* url : 'https://www.o2oa.net',
* onsuccess : function() {
* },
* onfail : function(err) {}
*});
*/
this.o2m.util.navigation.openwindow = _o2m_u_navigation_openwindow;
//o2m.util.navigation.openinbrowser 手机默认浏览器打开当前页面
this.o2m.util.navigation.openinbrowsersuccess = function (result) {
console.log("util navigation openinbrowser back, result:" result);
};
var _o2m_u_navigation_openinbrowser = function (c) {
var onsuccess = c && c.onsuccess ? c.onsuccess : null;
var onfail = c && c.onfail ? c.onfail : null;
if (onsuccess && typeof onsuccess === "function") {
o2m.util.navigation.openinbrowsersuccess = onsuccess;
}
var body = {
type: "navigation.openinbrowser",
callback: "o2m.util.navigation.openinbrowsersuccess",
data: {}
};
_util_post(body, onfail);
};
/**
* 手机默认浏览器打开当前页面
* @method openinbrowser
* @memberof o2m
* @o2membercategory util.navigation
* @static
* @example
* o2m.util.navigation.openinbrowser({
* onsuccess : function() {
* },
* onfail : function(err) {}
*});
*/
this.o2m.util.navigation.openinbrowser = _o2m_u_navigation_openinbrowser;
//o2m.util.navigation.clearcache 清理缓存并刷新页面
this.o2m.util.navigation.clearcachesuccess = function (result) {
console.log("util navigation clearcache back, result:" result);
};
var _o2m_u_navigation_clearcache = function (c) {
var onsuccess = c && c.onsuccess ? c.onsuccess : null;
var onfail = c && c.onfail ? c.onfail : null;
if (onsuccess && typeof onsuccess === "function") {
o2m.util.navigation.clearcachesuccess = onsuccess;
}
var body = {
type: "navigation.clearcache",
callback: "o2m.util.navigation.clearcachesuccess",
data: {}
};
_util_post(body, onfail);
};
/**
* 清理缓存并刷新页面
* @method clearcache
* @memberof o2m
* @o2membercategory util.navigation
* @static
* @example
* o2m.util.navigation.clearcache({
* onsuccess : function() {
* },
* onfail : function(err) {}
*});
*/
this.o2m.util.navigation.clearcache = _o2m_u_navigation_clearcache;
/** ***** begin biz block *****
* @ignore
* @summary
biz 模块
contact
o2m.biz.contact.personpicker
o2m.biz.contact.identitypicker
o2m.biz.contact.departmentspicker
o2m.biz.contact.complexpicker
o2m.biz.contact.grouppicker
o2m.biz.file.previewdoc
* ***** end util block ******/
this.o2m.biz = {
contact: {},
file:{}
};
var _biz_post = function (body, onfail) {
if (body == null) {
if (onfail && typeof onfail === "function") {
onfail("参数异常!");
return;
}
}
var message = json.stringify(body);
if (window.flutter_inappwebview && window.flutter_inappwebview.callhandler) {
window.flutter_inappwebview.callhandler('o2mbiz', message);
} else if (window.o2mbiz && window.o2mbiz.postmessage) {
window.o2mbiz.postmessage(message)
} else if (window.webkit && window.webkit.messagehandlers && window.webkit.messagehandlers.o2mbiz) {
window.webkit.messagehandlers.o2mbiz.postmessage(message);
} else {
if (onfail && typeof onfail === "function") {
onfail("请在o2oa移动端使用!");
}
}
};
//o2m.biz.workclose()
var _o2m_b_work_close = function () {
if (window.o2android && window.o2android.closework) {
window.o2android.closework("");
} else if (window.o2android && window.o2android.postmessage) {
var body = {
type: "closework"
};
window.o2android.postmessage(json.stringify(body));
} else if (window.webkit && window.webkit.messagehandlers && window.webkit.messagehandlers.closework) {
window.webkit.messagehandlers.closework.postmessage("");
} else {
console.log("请在o2oa移动端使用, workclose");
}
}
/**
* 关闭当前工作页面,只能在工作表单中可以使用
* @method workclose
* @memberof o2m
* @o2membercategory biz
* @static
* @example
* o2m.biz.workclose();
*/
this.o2m.biz.workclose = _o2m_b_work_close;
//o2m.biz.contact.departmentspicker
this.o2m.biz.contact.departmentspickersuccess = function (result) {
console.log("biz contact departmentspicker back, result:" result);
};
var _o2m_b_contact_department_picker = function (c) {
var onsuccess = c && c.onsuccess ? c.onsuccess : null;
var onfail = c && c.onfail ? c.onfail : null;
if (onsuccess && typeof onsuccess === "function") {
o2m.biz.contact.departmentspickersuccess = onsuccess;
}
var toplist = c && c.toplist ? c.toplist : [];
var orgtype = c && c.orgtype ? c.orgtype : "";
var multiple = c && c.multiple ? c.multiple : false;
var maxnumber = c && c.maxnumber ? c.maxnumber : 0;
var pickeddepartments = c && c.pickeddepartments ? c.pickeddepartments : [];
var body = {
type: "contact.departmentpicker",
callback: "o2m.biz.contact.departmentspickersuccess",
data: {
toplist: toplist,
orgtype: orgtype,
multiple: multiple,
maxnumber: maxnumber,
pickeddepartments: pickeddepartments,
}
};
_biz_post(body, onfail);
};
/**
* 通讯录选部门
* @method departmentspicker
* @memberof o2m
* @o2membercategory biz
* @static
* @param {object} obj departmentspicker需要传入对象
* {
* toplist: [],//array[string] 可选的顶级组织列表,不传或列表为空的时候,显示全部组织
* orgtype: "",//string 可选择的组织类别。为空就是全部组织类型都可以
* multiple:true, //是否多选
* maxnumber: 0, //int 当multiple为true的时候,最多可选择的部门数
* pickeddepartments:[],//array[string] 已经选择的部门distinguishedname列表
* "onsuccess": function, //成功回调
* "onfail": function, //失败回调
* }
* @example
*
* 样例效果:
*
*
* o2m.biz.contact.departmentspicker({
* toplist: [],//不传或者空列表,显示全部组织
* orgtype: "",//可传空 只显示某种类型的组织
* multiple:true, //是否多选
* maxnumber: 0, //最大选择数量
* pickeddepartments:[],//已选部门
* onsuccess : function(result) {
* //返回结果样例
* {
* departments:[{
* "id":"xxxx",
* "name":"部门名称",
* "unique":"xxxx",
* "distinguishedname":"部门@xxxx@u",
* "typelist":["xxxx"],
* "shortname":"xxxx",
* "level": 0,
* "levelname":"xxxx",
* }]
* }
*
* },
* onfail : function(err) {}
* });
*/
this.o2m.biz.contact.departmentspicker = _o2m_b_contact_department_picker;
//o2m.biz.contact.identitypicker
this.o2m.biz.contact.identitypickersuccess = function (result) {
console.log("biz contact identitypicker back, result:" result);
};
var _o2m_b_contact_identity_picker = function (c) {
var onsuccess = c && c.onsuccess ? c.onsuccess : null;
var onfail = c && c.onfail ? c.onfail : null;
if (onsuccess && typeof onsuccess === "function") {
o2m.biz.contact.identitypickersuccess = onsuccess;
}
var toplist = c && c.toplist ? c.toplist : [];
var multiple = c && c.multiple ? c.multiple : false;
var maxnumber = c && c.maxnumber ? c.maxnumber : 0;
var pickedidentities = c && c.pickedidentities ? c.pickedidentities : [];
var duty = c && c.duty ? c.duty : [];
var body = {
type: "contact.identitypicker",
callback: "o2m.biz.contact.identitypickersuccess",
data: {
toplist: toplist,
multiple: multiple,
maxnumber: maxnumber,
pickedidentities: pickedidentities,
duty: duty,
}
};
_biz_post(body, onfail);
};
/**
* 通讯录选身份
* @method identitypicker
* @memberof o2m
* @o2membercategory biz
* @static
* @param {object} obj identitypicker需要传入对象
* {
* toplist: [],//array[string] 可选的顶级组织列表,不传或列表为空的时候,显示全部组织
* multiple:true, //boolean 是否多选
* maxnumber: 0, //int 当multiple为true的时候,最多可选择的身份数
* pickedidentities:[],//array[string] 已经选择的身份distinguishedname列表
* duty: [],//array[string] 可选择的人员职责
* "onsuccess": function, //成功回调
* "onfail": function, //失败回调
* }
* @example
*
* 样例效果:
*
*
* o2m.biz.contact.identitypicker({
* toplist: [],//不传或者空列表,显示全部组织
* multiple:true, //是否多选
* maxnumber: 0, //最大选择数量
* pickedidentities:[],//已选身份列表
* duty: [],//人员职责
* onsuccess : function(result) {
* //返回结果样例
* {
* identities:[{
* "id":"xxxx",
* "name":"姓名",
* "distinguishedname":"姓名@xxxx@i",
* "person":"xxx",
* "unique":"xxxx",
* "unit":"xxx",
* "unitname":"xxxx",
* "unitlevel": 0,
* "unitlevelname":"xxxx",
* "personname":"xxxx",
* "personunique":"xxx",
* "persondn":"xxx"
* }]
* }
*
* },
* onfail : function(err) {}
* });
*/
this.o2m.biz.contact.identitypicker = _o2m_b_contact_identity_picker;
//o2m.biz.contact.grouppicker
this.o2m.biz.contact.grouppickersuccess = function (result) {
console.log("biz contact grouppicker back, result:" result);
};
var _o2m_b_contact_group_picker = function (c) {
var onsuccess = c && c.onsuccess ? c.onsuccess : null;
var onfail = c && c.onfail ? c.onfail : null;
if (onsuccess && typeof onsuccess === "function") {
o2m.biz.contact.grouppickersuccess = onsuccess;
}
var multiple = c && c.multiple ? c.multiple : false;
var maxnumber = c && c.maxnumber ? c.maxnumber : 0;
var pickedgroups = c && c.pickedgroups ? c.pickedgroups : [];
var body = {
type: "contact.grouppicker",
callback: "o2m.biz.contact.grouppickersuccess",
data: {
multiple: multiple,
maxnumber: maxnumber,
pickedgroups: pickedgroups,
}
};
_biz_post(body, onfail);
};
/**
* 群组选择
* @method grouppicker
* @memberof o2m
* @o2membercategory biz
* @static
* @param {object} obj grouppicker需要传入对象
* {
* multiple:true, //boolean 是否多选
* maxnumber: 0, //int 当multiple为true的时候,最多可选择的身份数
* pickedgroups:[],//array[string] 已经选择的群组distinguishedname列表
* "onsuccess": function, //成功回调
* "onfail": function, //失败回调
* }
* @example
*
* 样例效果:
*
*
* o2m.biz.contact.grouppicker({
* multiple:true, //是否多选
* maxnumber: 0, //最大选择数量
* pickedgroups:[],//已选群组列表
* onsuccess : function(result) {
* //返回结果样例
* {
* groups:[{
* "id":"xxxx",
* "name":"群组名称",
* "distinguishedname":"群组名称@xxxx@g"
* "unique":"xxxx",
* }]
* }
*
* },
* onfail : function(err) {}
* });
*/
this.o2m.biz.contact.grouppicker = _o2m_b_contact_group_picker;
//o2m.biz.contact.personpicker
this.o2m.biz.contact.personpickersuccess = function (result) {
console.log("biz contact personpicker back, result:" result);
};
var _o2m_b_contact_person_picker = function (c) {
var onsuccess = c && c.onsuccess ? c.onsuccess : null;
var onfail = c && c.onfail ? c.onfail : null;
if (onsuccess && typeof onsuccess === "function") {
o2m.biz.contact.personpickersuccess = onsuccess;
}
var multiple = c && c.multiple ? c.multiple : false;
var maxnumber = c && c.maxnumber ? c.maxnumber : 0;
var pickedusers = c && c.pickedusers ? c.pickedusers : [];
var body = {
type: "contact.personpicker",
callback: "o2m.biz.contact.personpickersuccess",
data: {
multiple: multiple,
maxnumber: maxnumber,
pickedusers: pickedusers,
}
};
_biz_post(body, onfail);
};
/**
* 人员选择
* @method personpicker
* @memberof o2m
* @o2membercategory biz
* @static
* @param {object} obj personpicker需要传入对象
* {
* multiple:true, //boolean 是否多选
* maxnumber: 0, //int 当multiple为true的时候,最多可选择的身份数
* pickedusers:[],//array[string] 已经选择的人员distinguishedname列表
* "onsuccess": function, //成功回调
* "onfail": function, //失败回调
* }
* @example
*
* 样例效果:
*
*
* o2m.biz.contact.personpicker({
* multiple:true, //是否多选
* maxnumber: 0, //最大选择数量
* pickedusers:[],//已选人员列表
* onsuccess : function(result) {
* //返回结果样例
* {
* users:[{
* "id":"xxx",
* "name":"姓名",
* "unique":"xxx",
* "distinguishedname":"姓名@xxxx@p"
* "gendertype":"xxx",
* "employee":"xxx",
* "mail":"xxx",
* "weixin":"xxx",
* "qq":"xxx",
* "mobile":"xxx",
* "officephone":"xxx"
* }]
* }
*
* },
* onfail : function(err) {}
* });
*/
this.o2m.biz.contact.personpicker = _o2m_b_contact_person_picker;
//o2m.biz.contact.complexpicker
this.o2m.biz.contact.complexpickersuccess = function (result) {
console.log("biz contact complexpicker back, result:" result);
};
var _o2m_b_contact_complex_picker = function (c) {
var onsuccess = c && c.onsuccess ? c.onsuccess : null;
var onfail = c && c.onfail ? c.onfail : null;
if (onsuccess && typeof onsuccess === "function") {
o2m.biz.contact.complexpickersuccess = onsuccess;
}
var pickmode = c && c.pickmode ? c.pickmode : [];
var multiple = c && c.multiple ? c.multiple : false;
var maxnumber = c && c.maxnumber ? c.maxnumber : 0;
var toplist = c && c.toplist ? c.toplist : [];
var orgtype = c && c.orgtype ? c.orgtype : "";
var duty = c && c.duty ? c.duty : [];
var pickedgroups = c && c.pickedgroups ? c.pickedgroups : [];
var pickedusers = c && c.pickedusers ? c.pickedusers : [];
var pickedidentities = c && c.pickedidentities ? c.pickedidentities : [];
var pickeddepartments = c && c.pickeddepartments ? c.pickeddepartments : [];
var body = {
type: "contact.complexpicker",
callback: "o2m.biz.contact.complexpickersuccess",
data: {
pickmode: pickmode,
multiple: multiple,
maxnumber: maxnumber,
toplist: toplist,
orgtype: orgtype,
duty: duty,
pickedgroups: pickedgroups,
pickedusers: pickedusers,
pickedidentities: pickedidentities,
pickeddepartments: pickeddepartments,
}
};
_biz_post(body, onfail);
};
/**
* 复合选择器,可配置选择多种数据
* @method complexpicker
* @memberof o2m
* @o2membercategory biz
* @static
* @param {object} obj complexpicker需要传入对象
* {
* pickmode: ["departmentpicker", "identitypicker"], //array[string] 选择器类型,可传入值:departmentpicker、identitypicker、grouppicker、personpicker
* toplist:array[string] 可选的顶级组织列表,不传或列表为空的时候,显示全部组织
* duty: array[string] 可选择的人员职责
* orgtype:string 可选择的组织类别。为空就是全部组织类型都可以
* multiple:true, //boolean 是否多选
* maxnumber: 0, //int 当multiple为true的时候,最多可选择的身份数
* pickeddepartments:array[string] 已经选择的部门distinguishedname列表
* pickedidentities:array[string] 已经选择的身份distinguishedname列表
* pickedgroups: array[string] 已经选择的群组distinguishedname列表
* pickedusers:[],//array[string] 已经选择的人员distinguishedname列表
* "onsuccess": function, //成功回调
* "onfail": function, //失败回调
* }
* @example
*
* 样例效果:
*
*
* o2m.biz.contact.complexpicker({
* pickmode: ["departmentpicker", "identitypicker"], //选择器类型
* toplist: [],//不传或者空列表,显示全部组织
* orgtype: "",//可传空 只显示某种类型的组织
* duty: [],//人员职责
* multiple:true, //是否多选
* maxnumber: 0, //最大选择数量
* pickeddepartments:[],//已选部门
* pickedidentities:[],//已选身份列表
* pickedgroups:[],//已选群组列表
* pickedusers:[],//已选人员列表
* onsuccess : function(result) {
* //返回结果样例
* {
* departments:[{
* "id":"xxxx",
* "name":"部门名称",
* "unique":"xxxx",
* "distinguishedname":"部门@xxxx@u",
* "typelist":["xxxx"],
* "shortname":"xxxx",
* "level": 0,
* "levelname":"xxxx",
* }],
* identities:[{
* "id":"xxxx",
* "name":"姓名",
* "distinguishedname":"姓名@xxxx@i",
* "person":"xxx",
* "unique":"xxxx",
* "unit":"xxx",
* "unitname":"xxxx",
* "unitlevel": 0,
* "unitlevelname":"xxxx",
* "personname":"xxxx",
* "personunique":"xxx",
* "persondn":"xxx"
* }],
* groups:[{
* "id":"xxxx",
* "name":"群组名称",
* "distinguishedname":"群组名称@xxxx@g"
* "unique":"xxxx",
* }],
* users:[{
* "id":"xxx",
* "name":"姓名",
* "unique":"xxx",
* "distinguishedname":"姓名@xxxx@p"
* "gendertype":"xxx",
* "employee":"xxx",
* "mail":"xxx",
* "weixin":"xxx",
* "qq":"xxx",
* "mobile":"xxx",
* "officephone":"xxx"
* }]
* }
* },
* onfail : function(err) {}
* });
*/
this.o2m.biz.contact.complexpicker = _o2m_b_contact_complex_picker;
this.o2m.biz.file.previewdocsuccess = function (result) {
console.log("biz file preview doc back, result:" result);
};
var _o2m_b_file_preview = function (c) {
var onsuccess = c && c.onsuccess ? c.onsuccess : null;
var onfail = c && c.onfail ? c.onfail : null;
if (onsuccess && typeof onsuccess === "function") {
o2m.biz.file.previewdocsuccess = onsuccess;
}
var fileurl = c && c.url ? c.url : "";
var filename = c && c.filename ? c.filename : "";
var body = {
type: "file.previewdoc",
callback: "o2m.biz.file.previewdocsuccess ",
data: {
url: fileurl,
filename: filename
}
};
_biz_post(body, onfail);
};
// 文件预览 后续要删除
this.o2m.biz.file.previewdoc = _o2m_b_file_preview;
})();
source