Files
wecom_it_smart_desk/frontend-h5/dist.old/assets/Login-xkNMMtFS.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

2 lines
3.4 KiB
JavaScript

import{a6 as A,af as P,ag as U,ah as N,ai as O,a3 as o,a4 as r,aj as s,a8 as g,L as z,ak as E,al as S,b as Q,I as R,am as q,an as j,ao as l,s as d,V as x,a2 as D}from"./index-DgVr7UP6.js";import{g as M,h as W,a as $}from"./auth-BQC4UrO8.js";const F={class:"login-page"},G={class:"login-card"},H={key:0,class:"qr-login"},I={class:"qr-container"},J={key:0,class:"qr-loading"},K={key:1,class:"qr-code"},X=["src"],Y={key:2,class:"qr-error"},Z={key:0,class:"scan-tip"},ee={key:1,class:"loading-container"},ae=A({__name:"Login",setup(te){const v=P(),i=U(),m=l(!0),h=l(""),y=l(!1),p=l(""),n=l(!1),f=l("请稍候...");let _=null,w="";function C(){return typeof navigator>"u"?!1:/wxwork/i.test(navigator.userAgent)}async function c(){y.value=!0,p.value="waiting";try{const a=await M();h.value=`data:image/png;base64,${a.qrcode_png_base64}`,w=a.ticket,b()}catch(a){console.error("获取二维码失败:",a),d("获取二维码失败,请重试")}finally{y.value=!1}}async function T(){if(w)try{const a=await $(w);a.status==="scanned"?p.value="scanned":a.status==="confirmed"&&a.token?(u(),await L(a.token,a.user_info)):a.status==="expired"?(u(),d("二维码已过期,请重新扫码"),c()):a.status==="cancelled"&&(u(),d("扫码已取消"),p.value="waiting",c())}catch(a){console.warn("轮询扫码状态失败:",a)}}function b(){u(),_=setInterval(T,2e3)}function u(){_&&(clearInterval(_),_=null)}async function L(a,e){n.value=!0,f.value="登录中...";try{if(e!=null&&e.is_new_user){v.push({name:"Bind",query:{userid:e.userid,name:e.name}});return}i.setToken(a),e&&i.setUserInfo(e),x("登录成功"),v.push({name:"ChatView"})}catch(t){console.error("登录失败:",t),d("登录失败,请重试")}finally{n.value=!1}}async function V(a,e){n.value=!0,f.value="授权中...";try{const t=await W(a,e);if(t.is_new_user){v.push({name:"Bind",query:{userid:t.user_info.userid,name:t.user_info.name}});return}i.setToken(t.token),i.setUserInfo(t.user_info),x("登录成功"),v.push({name:"ChatView"})}catch(t){console.error("OAuth回调处理失败:",t),d("授权失败,请重试")}finally{n.value=!1}}return N(async()=>{const a=new URLSearchParams(window.location.search),e=a.get("code"),t=a.get("state");if(e){await V(e,t||void 0);return}if(C()){n.value=!0,f.value="正在跳转企微授权...";try{await i.redirectToOAuth()}catch(k){console.error("跳转授权失败:",k),m.value=!0,c()}finally{n.value=!1}}else m.value=!0,c()}),O(()=>{u()}),(a,e)=>{const t=z,k=Q,B=R;return o(),r("div",F,[s("div",G,[e[5]||(e[5]=s("div",{class:"login-header"},[s("div",{class:"login-icon"},"🛠️"),s("h1",{class:"login-title"},"IT智能服务台"),s("p",{class:"login-subtitle"},"扫码登录")],-1)),m.value?(o(),r("div",H,[s("div",I,[y.value?(o(),r("div",J,[g(t,{type:"spinner",size:"32px"}),e[0]||(e[0]=s("p",null,"加载中...",-1))])):h.value?(o(),r("div",K,[s("img",{src:h.value,alt:"企微扫码登录"},null,8,X)])):(o(),r("div",Y,[e[2]||(e[2]=s("p",null,"获取二维码失败",-1)),g(k,{size:"small",onClick:c},{default:E(()=>[...e[1]||(e[1]=[S("重试",-1)])]),_:1})]))]),e[4]||(e[4]=s("p",{class:"qr-hint"},"请使用企业微信扫码登录",-1)),p.value==="scanned"?(o(),r("p",Z,[g(B,{name:"checked"}),e[3]||(e[3]=S(" 已扫码,请在手机确认 ",-1))])):q("",!0)])):q("",!0),n.value?(o(),r("div",ee,[g(t,{type:"spinner",size:"40px"}),s("p",null,j(f.value),1)])):q("",!0)])])}}}),oe=D(ae,[["__scopeId","data-v-32046e1d"]]);export{oe as default};