Tencent / tdesign-vue

A Vue.js UI components lib for TDesign.
https://tdesign.tencent.com/vue
MIT License
923 stars 360 forks source link

[Select选择器] 设置autoWidth属性, 下拉框option的宽度错误 #2533

Open pylist opened 1 year ago

pylist commented 1 year ago

tdesign-vue 版本

1.4.4

重现链接

https://codesandbox.io/embed/tdesign-vue-demo-forked-v6msqm?fontsize=14&hidenavigation=1&theme=dark

重现步骤

No response

期望结果

下拉框的宽度跟select宽度一致

实际结果

image

框架版本

No response

浏览器版本

No response

系统版本

No response

Node版本

No response

补充说明

No response

github-actions[bot] commented 1 year ago

👋 @pylist,感谢给 TDesign 提出了 issue。 请根据 issue 模版确保背景信息的完善,我们将调查并尽快回复你。

chaishi commented 1 year ago

解决方案一:给下拉框设置一个最小宽度。

解决方案二:由于 Select 组件基于 SelectInput 组件开发,故而,SelectInput 组件的全部特性,Select 均支持。可以尝试下面的方式。 示例代码:https://stackblitz.com/edit/aubn3j?file=src%2Fdemo.vue

image image
chaishi commented 1 year ago

后续组件代码里面,可以自动添加上这部分逻辑 @uyarn

<t-select
  label="属性:"
  v-model="value1"
  :options="options1"
  placeholder="请选择云解决方案"
  autoWidth
  :popupProps="{ overlayInnerStyle }"
/>
export default {
  methods: {
    overlayInnerStyle(triggerElement, popoverElement) {
      return {
        width: `${Math.max(
          triggerElement.offsetWidth,
          popoverElement.offsetWidth
        )}px`,
      };
    },
  },
}