UNPKG

@wocwin/t-ui-plus

Version:

Page level components developed based on Element Plus.

62 lines (57 loc) 1.62 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var vue = require('vue'); const _hoisted_1 = { class: "t-timer-btn" }; const _hoisted_2 = ["disabled"]; var _sfc_main = /* @__PURE__ */ vue.defineComponent({ ...{ name: "TTimerBtn" }, __name: "index", props: { second: { default: 60 }, className: { default: "" } }, emits: ["click"], setup(__props, { expose: __expose, emit: __emit }) { const props = __props; const time = vue.ref(0); const disabled = vue.ref(false); const text = vue.computed(() => { return time.value > 0 ? `${time.value}s \u540E\u91CD\u83B7\u53D6` : "\u83B7\u53D6\u9A8C\u8BC1\u7801"; }); const emits = __emit; const run = () => { emits("click"); start(); }; const reset = () => { time.value = 0; }; const start = () => { time.value = props.second; disabled.value = true; timer(); }; const timer = () => { if (time.value > 0) { time.value--; setTimeout(timer, 1e3); } else { disabled.value = false; } }; __expose({ reset }); return (_ctx, _cache) => { return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [ vue.createElementVNode("button", { class: vue.normalizeClass(["sendSmsBtn", { dissendSmsBtn: disabled.value, className: _ctx.className }]), type: "button", onClick: run, disabled: disabled.value || time.value > 0 }, vue.toDisplayString(text.value), 11, _hoisted_2) ]); }; } }); exports.default = _sfc_main;