<!-- eslint-disable vue/multi-word-component-names -->
<template>
  <!-- 基准的列表模块，通过不同的 type 展示不同的样式 -->
  <div class="list flex items-center" :class="`list_${type}`">
    <!-- 部分类型的列表需要加一张图片 -->
    <div :class="`list__image_${type}`"></div>
    <!-- 剩下的部分填充剩余宽度 -->
    <div class="flex-grow" :class="`list__wrapper_${type}`">
      <div v-for="(item, i) in listConfig" :key="`customlist${i}`" class="flex items-center" :class="`list-item_${type}`">
        <!-- 列表项前面的图标 -->
        <div :class="`list-item__icon_${type}`"></div>
        <!-- 列表项的具体内容填充剩余宽度 -->
        <div class="flex-grow" :class="`list-item__content_${type}`">
          <div class="list-item__label">{{ item.label }}</div>
          <div class="list-item__info" :class="`list-item__info_${item.color}`">{{ item.info }}</div>
          <div class="list-item__value" :class="`list-item__value_${item.color} list-item__value_${type}`">{{ item.value }}</div>
        </div>
      </div>
    </div>
  </div>
</template>
<script lang="ts" setup>
  withDefaults(
    defineProps<{
      listConfig: {
        value: string;
        color: string;
        label: string;
        info: string;
      }[];
      /** A B C D E F G */
      type: string;
    }>(),
    {
      listConfig: () => [],
      type: 'A',
    }
  );

  //   defineEmits(['click']);
</script>
<style lang="less" scoped>
  @import '/@/design/theme.less';

  .list {
    // --image-list_bg_default: url(/@/assets/images/home-container/configurable/list_bg_default.png);
    padding: 5px 20px;
    position: relative;
    background-repeat: no-repeat;
    width: 100%;
    height: 100%;
    background-size: 100% 100%;
    // background-image: var(--image-list_bg_default);
  }

  .list-item__label {
    flex-basis: 55%;
  }
  .list-item__info {
    flex-grow: 1;
  }
  .list-item__value {
    flex-basis: 30%;
  }
  .list-item__value_red {
    color: red;
  }
  .list-item__value_orange {
    color: orange;
  }
  .list-item__value_yellow {
    color: yellow;
  }
  .list-item__value_green {
    color: yellowgreen;
  }
  .list-item__value_blue {
    color: aqua;
  }
  .list-item__value_white {
    color: white;
  }
  .gallery-item__value_lightblue {
    color: lightblue;
  }
</style>
