Files
wecom_it_smart_desk/frontend-admin/dist.old/assets/Login-CgP5dXvg.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.7 KiB
JavaScript

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