Files
jurong_circle_frontdesk/dist/assets/Captcha-BFJ1zi5J.js
2025-07-26 15:35:53 +08:00

2 lines
2.7 KiB
JavaScript

import{r as n,j as S,h as E,al as v,y as _,z as g,A as o,Q as t,a4 as K,I as u,u as y,M as R}from"./vendor-C3mpOp0n.js";import{v as T,w as C,a as r}from"./elementPlus-DFx51bSH.js";import{_ as $,a as w}from"./index-BlP3rxMf.js";const j={class:"captcha-container"},A={class:"captcha-input-group"},Q=["src"],U={key:1,class:"captcha-loading"},q={class:"captcha-refresh-hint"},D={class:"captcha-actions"},F={__name:"Captcha",props:{modelValue:{type:String,default:""},placeholder:{type:String,default:"请输入验证码"},size:{type:String,default:"large"},autoRefresh:{type:Boolean,default:!0}},emits:["update:modelValue","verify","refresh"],setup(i,{expose:x,emit:k}){const d=i,p=k,s=n(d.modelValue),f=n(""),l=n(""),h=n(!1),I=async()=>{try{h.value=!0;const e=await w.get("/captcha/generate");e.data.success?(f.value=e.data.data.image,l.value=e.data.data.captchaId,p("refresh",{captchaId:l.value})):r.error(e.data.message||"获取验证码失败")}catch(e){console.error("获取验证码失败:",e),r.error("获取验证码失败,请检查网络连接")}finally{h.value=!1}},c=async()=>{s.value="",p("update:modelValue",""),await I()},z=e=>{p("update:modelValue",e)},b=async e=>{if(!l.value)return r.error("请先获取验证码"),!1;if(!e||e.trim()==="")return r.error("请输入验证码"),!1;try{const a=await w.post("/captcha/verify",{captchaId:l.value,captchaText:e.trim()});return a.data.success?!0:(r.error(a.data.message||"验证码错误"),await c(),!1)}catch(a){return console.error("验证验证码失败:",a),r.error("验证验证码失败,请重试"),await c(),!1}},B=()=>({captchaId:l.value,captchaText:s.value});return S(()=>d.modelValue,e=>{s.value=e}),E(()=>{d.autoRefresh&&I()}),x({refreshCaptcha:c,verifyCaptcha:b,getCaptchaInfo:B}),(e,a)=>{const M=v("el-input"),m=v("el-icon"),N=v("el-button");return g(),_("div",j,[o("div",A,[t(M,{modelValue:s.value,"onUpdate:modelValue":a[0]||(a[0]=V=>s.value=V),placeholder:i.placeholder,size:i.size,clearable:"",onKeyup:a[1]||(a[1]=K(V=>e.$emit("verify",{captchaId:l.value,captchaText:s.value}),["enter"])),onInput:z},null,8,["modelValue","placeholder","size"]),o("div",{class:"captcha-image-wrapper",onClick:c},[f.value?(g(),_("img",{key:0,src:f.value,alt:"验证码",class:"captcha-image"},null,8,Q)):(g(),_("div",U,[t(m,{class:"is-loading"},{default:u(()=>[t(y(T))]),_:1}),a[2]||(a[2]=o("span",null,"加载中...",-1))])),o("div",q,[t(m,null,{default:u(()=>[t(y(C))]),_:1}),a[3]||(a[3]=o("span",null,"点击刷新",-1))])])]),o("div",D,[t(N,{type:"text",size:"small",onClick:c,loading:h.value},{default:u(()=>[t(m,null,{default:u(()=>[t(y(C))]),_:1}),a[4]||(a[4]=R(" 刷新验证码 "))]),_:1,__:[4]},8,["loading"])])])}}},L=$(F,[["__scopeId","data-v-cf29bfcb"]]);export{L as C};