Files
wecom_it_smart_desk/frontend-agent/dist.bak/assets/Login-BYmT0Q_F.js
T
Simon bea288e414 feat: 2026-07-11 全量更新 - 代办集成+会议室预定+知识迭代修复+UI统一+Bug修复
== 已部署上线 (9项) ==
- 代办事项真实数据源集成 (企微审批API 8bug修复链)
- H5/坐席端 Logo样式统一+绿色背景
- 视频引导页修复 (localStorage key v2)
- 坐席端 v9 Vue版本修复 (ElMessage._context)
- 截图按钮 v10 修复 (getDisplayMedia user gesture)
- 扫码样式恢复+H5扫码登录跳转修复
- H5截图快捷键提示

== 代码完成待部署 (3项) ==
- 知识迭代3Bug修复 (#8 POST端点/#7 MERGE幂等/#6 过期检查)
- 会议室预定-小鱼易联终端 (40文件, 40/40测试通过)
- IT资产升级审批推送 (asset_service.py)

== 需求文档 (2项) ==
- 坐席端AI辅助消息框-PRD (4项新功能确认)
- 坐席端布局优化建议 v2.0 (7天计划)

== 新增文档 ==
- 日报-2026-07-11.md
- 知识迭代Bug修复报告-20260711.md
- 会议室预定-部署指南.md
- CHANGELOG.md 更新

== 测试 ==
- test_todo_integration.py: 40/40
- test_meetingroom.py: 40/40
- test_bugfix_ki_suggestions.py: 21/21
2026-07-11 23:13:10 +08:00

3 lines
4.6 KiB
JavaScript

const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/auth-DmITJcle.js","assets/index-ChNUjLLo.js","assets/index-B1u3nieA.js","assets/index-Do7r--Ys.css"])))=>i.map(i=>d[i]);
import{d as R,o as V,a as B,b as s,c as o,u as h,e as w,f as a,g as l,w as y,h as C,t as I,r as c,E as i,_ as N,i as E,j as D,l as O,k as M,m as Q}from"./index-B1u3nieA.js";import{getQrcode as W,handleOAuthCallback as j,getScanStatus as F}from"./auth-DmITJcle.js";import{u as G}from"./agent-WRYR5BAs.js";import"./index-ChNUjLLo.js";import"./conversation-C4tqOoff.js";const H={class:"login-page"},J={key:0,class:"test-env-badge"},K={class:"login-card"},X={key:0,class:"qr-login"},Y={class:"qr-container"},Z={key:0,class:"qr-loading"},$={key:1,class:"qr-code"},ee=["src"],te={key:2,class:"qr-error"},ne={key:0,class:"scan-tip"},ae={key:1,class:"loading-container"},se=R({__name:"Login",setup(oe){const g=D(),u=G(),T=window.location.hostname.includes("localhost"),k=c(!0),S=c(""),q=c(!1),v=c(""),r=c(!1),m=c("请稍候...");let p=null,A="";function U(){return typeof navigator>"u"?!1:/wxwork/i.test(navigator.userAgent)}async function d(){q.value=!0,v.value="waiting";try{const t=await W();S.value=t.qrcode_url,A=t.ticket,x()}catch(t){console.error("获取二维码失败:",t),i.error("获取二维码失败,请重试")}finally{q.value=!1}}async function b(){if(A)try{const t=await F(A);t.status==="scanned"?v.value="scanned":t.status==="confirmed"&&t.token?(_(),await P(t.token,t.user_info)):t.status==="expired"?(_(),i.warning("二维码已过期,请重新扫码"),d()):t.status==="cancelled"&&(_(),i.info("扫码已取消"),v.value="waiting",d())}catch(t){console.warn("轮询扫码状态失败:",t)}}function x(){_(),p=setInterval(b,2e3)}function _(){p&&(clearInterval(p),p=null)}async function P(t,e){r.value=!0,m.value="登录中...";try{if(e!=null&&e.is_new_user){g.push({name:"Bind",query:{userid:e.userid,name:e.name}});return}localStorage.setItem("agent_token",t),u.token=t,e&&(localStorage.setItem("agent_user_id",e.userid),u.agentUserId=e.userid,u.agentInfo={user_id:e.userid,name:e.name,status:"online"}),i.success("登录成功"),g.push("/workspace")}catch(n){console.error("登录失败:",n),i.error("登录失败,请重试")}finally{r.value=!1}}async function L(t,e){r.value=!0,m.value="授权中...";try{const n=await j(t,e);if(n.is_new_user){g.push({name:"Bind",query:{userid:n.user_info.userid,name:n.user_info.name}});return}localStorage.setItem("agent_token",n.token),u.token=n.token,localStorage.setItem("agent_user_id",n.user_info.userid),u.agentUserId=n.user_info.userid,u.agentInfo={user_id:n.user_info.userid,name:n.user_info.name,status:"online"},i.success("登录成功"),g.push("/workspace")}catch(n){console.error("OAuth回调处理失败:",n),i.error("授权失败,请重试")}finally{r.value=!1}}async function z(){const t=window.location.origin+"/itagent/";try{const{getOAuthAuthorizeUrl:e}=await N(async()=>{const{getOAuthAuthorizeUrl:f}=await import("./auth-DmITJcle.js");return{getOAuthAuthorizeUrl:f}},__vite__mapDeps([0,1,2,3])),n=await e(t);if(n.authorize_url){window.location.href=n.authorize_url;return}}catch(e){console.warn("从后端获取授权URL失败,尝试本地构造:",e)}{console.warn("未配置 VITE_WECOM_CORP_ID,无法跳转授权");return}}return V(async()=>{const t=new URLSearchParams(window.location.search),e=t.get("code"),n=t.get("state");if(e){await L(e,n||void 0);return}if(U()){r.value=!0,m.value="正在跳转企微授权...";try{await z()}catch(f){console.error("跳转授权失败:",f),k.value=!0,d()}finally{r.value=!1}}else k.value=!0,d()}),B(()=>{_()}),(t,e)=>{const n=E("el-icon"),f=E("el-button");return s(),o("div",H,[h(T)?(s(),o("div",J," 🔧 测试环境 ")):w("",!0),a("div",K,[e[5]||(e[5]=a("div",{class:"login-title"},[a("h1",null,"🛠️ IT智能服务台"),a("p",null,"坐席工作台")],-1)),k.value?(s(),o("div",X,[a("div",Y,[q.value?(s(),o("div",Z,[l(n,{class:"is-loading"},{default:y(()=>[l(h(O))]),_:1}),e[0]||(e[0]=a("p",null,"加载中...",-1))])):S.value?(s(),o("div",$,[a("img",{src:S.value,alt:"企微扫码登录"},null,8,ee)])):(s(),o("div",te,[e[2]||(e[2]=a("p",null,"获取二维码失败",-1)),l(f,{size:"small",onClick:d},{default:y(()=>[...e[1]||(e[1]=[C("重试",-1)])]),_:1})]))]),e[4]||(e[4]=a("p",{class:"qr-hint"},"请使用企业微信扫码登录",-1)),v.value==="scanned"?(s(),o("p",ne,[l(n,null,{default:y(()=>[l(h(M))]),_:1}),e[3]||(e[3]=C(" 已扫码,请在手机确认 ",-1))])):w("",!0)])):w("",!0),r.value?(s(),o("div",ae,[l(n,{class:"is-loading",size:"32"},{default:y(()=>[l(h(O))]),_:1}),a("p",null,I(m.value),1)])):w("",!0)])])}}}),de=Q(se,[["__scopeId","data-v-bb0a303d"]]);export{de as default};