You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
information-system/dingdingcallback/public/javascripts/demo.js

170 lines
6.3 KiB
JavaScript

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/**
* Created by liqiao on 8/10/15.
*/
logger.i('Here we go...');
logger.i(location.href);
/**
* _config comes from server-side template. see views/index.jade
*/
dd.config({
agentId: _config.agentId,
corpId: _config.corpId,
timeStamp: _config.timeStamp,
nonceStr: _config.nonceStr,
signature: _config.signature,
jsApiList: [
'runtime.info',
'device.notification.prompt',
'biz.chat.pickConversation',
'device.notification.confirm',
'device.notification.alert',
'device.notification.prompt',
'biz.chat.open',
'biz.util.open',
'biz.user.get',
'biz.contact.choose',
'biz.telephone.call',
'biz.util.uploadImage',
'biz.ding.post']
});
dd.userid=0;
dd.ready(function() {
logger.i('dd.ready rocks!');
dd.runtime.info({
onSuccess: function(info) {
logger.i('runtime info: ' + JSON.stringify(info));
},
onFail: function(err) {
logger.e('fail: ' + JSON.stringify(err));
}
});
dd.runtime.permission.requestAuthCode({
corpId: _config.corpId, //企业id
onSuccess: function (info) {
logger.i('authcode: ' + info.code);
$.ajax({
url: '/sendMsg.php',
type:"POST",
data: {"event":"get_userinfo","code":info.code,"corpId":_config.corpId},
dataType:'json',
timeout: 900,
success: function (data, status, xhr) {
var info = JSON.parse(data);
if (info.errcode === 0) {
logger.i('user id: ' + info.userid);
dd.userid = info.userid;
}
else {
logger.e('auth error: ' + data);
}
},
error: function (xhr, errorType, error) {
logger.e(errorType + ', ' + error);
}
});
},
onFail: function (err) {
logger.e('requestAuthCode fail: ' + JSON.stringify(err));
}
});
$('.chooseonebtn').on('click', function() {
dd.biz.chat.pickConversation({
corpId: _config.corpId, //企业id
isConfirm:'false', //是否弹出确认窗口默认为true
onSuccess: function (data) {
var chatinfo = data;
if(chatinfo){
console.log(chatinfo.cid);
dd.device.notification.prompt({
message: "发送消息",
title: chatinfo.title,
buttonLabels: ['发送', '取消'],
onSuccess : function(result) {
var text = result.value;
if(text==''){
return false;
}
$.ajax({
url: '/sendMsg.php',
type:"POST",
data: {"event":"send_to_conversation","cid":chatinfo.cid,"sender":dd.userid,"content":text,"corpId":_config.corpId},
dataType:'json',
timeout: 900,
success: function (data, status, xhr) {
var info = data;
logger.i('sendMsg: ' + JSON.stringify(data));
if(info.errcode==0){
logger.i('sendMsg: 发送成功');
/**
* 跳转到对话界面
*/
dd.biz.chat.open({
cid:chatinfo.cid,
onSuccess : function(result) {
},
onFail : function(err) {}
});
}else{
logger.e('sendMsg: 发送失败'+info.errmsg);
}
},
error: function (xhr, errorType, error) {
logger.e(errorType + ', ' + error);
}
});
},
onFail : function(err) {}
});
}
},
onFail: function (err) {
}
});
});
$('.phonecall').on('click', function() {
dd.biz.contact.choose({
startWithDepartmentId: 0, //-1表示打开的通讯录从自己所在部门开始展示, 0表示从企业最上层开始(其他数字表示从该部门开始:暂时不支持)
multiple: false, //是否多选: true多选 false单选 默认true
users: [], //默认选中的用户列表userid成功回调中应包含该信息
corpId: _config.corpId, //企业id
max: 10, //人数限制当multiple为true才生效可选范围1-1500
onSuccess: function(data) {
if(data&&data.length>0){
var selectUserId = data[0].emplId;
if(selectUserId>0){
dd.biz.telephone.call({
users: [selectUserId], //用户列表,工号
corpId: _config.corpId, //企业id
onSuccess : function(info) {
logger.i('biz.telephone.call: info' + JSON.stringify(info));
},
onFail : function(err) {
logger.e('biz.telephone.call: error' + JSON.stringify(err));
}
})
}else{
return false;
}
}else{
return false;
}
},
onFail : function(err) {}
});
});
});
dd.error(function(err) {
logger.e('dd error: ' + JSON.stringify(err));
});