diff --git a/package/component/src/component/select/index.less b/package/component/src/component/select/index.less
index fc22966f..0f77e4ab 100644
--- a/package/component/src/component/select/index.less
+++ b/package/component/src/component/select/index.less
@@ -1,3 +1,8 @@
+@import "../checkbox/index.less";
+@import "../input/index.less";
+@import "../dropdown/index.less";
+@import "../tagInput/index.less";
+
.layui-select {
width: 220px;
diff --git a/package/component/src/component/select/index.vue b/package/component/src/component/select/index.vue
index b2865d1a..ddb0732c 100644
--- a/package/component/src/component/select/index.vue
+++ b/package/component/src/component/select/index.vue
@@ -1,176 +1,191 @@
-
-
+
+
-
-
-
-
- = ref(false);
+ const selectedItem: Ref = ref([]);
+ const options = ref([]);
+ const emits = defineEmits();
+
+ onMounted(() => {
+ if (slots.default) {
+ getOption(slots.default());
+ }
+
+ Object.assign(options.value, props.items);
+
+ watch(
+ selectedValue,
+ () => {
+ if (multiple.value) {
+ multipleValue.value = selectedValue.value.map((value: any) => {
+ return options.value.find((item: any) => {
+ item.disabled == "" || item.disabled == true ? item.closable = false : item.closable = true;
+ return item.value === value;
+ });
+
+ });
+ } else {
+ singleValue.value = options.value.find((item: any) => {
+ return item.value === selectedValue.value;
+ })?.label;
+ }
+ },
+ { immediate: true }
+ );
+ });
+
+ const getOption = function (nodes: VNode[]) {
+ nodes?.map((item: VNode) => {
+ let component = item.type as Component;
+ if (component.name === LaySelectOption.name) {
+ options.value.push(item.props);
+ } else {
+ getOption(item.children as VNode[]);
+ }
+ });
+ };
+
+ const selectedValue = computed({
+ get() {
+ return props.modelValue;
+ },
+ set(val) {
+ emits("update:modelValue", val);
+ emits("change", val);
+ },
+ });
+
+ const multiple = computed(() => {
+ return props.multiple;
+ });
+
+ provide("openState", openState);
+ provide("selectedItem", selectedItem);
+ provide("selectedValue", selectedValue);
+ provide("searchValue", searchValue);
+ provide("multiple", multiple);
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/package/component/src/component/selectOption/index.vue b/package/component/src/component/selectOption/index.vue
index 70b2ce3d..d7aa0aff 100644
--- a/package/component/src/component/selectOption/index.vue
+++ b/package/component/src/component/selectOption/index.vue
@@ -14,7 +14,6 @@ import {
Ref,
onMounted,
} from "vue";
-import { arrayExpression } from "@babel/types";
export interface LaySelectOptionProps {
label: string;
diff --git a/package/document-component/src/document/zh-CN/guide/changelog.md b/package/document-component/src/document/zh-CN/guide/changelog.md
index eb14621c..b212431d 100644
--- a/package/document-component/src/document/zh-CN/guide/changelog.md
+++ b/package/document-component/src/document/zh-CN/guide/changelog.md
@@ -19,6 +19,8 @@
[新增] tag-input 标签输入框组件, 用于录入事物的属性与纬度。
[新增] table 组件 header 插槽, 用于在工具栏与表格之间插入元素。
[新增] tabitem 组件 icon 属性, 提供 title 属性前置 icon 设置。
+ [新增] select 组件 collapseTagsTooltip 属性, 多选模式下是否悬浮显示折叠的选中项。
+ [新增] select 组件 minCollapsedNum 属性, 多选模式选中项超过多少时折叠。
[修复] tolltip 组件 content 变化时, 位置无法自动计算调整的问题。
[修复] breadcrumb-item 组件无法正确传递 attrs, 导致 @click 等自定义事件失效。
[修复] layout 组件仅引入了 footer 作为内容元素时, layui-layout-vertical 样式不生效, 导致布局错误。