wujingjing
2024-11-08 651cc37b98c2f496bbaa42704f801d4ac0af58bb
src/components/chat/chatComponents/summaryCom/components/recordSet/components/List.vue
@@ -1,30 +1,42 @@
<template>
   <el-select
      class="w-32"
      :style="{width:selectWidth}"
      :style="{ width: selectWidth }"
      v-model="selectValue"
      @change="changeValue"
      :disabled="disabled"
      :placeholder="data.title"
   >
      <el-option v-for="item in data.list" :key="item.value" :value="item.value" :label="item.title"></el-option>
      <el-option v-for="item in selectList" :key="item.value" :value="item.value" :label="item.title"></el-option>
   </el-select>
</template>
<script setup lang="ts">
import { ref, type PropType, computed } from 'vue';
import type { ListParam } from '../types';
import { getTextWidth } from '/@/utils/util';
import { StepParam } from '../types';
import { DAY_STEP_LIST, HOUR_STEP_LIST, IS_DAY_LIST } from './constants';
const props = defineProps({
   data: {
      type: Object as PropType<ListParam>,
      type: Object as PropType<StepParam>,
   },
   disabled: {
      type: Boolean,
      default: false,
   },
});
const getSelectList = (defaultStepValue: string) => {
   if (IS_DAY_LIST.includes(defaultStepValue)) {
      return DAY_STEP_LIST;
   } else {
      return HOUR_STEP_LIST;
   }
};
const selectList = getSelectList(props.data?.origin?.step_value);
// const fontSize = ref('14px');
const emit = defineEmits(['change']);
const SELECT_OFFSET = 47;
@@ -33,7 +45,7 @@
      // 以最大字长为宽度
      const widthList = props.data.list.map((item) =>
         getTextWidth(item.title, {
            size: fontSize.value,
            size:'14px',
         })
      );
      const maxWidth = Math.max(...widthList);
@@ -44,7 +56,6 @@
   }
});
const fontSize = ref('14px');
const selectValue = defineModel({
   type: String,
});
@@ -55,6 +66,6 @@
</script>
<style scoped lang="scss">
:deep(.el-input) {
   font-size: v-bind(fontSize);
   font-size: 14px;
}
</style>