NumberInfo.vue 990 Bytes
Newer Older
wanli's avatar
wanli committed
1
<template>
wanli's avatar
wanli committed
2 3 4 5 6 7 8 9 10 11 12 13
  <div :class="cls">
    <div v-if="title" class="numberInfoTitle">
      {{ title }}
    </div>
    <div v-if="subTitle" class="numberInfoSubTitle">
      {{ subTitle }}
    </div>
    <div class="numberInfoValue" :style="{ 'margin-top:gap': gap }">
      <span>
        {{ total }}
        <em v-if="suffix" class="suffix">{{ suffix }}</em>
      </span>
wanli's avatar
wanli committed
14

wanli's avatar
wanli committed
15 16 17 18
      <span v-if="status || subTotal" class="subTotal">
        {{ subTotal }}
        <a-icon v-if="status" :type="`caret-${status}`" />}
      </span>
wanli's avatar
wanli committed
19
    </div>
wanli's avatar
wanli committed
20
  </div>
wanli's avatar
wanli committed
21 22 23 24 25 26 27 28 29 30 31 32 33 34
</template>

<script>
import { Icon } from "ant-design-vue";
import classNames from "classnames";
export default {
  props: [
    "theme",
    "title",
    "subTitle",
    "total",
    "subTotal",
    "status",
    "suffix",
wanli's avatar
wanli committed
35
    "gap",
wanli's avatar
wanli committed
36 37
  ],
  components: {
wanli's avatar
wanli committed
38
    AIcon: Icon,
wanli's avatar
wanli committed
39 40 41 42 43
  },
  computed: {
    cls() {
      const { theme } = this;
      return classNames("numberInfo", {
wanli's avatar
wanli committed
44
        ["numberInfo" + theme]: theme,
wanli's avatar
wanli committed
45
      });
wanli's avatar
wanli committed
46 47
    },
  },
wanli's avatar
wanli committed
48 49
};
</script>