PageSourceSearch

https://smartkintai.ai/assets/EmployeePasswordReset-Bb1l0x0v.js

js smartkintai.ai collected 2026-10-05 15:06:37 UTC 5,670 bytes, 1 lines download raw bytes

1import{d as H,r as n,c as P,q as J,a as D,o as K,e as U,g as a,w as t,i as u,s as w,n as I,j as E,f as k,u as _,T as O,b9 as Q,A as T,h as z,z as F,t as X,v as Y,W as d}from"./index-C6DB0I7I.js";import{v as Z,r as ee,b as ae}from"./auth-jgLYqy-7.js";import{g as te}from"./settings-Be5sQkc5.js";import{_ as se}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./employeeClient-DfmVny7z.js";import"./index-D5lHaTRS.js";const le={class:"password-reset-container"},oe={class:"card-header"},re={key:1,class:"token-validating"},ne={class:"back-link"},ue=H({__name:"EmployeePasswordReset",setup(ie){const h=J(),W=Y(),b=n(),q=n(),x=n(!1),R=n(!1),s=P(()=>String(h.query.tenantId||h.query.tenant||"")),m=P(()=>String(h.query.token||"")),i=P(()=>m.value.length>0),y=n(!1),c=n(!1),g=D({email:""}),r=D({newPassword:"",confirmPassword:""}),$={email:[{required:!0,message:"メールアドレスを入力してください",trigger:"blur"},{type:"email",message:"メールアドレスの形式が正しくありません",trigger:"blur"}]},f=n(8),j=(l,e,o)=>{if(!e){o(new Error("パスワード確認を入力してください"));return}if(e!==r.newPassword){o(new Error("パスワードが一致しません"));return}o()},A=P(()=>({newPassword:[{required:!0,message:"新しいパスワードを入力してください",trigger:"blur"},{min:f.value,message:`${f.value}文字以上で入力してください`,trigger:"blur"}],confirmPassword:[{required:!0,validator:j,trigger:"blur"}]})),L=()=>{W.push({name:"EmployeePunch",query:s.value?{tenantId:s.value}:void 0})},S=async()=>{if(!s.value){d.error("テナントIDが不足しています");return}b.value&&await b.value.validate(async l=>{if(l){x.value=!0;try{await ee({tenantId:s.value,email:g.email}),d.success("メールアドレスが登録されている場合、再設定メールを送信しました")}catch(e){d.error(e.message||"再設定メールの送信に失敗しました")}finally{x.value=!1}}})},B=async()=>{if(!s.value||!m.value){d.error("再設定に必要な情報が不足しています");return}q.value&&await q.value.validate(async l=>{if(l){R.value=!0;try{await ae({tenantId:s.value,token:m.value,newPassword:r.newPassword}),d.success("パスワードを再設定しました。ログインしてください"),L()}catch(e){d.error(e.message||"パスワード再設定に失敗しました")}finally{R.value=!1}}})};return K(async()=>{const l=s.value?te(s.value).catch(()=>null):Promise.resolve(null);if(i.value&&s.value&&m.value){const[e]=await Promise.all([l,Z({tenantId:s.value,token:m.value}).then(o=>{c.value=o}).catch(()=>{c.value=!1}).finally(()=>{y.value=!0})]);f.value=(e==null?void 0:e.minLength)??8}else{const e=await l;f.value=(e==null?void 0:e.minLength)??8,y.value=!0,c.value=!1}}),(l,e)=>{const o=u("el-icon"),M=u("el-alert"),V=u("el-input"),p=u("el-form-item"),C=u("el-button"),N=u("el-form"),G=u("el-card");return w(),U("div",le,[a(G,{class:"password-reset-card",shadow:"always"},{header:t(()=>[k("div",oe,[a(o,{size:30,color:"#2563eb"},{default:t(()=>[a(_(F))]),_:1}),k("h2",null,X(i.value?"新しいパスワードを設定":"パスワード再設定"),1)])]),default:t(()=>[a(M,{title:i.value?"メールに記載されたリンクから、新しいパスワードを設定してください":"登録済みメールアドレスに再設定リンクを送信します",type:"info",closable:!1,style:{"margin-bottom":"20px"}},null,8,["title"]),i.value&&y.value&&!c.value?(w(),I(M,{key:0,title:"このリンクは無効か期限切れです。再度パスワード再設定メールを発行してください。",type:"error",closable:!1,style:{"margin-bottom":"20px"}})):E("",!0),i.value&&!y.value?(w(),U("div",re,[a(o,{class:"is-loading"},{default:t(()=>[a(_(O))]),_:1}),e[3]||(e[3]=k("span",null,"リンクを確認しています...",-1))])):E("",!0),i.value?c.value?(w(),I(N,{key:3,ref_key:"resetFormRef",ref:q,model:r,rules:A.value,"label-width":"140px",onSubmit:z(B,["prevent"])},{default:t(()=>[a(p,{label:"新しいパスワード",prop:"newPassword"},{default:t(()=>[a(V,{modelValue:r.newPassword,"onUpdate:modelValue":e[1]||(e[1]=v=>r.newPassword=v),type:"password",placeholder:`${f.value}文字以上のパスワード`,"prefix-icon":_(F),"show-password":""},null,8,["modelValue","placeholder","prefix-icon"])]),_:1}),a(p,{label:"パスワード確認",prop:"confirmPassword"},{default:t(()=>[a(V,{modelValue:r.confirmPassword,"onUpdate:modelValue":e[2]||(e[2]=v=>r.confirmPassword=v),type:"password",placeholder:"確認のため再入力","prefix-icon":_(F),"show-password":""},null,8,["modelValue","prefix-icon"])]),_:1}),a(p,null,{default:t(()=>[a(C,{type:"primary",loading:R.value,onClick:B,style:{width:"100%"}},{default:t(()=>[...e[5]||(e[5]=[T(" パスワードを更新 ",-1)])]),_:1},8,["loading"])]),_:1})]),_:1},8,["model","rules"])):E("",!0):(w(),I(N,{key:2,ref_key:"requestFormRef",ref:b,model:g,rules:$,"label-width":"120px",onSubmit:z(S,["prevent"])},{default:t(()=>[a(p,{label:"メールアドレス",prop:"email"},{default:t(()=>[a(V,{modelValue:g.email,"onUpdate:modelValue":e[0]||(e[0]=v=>g.email=v),type:"email",placeholder:"登録済みメールアドレス","prefix-icon":_(Q)},null,8,["modelValue","prefix-icon"])]),_:1}),a(p,null,{default:t(()=>[a(C,{type:"primary",loading:x.value,onClick:S,style:{width:"100%"}},{default:t(()=>
1[...e[4]||(e[4]=[T(" 再設定メールを送信 ",-1)])]),_:1},8,["loading"])]),_:1})]),_:1},8,["model"])),k("div",ne,[a(C,{link:"",type:"primary",onClick:L},{default:t(()=>[...e[6]||(e[6]=[T("社員ログインへ戻る",-1)])]),_:1})])]),_:1})])}}}),we=se(ue,[["__scopeId","data-v-51c6f520"]]);export{we as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.