diff --git a/src/config.json b/src/config.json
index 8d8845d88e..f8c5368df1 100644
--- a/src/config.json
+++ b/src/config.json
@@ -1082,6 +1082,7 @@
"cName": "折叠面板",
"type": "component",
"show": true,
+ "setup": true,
"desc": "折叠面板",
"author": "Ymm0008"
},
@@ -1095,6 +1096,7 @@
"show": false,
"exportEmpty": true,
"exportEmptyTaro": true,
+ "setup": true,
"desc": "折叠面板-item",
"author": "Ymm0008"
},
diff --git a/src/packages/__VUE/collapse/__tests__/collapse.spec.tsx b/src/packages/__VUE/collapse/__tests__/collapse.spec.tsx
index f23e9426a9..170c92bfff 100644
--- a/src/packages/__VUE/collapse/__tests__/collapse.spec.tsx
+++ b/src/packages/__VUE/collapse/__tests__/collapse.spec.tsx
@@ -1,8 +1,8 @@
import { mount } from '@vue/test-utils';
import { nextTick } from 'vue';
import { Heart } from '@nutui/icons-vue';
-import Collapse from '../index.vue';
-import CollapseItem from '../../collapseitem/index.vue';
+import Collapse from '../';
+import CollapseItem from '../../collapseitem';
test('Collapse: should props active', async () => {
const wrapper = mount(() => {
@@ -131,10 +131,17 @@ test('Collapse: v-model is undefined', async () => {
const collapseTitles = wrapper.findAll('.nut-collapse-item__title');
expect(collapseTitles.length).toBe(2);
collapseTitles[1].trigger('click');
- expect(onChange).toBeCalledWith([222222], 222222, true);
+ expect(onChange).toBeCalledTimes(1);
+ expect(onChange).toHaveBeenLastCalledWith([222222], 222222, true);
// collapse-item can expand
const items = wrapper.findAllComponents(CollapseItem);
+ // @ts-ignore
expect(items[0].vm.expanded).toBe(false);
+ // @ts-ignore
expect(items[1].vm.expanded).toBe(true);
+
+ collapseTitles[1].trigger('click');
+ expect(onChange).toBeCalledTimes(2);
+ expect(onChange).toHaveBeenLastCalledWith([], 222222, false);
});
diff --git a/src/packages/__VUE/collapse/collapse.taro.vue b/src/packages/__VUE/collapse/collapse.taro.vue
new file mode 100644
index 0000000000..6c2f25dd00
--- /dev/null
+++ b/src/packages/__VUE/collapse/collapse.taro.vue
@@ -0,0 +1,76 @@
+
+
+
+
+
+
diff --git a/src/packages/__VUE/collapse/collapse.vue b/src/packages/__VUE/collapse/collapse.vue
new file mode 100644
index 0000000000..6c2f25dd00
--- /dev/null
+++ b/src/packages/__VUE/collapse/collapse.vue
@@ -0,0 +1,76 @@
+
+
+
+
+
+
diff --git a/src/packages/__VUE/collapse/doc.en-US.md b/src/packages/__VUE/collapse/doc.en-US.md
index 235e5eac4a..2da9fd0713 100644
--- a/src/packages/__VUE/collapse/doc.en-US.md
+++ b/src/packages/__VUE/collapse/doc.en-US.md
@@ -84,6 +84,20 @@ Set a custom icon through the `slots.icon` or `props.icon` property.
| --- | --- | --- |
| change | Triggered when switching panels | `(modelValue, currName, status)` |
+### Types version
+
+The component exports the following type definitions:
+
+```js
+import type {
+ CollapseValue,
+ CollapseProps,
+ CollapseInstance,
+ CollapseItemProps,
+ CollapseItemInstance
+} from '@nutui/nutui';
+```
+
## 主题定制
### 样式变量
diff --git a/src/packages/__VUE/collapse/doc.md b/src/packages/__VUE/collapse/doc.md
index ac1d41360c..1081e18954 100644
--- a/src/packages/__VUE/collapse/doc.md
+++ b/src/packages/__VUE/collapse/doc.md
@@ -84,6 +84,20 @@ CollapseItem 组件必须设置 name 属性作为唯一标识符。
| --- | --- | --- |
| change | 切换面板时触发 | `(modelValue, currName, status)` |
+### 类型定义 version
+
+组件导出以下类型定义:
+
+```js
+import type {
+ CollapseValue,
+ CollapseProps,
+ CollapseInstance,
+ CollapseItemProps,
+ CollapseItemInstance
+} from '@nutui/nutui';
+```
+
## 主题定制
### 样式变量
diff --git a/src/packages/__VUE/collapse/doc.taro.md b/src/packages/__VUE/collapse/doc.taro.md
index d29b7b8cf5..31742eed6e 100644
--- a/src/packages/__VUE/collapse/doc.taro.md
+++ b/src/packages/__VUE/collapse/doc.taro.md
@@ -84,6 +84,20 @@ CollapseItem 组件必须设置 name 属性作为唯一标识符。
| --- | --- | --- |
| change | 切换面板时触发 | `(modelValue, currName, status)` |
+### 类型定义 version
+
+组件导出以下类型定义:
+
+```js
+import type {
+ CollapseValue,
+ CollapseProps,
+ CollapseInstance,
+ CollapseItemProps,
+ CollapseItemInstance
+} from '@nutui/nutui-taro';
+```
+
## 主题定制
### 样式变量
diff --git a/src/packages/__VUE/collapse/index.taro.ts b/src/packages/__VUE/collapse/index.taro.ts
new file mode 100644
index 0000000000..8557b2acd7
--- /dev/null
+++ b/src/packages/__VUE/collapse/index.taro.ts
@@ -0,0 +1,13 @@
+import Collapse from './collapse.taro.vue';
+import type { ComponentPublicInstance } from 'vue';
+import { withInstall } from '@/packages/utils';
+
+withInstall(Collapse);
+
+export type { CollapseProps } from './collapse.taro.vue';
+
+export type { CollapseValue } from './types';
+
+export type CollapseInstance = ComponentPublicInstance & InstanceType;
+
+export { Collapse, Collapse as default };
diff --git a/src/packages/__VUE/collapse/index.taro.vue b/src/packages/__VUE/collapse/index.taro.vue
deleted file mode 100644
index 8461f746f5..0000000000
--- a/src/packages/__VUE/collapse/index.taro.vue
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-
-
-
-
diff --git a/src/packages/__VUE/collapse/index.ts b/src/packages/__VUE/collapse/index.ts
new file mode 100644
index 0000000000..e38004f9af
--- /dev/null
+++ b/src/packages/__VUE/collapse/index.ts
@@ -0,0 +1,13 @@
+import Collapse from './collapse.vue';
+import type { ComponentPublicInstance } from 'vue';
+import { withInstall } from '@/packages/utils';
+
+withInstall(Collapse);
+
+export type { CollapseProps } from './collapse.vue';
+
+export type { CollapseValue } from './types';
+
+export type CollapseInstance = ComponentPublicInstance & InstanceType;
+
+export { Collapse, Collapse as default };
diff --git a/src/packages/__VUE/collapse/index.vue b/src/packages/__VUE/collapse/index.vue
deleted file mode 100644
index 8461f746f5..0000000000
--- a/src/packages/__VUE/collapse/index.vue
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-
-
-
-
diff --git a/src/packages/__VUE/collapse/types.ts b/src/packages/__VUE/collapse/types.ts
index 99e00c5832..d4bc9a139d 100644
--- a/src/packages/__VUE/collapse/types.ts
+++ b/src/packages/__VUE/collapse/types.ts
@@ -1,6 +1,8 @@
import type { InjectionKey } from 'vue';
export const COLLAPSE_KEY = Symbol('nut-collapse') as InjectionKey<{
- updateVal: Function;
- isExpanded: Function;
+ updateVal: (name: string | number) => void;
+ isExpanded: (name: string | number) => boolean;
}>;
+
+export type CollapseValue = string | number | (string | number)[];
diff --git a/src/packages/__VUE/collapseitem/collapse-item.taro.vue b/src/packages/__VUE/collapseitem/collapse-item.taro.vue
new file mode 100644
index 0000000000..934136f6c0
--- /dev/null
+++ b/src/packages/__VUE/collapseitem/collapse-item.taro.vue
@@ -0,0 +1,169 @@
+
+
+
+
+
+
+
+
+
+ {{ label }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/packages/__VUE/collapseitem/collapse-item.vue b/src/packages/__VUE/collapseitem/collapse-item.vue
new file mode 100644
index 0000000000..a06d2ebeae
--- /dev/null
+++ b/src/packages/__VUE/collapseitem/collapse-item.vue
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+
+
+
+ {{ label }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/packages/__VUE/collapseitem/index.taro.ts b/src/packages/__VUE/collapseitem/index.taro.ts
new file mode 100644
index 0000000000..010bb330a6
--- /dev/null
+++ b/src/packages/__VUE/collapseitem/index.taro.ts
@@ -0,0 +1,11 @@
+import CollapseItem from './collapse-item.taro.vue';
+import type { ComponentPublicInstance } from 'vue';
+import { withInstall } from '@/packages/utils';
+
+withInstall(CollapseItem);
+
+export type { CollapseItemProps } from './collapse-item.taro.vue';
+
+export type CollapseItemInstance = ComponentPublicInstance & InstanceType;
+
+export { CollapseItem, CollapseItem as default };
diff --git a/src/packages/__VUE/collapseitem/index.taro.vue b/src/packages/__VUE/collapseitem/index.taro.vue
deleted file mode 100644
index 2a0f666ddf..0000000000
--- a/src/packages/__VUE/collapseitem/index.taro.vue
+++ /dev/null
@@ -1,191 +0,0 @@
-
-
-
-
-
-
-
-
-
- {{ label }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/packages/__VUE/collapseitem/index.ts b/src/packages/__VUE/collapseitem/index.ts
new file mode 100644
index 0000000000..063e0d9521
--- /dev/null
+++ b/src/packages/__VUE/collapseitem/index.ts
@@ -0,0 +1,11 @@
+import CollapseItem from './collapse-item.vue';
+import type { ComponentPublicInstance } from 'vue';
+import { withInstall } from '@/packages/utils';
+
+withInstall(CollapseItem);
+
+export type { CollapseItemProps } from './collapse-item.vue';
+
+export type CollapseItemInstance = ComponentPublicInstance & InstanceType;
+
+export { CollapseItem, CollapseItem as default };
diff --git a/src/packages/__VUE/collapseitem/index.vue b/src/packages/__VUE/collapseitem/index.vue
deleted file mode 100644
index dc0429ebaa..0000000000
--- a/src/packages/__VUE/collapseitem/index.vue
+++ /dev/null
@@ -1,160 +0,0 @@
-
-
-
-
-
-
-
-
-
- {{ label }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-