vue-ele-plus
Version:
48 lines (47 loc) • 1.28 kB
JavaScript
import { defineComponent, ref, onMounted, resolveComponent, openBlock, createElementBlock, createVNode, mergeProps, unref } from "vue";
const _sfc_main = /* @__PURE__ */ defineComponent({
props: {
percentage: {
type: Number,
default: 0
},
isAnimation: {
default: true,
type: Boolean
},
time: {
default: 3e3,
type: Number
}
},
setup(__props) {
const props = __props;
let p = ref(0);
onMounted(() => {
if (props.isAnimation) {
let t = Math.ceil(props.time / props.percentage);
let timer = setInterval(() => {
p.value += 1;
if (p.value >= props.percentage) {
p.value = props.percentage;
clearInterval(timer);
}
}, t);
} else {
p.value = props.percentage;
}
});
return (_ctx, _cache) => {
const _component_el_progress = resolveComponent("el-progress");
return openBlock(), createElementBlock("div", null, [
createVNode(_component_el_progress, mergeProps({ percentage: unref(p) }, _ctx.$attrs, { isAnimation: "" }), null, 16, ["percentage"])
]);
};
}
});
var index = {
install(app) {
app.component("m-progress", _sfc_main);
}
};
export { index as default };