Files
k3GPT/main/x/ding.html
2025-11-19 19:42:49 +08:00

111 lines
4.1 KiB
HTML

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>知识体</title>
<script src="js/axios.min.js"></script>
<script src="https://g.alicdn.com/dingding/dingtalk-jsapi/3.0.25/dingtalk.open.js"></script>
<style>
/* 清除HTML和body的默认边距 */
html, body {
margin: 0;
padding: 0;
overflow: hidden; /* 防止出现滚动条 */
height: 100%; /* 确保body占满整个窗口 */
}
/* 设置iframe样式 */
iframe {
width: 100%;
height: 100%;
border: none; /* 去掉边框 */
display: block; /* 避免底部空白 */
}
</style>
</head>
<body>
<div id="console"></div>
<script>
const url = new URL(window.location.href);
var Agent_Kasn = url.searchParams.get('sn');
var kagent; //配置信息
var console_out = document.getElementById("console");
dd.ready(function() {
// SDK 初始化成功
console_out.innerHTML="SDK 初始化成功<br>";
axios.get('/api/kagent_cfg/'+this.Agent_Kasn).then(response => {
kagent = response.data;
//智能体名称
console_out.innerHTML += `智能体名称: ${kagent.title}<br>`;
document.title= kagent.title+"_系统登录";
if ("dingtalk" in kagent){
var redirect_uri=window.location.protocol+"//"+url.hostname;
if (window.location.port==""){
redirect_uri = redirect_uri+'/api/dingtalk_auth_code'
}else{
redirect_uri = redirect_uri+':'+window.location.port+'/api/dingtalk_auth_code'
}
console.info(redirect_uri);
console_out.innerHTML += `corpId: ${kagent.dingtalk.corpid}<br>`;
console_out.innerHTML += `client_id: ${kagent.dingtalk.client_id}<br>`;
//钉钉登录
dd.runtime.permission.requestAuthCode({
corpId: kagent.dingtalk.corpid,
clientId: kagent.dingtalk.client_id,
onSuccess: function (result) {
/*{
code: 'hYLK98jkf0m' //string authCode
}*/
console_out.innerHTML += `钉钉code: ${result.code}<br>`;
//认证请求
axios.get(redirect_uri+"?code="+result.code+"&state="+Agent_Kasn).then(response => {
var url = response.data.url;
// 创建一个新的 iframe 元素
const iframe = document.createElement('iframe');
// 设置 iframe 属性
iframe.src = url; // 替换为你需要嵌入的地址
iframe.title = '全屏嵌入页面';
iframe.frameBorder = '0'; // 去掉边框
iframe.style.width = '100%';
iframe.style.height = '100%';
iframe.style.border = 'none';
iframe.style.display = 'block';
// 清空 body 内容(可选)
document.body.innerHTML = '';
// 将 iframe 添加到 body 中
document.body.appendChild(iframe);
});
},
onFail: function (err) {
console_out.innerHTML += `授权码获取失败: ${JSON.stringify(err)}<br>`;
},
});
}
}).catch(error => {
console.error('Error fetching data:', error);
console_out.innerHTML += `错误: ${error}<br>`;
throw error; // 重新抛出错误以便调用者可以处理
});
});
</script>
</body>
</html>