index.vue 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <template>
  2. <div
  3. :class="`bs-card-${customTheme}`"
  4. style="width: 100%;height: 100%;position: relative;"
  5. >
  6. <div :style="{
  7. width: '100%',
  8. height: '100%',
  9. display: 'flex',
  10. flexDirection: 'column',
  11. boxSizing: 'border-box',
  12. backgroundColor: customize.backgroundColor,
  13. border:`${customize.border}px`,
  14. borderStyle: customize.borderStyle,
  15. borderColor: `${customize.borderColor}`
  16. }">
  17. <header :style="{
  18. color: customize.headerColor,
  19. padding: '8px 0',
  20. lineHeight: '16px',
  21. borderBottom: `${customize.titleBottomLineWidth}px solid ${customize.titleBottomLineColor}`,
  22. fontSize: '16px',
  23. boxSizing: 'border-box',
  24. display: 'flex',
  25. justifyContent: 'space-between',
  26. }">
  27. <span :style="{
  28. display: 'inline-block',
  29. borderLeft: `${customize.titleLineWidth}px solid ${customize.titleLineColor}`,
  30. paddingLeft: customize.titlePaddingLeft+'px'
  31. }">
  32. {{config.title}}
  33. </span>
  34. </header>
  35. <div :style="{
  36. flex: 1,
  37. position: 'relative'
  38. }">
  39. </div>
  40. </div>
  41. </div>
  42. </template>
  43. <script>
  44. import commonMixins from '../../../js/mixins/commonMixins'
  45. import paramsMixins from '../../../js/mixins/paramsMixins'
  46. export default {
  47. name: 'Card',
  48. components: {},
  49. mixins: [paramsMixins, commonMixins],
  50. props: {
  51. // 卡片的属性
  52. config: {
  53. type: Object,
  54. default: () => ({})
  55. }
  56. },
  57. data() {
  58. return {
  59. customClass: {}
  60. }
  61. },
  62. mounted () {
  63. this.chartInit()
  64. },
  65. watch: {},
  66. computed: {
  67. customize() {
  68. return this.config.option.customize
  69. }
  70. },
  71. methods: {
  72. buildOption(config, data) {
  73. // 文本数据配置原则:选择数据集则以后端返回的数据为主,否则以设置面板中标题设置为准
  74. if (config.dataSource.businessKey) {
  75. config.customize.title = data && data.data && data.data.length ? data.data[0][config.dataSource.metricField] : '暂无数据'
  76. }
  77. return config
  78. }
  79. }
  80. }
  81. </script>
  82. <style lang="scss" scoped>
  83. </style>