You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2 lines
9.4 KiB

import{cr as defineComponent,cs as ref,cu as onMounted,cv as resolveComponent,cy as openBlock,cG as createBlock,cB as withCtx,cz as createElementBlock,cE as renderList,cH as resolveDynamicComponent,dz as defineAsyncComponent,cM as createCommentVNode,cD as Fragment,dA as __vitePreload,dx as useI18n,cZ as useStore,dm as useRouter,cq as t,cS as resolveDirective,cI as unref,cw as withDirectives,cA as createVNode,cK as toDisplayString,dB as withKeys,cC as createBaseVNode,cL as createTextVNode,cT as normalizeStyle,dy as getBrowserLang,cY as MsgConfirm}from"./index-6b91f299.js";import{p as platformApi,a as authApi}from"./platform-source-78d6c6c0.js";const _imports_0="/ui/assets/icon_qr_outlined-9d61f5ae.svg",__variableDynamicImportRuntimeHelper=(o,e)=>{const n=o[e];return n?typeof n=="function"?n():Promise.resolve(n):new Promise((s,d)=>{(typeof queueMicrotask=="function"?queueMicrotask:setTimeout)(d.bind(null,new Error("Unknown variable dynamic import: "+e)))})},_hoisted_1$1={key:0,class:"text-center mt-16"},_sfc_main$1=defineComponent({__name:"QrCodeTab",props:{tabs:{}},setup(o){const e=o,n=ref(""),s=ref([]),d=ref({app_key:"",app_secret:""});async function i(){try{return(await platformApi.getPlatformInfo()).data}catch{return[]}}onMounted(async()=>{e.tabs.length>0&&(n.value=e.tabs[0].key),s.value=await i(),m(n.value)});const m=l=>{const a=s.value.find(r=>r.platform===l);a&&a.config&&(d.value=a.config)},p=l=>{n.value=l,m(l)};return(l,a)=>{const r=resolveComponent("el-tab-pane"),c=resolveComponent("el-tabs");return openBlock(),createBlock(c,{modelValue:n.value,"onUpdate:modelValue":a[0]||(a[0]=u=>n.value=u),onTabChange:p},{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(l.tabs,u=>(openBlock(),createBlock(r,{key:u.key,label:u.value,name:u.key},{default:withCtx(()=>[u.key===n.value?(openBlock(),createElementBlock("div",_hoisted_1$1,[(openBlock(),createBlock(resolveDynamicComponent(defineAsyncComponent(()=>__variableDynamicImportRuntimeHelper(Object.assign({"./dingtalkQrCode.vue":()=>__vitePreload(()=>import("./dingtalkQrCode-a7e8e5dd.js"),["assets/dingtalkQrCode-a7e8e5dd.js","assets/index-6b91f299.js","assets/index-536d5cbe.css","assets/dingtalkQrCode-5837cc00.css"]),"./larkQrCode.vue":()=>__vitePreload(()=>import("./larkQrCode-ccb2cf5f.js"),["assets/larkQrCode-ccb2cf5f.js","assets/index-6b91f299.js","assets/index-536d5cbe.css"]),"./wecomQrCode.vue":()=>__vitePreload(()=>import("./wecomQrCode-d3886095.js"),["assets/wecomQrCode-d3886095.js","assets/index-6b91f299.js","assets/index-536d5cbe.css","assets/wecomQrCode-56dd6b51.css"])}),`./${u.key}QrCode.vue`))),{config:d.value},null,8,["config"]))])):createCommentVNode("",!0)]),_:2},1032,["label","name"]))),128))]),_:1},8,["modelValue"])}}}),_hoisted_1={key:0,class:"mb-24"},_hoisted_2={key:1},_hoisted_3={class:"mb-24"},_hoisted_4={class:"mb-24"},_hoisted_5={class:"operate-container flex-between mt-12"},_hoisted_6={key:2},_hoisted_7={key:3,class:"login-gradient-divider lighter mt-24"},_hoisted_8={class:"text-center mt-16"},_sfc_main=defineComponent({__name:"index",setup(__props){const{locale}=useI18n({useScope:"global"}),loading=ref(!1),{user}=useStore(),router=useRouter(),loginForm=ref({username:"",password:""}),rules=ref({username:[{required:!0,message:t("views.user.userForm.form.username.requiredMessage"),trigger:"blur"}],password:[{required:!0,message:t("views.user.userForm.form.password.requiredMessage"),trigger:"blur"}]}),loginFormRef=ref(),modeList=ref([""]),QrList=ref([""]),loginMode=ref(""),showQrCodeTab=ref(!1),orgOptions=ref([]);function redirectAuth(authType){authType==="LDAP"||authType===""||authApi.getAuthSetting(authType,loading).then(res=>{res.data&&MsgConfirm(t("views.login.jump_tip"),"",{confirmButtonText:t("views.login.jump"),cancelButtonText:t("common.cancel"),confirmButtonClass:""}).then(()=>{if(!res.data.config_data)return;const config=res.data.config_data,redirectUrl=eval(`\`${config.redirectUrl}\``);let url;authType==="CAS"&&(url=config.ldpUri,url.indexOf("?")!==-1?url=`${config.ldpUri}&service=${encodeURIComponent(redirectUrl)}`:url=`${config.ldpUri}?service=${encodeURIComponent(redirectUrl)}`),authType==="OIDC"&&(url=`${config.authEndpoint}?client_id=${config.clientId}&redirect_uri=${redirectUrl}&response_type=code&scope=openid+profile+email`),authType==="OAuth2"&&(url=`${config.authEndpoint}?client_id=${config.clientId}&response_type=code&redirect_uri=${redirectUrl}&state=${res.data.id}`,config.scope&&(url+=`&scope=${config.scope}`)),url&&(window.location.href=url)}).catch(()=>{})})}function changeMode(o){var e;if(loginMode.value=o==="LDAP"?o:"",o==="QR_CODE"){loginMode.value=o,showQrCodeTab.value=!0;return}showQrCodeTab.value=!1,loginForm.value={username:"",password:""},redirectAuth(o),(e=loginFormRef.value)==null||e.clearValidate()}const login=()=>{var o;(o=loginFormRef.value)==null||o.validate().then(()=>{loading.value=!0,user.login(loginMode.value,loginForm.value.username,loginForm.value.password).then(()=>{locale.value=localStorage.getItem("MaxKB-locale")||getBrowserLang()||"en-US",router.push({name:"home"})}).finally(()=>loading.value=!1)})};return onMounted(()=>{user.asyncGetProfile().then(o=>{user.isEnterprise()&&(loading.value=!0,user.getAuthType().then(e=>{const n=e.indexOf("LDAP");if(n!==-1){const[s]=e.splice(n,1);e.unshift(s)}modeList.value=[...modeList.value,...e]}).finally(()=>loading.value=!1),user.getQrType().then(e=>{e.length>0&&(modeList.value=["QR_CODE",...modeList.value],QrList.value=e,QrList.value.forEach(n=>{orgOptions.value.push({key:n,value:n==="wecom"?t("views.system.authentication.scanTheQRCode.wecom"):n==="dingtalk"?t("views.system.authentication.scanTheQRCode.dingtalk"):t("views.system.authentication.scanTheQRCode.lark")})}))}).finally(()=>loading.value=!1))})}),(o,e)=>{const n=resolveComponent("el-input"),s=resolveComponent("el-form-item"),d=resolveComponent("el-form"),i=resolveComponent("el-button"),m=resolveComponent("LoginContainer"),p=resolveComponent("login-layout"),l=resolveDirective("loading");return!unref(user).isEnterprise()||unref(user).themeInfo?withDirectives((openBlock(),createBlock(p,{key:0},{default:withCtx(()=>{var a;return[createVNode(m,{subTitle:((a=unref(user).themeInfo)==null?void 0:a.slogan)||o.$t("views.system.theme.defaultSlogan")},{default:withCtx(()=>[showQrCodeTab.value?createCommentVNode("",!0):(openBlock(),createElementBlock("h2",_hoisted_1,toDisplayString(loginMode.value||o.$t("views.login.title")),1)),showQrCodeTab.value?createCommentVNode("",!0):(openBlock(),createElementBlock("div",_hoisted_2,[createVNode(d,{class:"login-form",rules:rules.value,model:loginForm.value,ref_key:"loginFormRef",ref:loginFormRef,onKeyup:withKeys(login,["enter"])},{default:withCtx(()=>[createBaseVNode("div",_hoisted_3,[createVNode(s,{prop:"username"},{default:withCtx(()=>[createVNode(n,{size:"large",class:"input-item",modelValue:loginForm.value.username,"onUpdate:modelValue":e[0]||(e[0]=r=>loginForm.value.username=r),placeholder:o.$t("views.user.userForm.form.username.placeholder")},null,8,["modelValue","placeholder"])]),_:1})]),createBaseVNode("div",_hoisted_4,[createVNode(s,{prop:"password"},{default:withCtx(()=>[createVNode(n,{type:"password",size:"large",class:"input-item",modelValue:loginForm.value.password,"onUpdate:modelValue":e[1]||(e[1]=r=>loginForm.value.password=r),placeholder:o.$t("views.user.userForm.form.password.placeholder"),"show-password":""},null,8,["modelValue","placeholder"])]),_:1})])]),_:1},8,["rules","model"]),createVNode(i,{size:"large",type:"primary",class:"w-full",onClick:login},{default:withCtx(()=>[createTextVNode(toDisplayString(o.$t("views.login.buttons.login")),1)]),_:1}),createBaseVNode("div",_hoisted_5,[createVNode(i,{class:"forgot-password",onClick:e[2]||(e[2]=r=>unref(router).push("/forgot_password")),link:"",type:"primary"},{default:withCtx(()=>[createTextVNode(toDisplayString(o.$t("views.login.forgotPassword"))+"? ",1)]),_:1})])])),showQrCodeTab.value?(openBlock(),createElementBlock("div",_hoisted_6,[createVNode(_sfc_main$1,{tabs:orgOptions.value},null,8,["tabs"])])):createCommentVNode("",!0),modeList.value.length>1?(openBlock(),createElementBlock("div",_hoisted_7,[createBaseVNode("span",null,toDisplayString(o.$t("views.login.moreMethod")),1)])):createCommentVNode("",!0),createBaseVNode("div",_hoisted_8,[(openBlock(!0),createElementBlock(Fragment,null,renderList(modeList.value,r=>(openBlock(),createElementBlock(Fragment,null,[r!==""&&loginMode.value!==r&&r!=="QR_CODE"?(openBlock(),createBlock(i,{circle:"",key:r,class:"login-button-circle color-secondary",onClick:c=>changeMode(r)},{default:withCtx(()=>{var c;return[createBaseVNode("span",{style:normalizeStyle({"font-size":r==="OAUTH2"?"8px":"10px",color:(c=unref(user).themeInfo)==null?void 0:c.theme})},toDisplayString(r),5)]}),_:2},1032,["onClick"])):createCommentVNode("",!0),r==="QR_CODE"&&loginMode.value!==r?(openBlock(),createBlock(i,{circle:"",key:r,class:"login-button-circle color-secondary",onClick:e[3]||(e[3]=c=>changeMode("QR_CODE"))},{default:withCtx(()=>e[5]||(e[5]=[createBaseVNode("img",{src:_imports_0,width:"25px"},null,-1)])),_:2},1024)):createCommentVNode("",!0),r===""&&loginMode.value!==""?(openBlock(),createBlock(i,{circle:"",key:r,class:"login-button-circle color-secondary",style:{"font-size":"24px"},icon:"UserFilled",onClick:e[4]||(e[4]=c=>changeMode(""))})):createCommentVNode("",!0)],64))),256))])]),_:1},8,["subTitle"])]}),_:1})),[[l,loading.value]]):createCommentVNode("",!0)}}}),index_vue_vue_type_style_index_0_scope_true_lang="";export{_sfc_main as default};