uview-pro 0.0.14 → 0.0.16

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 (236) hide show
  1. package/changelog.md +232 -223
  2. package/components/u-action-sheet/types.ts +35 -35
  3. package/components/u-action-sheet/u-action-sheet.vue +160 -160
  4. package/components/u-alert-tips/types.ts +39 -39
  5. package/components/u-alert-tips/u-alert-tips.vue +212 -212
  6. package/components/u-avatar/types.ts +34 -34
  7. package/components/u-avatar/u-avatar.vue +193 -193
  8. package/components/u-avatar-cropper/types.ts +23 -23
  9. package/components/u-avatar-cropper/u-avatar-cropper.vue +286 -286
  10. package/components/u-avatar-cropper/weCropper.d.ts +62 -62
  11. package/components/u-avatar-cropper/weCropper.js +1253 -1253
  12. package/components/u-avatar-cropper/weCropper.ts +1255 -1255
  13. package/components/u-back-top/types.ts +39 -39
  14. package/components/u-back-top/u-back-top.vue +125 -125
  15. package/components/u-badge/types.ts +36 -36
  16. package/components/u-badge/u-badge.vue +165 -165
  17. package/components/u-button/types.ts +66 -66
  18. package/components/u-button/u-button.vue +554 -554
  19. package/components/u-calendar/types.ts +63 -63
  20. package/components/u-calendar/u-calendar.vue +592 -592
  21. package/components/u-car-keyboard/types.ts +12 -12
  22. package/components/u-car-keyboard/u-car-keyboard.vue +234 -234
  23. package/components/u-card/types.ts +59 -59
  24. package/components/u-card/u-card.vue +194 -194
  25. package/components/u-cell-group/types.ts +17 -17
  26. package/components/u-cell-group/u-cell-group.vue +50 -50
  27. package/components/u-cell-item/types.ts +54 -54
  28. package/components/u-cell-item/u-cell-item.vue +202 -202
  29. package/components/u-checkbox/types.ts +31 -31
  30. package/components/u-checkbox/u-checkbox.vue +265 -265
  31. package/components/u-checkbox-group/types.ts +32 -32
  32. package/components/u-checkbox-group/u-checkbox-group.vue +79 -79
  33. package/components/u-circle-progress/types.ts +52 -52
  34. package/components/u-circle-progress/u-circle-progress.vue +189 -189
  35. package/components/u-city-select/types.ts +20 -20
  36. package/components/u-city-select/u-city-select.vue +236 -236
  37. package/components/u-col/types.ts +30 -30
  38. package/components/u-col/u-col.vue +123 -123
  39. package/components/u-collapse/types.ts +31 -31
  40. package/components/u-collapse/u-collapse.vue +68 -68
  41. package/components/u-collapse-item/types.ts +25 -25
  42. package/components/u-collapse-item/u-collapse-item.vue +176 -176
  43. package/components/u-column-notice/types.ts +48 -48
  44. package/components/u-column-notice/u-column-notice.vue +176 -176
  45. package/components/u-count-down/types.ts +42 -42
  46. package/components/u-count-down/u-count-down.vue +258 -258
  47. package/components/u-count-to/types.ts +32 -32
  48. package/components/u-count-to/u-count-to.vue +241 -241
  49. package/components/u-divider/types.ts +31 -31
  50. package/components/u-divider/u-divider.vue +121 -121
  51. package/components/u-dropdown/types.ts +32 -32
  52. package/components/u-dropdown/u-dropdown.vue +289 -289
  53. package/components/u-dropdown-item/types.ts +27 -27
  54. package/components/u-dropdown-item/u-dropdown-item.vue +123 -123
  55. package/components/u-empty/types.ts +36 -36
  56. package/components/u-empty/u-empty.vue +88 -88
  57. package/components/u-field/types.ts +69 -69
  58. package/components/u-field/u-field.vue +354 -354
  59. package/components/u-form/types.ts +6 -4
  60. package/components/u-form/u-form.vue +19 -5
  61. package/components/u-form-item/types.ts +2 -2
  62. package/components/u-form-item/u-form-item.vue +7 -6
  63. package/components/u-full-screen/types.ts +14 -14
  64. package/components/u-full-screen/u-full-screen.vue +82 -82
  65. package/components/u-gap/types.ts +18 -18
  66. package/components/u-gap/u-gap.vue +40 -40
  67. package/components/u-grid/types.ts +19 -19
  68. package/components/u-grid/u-grid.vue +93 -93
  69. package/components/u-grid-item/types.ts +16 -16
  70. package/components/u-grid-item/u-grid-item.vue +130 -130
  71. package/components/u-icon/types.ts +62 -62
  72. package/components/u-icon/u-icon.vue +274 -274
  73. package/components/u-image/types.ts +51 -49
  74. package/components/u-image/u-image.vue +222 -218
  75. package/components/u-index-anchor/types.ts +16 -16
  76. package/components/u-index-anchor/u-index-anchor.vue +86 -86
  77. package/components/u-index-list/types.ts +43 -43
  78. package/components/u-index-list/u-index-list.vue +355 -355
  79. package/components/u-input/types.ts +140 -140
  80. package/components/u-input/u-input.vue +255 -255
  81. package/components/u-keyboard/types.ts +40 -40
  82. package/components/u-keyboard/u-keyboard.vue +158 -158
  83. package/components/u-lazy-load/types.ts +37 -37
  84. package/components/u-lazy-load/u-lazy-load.vue +233 -233
  85. package/components/u-line/types.ts +44 -44
  86. package/components/u-line/u-line.vue +59 -59
  87. package/components/u-line-progress/types.ts +58 -58
  88. package/components/u-line-progress/u-line-progress.vue +109 -109
  89. package/components/u-link/types.ts +43 -43
  90. package/components/u-link/u-link.vue +75 -75
  91. package/components/u-loading/types.ts +35 -35
  92. package/components/u-loading/u-loading.vue +90 -90
  93. package/components/u-loading-popup/types.ts +19 -0
  94. package/components/u-loading-popup/u-loading-popup.vue +208 -0
  95. package/components/u-loadmore/types.ts +79 -79
  96. package/components/u-loadmore/u-loadmore.vue +140 -140
  97. package/components/u-mask/types.ts +43 -43
  98. package/components/u-mask/u-mask.vue +106 -106
  99. package/components/u-message-input/types.ts +74 -74
  100. package/components/u-message-input/u-message-input.vue +255 -255
  101. package/components/u-modal/types.ts +118 -118
  102. package/components/u-modal/u-modal.vue +200 -200
  103. package/components/u-navbar/types.ts +103 -103
  104. package/components/u-navbar/u-navbar.vue +226 -226
  105. package/components/u-no-network/image.ts +2 -2
  106. package/components/u-no-network/types.ts +28 -28
  107. package/components/u-no-network/u-no-network.vue +290 -290
  108. package/components/u-notice-bar/types.ts +111 -111
  109. package/components/u-notice-bar/u-notice-bar.vue +174 -174
  110. package/components/u-number-box/types.ts +42 -42
  111. package/components/u-number-box/u-number-box.vue +312 -312
  112. package/components/u-number-keyboard/types.ts +26 -26
  113. package/components/u-number-keyboard/u-number-keyboard.vue +166 -166
  114. package/components/u-picker/types.ts +111 -111
  115. package/components/u-picker/u-picker.vue +637 -637
  116. package/components/u-popup/types.ts +59 -59
  117. package/components/u-popup/u-popup.vue +359 -359
  118. package/components/u-radio/types.ts +25 -25
  119. package/components/u-radio/u-radio.vue +258 -258
  120. package/components/u-radio-group/types.ts +29 -29
  121. package/components/u-radio-group/u-radio-group.vue +98 -98
  122. package/components/u-rate/types.ts +40 -40
  123. package/components/u-rate/u-rate.vue +234 -234
  124. package/components/u-read-more/types.ts +35 -35
  125. package/components/u-read-more/u-read-more.vue +150 -150
  126. package/components/u-row/types.ts +20 -20
  127. package/components/u-row/u-row.vue +87 -87
  128. package/components/u-row-notice/types.ts +39 -39
  129. package/components/u-row-notice/u-row-notice.vue +213 -213
  130. package/components/u-search/types.ts +53 -53
  131. package/components/u-search/u-search.vue +256 -256
  132. package/components/u-section/types.ts +32 -32
  133. package/components/u-section/u-section.vue +125 -125
  134. package/components/u-select/types.ts +43 -43
  135. package/components/u-select/u-select.vue +361 -345
  136. package/components/u-skeleton/types.ts +20 -20
  137. package/components/u-skeleton/u-skeleton.vue +205 -205
  138. package/components/u-slider/types.ts +32 -32
  139. package/components/u-slider/u-slider.vue +238 -238
  140. package/components/u-steps/types.ts +28 -28
  141. package/components/u-steps/u-steps.vue +160 -160
  142. package/components/u-sticky/types.ts +22 -22
  143. package/components/u-sticky/u-sticky.vue +159 -159
  144. package/components/u-subsection/types.ts +36 -36
  145. package/components/u-subsection/u-subsection.vue +328 -328
  146. package/components/u-swipe-action/types.ts +50 -50
  147. package/components/u-swipe-action/u-swipe-action.vue +253 -253
  148. package/components/u-swiper/types.ts +47 -47
  149. package/components/u-swiper/u-swiper.vue +266 -266
  150. package/components/u-switch/types.ts +28 -28
  151. package/components/u-switch/u-switch.vue +128 -128
  152. package/components/u-tabbar/types.ts +36 -36
  153. package/components/u-tabbar/u-tabbar.vue +280 -280
  154. package/components/u-table/types.ts +25 -25
  155. package/components/u-table/u-table.vue +55 -55
  156. package/components/u-tabs/types.ts +51 -51
  157. package/components/u-tabs/u-tabs.vue +284 -284
  158. package/components/u-tabs-swiper/types.ts +53 -53
  159. package/components/u-tabs-swiper/u-tabs-swiper.vue +379 -379
  160. package/components/u-tag/types.ts +37 -37
  161. package/components/u-tag/u-tag.vue +244 -244
  162. package/components/u-td/types.ts +12 -12
  163. package/components/u-td/u-td.vue +69 -69
  164. package/components/u-th/types.ts +12 -12
  165. package/components/u-th/u-th.vue +63 -63
  166. package/components/u-time-line/u-time-line.vue +39 -39
  167. package/components/u-time-line-item/types.ts +14 -14
  168. package/components/u-time-line-item/u-time-line-item.vue +78 -78
  169. package/components/u-toast/types.ts +36 -36
  170. package/components/u-toast/u-toast.vue +233 -233
  171. package/components/u-top-tips/types.ts +14 -14
  172. package/components/u-top-tips/u-top-tips.vue +113 -113
  173. package/components/u-tr/types.ts +8 -8
  174. package/components/u-tr/u-tr.vue +24 -24
  175. package/components/u-upload/types.ts +71 -71
  176. package/components/u-upload/u-upload.vue +545 -545
  177. package/components/u-verification-code/types.ts +22 -22
  178. package/components/u-verification-code/u-verification-code.vue +164 -164
  179. package/components/u-waterfall/types.ts +16 -16
  180. package/components/u-waterfall/u-waterfall.vue +170 -170
  181. package/iconfont.css +910 -910
  182. package/index.scss +22 -22
  183. package/index.ts +202 -202
  184. package/libs/config/config.ts +26 -26
  185. package/libs/config/zIndex.ts +37 -37
  186. package/libs/css/color.scss +155 -155
  187. package/libs/css/common.scss +175 -175
  188. package/libs/css/style.components.scss +6 -6
  189. package/libs/css/style.h5.scss +8 -8
  190. package/libs/css/style.mp.scss +72 -72
  191. package/libs/css/style.nvue.scss +2 -2
  192. package/libs/css/style.vue.scss +175 -175
  193. package/libs/function/$parent.ts +22 -22
  194. package/libs/function/addUnit.ts +13 -13
  195. package/libs/function/color.ts +36 -36
  196. package/libs/function/colorGradient.ts +125 -125
  197. package/libs/function/debounce.ts +28 -28
  198. package/libs/function/deepClone.ts +39 -39
  199. package/libs/function/deepMerge.ts +34 -34
  200. package/libs/function/getParent.ts +58 -58
  201. package/libs/function/getRect.ts +26 -26
  202. package/libs/function/guid.ts +42 -42
  203. package/libs/function/md5.ts +398 -398
  204. package/libs/function/parent.ts +21 -21
  205. package/libs/function/queryParams.ts +60 -60
  206. package/libs/function/random.ts +16 -16
  207. package/libs/function/randomArray.ts +11 -11
  208. package/libs/function/route.ts +118 -118
  209. package/libs/function/sys.ts +15 -15
  210. package/libs/function/test.ts +229 -229
  211. package/libs/function/throttle.ts +31 -31
  212. package/libs/function/timeFormat.ts +54 -54
  213. package/libs/function/timeFrom.ts +48 -48
  214. package/libs/function/toast.ts +14 -14
  215. package/libs/function/trim.ts +21 -21
  216. package/libs/function/type2icon.ts +36 -36
  217. package/libs/hooks/useEmitter.ts +77 -77
  218. package/libs/hooks/useParent.ts +29 -29
  219. package/libs/request/auto-http.ts +76 -76
  220. package/libs/request/index.ts +237 -237
  221. package/libs/request/uni-http.md +156 -156
  222. package/libs/request/uni-http.ts +434 -434
  223. package/libs/store/index.ts +88 -88
  224. package/libs/util/async-validator.d.ts +62 -62
  225. package/libs/util/async-validator.js +1356 -1356
  226. package/libs/util/emitter.ts +112 -112
  227. package/libs/util/mitt.ts +118 -118
  228. package/libs/util/parent.ts +20 -20
  229. package/package.json +107 -107
  230. package/readme.md +231 -237
  231. package/theme.scss +38 -38
  232. package/types/components.d.ts +95 -94
  233. package/types/global.d.ts +221 -208
  234. package/types/ignore-errors.d.ts +30 -30
  235. package/types/index.d.ts +90 -90
  236. package/types/uni-app.d.ts +63 -63
@@ -1,5 +1,5 @@
1
1
  import type { ExtractPropTypes, PropType } from 'vue';
2
- import type { InputAlign, InputErrorType, InputLabelPosition } from '../../types/global';
2
+ import type { FormRules, InputAlign, FormErrorType, InputLabelPosition } from '../../types/global';
3
3
 
4
4
  /**
5
5
  * u-form 组件 Props 类型定义
@@ -8,17 +8,19 @@ import type { InputAlign, InputErrorType, InputLabelPosition } from '../../types
8
8
  export const FormProps = {
9
9
  /** 当前form的需要验证字段的集合 */
10
10
  model: { type: Object as PropType<Record<string, any>>, default: () => ({}) },
11
+ /** 表单验证规则 */
12
+ rules: { type: Object as PropType<FormRules>, default: () => ({}) },
11
13
  /** 有错误时的提示方式,message-提示信息,border-如果input设置了边框,变成呈红色,border-bottom-下边框呈现红色,none-无提示 */
12
- errorType: { type: Array as PropType<InputErrorType[]>, default: () => ['message', 'toast'] },
14
+ errorType: { type: Array as PropType<FormErrorType[]>, default: () => ['message', 'toast'] },
13
15
  /** 是否显示表单域的下划线边框 */
14
16
  borderBottom: { type: Boolean, default: true },
15
17
  /** label的位置,left-左边,top-上边 */
16
18
  labelPosition: { type: String as PropType<InputLabelPosition>, default: 'left' },
17
19
  /** label的宽度,单位rpx */
18
20
  labelWidth: { type: [String, Number] as PropType<string | number>, default: 90 },
19
- /** lable字体的对齐方式 */
21
+ /** label字体的对齐方式 */
20
22
  labelAlign: { type: String as PropType<InputAlign>, default: 'left' },
21
- /** lable的样式,对象形式 */
23
+ /** label的样式,对象形式 */
22
24
  labelStyle: { type: Object as PropType<Record<string, any>>, default: () => ({}) }
23
25
  };
24
26
 
@@ -14,13 +14,13 @@ defineOptions({
14
14
  /**
15
15
  * form 表单
16
16
  * @description 此组件一般用于表单场景,可以配置Input输入框,Select弹出框,进行表单验证等。
17
- * @tutorial http://uviewui.com/components/form.html
17
+ * @tutorial https://uview-pro.netlify.app/components/form.html
18
18
  * @property {Object} model 表单数据对象
19
19
  * @property {Boolean} border-bottom 是否显示表单域的下划线边框
20
20
  * @property {String} label-position 表单域提示文字的位置,left-左侧,top-上方
21
21
  * @property {String Number} label-width 提示文字的宽度,单位rpx(默认90)
22
- * @property {Object} label-style lable的样式,对象形式
23
- * @property {String} label-align lable的对齐方式
22
+ * @property {Object} label-style label的样式,对象形式
23
+ * @property {String} label-align label的对齐方式
24
24
  * @property {Object} rules 通过ref设置,见官网说明
25
25
  * @property {Array} error-type 错误的提示方式,数组形式,见上方说明(默认['message'])
26
26
  * @example <u-form :model="form" ref="uForm"></u-form>
@@ -32,7 +32,7 @@ const props = defineProps(FormProps);
32
32
  const fields = ref<any[]>([]);
33
33
 
34
34
  // 校验规则
35
- const rules = ref<Record<string, any>>({});
35
+ const rules = ref<Record<string, any>>(props.rules);
36
36
 
37
37
  // 提供 uForm 实例给子组件(注册方法供 u-form-item 调用)
38
38
  const uForm = {
@@ -110,7 +110,21 @@ function validate(callback?: (valid: boolean) => void): Promise<boolean> {
110
110
  });
111
111
  }
112
112
 
113
- defineExpose({ setRules, resetFields, validate });
113
+ defineExpose({
114
+ setRules,
115
+ resetFields,
116
+ validate,
117
+ addField(field: any) {
118
+ if (!fields.value.includes(field)) fields.value.push(field);
119
+ },
120
+ removeField(field: any) {
121
+ fields.value = fields.value.filter(f => f !== field);
122
+ },
123
+ fields,
124
+ rules,
125
+ props,
126
+ model: props.model
127
+ });
114
128
  </script>
115
129
 
116
130
  <style scoped lang="scss">
@@ -30,12 +30,12 @@ export const FormItemProps = {
30
30
  type: [String, Number] as PropType<string | number>,
31
31
  default: ''
32
32
  },
33
- /** lable的样式,对象形式 */
33
+ /** label的样式,对象形式 */
34
34
  labelStyle: {
35
35
  type: Object as PropType<Record<string, any>>,
36
36
  default: () => ({})
37
37
  },
38
- /** lable字体的对齐方式 */
38
+ /** label字体的对齐方式 */
39
39
  labelAlign: {
40
40
  type: String as PropType<InputAlign>,
41
41
  default: ''
@@ -81,14 +81,14 @@ defineOptions({
81
81
  /**
82
82
  * form-item 表单item
83
83
  * @description 此组件一般用于表单场景,可以配置Input输入框,Select弹出框,进行表单验证等。
84
- * @tutorial http://uviewui.com/components/form.html
84
+ * @tutorial https://uview-pro.netlify.app/components/form.html
85
85
  * @property {String} label 左侧提示文字
86
86
  * @property {Object} prop 表单域model对象的属性名,在使用 validate、resetFields 方法的情况下,该属性是必填的
87
87
  * @property {Boolean} border-bottom 是否显示表单域的下划线边框
88
88
  * @property {String} label-position 表单域提示文字的位置,left-左侧,top-上方
89
89
  * @property {String Number} label-width 提示文字的宽度,单位rpx(默认90)
90
- * @property {Object} label-style lable的样式,对象形式
91
- * @property {String} label-align lable的对齐方式
90
+ * @property {Object} label-style label的样式,对象形式
91
+ * @property {String} label-align label的对齐方式
92
92
  * @property {String} right-icon 右侧自定义字体图标(限uView内置图标)或图片地址
93
93
  * @property {String} left-icon 左侧自定义字体图标(限uView内置图标)或图片地址
94
94
  * @property {Object} left-icon-style 左侧图标的样式,对象形式
@@ -100,7 +100,7 @@ defineOptions({
100
100
  const props = defineProps(FormItemProps);
101
101
 
102
102
  // inject 父表单实例
103
- const parent = inject<any>('u-form', null);
103
+ let parent = inject<any>('u-form', null);
104
104
  const instance = getCurrentInstance();
105
105
 
106
106
  // 组件状态
@@ -289,13 +289,14 @@ function resetField() {
289
289
 
290
290
  // 组件挂载时注册到父表单
291
291
  onMounted(() => {
292
+ // 支付宝、头条小程序不支持provide/inject,所以使用这个方法获取整个父组件,在created定义,避免循环应用
292
293
  // 兼容 provide/inject 及 $u.$parent
294
+ parent = $u.parentData('u-form', instance);
293
295
  if (parent) {
294
296
  // 继承父表单配置
295
297
  // 历遍parentData中的属性,将parent中的同名属性赋值给parentData
296
298
  Object.keys(parentData.value).forEach(key => {
297
- // @ts-ignore
298
- if (parent.props[key] !== undefined) parentData.value[key] = parent.props[key];
299
+ parentData.value[key] = parent.props[key];
299
300
  });
300
301
  // 如果没有传入prop,或者uForm为空(如果u-form-input单独使用,就不会有uForm注入),就不进行校验
301
302
  if (props.prop) {
@@ -1,14 +1,14 @@
1
- import type { ExtractPropTypes, PropType } from 'vue';
2
-
3
- /**
4
- * u-full-screen 组件 Props 类型定义
5
- * @description 用于APP弹窗遮盖导航栏和底部tabbar,提示新版本升级内容
6
- */
7
- export const FullScreenProps = {
8
- /** 是否显示弹窗 */
9
- show: { type: Boolean, default: false },
10
- /** 升级内容,支持富文本 */
11
- content: { type: String, default: '' }
12
- };
13
-
14
- export type FullScreenProps = ExtractPropTypes<typeof FullScreenProps>;
1
+ import type { ExtractPropTypes, PropType } from 'vue';
2
+
3
+ /**
4
+ * u-full-screen 组件 Props 类型定义
5
+ * @description 用于APP弹窗遮盖导航栏和底部tabbar,提示新版本升级内容
6
+ */
7
+ export const FullScreenProps = {
8
+ /** 是否显示弹窗 */
9
+ show: { type: Boolean, default: false },
10
+ /** 升级内容,支持富文本 */
11
+ content: { type: String, default: '' }
12
+ };
13
+
14
+ export type FullScreenProps = ExtractPropTypes<typeof FullScreenProps>;
@@ -1,82 +1,82 @@
1
- <template>
2
- <u-modal v-model="show" :show-cancel-button="true" confirm-text="升级" title="发现新版本" @cancel="cancel" @confirm="confirm">
3
- <view class="u-update-content">
4
- <rich-text :nodes="content"></rich-text>
5
- </view>
6
- </u-modal>
7
- </template>
8
-
9
- <script setup lang="ts">
10
- import { FullScreenProps } from './types';
11
- import { ref, onMounted } from 'vue';
12
-
13
- defineOptions({ name: 'u-full-screen' });
14
-
15
- /**
16
- * 压窗屏升级弹窗组件
17
- * @description 用于APP弹窗遮盖导航栏和底部tabbar,提示新版本升级内容
18
- * @property {boolean} show 是否显示弹窗
19
- * @property {string} content 升级内容,支持富文本
20
- */
21
- defineProps(FullScreenProps);
22
-
23
- /**
24
- * 是否显示弹窗
25
- */
26
- const show = ref(false);
27
- /**
28
- * 升级内容,支持富文本
29
- */
30
- const content = ref<string>(`
31
- 1. 修复badge组件的size参数无效问题<br>
32
- 2. 新增Modal模态框组件<br>
33
- 3. 新增压窗屏组件,可以在APP上以弹窗的形式遮盖导航栏和底部tabbar<br>
34
- 4. 修复键盘组件在微信小程序上遮罩无效的问题
35
- `);
36
-
37
- /**
38
- * 页面加载完成后自动显示弹窗
39
- */
40
- onMounted(() => {
41
- show.value = true;
42
- });
43
-
44
- /**
45
- * 取消按钮点击事件
46
- * @description 关闭弹窗并返回上一页
47
- */
48
- function cancel() {
49
- closeModal();
50
- }
51
-
52
- /**
53
- * 升级按钮点击事件
54
- * @description 关闭弹窗并返回上一页
55
- */
56
- function confirm() {
57
- closeModal();
58
- }
59
-
60
- /**
61
- * 关闭弹窗方法
62
- * @description 返回上一页
63
- */
64
- function closeModal() {
65
- uni.navigateBack();
66
- }
67
- </script>
68
-
69
- <style scoped lang="scss">
70
- @import '../../libs/css/style.components.scss';
71
-
72
- .u-full-content {
73
- background-color: #00c777;
74
- }
75
-
76
- .u-update-content {
77
- font-size: 26rpx;
78
- color: $u-content-color;
79
- line-height: 1.7;
80
- padding: 30rpx;
81
- }
82
- </style>
1
+ <template>
2
+ <u-modal v-model="show" :show-cancel-button="true" confirm-text="升级" title="发现新版本" @cancel="cancel" @confirm="confirm">
3
+ <view class="u-update-content">
4
+ <rich-text :nodes="content"></rich-text>
5
+ </view>
6
+ </u-modal>
7
+ </template>
8
+
9
+ <script setup lang="ts">
10
+ import { FullScreenProps } from './types';
11
+ import { ref, onMounted } from 'vue';
12
+
13
+ defineOptions({ name: 'u-full-screen' });
14
+
15
+ /**
16
+ * 压窗屏升级弹窗组件
17
+ * @description 用于APP弹窗遮盖导航栏和底部tabbar,提示新版本升级内容
18
+ * @property {boolean} show 是否显示弹窗
19
+ * @property {string} content 升级内容,支持富文本
20
+ */
21
+ defineProps(FullScreenProps);
22
+
23
+ /**
24
+ * 是否显示弹窗
25
+ */
26
+ const show = ref(false);
27
+ /**
28
+ * 升级内容,支持富文本
29
+ */
30
+ const content = ref<string>(`
31
+ 1. 修复badge组件的size参数无效问题<br>
32
+ 2. 新增Modal模态框组件<br>
33
+ 3. 新增压窗屏组件,可以在APP上以弹窗的形式遮盖导航栏和底部tabbar<br>
34
+ 4. 修复键盘组件在微信小程序上遮罩无效的问题
35
+ `);
36
+
37
+ /**
38
+ * 页面加载完成后自动显示弹窗
39
+ */
40
+ onMounted(() => {
41
+ show.value = true;
42
+ });
43
+
44
+ /**
45
+ * 取消按钮点击事件
46
+ * @description 关闭弹窗并返回上一页
47
+ */
48
+ function cancel() {
49
+ closeModal();
50
+ }
51
+
52
+ /**
53
+ * 升级按钮点击事件
54
+ * @description 关闭弹窗并返回上一页
55
+ */
56
+ function confirm() {
57
+ closeModal();
58
+ }
59
+
60
+ /**
61
+ * 关闭弹窗方法
62
+ * @description 返回上一页
63
+ */
64
+ function closeModal() {
65
+ uni.navigateBack();
66
+ }
67
+ </script>
68
+
69
+ <style scoped lang="scss">
70
+ @import '../../libs/css/style.components.scss';
71
+
72
+ .u-full-content {
73
+ background-color: #00c777;
74
+ }
75
+
76
+ .u-update-content {
77
+ font-size: 26rpx;
78
+ color: $u-content-color;
79
+ line-height: 1.7;
80
+ padding: 30rpx;
81
+ }
82
+ </style>
@@ -1,18 +1,18 @@
1
- import type { ExtractPropTypes, PropType } from 'vue';
2
-
3
- /**
4
- * u-gap 组件 Props 类型定义
5
- * @description 间隔槽组件属性
6
- */
7
- export const GapProps = {
8
- /** 背景颜色 */
9
- bgColor: { type: String, default: 'transparent' },
10
- /** 高度 */
11
- height: { type: [String, Number] as PropType<string | number>, default: 30 },
12
- /** 与上一个组件的距离 */
13
- marginTop: { type: [String, Number] as PropType<string | number>, default: 0 },
14
- /** 与下一个组件的距离 */
15
- marginBottom: { type: [String, Number] as PropType<string | number>, default: 0 }
16
- };
17
-
18
- export type GapProps = ExtractPropTypes<typeof GapProps>;
1
+ import type { ExtractPropTypes, PropType } from 'vue';
2
+
3
+ /**
4
+ * u-gap 组件 Props 类型定义
5
+ * @description 间隔槽组件属性
6
+ */
7
+ export const GapProps = {
8
+ /** 背景颜色 */
9
+ bgColor: { type: String, default: 'transparent' },
10
+ /** 高度 */
11
+ height: { type: [String, Number] as PropType<string | number>, default: 30 },
12
+ /** 与上一个组件的距离 */
13
+ marginTop: { type: [String, Number] as PropType<string | number>, default: 0 },
14
+ /** 与下一个组件的距离 */
15
+ marginBottom: { type: [String, Number] as PropType<string | number>, default: 0 }
16
+ };
17
+
18
+ export type GapProps = ExtractPropTypes<typeof GapProps>;
@@ -1,40 +1,40 @@
1
- <template>
2
- <view class="u-gap" :style="gapStyle"></view>
3
- </template>
4
-
5
- <script setup lang="ts">
6
- import { GapProps } from './types';
7
- import { computed } from 'vue';
8
-
9
- defineOptions({
10
- name: 'u-gap'
11
- });
12
-
13
- /**
14
- * gap 间隔槽
15
- * @description 该组件一般用于内容块之间的用一个灰色块隔开的场景,方便用户风格统一,减少工作量
16
- * @tutorial https://uview-pro.netlify.app/components/gap.html
17
- * @property {String} bg-color 背景颜色(默认#f3f4f6)
18
- * @property {String Number} height 分割槽高度,单位rpx(默认30)
19
- * @property {String Number} margin-top 与前一个组件的距离,单位rpx(默认0)
20
- * @property {String Number} margin-bottom 与后一个组件的距离,单位rpx(0)
21
- * @example <u-gap height="80" bg-color="#bbb"></u-gap>
22
- */
23
- const props = defineProps(GapProps);
24
-
25
- /**
26
- * 间隔槽样式
27
- */
28
- const gapStyle = computed(() => {
29
- return {
30
- backgroundColor: props.bgColor,
31
- height: props.height + 'rpx',
32
- marginTop: props.marginTop + 'rpx',
33
- marginBottom: props.marginBottom + 'rpx'
34
- };
35
- });
36
- </script>
37
-
38
- <style lang="scss" scoped>
39
- @import '../../libs/css/style.components.scss';
40
- </style>
1
+ <template>
2
+ <view class="u-gap" :style="gapStyle"></view>
3
+ </template>
4
+
5
+ <script setup lang="ts">
6
+ import { GapProps } from './types';
7
+ import { computed } from 'vue';
8
+
9
+ defineOptions({
10
+ name: 'u-gap'
11
+ });
12
+
13
+ /**
14
+ * gap 间隔槽
15
+ * @description 该组件一般用于内容块之间的用一个灰色块隔开的场景,方便用户风格统一,减少工作量
16
+ * @tutorial https://uview-pro.netlify.app/components/gap.html
17
+ * @property {String} bg-color 背景颜色(默认#f3f4f6)
18
+ * @property {String Number} height 分割槽高度,单位rpx(默认30)
19
+ * @property {String Number} margin-top 与前一个组件的距离,单位rpx(默认0)
20
+ * @property {String Number} margin-bottom 与后一个组件的距离,单位rpx(0)
21
+ * @example <u-gap height="80" bg-color="#bbb"></u-gap>
22
+ */
23
+ const props = defineProps(GapProps);
24
+
25
+ /**
26
+ * 间隔槽样式
27
+ */
28
+ const gapStyle = computed(() => {
29
+ return {
30
+ backgroundColor: props.bgColor,
31
+ height: props.height + 'rpx',
32
+ marginTop: props.marginTop + 'rpx',
33
+ marginBottom: props.marginBottom + 'rpx'
34
+ };
35
+ });
36
+ </script>
37
+
38
+ <style lang="scss" scoped>
39
+ @import '../../libs/css/style.components.scss';
40
+ </style>
@@ -1,19 +1,19 @@
1
- import type { ExtractPropTypes, PropType } from 'vue';
2
- import type { InputAlign } from '../../types/global';
3
-
4
- /**
5
- * u-grid 组件 Props 类型定义
6
- * @description 宫格组件属性
7
- */
8
- export const GridProps = {
9
- /** 分成几列 */
10
- col: { type: [Number, String] as PropType<string | number>, default: 3 },
11
- /** 是否显示边框 */
12
- border: { type: Boolean, default: true },
13
- /** 宫格对齐方式,表现为数量少的时候,靠左,居中,还是靠右 */
14
- align: { type: String as PropType<InputAlign>, default: 'left' },
15
- /** 宫格按压时的样式类,"none"为无效果 */
16
- hoverClass: { type: String, default: 'u-hover-class' }
17
- };
18
-
19
- export type GridProps = ExtractPropTypes<typeof GridProps>;
1
+ import type { ExtractPropTypes, PropType } from 'vue';
2
+ import type { InputAlign } from '../../types/global';
3
+
4
+ /**
5
+ * u-grid 组件 Props 类型定义
6
+ * @description 宫格组件属性
7
+ */
8
+ export const GridProps = {
9
+ /** 分成几列 */
10
+ col: { type: [Number, String] as PropType<string | number>, default: 3 },
11
+ /** 是否显示边框 */
12
+ border: { type: Boolean, default: true },
13
+ /** 宫格对齐方式,表现为数量少的时候,靠左,居中,还是靠右 */
14
+ align: { type: String as PropType<InputAlign>, default: 'left' },
15
+ /** 宫格按压时的样式类,"none"为无效果 */
16
+ hoverClass: { type: String, default: 'u-hover-class' }
17
+ };
18
+
19
+ export type GridProps = ExtractPropTypes<typeof GridProps>;