statistic2.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. 'use strict';
  2. Object.defineProperty(exports, '__esModule', { value: true });
  3. var vue = require('vue');
  4. var statistic = require('./statistic.js');
  5. var pluginVue_exportHelper = require('../../../_virtual/plugin-vue_export-helper.js');
  6. var index = require('../../../hooks/use-namespace/index.js');
  7. var shared = require('@vue/shared');
  8. var types = require('../../../utils/types.js');
  9. const __default__ = vue.defineComponent({
  10. name: "ElStatistic"
  11. });
  12. const _sfc_main = /* @__PURE__ */ vue.defineComponent({
  13. ...__default__,
  14. props: statistic.statisticProps,
  15. setup(__props, { expose }) {
  16. const props = __props;
  17. const ns = index.useNamespace("statistic");
  18. const displayValue = vue.computed(() => {
  19. const { value, formatter, precision, decimalSeparator, groupSeparator } = props;
  20. if (shared.isFunction(formatter))
  21. return formatter(value);
  22. if (!types.isNumber(value) || Number.isNaN(value))
  23. return value;
  24. let [integer, decimal = ""] = String(value).split(".");
  25. decimal = decimal.padEnd(precision, "0").slice(0, precision > 0 ? precision : 0);
  26. integer = integer.replace(/\B(?=(\d{3})+(?!\d))/g, groupSeparator);
  27. return [integer, decimal].join(decimal ? decimalSeparator : "");
  28. });
  29. expose({
  30. displayValue
  31. });
  32. return (_ctx, _cache) => {
  33. return vue.openBlock(), vue.createElementBlock("div", {
  34. class: vue.normalizeClass(vue.unref(ns).b())
  35. }, [
  36. _ctx.$slots.title || _ctx.title ? (vue.openBlock(), vue.createElementBlock("div", {
  37. key: 0,
  38. class: vue.normalizeClass(vue.unref(ns).e("head"))
  39. }, [
  40. vue.renderSlot(_ctx.$slots, "title", {}, () => [
  41. vue.createTextVNode(vue.toDisplayString(_ctx.title), 1)
  42. ])
  43. ], 2)) : vue.createCommentVNode("v-if", true),
  44. vue.createElementVNode("div", {
  45. class: vue.normalizeClass(vue.unref(ns).e("content"))
  46. }, [
  47. _ctx.$slots.prefix || _ctx.prefix ? (vue.openBlock(), vue.createElementBlock("div", {
  48. key: 0,
  49. class: vue.normalizeClass(vue.unref(ns).e("prefix"))
  50. }, [
  51. vue.renderSlot(_ctx.$slots, "prefix", {}, () => [
  52. vue.createElementVNode("span", null, vue.toDisplayString(_ctx.prefix), 1)
  53. ])
  54. ], 2)) : vue.createCommentVNode("v-if", true),
  55. vue.createElementVNode("span", {
  56. class: vue.normalizeClass(vue.unref(ns).e("number")),
  57. style: vue.normalizeStyle(_ctx.valueStyle)
  58. }, vue.toDisplayString(vue.unref(displayValue)), 7),
  59. _ctx.$slots.suffix || _ctx.suffix ? (vue.openBlock(), vue.createElementBlock("div", {
  60. key: 1,
  61. class: vue.normalizeClass(vue.unref(ns).e("suffix"))
  62. }, [
  63. vue.renderSlot(_ctx.$slots, "suffix", {}, () => [
  64. vue.createElementVNode("span", null, vue.toDisplayString(_ctx.suffix), 1)
  65. ])
  66. ], 2)) : vue.createCommentVNode("v-if", true)
  67. ], 2)
  68. ], 2);
  69. };
  70. }
  71. });
  72. var Statistic = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["__file", "statistic.vue"]]);
  73. exports["default"] = Statistic;
  74. //# sourceMappingURL=statistic2.js.map