@tdesign/uniapp 0.8.1 → 0.9.1

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 (287) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/dist/action-sheet/README.en-US.md +4 -3
  3. package/dist/action-sheet/README.md +4 -3
  4. package/dist/action-sheet/action-sheet.vue +16 -12
  5. package/dist/action-sheet/computed.js +1 -1
  6. package/dist/action-sheet/props.ts +5 -0
  7. package/dist/action-sheet/type.ts +6 -1
  8. package/dist/avatar/README.en-US.md +1 -1
  9. package/dist/avatar/README.md +1 -1
  10. package/dist/avatar/avatar.vue +10 -9
  11. package/dist/avatar-group/avatar-group.vue +4 -4
  12. package/dist/back-top/README.en-US.md +1 -1
  13. package/dist/back-top/README.md +1 -1
  14. package/dist/back-top/back-top.vue +5 -4
  15. package/dist/badge/README.en-US.md +2 -1
  16. package/dist/badge/README.md +2 -1
  17. package/dist/badge/badge.css +1 -1
  18. package/dist/badge/badge.vue +4 -2
  19. package/dist/button/README.en-US.md +1 -1
  20. package/dist/button/README.md +1 -1
  21. package/dist/button/button.vue +17 -11
  22. package/dist/calendar/README.en-US.md +1 -1
  23. package/dist/calendar/README.md +1 -1
  24. package/dist/calendar/calendar-header.vue +2 -1
  25. package/dist/calendar/calendar.vue +15 -9
  26. package/dist/calendar/template.vue +12 -9
  27. package/dist/cascader/README.en-US.md +1 -1
  28. package/dist/cascader/README.md +1 -1
  29. package/dist/cascader/cascader.vue +8 -8
  30. package/dist/cell/README.en-US.md +1 -1
  31. package/dist/cell/README.md +1 -1
  32. package/dist/cell/cell.vue +34 -36
  33. package/dist/cell-group/cell-group.vue +5 -3
  34. package/dist/check-tag/check-tag.vue +6 -3
  35. package/dist/checkbox/README.en-US.md +1 -1
  36. package/dist/checkbox/README.md +1 -1
  37. package/dist/checkbox/checkbox.vue +5 -4
  38. package/dist/checkbox-group/checkbox-group.vue +5 -3
  39. package/dist/col/col.vue +7 -3
  40. package/dist/collapse/README.en-US.md +1 -1
  41. package/dist/collapse/README.md +1 -1
  42. package/dist/collapse/collapse.vue +6 -4
  43. package/dist/collapse-panel/collapse-panel.vue +15 -6
  44. package/dist/color-picker/README.en-US.md +1 -1
  45. package/dist/color-picker/README.md +1 -1
  46. package/dist/color-picker/color-picker.vue +9 -7
  47. package/dist/color-picker/template.vue +2 -1
  48. package/dist/common/canvas/index.js +1 -1
  49. package/dist/common/shared/color-picker/color.js +1 -0
  50. package/dist/common/src/instantiationDecorator.js +1 -1
  51. package/dist/common/style/theme/index-light.css +282 -0
  52. package/dist/common/style/theme/index-light.less +9 -0
  53. package/dist/common/style/theme/raw/_components-light.less +8 -0
  54. package/dist/common/style/theme/raw/_light-only.less +181 -0
  55. package/dist/common/version.js +1 -1
  56. package/dist/config-provider/config-provider.vue +3 -1
  57. package/dist/count-down/README.en-US.md +1 -1
  58. package/dist/count-down/README.md +1 -1
  59. package/dist/count-down/count-down.vue +5 -3
  60. package/dist/date-time-picker/README.en-US.md +1 -1
  61. package/dist/date-time-picker/README.md +1 -1
  62. package/dist/date-time-picker/date-time-picker.vue +8 -6
  63. package/dist/date-time-picker/locale/dayjs.js +6 -6
  64. package/dist/demo-navbar/demo-navbar.vue +1 -1
  65. package/dist/dialog/README.en-US.md +1 -1
  66. package/dist/dialog/README.md +1 -1
  67. package/dist/dialog/dialog.vue +10 -7
  68. package/dist/dialog/index.js +2 -1
  69. package/dist/divider/README.en-US.md +1 -1
  70. package/dist/divider/README.md +1 -1
  71. package/dist/divider/divider.vue +4 -2
  72. package/dist/draggable/draggable.vue +5 -2
  73. package/dist/drawer/README.en-US.md +1 -1
  74. package/dist/drawer/README.md +1 -1
  75. package/dist/drawer/drawer.vue +7 -5
  76. package/dist/dropdown-item/dropdown-item.vue +16 -11
  77. package/dist/dropdown-menu/README.en-US.md +1 -1
  78. package/dist/dropdown-menu/README.md +1 -1
  79. package/dist/dropdown-menu/dropdown-menu.vue +11 -9
  80. package/dist/empty/README.en-US.md +1 -1
  81. package/dist/empty/README.md +1 -1
  82. package/dist/empty/empty.vue +5 -4
  83. package/dist/fab/README.en-US.md +1 -1
  84. package/dist/fab/README.md +1 -1
  85. package/dist/fab/fab.vue +9 -6
  86. package/dist/fab/props.ts +1 -1
  87. package/dist/fab/type.ts +1 -1
  88. package/dist/footer/README.en-US.md +1 -1
  89. package/dist/footer/README.md +1 -1
  90. package/dist/footer/footer.vue +8 -7
  91. package/dist/form/README.en-US.md +3 -1
  92. package/dist/form/README.md +3 -1
  93. package/dist/form/form.vue +4 -2
  94. package/dist/form/props.ts +9 -0
  95. package/dist/form/type.ts +5 -0
  96. package/dist/form-item/README.en-US.md +2 -1
  97. package/dist/form-item/README.md +2 -1
  98. package/dist/form-item/form-item.css +2 -2
  99. package/dist/form-item/form-item.vue +36 -27
  100. package/dist/form-item/props.ts +8 -0
  101. package/dist/form-item/type.ts +4 -0
  102. package/dist/grid/README.en-US.md +1 -1
  103. package/dist/grid/README.md +1 -1
  104. package/dist/grid/grid.vue +4 -3
  105. package/dist/grid-item/README.en-US.md +1 -1
  106. package/dist/grid-item/README.md +1 -1
  107. package/dist/grid-item/grid-item.vue +8 -6
  108. package/dist/guide/README.en-US.md +1 -1
  109. package/dist/guide/README.md +1 -1
  110. package/dist/guide/guide.vue +8 -7
  111. package/dist/icon/icon.vue +5 -2
  112. package/dist/image/README.en-US.md +1 -1
  113. package/dist/image/README.md +1 -1
  114. package/dist/image/image.vue +6 -5
  115. package/dist/image-viewer/README.en-US.md +4 -3
  116. package/dist/image-viewer/README.md +4 -3
  117. package/dist/image-viewer/image-viewer.css +12 -0
  118. package/dist/image-viewer/image-viewer.vue +84 -21
  119. package/dist/image-viewer/props.ts +5 -0
  120. package/dist/image-viewer/type.ts +6 -1
  121. package/dist/indexes/README.en-US.md +1 -1
  122. package/dist/indexes/README.md +1 -1
  123. package/dist/indexes/computed.js +6 -2
  124. package/dist/indexes/indexes.css +7 -2
  125. package/dist/indexes/indexes.vue +8 -5
  126. package/dist/indexes/props.ts +5 -0
  127. package/dist/indexes/type.ts +5 -0
  128. package/dist/indexes-anchor/README.en-US.md +1 -1
  129. package/dist/indexes-anchor/README.md +1 -1
  130. package/dist/indexes-anchor/indexes-anchor.vue +5 -3
  131. package/dist/input/README.en-US.md +1 -1
  132. package/dist/input/README.md +1 -1
  133. package/dist/input/input.vue +9 -7
  134. package/dist/link/README.en-US.md +1 -1
  135. package/dist/link/README.md +1 -1
  136. package/dist/link/link.vue +6 -3
  137. package/dist/loading/README.en-US.md +1 -1
  138. package/dist/loading/README.md +1 -1
  139. package/dist/loading/loading.vue +4 -2
  140. package/dist/message/index.js +2 -1
  141. package/dist/message/message.vue +4 -3
  142. package/dist/message-item/index.js +1 -1
  143. package/dist/message-item/message-item.vue +7 -5
  144. package/dist/mixins/page-scroll.js +1 -1
  145. package/dist/mixins/using-config.js +1 -1
  146. package/dist/mixins/using-custom-navbar.js +1 -1
  147. package/dist/navbar/README.en-US.md +1 -1
  148. package/dist/navbar/README.md +2 -2
  149. package/dist/navbar/navbar.vue +5 -4
  150. package/dist/notice-bar/README.en-US.md +1 -1
  151. package/dist/notice-bar/README.md +1 -1
  152. package/dist/notice-bar/notice-bar.vue +4 -3
  153. package/dist/overlay/README.en-US.md +1 -1
  154. package/dist/overlay/README.md +1 -1
  155. package/dist/overlay/overlay.vue +6 -3
  156. package/dist/picker/README.en-US.md +1 -1
  157. package/dist/picker/README.md +1 -1
  158. package/dist/picker/picker.vue +11 -9
  159. package/dist/picker-item/README.en-US.md +1 -1
  160. package/dist/picker-item/README.md +1 -1
  161. package/dist/picker-item/picker-item.vue +6 -5
  162. package/dist/popover/README.en-US.md +1 -1
  163. package/dist/popover/README.md +1 -1
  164. package/dist/popover/popover.vue +8 -5
  165. package/dist/popup/README.en-US.md +1 -1
  166. package/dist/popup/README.md +1 -1
  167. package/dist/popup/popup.vue +8 -5
  168. package/dist/progress/README.en-US.md +1 -1
  169. package/dist/progress/README.md +1 -1
  170. package/dist/progress/progress.vue +5 -4
  171. package/dist/pull-down-refresh/README.en-US.md +1 -1
  172. package/dist/pull-down-refresh/README.md +1 -1
  173. package/dist/pull-down-refresh/pull-down-refresh.vue +7 -5
  174. package/dist/qrcode/components/qrcode-canvas/qrcode-canvas.vue +8 -7
  175. package/dist/qrcode/components/qrcode-status/qrcode-status.vue +2 -1
  176. package/dist/qrcode/qrcode.vue +5 -3
  177. package/dist/radio/README.en-US.md +1 -1
  178. package/dist/radio/README.md +1 -1
  179. package/dist/radio/radio.vue +5 -4
  180. package/dist/radio-group/radio-group.vue +5 -4
  181. package/dist/rate/README.en-US.md +1 -1
  182. package/dist/rate/README.md +1 -1
  183. package/dist/rate/rate.vue +8 -5
  184. package/dist/result/README.en-US.md +1 -1
  185. package/dist/result/README.md +1 -1
  186. package/dist/result/result.vue +5 -4
  187. package/dist/row/row.vue +7 -3
  188. package/dist/scroll-view/scroll-view.vue +1 -1
  189. package/dist/search/README.en-US.md +1 -1
  190. package/dist/search/README.md +1 -1
  191. package/dist/search/search.css +5 -0
  192. package/dist/search/search.vue +21 -21
  193. package/dist/segmented/README.en-US.md +42 -0
  194. package/dist/segmented/README.md +75 -0
  195. package/dist/segmented/props.ts +31 -0
  196. package/dist/segmented/segmented.css +66 -0
  197. package/dist/segmented/segmented.vue +177 -0
  198. package/dist/segmented/type.ts +41 -0
  199. package/dist/side-bar/README.en-US.md +1 -1
  200. package/dist/side-bar/README.md +1 -1
  201. package/dist/side-bar/side-bar.vue +5 -3
  202. package/dist/side-bar-item/side-bar-item.vue +7 -6
  203. package/dist/skeleton/README.en-US.md +1 -1
  204. package/dist/skeleton/README.md +1 -1
  205. package/dist/skeleton/skeleton.vue +6 -3
  206. package/dist/slider/README.en-US.md +1 -1
  207. package/dist/slider/README.md +1 -1
  208. package/dist/slider/slider.vue +7 -5
  209. package/dist/step-item/step-item.vue +5 -4
  210. package/dist/stepper/README.en-US.md +1 -1
  211. package/dist/stepper/README.md +1 -1
  212. package/dist/stepper/stepper.vue +5 -3
  213. package/dist/steps/README.en-US.md +1 -1
  214. package/dist/steps/README.md +1 -1
  215. package/dist/steps/steps.vue +5 -3
  216. package/dist/sticky/sticky.vue +4 -3
  217. package/dist/swipe-cell/swipe-cell.vue +7 -5
  218. package/dist/swiper/README.en-US.md +1 -1
  219. package/dist/swiper/README.md +1 -1
  220. package/dist/swiper/swiper.vue +7 -5
  221. package/dist/swiper-nav/swiper-nav.vue +6 -3
  222. package/dist/switch/README.en-US.md +1 -1
  223. package/dist/switch/README.md +1 -1
  224. package/dist/switch/switch.vue +5 -4
  225. package/dist/tab-bar/README.en-US.md +1 -1
  226. package/dist/tab-bar/README.md +1 -1
  227. package/dist/tab-bar/tab-bar.vue +5 -3
  228. package/dist/tab-bar-item/tab-bar-item.vue +10 -10
  229. package/dist/tab-panel/tab-panel.vue +5 -3
  230. package/dist/table/README.en-US.md +72 -0
  231. package/dist/table/README.md +117 -0
  232. package/dist/table/base-table-props.ts +105 -0
  233. package/dist/table/props.ts +94 -0
  234. package/dist/table/table.css +251 -0
  235. package/dist/table/table.vue +582 -0
  236. package/dist/table/type.ts +180 -0
  237. package/dist/tabs/README.en-US.md +1 -1
  238. package/dist/tabs/README.md +1 -1
  239. package/dist/tabs/tabs.css +4 -0
  240. package/dist/tabs/tabs.vue +11 -9
  241. package/dist/tag/README.en-US.md +1 -1
  242. package/dist/tag/README.md +1 -1
  243. package/dist/tag/tag.vue +6 -3
  244. package/dist/textarea/README.en-US.md +1 -1
  245. package/dist/textarea/README.md +1 -1
  246. package/dist/textarea/textarea.vue +6 -3
  247. package/dist/theme-light.css +282 -0
  248. package/dist/theme-light.css.d.ts +2 -0
  249. package/dist/theme-light.less +1 -0
  250. package/dist/theme-light.less.d.ts +2 -0
  251. package/dist/toast/README.en-US.md +1 -1
  252. package/dist/toast/README.md +1 -1
  253. package/dist/toast/toast.vue +8 -7
  254. package/dist/transition/transition.vue +2 -2
  255. package/dist/tree-select/README.en-US.md +1 -1
  256. package/dist/tree-select/README.md +1 -1
  257. package/dist/tree-select/tree-select.vue +14 -9
  258. package/dist/types/action-sheet.d.ts +1 -1
  259. package/dist/types/avatar-group.d.ts +1 -1
  260. package/dist/types/avatar.d.ts +1 -1
  261. package/dist/types/back-top.d.ts +1 -1
  262. package/dist/types/badge.d.ts +1 -1
  263. package/dist/types/button.d.ts +1 -1
  264. package/dist/types/calendar.d.ts +1 -1
  265. package/dist/types/cascader.d.ts +1 -1
  266. package/dist/types/cell-group.d.ts +1 -1
  267. package/dist/types/cell.d.ts +1 -1
  268. package/dist/types/check-tag.d.ts +1 -1
  269. package/dist/types/checkbox-group.d.ts +1 -1
  270. package/dist/types/checkbox.d.ts +1 -1
  271. package/dist/types/col.d.ts +1 -1
  272. package/dist/types/collapse-panel.d.ts +1 -1
  273. package/dist/types/collapse.d.ts +1 -1
  274. package/dist/types/color-picker.d.ts +1 -1
  275. package/dist/types/index.d.ts +2 -0
  276. package/dist/types/segmented.d.ts +7 -0
  277. package/dist/types/table.d.ts +7 -0
  278. package/dist/upload/README.en-US.md +1 -1
  279. package/dist/upload/README.md +1 -1
  280. package/dist/upload/upload.vue +32 -32
  281. package/dist/watermark/README.en-US.md +1 -1
  282. package/dist/watermark/README.md +1 -1
  283. package/dist/watermark/utils/generateBase64Url.js +6 -6
  284. package/dist/watermark/watermark.vue +4 -3
  285. package/global.d.ts +2 -0
  286. package/package.json +33 -9
  287. package/{dist/script → script}/postinstall.js +18 -2
@@ -0,0 +1,31 @@
1
+ /* eslint-disable */
2
+
3
+ /**
4
+ * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC
5
+ * */
6
+
7
+ import type { TdSegmentedProps } from './type';
8
+ export default {
9
+ /** 是否撑满父元素宽度 */
10
+ block: Boolean,
11
+ /** 是否禁用 */
12
+ disabled: Boolean,
13
+ /** 数据化配置选项内容 */
14
+ options: {
15
+ type: Object,
16
+ default: (): TdSegmentedProps['options'] => [],
17
+ },
18
+ /** 当前选中的值 */
19
+ value: {
20
+ type: [String, Number],
21
+ },
22
+ /** 当前选中的值,非受控属性 */
23
+ defaultValue: {
24
+ type: [String, Number],
25
+ },
26
+ /** 选项值发生变化时触发 */
27
+ onChange: {
28
+ type: Function,
29
+ default: () => ({}),
30
+ },
31
+ };
@@ -0,0 +1,66 @@
1
+ .t-segmented {
2
+ display: inline-block;
3
+ padding: calc(var(--td-spacer, 16rpx) / 4);
4
+ background-color: var(--td-segmented-bg-color, var(--td-bg-color-component-disabled, var(--td-gray-color-2, #eeeeee)));
5
+ border-radius: calc(var(--td-spacer, 16rpx) / 2);
6
+ }
7
+ .t-segmented--block {
8
+ display: flex;
9
+ width: 100%;
10
+ }
11
+ .t-segmented--block .t-segmented__item {
12
+ flex: 1;
13
+ min-width: 0;
14
+ }
15
+ .t-segmented--block .t-segmented__item-inner {
16
+ overflow: hidden;
17
+ text-overflow: ellipsis;
18
+ }
19
+ .t-segmented__group {
20
+ position: relative;
21
+ display: flex;
22
+ align-items: stretch;
23
+ justify-items: flex-start;
24
+ width: 100%;
25
+ }
26
+ .t-segmented__thumb {
27
+ position: absolute;
28
+ top: 0;
29
+ left: 0;
30
+ height: 100%;
31
+ background-color: var(--td-segmented-item-active-bg, var(--td-bg-color-container, var(--td-font-white-1, #ffffff)));
32
+ border-radius: calc(var(--td-spacer, 16rpx) / 2);
33
+ transition: var(--td-segmented-transition, all var(--td-anim-duration-base, 0.2s) var(--td-anim-time-fn-easing, cubic-bezier(0.38, 0, 0.24, 1)));
34
+ will-change: transform, width;
35
+ }
36
+ .t-segmented__item {
37
+ position: relative;
38
+ z-index: 1;
39
+ flex: none;
40
+ padding: calc(var(--td-spacer-1, 24rpx) / 4) var(--td-spacer-1, 24rpx);
41
+ text-align: center;
42
+ cursor: pointer;
43
+ font: var(--td-segmented-item-label-font, var(--td-font-body-medium, 28rpx / 44rpx var(--td-font-family, PingFang SC, Microsoft YaHei, Arial Regular)));
44
+ color: var(--td-segmented-item-color, var(--td-text-color-primary, var(--td-font-gray-1, rgba(0, 0, 0, 0.9))));
45
+ }
46
+ .t-segmented__item-inner {
47
+ display: flex;
48
+ align-items: center;
49
+ justify-content: center;
50
+ white-space: nowrap;
51
+ }
52
+ :deep(.t-segmented__item-icon:not(:empty)) {
53
+ margin-right: calc(var(--td-spacer, 16rpx) / 2);
54
+ }
55
+ .t-segmented__item-icon {
56
+ font-size: var(--td-font-size-m, 32rpx);
57
+ }
58
+ .t-segmented__item--active {
59
+ font-weight: 600;
60
+ color: var(--td-segmented-item-active-color, var(--td-brand-color, var(--td-primary-color-7, #0052d9)));
61
+ }
62
+ .t-segmented__item--disabled {
63
+ cursor: not-allowed;
64
+ pointer-events: none;
65
+ color: var(--td-segmented-item-disabled-color, var(--td-text-color-disabled, var(--td-font-gray-4, rgba(0, 0, 0, 0.26))));
66
+ }
@@ -0,0 +1,177 @@
1
+ <template>
2
+ <view
3
+ :class="'' + tools.cls(classPrefix, [['block', block]]) + ' ' + tClass"
4
+ :style="'' + tools._style([customStyle])"
5
+ >
6
+ <view :class="classPrefix + '__group'">
7
+ <!-- thumb 动画背景 -->
8
+ <view
9
+ :class="classPrefix + '__thumb ' + tClassThumb"
10
+ :style="thumbStyle"
11
+ />
12
+
13
+ <!-- 选项列表 -->
14
+ <view
15
+ v-for="(item, index) in segmentItems"
16
+ :key="index"
17
+ :class="'' + tools.cls(classPrefix + '__item', [
18
+ ['active', index === activeIndex],
19
+ ['disabled', disabled || item.disabled]
20
+ ]) + ' ' + classPrefix + '-item-' + index + ' ' + tClassItem"
21
+ @click="handleSelect(index)"
22
+ >
23
+ <view :class="classPrefix + '__item-inner'">
24
+ <block
25
+ v-if="item.icon"
26
+ name="icon"
27
+ >
28
+ <t-icon
29
+ :name="item.icon.name || item.icon"
30
+ :t-class="classPrefix + '__item-icon'"
31
+ />
32
+ </block>
33
+ <span
34
+ v-if="item.label"
35
+ :class="classPrefix + '__item-label'"
36
+ >{{ item.label }}</span>
37
+ </view>
38
+ </view>
39
+ </view>
40
+ </view>
41
+ </template>
42
+ <script>
43
+ import { prefix } from '../common/config';
44
+ import { uniComponent } from '../common/src/index';
45
+
46
+
47
+ import { calcIcon, getRect, coalesce } from '../common/utils';
48
+ import tools from '../common/utils.wxs';
49
+ import TIcon from '../icon/icon';
50
+
51
+ import props from './props';
52
+
53
+ const name = `${prefix}-segmented`;
54
+
55
+ export default {
56
+ components: {
57
+ TIcon,
58
+ },
59
+ ...uniComponent({
60
+ name,
61
+ options: {
62
+ styleIsolation: 'shared',
63
+ },
64
+ controlledProps: [
65
+ {
66
+ key: 'value',
67
+ event: 'change',
68
+ },
69
+ ],
70
+ externalClasses: [
71
+ `${prefix}-class`,
72
+ `${prefix}-class-thumb`,
73
+ `${prefix}-class-item`,
74
+ ],
75
+ props: {
76
+ ...props,
77
+ },
78
+ emits: ['change'],
79
+ data() {
80
+ return {
81
+ prefix,
82
+ classPrefix: name,
83
+ tools,
84
+ segmentItems: [],
85
+ activeIndex: -1,
86
+ thumbStyle: '',
87
+
88
+ dataValue: coalesce(this.value, this.defaultValue),
89
+ };
90
+ },
91
+ watch: {
92
+ options: {
93
+ handler(newOptions) {
94
+ this.updateOptions(newOptions);
95
+ },
96
+ immediate: true,
97
+ },
98
+ value: {
99
+ handler(val) {
100
+ this.dataValue = val;
101
+ },
102
+ },
103
+ dataValue: {
104
+ handler() {
105
+ this.updateActiveIndex();
106
+ },
107
+ immediate: true,
108
+ },
109
+ segmentItems() {
110
+ this.updateActiveIndex();
111
+ },
112
+ },
113
+ mounted() {
114
+ this.$nextTick(() => {
115
+ this.updateThumb();
116
+ });
117
+ },
118
+ methods: {
119
+ updateOptions(options) {
120
+ if (!options?.length) return;
121
+ const segmentItems = options.map((option) => {
122
+ if (typeof option === 'string' || typeof option === 'number') {
123
+ return { value: option, label: String(option) };
124
+ }
125
+ return {
126
+ ...option,
127
+ label: option.label ?? String(option.value),
128
+ icon: option.icon ? calcIcon(option.icon) : null,
129
+ };
130
+ });
131
+ this.segmentItems = segmentItems;
132
+ },
133
+
134
+ updateActiveIndex() {
135
+ const { dataValue, segmentItems } = this;
136
+ let activeIndex = -1;
137
+ if (dataValue != null) {
138
+ activeIndex = segmentItems.findIndex(item => item.value === dataValue);
139
+ }
140
+ if (activeIndex === this.activeIndex) return;
141
+ this.activeIndex = activeIndex;
142
+ this.$nextTick(() => {
143
+ this.updateThumb();
144
+ });
145
+ },
146
+
147
+ updateThumb() {
148
+ const { activeIndex, classPrefix } = this;
149
+ if (activeIndex < 0) return;
150
+ const groupClass = `.${classPrefix}__group`;
151
+ const itemClass = `.${classPrefix}-item-${activeIndex}`;
152
+ Promise.all([
153
+ getRect(this, itemClass),
154
+ getRect(this, groupClass),
155
+ ]).then(([itemRect, groupRect]) => {
156
+ if (itemRect && groupRect) {
157
+ const left = itemRect.left - groupRect.left;
158
+ this.thumbStyle = `width: ${itemRect.width}px; transform: translateX(${left}px);`;
159
+ }
160
+ });
161
+ },
162
+
163
+ handleSelect(index) {
164
+ const { segmentItems, activeIndex, disabled, options } = this;
165
+ const item = segmentItems[index];
166
+ if (disabled || !item || item.disabled) return;
167
+ if (index === activeIndex) return;
168
+ this._trigger('change', {
169
+ value: item.value,
170
+ selectedOption: options[index],
171
+ });
172
+ },
173
+ },
174
+ }),
175
+ };
176
+ </script>
177
+ <style scoped src="./segmented.css"></style>
@@ -0,0 +1,41 @@
1
+ /* eslint-disable */
2
+
3
+ /**
4
+ * 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC
5
+ * */
6
+
7
+ export interface TdSegmentedProps {
8
+ /**
9
+ * 是否撑满父元素宽度
10
+ * @default false
11
+ */
12
+ block?: boolean;
13
+ /**
14
+ * 是否禁用
15
+ */
16
+ disabled?: boolean;
17
+ /**
18
+ * 数据化配置选项内容
19
+ * @default []
20
+ */
21
+ options?: string[] | number[] | SegmentedItem[];
22
+ /**
23
+ * 当前选中的值
24
+ */
25
+ value?: string | number;
26
+ /**
27
+ * 当前选中的值,非受控属性
28
+ */
29
+ defaultValue?: string | number;
30
+ /**
31
+ * 选项值发生变化时触发
32
+ */
33
+ onChange?: (context: { value: string | number; selectedOption: SegmentedItem }) => void;
34
+ }
35
+
36
+ export interface SegmentedItem {
37
+ value: string | number;
38
+ label?: string;
39
+ icon?: string | object;
40
+ disabled?: boolean;
41
+ }
@@ -44,7 +44,7 @@ name | Description
44
44
  ### CSS Variables
45
45
 
46
46
  The component provides the following CSS variables, which can be used to customize styles.
47
- Name | Default Value | Description
47
+ Name | Default Value | Description
48
48
  -- | -- | --
49
49
  --td-side-bar-bg-color | @bg-color-secondarycontainer | -
50
50
  --td-side-bar-height | 100% | -
@@ -77,7 +77,7 @@ value | String / Number | - | 当前选项的值 | N
77
77
  ### CSS Variables
78
78
 
79
79
  组件提供了下列 CSS 变量,可用于自定义样式。
80
- 名称 | 默认值 | 描述
80
+ 名称 | 默认值 | 描述
81
81
  -- | -- | --
82
82
  --td-side-bar-bg-color | @bg-color-secondarycontainer | -
83
83
  --td-side-bar-height | 100% | -
@@ -8,12 +8,14 @@
8
8
  </view>
9
9
  </template>
10
10
  <script>
11
- import { uniComponent } from '../common/src/index';
12
11
  import { prefix } from '../common/config';
12
+ import { ParentMixin, RELATION_MAP } from '../common/relation';
13
+ import { uniComponent } from '../common/src/index';
13
14
  import { coalesce } from '../common/utils';
14
- import props from './props';
15
+
15
16
  import tools from '../common/utils.wxs';
16
- import { ParentMixin, RELATION_MAP } from '../common/relation';
17
+
18
+ import props from './props';
17
19
 
18
20
 
19
21
  const name = `${prefix}-side-bar`;
@@ -68,12 +68,13 @@
68
68
  </template>
69
69
  <script>
70
70
  import TBadge from '../badge/badge';
71
- import TIcon from '../icon/icon';
72
- import { uniComponent } from '../common/src/index';
73
71
  import { prefix } from '../common/config';
74
- import props from './props';
75
- import tools from '../common/utils.wxs';
76
72
  import { ChildrenMixin, RELATION_MAP } from '../common/relation';
73
+ import { uniComponent } from '../common/src/index';
74
+ import tools from '../common/utils.wxs';
75
+ import TIcon from '../icon/icon';
76
+
77
+ import props from './props';
77
78
 
78
79
 
79
80
  const name = `${prefix}-side-bar-item`;
@@ -118,8 +119,8 @@ export default {
118
119
 
119
120
  return tools._style([
120
121
  {
121
- fontSize: 'var(--td-side-bar-icon-size, 20px)',
122
- marginRight: '2px',
122
+ fontSize: 'var(--td-side-bar-icon-size, 40rpx)',
123
+ marginRight: '4rpx',
123
124
  },
124
125
  this.innerIcon.style || '',
125
126
  ]);
@@ -30,7 +30,7 @@ t-class-row | \-
30
30
  ### CSS Variables
31
31
 
32
32
  The component provides the following CSS variables, which can be used to customize styles.
33
- Name | Default Value | Description
33
+ Name | Default Value | Description
34
34
  -- | -- | --
35
35
  --td-skeleton-circle-border-radius | @skeleton-circle-border-radius | -
36
36
  --td-skeleton-animation-flashed | rgba(90%, 90%, 90%, 0.3) | -
@@ -70,7 +70,7 @@ t-class-row | 列样式类
70
70
  ### CSS Variables
71
71
 
72
72
  组件提供了下列 CSS 变量,可用于自定义样式。
73
- 名称 | 默认值 | 描述
73
+ 名称 | 默认值 | 描述
74
74
  -- | -- | --
75
75
  --td-skeleton-circle-border-radius | @skeleton-circle-border-radius | -
76
76
  --td-skeleton-animation-flashed | rgba(90%, 90%, 90%, 0.3) | -
@@ -35,12 +35,15 @@
35
35
  </view>
36
36
  </template>
37
37
  <script>
38
- import { uniComponent } from '../common/src/index';
39
38
  import { prefix } from '../common/config';
40
- import props from './props';
39
+ import { uniComponent } from '../common/src/index';
40
+
41
+
41
42
  import { classNames } from '../common/utils';
42
- import { isInteger, isNumeric } from '../common/validator';
43
43
  import tools from '../common/utils.wxs';
44
+ import { isInteger, isNumeric } from '../common/validator';
45
+
46
+ import props from './props';
44
47
 
45
48
 
46
49
  const name = `${prefix}-skeleton`;
@@ -43,7 +43,7 @@ t-class-cursor | \-
43
43
  ### CSS Variables
44
44
 
45
45
  The component provides the following CSS variables, which can be used to customize styles.
46
- Name | Default Value | Description
46
+ Name | Default Value | Description
47
47
  -- | -- | --
48
48
  --td-slider-active-color | @brand-color | -
49
49
  --td-slider-bar-height | 8rpx | -
@@ -109,7 +109,7 @@ t-class-cursor | 游标样式类
109
109
  ### CSS Variables
110
110
 
111
111
  组件提供了下列 CSS 变量,可用于自定义样式。
112
- 名称 | 默认值 | 描述
112
+ 名称 | 默认值 | 描述
113
113
  -- | -- | --
114
114
  --td-slider-active-color | @brand-color | -
115
115
  --td-slider-bar-height | 8rpx | -
@@ -191,16 +191,18 @@
191
191
  </view>
192
192
  </template>
193
193
  <script>
194
- import { uniComponent } from '../common/src/index';
194
+ import Bus from '../common/bus';
195
195
  import { prefix } from '../common/config';
196
- import { trimSingleValue, trimValue } from './tool';
197
- import props from './props';
196
+ import { uniComponent } from '../common/src/index';
198
197
  import { getRect, coalesce, nextTick } from '../common/utils';
199
- import Bus from '../common/bus';
200
198
  import tools from '../common/utils.wxs';
201
- import { getValue } from './computed.js';
199
+
202
200
  import { isString, isFunction } from '../common/validator';
203
201
 
202
+ import { getValue } from './computed.js';
203
+ import props from './props';
204
+ import { trimSingleValue, trimValue } from './tool';
205
+
204
206
 
205
207
  const name = `${prefix}-slider`;
206
208
 
@@ -79,13 +79,14 @@
79
79
  </view>
80
80
  </template>
81
81
  <script>
82
- import TIcon from '../icon/icon';
83
- import { uniComponent } from '../common/src/index';
84
82
  import { prefix } from '../common/config';
85
- import props from './props';
83
+ import { ChildrenMixin, RELATION_MAP } from '../common/relation';
84
+ import { uniComponent } from '../common/src/index';
86
85
  import tools from '../common/utils.wxs';
86
+ import TIcon from '../icon/icon';
87
+
87
88
  import { getAriaLabel } from './computed.js';
88
- import { ChildrenMixin, RELATION_MAP } from '../common/relation';
89
+ import props from './props';
89
90
 
90
91
 
91
92
  const name = `${prefix}-steps-item`;
@@ -40,7 +40,7 @@ t-class-plus | \-
40
40
  ### CSS Variables
41
41
 
42
42
  The component provides the following CSS variables, which can be used to customize styles.
43
- Name | Default Value | Description
43
+ Name | Default Value | Description
44
44
  -- | -- | --
45
45
  --td-stepper-input-disabled-bg | @bg-color-component-disabled | -
46
46
  --td-stepper-input-disabled-color | @text-color-disabled | -
@@ -83,7 +83,7 @@ t-class-plus | 右侧递增号样式类
83
83
  ### CSS Variables
84
84
 
85
85
  组件提供了下列 CSS 变量,可用于自定义样式。
86
- 名称 | 默认值 | 描述
86
+ 名称 | 默认值 | 描述
87
87
  -- | -- | --
88
88
  --td-stepper-input-disabled-bg | @bg-color-component-disabled | -
89
89
  --td-stepper-input-disabled-color | @text-color-disabled | -
@@ -48,12 +48,14 @@
48
48
  </view>
49
49
  </template>
50
50
  <script>
51
- import TIcon from '../icon/icon';
52
- import { uniComponent } from '../common/src/index';
53
51
  import { prefix } from '../common/config';
52
+ import { uniComponent } from '../common/src/index';
54
53
  import { coalesce, nextTick } from '../common/utils';
55
- import props from './props';
54
+
56
55
  import tools from '../common/utils.wxs';
56
+ import TIcon from '../icon/icon';
57
+
58
+ import props from './props';
57
59
 
58
60
 
59
61
  const name = `${prefix}-stepper`;
@@ -69,7 +69,7 @@ t-class-title | \-
69
69
  ### CSS Variables
70
70
 
71
71
  The component provides the following CSS variables, which can be used to customize styles.
72
- Name | Default Value | Description
72
+ Name | Default Value | Description
73
73
  -- | -- | --
74
74
  --td-step-item-circle-size | 44rpx | -
75
75
  --td-step-item-circle-text-font | @font-body-medium | -
@@ -129,7 +129,7 @@ t-class-title | 标题样式类
129
129
  ### CSS Variables
130
130
 
131
131
  组件提供了下列 CSS 变量,可用于自定义样式。
132
- 名称 | 默认值 | 描述
132
+ 名称 | 默认值 | 描述
133
133
  -- | -- | --
134
134
  --td-step-item-circle-size | 44rpx | -
135
135
  --td-step-item-circle-text-font | @font-body-medium | -
@@ -7,11 +7,13 @@
7
7
  </view>
8
8
  </template>
9
9
  <script>
10
- import { uniComponent } from '../common/src/index';
11
10
  import { prefix } from '../common/config';
12
- import props from './props';
13
- import tools from '../common/utils.wxs';
14
11
  import { ParentMixin, RELATION_MAP } from '../common/relation';
12
+ import { uniComponent } from '../common/src/index';
13
+
14
+ import tools from '../common/utils.wxs';
15
+
16
+ import props from './props';
15
17
 
16
18
 
17
19
  const name = `${prefix}-steps`;
@@ -12,12 +12,13 @@
12
12
  </view>
13
13
  </template>
14
14
  <script>
15
- import { uniComponent } from '../common/src/index';
16
- import props from './props';
17
15
  import { prefix } from '../common/config';
18
- import pageScrollMixin from '../mixins/page-scroll';
16
+ import { uniComponent } from '../common/src/index';
19
17
  import { getRect, nextTick } from '../common/utils';
20
18
  import tools from '../common/utils.wxs';
19
+ import pageScrollMixin from '../mixins/page-scroll';
20
+
21
+ import props from './props';
21
22
 
22
23
 
23
24
  const name = `${prefix}-sticky`;
@@ -96,12 +96,14 @@
96
96
  </view>
97
97
  </template>
98
98
  <script>
99
- import TIcon from '../icon/icon';
100
- import { uniComponent } from '../common/src/index';
101
99
  import { prefix } from '../common/config';
102
- import props from './props';
100
+ import { parseEventDynamicCode } from '../common/event/dynamic';
101
+ import { uniComponent } from '../common/src/index';
103
102
  import { getRect } from '../common/utils';
103
+ import tools from '../common/utils.wxs';
104
104
  import { getObserver } from '../common/wechat';
105
+ import TIcon from '../icon/icon';
106
+
105
107
  import {
106
108
  initLeftWidth,
107
109
  initRightWidth,
@@ -111,8 +113,8 @@ import {
111
113
  onCloseChange,
112
114
  onOpenedChange,
113
115
  } from './computed';
114
- import tools from '../common/utils.wxs';
115
- import { parseEventDynamicCode } from '../common/event/dynamic';
116
+ import props from './props';
117
+
116
118
 
117
119
  let ARRAY = [];
118
120
 
@@ -72,7 +72,7 @@ t-class | \-
72
72
  ### CSS Variables
73
73
 
74
74
  The component provides the following CSS variables, which can be used to customize styles.
75
- Name | Default Value | Description
75
+ Name | Default Value | Description
76
76
  -- | -- | --
77
77
  --td-swiper-item-padding | 0 | -
78
78
  --td-swiper-radius | @radius-large | -
@@ -124,7 +124,7 @@ t-class | 根节点样式类
124
124
  ### CSS Variables
125
125
 
126
126
  组件提供了下列 CSS 变量,可用于自定义样式。
127
- 名称 | 默认值 | 描述
127
+ 名称 | 默认值 | 描述
128
128
  -- | -- | --
129
129
  --td-swiper-item-padding | 0 | -
130
130
  --td-swiper-radius | @radius-large | -
@@ -67,14 +67,16 @@
67
67
  </view>
68
68
  </template>
69
69
  <script>
70
- import TSwiperNav from '../swiper-nav/swiper-nav';
71
- import TImage from '../image/image';
72
- import { uniComponent } from '../common/src/index';
73
70
  import { prefix } from '../common/config';
74
- import props from './props';
71
+ import { ParentMixin, RELATION_MAP } from '../common/relation';
72
+ import { uniComponent } from '../common/src/index';
75
73
  import tools from '../common/utils.wxs';
74
+ import TImage from '../image/image';
75
+ import TSwiperNav from '../swiper-nav/swiper-nav';
76
+
76
77
  import { isPrev, isNext, getImageClass } from './computed.js';
77
- import { ParentMixin, RELATION_MAP } from '../common/relation';
78
+ import props from './props';
79
+
78
80
 
79
81
  const name = `${prefix}-swiper`;
80
82