uview-plus 3.3.42 → 3.3.43
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
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<view
|
|
3
|
-
class="u-float-button" :
|
|
4
|
-
|
|
3
|
+
class="u-float-button" :style="{
|
|
4
|
+
position: 'fixed',
|
|
5
|
+
top: top,
|
|
6
|
+
bottom: bottom,
|
|
7
|
+
right: right,
|
|
8
|
+
}">
|
|
9
|
+
<view class="u-float-button__main" @click="clickHandler" :style="{
|
|
5
10
|
backgroundColor: backgroundColor,
|
|
6
11
|
color: color,
|
|
7
12
|
flexDirection: 'row',
|
|
@@ -9,37 +14,33 @@
|
|
|
9
14
|
alignItems: 'center',
|
|
10
15
|
width: width,
|
|
11
16
|
height: height,
|
|
12
|
-
position: 'absolute',
|
|
13
|
-
bottom: bottom,
|
|
14
|
-
right: right,
|
|
15
17
|
borderRadius: '50%',
|
|
16
18
|
borderColor: borderColor,
|
|
17
19
|
}">
|
|
18
20
|
<slot :showList="showList">
|
|
19
|
-
<up-icon :class="{'show-list': showList}" name="plus" :color="color"></up-icon>
|
|
21
|
+
<up-icon class="cursor-pointer" :class="{'show-list': showList}" name="plus" :color="color"></up-icon>
|
|
20
22
|
</slot>
|
|
21
|
-
<
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
}">
|
|
23
|
+
<view v-if="showList" class="u-float-button__list" :style="{
|
|
24
|
+
bottom: height
|
|
25
|
+
}">
|
|
26
|
+
<slot name="list">
|
|
26
27
|
<template v-for="item in list">
|
|
27
28
|
<view class="u-float-button__item" :style="{
|
|
28
|
-
backgroundColor: item?.
|
|
29
|
-
color: item?.color
|
|
29
|
+
backgroundColor: item?.backgroundColor ? item?.backgroundColor : backgroundColor,
|
|
30
|
+
color: item?.color ? item?.color : color,
|
|
30
31
|
flexDirection: 'row',
|
|
31
32
|
justifyContent: 'center',
|
|
32
33
|
alignItems: 'center',
|
|
33
34
|
width: width,
|
|
34
35
|
height: height,
|
|
35
36
|
borderRadius: '50%',
|
|
36
|
-
borderColor: item?.borderColor
|
|
37
|
+
borderColor: item?.borderColor ? item?.borderColor : borderColor,
|
|
37
38
|
}" @click="itemClick(item, index)">
|
|
38
|
-
<up-icon :name="item.name" :color="item?.color
|
|
39
|
+
<up-icon :name="item.name" :color="item?.color ? item?.color : color"></up-icon>
|
|
39
40
|
</view>
|
|
40
41
|
</template>
|
|
41
|
-
</
|
|
42
|
-
</
|
|
42
|
+
</slot>
|
|
43
|
+
</view>
|
|
43
44
|
</view>
|
|
44
45
|
</view>
|
|
45
46
|
</template>
|
|
@@ -52,9 +53,9 @@ import { addStyle, addUnit, deepMerge } from '../../libs/function/index';
|
|
|
52
53
|
* FloatButton 悬浮按钮
|
|
53
54
|
* @description 悬浮按钮常用于屏幕右下角点击展开的操作菜单
|
|
54
55
|
* @tutorial https://ijry.github.io/uview-plus/components/floatButton.html
|
|
55
|
-
* @property {String}
|
|
56
|
+
* @property {String} backgroundColor 背景颜色
|
|
56
57
|
* @event {Function} click 点击触发事件
|
|
57
|
-
* @example <up-
|
|
58
|
+
* @example <up-float-button></up-float-button>
|
|
58
59
|
*/
|
|
59
60
|
export default {
|
|
60
61
|
name: 'u-float-button',
|
|
@@ -66,17 +67,59 @@ export default {
|
|
|
66
67
|
// #endif
|
|
67
68
|
emits: ['click', 'item-click'],
|
|
68
69
|
computed: {
|
|
69
|
-
valueStyle() {}
|
|
70
70
|
},
|
|
71
71
|
props: {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
72
|
+
// 背景颜色
|
|
73
|
+
backgroundColor: {
|
|
74
|
+
type: String,
|
|
75
|
+
default: '#2979ff'
|
|
76
|
+
},
|
|
77
|
+
// 文字颜色
|
|
78
|
+
color: {
|
|
79
|
+
type: String,
|
|
80
|
+
default: '#fff'
|
|
81
|
+
},
|
|
82
|
+
// 宽度
|
|
83
|
+
width: {
|
|
84
|
+
type: String,
|
|
85
|
+
default: '50px'
|
|
86
|
+
},
|
|
87
|
+
// 高度
|
|
88
|
+
height: {
|
|
89
|
+
type: String,
|
|
90
|
+
default: '50px'
|
|
91
|
+
},
|
|
92
|
+
// 边框颜色,默认为空字符串表示无边框
|
|
93
|
+
borderColor: {
|
|
94
|
+
type: String,
|
|
95
|
+
default: ''
|
|
96
|
+
},
|
|
97
|
+
// 右侧偏移量
|
|
98
|
+
right: {
|
|
99
|
+
type: [String, Number],
|
|
100
|
+
default: '30px'
|
|
101
|
+
},
|
|
102
|
+
// 顶部偏移量,未提供默认值,可能需要根据具体情况设置
|
|
103
|
+
top: {
|
|
104
|
+
type: [String, Number],
|
|
105
|
+
default: '',
|
|
106
|
+
},
|
|
107
|
+
// 底部偏移量
|
|
108
|
+
bottom: {
|
|
109
|
+
type: String,
|
|
110
|
+
default: ''
|
|
111
|
+
},
|
|
112
|
+
// 是否为菜单项
|
|
113
|
+
isMenu: {
|
|
114
|
+
type: Boolean,
|
|
115
|
+
default: false
|
|
116
|
+
},
|
|
117
|
+
list: {
|
|
118
|
+
type: Array,
|
|
119
|
+
default: () => {
|
|
120
|
+
return []
|
|
121
|
+
}
|
|
122
|
+
}
|
|
80
123
|
},
|
|
81
124
|
data() {
|
|
82
125
|
return {
|
|
@@ -88,6 +131,7 @@ export default {
|
|
|
88
131
|
clickHandler(e) {
|
|
89
132
|
if (this.isMenu) {
|
|
90
133
|
this.showList = !this.showList
|
|
134
|
+
this.$emit('click', e)
|
|
91
135
|
} else {
|
|
92
136
|
this.$emit('click', e)
|
|
93
137
|
}
|
|
@@ -106,6 +150,7 @@ export default {
|
|
|
106
150
|
@import '../../libs/css/components.scss';
|
|
107
151
|
|
|
108
152
|
.u-float-button {
|
|
153
|
+
z-index: 999;
|
|
109
154
|
.show-list {
|
|
110
155
|
transform: rotate(45deg);
|
|
111
156
|
}
|
|
@@ -67,11 +67,16 @@
|
|
|
67
67
|
},
|
|
68
68
|
watch: {
|
|
69
69
|
copyFlowList(nVal, oVal) {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
70
|
+
if (!nVal || nVal.length == 0) {
|
|
71
|
+
this.clear();
|
|
72
|
+
// console.log('clear');
|
|
73
|
+
} else {
|
|
74
|
+
// 取差值,即这一次数组变化新增的部分
|
|
75
|
+
let startIndex = Array.isArray(oVal) && oVal.length > 0 ? oVal.length : 0;
|
|
76
|
+
// 拼接上原有数据
|
|
77
|
+
this.tempList = this.tempList.concat(this.cloneData(nVal.slice(startIndex)));
|
|
78
|
+
this.splitData();
|
|
79
|
+
}
|
|
75
80
|
}
|
|
76
81
|
},
|
|
77
82
|
mounted() {
|
|
@@ -81,12 +86,18 @@
|
|
|
81
86
|
computed: {
|
|
82
87
|
// 破坏flowList变量的引用,否则watch的结果新旧值是一样的
|
|
83
88
|
copyFlowList() {
|
|
89
|
+
// #ifdef VUE3
|
|
90
|
+
if (!this.modelValue || this.modelValue.length == 0) {
|
|
91
|
+
this.clear();
|
|
92
|
+
// console.log('clear');
|
|
93
|
+
return [];
|
|
94
|
+
} else {
|
|
95
|
+
return this.cloneData(this.modelValue);
|
|
96
|
+
}
|
|
97
|
+
// #endif
|
|
84
98
|
// #ifdef VUE2
|
|
85
99
|
return this.cloneData(this.value);
|
|
86
100
|
// #endif
|
|
87
|
-
// #ifdef VUE3
|
|
88
|
-
return this.cloneData(this.modelValue);
|
|
89
|
-
// #endif
|
|
90
101
|
}
|
|
91
102
|
},
|
|
92
103
|
emits: ['update:modelValue'],
|
package/libs/function/index.js
CHANGED
|
@@ -694,6 +694,17 @@ export function pages() {
|
|
|
694
694
|
return pages
|
|
695
695
|
}
|
|
696
696
|
|
|
697
|
+
export function getValueByPath(obj, path) {
|
|
698
|
+
// 将路径字符串按 '.' 分割成数组
|
|
699
|
+
const pathArr = path.split('.');
|
|
700
|
+
// 使用 reduce 方法从 obj 开始,逐级访问嵌套属性
|
|
701
|
+
return pathArr.reduce((acc, curr) => {
|
|
702
|
+
// 如果当前累加器(acc)是对象且包含当前键(curr),则返回该键对应的值
|
|
703
|
+
// 否则返回 undefined(表示路径不存在)
|
|
704
|
+
return acc && acc[curr] !== undefined ? acc[curr] : undefined;
|
|
705
|
+
}, obj);
|
|
706
|
+
}
|
|
707
|
+
|
|
697
708
|
export default {
|
|
698
709
|
range,
|
|
699
710
|
getPx,
|
|
@@ -724,5 +735,6 @@ export default {
|
|
|
724
735
|
setProperty,
|
|
725
736
|
page,
|
|
726
737
|
pages,
|
|
738
|
+
getValueByPath,
|
|
727
739
|
// setConfig
|
|
728
740
|
}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"id": "uview-plus",
|
|
3
3
|
"name": "uview-plus",
|
|
4
|
-
"displayName": "
|
|
5
|
-
"version": "3.3.
|
|
4
|
+
"displayName": "uview-plus3.0重磅发布,全面的Vue3鸿蒙移动组件库。",
|
|
5
|
+
"version": "3.3.43",
|
|
6
6
|
"description": "零云®uview-plus已兼容vue3,全面的组件和便捷的工具会让您信手拈来,如鱼得水",
|
|
7
7
|
"keywords": [
|
|
8
8
|
"uview",
|