uview-pro 0.0.13 → 0.0.15

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 (234) hide show
  1. package/changelog.md +236 -217
  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-loadmore/types.ts +79 -79
  94. package/components/u-loadmore/u-loadmore.vue +140 -140
  95. package/components/u-mask/types.ts +43 -43
  96. package/components/u-mask/u-mask.vue +106 -106
  97. package/components/u-message-input/types.ts +74 -74
  98. package/components/u-message-input/u-message-input.vue +255 -255
  99. package/components/u-modal/types.ts +118 -118
  100. package/components/u-modal/u-modal.vue +200 -200
  101. package/components/u-navbar/types.ts +103 -103
  102. package/components/u-navbar/u-navbar.vue +226 -226
  103. package/components/u-no-network/image.ts +2 -2
  104. package/components/u-no-network/types.ts +28 -28
  105. package/components/u-no-network/u-no-network.vue +290 -290
  106. package/components/u-notice-bar/types.ts +111 -111
  107. package/components/u-notice-bar/u-notice-bar.vue +174 -174
  108. package/components/u-number-box/types.ts +42 -42
  109. package/components/u-number-box/u-number-box.vue +312 -312
  110. package/components/u-number-keyboard/types.ts +26 -26
  111. package/components/u-number-keyboard/u-number-keyboard.vue +166 -166
  112. package/components/u-picker/types.ts +111 -111
  113. package/components/u-picker/u-picker.vue +637 -637
  114. package/components/u-popup/types.ts +59 -59
  115. package/components/u-popup/u-popup.vue +359 -359
  116. package/components/u-radio/types.ts +25 -25
  117. package/components/u-radio/u-radio.vue +258 -258
  118. package/components/u-radio-group/types.ts +29 -29
  119. package/components/u-radio-group/u-radio-group.vue +98 -98
  120. package/components/u-rate/types.ts +40 -40
  121. package/components/u-rate/u-rate.vue +234 -234
  122. package/components/u-read-more/types.ts +35 -35
  123. package/components/u-read-more/u-read-more.vue +150 -150
  124. package/components/u-row/types.ts +20 -20
  125. package/components/u-row/u-row.vue +87 -87
  126. package/components/u-row-notice/types.ts +39 -39
  127. package/components/u-row-notice/u-row-notice.vue +213 -213
  128. package/components/u-search/types.ts +53 -53
  129. package/components/u-search/u-search.vue +256 -256
  130. package/components/u-section/types.ts +32 -32
  131. package/components/u-section/u-section.vue +125 -125
  132. package/components/u-select/types.ts +43 -43
  133. package/components/u-select/u-select.vue +361 -345
  134. package/components/u-skeleton/types.ts +20 -20
  135. package/components/u-skeleton/u-skeleton.vue +205 -205
  136. package/components/u-slider/types.ts +32 -32
  137. package/components/u-slider/u-slider.vue +238 -238
  138. package/components/u-steps/types.ts +28 -28
  139. package/components/u-steps/u-steps.vue +160 -160
  140. package/components/u-sticky/types.ts +22 -22
  141. package/components/u-sticky/u-sticky.vue +159 -159
  142. package/components/u-subsection/types.ts +36 -36
  143. package/components/u-subsection/u-subsection.vue +328 -328
  144. package/components/u-swipe-action/types.ts +50 -50
  145. package/components/u-swipe-action/u-swipe-action.vue +253 -252
  146. package/components/u-swiper/types.ts +47 -47
  147. package/components/u-swiper/u-swiper.vue +266 -266
  148. package/components/u-switch/types.ts +28 -28
  149. package/components/u-switch/u-switch.vue +128 -128
  150. package/components/u-tabbar/types.ts +36 -36
  151. package/components/u-tabbar/u-tabbar.vue +280 -280
  152. package/components/u-table/types.ts +25 -25
  153. package/components/u-table/u-table.vue +55 -55
  154. package/components/u-tabs/types.ts +51 -51
  155. package/components/u-tabs/u-tabs.vue +284 -284
  156. package/components/u-tabs-swiper/types.ts +53 -53
  157. package/components/u-tabs-swiper/u-tabs-swiper.vue +379 -379
  158. package/components/u-tag/types.ts +37 -37
  159. package/components/u-tag/u-tag.vue +244 -244
  160. package/components/u-td/types.ts +12 -12
  161. package/components/u-td/u-td.vue +69 -69
  162. package/components/u-th/types.ts +12 -12
  163. package/components/u-th/u-th.vue +63 -63
  164. package/components/u-time-line/u-time-line.vue +39 -39
  165. package/components/u-time-line-item/types.ts +14 -14
  166. package/components/u-time-line-item/u-time-line-item.vue +78 -78
  167. package/components/u-toast/types.ts +36 -36
  168. package/components/u-toast/u-toast.vue +233 -233
  169. package/components/u-top-tips/types.ts +14 -14
  170. package/components/u-top-tips/u-top-tips.vue +113 -113
  171. package/components/u-tr/types.ts +8 -8
  172. package/components/u-tr/u-tr.vue +24 -24
  173. package/components/u-upload/types.ts +71 -71
  174. package/components/u-upload/u-upload.vue +545 -545
  175. package/components/u-verification-code/types.ts +22 -22
  176. package/components/u-verification-code/u-verification-code.vue +164 -164
  177. package/components/u-waterfall/types.ts +16 -16
  178. package/components/u-waterfall/u-waterfall.vue +170 -170
  179. package/iconfont.css +910 -910
  180. package/index.scss +22 -22
  181. package/index.ts +202 -202
  182. package/libs/config/config.ts +26 -26
  183. package/libs/config/zIndex.ts +37 -37
  184. package/libs/css/color.scss +155 -155
  185. package/libs/css/common.scss +175 -175
  186. package/libs/css/style.components.scss +6 -6
  187. package/libs/css/style.h5.scss +8 -8
  188. package/libs/css/style.mp.scss +72 -72
  189. package/libs/css/style.nvue.scss +2 -2
  190. package/libs/css/style.vue.scss +175 -175
  191. package/libs/function/$parent.ts +22 -22
  192. package/libs/function/addUnit.ts +13 -13
  193. package/libs/function/color.ts +36 -36
  194. package/libs/function/colorGradient.ts +125 -125
  195. package/libs/function/debounce.ts +28 -28
  196. package/libs/function/deepClone.ts +39 -39
  197. package/libs/function/deepMerge.ts +34 -34
  198. package/libs/function/getParent.ts +58 -58
  199. package/libs/function/getRect.ts +26 -26
  200. package/libs/function/guid.ts +42 -42
  201. package/libs/function/md5.ts +398 -398
  202. package/libs/function/parent.ts +21 -21
  203. package/libs/function/queryParams.ts +60 -60
  204. package/libs/function/random.ts +16 -16
  205. package/libs/function/randomArray.ts +11 -11
  206. package/libs/function/route.ts +118 -118
  207. package/libs/function/sys.ts +15 -15
  208. package/libs/function/test.ts +229 -229
  209. package/libs/function/throttle.ts +31 -31
  210. package/libs/function/timeFormat.ts +54 -54
  211. package/libs/function/timeFrom.ts +48 -48
  212. package/libs/function/toast.ts +14 -14
  213. package/libs/function/trim.ts +21 -21
  214. package/libs/function/type2icon.ts +36 -36
  215. package/libs/hooks/useEmitter.ts +77 -77
  216. package/libs/hooks/useParent.ts +29 -29
  217. package/libs/request/auto-http.ts +76 -76
  218. package/libs/request/index.ts +237 -237
  219. package/libs/request/uni-http.md +156 -156
  220. package/libs/request/uni-http.ts +434 -434
  221. package/libs/store/index.ts +88 -88
  222. package/libs/util/async-validator.d.ts +62 -62
  223. package/libs/util/async-validator.js +1356 -1356
  224. package/libs/util/emitter.ts +112 -112
  225. package/libs/util/mitt.ts +118 -118
  226. package/libs/util/parent.ts +20 -20
  227. package/package.json +107 -107
  228. package/readme.md +231 -236
  229. package/theme.scss +38 -38
  230. package/types/components.d.ts +94 -94
  231. package/types/global.d.ts +221 -208
  232. package/types/ignore-errors.d.ts +30 -30
  233. package/types/index.d.ts +90 -90
  234. 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>;