<template>
  <div
    :class="`bs-indexCard`"
    style="width: 100%;height: 100%;position: relative;"
  >
    <div
      :style="{
        'background-image': `linear-gradient(${customize.gradientDirection}, ${
          gradientColor0 ? gradientColor0 : gradientColor1
        } , ${gradientColor1 ? gradientColor1 : gradientColor0})`,
        'border-radius':customize.borderRadius + 'px',
        border:`${customize.borderWidth}px solid ${customize.borderColor}`,
      }"
      class="content"
    >
      <div
        :style="{
          'margin-right':customize.distance + 'px'
        }"
        class="content-left"
      >
        <el-image
          :style="{
            width: customize.imgSize + 'px',
            height: customize.imgSize + 'px',
          }"
          :src="customize.src?customize.src:imgUrl"
          fit="contain"
        />
      </div>
      <div class="content-right">
        <span
          class="content-right-first"
          :style="{
            'font-family': config.customize.fontFamily,
            'font-size': customize.firstSize + 'px',
            'height':customize.firstSize + 'px',
            color:customize.firstColor,
            'font-weight':customize.firstWeight,
            'margin-bottom':customize.lineDistance +'px'
          }"
        >
          {{ optionData }}
          <span
            :style="{
              'margin-left':'10px',
              'font-size': customize.unitSize + 'px',
              color:customize.unitColor,
            }"
          >
            {{ unit }}
          </span>
        </span>
        <span
          :style="{
            'font-size': customize.secondSize + 'px',
            'height':customize.secondSize + 'px',
            color:customize.secondColor,
            'font-weight':customize.secondWeight,
          }"
          class="content-right-second"
        >
          {{ customize.secondLine }}
        </span>
      </div>
    </div>
  </div>
</template>
<script>
import commonMixins from 'data-room-ui/js/mixins/commonMixins'
import paramsMixins from 'data-room-ui/js/mixins/paramsMixins'
import linkageMixins from 'data-room-ui/js/mixins/linkageMixins'
export default {
  name: 'Card',
  components: {},
  mixins: [paramsMixins, commonMixins, linkageMixins],
  props: {
    // 卡片的属性
    config: {
      type: Object,
      default: () => ({})
    }
  },
  data () {
    return {
      imgUrl: require('data-room-ui/assets/images/cardImg/cardicon.png'),
      customClass: {}
    }
  },
  watch: {},
  mounted () {
  },
  computed: {
    gradientColor0 () {
      return this.config.customize.gradientColor0 || this.config.customize.gradientColor1 || 'transparent'
    },
    gradientColor1 () {
      return this.config.customize.gradientColor1 || this.config.customize.gradientColor0 || 'transparent'
    },
    unit () {
      return this.config?.customize.unit || ''
    },
    option () {
      return this.config?.option
    },
    optionData () {
      return this.option?.data || 80
    },
    customize () {
      return this.config?.customize
    }
  },
  methods: {
    dataFormatting (config, data) {
      let dataList = ''
      if (data.success) {
        if (data.data instanceof Array) {
          dataList = config.dataSource.dimensionField
            ? data.data[0][config.dataSource.dimensionField]
            : data.data[0].value
        } else {
          dataList = data.data[config.dataSource.dimensionField]
        }
      } else {
        dataList = 80
      }
      config.option = {
        ...config.option,
        data: dataList
      }
      return config
    }
  }
}
</script>

<style lang="scss" scoped>
.content{
  display: flex;
  flex-direction: row;
  height: 100%;
  width: 100%;
  // background-color: aliceblue;
  justify-content: center;
  .content-left{
    display: flex;
    flex-direction: row;
    height: 100%;
    align-items: center;
  }
  .content-right{
    display: flex;
    flex-direction: column;
    height: 100%;
    justify-content: center;
  }
  .content-right-first{
    display: flex;
    flex-direction: row;
    align-items: center;
    padding-bottom: 5px;
  }
  .content-right-second{
    display: flex;
    flex-direction: row;
    align-items: center;
  }
}
</style>