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.
- package/changelog.md +232 -223
- package/components/u-action-sheet/types.ts +35 -35
- package/components/u-action-sheet/u-action-sheet.vue +160 -160
- package/components/u-alert-tips/types.ts +39 -39
- package/components/u-alert-tips/u-alert-tips.vue +212 -212
- package/components/u-avatar/types.ts +34 -34
- package/components/u-avatar/u-avatar.vue +193 -193
- package/components/u-avatar-cropper/types.ts +23 -23
- package/components/u-avatar-cropper/u-avatar-cropper.vue +286 -286
- package/components/u-avatar-cropper/weCropper.d.ts +62 -62
- package/components/u-avatar-cropper/weCropper.js +1253 -1253
- package/components/u-avatar-cropper/weCropper.ts +1255 -1255
- package/components/u-back-top/types.ts +39 -39
- package/components/u-back-top/u-back-top.vue +125 -125
- package/components/u-badge/types.ts +36 -36
- package/components/u-badge/u-badge.vue +165 -165
- package/components/u-button/types.ts +66 -66
- package/components/u-button/u-button.vue +554 -554
- package/components/u-calendar/types.ts +63 -63
- package/components/u-calendar/u-calendar.vue +592 -592
- package/components/u-car-keyboard/types.ts +12 -12
- package/components/u-car-keyboard/u-car-keyboard.vue +234 -234
- package/components/u-card/types.ts +59 -59
- package/components/u-card/u-card.vue +194 -194
- package/components/u-cell-group/types.ts +17 -17
- package/components/u-cell-group/u-cell-group.vue +50 -50
- package/components/u-cell-item/types.ts +54 -54
- package/components/u-cell-item/u-cell-item.vue +202 -202
- package/components/u-checkbox/types.ts +31 -31
- package/components/u-checkbox/u-checkbox.vue +265 -265
- package/components/u-checkbox-group/types.ts +32 -32
- package/components/u-checkbox-group/u-checkbox-group.vue +79 -79
- package/components/u-circle-progress/types.ts +52 -52
- package/components/u-circle-progress/u-circle-progress.vue +189 -189
- package/components/u-city-select/types.ts +20 -20
- package/components/u-city-select/u-city-select.vue +236 -236
- package/components/u-col/types.ts +30 -30
- package/components/u-col/u-col.vue +123 -123
- package/components/u-collapse/types.ts +31 -31
- package/components/u-collapse/u-collapse.vue +68 -68
- package/components/u-collapse-item/types.ts +25 -25
- package/components/u-collapse-item/u-collapse-item.vue +176 -176
- package/components/u-column-notice/types.ts +48 -48
- package/components/u-column-notice/u-column-notice.vue +176 -176
- package/components/u-count-down/types.ts +42 -42
- package/components/u-count-down/u-count-down.vue +258 -258
- package/components/u-count-to/types.ts +32 -32
- package/components/u-count-to/u-count-to.vue +241 -241
- package/components/u-divider/types.ts +31 -31
- package/components/u-divider/u-divider.vue +121 -121
- package/components/u-dropdown/types.ts +32 -32
- package/components/u-dropdown/u-dropdown.vue +289 -289
- package/components/u-dropdown-item/types.ts +27 -27
- package/components/u-dropdown-item/u-dropdown-item.vue +123 -123
- package/components/u-empty/types.ts +36 -36
- package/components/u-empty/u-empty.vue +88 -88
- package/components/u-field/types.ts +69 -69
- package/components/u-field/u-field.vue +354 -354
- package/components/u-form/types.ts +6 -4
- package/components/u-form/u-form.vue +19 -5
- package/components/u-form-item/types.ts +2 -2
- package/components/u-form-item/u-form-item.vue +7 -6
- package/components/u-full-screen/types.ts +14 -14
- package/components/u-full-screen/u-full-screen.vue +82 -82
- package/components/u-gap/types.ts +18 -18
- package/components/u-gap/u-gap.vue +40 -40
- package/components/u-grid/types.ts +19 -19
- package/components/u-grid/u-grid.vue +93 -93
- package/components/u-grid-item/types.ts +16 -16
- package/components/u-grid-item/u-grid-item.vue +130 -130
- package/components/u-icon/types.ts +62 -62
- package/components/u-icon/u-icon.vue +274 -274
- package/components/u-image/types.ts +51 -49
- package/components/u-image/u-image.vue +222 -218
- package/components/u-index-anchor/types.ts +16 -16
- package/components/u-index-anchor/u-index-anchor.vue +86 -86
- package/components/u-index-list/types.ts +43 -43
- package/components/u-index-list/u-index-list.vue +355 -355
- package/components/u-input/types.ts +140 -140
- package/components/u-input/u-input.vue +255 -255
- package/components/u-keyboard/types.ts +40 -40
- package/components/u-keyboard/u-keyboard.vue +158 -158
- package/components/u-lazy-load/types.ts +37 -37
- package/components/u-lazy-load/u-lazy-load.vue +233 -233
- package/components/u-line/types.ts +44 -44
- package/components/u-line/u-line.vue +59 -59
- package/components/u-line-progress/types.ts +58 -58
- package/components/u-line-progress/u-line-progress.vue +109 -109
- package/components/u-link/types.ts +43 -43
- package/components/u-link/u-link.vue +75 -75
- package/components/u-loading/types.ts +35 -35
- package/components/u-loading/u-loading.vue +90 -90
- package/components/u-loading-popup/types.ts +19 -0
- package/components/u-loading-popup/u-loading-popup.vue +208 -0
- package/components/u-loadmore/types.ts +79 -79
- package/components/u-loadmore/u-loadmore.vue +140 -140
- package/components/u-mask/types.ts +43 -43
- package/components/u-mask/u-mask.vue +106 -106
- package/components/u-message-input/types.ts +74 -74
- package/components/u-message-input/u-message-input.vue +255 -255
- package/components/u-modal/types.ts +118 -118
- package/components/u-modal/u-modal.vue +200 -200
- package/components/u-navbar/types.ts +103 -103
- package/components/u-navbar/u-navbar.vue +226 -226
- package/components/u-no-network/image.ts +2 -2
- package/components/u-no-network/types.ts +28 -28
- package/components/u-no-network/u-no-network.vue +290 -290
- package/components/u-notice-bar/types.ts +111 -111
- package/components/u-notice-bar/u-notice-bar.vue +174 -174
- package/components/u-number-box/types.ts +42 -42
- package/components/u-number-box/u-number-box.vue +312 -312
- package/components/u-number-keyboard/types.ts +26 -26
- package/components/u-number-keyboard/u-number-keyboard.vue +166 -166
- package/components/u-picker/types.ts +111 -111
- package/components/u-picker/u-picker.vue +637 -637
- package/components/u-popup/types.ts +59 -59
- package/components/u-popup/u-popup.vue +359 -359
- package/components/u-radio/types.ts +25 -25
- package/components/u-radio/u-radio.vue +258 -258
- package/components/u-radio-group/types.ts +29 -29
- package/components/u-radio-group/u-radio-group.vue +98 -98
- package/components/u-rate/types.ts +40 -40
- package/components/u-rate/u-rate.vue +234 -234
- package/components/u-read-more/types.ts +35 -35
- package/components/u-read-more/u-read-more.vue +150 -150
- package/components/u-row/types.ts +20 -20
- package/components/u-row/u-row.vue +87 -87
- package/components/u-row-notice/types.ts +39 -39
- package/components/u-row-notice/u-row-notice.vue +213 -213
- package/components/u-search/types.ts +53 -53
- package/components/u-search/u-search.vue +256 -256
- package/components/u-section/types.ts +32 -32
- package/components/u-section/u-section.vue +125 -125
- package/components/u-select/types.ts +43 -43
- package/components/u-select/u-select.vue +361 -345
- package/components/u-skeleton/types.ts +20 -20
- package/components/u-skeleton/u-skeleton.vue +205 -205
- package/components/u-slider/types.ts +32 -32
- package/components/u-slider/u-slider.vue +238 -238
- package/components/u-steps/types.ts +28 -28
- package/components/u-steps/u-steps.vue +160 -160
- package/components/u-sticky/types.ts +22 -22
- package/components/u-sticky/u-sticky.vue +159 -159
- package/components/u-subsection/types.ts +36 -36
- package/components/u-subsection/u-subsection.vue +328 -328
- package/components/u-swipe-action/types.ts +50 -50
- package/components/u-swipe-action/u-swipe-action.vue +253 -253
- package/components/u-swiper/types.ts +47 -47
- package/components/u-swiper/u-swiper.vue +266 -266
- package/components/u-switch/types.ts +28 -28
- package/components/u-switch/u-switch.vue +128 -128
- package/components/u-tabbar/types.ts +36 -36
- package/components/u-tabbar/u-tabbar.vue +280 -280
- package/components/u-table/types.ts +25 -25
- package/components/u-table/u-table.vue +55 -55
- package/components/u-tabs/types.ts +51 -51
- package/components/u-tabs/u-tabs.vue +284 -284
- package/components/u-tabs-swiper/types.ts +53 -53
- package/components/u-tabs-swiper/u-tabs-swiper.vue +379 -379
- package/components/u-tag/types.ts +37 -37
- package/components/u-tag/u-tag.vue +244 -244
- package/components/u-td/types.ts +12 -12
- package/components/u-td/u-td.vue +69 -69
- package/components/u-th/types.ts +12 -12
- package/components/u-th/u-th.vue +63 -63
- package/components/u-time-line/u-time-line.vue +39 -39
- package/components/u-time-line-item/types.ts +14 -14
- package/components/u-time-line-item/u-time-line-item.vue +78 -78
- package/components/u-toast/types.ts +36 -36
- package/components/u-toast/u-toast.vue +233 -233
- package/components/u-top-tips/types.ts +14 -14
- package/components/u-top-tips/u-top-tips.vue +113 -113
- package/components/u-tr/types.ts +8 -8
- package/components/u-tr/u-tr.vue +24 -24
- package/components/u-upload/types.ts +71 -71
- package/components/u-upload/u-upload.vue +545 -545
- package/components/u-verification-code/types.ts +22 -22
- package/components/u-verification-code/u-verification-code.vue +164 -164
- package/components/u-waterfall/types.ts +16 -16
- package/components/u-waterfall/u-waterfall.vue +170 -170
- package/iconfont.css +910 -910
- package/index.scss +22 -22
- package/index.ts +202 -202
- package/libs/config/config.ts +26 -26
- package/libs/config/zIndex.ts +37 -37
- package/libs/css/color.scss +155 -155
- package/libs/css/common.scss +175 -175
- package/libs/css/style.components.scss +6 -6
- package/libs/css/style.h5.scss +8 -8
- package/libs/css/style.mp.scss +72 -72
- package/libs/css/style.nvue.scss +2 -2
- package/libs/css/style.vue.scss +175 -175
- package/libs/function/$parent.ts +22 -22
- package/libs/function/addUnit.ts +13 -13
- package/libs/function/color.ts +36 -36
- package/libs/function/colorGradient.ts +125 -125
- package/libs/function/debounce.ts +28 -28
- package/libs/function/deepClone.ts +39 -39
- package/libs/function/deepMerge.ts +34 -34
- package/libs/function/getParent.ts +58 -58
- package/libs/function/getRect.ts +26 -26
- package/libs/function/guid.ts +42 -42
- package/libs/function/md5.ts +398 -398
- package/libs/function/parent.ts +21 -21
- package/libs/function/queryParams.ts +60 -60
- package/libs/function/random.ts +16 -16
- package/libs/function/randomArray.ts +11 -11
- package/libs/function/route.ts +118 -118
- package/libs/function/sys.ts +15 -15
- package/libs/function/test.ts +229 -229
- package/libs/function/throttle.ts +31 -31
- package/libs/function/timeFormat.ts +54 -54
- package/libs/function/timeFrom.ts +48 -48
- package/libs/function/toast.ts +14 -14
- package/libs/function/trim.ts +21 -21
- package/libs/function/type2icon.ts +36 -36
- package/libs/hooks/useEmitter.ts +77 -77
- package/libs/hooks/useParent.ts +29 -29
- package/libs/request/auto-http.ts +76 -76
- package/libs/request/index.ts +237 -237
- package/libs/request/uni-http.md +156 -156
- package/libs/request/uni-http.ts +434 -434
- package/libs/store/index.ts +88 -88
- package/libs/util/async-validator.d.ts +62 -62
- package/libs/util/async-validator.js +1356 -1356
- package/libs/util/emitter.ts +112 -112
- package/libs/util/mitt.ts +118 -118
- package/libs/util/parent.ts +20 -20
- package/package.json +107 -107
- package/readme.md +231 -237
- package/theme.scss +38 -38
- package/types/components.d.ts +95 -94
- package/types/global.d.ts +221 -208
- package/types/ignore-errors.d.ts +30 -30
- package/types/index.d.ts +90 -90
- package/types/uni-app.d.ts +63 -63
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ExtractPropTypes, PropType } from 'vue';
|
|
2
|
-
import type { InputAlign,
|
|
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<
|
|
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
|
-
/**
|
|
21
|
+
/** label字体的对齐方式 */
|
|
20
22
|
labelAlign: { type: String as PropType<InputAlign>, default: 'left' },
|
|
21
|
-
/**
|
|
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
|
|
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
|
|
23
|
-
* @property {String} label-align
|
|
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({
|
|
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
|
-
/**
|
|
33
|
+
/** label的样式,对象形式 */
|
|
34
34
|
labelStyle: {
|
|
35
35
|
type: Object as PropType<Record<string, any>>,
|
|
36
36
|
default: () => ({})
|
|
37
37
|
},
|
|
38
|
-
/**
|
|
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
|
|
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
|
|
91
|
-
* @property {String} label-align
|
|
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
|
-
|
|
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
|
-
|
|
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>;
|