@opentinyvue/vue-docs 3.27.6 → 3.28.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 (241) hide show
  1. package/demos/apis/base-select.js +2 -2
  2. package/demos/apis/drawer.js +14 -0
  3. package/demos/apis/dropdown.js +6 -2
  4. package/demos/apis/grid.js +1 -1
  5. package/demos/apis/modal.js +15 -1
  6. package/demos/apis/select-wrapper.js +1 -1
  7. package/demos/apis/select.js +1 -1
  8. package/demos/apis/switch.js +15 -0
  9. package/demos/apis/tree-menu.js +7 -4
  10. package/demos/apis/tree-select.js +41 -0
  11. package/demos/mobile-first/app/base-select/webdoc/base-select.js +3 -3
  12. package/demos/mobile-first/app/select-wrapper/all-text.vue +43 -0
  13. package/demos/mobile-first/app/select-wrapper/allow-create.vue +77 -0
  14. package/demos/mobile-first/app/select-wrapper/automatic-dropdown.vue +62 -0
  15. package/demos/mobile-first/app/select-wrapper/basic-usage.vue +47 -0
  16. package/demos/mobile-first/app/select-wrapper/binding-obj.vue +44 -0
  17. package/demos/mobile-first/app/select-wrapper/cache-usage.vue +49 -0
  18. package/demos/mobile-first/app/select-wrapper/clear-no-match-value.vue +54 -0
  19. package/demos/mobile-first/app/select-wrapper/clearable.vue +34 -0
  20. package/demos/mobile-first/app/select-wrapper/collapse-tags.vue +58 -0
  21. package/demos/mobile-first/app/select-wrapper/copy-multi.vue +77 -0
  22. package/demos/mobile-first/app/select-wrapper/copy-single.vue +157 -0
  23. package/demos/mobile-first/app/select-wrapper/disabled.vue +108 -0
  24. package/demos/mobile-first/app/select-wrapper/events.vue +112 -0
  25. package/demos/mobile-first/app/select-wrapper/extra-query-params.vue +157 -0
  26. package/demos/mobile-first/app/select-wrapper/filter-method.vue +85 -0
  27. package/demos/mobile-first/app/select-wrapper/filter-mode.vue +46 -0
  28. package/demos/mobile-first/app/select-wrapper/hide-drop.vue +34 -0
  29. package/demos/mobile-first/app/select-wrapper/init-label.vue +74 -0
  30. package/demos/mobile-first/app/select-wrapper/is-drop-inherit-width.vue +51 -0
  31. package/demos/mobile-first/app/select-wrapper/manual-focus-blur.vue +90 -0
  32. package/demos/mobile-first/app/select-wrapper/map-field.vue +68 -0
  33. package/demos/mobile-first/app/select-wrapper/memoize-usage.vue +66 -0
  34. package/demos/mobile-first/app/select-wrapper/multiple-mix.vue +84 -0
  35. package/demos/mobile-first/app/select-wrapper/multiple.vue +133 -0
  36. package/demos/mobile-first/app/select-wrapper/native-properties.vue +34 -0
  37. package/demos/mobile-first/app/select-wrapper/nest-grid-disable.vue +122 -0
  38. package/demos/mobile-first/app/select-wrapper/nest-grid-init-query.vue +129 -0
  39. package/demos/mobile-first/app/select-wrapper/nest-grid-remote.vue +144 -0
  40. package/demos/mobile-first/app/select-wrapper/nest-grid.vue +106 -0
  41. package/demos/mobile-first/app/select-wrapper/nest-radio-grid-much-data.vue +50 -0
  42. package/demos/mobile-first/app/select-wrapper/nest-tree.vue +164 -0
  43. package/demos/mobile-first/app/select-wrapper/no-data-text.vue +48 -0
  44. package/demos/mobile-first/app/select-wrapper/optimization.vue +59 -0
  45. package/demos/mobile-first/app/select-wrapper/option-group.vue +105 -0
  46. package/demos/mobile-first/app/select-wrapper/popup-style-position.vue +40 -0
  47. package/demos/mobile-first/app/select-wrapper/remote-method.vue +286 -0
  48. package/demos/mobile-first/app/select-wrapper/show-alloption.vue +34 -0
  49. package/demos/mobile-first/app/select-wrapper/show-tip.vue +28 -0
  50. package/demos/mobile-first/app/select-wrapper/size.vue +57 -0
  51. package/demos/mobile-first/app/select-wrapper/slot-default.vue +95 -0
  52. package/demos/mobile-first/app/select-wrapper/slot-empty.vue +44 -0
  53. package/demos/mobile-first/app/select-wrapper/slot-header-footer.vue +55 -0
  54. package/demos/mobile-first/app/select-wrapper/slot-label.vue +85 -0
  55. package/demos/mobile-first/app/select-wrapper/slot-prefix.vue +39 -0
  56. package/demos/mobile-first/app/select-wrapper/slot-reference.vue +41 -0
  57. package/demos/mobile-first/app/select-wrapper/tag-type.vue +36 -0
  58. package/demos/mobile-first/app/select-wrapper/webdoc/select-wrapper.cn.md +7 -0
  59. package/demos/mobile-first/app/select-wrapper/webdoc/select-wrapper.en.md +7 -0
  60. package/demos/mobile-first/app/select-wrapper/webdoc/select-wrapper.js +695 -0
  61. package/demos/mobile-first/app/tree-select/lazy.vue +59 -0
  62. package/demos/mobile-first/app/tree-select/webdoc/tree-select.cn.md +0 -1
  63. package/demos/mobile-first/app/tree-select/webdoc/tree-select.en.md +0 -1
  64. package/demos/mobile-first/app/tree-select/webdoc/tree-select.js +12 -0
  65. package/demos/pc/app/amount/custom-service.spec.js +4 -4
  66. package/demos/pc/app/base-select/allow-create.spec.ts +3 -3
  67. package/demos/pc/app/base-select/automatic-dropdown.spec.ts +2 -2
  68. package/demos/pc/app/base-select/basic-usage.spec.ts +2 -2
  69. package/demos/pc/app/base-select/binding-obj.spec.ts +2 -2
  70. package/demos/pc/app/base-select/cache-usage.spec.ts +2 -2
  71. package/demos/pc/app/base-select/clearable.spec.ts +1 -1
  72. package/demos/pc/app/base-select/slot-reference.spec.ts +1 -1
  73. package/demos/pc/app/base-select/webdoc/base-select.js +3 -3
  74. package/demos/pc/app/cascader/filter-mode-composition-api.vue +2 -1
  75. package/demos/pc/app/checkbox/vertical-checkbox.spec.ts +4 -4
  76. package/demos/pc/app/color-select-panel/format.spec.ts +3 -3
  77. package/demos/pc/app/country/fields.spec.js +1 -1
  78. package/demos/pc/app/currency/basic-usage.spec.ts +1 -1
  79. package/demos/pc/app/currency/custom-service.spec.ts +3 -3
  80. package/demos/pc/app/date-panel/unlink-panels.spec.ts +12 -8
  81. package/demos/pc/app/dept/custom-service.spec.ts +6 -6
  82. package/demos/pc/app/drawer/close-on-press-escape-composition-api.vue +29 -0
  83. package/demos/pc/app/drawer/close-on-press-escape.spec.ts +19 -0
  84. package/demos/pc/app/drawer/close-on-press-escape.vue +38 -0
  85. package/demos/pc/app/drawer/webdoc/drawer.js +12 -0
  86. package/demos/pc/app/drop-roles/custom-service.spec.ts +1 -1
  87. package/demos/pc/app/drop-times/basic-usage.spec.ts +2 -2
  88. package/demos/pc/app/drop-times/start-end-step.spec.ts +1 -1
  89. package/demos/pc/app/dropdown/trigger-composition-api.vue +13 -0
  90. package/demos/pc/app/dropdown/trigger.spec.ts +13 -0
  91. package/demos/pc/app/dropdown/trigger.vue +13 -0
  92. package/demos/pc/app/dropdown/webdoc/dropdown.js +4 -4
  93. package/demos/pc/app/file-upload/upload-file-list-saas.spec.ts +0 -2
  94. package/demos/pc/app/form/basic-usage.spec.ts +2 -2
  95. package/demos/pc/app/grid/custom/column-simple.spec.js +2 -2
  96. package/demos/pc/app/grid/data-source/undefined-field-defalut-value-composition-api.vue +4 -1
  97. package/demos/pc/app/grid/data-source/undefined-field-defalut-value.spec.js +24 -0
  98. package/demos/pc/app/grid/data-source/undefined-field-defalut-value.vue +6 -2
  99. package/demos/pc/app/grid/editor/custom-editor-select-composition-api.vue +6 -1
  100. package/demos/pc/app/grid/editor/custom-editor-select.spec.js +5 -4
  101. package/demos/pc/app/grid/editor/custom-editor-select.vue +5 -1
  102. package/demos/pc/app/grid-select/extra-query-params.spec.ts +7 -12
  103. package/demos/pc/app/guide/basic-usage-composition-api.vue +4 -1
  104. package/demos/pc/app/guide/basic-usage.vue +4 -1
  105. package/demos/pc/app/guide/callback-composition-api.vue +1 -0
  106. package/demos/pc/app/guide/callback.vue +1 -0
  107. package/demos/pc/app/icon/advance-icons.js +126 -0
  108. package/demos/pc/app/icon/advance-usage-composition-api.vue +23 -1
  109. package/demos/pc/app/icon/advance-usage.vue +24 -1
  110. package/demos/pc/app/modal/modal-header.vue +16 -2
  111. package/demos/pc/app/modal/webdoc/modal.js +7 -6
  112. package/demos/pc/app/select/allow-create.spec.ts +3 -3
  113. package/demos/pc/app/select/automatic-dropdown.spec.ts +2 -2
  114. package/demos/pc/app/select/basic-usage.spec.ts +3 -3
  115. package/demos/pc/app/select/binding-obj.spec.ts +2 -2
  116. package/demos/pc/app/select/cache-usage.spec.ts +2 -2
  117. package/demos/pc/app/select/clearable.spec.ts +1 -1
  118. package/demos/pc/app/select/webdoc/select.js +3 -3
  119. package/demos/pc/app/select-wrapper/all-text.spec.ts +1 -1
  120. package/demos/pc/app/select-wrapper/all-text.vue +1 -1
  121. package/demos/pc/app/select-wrapper/allow-create.spec.ts +5 -5
  122. package/demos/pc/app/select-wrapper/allow-create.vue +8 -1
  123. package/demos/pc/app/select-wrapper/automatic-dropdown.spec.ts +4 -4
  124. package/demos/pc/app/select-wrapper/automatic-dropdown.vue +1 -1
  125. package/demos/pc/app/select-wrapper/basic-usage.spec.ts +5 -5
  126. package/demos/pc/app/select-wrapper/basic-usage.vue +1 -1
  127. package/demos/pc/app/select-wrapper/binding-obj.spec.ts +3 -3
  128. package/demos/pc/app/select-wrapper/binding-obj.vue +1 -1
  129. package/demos/pc/app/select-wrapper/cache-usage.spec.ts +3 -3
  130. package/demos/pc/app/select-wrapper/cache-usage.vue +1 -1
  131. package/demos/pc/app/select-wrapper/clear-no-match-value.spec.ts +2 -2
  132. package/demos/pc/app/select-wrapper/clear-no-match-value.vue +1 -1
  133. package/demos/pc/app/select-wrapper/clearable.spec.ts +2 -2
  134. package/demos/pc/app/select-wrapper/clearable.vue +1 -1
  135. package/demos/pc/app/select-wrapper/collapse-tags.spec.ts +1 -1
  136. package/demos/pc/app/select-wrapper/collapse-tags.vue +1 -1
  137. package/demos/pc/app/select-wrapper/copy-multi.spec.ts +4 -4
  138. package/demos/pc/app/select-wrapper/copy-multi.vue +1 -1
  139. package/demos/pc/app/select-wrapper/copy-single.spec.ts +3 -3
  140. package/demos/pc/app/select-wrapper/copy-single.vue +1 -1
  141. package/demos/pc/app/select-wrapper/disabled.spec.ts +4 -4
  142. package/demos/pc/app/select-wrapper/disabled.vue +1 -1
  143. package/demos/pc/app/select-wrapper/events.spec.ts +4 -4
  144. package/demos/pc/app/select-wrapper/events.vue +1 -1
  145. package/demos/pc/app/select-wrapper/extra-query-params.vue +1 -1
  146. package/demos/pc/app/select-wrapper/filter-method.spec.ts +2 -2
  147. package/demos/pc/app/select-wrapper/filter-method.vue +1 -1
  148. package/demos/pc/app/select-wrapper/filter-mode.vue +1 -1
  149. package/demos/pc/app/select-wrapper/hide-drop.spec.ts +1 -1
  150. package/demos/pc/app/select-wrapper/hide-drop.vue +1 -1
  151. package/demos/pc/app/select-wrapper/init-label.vue +1 -1
  152. package/demos/pc/app/select-wrapper/input-box-type.spec.ts +4 -5
  153. package/demos/pc/app/select-wrapper/input-box-type.vue +1 -1
  154. package/demos/pc/app/select-wrapper/is-drop-inherit-width.spec.ts +2 -2
  155. package/demos/pc/app/select-wrapper/is-drop-inherit-width.vue +1 -1
  156. package/demos/pc/app/select-wrapper/manual-focus-blur.spec.ts +1 -1
  157. package/demos/pc/app/select-wrapper/manual-focus-blur.vue +1 -1
  158. package/demos/pc/app/select-wrapper/map-field.spec.ts +2 -2
  159. package/demos/pc/app/select-wrapper/map-field.vue +1 -1
  160. package/demos/pc/app/select-wrapper/memoize-usage.spec.ts +1 -1
  161. package/demos/pc/app/select-wrapper/memoize-usage.vue +1 -1
  162. package/demos/pc/app/select-wrapper/multiple-mix.vue +1 -1
  163. package/demos/pc/app/select-wrapper/multiple.spec.ts +2 -2
  164. package/demos/pc/app/select-wrapper/multiple.vue +1 -1
  165. package/demos/pc/app/select-wrapper/native-properties.spec.ts +1 -1
  166. package/demos/pc/app/select-wrapper/native-properties.vue +1 -1
  167. package/demos/pc/app/select-wrapper/nest-grid-disable.spec.ts +2 -2
  168. package/demos/pc/app/select-wrapper/nest-grid-disable.vue +1 -1
  169. package/demos/pc/app/select-wrapper/nest-grid-init-query.vue +1 -1
  170. package/demos/pc/app/select-wrapper/nest-grid-remote.spec.ts +12 -12
  171. package/demos/pc/app/select-wrapper/nest-grid-remote.vue +1 -1
  172. package/demos/pc/app/select-wrapper/nest-grid.spec.ts +6 -6
  173. package/demos/pc/app/select-wrapper/nest-grid.vue +1 -1
  174. package/demos/pc/app/select-wrapper/nest-radio-grid-much-data.spec.ts +2 -2
  175. package/demos/pc/app/select-wrapper/nest-radio-grid-much-data.vue +1 -1
  176. package/demos/pc/app/select-wrapper/nest-tree.spec.ts +5 -5
  177. package/demos/pc/app/select-wrapper/nest-tree.vue +1 -1
  178. package/demos/pc/app/select-wrapper/no-data-text.spec.ts +3 -3
  179. package/demos/pc/app/select-wrapper/no-data-text.vue +1 -1
  180. package/demos/pc/app/select-wrapper/optimization.spec.ts +2 -2
  181. package/demos/pc/app/select-wrapper/option-group.spec.ts +1 -1
  182. package/demos/pc/app/select-wrapper/option-group.vue +1 -1
  183. package/demos/pc/app/select-wrapper/popup-style-position.spec.ts +2 -2
  184. package/demos/pc/app/select-wrapper/popup-style-position.vue +1 -1
  185. package/demos/pc/app/select-wrapper/remote-method.spec.ts +4 -4
  186. package/demos/pc/app/select-wrapper/remote-method.vue +1 -1
  187. package/demos/pc/app/select-wrapper/searchable.spec.ts +2 -2
  188. package/demos/pc/app/select-wrapper/searchable.vue +1 -1
  189. package/demos/pc/app/select-wrapper/show-alloption.spec.ts +1 -1
  190. package/demos/pc/app/select-wrapper/show-alloption.vue +1 -1
  191. package/demos/pc/app/select-wrapper/show-tip.vue +1 -1
  192. package/demos/pc/app/select-wrapper/size.spec.ts +4 -4
  193. package/demos/pc/app/select-wrapper/size.vue +1 -1
  194. package/demos/pc/app/select-wrapper/slot-default.spec.ts +1 -1
  195. package/demos/pc/app/select-wrapper/slot-default.vue +1 -1
  196. package/demos/pc/app/select-wrapper/slot-empty.spec.ts +1 -1
  197. package/demos/pc/app/select-wrapper/slot-empty.vue +1 -1
  198. package/demos/pc/app/select-wrapper/slot-header-footer.spec.ts +1 -1
  199. package/demos/pc/app/select-wrapper/slot-header-footer.vue +1 -1
  200. package/demos/pc/app/select-wrapper/slot-label.vue +1 -1
  201. package/demos/pc/app/select-wrapper/slot-prefix.spec.ts +1 -1
  202. package/demos/pc/app/select-wrapper/slot-prefix.vue +1 -1
  203. package/demos/pc/app/select-wrapper/slot-reference.spec.ts +1 -1
  204. package/demos/pc/app/select-wrapper/slot-reference.vue +1 -1
  205. package/demos/pc/app/select-wrapper/tag-type.spec.ts +1 -1
  206. package/demos/pc/app/select-wrapper/tag-type.vue +1 -1
  207. package/demos/pc/app/select-wrapper/webdoc/select-wrapper.js +3 -3
  208. package/demos/pc/app/switch/webdoc/switch.js +12 -0
  209. package/demos/pc/app/switch/width-composition-api.vue +29 -0
  210. package/demos/pc/app/switch/width.spec.ts +17 -0
  211. package/demos/pc/app/switch/width.vue +35 -0
  212. package/demos/pc/app/time-picker/picker-options.spec.ts +3 -4
  213. package/demos/pc/app/time-picker/step.spec.ts +2 -2
  214. package/demos/pc/app/transfer/basic-usage.spec.ts +4 -4
  215. package/demos/pc/app/tree/filter-view.spec.ts +1 -1
  216. package/demos/pc/app/tree-menu/clearable.spec.ts +1 -5
  217. package/demos/pc/app/tree-select/lazy-composition-api.vue +51 -0
  218. package/demos/pc/app/tree-select/lazy-multiple-composition-api.vue +58 -0
  219. package/demos/pc/app/tree-select/lazy-multiple.vue +66 -0
  220. package/demos/pc/app/tree-select/lazy.vue +59 -0
  221. package/demos/pc/app/tree-select/webdoc/tree-select.js +14 -0
  222. package/demos/pc/app/user/custom-service.spec.ts +1 -1
  223. package/demos/pc/menus.js +2 -2
  224. package/demos/pc/webdoc/changelog-en.md +251 -180
  225. package/demos/pc/webdoc/changelog.md +120 -81
  226. package/demos/pc/webdoc/introduce.md +9 -12
  227. package/package.json +20 -20
  228. package/playground/App.vue +212 -185
  229. package/playground/assets/icon-layout-vertical.svg +4 -0
  230. package/playground/icons/Github.vue +14 -2
  231. package/playground/icons/Layout.vue +18 -0
  232. package/playground/icons/Reverse.vue +115 -0
  233. package/playground/icons/Set.vue +80 -0
  234. package/playground/icons/Share.vue +103 -8
  235. package/playground/icons/Vertical.vue +19 -0
  236. package/src/components/api-docs.vue +2 -2
  237. package/src/components/async-highlight.vue +6 -0
  238. package/src/views/components-doc/common.vue +14 -3
  239. package/src/views/components-doc/saas.vue +2 -13
  240. package/playground/assets/big.png +0 -0
  241. package/playground/assets/small.png +0 -0
@@ -598,9 +598,9 @@ export default {
598
598
  defaultValue: 'false',
599
599
  desc: {
600
600
  'zh-CN':
601
- '是否展示多选框开启多选限制选择数量时,选中条数和限制总条数的占比的文字提示。 该属性的优先级大于<code>show-proportion</code> 属性,同时设置只',
601
+ '是否展示多选框开启多选限制选择数量时,选中条数和限制总条数的占比的文字提示。 该属性的优先级大于<code>show-proportion</code> 属性。',
602
602
  'en-US':
603
- 'Display the proportion of the number of selected items and the total number of items in the multiple-choice box'
603
+ 'Display the proportion of the number of selected items and the maximum number of options available in the multiple-choice box. This attribute has a higher priority than the <code>show-proportion</code> attribute.'
604
604
  },
605
605
  mode: ['pc'],
606
606
  pcDemo: 'multiple'
@@ -207,6 +207,20 @@ export default {
207
207
  mode: ['pc'],
208
208
  pcDemo: 'tips-props',
209
209
  hideSaas: true
210
+ },
211
+ {
212
+ name: 'close-on-press-escape',
213
+ type: 'boolean',
214
+ defaultValue: 'false',
215
+ desc: {
216
+ 'zh-CN': 'ESC 键关闭抽屉',
217
+ 'en-US': 'ESC key to close drawer'
218
+ },
219
+ mode: ['pc'],
220
+ pcDemo: 'closeOnPressEscape',
221
+ meta: {
222
+ stable: '3.28.0'
223
+ }
210
224
  }
211
225
  ],
212
226
  events: [
@@ -195,7 +195,7 @@ export default {
195
195
  },
196
196
  {
197
197
  name: 'trigger',
198
- type: "'hover' | 'click'",
198
+ type: "'hover' | 'click' | 'contextmenu'",
199
199
  defaultValue: "'hover'",
200
200
  desc: {
201
201
  'zh-CN': '触发下拉的方式',
@@ -203,8 +203,12 @@ export default {
203
203
  },
204
204
  mode: ['pc', 'mobile-first'],
205
205
  pcDemo: 'trigger',
206
- mfDemo: ''
206
+ mfDemo: '',
207
+ meta: {
208
+ stable: '3.28.0'
209
+ }
207
210
  },
211
+
208
212
  {
209
213
  name: 'type',
210
214
  typeAnchorName: 'IButtonType',
@@ -2784,7 +2784,7 @@ export default {
2784
2784
  "Set the rendering type for table columns; takes precedence over the column's type attribute; cell rendering configuration item, takes precedence over formatText attribute"
2785
2785
  },
2786
2786
  mode: ['pc', 'mobile-first'],
2787
- pcDemo: 'grid-renderer#renderer-custom-renderer'
2787
+ pcDemo: 'grid-editor#editor-custom-editor-select'
2788
2788
  },
2789
2789
  {
2790
2790
  name: 'required',
@@ -115,7 +115,7 @@ export default {
115
115
  {
116
116
  name: 'footer-dragable',
117
117
  type: 'boolean',
118
- defaultValue: 'true',
118
+ defaultValue: 'false',
119
119
  desc: {
120
120
  'zh-CN': '控制底部可拖拽',
121
121
  'en-US': 'Control bottom dragable'
@@ -123,6 +123,20 @@ export default {
123
123
  mode: ['pc'],
124
124
  pcDemo: 'modal-footer'
125
125
  },
126
+ {
127
+ name: 'header-dragable',
128
+ type: 'boolean',
129
+ defaultValue: 'true',
130
+ desc: {
131
+ 'zh-CN': '控制标题可拖拽',
132
+ 'en-US': 'Control header dragable'
133
+ },
134
+ mode: ['pc'],
135
+ pcDemo: 'modal-header',
136
+ meta: {
137
+ stable: '3.28.0'
138
+ }
139
+ },
126
140
  {
127
141
  name: 'fullscreen',
128
142
  type: 'boolean',
@@ -680,7 +680,7 @@ export default {
680
680
  'zh-CN':
681
681
  '是否展示多选框开启多选限制选择数量时,选中条数和限制总条数的占比的文字提示。 该属性的优先级大于<code>show-proportion</code> 属性。',
682
682
  'en-US':
683
- 'Display the proportion of the number of selected items and the total number of items in the multiple-choice box'
683
+ 'Display the proportion of the number of selected items and the maximum number of options available in the multiple-choice box. This attribute has a higher priority than the <code>show-proportion</code> attribute.'
684
684
  },
685
685
  mode: ['pc'],
686
686
  pcDemo: 'multiple'
@@ -690,7 +690,7 @@ export default {
690
690
  'zh-CN':
691
691
  '是否展示多选框开启多选限制选择数量时,选中条数和限制总条数的占比的文字提示。 该属性的优先级大于<code>show-proportion</code> 属性。',
692
692
  'en-US':
693
- 'Display the proportion of the number of selected items and the total number of items in the multiple-choice box'
693
+ 'Display the proportion of the number of selected items and the maximum number of options available in the multiple-choice box. This attribute has a higher priority than the <code>show-proportion</code> attribute.'
694
694
  },
695
695
  mode: ['pc'],
696
696
  pcDemo: 'multiple',
@@ -111,6 +111,21 @@ export default {
111
111
  pcDemo: 'custom-true-false-value',
112
112
  mfDemo: ''
113
113
  },
114
+ {
115
+ name: 'width',
116
+ type: 'number | string',
117
+ defaultValue: '',
118
+ desc: {
119
+ 'zh-CN': '定义开关的宽度',
120
+ 'en-US': 'Define the width of the switch'
121
+ },
122
+ mode: ['pc'],
123
+ mfDemo: '',
124
+ pcDemo: 'width',
125
+ meta: {
126
+ stable: '3.28.0'
127
+ }
128
+ },
114
129
  {
115
130
  name: 'types',
116
131
  type: 'string',
@@ -660,6 +660,9 @@ interface ITreeNodeData {
660
660
  "number"?: number | string
661
661
  // 自定义每个节点的图标
662
662
  "customIcon": Component
663
+ // 节点是否可以点击
664
+ "disabled"?: string
665
+
663
666
  }
664
667
  `
665
668
  },
@@ -668,10 +671,10 @@ interface ITreeNodeData {
668
671
  type: 'interface',
669
672
  code: `
670
673
  interface IProps {
671
- "label"?: string
672
- "children"?: string
673
- "disabled": string
674
- "isLeaf": string
674
+ "label": string
675
+ "children": string
676
+ "disabled"?: string
677
+ "isLeaf"?: string
675
678
  }
676
679
  `
677
680
  },
@@ -264,6 +264,44 @@ export default {
264
264
  },
265
265
  mode: ['pc'],
266
266
  pcDemo: 'map-field'
267
+ },
268
+ {
269
+ name: 'lazy',
270
+ type: 'boolean',
271
+ defaultValue: 'false',
272
+ desc: {
273
+ 'zh-CN': '是否懒加载子节点,配合 load 属性使用',
274
+ 'en-US': 'Whether to lazily load child nodes and use them in conjunction with the load attribute'
275
+ },
276
+ mode: ['pc', 'mobile-first'],
277
+ pcDemo: 'lazy',
278
+ mfDemo: 'lazy'
279
+ },
280
+ {
281
+ name: 'load',
282
+ type: '(node, resolve) => void',
283
+ defaultValue: '',
284
+ desc: {
285
+ 'zh-CN':
286
+ '加载子树数据的方法。点击节点后,组件开始调用load方法,只有在load函数内调用resolve(data),才表示返回下级的数据成功。',
287
+ 'en-US':
288
+ 'Method of loading subtree data. After the node is clicked, the component starts to call the load method. Only when resolve(data) is called in the load function, the data at the lower level is successfully returned.'
289
+ },
290
+ mode: ['pc', 'mobile-first'],
291
+ pcDemo: 'lazy',
292
+ mfDemo: 'lazy'
293
+ },
294
+ {
295
+ name: 'after-load',
296
+ type: 'Function',
297
+ defaultValue: '',
298
+ desc: {
299
+ 'zh-CN': '节点懒加载完成后的回调函数',
300
+ 'en-US': 'Callback function after node lazy loading is completed'
301
+ },
302
+ mode: ['pc', 'mobile-first'],
303
+ pcDemo: 'lazy',
304
+ mfDemo: 'lazy'
267
305
  }
268
306
  ]
269
307
  }
@@ -281,6 +319,9 @@ interface ITreeNode {
281
319
 
282
320
  interface ITreeOption {
283
321
  data: ITreeNode[] // 树数据,用法同 Tree
322
+ lazy?: boolean // 是否懒加载子节点
323
+ load?: (node: ITreeNodeVm, resolve: IResolveType) => void // 加载子树数据的方法
324
+ afterLoad?: (data: any) => void // 节点懒加载完成后的回调函数
284
325
  }
285
326
  `
286
327
  },
@@ -28,14 +28,14 @@ export default {
28
28
  'zh-CN': `
29
29
  通过 <code>multiple</code> 属性启用多选功能,此时 <code>v-model</code> 的值为当前选中值所组成的数组。默认选中值会以标签(Tag 组件)展示。<br>
30
30
  通过 <code>multiple-limit</code> 属性限制最多可选择的个数,默认为 0 不限制。<br>
31
- 通过 <code>show-limit-text</code> 属性限制最多可选择的个数,默认为 0 不限制。<br>
31
+ 设置 <code>show-limit-text</code> 可展示选中条数和限制总条数的占比,默认为 false 不展示。<br>
32
32
  多选时,通过给 option 标签配置 <code>required</code> 或者在 options 配置项中添加 <code>required</code> 属性,来设置必选选项。<br>
33
33
  通过 <code>dropdown-icon</code> 属性可自定义下拉图标,<code>drop-style</code> 属性可自定义下拉选项样式。<br>
34
34
  `,
35
35
  'en-US': `
36
36
  Use the <code>multiple</code> attribute to enable the multi-selection function. In this case, the value of <code>v-model</code> is an array of selected values. By default, the selected value is displayed as a tag (Tag component).<br>
37
- The <code>multiple-limit</code> attribute is used to limit the maximum number of users that can be selected. The default value is 0.
38
- The <code>show-limit-text</code> attribute is used to limit the maximum number of users that can be selected. The default value is 0, which is not limited.<br>
37
+ The <code>multiple-limit</code> attribute is used to limit the maximum number of options available. The default value is 0.
38
+ Set <code>show-limit-text</code> to display the proportion of the number of selected items and the maximum number of options available. The default value is false.
39
39
  When multiple options are selected, you can set <code>required</code> for the option tag or add the <code>required</code> attribute to the options configuration item to set mandatory options.<br>
40
40
  You can use the <code>dropdown-icon</code> attribute to customize the drop-down icon, and the <code>drop-style</code> attribute to customize the style of the drop-down options.<br>
41
41
  `
@@ -0,0 +1,43 @@
1
+ <template>
2
+ <div>
3
+ <div style="margin: 16px 0">全选后,显示多个 tag</div>
4
+ <tiny-select v-model="value" multiple all-text="全部小吃">
5
+ <tiny-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </tiny-option>
6
+ </tiny-select>
7
+
8
+ <div style="margin: 16px 0">全选后,显示自定义的全部 Tag</div>
9
+ <tiny-select v-model="value1" multiple all-text="全部小吃" show-all-text-tag>
10
+ <tiny-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </tiny-option>
11
+ </tiny-select>
12
+ </div>
13
+ </template>
14
+
15
+ <script>
16
+ import { TinySelectWrapper as TinySelect, TinyOption } from '@opentiny/vue'
17
+
18
+ export default {
19
+ components: {
20
+ TinySelect,
21
+ TinyOption
22
+ },
23
+ data() {
24
+ return {
25
+ value: [],
26
+ value1: [],
27
+ options: [
28
+ { value: '选项 1', label: '黄金糕' },
29
+ { value: '选项 2', label: '双皮奶' },
30
+ { value: '选项 3', label: '蚵仔煎' },
31
+ { value: '选项 4', label: '龙须面' },
32
+ { value: '选项 6', label: '螺蛳粉' }
33
+ ]
34
+ }
35
+ }
36
+ }
37
+ </script>
38
+
39
+ <style lang="less" scoped>
40
+ .tiny-select {
41
+ width: 280px;
42
+ }
43
+ </style>
@@ -0,0 +1,77 @@
1
+ <template>
2
+ <div>
3
+ <div>场景 1:allow-create + filterable,点击创建条目</div>
4
+ <br />
5
+ <tiny-select v-model="value" allow-create filterable>
6
+ <tiny-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </tiny-option>
7
+ </tiny-select>
8
+ <br />
9
+ <br />
10
+ <div>场景 2:allow-create + filterable + default-first-option,Enter 键创建条目</div>
11
+ <br />
12
+ <tiny-select v-model="value" allow-create filterable default-first-option>
13
+ <tiny-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </tiny-option>
14
+ </tiny-select>
15
+ </div>
16
+ </template>
17
+
18
+ <script>
19
+ import {
20
+ TinySelectWrapper as TinySelect,
21
+ TinyOption,
22
+ TinyInput,
23
+ TinyButton,
24
+ TinyDialogBox,
25
+ TinyModal
26
+ } from '@opentiny/vue'
27
+
28
+ export default {
29
+ components: {
30
+ TinySelect,
31
+ TinyOption,
32
+ TinyInput,
33
+ TinyButton,
34
+ TinyDialogBox
35
+ },
36
+ data() {
37
+ return {
38
+ options: [
39
+ { value: '选项 1', label: '北京' },
40
+ { value: '选项 2', label: '上海' },
41
+ { value: '选项 3', label: '天津' },
42
+ { value: '选项 4', label: '重庆' },
43
+ { value: '选项 5', label: '深圳' }
44
+ ],
45
+ value: '',
46
+ boxVisibility: false,
47
+ optionLabel: '',
48
+ optionValue: ''
49
+ }
50
+ },
51
+ methods: {
52
+ handleAddOption() {
53
+ this.optionValue = ''
54
+ this.optionLabel = ''
55
+ this.boxVisibility = true
56
+ },
57
+ handleConfirm() {
58
+ if (!this.optionLabel || !this.optionValue) {
59
+ TinyModal.message({ message: '选项不能为空!', status: 'warning' })
60
+ return
61
+ }
62
+ this.boxVisibility = false
63
+ this.options.unshift({
64
+ value: this.optionValue,
65
+ label: this.optionLabel
66
+ })
67
+ this.$refs.selectDom.focus()
68
+ }
69
+ }
70
+ }
71
+ </script>
72
+
73
+ <style lang="less" scoped>
74
+ .tiny-select {
75
+ width: 280px;
76
+ }
77
+ </style>
@@ -0,0 +1,62 @@
1
+ <template>
2
+ <div>
3
+ <p>场景 1:默认不可搜索时,获取焦点不下拉</p>
4
+ <br />
5
+ <tiny-button @click="handleFocus1"> 点击获取焦点 </tiny-button>
6
+ <tiny-select v-model="value" ref="selectOnlyFocusRef">
7
+ <tiny-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </tiny-option>
8
+ </tiny-select>
9
+ <br /><br />
10
+ <p>场景 2:设置不可搜索时,获取焦点并自动下拉</p>
11
+ <br />
12
+ <tiny-button @click="handleFocus2"> 点击获取焦点 </tiny-button>
13
+ <tiny-select v-model="value" ref="selectAutoDropRef" automatic-dropdown>
14
+ <tiny-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </tiny-option>
15
+ </tiny-select>
16
+ </div>
17
+ </template>
18
+
19
+ <script>
20
+ import { TinySelectWrapper as TinySelect, TinyOption, TinyButton } from '@opentiny/vue'
21
+
22
+ export default {
23
+ components: {
24
+ TinySelect,
25
+ TinyOption,
26
+ TinyButton
27
+ },
28
+ data() {
29
+ return {
30
+ options: [
31
+ { value: '选项 1', label: '北京' },
32
+ { value: '选项 2', label: '上海' },
33
+ { value: '选项 3', label: '天津' },
34
+ { value: '选项 4', label: '重庆' },
35
+ { value: '选项 5', label: '深圳' }
36
+ ],
37
+ value: ''
38
+ }
39
+ },
40
+ methods: {
41
+ handleFocus1() {
42
+ this.$refs.selectOnlyFocusRef.focus()
43
+ },
44
+ handleFocus2() {
45
+ this.$refs.selectAutoDropRef.focus()
46
+ }
47
+ }
48
+ }
49
+ </script>
50
+
51
+ <style lang="less" scoped>
52
+ .tiny-select {
53
+ width: 280px;
54
+ }
55
+ p {
56
+ font-size: 14px;
57
+ line-height: 1.5;
58
+ }
59
+ .tiny-button {
60
+ margin-right: 10px;
61
+ }
62
+ </style>
@@ -0,0 +1,47 @@
1
+ <template>
2
+ <div>
3
+ <div>选中的值为: {{ value }}</div>
4
+ <br />
5
+ <div>场景 1:标签式</div>
6
+ <br />
7
+ <tiny-select v-model="value">
8
+ <tiny-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" :icon="item.icon">
9
+ </tiny-option>
10
+ </tiny-select>
11
+ <br />
12
+ <br />
13
+ <div>场景 2:配置式</div>
14
+ <br />
15
+ <tiny-select v-model="value" :options="options"> </tiny-select>
16
+ </div>
17
+ </template>
18
+
19
+ <script>
20
+ import { TinySelectWrapper as TinySelect, TinyOption } from '@opentiny/vue'
21
+ import { iconFile } from '@opentiny/vue-icon'
22
+
23
+ export default {
24
+ components: {
25
+ TinySelect,
26
+ TinyOption
27
+ },
28
+ data() {
29
+ return {
30
+ options: [
31
+ { value: '选项 1', label: '北京', icon: iconFile() },
32
+ { value: '选项 2', label: '上海', icon: iconFile() },
33
+ { value: '选项 3', label: '天津', icon: iconFile() },
34
+ { value: '选项 4', label: '重庆', icon: iconFile() },
35
+ { value: '选项 5', label: '深圳', icon: iconFile() }
36
+ ],
37
+ value: ''
38
+ }
39
+ }
40
+ }
41
+ </script>
42
+
43
+ <style lang="less" scoped>
44
+ .tiny-select {
45
+ width: 280px;
46
+ }
47
+ </style>
@@ -0,0 +1,44 @@
1
+ <template>
2
+ <div>
3
+ <tiny-select v-model="value" value-key="val">
4
+ <tiny-option v-for="(item, index) in options" :key="index" :label="item.text" :value="item.obj"> </tiny-option>
5
+ </tiny-select>
6
+ <br /><br />
7
+ <p class="value">
8
+ {{ value }}
9
+ </p>
10
+ </div>
11
+ </template>
12
+
13
+ <script>
14
+ import { TinySelectWrapper as TinySelect, TinyOption } from '@opentiny/vue'
15
+
16
+ export default {
17
+ components: {
18
+ TinySelect,
19
+ TinyOption
20
+ },
21
+ data() {
22
+ return {
23
+ options: [
24
+ { obj: { val: '选项 1', id: 1 }, text: '北京' },
25
+ { obj: { val: '选项 2', id: 2 }, text: '上海' },
26
+ { obj: { val: '选项 3', id: 3 }, text: '天津' },
27
+ { obj: { val: '选项 4', id: 4 }, text: '重庆' },
28
+ { obj: { val: '选项 5', id: 5 }, text: '深圳' }
29
+ ],
30
+ value: { val: '选项 3', id: 3 }
31
+ }
32
+ }
33
+ }
34
+ </script>
35
+
36
+ <style lang="less" scoped>
37
+ .tiny-select {
38
+ width: 280px;
39
+ }
40
+ p {
41
+ font-size: 14px;
42
+ line-height: 1.5;
43
+ }
44
+ </style>
@@ -0,0 +1,49 @@
1
+ <template>
2
+ <div>
3
+ <tiny-select v-model="value" clearable :options="options" :cache-op="cacheOp" @change="cacheChange"></tiny-select>
4
+ <p class="cache-value">
5
+ {{ cacheValue }}
6
+ </p>
7
+ </div>
8
+ </template>
9
+
10
+ <script>
11
+ import { TinySelectWrapper as TinySelect } from '@opentiny/vue'
12
+
13
+ export default {
14
+ components: {
15
+ TinySelect
16
+ },
17
+ data() {
18
+ return {
19
+ cacheOp: {
20
+ key: 'test'
21
+ },
22
+ cacheValue: '',
23
+ options: [
24
+ { value: '选项 1', label: '北京' },
25
+ { value: '选项 2', label: '上海' },
26
+ { value: '选项 3', label: '天津' },
27
+ { value: '选项 4', label: '重庆' },
28
+ { value: '选项 5', label: '深圳' }
29
+ ],
30
+ value: '选项 3'
31
+ }
32
+ },
33
+ methods: {
34
+ cacheChange() {
35
+ this.cacheValue = window.localStorage.getItem(`tiny_memorize_${this.cacheOp.key}`)
36
+ }
37
+ }
38
+ }
39
+ </script>
40
+
41
+ <style lang="less" scoped>
42
+ .tiny-select {
43
+ width: 280px;
44
+ }
45
+ p {
46
+ font-size: 14px;
47
+ line-height: 1.5;
48
+ }
49
+ </style>
@@ -0,0 +1,54 @@
1
+ <template>
2
+ <div>
3
+ <p>
4
+ 场景 1:单选,val 找不到匹配值,val 为: ,<span class="val">{{ val }}</span>
5
+ </p>
6
+ <br />
7
+ <tiny-select v-model="val" :clear-no-match-value="true">
8
+ <tiny-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </tiny-option>
9
+ </tiny-select>
10
+ <br /><br />
11
+
12
+ <p>
13
+ 场景 2:多选,multiVal 找不到匹配值,multiVal 为:<span class="multi-val">{{ multiVal }}</span>
14
+ </p>
15
+ <br />
16
+ <tiny-select v-model="multiVal" :clear-no-match-value="true" multiple>
17
+ <tiny-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </tiny-option>
18
+ </tiny-select>
19
+ </div>
20
+ </template>
21
+
22
+ <script>
23
+ import { TinySelectWrapper as TinySelect, TinyOption } from '@opentiny/vue'
24
+
25
+ export default {
26
+ components: {
27
+ TinySelect,
28
+ TinyOption
29
+ },
30
+ data() {
31
+ return {
32
+ options: [
33
+ { value: '选项 1', label: '北京' },
34
+ { value: '选项 2', label: '上海' },
35
+ { value: '选项 3', label: '天津' },
36
+ { value: '选项 4', label: '重庆' },
37
+ { value: '选项 5', label: '深圳' }
38
+ ],
39
+ val: '11',
40
+ multiVal: ['选项 2', '11']
41
+ }
42
+ }
43
+ }
44
+ </script>
45
+
46
+ <style lang="less" scoped>
47
+ .tiny-select {
48
+ width: 280px;
49
+ }
50
+ p {
51
+ font-size: 14px;
52
+ line-height: 1.5;
53
+ }
54
+ </style>
@@ -0,0 +1,34 @@
1
+ <template>
2
+ <tiny-select v-model="value" clearable>
3
+ <tiny-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </tiny-option>
4
+ </tiny-select>
5
+ </template>
6
+
7
+ <script>
8
+ import { TinySelectWrapper as TinySelect, TinyOption } from '@opentiny/vue'
9
+
10
+ export default {
11
+ components: {
12
+ TinySelect,
13
+ TinyOption
14
+ },
15
+ data() {
16
+ return {
17
+ options: [
18
+ { value: '选项 1', label: '北京' },
19
+ { value: '选项 2', label: '上海' },
20
+ { value: '选项 3', label: '天津' },
21
+ { value: '选项 4', label: '重庆' },
22
+ { value: '选项 5', label: '深圳' }
23
+ ],
24
+ value: '选项 3'
25
+ }
26
+ }
27
+ }
28
+ </script>
29
+
30
+ <style lang="less" scoped>
31
+ .tiny-select {
32
+ width: 280px;
33
+ }
34
+ </style>