index.vue 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <template>
  2. <div class="dataItem flex-center-start" :style="{ background: data.bgColor, padding: data.padding }">
  3. <addIcon :inner-color="data.innerColor" :out-color="data.outColor" />
  4. <div class="textWord">
  5. <div>
  6. <span>{{ data.label }}</span>
  7. <span class="title">{{ data.title }}</span>
  8. <span>{{ data.titleUnit }}</span>
  9. </div>
  10. <!-- <div class="ellipsis" v-html="subTitle" /> -->
  11. <div class="subTitleName">
  12. <span v-if="data.subTitleUnit === 'rate'">
  13. <span>环比:</span>
  14. <span :class="Number(data.subTitle) > 0 ? 'item-up' : 'item-down'">
  15. <i class="el-icon-caret-top" v-if="Number(data.subTitle) > 0" />
  16. <i class="el-icon-caret-bottom" v-else />
  17. {{ data.subTitle }}%
  18. </span>
  19. </span>
  20. <span v-else v-html="data.subTitle" />
  21. </div>
  22. </div>
  23. </div>
  24. </template>
  25. <script>
  26. import addIcon from '@/components/addIcon'
  27. export default {
  28. components: {
  29. addIcon
  30. },
  31. props: {
  32. data: {
  33. type: Object,
  34. required: false,
  35. default: () => {}
  36. }
  37. }
  38. }
  39. </script>
  40. <style scoped lang='less'>
  41. .dataItem {
  42. border-radius: 6px;
  43. padding: 8px 12px;
  44. .textWord {
  45. padding-left: 10px;
  46. width: 90%;
  47. .title {
  48. color: #333;
  49. font-size: 18px;
  50. font-weight: 600;
  51. }
  52. .subTitleName {
  53. color: #999;
  54. font-size: 12px;
  55. .item-up {
  56. color:#F32850
  57. }
  58. .item-down {
  59. color:#9FFF39
  60. }
  61. }
  62. }
  63. }
  64. </style>