@tdesign/uniapp 0.8.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +43 -34
  3. package/dist/action-sheet/README.md +8 -3
  4. package/dist/avatar/README.md +3 -1
  5. package/dist/back-top/README.md +3 -1
  6. package/dist/badge/README.en-US.md +1 -0
  7. package/dist/badge/README.md +4 -1
  8. package/dist/badge/badge.css +1 -1
  9. package/dist/button/README.md +3 -1
  10. package/dist/button/button.vue +5 -0
  11. package/dist/calendar/README.md +3 -1
  12. package/dist/calendar/calendar.vue +6 -2
  13. package/dist/cascader/README.md +3 -1
  14. package/dist/cell/README.md +3 -1
  15. package/dist/checkbox/README.md +3 -1
  16. package/dist/col/README.md +3 -1
  17. package/dist/collapse/README.md +3 -1
  18. package/dist/color-picker/README.md +3 -1
  19. package/dist/common/common.ts +121 -5
  20. package/dist/common/src/index.js +0 -1
  21. package/dist/common/style/theme/index-light.css +282 -0
  22. package/dist/common/style/theme/index-light.less +9 -0
  23. package/dist/common/style/theme/raw/_components-light.less +8 -0
  24. package/dist/common/style/theme/raw/_light-only.less +181 -0
  25. package/dist/common/validator.ts +496 -0
  26. package/dist/config-provider/README.md +3 -1
  27. package/dist/count-down/README.md +3 -1
  28. package/dist/date-time-picker/README.md +3 -1
  29. package/dist/dialog/README.md +3 -1
  30. package/dist/divider/README.md +3 -1
  31. package/dist/drawer/README.md +3 -1
  32. package/dist/dropdown-item/dropdown-item.vue +2 -0
  33. package/dist/dropdown-menu/README.md +2 -2
  34. package/dist/dropdown-menu/dropdown-menu.vue +1 -1
  35. package/dist/empty/README.md +3 -1
  36. package/dist/fab/README.md +3 -1
  37. package/dist/fab/fab.vue +2 -2
  38. package/dist/fab/props.ts +1 -1
  39. package/dist/fab/type.ts +1 -1
  40. package/dist/footer/README.md +3 -1
  41. package/dist/form/README.en-US.md +2 -2
  42. package/dist/form/README.md +5 -3
  43. package/dist/form/form.vue +1 -1
  44. package/dist/form/type.ts +3 -3
  45. package/dist/form-item/form-item.css +6 -2
  46. package/dist/form-item/form-item.vue +30 -24
  47. package/dist/form-item/type.ts +2 -2
  48. package/dist/grid/README.md +3 -1
  49. package/dist/guide/README.md +3 -1
  50. package/dist/icon/README.md +10 -7
  51. package/dist/icon/icon.css +1633 -1624
  52. package/dist/image/README.md +3 -1
  53. package/dist/image-viewer/README.md +3 -1
  54. package/dist/index.js +13 -0
  55. package/dist/indexes/README.md +3 -1
  56. package/dist/indexes/computed.js +6 -2
  57. package/dist/indexes/indexes.css +7 -2
  58. package/dist/indexes/indexes.vue +1 -1
  59. package/dist/indexes/props.ts +5 -0
  60. package/dist/indexes/type.ts +5 -0
  61. package/dist/input/README.md +3 -1
  62. package/dist/input/input.vue +8 -32
  63. package/dist/link/README.md +3 -1
  64. package/dist/loading/README.md +3 -1
  65. package/dist/message/README.md +8 -3
  66. package/dist/mixins/page-scroll.d.ts +19 -0
  67. package/dist/mixins/skyline.js +1 -1
  68. package/dist/navbar/README.md +3 -1
  69. package/dist/notice-bar/README.md +3 -1
  70. package/dist/overlay/README.md +3 -1
  71. package/dist/picker/README.md +3 -1
  72. package/dist/popover/README.md +3 -1
  73. package/dist/popup/README.md +3 -1
  74. package/dist/progress/README.md +2 -2
  75. package/dist/pull-down-refresh/README.md +3 -1
  76. package/dist/qrcode/README.md +3 -1
  77. package/dist/radio/README.md +3 -1
  78. package/dist/rate/README.md +3 -1
  79. package/dist/rate/rate.css +1 -0
  80. package/dist/result/README.md +3 -1
  81. package/dist/search/README.md +3 -1
  82. package/dist/search/search.css +5 -0
  83. package/dist/search/search.vue +7 -12
  84. package/dist/segmented/README.en-US.md +42 -0
  85. package/dist/segmented/README.md +75 -0
  86. package/dist/segmented/props.ts +31 -0
  87. package/dist/segmented/segmented.css +66 -0
  88. package/dist/segmented/segmented.vue +174 -0
  89. package/dist/segmented/type.ts +41 -0
  90. package/dist/side-bar/README.md +3 -1
  91. package/dist/skeleton/README.md +3 -1
  92. package/dist/slider/README.md +3 -1
  93. package/dist/stepper/README.md +3 -1
  94. package/dist/steps/README.md +3 -1
  95. package/dist/sticky/README.md +3 -1
  96. package/dist/swipe-cell/README.md +3 -1
  97. package/dist/swiper/README.md +3 -1
  98. package/dist/switch/README.md +3 -1
  99. package/dist/tab-bar/README.md +3 -1
  100. package/dist/tab-bar-item/tab-bar-item.vue +4 -6
  101. package/dist/table/README.en-US.md +72 -0
  102. package/dist/table/README.md +117 -0
  103. package/dist/table/base-table-props.ts +105 -0
  104. package/dist/table/props.ts +94 -0
  105. package/dist/table/table.css +251 -0
  106. package/dist/table/table.vue +551 -0
  107. package/dist/table/type.ts +180 -0
  108. package/dist/tabs/README.md +3 -1
  109. package/dist/tabs/tabs.css +4 -0
  110. package/dist/tag/README.md +3 -1
  111. package/dist/textarea/README.md +3 -1
  112. package/dist/textarea/textarea.vue +1 -25
  113. package/dist/theme-light.css +282 -0
  114. package/dist/theme-light.css.d.ts +2 -0
  115. package/dist/theme-light.less +1 -0
  116. package/dist/theme-light.less.d.ts +2 -0
  117. package/dist/theme.css +467 -0
  118. package/dist/theme.css.d.ts +2 -0
  119. package/dist/theme.less +1 -0
  120. package/dist/theme.less.d.ts +2 -0
  121. package/dist/toast/README.md +3 -1
  122. package/dist/transition/README.md +4 -6
  123. package/dist/tree-select/README.md +3 -1
  124. package/dist/types/index.d.ts +17 -0
  125. package/dist/types/segmented.d.ts +7 -0
  126. package/dist/types/table.d.ts +7 -0
  127. package/dist/upload/README.md +3 -1
  128. package/dist/watermark/README.md +3 -1
  129. package/global.d.ts +2 -0
  130. package/package.json +66 -8
  131. package/script/postinstall.js +87 -0
  132. package/dist/common/src/superComponent.js +0 -5
  133. package/dist/common/validator.js +0 -210
  134. package/dist/script/postinstall.js +0 -46
@@ -9,7 +9,9 @@ isComponent: true
9
9
 
10
10
  ## 引入
11
11
 
12
- 可在 `main.ts` 或在需要使用的页面或组件中引入。
12
+ 推荐使用 easycom 模式引入组件,配置后无需手动 import 即可直接在模板中使用 `<t-image />`。详细配置请参考 [快速开始](../getting-started)。
13
+
14
+ 如需手动引入:
13
15
 
14
16
  ```js
15
17
  import TImage from '@tdesign/uniapp/image/image.vue';
@@ -9,7 +9,9 @@ isComponent: true
9
9
 
10
10
  ## 引入
11
11
 
12
- 可在 `main.ts` 或在需要使用的页面或组件中引入。
12
+ 推荐使用 easycom 模式引入组件,配置后无需手动 import 即可直接在模板中使用 `<t-image-viewer />`。详细配置请参考 [快速开始](../getting-started)。
13
+
14
+ 如需手动引入:
13
15
 
14
16
  ```js
15
17
  import TImageViewer from '@tdesign/uniapp/image-viewer/image-viewer.vue';
package/dist/index.js CHANGED
@@ -1,3 +1,16 @@
1
1
  // This file is intentionally empty.
2
2
  // It serves as the runtime entry point for module resolvers.
3
3
  // All meaningful exports from this package are type-only.
4
+
5
+ // mixins
6
+ export { handlePageScroll } from './mixins/page-scroll';
7
+
8
+ // 函数式调用
9
+ export { default as DialogPlugin } from './dialog/index';
10
+ export { default as Dialog } from './dialog/index';
11
+ export { default as MessagePlugin } from './message/index';
12
+ export { default as Message } from './message/index';
13
+ export { default as Toast, showToast, hideToast } from './toast/index';
14
+ export { default as ToastPlugin } from './toast/index';
15
+ export { default as ActionSheetPlugin, ActionSheetTheme } from './action-sheet/index';
16
+ export { default as ActionSheet } from './action-sheet/index';
@@ -7,7 +7,9 @@ isComponent: true
7
7
 
8
8
  ## 引入
9
9
 
10
- 可在 `main.ts` 或在需要使用的页面或组件中引入。
10
+ 推荐使用 easycom 模式引入组件,配置后无需手动 import 即可直接在模板中使用 `<t-indexes />`。详细配置请参考 [快速开始](../getting-started)。
11
+
12
+ 如需手动引入:
11
13
 
12
14
  ```js
13
15
  import TIndexes from '@tdesign/uniapp/indexes/indexes.vue';
@@ -1,4 +1,8 @@
1
- export function getFirstCharacter(str) {
2
- return str.toString().substring(0, 1);
1
+ export function getFirstCharacter(str, showFullIndex) {
2
+ const res = str.toString();
3
+ if (showFullIndex) {
4
+ return res;
5
+ }
6
+ return res.substring(0, 1);
3
7
  }
4
8
 
@@ -5,17 +5,22 @@
5
5
  .t-indexes__sidebar {
6
6
  position: fixed;
7
7
  right: var(--td-indexes-sidebar-right, 16rpx);
8
- width: var(--td-indexes-sidebar-item-size, 40rpx);
9
8
  color: var(--td-indexes-sidebar-color, var(--td-text-color-primary, var(--td-font-gray-1, rgba(0, 0, 0, 0.9))));
10
9
  font: var(--td-indexes-sidebar-font, var(--td-font-body-small, 24rpx / 40rpx var(--td-font-family, PingFang SC, Microsoft YaHei, Arial Regular)));
11
10
  display: flex;
11
+ align-items: center;
12
+ justify-content: center;
12
13
  flex-flow: column nowrap;
13
14
  top: 50%;
14
15
  transform: translateY(-50%);
15
16
  z-index: 1;
16
17
  }
17
18
  .t-indexes__sidebar-item {
18
- border-radius: 50%;
19
+ min-width: var(--td-indexes-sidebar-item-size, 40rpx);
20
+ height: var(--td-indexes-sidebar-item-size, 40rpx);
21
+ padding: 0 calc(var(--td-spacer, 16rpx) / 2);
22
+ box-sizing: border-box;
23
+ border-radius: var(--td-indexes-sidebar-item-size, 40rpx);
19
24
  position: relative;
20
25
  text-align: center;
21
26
  }
@@ -22,7 +22,7 @@
22
22
  aria-role="button"
23
23
  :aria-label="dataCurrent === item ? '已选中' + item : ''"
24
24
  >
25
- {{ getFirstCharacter(item) }}
25
+ {{ getFirstCharacter(item, showFullIndex) }}
26
26
  </view>
27
27
 
28
28
  <view
@@ -17,6 +17,11 @@ export default {
17
17
  indexList: {
18
18
  type: Array,
19
19
  },
20
+ /** 索引是否完整展示 */
21
+ showFullIndex: {
22
+ type: Boolean,
23
+ default: false,
24
+ },
20
25
  /** 索引是否吸顶,默认为true */
21
26
  sticky: {
22
27
  type: Boolean,
@@ -17,6 +17,11 @@ export interface TdIndexesProps {
17
17
  * 索引字符列表。不传默认 `A-Z`
18
18
  */
19
19
  indexList?: Array<string | number>;
20
+ /**
21
+ * 索引是否完整展示
22
+ * @default false
23
+ */
24
+ showFullIndex?: Boolean;
20
25
  /**
21
26
  * 索引是否吸顶,默认为true
22
27
  * @default true
@@ -9,7 +9,9 @@ isComponent: true
9
9
 
10
10
  ## 引入
11
11
 
12
- 可在 `main.ts` 或在需要使用的页面或组件中引入。
12
+ 推荐使用 easycom 模式引入组件,配置后无需手动 import 即可直接在模板中使用 `<t-input />`。详细配置请参考 [快速开始](../getting-started)。
13
+
14
+ 如需手动引入:
13
15
 
14
16
  ```js
15
17
  import TInput from '@tdesign/uniapp/input/input.vue';
@@ -143,15 +143,16 @@
143
143
  </view>
144
144
  </template>
145
145
  <script>
146
- import TIcon from '../icon/icon';
147
- import { uniComponent } from '../common/src/index';
148
146
  import { prefix } from '../common/config';
149
- import props from './props';
147
+ import { RELATION_MAP } from '../common/relation/parent-map';
148
+ import { uniComponent } from '../common/src/index';
150
149
  import { getCharacterLength, calcIcon, coalesce, nextTick } from '../common/utils';
150
+ import tools from '../common/utils.wxs';
151
151
  import { isDef } from '../common/validator';
152
+ import TIcon from '../icon/icon';
153
+
152
154
  import { getInputClass } from './computed.js';
153
- import tools from '../common/utils.wxs';
154
- import { RELATION_MAP } from '../common/relation/parent-map.js';
155
+ import props from './props';
155
156
 
156
157
 
157
158
  const name = `${prefix}-input`;
@@ -205,9 +206,6 @@ export default {
205
206
  tools,
206
207
 
207
208
  dataValue: coalesce(this.value, this.defaultValue),
208
-
209
- // rawValue: '',
210
- // innerMaxLen: -1,
211
209
  };
212
210
  },
213
211
  watch: {
@@ -282,30 +280,7 @@ export default {
282
280
  this.dataValue = value;
283
281
  this.count = isDef(value) ? String(value).length : 0;
284
282
  }
285
-
286
- // this.updateInnerMaxLen();
287
283
  },
288
- // updateInnerMaxLen() {
289
- // this.innerMaxLen = this.getInnerMaxLen();
290
- // },
291
- // getInnerMaxLen() {
292
- // const {
293
- // allowInputOverMax,
294
- // maxcharacter,
295
- // maxlength,
296
- // dataValue,
297
- // rawValue,
298
- // count,
299
- // } = this;
300
- // return getInnerMaxLen({
301
- // allowInputOverMax,
302
- // maxcharacter,
303
- // maxlength,
304
- // dataValue,
305
- // rawValue,
306
- // count,
307
- // });
308
- // },
309
284
 
310
285
  updateClearIconVisible(value = false) {
311
286
  const { clearTrigger, disabled, readonly } = this;
@@ -370,8 +345,9 @@ export default {
370
345
  },
371
346
 
372
347
  clearInput(e) {
348
+ this.updateValue('');
349
+ this.emitChange({ value: this.dataValue });
373
350
  this.$emit('clear', e.detail);
374
- this.dataValue = '';
375
351
  },
376
352
 
377
353
  onKeyboardHeightChange(e) {
@@ -8,7 +8,9 @@ isComponent: true
8
8
 
9
9
  ## 引入
10
10
 
11
- 可在 `main.ts` 或在需要使用的页面或组件中引入。
11
+ 推荐使用 easycom 模式引入组件,配置后无需手动 import 即可直接在模板中使用 `<t-link />`。详细配置请参考 [快速开始](../getting-started)。
12
+
13
+ 如需手动引入:
12
14
 
13
15
  ```js
14
16
  import TLink from '@tdesign/uniapp/link/link.vue';
@@ -8,7 +8,9 @@ isComponent: true
8
8
 
9
9
  ## 引入
10
10
 
11
- 可在 `main.ts` 或在需要使用的页面或组件中引入。
11
+ 推荐使用 easycom 模式引入组件,配置后无需手动 import 即可直接在模板中使用 `<t-loading />`。详细配置请参考 [快速开始](../getting-started)。
12
+
13
+ 如需手动引入:
12
14
 
13
15
 
14
16
  ```js
@@ -8,7 +8,9 @@ isComponent: true
8
8
 
9
9
  ## 引入
10
10
 
11
- 可在 `main.ts` 或在需要使用的页面或组件中引入。
11
+ 推荐使用 easycom 模式引入组件,配置后无需手动 import 即可直接在模板中使用 `<t-message />`。详细配置请参考 [快速开始](../getting-started)。
12
+
13
+ 如需手动引入:
12
14
 
13
15
  ```js
14
16
  import TMessage from '@tdesign/uniapp/message/message.vue';
@@ -16,10 +18,13 @@ import TMessage from '@tdesign/uniapp/message/message.vue';
16
18
 
17
19
  ### 引入 API
18
20
 
19
- 若以 API 形式调用 Message,则需在页面 `page.js` 中引入组件 API:
21
+ 若以 API 形式调用 Message,则需在页面中引入组件 API:
20
22
 
21
23
  ```js
22
- import Message from '@tdesign/uniapp/message/index';
24
+ // MessagePlugin 和 Message 均可使用
25
+ import { MessagePlugin } from '@tdesign/uniapp';
26
+ // 或
27
+ // import { Message } from '@tdesign/uniapp';
23
28
  ```
24
29
 
25
30
  ### 组件类型
@@ -0,0 +1,19 @@
1
+ interface Bus {
2
+ on(evtName: string, listener: (...args: any[]) => void): void;
3
+ once(evtName: string, listener: (...args: any[]) => void): void;
4
+ emit(evtName: string, ...args: any[]): void;
5
+ off(evtName: string, listener?: (...args: any[]) => void): void;
6
+ }
7
+
8
+ export declare const bus: Bus;
9
+ export declare const PAGE_SCROLL_EVENT_NAME: string;
10
+
11
+ declare function pageScrollMixin(
12
+ funcName?: string,
13
+ useBus?: boolean,
14
+ ): Record<string, any>;
15
+
16
+ export default pageScrollMixin;
17
+
18
+ export declare function getScroller(el: Element, root?: Window): Element | Window;
19
+ export declare function handlePageScroll(e: any): Bus;
@@ -1,4 +1,4 @@
1
- import { getCurrentPage } from '../common/utils.js';
1
+ import { getCurrentPage } from '../common/utils';
2
2
 
3
3
  export default {
4
4
  data() {
@@ -8,7 +8,9 @@ isComponent: true
8
8
 
9
9
  ## 引入
10
10
 
11
- 可在 `main.ts` 或在需要使用的页面或组件中引入。
11
+ 推荐使用 easycom 模式引入组件,配置后无需手动 import 即可直接在模板中使用 `<t-navbar />`。详细配置请参考 [快速开始](../getting-started)。
12
+
13
+ 如需手动引入:
12
14
 
13
15
  ```js
14
16
  import TNavbar from '@tdesign/uniapp/navbar/navbar.vue';
@@ -9,7 +9,9 @@ isComponent: true
9
9
 
10
10
  ## 引入
11
11
 
12
- 可在 `main.ts` 或在需要使用的页面或组件中引入。
12
+ 推荐使用 easycom 模式引入组件,配置后无需手动 import 即可直接在模板中使用 `<t-notice-bar />`。详细配置请参考 [快速开始](../getting-started)。
13
+
14
+ 如需手动引入:
13
15
 
14
16
  ```js
15
17
  import TNoticeBar from '@tdesign/uniapp/notice-bar/notice-bar.vue';
@@ -9,7 +9,9 @@ isComponent: true
9
9
 
10
10
  ## 引入
11
11
 
12
- 可在 `main.ts` 或在需要使用的页面或组件中引入。
12
+ 推荐使用 easycom 模式引入组件,配置后无需手动 import 即可直接在模板中使用 `<t-overlay />`。详细配置请参考 [快速开始](../getting-started)。
13
+
14
+ 如需手动引入:
13
15
 
14
16
  ```js
15
17
  import TOverlay from '@tdesign/uniapp/overlay/overlay.vue';
@@ -8,7 +8,9 @@ isComponent: true
8
8
 
9
9
  ## 引入
10
10
 
11
- 可在 `main.ts` 或在需要使用的页面或组件中引入。
11
+ 推荐使用 easycom 模式引入组件,配置后无需手动 import 即可直接在模板中使用 `<t-picker />`。详细配置请参考 [快速开始](../getting-started)。
12
+
13
+ 如需手动引入:
12
14
 
13
15
  ```js
14
16
  import TPicker from '@tdesign/uniapp/picker/picker.vue';
@@ -8,7 +8,9 @@ isComponent: true
8
8
 
9
9
  ## 引入
10
10
 
11
- 可在 `main.ts` 或在需要使用的页面或组件中引入。
11
+ 推荐使用 easycom 模式引入组件,配置后无需手动 import 即可直接在模板中使用 `<t-popover />`。详细配置请参考 [快速开始](../getting-started)。
12
+
13
+ 如需手动引入:
12
14
 
13
15
  ```js
14
16
  import TPopover from '@tdesign/uniapp/popover/popover.vue';
@@ -9,7 +9,9 @@ isComponent: true
9
9
 
10
10
  ## 引入
11
11
 
12
- 可在 `main.ts` 或在需要使用的页面或组件中引入。
12
+ 推荐使用 easycom 模式引入组件,配置后无需手动 import 即可直接在模板中使用 `<t-popup />`。详细配置请参考 [快速开始](../getting-started)。
13
+
14
+ 如需手动引入:
13
15
 
14
16
  ```js
15
17
  import TPopup from '@tdesign/uniapp/popup/popup.vue';
@@ -9,9 +9,9 @@ isComponent: true
9
9
 
10
10
  ## 引入
11
11
 
12
- ### 引入组件
12
+ 推荐使用 easycom 模式引入组件,配置后无需手动 import 即可直接在模板中使用 `<t-progress />`。详细配置请参考 [快速开始](../getting-started)。
13
13
 
14
- 可在 `main.ts` 或在需要使用的页面或组件中引入。
14
+ 如需手动引入:
15
15
 
16
16
  ```js
17
17
  import TProgress from '@tdesign/uniapp/progress/progress.vue';
@@ -9,7 +9,9 @@ isComponent: true
9
9
 
10
10
  ## 引入
11
11
 
12
- 可在 `main.ts` 或在需要使用的页面或组件中引入。
12
+ 推荐使用 easycom 模式引入组件,配置后无需手动 import 即可直接在模板中使用 `<t-pull-down-refresh />`。详细配置请参考 [快速开始](../getting-started)。
13
+
14
+ 如需手动引入:
13
15
 
14
16
  ```js
15
17
  import TPullDownRefresh from '@tdesign/uniapp/pull-down-refresh/pull-down-refresh.vue';
@@ -7,7 +7,9 @@ isComponent: true
7
7
 
8
8
  ## 引入
9
9
 
10
- 可在 `main.ts` 或在需要使用的页面或组件中引入。
10
+ 推荐使用 easycom 模式引入组件,配置后无需手动 import 即可直接在模板中使用 `<t-qrcode />`。详细配置请参考 [快速开始](../getting-started)。
11
+
12
+ 如需手动引入:
11
13
 
12
14
  ```js
13
15
  import TQRCode from '@tdesign/uniapp/qrcode/qrcode.vue';
@@ -9,7 +9,9 @@ isComponent: true
9
9
 
10
10
  ## 引入
11
11
 
12
- 可在 `main.ts` 或在需要使用的页面或组件中引入。
12
+ 推荐使用 easycom 模式引入组件,配置后无需手动 import 即可直接在模板中使用 `<t-radio />`。详细配置请参考 [快速开始](../getting-started)。
13
+
14
+ 如需手动引入:
13
15
 
14
16
  ```js
15
17
  import TRadio from '@tdesign/uniapp/radio/radio.vue';
@@ -8,7 +8,9 @@ isComponent: true
8
8
 
9
9
  ## 引入
10
10
 
11
- 可在 `main.ts` 或在需要使用的页面或组件中引入。
11
+ 推荐使用 easycom 模式引入组件,配置后无需手动 import 即可直接在模板中使用 `<t-rate />`。详细配置请参考 [快速开始](../getting-started)。
12
+
13
+ 如需手动引入:
12
14
 
13
15
  ```js
14
16
  import TRate from '@tdesign/uniapp/rate/rate.vue';
@@ -60,6 +60,7 @@
60
60
  box-shadow: var(--td-shadow-1, 0 1px 10px rgba(0, 0, 0, 0.05), 0 4px 5px rgba(0, 0, 0, 0.08), 0 2px 4px -1px rgba(0, 0, 0, 0.12));
61
61
  background-color: var(--td-bg-color-container, var(--td-font-white-1, #ffffff));
62
62
  transform: translateX(-50%);
63
+ z-index: 2;
63
64
  }
64
65
  .t-rate__tips--bottom {
65
66
  top: calc(100% + 16rpx);
@@ -9,7 +9,9 @@ isComponent: true
9
9
 
10
10
  ## 引入
11
11
 
12
- 可在 `main.ts` 或在需要使用的页面或组件中引入。
12
+ 推荐使用 easycom 模式引入组件,配置后无需手动 import 即可直接在模板中使用 `<t-result />`。详细配置请参考 [快速开始](../getting-started)。
13
+
14
+ 如需手动引入:
13
15
 
14
16
  ```js
15
17
  import TResult from '@tdesign/uniapp/result/result.vue';
@@ -9,7 +9,9 @@ isComponent: true
9
9
 
10
10
  ## 引入
11
11
 
12
- 可在 `main.ts` 或在需要使用的页面或组件中引入。
12
+ 推荐使用 easycom 模式引入组件,配置后无需手动 import 即可直接在模板中使用 `<t-search />`。详细配置请参考 [快速开始](../getting-started)。
13
+
14
+ 如需手动引入:
13
15
 
14
16
  ```js
15
17
  import TSearch from '@tdesign/uniapp/search/search.vue';
@@ -67,6 +67,11 @@
67
67
  :deep(.t-search__result-item--highLight) {
68
68
  color: var(--td-search-result-high-light-color, var(--td-brand-color, var(--td-primary-color-7, #0052d9)));
69
69
  }
70
+ .t-search__result-list {
71
+ max-height: 560rpx;
72
+ overflow-y: auto;
73
+ -webkit-overflow-scrolling: touch;
74
+ }
70
75
  .t-search__result-list :deep(.t-search__result-item) {
71
76
  padding-left: 0;
72
77
  }
@@ -77,7 +77,7 @@
77
77
  />
78
78
  </view>
79
79
  <view
80
- v-if="isShowResultList && !isSelected"
80
+ v-if="isSearching && resultList.length > 0 && !isSelected"
81
81
  :class="classPrefix + '__result-list'"
82
82
  aria-role="listbox"
83
83
  >
@@ -142,8 +142,8 @@ export default {
142
142
  return {
143
143
  classPrefix: name,
144
144
  prefix,
145
- isShowResultList: false,
146
145
  isSelected: false,
146
+ isSearching: false,
147
147
  showClearIcon: false,
148
148
  tools,
149
149
 
@@ -156,16 +156,8 @@ export default {
156
156
  resultList: {
157
157
  handler(val) {
158
158
  const { isSelected } = this;
159
- if (val.length) {
160
- if (isSelected) {
161
- // 已选择
162
- this.isShowResultList = false;
163
- this.isSelected = false;
164
- } else {
165
- this.isShowResultList = true;
166
- }
167
- } else {
168
- this.isShowResultList = false;
159
+ if (val.length && isSelected) {
160
+ this.isSelected = false;
169
161
  }
170
162
  },
171
163
  immediate: true,
@@ -231,6 +223,7 @@ export default {
231
223
 
232
224
  onFocus(e) {
233
225
  const { value } = e.detail;
226
+ this.isSearching = true;
234
227
  this.updateClearIconVisible(true);
235
228
  this.$emit('focus', { value });
236
229
  },
@@ -243,6 +236,7 @@ export default {
243
236
 
244
237
  handleClear() {
245
238
  this.dataValue = '';
239
+ this.isSearching = false;
246
240
  this.$emit('clear', { value: '' });
247
241
  this.$emit('change', {
248
242
  value: '',
@@ -256,6 +250,7 @@ export default {
256
250
  },
257
251
 
258
252
  onActionClick() {
253
+ this.isSearching = false;
259
254
  this.$emit('action-click');
260
255
  },
261
256
 
@@ -0,0 +1,42 @@
1
+ :: BASE_DOC ::
2
+
3
+ ## API
4
+
5
+ ### Segmented Props
6
+
7
+ name | type | default | description | required
8
+ -- | -- | -- | -- | --
9
+ custom-style | Object | - | CSS(Cascading Style Sheets) | N
10
+ block | Boolean | false | \- | N
11
+ disabled | Boolean | - | \- | N
12
+ options | Object | [] | Typescript: `string[] \| number[] \| SegmentedItem[] ` `interface SegmentedItem { value: string \| number; label?: string; icon?: string \| object; disabled?: boolean }`。[see more ts definition](https://github.com/tencent/tdesign-miniprogram/blob/develop/packages/uniapp-components/segmented/type.ts) | N
13
+ value | String / Number | - | `v-model:value` is supported | N
14
+ default-value | String / Number | - | uncontrolled property | N
15
+
16
+ ### Segmented Events
17
+
18
+ name | params | description
19
+ -- | -- | --
20
+ change | `(context: { value: string \| number, selectedOption: SegmentedItem })` | \-
21
+
22
+ ### Segmented External Classes
23
+
24
+ className | Description
25
+ -- | --
26
+ t-class | \-
27
+ t-class-item | \-
28
+ t-class-thumb | \-
29
+
30
+ ### CSS Variables
31
+
32
+ The component provides the following CSS variables, which can be used to customize styles.
33
+ Name | Default Value | Description
34
+ -- | -- | --
35
+ --td-font-size-m | 32rpx | -
36
+ --td-segmented-bg-color | @bg-color-component-disabled | -
37
+ --td-segmented-item-active-bg | @bg-color-container | -
38
+ --td-segmented-item-active-color | @brand-color | -
39
+ --td-segmented-item-color | @text-color-primary | -
40
+ --td-segmented-item-disabled-color | @text-color-disabled | -
41
+ --td-segmented-item-label-font | @font-body-medium | -
42
+ --td-segmented-transition | all @anim-duration-base @anim-time-fn-easing | -
@@ -0,0 +1,75 @@
1
+ ---
2
+ title: Segmented 分段控制器
3
+ description: 用于展示多个选项并允许用户选择其中单个选项。
4
+ spline: data
5
+ isComponent: true
6
+ ---
7
+
8
+
9
+ ## 引入
10
+
11
+ 推荐使用 easycom 模式引入组件,配置后无需手动 import 即可直接在模板中使用 `<t-segmented />`。详细配置请参考 [快速开始](../getting-started)。
12
+
13
+ 如需手动引入:
14
+
15
+ ```js
16
+ import TSegmented from '@tdesign/uniapp/segmented/segmented.vue';
17
+ ```
18
+
19
+ ### 组件类型
20
+
21
+ 基础
22
+
23
+ {{ base }}
24
+
25
+ 自适应宽度
26
+
27
+ {{ block }}
28
+
29
+ ### 组件状态
30
+
31
+ 控制器禁用态
32
+
33
+ {{ disabled }}
34
+
35
+
36
+ ## API
37
+
38
+ ### Segmented Props
39
+
40
+ 名称 | 类型 | 默认值 | 描述 | 必传
41
+ -- | -- | -- | -- | --
42
+ custom-style | Object | - | 自定义样式 | N
43
+ block | Boolean | false | 是否撑满父元素宽度 | N
44
+ disabled | Boolean | - | 是否禁用 | N
45
+ options | Object | [] | 数据化配置选项内容。TS 类型:`string[] \| number[] \| SegmentedItem[] ` `interface SegmentedItem { value: string \| number; label?: string; icon?: string \| object; disabled?: boolean }`。[详细类型定义](https://github.com/tencent/tdesign-miniprogram/blob/develop/packages/uniapp-components/segmented/type.ts) | N
46
+ value | String / Number | - | 当前选中的值。支持语法糖 `v-model:value` | N
47
+ default-value | String / Number | - | 当前选中的值。非受控属性 | N
48
+
49
+ ### Segmented Events
50
+
51
+ 名称 | 参数 | 描述
52
+ -- | -- | --
53
+ change | `(context: { value: string \| number, selectedOption: SegmentedItem })` | 选项值发生变化时触发
54
+
55
+ ### Segmented External Classes
56
+
57
+ 类名 | 描述
58
+ -- | --
59
+ t-class | 根节点样式类
60
+ t-class-item | 列表子项样式类
61
+ t-class-thumb | 动画背景样式类
62
+
63
+ ### CSS Variables
64
+
65
+ 组件提供了下列 CSS 变量,可用于自定义样式。
66
+ 名称 | 默认值 | 描述
67
+ -- | -- | --
68
+ --td-font-size-m | 32rpx | -
69
+ --td-segmented-bg-color | @bg-color-component-disabled | -
70
+ --td-segmented-item-active-bg | @bg-color-container | -
71
+ --td-segmented-item-active-color | @brand-color | -
72
+ --td-segmented-item-color | @text-color-primary | -
73
+ --td-segmented-item-disabled-color | @text-color-disabled | -
74
+ --td-segmented-item-label-font | @font-body-medium | -
75
+ --td-segmented-transition | all @anim-duration-base @anim-time-fn-easing | -