sard-uniapp 1.19.2 → 1.19.4

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 (218) hide show
  1. package/CHANGELOG.md +19 -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 +97 -0
  18. package/components/calendar/calendar.vue +29 -1
  19. package/components/calendar/common.d.ts +6 -0
  20. package/components/calendar-input/README.md +65 -0
  21. package/components/calendar-input/calendar-input.vue +40 -0
  22. package/components/calendar-month/calendar-month.vue +5 -2
  23. package/components/calendar-popout/README.md +100 -0
  24. package/components/calendar-popout/calendar-popout.vue +35 -1
  25. package/components/card/README.md +82 -0
  26. package/components/card/card.vue +9 -0
  27. package/components/cascader/README.md +117 -0
  28. package/components/cascader/cascader.vue +13 -0
  29. package/components/cascader-input/README.md +51 -0
  30. package/components/cascader-input/cascader-input.vue +25 -0
  31. package/components/cascader-popout/README.md +53 -0
  32. package/components/cascader-popout/cascader-popout.vue +19 -0
  33. package/components/checkbox/README.md +185 -0
  34. package/components/checkbox/checkbox.vue +17 -0
  35. package/components/checkbox-group/checkbox-group.vue +15 -0
  36. package/components/checkbox-input/README.md +44 -0
  37. package/components/checkbox-input/checkbox-input.vue +22 -0
  38. package/components/checkbox-popout/README.md +52 -0
  39. package/components/checkbox-popout/checkbox-popout.vue +19 -0
  40. package/components/col/col.vue +7 -0
  41. package/components/collapse/README.md +45 -0
  42. package/components/collapse/collapse.vue +3 -0
  43. package/components/config/index.d.ts +2 -0
  44. package/components/config/index.js +1 -0
  45. package/components/count-down/README.md +97 -0
  46. package/components/count-down/count-down.vue +8 -0
  47. package/components/count-to/README.md +61 -0
  48. package/components/count-to/count-to.vue +7 -0
  49. package/components/crop-image/README.md +86 -0
  50. package/components/crop-image/crop-image.vue +15 -0
  51. package/components/datetime-picker/README.md +136 -0
  52. package/components/datetime-picker/datetime-picker.vue +14 -0
  53. package/components/datetime-picker-input/README.md +82 -0
  54. package/components/datetime-picker-input/datetime-picker-input.vue +25 -0
  55. package/components/datetime-picker-popout/README.md +77 -0
  56. package/components/datetime-picker-popout/datetime-picker-popout.vue +19 -0
  57. package/components/datetime-range-picker/README.md +49 -0
  58. package/components/datetime-range-picker/datetime-range-picker.vue +15 -0
  59. package/components/datetime-range-picker-input/README.md +58 -0
  60. package/components/datetime-range-picker-input/datetime-range-picker-input.vue +26 -0
  61. package/components/datetime-range-picker-popout/README.md +53 -0
  62. package/components/datetime-range-picker-popout/datetime-range-picker-popout.vue +20 -0
  63. package/components/dialog/README.md +192 -0
  64. package/components/dialog/dialog.vue +33 -0
  65. package/components/dialog-agent/dialog-agent.vue +21 -0
  66. package/components/divider/README.md +80 -0
  67. package/components/divider/divider.vue +8 -0
  68. package/components/dropdown/README.md +168 -0
  69. package/components/dropdown/common.d.ts +7 -0
  70. package/components/dropdown/common.js +1 -0
  71. package/components/dropdown/dropdown.vue +16 -1
  72. package/components/dropdown-item/dropdown-item.vue +51 -4
  73. package/components/empty/README.md +71 -0
  74. package/components/empty/empty.vue +8 -0
  75. package/components/fab/README.md +111 -0
  76. package/components/fab/fab.vue +18 -0
  77. package/components/floating-bubble/README.md +70 -0
  78. package/components/floating-bubble/floating-bubble.vue +11 -0
  79. package/components/floating-panel/README.md +78 -0
  80. package/components/floating-panel/floating-panel.vue +11 -0
  81. package/components/form/README.md +308 -0
  82. package/components/form/form.vue +19 -0
  83. package/components/form-item/form-item.vue +17 -0
  84. package/components/grid/README.md +140 -0
  85. package/components/grid/grid.vue +11 -0
  86. package/components/grid-item/grid-item.vue +15 -0
  87. package/components/icon/README.md +118 -0
  88. package/components/icon/common.d.ts +2 -0
  89. package/components/icon/icon.d.ts +1 -0
  90. package/components/icon/icon.vue +18 -3
  91. package/components/indexes/README.md +83 -0
  92. package/components/indexes/indexes.vue +7 -0
  93. package/components/indexes-anchor/indexes-anchor.vue +5 -0
  94. package/components/input/README.md +170 -0
  95. package/components/input/input.vue +55 -0
  96. package/components/keyboard/README.md +82 -0
  97. package/components/keyboard/keyboard.vue +7 -0
  98. package/components/layout/README.md +89 -0
  99. package/components/list/README.md +118 -0
  100. package/components/list/list.vue +8 -0
  101. package/components/list-item/list-item.vue +15 -0
  102. package/components/load-more/README.md +75 -0
  103. package/components/load-more/load-more.vue +11 -0
  104. package/components/loading/README.md +89 -0
  105. package/components/loading/loading.vue +13 -0
  106. package/components/lucky-draw/README.md +174 -0
  107. package/components/marquee/README.md +65 -0
  108. package/components/marquee/marquee.vue +7 -0
  109. package/components/menu/_README.md +61 -0
  110. package/components/navbar/README.md +123 -0
  111. package/components/navbar/navbar.vue +11 -0
  112. package/components/navbar-item/navbar-item.vue +10 -0
  113. package/components/notice-bar/README.md +135 -0
  114. package/components/notice-bar/notice-bar.vue +17 -0
  115. package/components/notify/README.md +118 -0
  116. package/components/notify/notify.vue +11 -0
  117. package/components/notify-agent/notify-agent.vue +12 -0
  118. package/components/overlay/README.md +56 -0
  119. package/components/overlay/overlay.vue +10 -0
  120. package/components/pagination/README.md +80 -0
  121. package/components/pagination/pagination.vue +15 -0
  122. package/components/password-input/README.md +87 -0
  123. package/components/password-input/password-input.vue +17 -0
  124. package/components/picker/README.md +115 -0
  125. package/components/picker/picker.vue +10 -0
  126. package/components/picker-input/README.md +51 -0
  127. package/components/picker-input/picker-input.vue +21 -0
  128. package/components/picker-popout/README.md +51 -0
  129. package/components/picker-popout/picker-popout.vue +15 -0
  130. package/components/popout/README.md +111 -0
  131. package/components/popout/popout.vue +29 -0
  132. package/components/popout-input/README.md +55 -0
  133. package/components/popout-input/popout-input.vue +15 -0
  134. package/components/popover/README.md +191 -0
  135. package/components/popover/popover.vue +15 -0
  136. package/components/popover-reference/popover-reference.vue +5 -0
  137. package/components/popup/README.md +67 -0
  138. package/components/popup/popup.vue +20 -0
  139. package/components/progress-bar/README.md +90 -0
  140. package/components/progress-bar/progress-bar.vue +13 -0
  141. package/components/progress-circle/README.md +75 -0
  142. package/components/progress-circle/progress-circle.vue +10 -0
  143. package/components/pull-down-refresh/README.md +100 -0
  144. package/components/pull-down-refresh/pull-down-refresh.vue +11 -0
  145. package/components/qrcode/README.md +103 -0
  146. package/components/qrcode/qrcode.vue +13 -0
  147. package/components/radio/README.md +172 -0
  148. package/components/radio/radio.vue +13 -0
  149. package/components/radio-group/radio-group.vue +16 -0
  150. package/components/radio-input/README.md +44 -0
  151. package/components/radio-input/radio-input.vue +23 -0
  152. package/components/radio-popout/README.md +52 -0
  153. package/components/radio-popout/radio-popout.vue +20 -0
  154. package/components/rate/README.md +106 -0
  155. package/components/rate/rate.vue +22 -0
  156. package/components/result/README.md +66 -0
  157. package/components/result/result.vue +10 -0
  158. package/components/row/row.vue +7 -0
  159. package/components/scroll-spy/README.md +70 -0
  160. package/components/scroll-spy/scroll-spy.vue +13 -0
  161. package/components/search/README.md +117 -0
  162. package/components/search/search.vue +25 -0
  163. package/components/share-sheet/README.md +94 -0
  164. package/components/share-sheet/share-sheet.vue +20 -0
  165. package/components/sidebar/README.md +118 -0
  166. package/components/sidebar/sidebar.vue +10 -0
  167. package/components/sidebar-item/sidebar-item.vue +8 -0
  168. package/components/signature/README.md +99 -0
  169. package/components/signature/signature.vue +20 -0
  170. package/components/skeleton/README.md +128 -0
  171. package/components/skeleton/skeleton.vue +12 -0
  172. package/components/skeleton-avatar/skeleton-avatar.vue +9 -0
  173. package/components/skeleton-block/skeleton-block.vue +8 -0
  174. package/components/skeleton-paragraph/skeleton-paragraph.vue +9 -0
  175. package/components/skeleton-title/skeleton-title.vue +8 -0
  176. package/components/slider/README.md +140 -0
  177. package/components/slider/slider.vue +29 -0
  178. package/components/space/README.md +82 -0
  179. package/components/space/space.vue +9 -0
  180. package/components/status-bar/README.md +72 -0
  181. package/components/status-bar/status-bar.vue +6 -0
  182. package/components/step/step.vue +9 -1
  183. package/components/stepper/README.md +94 -0
  184. package/components/stepper/stepper.vue +24 -0
  185. package/components/steps/README.md +142 -0
  186. package/components/steps/steps.vue +15 -0
  187. package/components/style/README.md +20 -0
  188. package/components/swipe-action/README.md +82 -0
  189. package/components/swipe-action/swipe-action.vue +7 -0
  190. package/components/swiper-dot/README.md +45 -0
  191. package/components/swiper-dot/swiper-dot.vue +9 -0
  192. package/components/switch/README.md +89 -0
  193. package/components/switch/switch.vue +18 -0
  194. package/components/tab/tab.vue +8 -0
  195. package/components/tabbar/README.md +111 -0
  196. package/components/tabbar/tabbar.vue +12 -0
  197. package/components/tabbar-item/tabbar-item.vue +12 -0
  198. package/components/tabbar-pit/README.md +41 -0
  199. package/components/tabbar-pit/tabbar-pit.vue +5 -0
  200. package/components/table/README.md +162 -0
  201. package/components/table/table.vue +7 -0
  202. package/components/table-cell/table-cell.vue +7 -0
  203. package/components/table-row/table-row.vue +5 -0
  204. package/components/tabs/README.md +113 -0
  205. package/components/tabs/tabs.vue +10 -0
  206. package/components/tag/README.md +96 -0
  207. package/components/tag/tag.vue +14 -0
  208. package/components/timeline/README.md +66 -0
  209. package/components/timeline/timeline.vue +4 -0
  210. package/components/timeline-item/timeline-item.vue +9 -0
  211. package/components/toast/README.md +111 -0
  212. package/components/toast/toast.vue +11 -0
  213. package/components/toast-agent/toast-agent.vue +11 -0
  214. package/components/tree/README.md +208 -0
  215. package/components/tree/tree.vue +21 -0
  216. package/components/upload/README.md +154 -0
  217. package/components/upload/upload.vue +22 -0
  218. package/package.json +74 -45
@@ -64,7 +64,10 @@ export default _defineComponent({
64
64
  weekStartsOn: { type: Number, required: true },
65
65
  severalMonths: { type: Boolean, required: false },
66
66
  t: { type: Function, required: true },
67
- bem: { type: null, required: true }
67
+ bem: { type: null, required: true },
68
+ startDateText: { type: String, required: false },
69
+ endDateText: { type: String, required: false },
70
+ sameDateText: { type: String, required: false }
68
71
  },
69
72
  emits: ["day-click"],
70
73
  setup(__props, { expose: __expose, emit: __emit }) {
@@ -132,7 +135,7 @@ export default _defineComponent({
132
135
  disabled,
133
136
  top: "",
134
137
  text: date.getDate() + "",
135
- bottom: isStart && isEnd ? `${props.t("start")}/${props.t("end")}` : isStart ? props.t("start") : isEnd ? props.t("end") : "",
138
+ bottom: isStart && isEnd ? props.sameDateText || `${props.t("start")}/${props.t("end")}` : isStart ? props.startDateText || props.t("start") : isEnd ? props.endDateText || props.t("end") : "",
136
139
  type: isStart && isEnd ? "same" : isStart ? "start" : isMiddle ? "middle" : isEnd ? "end" : selected ? "selected" : "normal"
137
140
  };
138
141
  if (within && props.formatter) {
@@ -0,0 +1,100 @@
1
+ ---
2
+ nav: 组件
3
+ title: CalendarPopout
4
+ subtitle: 日历弹出框
5
+ group: 表单组件
6
+ version: 1.16+
7
+ ---
8
+
9
+ ## 介绍
10
+
11
+ 组合了日历、弹出框组件,实现了便捷快速的日历选择功能。
12
+
13
+ ## 引入
14
+
15
+ ```ts
16
+ import CalendarPopout from 'sard-uniapp/components/calendar-popout/calendar-popout.vue'
17
+ ```
18
+
19
+ ## 代码演示
20
+
21
+ ### 基础使用
22
+
23
+ 使用 `v-model` 双向绑定当前值,使用 `v-model:visible` 控制弹出框显隐。
24
+
25
+ @code('${DEMO_PATH}/calendar-popout/demo/Basic.vue')
26
+
27
+ ### 类型
28
+
29
+ 日历组件可以选择单个值、多个值以及进行范围选择。
30
+
31
+ @code('${DEMO_PATH}/calendar-popout/demo/Type.vue')
32
+
33
+ ### 自定义日期范围
34
+
35
+ 可以使用 `min` 和 `max` 属性限制可以选择的日期的范围。
36
+
37
+ @code('${DEMO_PATH}/calendar-popout/demo/MinMax.vue')
38
+
39
+ ### 最多选择天数
40
+
41
+ 在多个值和范围选择中,使用 `maxDays` 属性可以限制最多可选的天数。
42
+ 超出允许选择的天数后会调用 `overMaxDays` 属性配置的函数。
43
+
44
+ @code('${DEMO_PATH}/calendar-popout/demo/MaxDays.vue')
45
+
46
+ ### 禁用日期
47
+
48
+ `disabledDate` 属性配置的函数接收一个日期对象,如果此函数返回真则禁用这个日期。
49
+
50
+ @code('${DEMO_PATH}/calendar-popout/demo/DisabledDate.vue')
51
+
52
+ ### 自定义起始周
53
+
54
+ 默认一周从星期天开始,使用 `weekStartsOn` 属性可以配置一周从任意星期开始。
55
+ 0 表示从周日开始,1 表示从周一开始。
56
+
57
+ @code('${DEMO_PATH}/calendar-popout/demo/WeekStartsOn.vue')
58
+
59
+ ### 格式化日期
60
+
61
+ `formatter` 属性可以配置一个接收 `CalendarDay` 类型的对象,通过此对象可以自定义当前日期展示的内容和样式。
62
+
63
+ @code('${DEMO_PATH}/calendar-popout/demo/Formatter.vue')
64
+
65
+ ### 展示多个月
66
+
67
+ 默认只展示一个月,如果要表现上下月之间的强关联性,可以设置 `severalMonths` 属性以展示多个月。
68
+ 这时设置的最大最小值范围不能太大,避免渲染大量节点造成性能问题。
69
+
70
+ @code('${DEMO_PATH}/calendar-popout/demo/Several.vue')
71
+
72
+ ## API
73
+
74
+ ### CalendarPopoutProps
75
+
76
+ 继承 [`CalendarProps`](./calendar#CalendarProps) 并有以下额外属性:
77
+
78
+ | 属性 | 描述 | 类型 | 默认值 |
79
+ | ----------------- | ---------------------------------------- | ---------- | ------ |
80
+ | popout-class | 弹窗框根元素类名 | string | - |
81
+ | popout-style | 弹窗框根元素样式 | StyleValue | - |
82
+ | visible (v-model) | 是否显示弹出框 | boolean | - |
83
+ | title | 弹出框标题 | string | - |
84
+ | show-confirm | 是否显示确定按钮,隐藏按钮可用于快捷选择 | boolean | true |
85
+ | validate-event | 是否触发表单验证 | boolean | true |
86
+
87
+ ### CalendarPopoutSlots
88
+
89
+ | 插槽 | 描述 | 属性 |
90
+ | -------------------------------- | ------------------ | ---- |
91
+ | title <sup>1.19.2+</sup> | 自定义标题 | - |
92
+ | title-prepend <sup>1.19.2+</sup> | 自定义标题前面内容 | - |
93
+
94
+ ### CalendarPopoutEmits
95
+
96
+ | 事件 | 描述 | 类型 |
97
+ | ------------------ | -------------------- | ------------------------------------------------------------------ |
98
+ | update:model-value | 日历组件值改变时触发 | (value: Date \| Date[] \| string \| string[] \| undefined) => void |
99
+ | change | 日历组件值改变时触发 | (value: Date \| Date[] \| string \| string[] \| undefined) => void |
100
+ | update:visible | 弹出框显隐时触发 | (visible: boolean) => void |
@@ -28,6 +28,9 @@
28
28
  :week-starts-on="weekStartsOn"
29
29
  :formatter="formatter"
30
30
  :allow-same-day="allowSameDay"
31
+ :start-date-text="startDateText"
32
+ :end-date-text="endDateText"
33
+ :same-date-text="sameDateText"
31
34
  :several-months="severalMonths"
32
35
  :value-format="valueFormat"
33
36
  @change="onChange"
@@ -45,6 +48,34 @@ import {
45
48
  defaultCalendarPopoutProps
46
49
  } from "./common";
47
50
  import { useFormPopout } from "../../use";
51
+ /**
52
+ * @property {string} rootClass 组件根元素类名,默认值:-。
53
+ * @property {StyleValue} rootStyle 组件根元素样式,默认值:-。
54
+ * @property {CalendarType} type 日历类型,默认值:'single'。
55
+ * @property {Date | Date[] | string | string[]} modelValue 选中的日期,单选时为当个日期,多选时为日期数组,范围时为两个日期数组,默认值:-。
56
+ * @property {Date} min 可选择的最小日期,默认值:前十年,或者当前月(设置了 `several-months`)。
57
+ * @property {Date} max 可选择的最大日期,默认值:后十年,或者三个月后(设置了 `several-months`)。
58
+ * @property {Date} currentDate 当前展示月份的日期,默认值:-。
59
+ * @property {(date: Date) => boolean} disabledDate 指定禁选日期,返回 `true` 表示禁选,默认值:-。
60
+ * @property {number} maxDays 最多可选天数,用于多选和范围,默认值:Number.MAX_SAFE_INTEGER。
61
+ * @property {() => void} overMaxDays 超出最多可选天数时触发,默认值:-。
62
+ * @property {number} weekStartsOn 指定一周以周几开始,`0` 表示周日,`1-6` 分别表示周一至周六,默认值:0。
63
+ * @property {(day: CalendarDay) => void} formatter 通过修改 `CalendarDay` 对象属性值,来自定义日期的文案和样式,默认值:-。
64
+ * @property {boolean} allowSameDay 范围选择中,是否允许起始和结束为同一天,默认值:false。
65
+ * @property {boolean} severalMonths 是否显示多个月,默认值:false。
66
+ * @property {string [详见特殊符号](../guide/date#日期格式特殊符号)} valueFormat 绑定值的格式,不指定则绑定值为 Date 对象,默认值:-。
67
+ * @property {string} startDateText 开始日期文字,默认值:'开始'。
68
+ * @property {string} endDateText 结束日期文字,默认值:'结束'。
69
+ * @property {string} sameDateText 选择同一天日期文字,默认值:'开始/结束'。
70
+ * @property {string} popoutClass 弹窗框根元素类名,默认值:-。
71
+ * @property {StyleValue} popoutStyle 弹窗框根元素样式,默认值:-。
72
+ * @property {boolean} visible 是否显示弹出框,默认值:-。
73
+ * @property {string} title 弹出框标题,默认值:-。
74
+ * @property {boolean} showConfirm 是否显示确定按钮,隐藏按钮可用于快捷选择,默认值:true。
75
+ * @property {boolean} validateEvent 是否触发表单验证,默认值:true。
76
+ * @event {(visible: boolean) => void} update 弹出框显隐时触发
77
+ * @event {(value: Date | Date[] | string | string[] | undefined) => void} change 日历组件值改变时触发
78
+ */
48
79
  export default _defineComponent({
49
80
  components: {
50
81
  SarPopout,
@@ -78,7 +109,10 @@ export default _defineComponent({
78
109
  formatter: { type: Function, required: false },
79
110
  allowSameDay: { type: Boolean, required: false },
80
111
  severalMonths: { type: Boolean, required: false },
81
- valueFormat: { type: String, required: false }
112
+ valueFormat: { type: String, required: false },
113
+ startDateText: { type: String, required: false },
114
+ endDateText: { type: String, required: false },
115
+ sameDateText: { type: String, required: false }
82
116
  }, defaultCalendarPopoutProps()),
83
117
  emits: ["update:visible", "update:model-value", "change"],
84
118
  setup(__props, { expose: __expose, emit: __emit }) {
@@ -0,0 +1,82 @@
1
+ ---
2
+ nav: 组件
3
+ title: Card
4
+ subtitle: 卡片
5
+ group: 数据展示
6
+ ---
7
+
8
+ ## 介绍
9
+
10
+ 以矩形的形式呈现相关信息或内容,包含标题、内容和相关元素。
11
+
12
+ ## 引入
13
+
14
+ ```ts
15
+ import Card from 'sard-uniapp/components/card/card.vue'
16
+ ```
17
+
18
+ ## 代码演示
19
+
20
+ ### 基础使用
21
+
22
+ 展示带标题和内容的卡片。
23
+
24
+ @code('${DEMO_PATH}/card/demo/Basic.vue')
25
+
26
+ ### 基础使用
27
+
28
+ 设置 `extra` 属性可以在标题右边放置额外内容。
29
+
30
+ @code('${DEMO_PATH}/card/demo/Extra.vue')
31
+
32
+ ### 只有主体
33
+
34
+ 如果不设置标题和额外内容,则不会渲染头部。
35
+
36
+ @code('${DEMO_PATH}/card/demo/OnlyBody.vue')
37
+
38
+ ### 底部
39
+
40
+ 可以设置 `footer` 属性在主体下面放置内容。
41
+
42
+ @code('${DEMO_PATH}/card/demo/Footer.vue')
43
+
44
+ ### 可点击的
45
+
46
+ 设置 `hover` 属性会有点击状态。
47
+
48
+ @code('${DEMO_PATH}/card/demo/Hover.vue')
49
+
50
+ ## API
51
+
52
+ ### CardProps
53
+
54
+ | 属性 | 描述 | 类型 | 默认值 |
55
+ | ------------------------ | ---------------- | ---------- | ------ |
56
+ | root-class | 组件根元素类名 | string | - |
57
+ | root-style | 组件根元素样式 | StyleValue | - |
58
+ | title | 头部左边内容 | string | - |
59
+ | extra | 头部右边内容 | string | - |
60
+ | footer | 底部内容 | string | - |
61
+ | hover <sup>1.12.3+</sup> | 是否开启点击反馈 | boolean | false |
62
+
63
+ ### CardSlots
64
+
65
+ | 插槽 | 描述 | 属性 |
66
+ | ------- | -------------- | ---- |
67
+ | default | 自定义默认内容 | - |
68
+ | title | 自定义标题内容 | - |
69
+ | extra | 自定义额外内容 | - |
70
+ | footer | 自定义底部内容 | - |
71
+
72
+ ### CardEmits
73
+
74
+ | 事件 | 描述 | 类型 |
75
+ | ------------------------ | -------------- | -------------------- |
76
+ | click <sup>1.12.2+</sup> | 点击卡片时触发 | (event: any) => void |
77
+
78
+ ## 主题定制
79
+
80
+ ### CSS 变量
81
+
82
+ @code('./variables.scss#variables')
@@ -26,6 +26,15 @@ import {
26
26
  createBem,
27
27
  isVisibleEmpty
28
28
  } from "../../utils";
29
+ /**
30
+ * @property {string} rootClass 组件根元素类名,默认值:-。
31
+ * @property {StyleValue} rootStyle 组件根元素样式,默认值:-。
32
+ * @property {string} title 头部左边内容,默认值:-。
33
+ * @property {string} extra 头部右边内容,默认值:-。
34
+ * @property {string} footer 底部内容,默认值:-。
35
+ * @property {boolean} hover 是否开启点击反馈,默认值:false。
36
+ * @event {(event: any) => void} click 点击卡片时触发
37
+ */
29
38
  export default _defineComponent({
30
39
  ...{
31
40
  options: {
@@ -0,0 +1,117 @@
1
+ ---
2
+ nav: 组件
3
+ title: Cascader
4
+ subtitle: 级联选择
5
+ group: 表单组件
6
+ ---
7
+
8
+ ## 介绍
9
+
10
+ 用于在多层级数据中进行选择,常用于省市区、组织架构选择。
11
+
12
+ ## 引入
13
+
14
+ ```ts
15
+ import { Cascader } from 'sard'
16
+ ```
17
+
18
+ ## 代码演示
19
+
20
+ ### 基础使用
21
+
22
+ 通过 `v-model` 绑定当前值,通过 `options` 配置选项数据。
23
+
24
+ @code('${DEMO_PATH}/cascader/demo/Basic.vue')
25
+
26
+ ### 选择即改变
27
+
28
+ 设置 `change-on-select` 属性,允许只选中父级选项。
29
+
30
+ @code('${DEMO_PATH}/cascader/demo/ChangeOnSelect.vue')
31
+
32
+ ### 异步加载
33
+
34
+ 通过监听 `@select` 事件,获取当前选中的选项,将异步获取的数据作为 `children` 属性值, 再把组件的 `options` 更新一下,使组件重新渲染。如果选项的 `children` 是需要用户点击时再通过接口获取的, 此选项的 `children` 需初始化为空数组。
35
+
36
+ @code('${DEMO_PATH}/cascader/demo/Async.vue')
37
+
38
+ ### 自定义面板上方内容
39
+
40
+ 使用 `top` 插槽可以在面板顶部展示当前面板的一些信息。
41
+
42
+ @code('${DEMO_PATH}/cascader/demo/OptionTop.vue')
43
+
44
+ ### 禁选选项
45
+
46
+ 禁用的选项不可点击。
47
+
48
+ @code('${DEMO_PATH}/cascader/demo/Disabled.vue')
49
+
50
+ ## API
51
+
52
+ ### CascaderProps
53
+
54
+ | 属性 | 描述 | 类型 | 默认值 |
55
+ | --------------------------------- | ------------------------- | ---------------------------------- | ---------------- |
56
+ | root-class | 组件根元素类名 | string | - |
57
+ | root-style | 组件根元素样式 | StyleValue | - |
58
+ | model-value (v-model) | 选中项的值 | string \| number | - |
59
+ | options | 可选项数据源 | CascaderOption[] | [] |
60
+ | field-keys | 自定义 `options` 中的字段 | CascaderFieldKeys | defaultFieldKeys |
61
+ | hint-text | 未选中时的提示文案 | string | '请选择' |
62
+ | label-render | 自定义可选项渲染 | (option: CascaderOption) => string | - |
63
+ | change-on-select <sup>1.14+</sup> | 点击每级选项都会触发变化 | boolean | false |
64
+
65
+ ### CascaderSlots
66
+
67
+ | 插槽 | 描述 | 属性 |
68
+ | ---- | ------------------ | -------------------- |
69
+ | top | 自定义面板上方内容 | { tabIndex: number } |
70
+
71
+ ### CascaderEmits
72
+
73
+ | 事件 | 描述 | 类型 |
74
+ | ------------------------ | ---------------------- | -------------------------------------------------------------------- |
75
+ | update:model-value | 全部选项选择完成后触发 | (value: string \| number, selectedOptions: CascaderOption[]) => void |
76
+ | change <sup>1.9.2+</sup> | 全部选项选择完成后触发 | (value: string \| number, selectedOptions: CascaderOption[]) => void |
77
+ | select | 选中某一项时触发 | (option: CascaderOption, tabIndex: number) => void |
78
+
79
+ ### CascaderOption
80
+
81
+ ```ts
82
+ interface CascaderOption {
83
+ label?: string
84
+ value?: string | number
85
+ disabled?: boolean
86
+ children?: CascaderOption[]
87
+ [key: PropertyKey]: any
88
+ }
89
+ ```
90
+
91
+ ### CascaderFieldKeys
92
+
93
+ ```ts
94
+ interface CascaderFieldKeys {
95
+ label?: string
96
+ value?: string
97
+ disabled?: string
98
+ children?: string
99
+ }
100
+ ```
101
+
102
+ ### defaultFieldKeys
103
+
104
+ ```ts
105
+ const defaultFieldKeys: CascaderFieldKeys = {
106
+ label: 'label',
107
+ value: 'value',
108
+ disabled: 'disabled',
109
+ children: 'children',
110
+ }
111
+ ```
112
+
113
+ ## 主题定制
114
+
115
+ ### CSS 变量
116
+
117
+ @code('./variables.scss#variables')
@@ -92,6 +92,19 @@ import {
92
92
  getSelectedOptionsByValue,
93
93
  defaultCascaderProps
94
94
  } from "./common";
95
+ /**
96
+ * @property {string} rootClass 组件根元素类名,默认值:-。
97
+ * @property {StyleValue} rootStyle 组件根元素样式,默认值:-。
98
+ * @property {string | number} modelValue 选中项的值,默认值:-。
99
+ * @property {CascaderOption[]} options 可选项数据源,默认值:[]。
100
+ * @property {CascaderFieldKeys} fieldKeys 自定义 `options` 中的字段,默认值:defaultFieldKeys。
101
+ * @property {string} hintText 未选中时的提示文案,默认值:'请选择'。
102
+ * @property {(option: CascaderOption) => string} labelRender 自定义可选项渲染,默认值:-。
103
+ * @property {boolean} changeOnSelect 点击每级选项都会触发变化,默认值:false。
104
+ * @event {(value: string | number, selectedOptions: CascaderOption[]) => void} update 全部选项选择完成后触发
105
+ * @event {(value: string | number, selectedOptions: CascaderOption[]) => void} change 全部选项选择完成后触发
106
+ * @event {(option: CascaderOption, tabIndex: number) => void} select 选中某一项时触发
107
+ */
95
108
  export default _defineComponent({
96
109
  components: {
97
110
  SarTabs,
@@ -0,0 +1,51 @@
1
+ ---
2
+ nav: 组件
3
+ title: CascaderInput
4
+ subtitle: 级联输入框
5
+ group: 表单组件
6
+ ---
7
+
8
+ ## 介绍
9
+
10
+ 组合了级联弹出框、输入框组件,实现了便捷快速的级联选择功能。
11
+
12
+ ## 引入
13
+
14
+ ```ts
15
+ import CascaderInput from 'sard-uniapp/components/cascader-input/cascader-input.vue'
16
+ ```
17
+
18
+ ## 代码演示
19
+
20
+ ### 基础使用
21
+
22
+ 使用 `v-model` 绑定当前值,通过 `title` 和 `placeholder` 属性设置弹出框标题和输入框占位文本。
23
+
24
+ 在点击输入框后会显示级联弹出框。
25
+
26
+ @code('${DEMO_PATH}/cascader-input/demo/Basic.vue')
27
+
28
+ ## API
29
+
30
+ ### CascaderInputProps
31
+
32
+ 继承 [`CascaderPopoutProps`](./cascader-popout#CascaderPopoutProps) 并有以下额外属性:
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
+ ### CascaderInputSlots
46
+
47
+ 继承 [`CascaderPopoutSlots`](./cascader-popout#CascaderPopoutSlots)
48
+
49
+ ### CascaderInputEmits
50
+
51
+ 继承 [`CascaderPopoutEmits`](./cascader-popout#CascaderPopoutEmits)
@@ -48,6 +48,31 @@ import { usePopoutInput } from "../../use";
48
48
  import {
49
49
  defaultCascaderInputProps
50
50
  } from "./common";
51
+ /**
52
+ * @property {string} rootClass 弹出式输入框根元素类名,默认值:-。
53
+ * @property {StyleValue} rootStyle 弹出式输入框根元素样式,默认值:-。
54
+ * @property {string | number} modelValue 选中项的值,默认值:-。
55
+ * @property {CascaderOption[]} options 可选项数据源,默认值:[]。
56
+ * @property {CascaderFieldKeys} fieldKeys 自定义 `options` 中的字段,默认值:defaultFieldKeys。
57
+ * @property {string} hintText 未选中时的提示文案,默认值:'请选择'。
58
+ * @property {(option: CascaderOption) => string} labelRender 自定义可选项渲染,默认值:-。
59
+ * @property {boolean} changeOnSelect 点击每级选项都会触发变化,默认值:false。
60
+ * @property {string} popoutClass 弹窗框根元素类名,默认值:-。
61
+ * @property {StyleValue} popoutStyle 弹窗框根元素样式,默认值:-。
62
+ * @property {boolean} visible 是否显示弹出框,默认值:-。
63
+ * @property {string} title 弹出框标题,默认值:-。
64
+ * @property {boolean} showConfirm 是否显示确定按钮,隐藏按钮可用于快捷选择,默认值:true。
65
+ * @property {boolean} validateEvent 是否触发表单验证,默认值:true。
66
+ * @property {boolean} disabled 禁用状态,默认值:false。
67
+ * @property {boolean} readonly 只读状态,默认值:false。
68
+ * @property {boolean} loading 加载状态,默认值:false。
69
+ * @property {boolean} clearable 是否显示清空按钮,默认值:false。
70
+ * @property {string} placeholder 输入框占位符内容,默认值:-。
71
+ * @property {() => any} valueOnClear 设置点击清除按钮后的值,默认值:() => undefined。
72
+ * @event {(visible: boolean) => void} update 弹出框显隐时触发
73
+ * @event {(value: string | number, selectedOptions: CascaderOption[]) => void} change 级联输入组件值改变时触发
74
+ * @event {(option: CascaderOption, tabIndex: number) => void} select 选择级联选择某一项时触发
75
+ */
51
76
  export default _defineComponent({
52
77
  components: {
53
78
  SarPopoutInput,
@@ -0,0 +1,53 @@
1
+ ---
2
+ nav: 组件
3
+ title: CascaderPopout
4
+ subtitle: 级联弹出框
5
+ group: 表单组件
6
+ version: 1.16+
7
+ ---
8
+
9
+ ## 介绍
10
+
11
+ 组合了级联选择、弹出框组件,实现了便捷快速的级联选择功能。
12
+
13
+ ## 引入
14
+
15
+ ```ts
16
+ import CascaderPopout from 'sard-uniapp/components/cascader-popout/cascader-popout.vue'
17
+ ```
18
+
19
+ ## 代码演示
20
+
21
+ ### 基础使用
22
+
23
+ 使用 `v-model` 双向绑定当前值,使用 `v-model:visible` 控制弹出框显隐。
24
+
25
+ @code('${DEMO_PATH}/cascader-popout/demo/Basic.vue')
26
+
27
+ ## API
28
+
29
+ ### CascaderPopoutProps
30
+
31
+ 继承 [`CascaderProps`](./cascader#CascaderProps) 并有以下额外属性:
32
+
33
+ | 属性 | 描述 | 类型 | 默认值 |
34
+ | ----------------- | ---------------------------------------- | ---------- | ------ |
35
+ | popout-class | 弹窗框根元素类名 | string | - |
36
+ | popout-style | 弹窗框根元素样式 | StyleValue | - |
37
+ | visible (v-model) | 是否显示弹出框 | boolean | - |
38
+ | title | 弹出框标题 | string | - |
39
+ | show-confirm | 是否显示确定按钮,隐藏按钮可用于快捷选择 | boolean | true |
40
+ | validate-event | 是否触发表单验证 | boolean | true |
41
+
42
+ ### CascaderPopoutSlots
43
+
44
+ 继承 [`CascaderSlots`](./cascader#CascaderSlots)
45
+
46
+ ### CascaderPopoutEmits
47
+
48
+ | 事件 | 描述 | 类型 |
49
+ | ------------------ | ------------------------ | -------------------------------------------------------------------- |
50
+ | update:model-value | 级联输入组件值改变时触发 | (value: string \| number, selectedOptions: CascaderOption[]) => void |
51
+ | change | 级联输入组件值改变时触发 | (value: string \| number, selectedOptions: CascaderOption[]) => void |
52
+ | select | 选择级联选择某一项时触发 | (option: CascaderOption, tabIndex: number) => void |
53
+ | update:visible | 弹出框显隐时触发 | (visible: boolean) => void |
@@ -36,6 +36,25 @@ import {
36
36
  } from "./common";
37
37
  import { isEmptyBinding } from "../../utils";
38
38
  import { useFormPopout } from "../../use";
39
+ /**
40
+ * @property {string} rootClass 组件根元素类名,默认值:-。
41
+ * @property {StyleValue} rootStyle 组件根元素样式,默认值:-。
42
+ * @property {string | number} modelValue 选中项的值,默认值:-。
43
+ * @property {CascaderOption[]} options 可选项数据源,默认值:[]。
44
+ * @property {CascaderFieldKeys} fieldKeys 自定义 `options` 中的字段,默认值:defaultFieldKeys。
45
+ * @property {string} hintText 未选中时的提示文案,默认值:'请选择'。
46
+ * @property {(option: CascaderOption) => string} labelRender 自定义可选项渲染,默认值:-。
47
+ * @property {boolean} changeOnSelect 点击每级选项都会触发变化,默认值:false。
48
+ * @property {string} popoutClass 弹窗框根元素类名,默认值:-。
49
+ * @property {StyleValue} popoutStyle 弹窗框根元素样式,默认值:-。
50
+ * @property {boolean} visible 是否显示弹出框,默认值:-。
51
+ * @property {string} title 弹出框标题,默认值:-。
52
+ * @property {boolean} showConfirm 是否显示确定按钮,隐藏按钮可用于快捷选择,默认值:true。
53
+ * @property {boolean} validateEvent 是否触发表单验证,默认值:true。
54
+ * @event {(visible: boolean) => void} update 弹出框显隐时触发
55
+ * @event {(value: string | number, selectedOptions: CascaderOption[]) => void} change 级联输入组件值改变时触发
56
+ * @event {(option: CascaderOption, tabIndex: number) => void} select 选择级联选择某一项时触发
57
+ */
39
58
  export default _defineComponent({
40
59
  components: {
41
60
  SarPopout,