vue-vben-admin/assets/CountdownInput.83d72347.js

2 lines
1.8 KiB
JavaScript

import{h as t,j as n,aa as e,d as a,B as o,a as s,ab as u,r,o as c,f as l,p as i,q as d,t as f,m as p,ac as m,u as C,g as v}from"./index.8a947221.js";import{I as S}from"./index.2c4e33f6.js";import{u as b}from"./useFormItem.cfc17307.js";var x=a({name:"CountButton",components:{Button:o},props:{count:{type:Number,default:60},beforeStartFunc:{type:Function,default:null}},setup(a){const o=t(!1),{currentCount:r,isStart:c,start:l}=function(a){const o=t(a),s=t(!1);let u;function r(){u&&window.clearInterval(u)}function c(){s.value=!1,u=null,r()}function l(){n(s)||u||(s.value=!0,u=setInterval((()=>{1===n(o)?(c(),o.value=a):o.value-=1}),1e3))}function i(){o.value=a,c()}return e((()=>{i()})),{start:l,reset:i,restart:function(){i(),l()},clear:r,stop:c,currentCount:o,isStart:s}}(a.count),{t:i}=s();return{handleStart:async function(){const{beforeStartFunc:t}=a;if(t&&u(t)){o.value=!0;try{await t()&&l()}finally{o.value=!1}}else l()},isStart:c,currentCount:r,loading:o,t:i}}});x.render=function(t,n,e,a,o,s){const u=r("Button");return c(),l(u,p(t.$attrs,{disabled:t.isStart,onClick:t.handleStart,loading:t.loading}),{default:i((()=>[d(f(t.isStart?t.t("component.countdown.sendText",[t.currentCount]):t.t("component.countdown.normalText")),1)])),_:1},16,["disabled","onClick","loading"])};var g=a({name:"CountDownInput",components:{[S.name]:S,CountButton:x},props:{value:m.string,size:m.oneOf(["default","large","small"]),count:m.number.def(60),sendCodeApi:{type:Function,default:null}},setup(t){const{prefixCls:n}=C("countdown-input"),[e]=b(t);return{prefixCls:n,state:e}}});g.render=function(t,n,e,a,o,s){const u=r("CountButton"),d=r("AInput");return c(),l(d,p(t.$attrs,{class:t.prefixCls,size:t.size}),{addonAfter:i((()=>[v(u,{size:t.size,count:t.count,beforeStartFunc:t.sendCodeApi},null,8,["size","count","beforeStartFunc"])])),_:1},16,["class","size"])};export{g as _};