index-DaNt6yXc.js 10 KB

12
  1. const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./dingtalkQrCode-Bv1dNJ6U.js","./logo_dingtalk-CyDPr22R.js","./admin-ZywPplgI.js","./admin-XzaUob7u.css","./dingtalkQrCode-CulsC8mV.css","./larkQrCode-CHozxDEY.js","./logo_lark-DULIW3z6.js","./wecomQrCode-cpUHRfmD.js","./wecomQrCode-BJnSWBd8.css"])))=>i.map(i=>d[i]);
  2. import{cQ as Y,gV as Z,fr as ee,fV as R,ft as u,cq as O,g$ as m,cs as x,fS as te,fX as se,cO as re,cr as y,F as q,fM as i,ab as B,gT as ie,gP as ue,gS as N,gs as k,fm as ce,eW as H,w as de,fW as fe,h0 as pe,cw as _,gx as E,h1 as me,cp as L,cv as J,gN as W,ff as ve,dk as G,c9 as ge,eR as he,x as _e,ac as we}from"./admin-ZywPplgI.js";import{_ as Ce,a as ke,d as ye}from"./index-B6Vmx1Hw.js";import{L as be,a as Le}from"./LoginContainer-DhGABcHh.js";import{a as X}from"./auth-setting-B9oi_DZH.js";import{f as F}from"./index-ttSe8Wa7.js";import"./call-DFPi4aKL.js";const xe={key:0,class:"text-center mt-16"},Ae=Y({__name:"QrCodeTab",props:{tabs:{},defaultTab:{}},setup(M){const{login:A}=Z(),v=M,g=i(""),D=i([]),V=i({app_key:"",app_secret:""});async function w(){try{return await A.getQrSource()}catch{return[]}}ee(async()=>{v.tabs.length>0&&(g.value=v.tabs[0].key),D.value=await w(),Q(g.value),console.log(v.defaultTab),v.defaultTab&&S(v.defaultTab)});const Q=h=>{const d=D.value.find($=>$.auth_type===h);d&&d.config&&(V.value=d.config)},S=h=>{g.value=h,Q(h)};return(h,d)=>{const $=R("el-tab-pane"),r=R("el-tabs");return u(),O(r,{modelValue:g.value,"onUpdate:modelValue":d[0]||(d[0]=b=>g.value=b),onTabChange:S},{default:m(()=>[(u(!0),x(q,null,te(M.tabs,b=>(u(),O($,{key:b.key,label:b.value,name:b.key},{default:m(()=>[b.key===g.value?(u(),x("div",xe,[(u(),O(se(re(()=>Ce(Object.assign({"./dingtalkQrCode.vue":()=>B(()=>import("./dingtalkQrCode-Bv1dNJ6U.js"),__vite__mapDeps([0,1,2,3,4]),import.meta.url),"./larkQrCode.vue":()=>B(()=>import("./larkQrCode-CHozxDEY.js"),__vite__mapDeps([5,6,2,3]),import.meta.url),"./wecomQrCode.vue":()=>B(()=>import("./wecomQrCode-cpUHRfmD.js"),__vite__mapDeps([7,2,3,8]),import.meta.url)}),`./${b.key}QrCode.vue`,2))),{config:V.value},null,8,["config"]))])):y("",!0)]),_:2},1032,["label","name"]))),128))]),_:1},8,["modelValue"])}}}),De={key:0,class:"mb-24"},Oe={key:1},Se={class:"mb-24"},$e={class:"mb-24"},Ie={key:0,class:"mb-24"},Re={class:"flex-between w-full"},Ve=["src"],Pe={class:"operate-container flex-between mt-12"},Ee={key:2},Qe={key:3,class:"login-gradient-divider lighter mt-24"},Me={class:"text-center mt-16"},Te=Y({__name:"index",setup(M){const A=ie(),{login:v,user:g,theme:D}=Z(),{locale:V}=ue({useScope:"global"}),w=i(!1),Q=N(),S=i(""),h=i(),d=i(null),$=i(""),r=i({username:"",password:"",captcha:""}),b=i({username:[{required:!0,message:k("views.login.loginForm.username.requiredMessage"),trigger:"blur"}],password:[{required:!0,message:k("views.login.loginForm.password.requiredMessage"),trigger:"blur"}],captcha:[{required:!1,message:k("views.login.loginForm.captcha.requiredMessage"),trigger:"blur"}]}),K=()=>{h.value&&h.value.validate(t=>{if(t)if(w.value=!0,C.value==="LDAP")v.asyncLdapLogin(r.value).then(()=>{V.value=localStorage.getItem("MaxKB-locale")||G()||"en-US",A.push({name:"home"})}).catch(()=>{w.value=!1});else{const e=F.pki.publicKeyFromPem(g.rsaKey),c=JSON.stringify(r.value),l=F.util.encodeUtf8(c),n=e.encrypt(l,"RSAES-PKCS1-V1_5"),s=F.util.encode64(n);v.asyncLogin({encryptedData:s,username:r.value.username}).then(()=>{V.value=localStorage.getItem("MaxKB-locale")||G()||"en-US",localStorage.setItem("workspace_id","default"),A.push({name:"home"})}).catch(()=>{const f=r.value.username;w.value=!1,T(f)})}})};function T(t){H.getCaptcha(t).then(e=>{e&&e.data&&e.data.captcha&&(S.value=e.data.captcha)}).catch(e=>{console.error("Failed to get captcha:",e)})}function ae(t){T(t)}ce(()=>{g.asyncGetProfile().then(t=>{g.isPE()||g.isEE()?X.getLoginAuthSetting().then(e=>{if(Object.keys(e.data).length>0?d.value=e.data:d.value={max_attempts:1,default_value:"LOCAL"},Q.query.login_mode!=="manual"){d.value?.login_methods&&(o.value=d.value?.login_methods,o.value.includes("LOCAL")?o.value=["LOCAL",...o.value.filter(n=>n!=="LOCAL")]:o.value.includes("LDAP")&&(o.value=["LDAP",...o.value.filter(n=>n!=="LDAP")]),C.value=o.value[0]||"LOCAL",!o.value.includes("LOCAL")&&!o.value.includes("LDAP")&&(C.value=""),o.value.length==1&&["CAS","OIDC","OAuth2","SAML2"].includes(o.value[0])&&z(o.value[0]),U.value=o.value.filter(n=>!["CAS","OIDC","OAuth2","LOCAL","LDAP","SAML2"].includes(n)),o.value=o.value.filter(n=>!["lark","wecom","dingtalk"].includes(n)),U.value.length>0&&(U.value.forEach(n=>{j.value.push({key:n,value:n==="wecom"?k("views.system.authentication.scanTheQRCode.wecom"):n==="dingtalk"?k("views.system.authentication.scanTheQRCode.dingtalk"):k("views.system.authentication.scanTheQRCode.lark")})}),!o.value.includes("LOCAL")&&!o.value.includes("LDAP")&&(I.value=!0),o.value=["QR_CODE",...o.value]));const l=d.value.default_value;["lark","wecom","dingtalk"].includes(l)?(P("QR_CODE",!1),$.value=l):P(l,!1)}}):d.value={max_attempts:1,default_value:"LOCAL"}})});const o=i([""]),U=i([""]),C=i(""),I=i(!1),j=i([]);function le(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){const e=Math.random()*16|0;return(t==="x"?e:e&3|8).toString(16)})}const oe=ge(()=>!D.themeInfo?.slogan||"强大易用的企业级智能体平台"==D.themeInfo?.slogan?k("theme.defaultSlogan"):D.themeInfo?.slogan);function z(t,e=!0){t==="LDAP"||t===""||t==="LOCAL"||X.getLoginViewAuthSetting(t,w).then(c=>{if(!c.data||!c.data.config)return;const l=c.data.config,n=`${l.redirectUrl}`;let s;if(t==="CAS")s=l.ldpUri,s+=s.indexOf("?")!==-1?`&service=${encodeURIComponent(n)}`:`?service=${encodeURIComponent(n)}`;else if(t==="OIDC"){const f=l.scope||"openid+profile+email";s=`${l.authEndpoint}?client_id=${l.clientId}&redirect_uri=${n}&response_type=code&scope=${f}`,l.state&&(s+=`&state=${l.state}`)}else t==="OAuth2"?(s=`${l.authEndpoint}?client_id=${l.clientId}&response_type=code&redirect_uri=${n}&state=${le()}`,l.scope&&(s+=`&scope=${l.scope}`)):t==="SAML2"&&H.samlLogin().then(f=>{window.location.href=f.data});s&&(e?de(k("views.login.jump_tip"),"",{confirmButtonText:k("views.login.jump"),cancelButtonText:k("common.cancel"),confirmButtonClass:""}).then(()=>{window.location.href=s}).catch(()=>{}):(console.log("url",s),window.location.href=s))})}function P(t,e=!0){if(C.value=t==="LDAP"?t:"",t==="QR_CODE"){C.value=t,I.value=!0;return}I.value=!1,r.value={username:"",password:"",captcha:""},z(t,e),h.value?.clearValidate()}return ee(()=>{const t=N(),e=i(t.fullPath),c=new URLSearchParams(e.value.split("?")[1]),l=c.get("client"),n=()=>{const f=c.get("corpId");f&&ye.runtime.permission.requestAuthCode({corpId:f}).then(a=>{console.log("DingTalk client request success:",a),v.dingOauth2Callback(a.code).then(()=>{A.push({name:"home"})})})},s=()=>{const f=c.get("appId"),a=()=>{window.tt?.requestAuthCode({appId:f,success:p=>{v.larkCallback(p.code).then(()=>{A.push({name:"home"})})},fail:p=>{_e(p)}})};he("https://lf-scm-cn.feishucdn.com/lark/op/h5-js-sdk-1.5.35.js",{jsId:"lark-sdk",forceReload:!0}).then(()=>{window.tt?window.tt.requestAccess({appID:f,scopeList:[],success:p=>{v.larkCallback(p.code).then(()=>{A.push({name:"home"})})},fail:p=>{const{errno:ne}=p;ne===103&&a()}}):a()}).catch(p=>{console.error("SDK 加载失败:",p)})};switch(l){case"dingtalk":n();break;case"lark":s();break}}),(t,e)=>{const c=R("el-input"),l=R("el-form-item"),n=R("el-form"),s=R("el-button"),f=fe("loading");return w.value?y("",!0):pe((u(),O(Le,{key:0},{default:m(()=>[_(be,{subTitle:oe.value},{default:m(()=>[I.value?y("",!0):(u(),x("h2",De,E(C.value||t.$t("views.login.title")),1)),I.value?y("",!0):(u(),x("div",Oe,[_(n,{class:"login-form",rules:b.value,model:r.value,ref_key:"loginFormRef",ref:h,onKeyup:me(K,["enter"])},{default:m(()=>[L("div",Se,[_(l,{prop:"username"},{default:m(()=>[_(c,{size:"large",class:"input-item",modelValue:r.value.username,"onUpdate:modelValue":e[0]||(e[0]=a=>r.value.username=a),onBlur:e[1]||(e[1]=a=>ae(r.value.username)),placeholder:t.$t("views.login.loginForm.username.placeholder")},null,8,["modelValue","placeholder"])]),_:1})]),L("div",$e,[_(l,{prop:"password"},{default:m(()=>[_(c,{type:"password",size:"large",class:"input-item",modelValue:r.value.password,"onUpdate:modelValue":e[2]||(e[2]=a=>r.value.password=a),placeholder:t.$t("views.login.loginForm.password.placeholder"),"show-password":""},null,8,["modelValue","placeholder"])]),_:1})]),C.value!=="LDAP"&&S.value?(u(),x("div",Ie,[_(l,{prop:"captcha"},{default:m(()=>[L("div",Re,[_(c,{size:"large",class:"input-item",modelValue:r.value.captcha,"onUpdate:modelValue":e[3]||(e[3]=a=>r.value.captcha=a),placeholder:t.$t("views.login.loginForm.captcha.placeholder")},null,8,["modelValue","placeholder"]),L("img",{src:S.value,alt:"",height:"38",class:"ml-8 cursor border border-r-6",onClick:e[4]||(e[4]=a=>T(r.value.username))},null,8,Ve)])]),_:1})])):y("",!0)]),_:1},8,["rules","model"]),_(s,{size:"large",type:"primary",class:"w-full",onClick:K,loading:w.value},{default:m(()=>[J(E(t.$t("views.login.buttons.login")),1)]),_:1},8,["loading"]),L("div",Pe,[_(s,{loading:w.value,class:"forgot-password",onClick:e[5]||(e[5]=a=>W(A).push("/forgot_password")),link:"",type:"primary"},{default:m(()=>[J(E(t.$t("views.login.forgotPassword"))+"? ",1)]),_:1},8,["loading"])])])),I.value?(u(),x("div",Ee,[_(Ae,{tabs:j.value,"default-tab":$.value},null,8,["tabs","default-tab"])])):y("",!0),o.value.length>1?(u(),x("div",Qe,[L("span",null,E(t.$t("views.login.moreMethod")),1)])):y("",!0),L("div",Me,[(u(!0),x(q,null,te(o.value,a=>(u(),x(q,null,[a!==""&&C.value!==a&&a!=="QR_CODE"?(u(),O(s,{circle:"",key:a,class:"login-button-circle color-secondary",onClick:p=>P(a)},{default:m(()=>[L("span",{style:ve({"font-size":a==="OAUTH2"?"8px":"10px",color:W(D).themeInfo?.theme})},E(a),5)]),_:2},1032,["onClick"])):y("",!0),a==="QR_CODE"&&C.value!==a?(u(),O(s,{circle:"",key:a,class:"login-button-circle color-secondary",onClick:e[6]||(e[6]=p=>P("QR_CODE"))},{default:m(()=>[...e[8]||(e[8]=[L("img",{src:ke,width:"25px"},null,-1)])]),_:1})):y("",!0),a===""&&C.value!==""?(u(),O(s,{circle:"",key:a,class:"login-button-circle color-secondary",style:{"font-size":"24px"},icon:"UserFilled",onClick:e[7]||(e[7]=p=>P(""))})):y("",!0)],64))),256))])]),_:1},8,["subTitle"])]),_:1})),[[f,w.value]])}}}),ze=we(Te,[["__scopeId","data-v-9165d3d5"]]);export{ze as default};