sard-uniapp 1.19.2 → 1.19.3

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 (216) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/components/accordion/README.md +91 -0
  3. package/components/accordion/accordion.vue +7 -0
  4. package/components/accordion-item/accordion-item.vue +9 -0
  5. package/components/action-sheet/README.md +85 -0
  6. package/components/action-sheet/action-sheet.vue +15 -0
  7. package/components/alert/README.md +74 -0
  8. package/components/alert/alert.vue +10 -0
  9. package/components/avatar/README.md +86 -0
  10. package/components/avatar/avatar.vue +8 -0
  11. package/components/back-top/README.md +134 -0
  12. package/components/back-top/back-top.vue +9 -0
  13. package/components/badge/README.md +95 -0
  14. package/components/badge/badge.vue +11 -0
  15. package/components/button/README.md +162 -0
  16. package/components/button/button.vue +46 -0
  17. package/components/calendar/README.md +94 -0
  18. package/components/calendar/calendar.vue +19 -0
  19. package/components/calendar-input/README.md +65 -0
  20. package/components/calendar-input/calendar-input.vue +31 -0
  21. package/components/calendar-popout/README.md +100 -0
  22. package/components/calendar-popout/calendar-popout.vue +25 -0
  23. package/components/card/README.md +82 -0
  24. package/components/card/card.vue +9 -0
  25. package/components/cascader/README.md +117 -0
  26. package/components/cascader/cascader.vue +13 -0
  27. package/components/cascader-input/README.md +51 -0
  28. package/components/cascader-input/cascader-input.vue +25 -0
  29. package/components/cascader-popout/README.md +53 -0
  30. package/components/cascader-popout/cascader-popout.vue +19 -0
  31. package/components/checkbox/README.md +185 -0
  32. package/components/checkbox/checkbox.vue +17 -0
  33. package/components/checkbox-group/checkbox-group.vue +15 -0
  34. package/components/checkbox-input/README.md +44 -0
  35. package/components/checkbox-input/checkbox-input.vue +22 -0
  36. package/components/checkbox-popout/README.md +52 -0
  37. package/components/checkbox-popout/checkbox-popout.vue +19 -0
  38. package/components/col/col.vue +7 -0
  39. package/components/collapse/README.md +45 -0
  40. package/components/collapse/collapse.vue +3 -0
  41. package/components/config/index.d.ts +2 -0
  42. package/components/config/index.js +1 -0
  43. package/components/count-down/README.md +97 -0
  44. package/components/count-down/count-down.vue +8 -0
  45. package/components/count-to/README.md +61 -0
  46. package/components/count-to/count-to.vue +7 -0
  47. package/components/crop-image/README.md +86 -0
  48. package/components/crop-image/crop-image.vue +15 -0
  49. package/components/datetime-picker/README.md +136 -0
  50. package/components/datetime-picker/datetime-picker.vue +14 -0
  51. package/components/datetime-picker-input/README.md +82 -0
  52. package/components/datetime-picker-input/datetime-picker-input.vue +25 -0
  53. package/components/datetime-picker-popout/README.md +77 -0
  54. package/components/datetime-picker-popout/datetime-picker-popout.vue +19 -0
  55. package/components/datetime-range-picker/README.md +49 -0
  56. package/components/datetime-range-picker/datetime-range-picker.vue +15 -0
  57. package/components/datetime-range-picker-input/README.md +58 -0
  58. package/components/datetime-range-picker-input/datetime-range-picker-input.vue +26 -0
  59. package/components/datetime-range-picker-popout/README.md +53 -0
  60. package/components/datetime-range-picker-popout/datetime-range-picker-popout.vue +20 -0
  61. package/components/dialog/README.md +192 -0
  62. package/components/dialog/dialog.vue +33 -0
  63. package/components/dialog-agent/dialog-agent.vue +21 -0
  64. package/components/divider/README.md +80 -0
  65. package/components/divider/divider.vue +8 -0
  66. package/components/dropdown/README.md +168 -0
  67. package/components/dropdown/common.d.ts +7 -0
  68. package/components/dropdown/common.js +1 -0
  69. package/components/dropdown/dropdown.vue +16 -1
  70. package/components/dropdown-item/dropdown-item.vue +51 -4
  71. package/components/empty/README.md +71 -0
  72. package/components/empty/empty.vue +8 -0
  73. package/components/fab/README.md +111 -0
  74. package/components/fab/fab.vue +18 -0
  75. package/components/floating-bubble/README.md +70 -0
  76. package/components/floating-bubble/floating-bubble.vue +11 -0
  77. package/components/floating-panel/README.md +78 -0
  78. package/components/floating-panel/floating-panel.vue +11 -0
  79. package/components/form/README.md +308 -0
  80. package/components/form/form.vue +19 -0
  81. package/components/form-item/form-item.vue +17 -0
  82. package/components/grid/README.md +140 -0
  83. package/components/grid/grid.vue +11 -0
  84. package/components/grid-item/grid-item.vue +15 -0
  85. package/components/icon/README.md +118 -0
  86. package/components/icon/common.d.ts +2 -0
  87. package/components/icon/icon.d.ts +1 -0
  88. package/components/icon/icon.vue +18 -3
  89. package/components/indexes/README.md +83 -0
  90. package/components/indexes/indexes.vue +7 -0
  91. package/components/indexes-anchor/indexes-anchor.vue +5 -0
  92. package/components/input/README.md +170 -0
  93. package/components/input/input.vue +55 -0
  94. package/components/keyboard/README.md +82 -0
  95. package/components/keyboard/keyboard.vue +7 -0
  96. package/components/layout/README.md +89 -0
  97. package/components/list/README.md +118 -0
  98. package/components/list/list.vue +8 -0
  99. package/components/list-item/list-item.vue +15 -0
  100. package/components/load-more/README.md +75 -0
  101. package/components/load-more/load-more.vue +11 -0
  102. package/components/loading/README.md +89 -0
  103. package/components/loading/loading.vue +13 -0
  104. package/components/lucky-draw/README.md +174 -0
  105. package/components/marquee/README.md +65 -0
  106. package/components/marquee/marquee.vue +7 -0
  107. package/components/menu/_README.md +61 -0
  108. package/components/navbar/README.md +123 -0
  109. package/components/navbar/navbar.vue +11 -0
  110. package/components/navbar-item/navbar-item.vue +10 -0
  111. package/components/notice-bar/README.md +135 -0
  112. package/components/notice-bar/notice-bar.vue +17 -0
  113. package/components/notify/README.md +118 -0
  114. package/components/notify/notify.vue +11 -0
  115. package/components/notify-agent/notify-agent.vue +12 -0
  116. package/components/overlay/README.md +56 -0
  117. package/components/overlay/overlay.vue +10 -0
  118. package/components/pagination/README.md +80 -0
  119. package/components/pagination/pagination.vue +15 -0
  120. package/components/password-input/README.md +87 -0
  121. package/components/password-input/password-input.vue +17 -0
  122. package/components/picker/README.md +115 -0
  123. package/components/picker/picker.vue +10 -0
  124. package/components/picker-input/README.md +51 -0
  125. package/components/picker-input/picker-input.vue +21 -0
  126. package/components/picker-popout/README.md +51 -0
  127. package/components/picker-popout/picker-popout.vue +15 -0
  128. package/components/popout/README.md +111 -0
  129. package/components/popout/popout.vue +29 -0
  130. package/components/popout-input/README.md +55 -0
  131. package/components/popout-input/popout-input.vue +15 -0
  132. package/components/popover/README.md +191 -0
  133. package/components/popover/popover.vue +15 -0
  134. package/components/popover-reference/popover-reference.vue +5 -0
  135. package/components/popup/README.md +67 -0
  136. package/components/popup/popup.vue +20 -0
  137. package/components/progress-bar/README.md +90 -0
  138. package/components/progress-bar/progress-bar.vue +13 -0
  139. package/components/progress-circle/README.md +75 -0
  140. package/components/progress-circle/progress-circle.vue +10 -0
  141. package/components/pull-down-refresh/README.md +100 -0
  142. package/components/pull-down-refresh/pull-down-refresh.vue +11 -0
  143. package/components/qrcode/README.md +103 -0
  144. package/components/qrcode/qrcode.vue +13 -0
  145. package/components/radio/README.md +172 -0
  146. package/components/radio/radio.vue +13 -0
  147. package/components/radio-group/radio-group.vue +16 -0
  148. package/components/radio-input/README.md +44 -0
  149. package/components/radio-input/radio-input.vue +23 -0
  150. package/components/radio-popout/README.md +52 -0
  151. package/components/radio-popout/radio-popout.vue +20 -0
  152. package/components/rate/README.md +106 -0
  153. package/components/rate/rate.vue +22 -0
  154. package/components/result/README.md +66 -0
  155. package/components/result/result.vue +10 -0
  156. package/components/row/row.vue +7 -0
  157. package/components/scroll-spy/README.md +70 -0
  158. package/components/scroll-spy/scroll-spy.vue +13 -0
  159. package/components/search/README.md +117 -0
  160. package/components/search/search.vue +25 -0
  161. package/components/share-sheet/README.md +94 -0
  162. package/components/share-sheet/share-sheet.vue +20 -0
  163. package/components/sidebar/README.md +118 -0
  164. package/components/sidebar/sidebar.vue +10 -0
  165. package/components/sidebar-item/sidebar-item.vue +8 -0
  166. package/components/signature/README.md +99 -0
  167. package/components/signature/signature.vue +20 -0
  168. package/components/skeleton/README.md +128 -0
  169. package/components/skeleton/skeleton.vue +12 -0
  170. package/components/skeleton-avatar/skeleton-avatar.vue +9 -0
  171. package/components/skeleton-block/skeleton-block.vue +8 -0
  172. package/components/skeleton-paragraph/skeleton-paragraph.vue +9 -0
  173. package/components/skeleton-title/skeleton-title.vue +8 -0
  174. package/components/slider/README.md +140 -0
  175. package/components/slider/slider.vue +29 -0
  176. package/components/space/README.md +82 -0
  177. package/components/space/space.vue +9 -0
  178. package/components/status-bar/README.md +72 -0
  179. package/components/status-bar/status-bar.vue +6 -0
  180. package/components/step/step.vue +9 -1
  181. package/components/stepper/README.md +94 -0
  182. package/components/stepper/stepper.vue +24 -0
  183. package/components/steps/README.md +142 -0
  184. package/components/steps/steps.vue +15 -0
  185. package/components/style/README.md +20 -0
  186. package/components/swipe-action/README.md +82 -0
  187. package/components/swipe-action/swipe-action.vue +7 -0
  188. package/components/swiper-dot/README.md +45 -0
  189. package/components/swiper-dot/swiper-dot.vue +9 -0
  190. package/components/switch/README.md +89 -0
  191. package/components/switch/switch.vue +18 -0
  192. package/components/tab/tab.vue +8 -0
  193. package/components/tabbar/README.md +111 -0
  194. package/components/tabbar/tabbar.vue +12 -0
  195. package/components/tabbar-item/tabbar-item.vue +12 -0
  196. package/components/tabbar-pit/README.md +41 -0
  197. package/components/tabbar-pit/tabbar-pit.vue +5 -0
  198. package/components/table/README.md +162 -0
  199. package/components/table/table.vue +7 -0
  200. package/components/table-cell/table-cell.vue +7 -0
  201. package/components/table-row/table-row.vue +5 -0
  202. package/components/tabs/README.md +113 -0
  203. package/components/tabs/tabs.vue +10 -0
  204. package/components/tag/README.md +96 -0
  205. package/components/tag/tag.vue +14 -0
  206. package/components/timeline/README.md +66 -0
  207. package/components/timeline/timeline.vue +4 -0
  208. package/components/timeline-item/timeline-item.vue +9 -0
  209. package/components/toast/README.md +111 -0
  210. package/components/toast/toast.vue +11 -0
  211. package/components/toast-agent/toast-agent.vue +11 -0
  212. package/components/tree/README.md +208 -0
  213. package/components/tree/tree.vue +21 -0
  214. package/components/upload/README.md +154 -0
  215. package/components/upload/upload.vue +22 -0
  216. package/package.json +74 -45
@@ -0,0 +1,115 @@
1
+ ---
2
+ nav: 组件
3
+ title: Picker
4
+ subtitle: 选择器
5
+ group: 表单组件
6
+ ---
7
+
8
+ ## 介绍
9
+
10
+ 一个或多个可滚动列表选择器。
11
+
12
+ ## 引入
13
+
14
+ ```ts
15
+ import Picker from 'sard-uniapp/components/picker/picker.vue'
16
+ ```
17
+
18
+ ## 代码演示
19
+
20
+ ### 基础使用
21
+
22
+ 通过 `v-model` 绑定当前值,通过 `columns` 配置选项数据。
23
+
24
+ @code('${DEMO_PATH}/picker/demo/Basic.vue')
25
+
26
+ ### 对象类型
27
+
28
+ 列的每一项可以为一个对象,使用 `optionKeys` 属性可以指定对象中哪个属性值为选中的值,哪个属性值为要显示的标签。
29
+
30
+ @code('${DEMO_PATH}/picker/demo/ObjectOption.vue')
31
+
32
+ ### 多列
33
+
34
+ 当 `columns` 属性值为一个二维数组时会显示为多列。
35
+
36
+ @code('${DEMO_PATH}/picker/demo/Multiple.vue')
37
+
38
+ ### 对象类型多列
39
+
40
+ `columns` 属性值为对象类型的二维数组。
41
+
42
+ @code('${DEMO_PATH}/picker/demo/ObjectMultiple.vue')
43
+
44
+ ### 级联选择
45
+
46
+ 当 `columns` 第一个元素为对象且其 `children` 属性值为数组时会被当作级联选择。
47
+
48
+ @code('${DEMO_PATH}/picker/demo/Cascaded.vue')
49
+
50
+ ### 插槽
51
+
52
+ 可通过 `custom` 插槽自定义每一个选项的内容。
53
+
54
+ @info
55
+
56
+ 因小程序不支持循环中的插槽,因此循环逻辑要自行实现;
57
+
58
+ 因 `picker-view-column` 要为 `picker-view` 的直接子元素,因此要把 `picker-view` 提取出来,要自行绑定属性和事件。
59
+
60
+ @endinfo
61
+
62
+ @code('${DEMO_PATH}/picker/demo/Slot.vue')
63
+
64
+ ## API
65
+
66
+ ### PickerProps
67
+
68
+ | 属性 | 描述 | 类型 | 默认值 |
69
+ | ---------------- | -------------------------------------------------- | ---------------------------------- | ------------------------------------------------------ |
70
+ | root-class | 组件根元素类名 | string | - |
71
+ | root-style | 组件根元素样式 | StyleValue | - |
72
+ | columns | 配置每一列的数据 | PickerOption[] \| PickerOption[][] | [] |
73
+ | option-keys | 自定义 `columns` 结构中的字段 | PickerOptionKeys | {label: 'label', value: 'value', children: 'children'} |
74
+ | model-value | 选中项的值 | any | - |
75
+ | immediate-change | 是否在手指松开时立即触发 `update:model-value` 事件 | boolean | false |
76
+
77
+ ### PickerSlots
78
+
79
+ | 插槽 | 描述 | 属性 |
80
+ | ----------------------- | ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
81
+ | custom <sup>1.17+</sup> | 自定义选项的内容 | { columns: any[][]; value: number[]; pickerViewClass: string; maskClass: string; indicatorClass: string; onChange: (event: any) => void;} |
82
+
83
+ ### PickerEmits
84
+
85
+ | 事件 | 描述 | 类型 |
86
+ | ------------------------ | -------------------- | ------------------------------------------------------------------------ |
87
+ | update:model-value | 选中的选项改变时触发 | (value: any, selectedOptions: PickerOption[], indexes: number[]) => void |
88
+ | change <sup>1.9.2+</sup> | 选中的选项改变时触发 | (value: any, selectedOptions: PickerOption[], indexes: number[]) => void |
89
+
90
+ ### PickerOption
91
+
92
+ ```tsx
93
+ type PickerOption =
94
+ | {
95
+ [key: PropertyKey]: any
96
+ }
97
+ | number
98
+ | string
99
+ ```
100
+
101
+ ### PickerOptionKeys
102
+
103
+ ```tsx
104
+ interface PickerOptionKeys {
105
+ label?: string
106
+ value?: string
107
+ children?: string
108
+ }
109
+ ```
110
+
111
+ ## 主题定制
112
+
113
+ ### CSS 变量
114
+
115
+ @code('./variables.scss#variables')
@@ -52,6 +52,16 @@ import {
52
52
  defaultPickerProps
53
53
  } from "./common";
54
54
  import SarPickerItem from "../picker-item/picker-item.vue";
55
+ /**
56
+ * @property {string} rootClass 组件根元素类名,默认值:-。
57
+ * @property {StyleValue} rootStyle 组件根元素样式,默认值:-。
58
+ * @property {PickerOption[] | PickerOption[][]} columns 配置每一列的数据,默认值:[]。
59
+ * @property {PickerOptionKeys} optionKeys 自定义 `columns` 结构中的字段,默认值:{label: 'label', value: 'value', children: 'children'}。
60
+ * @property {any} modelValue 选中项的值,默认值:-。
61
+ * @property {boolean} immediateChange 是否在手指松开时立即触发 `update:model-value` 事件,默认值:false。
62
+ * @event {(value: any, selectedOptions: PickerOption[], indexes: number[]) => void} update 选中的选项改变时触发
63
+ * @event {(value: any, selectedOptions: PickerOption[], indexes: number[]) => void} change 选中的选项改变时触发
64
+ */
55
65
  export default _defineComponent({
56
66
  components: {
57
67
  SarPickerItem,
@@ -0,0 +1,51 @@
1
+ ---
2
+ nav: 组件
3
+ title: PickerInput
4
+ subtitle: 选择器输入框
5
+ group: 表单组件
6
+ ---
7
+
8
+ ## 介绍
9
+
10
+ 组合了选择器弹出框、输入框组件,实现了便捷快速的选择功能。
11
+
12
+ ## 引入
13
+
14
+ ```ts
15
+ import PickerInput from 'sard-uniapp/components/picker-input/picker-input.vue'
16
+ ```
17
+
18
+ ## 代码演示
19
+
20
+ ### 基础使用
21
+
22
+ 使用 `v-model` 绑定当前值,通过 `title` 和 `placeholder` 属性设置弹出框标题和输入框占位文本。
23
+
24
+ 在点击输入框后会显示包裹选择器的弹出框。
25
+
26
+ @code('${DEMO_PATH}/picker-input/demo/Basic.vue')
27
+
28
+ ## API
29
+
30
+ ### PickerInputProps
31
+
32
+ 继承 [`PickerPopoutProps`](./picker-popout#PickerPopoutProps) 并有以下额外属性:
33
+
34
+ | 属性 | 描述 | 类型 | 默认值 |
35
+ | --------------------------------- | ---------------------- | ---------- | --------------- |
36
+ | root-class | 弹出式输入框根元素类名 | string | - |
37
+ | root-style | 弹出式输入框根元素样式 | StyleValue | - |
38
+ | disabled | 禁用状态 | boolean | false |
39
+ | readonly | 只读状态 | boolean | false |
40
+ | loading | 加载状态 | boolean | false |
41
+ | clearable | 是否显示清空按钮 | boolean | false |
42
+ | placeholder | 输入框占位符内容 | string | - |
43
+ | value-on-clear <sup>1.19.2+</sup> | 设置点击清除按钮后的值 | () => any | () => undefined |
44
+
45
+ ### PickerSlots
46
+
47
+ 继承 [`PickerPopoutSlots`](./picker-popout#PickerPopoutSlots)
48
+
49
+ ### PickerInputEmits
50
+
51
+ 继承 [`PickerPopoutEmits`](./picker-popout#PickerPopoutEmits) 并有以下额外属性:
@@ -65,6 +65,27 @@ import { usePopoutInput } from "../../use";
65
65
  import {
66
66
  defaultPickerInputProps
67
67
  } from "./common";
68
+ /**
69
+ * @property {string} rootClass 弹出式输入框根元素类名,默认值:-。
70
+ * @property {StyleValue} rootStyle 弹出式输入框根元素样式,默认值:-。
71
+ * @property {PickerOption[] | PickerOption[][]} columns 配置每一列的数据,默认值:[]。
72
+ * @property {PickerOptionKeys} optionKeys 自定义 `columns` 结构中的字段,默认值:{label: 'label', value: 'value', children: 'children'}。
73
+ * @property {any} modelValue 选中项的值,默认值:-。
74
+ * @property {boolean} immediateChange 是否在手指松开时立即触发 `update:model-value` 事件,默认值:false。
75
+ * @property {string} popoutClass 弹窗框根元素类名,默认值:-。
76
+ * @property {StyleValue} popoutStyle 弹窗框根元素样式,默认值:-。
77
+ * @property {boolean} visible 是否显示弹出框,默认值:-。
78
+ * @property {string} title 弹出框标题,默认值:-。
79
+ * @property {boolean} validateEvent 是否触发表单验证,默认值:true。
80
+ * @property {boolean} disabled 禁用状态,默认值:false。
81
+ * @property {boolean} readonly 只读状态,默认值:false。
82
+ * @property {boolean} loading 加载状态,默认值:false。
83
+ * @property {boolean} clearable 是否显示清空按钮,默认值:false。
84
+ * @property {string} placeholder 输入框占位符内容,默认值:-。
85
+ * @property {() => any} valueOnClear 设置点击清除按钮后的值,默认值:() => undefined。
86
+ * @event {(visible: boolean) => void} update 弹出框显隐时触发
87
+ * @event {(value: any) => void} change 选择器输入组件值改变时触发
88
+ */
68
89
  export default _defineComponent({
69
90
  components: {
70
91
  SarPopoutInput,
@@ -0,0 +1,51 @@
1
+ ---
2
+ nav: 组件
3
+ title: PickerPopout
4
+ subtitle: 选择器弹出框
5
+ group: 表单组件
6
+ version: 1.16+
7
+ ---
8
+
9
+ ## 介绍
10
+
11
+ 组合了选择器、弹出框组件,实现了便捷快速的选择功能。
12
+
13
+ ## 引入
14
+
15
+ ```ts
16
+ import PickerPopout from 'sard-uniapp/components/picker-popout/picker-popout.vue'
17
+ ```
18
+
19
+ ## 代码演示
20
+
21
+ ### 基础使用
22
+
23
+ 使用 `v-model` 双向绑定当前值,使用 `v-model:visible` 控制弹出框显隐。
24
+
25
+ @code('${DEMO_PATH}/picker-popout/demo/Basic.vue')
26
+
27
+ ## API
28
+
29
+ ### PickerPopoutProps
30
+
31
+ 继承 [`PickerProps`](./picker#PickerProps) 并有以下额外属性:
32
+
33
+ | 属性 | 描述 | 类型 | 默认值 |
34
+ | ----------------- | ---------------- | ---------- | ------ |
35
+ | popout-class | 弹窗框根元素类名 | string | - |
36
+ | popout-style | 弹窗框根元素样式 | StyleValue | - |
37
+ | visible (v-model) | 是否显示弹出框 | boolean | - |
38
+ | title | 弹出框标题 | string | - |
39
+ | validate-event | 是否触发表单验证 | boolean | true |
40
+
41
+ ### PickerPopoutSlots
42
+
43
+ 继承 [`PickerSlots`](./picker#PickerSlots)
44
+
45
+ ### PickerPopoutEmits
46
+
47
+ | 事件 | 描述 | 类型 |
48
+ | ------------------ | -------------------------- | -------------------------- |
49
+ | update:model-value | 选择器输入组件值改变时触发 | (value: any) => void |
50
+ | change | 选择器输入组件值改变时触发 | (value: any) => void |
51
+ | update:visible | 弹出框显隐时触发 | (visible: boolean) => void |
@@ -57,6 +57,21 @@ import { isEmptyBinding, isNumber } from "../../utils";
57
57
  import { defaultOptionKeys, getInitialValue } from "../picker/common";
58
58
  import { computed } from "vue";
59
59
  import { useFormPopout } from "../../use";
60
+ /**
61
+ * @property {string} rootClass 组件根元素类名,默认值:-。
62
+ * @property {StyleValue} rootStyle 组件根元素样式,默认值:-。
63
+ * @property {PickerOption[] | PickerOption[][]} columns 配置每一列的数据,默认值:[]。
64
+ * @property {PickerOptionKeys} optionKeys 自定义 `columns` 结构中的字段,默认值:{label: 'label', value: 'value', children: 'children'}。
65
+ * @property {any} modelValue 选中项的值,默认值:-。
66
+ * @property {boolean} immediateChange 是否在手指松开时立即触发 `update:model-value` 事件,默认值:false。
67
+ * @property {string} popoutClass 弹窗框根元素类名,默认值:-。
68
+ * @property {StyleValue} popoutStyle 弹窗框根元素样式,默认值:-。
69
+ * @property {boolean} visible 是否显示弹出框,默认值:-。
70
+ * @property {string} title 弹出框标题,默认值:-。
71
+ * @property {boolean} validateEvent 是否触发表单验证,默认值:true。
72
+ * @event {(visible: boolean) => void} update 弹出框显隐时触发
73
+ * @event {(value: any) => void} change 选择器输入组件值改变时触发
74
+ */
60
75
  export default _defineComponent({
61
76
  components: {
62
77
  SarPopout,
@@ -0,0 +1,111 @@
1
+ ---
2
+ nav: 组件
3
+ title: Popout
4
+ subtitle: 弹出框
5
+ group: 数据展示
6
+ ---
7
+
8
+ ## 介绍
9
+
10
+ 底部弹出框,可以控制组件的展示与交互,可作为其他组件的弹出框容器。
11
+
12
+ ## 引入
13
+
14
+ ```ts
15
+ import Popout from 'sard-uniapp/components/popout/popout.vue'
16
+ ```
17
+
18
+ ## 代码演示
19
+
20
+ ### 基础使用
21
+
22
+ 使用 `visible`属性控制显隐,使用 `title` 属性设置标题。
23
+
24
+ @code('${DEMO_PATH}/popout/demo/Basic.vue')
25
+
26
+ ### 紧凑类型
27
+
28
+ 通过将 `type` 设为 `compact` 可以将确定/取消按钮放到标题两侧,以便节省空间。
29
+
30
+ @code('${DEMO_PATH}/popout/demo/Compact.vue')
31
+
32
+ ### 异步关闭
33
+
34
+ 如果 `beforeClose` 返回 false,则取消关闭弹出框;如果返回 `Promise` 对象,则会在 `resolve` 时才关闭弹出框。
35
+
36
+ @code('${DEMO_PATH}/popout/demo/BeforeClose.vue')
37
+
38
+ ## API
39
+
40
+ ### PopoutProps
41
+
42
+ | 属性 | 描述 | 类型 | 默认值 |
43
+ | ----------------- | -------------------------------------------------------------------- | -------------------- | ------- |
44
+ | root-class | 组件根元素类名 | string | - |
45
+ | root-style | 组件根元素样式 | StyleValue | - |
46
+ | title | 弹出框标题 | string | - |
47
+ | show-cancel | 是否显示取消按钮,适用 `loose` 类型 | boolean | false |
48
+ | cancel-text | 取消按钮文案 | string | '取消' |
49
+ | show-confirm | 是否显示确定按钮,适用 `loose` 类型 | boolean | true |
50
+ | confirm-text | 确定按钮文案 | string | '确定' |
51
+ | show-close | 是否显示关闭按钮,适用 `loose` 类型 | boolean | true |
52
+ | show-footer | 是否显示底部按钮 | boolean | true |
53
+ | type | 弹出框按钮排版方式 | 'compact' \| 'loose' | 'loose' |
54
+ | visible (v-model) | 是否显示弹出框 | boolean | - |
55
+ | before-close | 关闭前的回调,返回 `false` 或 `rejected` 状态的 `Promise` 可阻止关闭 | PopoutBeforeClose | - |
56
+ | duration | 显隐动画时长,单位 ms | number | 300 |
57
+ | overlay-closable | 点击遮罩是否关闭 | boolean | true |
58
+
59
+ ### PopoutBeforeClose
60
+
61
+ - 当点击确定按钮时,`type` 为 `confirm`;
62
+ - 当点击取消按钮时,`type` 为 `cancel`;
63
+ - 当点击关闭按钮或遮罩时,`type` 为 `close`。
64
+
65
+ `loading` 表示当前哪个按钮处于异步关闭状态。
66
+
67
+ ```ts
68
+ type PopoutBeforeClose = (
69
+ type: 'close' | 'cancel' | 'confirm',
70
+ loading: {
71
+ readonly cancel: boolean
72
+ readonly confirm: boolean
73
+ readonly close: boolean
74
+ },
75
+ ) => any | Promise<any>
76
+ ```
77
+
78
+ ### PopoutSlots
79
+
80
+ | 插槽 | 描述 | 属性 |
81
+ | -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------ |
82
+ | default | 自定义主体内容 | - |
83
+ | title | 自定义标题 | - |
84
+ | title-prepend <sup>1.19.2+</sup> | 自定义标题前面内容 | - |
85
+ | cancel | 自定义确定按钮内容 | - |
86
+ | confirm | 自定义取消按钮内容 | - |
87
+ | visible | 同默认插槽,额外接收一些判断弹出框显示状态的属性,用于小程序端多节点渲染的性能问题;`whole` 当开始显示到完全隐藏时为真,`already` 当开始显示时到以后都为真 | { whole: boolean, already: boolean } |
88
+
89
+ ### PopoutEmits
90
+
91
+ | 事件 | 描述 | 类型 |
92
+ | -------------------------------- | --------------------------- | ---------------------------------- |
93
+ | update:visible | 显隐时触发 | (visible: boolean) => void |
94
+ | close | 点击关闭按钮或遮罩时触发 | () => void |
95
+ | cancel | 点击取消按钮时触发 | () => void |
96
+ | confirm | 点击确定按钮时触发 | () => void |
97
+ | visible-hook | 入场/退场动画状态改变时触发 | (name: TransitionHookName) => void |
98
+ | before-enter <sup>1.12+</sup> | 入场动画开始前触发 | () => void |
99
+ | enter <sup>1.12+</sup> | 入场动画开始时触发 | () => void |
100
+ | after-enter <sup>1.12+</sup> | 入场动画结束时触发 | () => void |
101
+ | enter-cancelled <sup>1.12+</sup> | 入场动画取消时触发 | () => void |
102
+ | before-leave <sup>1.12+</sup> | 退场动画开始前触发 | () => void |
103
+ | leave <sup>1.12+</sup> | 退场动画开始时触发 | () => void |
104
+ | after-leave <sup>1.12+</sup> | 退场动画结束时触发 | () => void |
105
+ | leave-cancelled <sup>1.12+</sup> | 退场动画取消时触发 | () => void |
106
+
107
+ ## 主题定制
108
+
109
+ ### CSS 变量
110
+
111
+ @code('./variables.scss#variables')
@@ -111,6 +111,35 @@ import { useTranslate } from "../locale";
111
111
  import {
112
112
  defaultPopoutProps
113
113
  } from "./common";
114
+ /**
115
+ * @property {string} rootClass 组件根元素类名,默认值:-。
116
+ * @property {StyleValue} rootStyle 组件根元素样式,默认值:-。
117
+ * @property {string} title 弹出框标题,默认值:-。
118
+ * @property {boolean} showCancel 是否显示取消按钮,适用 `loose` 类型,默认值:false。
119
+ * @property {string} cancelText 取消按钮文案,默认值:'取消'。
120
+ * @property {boolean} showConfirm 是否显示确定按钮,适用 `loose` 类型,默认值:true。
121
+ * @property {string} confirmText 确定按钮文案,默认值:'确定'。
122
+ * @property {boolean} showClose 是否显示关闭按钮,适用 `loose` 类型,默认值:true。
123
+ * @property {boolean} showFooter 是否显示底部按钮,默认值:true。
124
+ * @property {'compact' | 'loose'} type 弹出框按钮排版方式,默认值:'loose'。
125
+ * @property {boolean} visible 是否显示弹出框,默认值:-。
126
+ * @property {PopoutBeforeClose} beforeClose 关闭前的回调,返回 `false` 或 `rejected` 状态的 `Promise` 可阻止关闭,默认值:-。
127
+ * @property {number} duration 显隐动画时长,单位 ms,默认值:300。
128
+ * @property {boolean} overlayClosable 点击遮罩是否关闭,默认值:true。
129
+ * @event {(visible: boolean) => void} update 显隐时触发
130
+ * @event {() => void} close 点击关闭按钮或遮罩时触发
131
+ * @event {() => void} cancel 点击取消按钮时触发
132
+ * @event {() => void} confirm 点击确定按钮时触发
133
+ * @event {(name: TransitionHookName) => void} visible-hook 入场/退场动画状态改变时触发
134
+ * @event {() => void} before-enter 入场动画开始前触发
135
+ * @event {() => void} enter 入场动画开始时触发
136
+ * @event {() => void} after-enter 入场动画结束时触发
137
+ * @event {() => void} enter-cancelled 入场动画取消时触发
138
+ * @event {() => void} before-leave 退场动画开始前触发
139
+ * @event {() => void} leave 退场动画开始时触发
140
+ * @event {() => void} after-leave 退场动画结束时触发
141
+ * @event {() => void} leave-cancelled 退场动画取消时触发
142
+ */
114
143
  export default _defineComponent({
115
144
  components: {
116
145
  SarPopup,
@@ -0,0 +1,55 @@
1
+ ---
2
+ nav: 组件
3
+ title: PopoutInput
4
+ subtitle: 弹出式输入框
5
+ group: 表单组件
6
+ ---
7
+
8
+ ## 介绍
9
+
10
+ 输入框组件,用于配合弹出框组件和表单控件一起使用。自定义了输入框样式。
11
+
12
+ ## 引入
13
+
14
+ ```ts
15
+ import PopoutInput from 'sard-uniapp/components/popout-input/popout-input.vue'
16
+ ```
17
+
18
+ ## 代码演示
19
+
20
+ ### 基础使用
21
+
22
+ 使用 `v-model` 绑定值, `click` 事件监听点击事件。
23
+
24
+ @code('${DEMO_PATH}/popout-input/demo/Basic.vue')
25
+
26
+ ## API
27
+
28
+ ### PopoutInputProps
29
+
30
+ | 属性 | 描述 | 类型 | 默认值 |
31
+ | ----------- | ---------------- | ---------- | ------ |
32
+ | root-class | 组件根元素类名 | string | - |
33
+ | root-style | 组件根元素样式 | StyleValue | - |
34
+ | model-value | 输入框值 | string | - |
35
+ | placeholder | 输入框占位符内容 | string | - |
36
+ | disabled | 禁用状态 | boolean | false |
37
+ | readonly | 只读状态 | boolean | false |
38
+ | loading | 加载状态 | boolean | false |
39
+ | clearable | 是否显示清空按钮 | boolean | false |
40
+ | multiline | 是否多行输入框 | boolean | false |
41
+
42
+ ### PopoutInputEmits
43
+
44
+ | 事件 | 描述 | 类型 |
45
+ | ------------------------ | ---------------------------------- | ----------------------- |
46
+ | click | 点击输入框时触发,只读和禁用不触发 | () => void |
47
+ | update:model-value | 输入框值改变时触发 | (value: string) => void |
48
+ | change <sup>1.9.2+</sup> | 输入框值改变时触发 | (value: string) => void |
49
+ | clear | 点击清除按钮时触发 | () => void |
50
+
51
+ ## 主题定制
52
+
53
+ ### CSS 变量
54
+
55
+ @code('./variables.scss#variables')
@@ -53,6 +53,21 @@ import SarInput from "../input/input.vue";
53
53
  import SarIcon from "../icon/icon.vue";
54
54
  import { useFormContext } from "../form/common";
55
55
  import SarLoading from "../loading/loading.vue";
56
+ /**
57
+ * @property {string} rootClass 组件根元素类名,默认值:-。
58
+ * @property {StyleValue} rootStyle 组件根元素样式,默认值:-。
59
+ * @property {string} modelValue 输入框值,默认值:-。
60
+ * @property {string} placeholder 输入框占位符内容,默认值:-。
61
+ * @property {boolean} disabled 禁用状态,默认值:false。
62
+ * @property {boolean} readonly 只读状态,默认值:false。
63
+ * @property {boolean} loading 加载状态,默认值:false。
64
+ * @property {boolean} clearable 是否显示清空按钮,默认值:false。
65
+ * @property {boolean} multiline 是否多行输入框,默认值:false。
66
+ * @event {() => void} click 点击输入框时触发,只读和禁用不触发
67
+ * @event {(value: string) => void} update 输入框值改变时触发
68
+ * @event {(value: string) => void} change 输入框值改变时触发
69
+ * @event {() => void} clear 点击清除按钮时触发
70
+ */
56
71
  export default _defineComponent({
57
72
  components: {
58
73
  SarInput,