@10yun/cv-mobile-ui 0.5.62 → 0.5.63

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 (67) hide show
  1. package/package.json +1 -1
  2. package/plugins/uni-extend.js +10 -10
  3. package/ui-fireui/components/u-action-sheet/u-action-sheet.vue +46 -16
  4. package/ui-fireui/components/u-alert/u-alert.vue +11 -5
  5. package/ui-fireui/components/u-badge/u-badge.vue +52 -69
  6. package/ui-fireui/components/u-bottom-navigation/u-bottom-navigation.vue +28 -20
  7. package/ui-fireui/components/u-bottom-popup/u-bottom-popup.vue +40 -11
  8. package/ui-fireui/components/u-bubble-popup/u-bubble-popup.vue +3 -6
  9. package/ui-fireui/components/u-button/u-button.vue +262 -259
  10. package/ui-fireui/components/u-calendar/u-calendar.vue +227 -44
  11. package/ui-fireui/components/u-calendar/u-calendar2.js +562 -0
  12. package/ui-fireui/components/u-card/u-card.vue +50 -32
  13. package/ui-fireui/components/u-cascade-selection/u-cascade-selection.vue +197 -74
  14. package/ui-fireui/components/u-circular-progress/u-circular-progress.vue +324 -0
  15. package/ui-fireui/components/u-clipboard2/tui-clipboard.js +53 -0
  16. package/ui-fireui/components/u-collapse/u-collapse.vue +8 -8
  17. package/ui-fireui/components/u-config/index.js +129 -0
  18. package/ui-fireui/components/u-count-down/u-count-down.vue +124 -19
  19. package/ui-fireui/components/u-datetime/u-datetime.vue +416 -176
  20. package/ui-fireui/components/u-divider/u-divider.vue +3 -3
  21. package/ui-fireui/components/u-drawer/u-drawer.vue +55 -12
  22. package/ui-fireui/components/u-dropdown-list/u-dropdown-list.vue +103 -0
  23. package/ui-fireui/components/u-fab/u-fab.vue +344 -0
  24. package/ui-fireui/components/u-footer/u-footer.vue +148 -0
  25. package/ui-fireui/components/u-grid/u-grid.vue +2 -8
  26. package/ui-fireui/components/u-grid-item/u-grid-item.vue +22 -5
  27. package/ui-fireui/components/u-icon/u-icon-new.js +190 -0
  28. package/ui-fireui/components/u-icon/u-icon-new.vue +100 -0
  29. package/ui-fireui/components/u-image-cropper/u-image-cropper.vue +1144 -0
  30. package/ui-fireui/components/u-image-group/u-image-group.vue +164 -0
  31. package/ui-fireui/components/u-keyboard/u-keyboard.vue +3 -2
  32. package/ui-fireui/components/u-keyboard-input/u-keyboard-input.vue +1 -1
  33. package/ui-fireui/components/u-list-cell/u-list-cell.vue +82 -72
  34. package/ui-fireui/components/u-list-view/u-list-view.vue +33 -8
  35. package/ui-fireui/components/u-loading/u-loading.vue +107 -27
  36. package/ui-fireui/components/u-loadmore/u-loadmore.vue +21 -3
  37. package/ui-fireui/components/u-modal/u-modal.vue +140 -176
  38. package/ui-fireui/components/u-navigation-bar/u-navigation-bar.vue +121 -28
  39. package/ui-fireui/components/u-no-data/u-no-data.vue +58 -20
  40. package/ui-fireui/components/u-nomore/u-nomore.vue +5 -4
  41. package/ui-fireui/components/u-numberbox/u-numberbox.vue +88 -45
  42. package/ui-fireui/components/u-picture-cropper/u-picture-cropper.vue +94 -36
  43. package/ui-fireui/components/u-picture-cropper/u-picture-cropper.wxs +27 -17
  44. package/ui-fireui/components/u-rate/u-rate.vue +197 -0
  45. package/ui-fireui/components/u-round-progress/u-round-progress.vue +62 -42
  46. package/ui-fireui/components/u-scroll-top/u-scroll-top.vue +4 -3
  47. package/ui-fireui/components/u-section/u-section.vue +149 -0
  48. package/ui-fireui/components/u-skeleton/u-skeleton.vue +37 -6
  49. package/ui-fireui/components/u-steps/u-steps.vue +110 -27
  50. package/ui-fireui/components/u-sticky/u-sticky.vue +35 -21
  51. package/ui-fireui/components/u-sticky-wxs/u-sticky-wxs.vue +7 -4
  52. package/ui-fireui/components/u-sticky-wxs/u-sticky.wxs +39 -36
  53. package/ui-fireui/components/u-swipe-action/u-swipe-action.vue +76 -19
  54. package/ui-fireui/components/u-tabbar/u-tabbar.vue +71 -38
  55. package/ui-fireui/components/u-tabs/u-tabs.vue +133 -51
  56. package/ui-fireui/components/u-tag/u-tag.vue +109 -226
  57. package/ui-fireui/components/u-time-axis/u-time-axis.vue +1 -1
  58. package/ui-fireui/components/u-timeaxis-item/u-timeaxis-item.vue +1 -1
  59. package/ui-fireui/components/u-tips/u-tips.vue +35 -15
  60. package/ui-fireui/components/u-toast/u-toast.vue +9 -5
  61. package/ui-fireui/components/u-top-dropdown/u-top-dropdown.vue +8 -6
  62. package/ui-fireui/components/u-upload/u-upload-old.vue +462 -0
  63. package/ui-fireui/components/u-upload/u-upload.vue +648 -446
  64. package/ui-fireui/components/u-white-space/u-white-space.vue +68 -0
  65. package/ui-fireui/components/u-wing-blank/u-wing-blank.vue +100 -0
  66. package/uview-plus/libs/ctocode/index.js +1 -0
  67. package/uview-plus/libs/ctocode/richText.js +0 -1
@@ -0,0 +1,164 @@
1
+ <template>
2
+ <view
3
+ class="up-image-container"
4
+ :style="{ marginBottom: multiLine ? `-${distance}rpx` : 0 }"
5
+ :class="{ 'up-image-direction': direction == 'column', 'up-image__warp': multiLine }"
6
+ >
7
+ <view
8
+ v-for="(item, index) in imageList"
9
+ :key="index"
10
+ class="up-image__itembox"
11
+ :style="{
12
+ width: width,
13
+ height: height,
14
+ borderRadius: radius,
15
+ marginLeft: direction == 'column' || multiLine ? 0 : (index && distance) + 'rpx',
16
+ marginRight: multiLine ? distance + 'rpx' : 0,
17
+ marginBottom: multiLine ? distance + 'rpx' : 0,
18
+ marginTop: direction == 'row' ? 0 : (index && distance) + 'rpx'
19
+ }"
20
+ @tap="bindClick(index, item.id)"
21
+ >
22
+ <image
23
+ class="up-image-item"
24
+ :mode="mode"
25
+ :lazy-load="lazyLoad"
26
+ fade-show="fadeShow"
27
+ :webp="webp"
28
+ :show-menu-by-longpress="longpress"
29
+ @error="error"
30
+ @load="load"
31
+ :style="{ width: width, height: height, borderRadius: radius, borderWidth: borderWidth, borderColor: borderColor }"
32
+ :src="item.src"
33
+ ></image>
34
+ <slot></slot>
35
+ </view>
36
+ </view>
37
+ </template>
38
+
39
+ <script>
40
+ export default {
41
+ name: 'tuiImageGroup',
42
+ emits: ['errorEvent', 'loaded', 'click'],
43
+ props: {
44
+ //图片集合
45
+ /*
46
+ [{id:1,src:"1.png"}]
47
+ */
48
+ imageList: {
49
+ type: Array,
50
+ default: () => {
51
+ return [];
52
+ }
53
+ },
54
+ //图片宽度
55
+ width: {
56
+ type: String,
57
+ default: '120rpx'
58
+ },
59
+ //图片高度
60
+ height: {
61
+ type: String,
62
+ default: '120rpx'
63
+ },
64
+ //图片边框宽度 rpx
65
+ borderWidth: {
66
+ type: String,
67
+ default: '0'
68
+ },
69
+ //图片边框颜色 可传rgba
70
+ borderColor: {
71
+ type: String,
72
+ default: '#fff'
73
+ },
74
+ //图片圆角
75
+ radius: {
76
+ type: String,
77
+ default: '50%'
78
+ },
79
+ //图片裁剪、缩放的模式
80
+ mode: {
81
+ type: String,
82
+ default: 'scaleToFill'
83
+ },
84
+ //图片懒加载。只针对page与scroll-view下的image有效
85
+ lazyLoad: {
86
+ type: Boolean,
87
+ default: true
88
+ },
89
+ //图片显示动画效果 | 仅App-nvue 2.3.4+ Android有效
90
+ fadeShow: {
91
+ type: Boolean,
92
+ default: true
93
+ },
94
+ //默认不解析 webP 格式,只支持网络资源 | 微信小程序2.9.0
95
+ webp: {
96
+ type: Boolean,
97
+ default: false
98
+ },
99
+ //开启长按图片显示识别小程序码菜单 | 微信小程序2.7.0
100
+ longpress: {
101
+ type: Boolean,
102
+ default: false
103
+ },
104
+ //是否组合排列
105
+ isGroup: {
106
+ type: Boolean,
107
+ default: false
108
+ },
109
+ //排列方向 row ,column
110
+ direction: {
111
+ type: String,
112
+ default: 'row'
113
+ },
114
+ //偏移距离 rpx
115
+ distance: {
116
+ type: [Number, String],
117
+ default: -16
118
+ },
119
+ //是否可多行展示,排列方向 row时生效,distance需设置为大于0的数
120
+ multiLine: {
121
+ type: Boolean,
122
+ default: false
123
+ }
124
+ },
125
+ data() {
126
+ return {};
127
+ },
128
+ methods: {
129
+ error(e) {
130
+ this.$emit('errorEvent', e);
131
+ },
132
+ load(e) {
133
+ this.$emit('loaded', e);
134
+ },
135
+ bindClick(index, id) {
136
+ this.$emit('click', {
137
+ index: index,
138
+ id: id || ''
139
+ });
140
+ }
141
+ }
142
+ };
143
+ </script>
144
+
145
+ <style scoped>
146
+ .up-image-container {
147
+ display: inline-flex;
148
+ align-items: center;
149
+ }
150
+ .up-image-direction {
151
+ flex-direction: column;
152
+ }
153
+ .up-image__warp {
154
+ flex-wrap: wrap;
155
+ }
156
+ .up-image__itembox {
157
+ position: relative;
158
+ }
159
+ .up-image-item {
160
+ border-style: solid;
161
+ flex-shrink: 0;
162
+ display: block;
163
+ }
164
+ </style>
@@ -29,7 +29,8 @@
29
29
 
30
30
  <script>
31
31
  export default {
32
- name: 'fuiKeyboard',
32
+ name: 'tuiKeyboard',
33
+ emits: ['click', 'close'],
33
34
  props: {
34
35
  //是否需要mask
35
36
  mask: {
@@ -58,7 +59,7 @@ export default {
58
59
  };
59
60
  },
60
61
  methods: {
61
- getKeyBoard(index, action) {
62
+ getKeyBoard: function (index, action) {
62
63
  var content = index + 1;
63
64
  if (index == 9) {
64
65
  content = action ? '取消' : '清除';
@@ -16,7 +16,7 @@
16
16
 
17
17
  <script>
18
18
  export default {
19
- name: 'fuiKeyboardInput',
19
+ name: 'tuiKeyboardInput',
20
20
  props: {
21
21
  //背景颜色
22
22
  backgroundColor: {
@@ -1,34 +1,44 @@
1
1
  <template>
2
2
  <view
3
3
  class="up-list-class up-list-cell"
4
- :class="[
5
- arrow ? 'up-cell-arrow' : '',
6
- arrow && arrowRight ? '' : 'up-arrow-right',
7
- unlined ? 'up-cell-unlined' : '',
8
- lineLeft ? 'up-line-left' : '',
9
- lineRight ? 'up-line-right' : '',
10
- arrow && arrowColor ? 'up-arrow-' + arrowColor : '',
11
- radius ? 'up-radius' : ''
12
- ]"
13
- :hover-class="hover ? 'up-cell-hover' : ''"
14
- :style="{ backgroundColor: backgroundColor, fontSize: size + 'rpx', color: color, padding: padding }"
15
- :hover-stay-time="150"
4
+ :class="[radius && radius != '0' ? 'up-radius' : '', hover ? 'up-cell-hover' : '']"
5
+ :style="{
6
+ backgroundColor: backgroundColor,
7
+ fontSize: getSize + 'rpx',
8
+ color: getColor,
9
+ padding: getPadding,
10
+ borderRadius: radius + 'rpx',
11
+ marginTop: marginTop + 'rpx',
12
+ marginBottom: marginBottom + 'rpx'
13
+ }"
16
14
  @tap="handleClick"
17
15
  >
18
16
  <slot></slot>
17
+ <view
18
+ class="up-cell__line"
19
+ :style="{ borderBottomColor: getLineColor, left: getLineLeft + 'rpx', right: lineRight + 'rpx' }"
20
+ v-if="!unlined"
21
+ ></view>
22
+ <view class="up-cell__arrow" :style="{ borderColor: getArrowColor, right: arrowRight + 'rpx' }" v-if="arrow"></view>
19
23
  </view>
20
24
  </template>
21
25
 
22
26
  <script>
23
27
  export default {
24
- name: 'fuiListCell',
28
+ name: 'tuiListCell',
29
+ emits: ['click'],
30
+ // #ifdef MP-WEIXIN
31
+ options: {
32
+ virtualHost: true
33
+ },
34
+ // #endif
25
35
  props: {
26
36
  //是否有箭头
27
37
  arrow: {
28
38
  type: Boolean,
29
39
  default: false
30
40
  },
31
- //箭头颜色 传值: white,gray,warning,danger
41
+ //V2.3.0+
32
42
  arrowColor: {
33
43
  type: String,
34
44
  default: ''
@@ -43,19 +53,32 @@ export default {
43
53
  type: Boolean,
44
54
  default: false
45
55
  },
46
- //线条是否有左偏移距离
56
+ //V2.3.0+
57
+ lineColor: {
58
+ type: String,
59
+ default: ''
60
+ },
61
+ //线条左偏移距离
47
62
  lineLeft: {
48
- type: Boolean,
49
- default: true
63
+ type: [Number, String],
64
+ default: -1
50
65
  },
51
- //线条是否有右偏移距离
66
+ //线条右偏移距离
52
67
  lineRight: {
53
- type: Boolean,
54
- default: false
68
+ type: [Number, String],
69
+ default: 0
55
70
  },
56
71
  padding: {
57
72
  type: String,
58
- default: '26rpx 30rpx'
73
+ default: ''
74
+ },
75
+ marginTop: {
76
+ type: [Number, String],
77
+ default: 0
78
+ },
79
+ marginBottom: {
80
+ type: [Number, String],
81
+ default: 0
59
82
  },
60
83
  //背景颜色
61
84
  backgroundColor: {
@@ -65,28 +88,52 @@ export default {
65
88
  //字体大小
66
89
  size: {
67
90
  type: Number,
68
- default: 28
91
+ default: 0
69
92
  },
70
93
  //字体颜色
71
94
  color: {
72
95
  type: String,
73
- default: '#333'
96
+ default: ''
74
97
  },
75
- //是否加圆角
98
+ //圆角值
76
99
  radius: {
77
- type: Boolean,
78
- default: false
100
+ type: [Number, String],
101
+ default: 0
79
102
  },
80
- //箭头是否有偏移距离
103
+ //箭头偏移距离
81
104
  arrowRight: {
82
- type: Boolean,
83
- default: true
105
+ type: [Number, String],
106
+ default: 30
84
107
  },
85
108
  index: {
86
109
  type: Number,
87
110
  default: 0
88
111
  }
89
112
  },
113
+ computed: {
114
+ getArrowColor() {
115
+ return this.arrowColor || (uni && uni.$tui && uni.$tui.tuiListCell.arrowColor) || '#c0c0c0';
116
+ },
117
+ getLineColor() {
118
+ return this.lineColor || (uni && uni.$tui && uni.$tui.tuiListCell.lineColor) || '#eaeef1';
119
+ },
120
+ getLineLeft() {
121
+ let left = this.lineLeft;
122
+ if (left === -1) {
123
+ left = uni && uni.$tui && uni.$tui.tuiListCell.lineLeft;
124
+ }
125
+ return left === undefined || left === null ? 30 : left;
126
+ },
127
+ getPadding() {
128
+ return this.padding || (uni && uni.$tui && uni.$tui.tuiListCell.padding) || '26rpx 30rpx';
129
+ },
130
+ getColor() {
131
+ return this.color || (uni && uni.$tui && uni.$tui.tuiListCell.color) || '#333';
132
+ },
133
+ getSize() {
134
+ return this.size || (uni && uni.$tui && uni.$tui.tuiListCell.size) || 28;
135
+ }
136
+ },
90
137
  methods: {
91
138
  handleClick() {
92
139
  this.$emit('click', {
@@ -105,16 +152,14 @@ export default {
105
152
  }
106
153
 
107
154
  .up-radius {
108
- border-radius: 6rpx;
109
155
  overflow: hidden;
110
156
  }
111
157
 
112
- .up-cell-hover {
113
- background-color: #f1f1f1 !important;
158
+ .up-cell-hover:active {
159
+ background-color: rgba(0, 0, 0, 0.1) !important;
114
160
  }
115
161
 
116
- .up-list-cell::after {
117
- content: '';
162
+ .up-cell__line {
118
163
  position: absolute;
119
164
  border-bottom: 1px solid #eaeef1;
120
165
  -webkit-transform: scaleY(0.5) translateZ(0);
@@ -123,22 +168,11 @@ export default {
123
168
  bottom: 0;
124
169
  right: 0;
125
170
  left: 0;
171
+ pointer-events: none;
172
+ z-index: 1;
126
173
  }
127
174
 
128
- .up-line-left::after {
129
- left: 30rpx !important;
130
- }
131
-
132
- .up-line-right::after {
133
- right: 30rpx !important;
134
- }
135
-
136
- .up-cell-unlined::after {
137
- border-bottom: 0 !important;
138
- }
139
-
140
- .up-cell-arrow::before {
141
- content: ' ';
175
+ .up-cell__arrow {
142
176
  height: 10px;
143
177
  width: 10px;
144
178
  border-width: 2px 2px 0 0;
@@ -151,28 +185,4 @@ export default {
151
185
  margin-top: -6px;
152
186
  right: 30rpx;
153
187
  }
154
-
155
- .up-arrow-right::before {
156
- right: 0 !important;
157
- }
158
-
159
- .up-arrow-gray::before {
160
- border-color: #666666 !important;
161
- }
162
-
163
- .up-arrow-white::before {
164
- border-color: #ffffff !important;
165
- }
166
-
167
- .up-arrow-warning::before {
168
- border-color: #ff7900 !important;
169
- }
170
-
171
- .up-arrow-success::before {
172
- border-color: #19be6b !important;
173
- }
174
-
175
- .up-arrow-danger::before {
176
- border-color: #eb0909 !important;
177
- }
178
188
  </style>
@@ -1,6 +1,12 @@
1
1
  <template>
2
- <view class="up-list-view up-view-class" :style="{ backgroundColor: backgroundColor }">
3
- <view class="up-list-title" v-if="title">{{ title }}</view>
2
+ <view
3
+ class="up-list-view up-view-class"
4
+ :class="{ 'up-radius': radius && radius != '0' }"
5
+ :style="{ backgroundColor: backgroundColor, marginTop: marginTop, borderRadius: radius + 'rpx' }"
6
+ >
7
+ <view class="up-list-title" :style="{ color: color, fontSize: size + 'rpx', lineHeight: 30 + 'rpx' }" v-if="title">
8
+ {{ title }}
9
+ </view>
4
10
  <view class="up-list-content" :class="[unlined ? 'up-border-' + unlined : '']">
5
11
  <slot></slot>
6
12
  </view>
@@ -9,12 +15,21 @@
9
15
 
10
16
  <script>
11
17
  export default {
12
- name: 'fuiListView',
18
+ name: 'tuiListView',
13
19
  props: {
14
20
  title: {
15
21
  type: String,
16
22
  default: ''
17
23
  },
24
+ color: {
25
+ type: String,
26
+ default: '#666'
27
+ },
28
+ //rpx
29
+ size: {
30
+ type: Number,
31
+ default: 30
32
+ },
18
33
  backgroundColor: {
19
34
  type: String,
20
35
  default: 'transparent'
@@ -22,6 +37,15 @@ export default {
22
37
  unlined: {
23
38
  type: String,
24
39
  default: '' //top,bottom,all
40
+ },
41
+ marginTop: {
42
+ type: String,
43
+ default: '0'
44
+ },
45
+ //圆角值
46
+ radius: {
47
+ type: [Number, String],
48
+ default: 0
25
49
  }
26
50
  }
27
51
  };
@@ -32,9 +56,6 @@ export default {
32
56
  width: 100%;
33
57
  padding: 30rpx;
34
58
  box-sizing: border-box;
35
- font-size: 30rpx;
36
- line-height: 30rpx;
37
- color: #666;
38
59
  }
39
60
 
40
61
  .up-list-content {
@@ -48,7 +69,7 @@ export default {
48
69
  top: 0;
49
70
  right: 0;
50
71
  left: 0;
51
- border-top: 1rpx solid #eaeef1;
72
+ border-top: 1px solid #eaeef1;
52
73
  -webkit-transform: scaleY(0.5) translateZ(0);
53
74
  transform: scaleY(0.5) translateZ(0);
54
75
  transform-origin: 0 0;
@@ -60,7 +81,7 @@ export default {
60
81
  content: '';
61
82
  width: 100%;
62
83
  position: absolute;
63
- border-bottom: 1rpx solid #eaeef1;
84
+ border-bottom: 1px solid #eaeef1;
64
85
  -webkit-transform: scaleY(0.5) translateZ(0);
65
86
  transform: scaleY(0.5) translateZ(0);
66
87
  transform-origin: 0 100%;
@@ -84,4 +105,8 @@ export default {
84
105
  .up-border-all::before {
85
106
  border-top: 0;
86
107
  }
108
+
109
+ .up-radius {
110
+ overflow: hidden;
111
+ }
87
112
  </style>
@@ -1,59 +1,139 @@
1
1
  <template>
2
- <view class="up-loading-init">
3
- <view class="up-loading-center"></view>
4
- <view class="up-loadmore-tips">{{ text }}</view>
2
+ <view>
3
+ <view
4
+ class="up-loading up-loading__box"
5
+ :class="{ 'up-loading__fixed': fixed }"
6
+ :style="{ backgroundColor: backgroundColor, color: color, position: fixed ? 'fixed' : 'static' }"
7
+ v-if="type === 'column'"
8
+ >
9
+ <image class="up-loading__ani" :src="src"></image>
10
+ <view class="up-loading__text">{{ text }}</view>
11
+ </view>
12
+ <view
13
+ v-else
14
+ class="up-loading up-loading__row"
15
+ :class="{ 'up-loading__fixed': fixed }"
16
+ :style="{ position: fixed ? 'fixed' : 'static' }"
17
+ >
18
+ <image class="up-loading-row__ani" :src="rowsrc"></image>
19
+ <view class="up-loading__text">{{ text }}</view>
20
+ </view>
21
+ <view class="up-loading__mask" :style="{ background: maskColor }" v-if="isMask && fixed"></view>
5
22
  </view>
6
23
  </template>
7
24
 
8
25
  <script>
9
26
  export default {
10
- name: 'fuiLoading',
27
+ name: 'tuiLoading',
11
28
  props: {
29
+ //column or row
30
+ type: {
31
+ type: String,
32
+ default: 'column'
33
+ },
12
34
  text: {
13
35
  type: String,
14
- default: '正在加载...'
36
+ default: '加载中'
37
+ },
38
+ //type=column时生效
39
+ color: {
40
+ type: String,
41
+ default: '#fff'
42
+ },
43
+ //type=column时生效
44
+ backgroundColor: {
45
+ type: String,
46
+ default: 'rgba(0, 0, 0, 0.6)'
47
+ },
48
+ //type=column时生效
49
+ src: {
50
+ type: String,
51
+ default:
52
+ 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4CAMAAAAOusbgAAAARVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////9SnXPCAAAAFnRSTlMA8ECgECCAYDDQ4MCwUL9wkN9vP49fRXb34AAAA1dJREFUaN7tmtmSozAMReXdxuyk+f9PnaW6o06CAdtSumqG8xqSi6QrGwfBxcXFD2OW5cP+pVsWDe9AL7YP6xO9mj1w0t3CmkK0H0yhd0qsBzBoazutZxDKACFSrefpJZmFUfad0vpVtonWOvkHZ62Kzas0QcLnJ0dFuxGOHNqny8QMVfjw6By5c+n4GHnwVOGq7tiDD3G74uq234Idzbmue7hVXZtmYfEncqRDicekKPSo+Z6o/EI7bB6Zfc+hXBl1R13V+0Jm6uL3inCiKGZX6g7ENwXKrrwfEB3uyubszYovXahBx3ve9LkvoG4lcc36pf7zagu16JCzeo4E8aLy+TJL1CXAfJWtP7zHKcsPp+NYh6NEY2posOeSbT4v64CMiLU7dvQIVGAsqzyuSKOBEHvCXwHvjZAGQ94PuAVaJIa8X2EDxMSDkGXh0lG9KCkMmCnkbdNq6oARt7t8Oa6A0dhhx1oREPpe9ukVxgEHBnOdyLQAHkI61wqtxcCQ9rXATDPgk9uef7kjFl+PiRJH4EKlijwmniyp15DEqtYBFz7VyQKXLR5ST9iJLibvZLuZiQh8qO1+kizPHq+hNXpT2AIjrlnX+GIii8J8eJPatyQwcwn/j8ISu5uZwj7+d4QBl8w3I3CT4EOnjjcCeJHJXUsDJ35LeHhDPw0yaesROIkmaesAjJgVtmjZizygd99b5CnunCQVsNGlFsbAnOs+tfkNTMdFzOjuqb0HJlR6J4h4uKHH7CSz47SX2tsIGr6Dm9mNyPGFrHZrqBuuKvuD1dhxGbs/6tOGuJcxoObMM5/QQIoWx8G0HA99IwZ89EZzAEI6PKMc+kt4ykRjix4ne6IrczhjGmzmoAn/dOlyXpgrumPoeLrr6JRd1hOkJVN2mW9mFZGywwbJU+51pa/QWJnKk6/o3xbX/Xxl0ZUPvxXp4nREqyuG31zZnFD5nJHp8ZsVc0I9NkTOFFsw9UN7t5x8W1E9oQSdyJ2p1fP04srKSUUlz0zLiqQlKwbwppvfVZ0DjvkR/bWO2urDbIp2t2n9knWk/+ojorfzsty9v8y2n/DTZgBKZLueInZAjR7CkWoYDLBgXCvSs/uoyoJ3Y3zWjOPg4T14KQf7m0FKqeHi4uJH+QUYYoTOYC/s2wAAAABJRU5ErkJggg=='
53
+ },
54
+ //type=row时生效
55
+ rowsrc: {
56
+ type: String,
57
+ default:
58
+ 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFoAAABaCAMAAAAPdrEwAAAAM1BMVEUAAACPj4+IiIiIiIiIiIiIiIiKioqHh4eHh4eHh4eHh4eIiIiIiIiJiYmIiIiJiYmIiIi8awvKAAAAEHRSTlMAEEDw4NAwwKAgYICQULBwL0wVnQAAAmpJREFUWMPtmOmO4yAQhLlvMO//tDuyjfAaCEcj7UqTT5o/iafSVLcLY/TldyHID8fPH94oir2TLD6QyugdxVoeazAnYPUaFtsws+yNVjR+htolcWz/luHyhL7F55XNQ0Narx+L8TY8bSGTXsiYUB5V8A+zHJ4rud+p3GI+PiwqCXv0Ec+T42awf3L8+iMtzwwp36UEPHR1SIYPKueS+xxJe1CZiYkooNmTvjLHUzHDR7TVgnI2UXR9k/OhQHslieKCcb87reRnB5fCzMeTVp5cUbeY8O6arEYknYs60CJXK21zOvot7DSK4lrR51eA7dQ1y1bFF9MT2Chb358DsLHeLJeKhpZdDgkDFp1jQtRGXiEYOtZU1PLdUt7OFT84gnJUHNE5XOCO2PLnCALDzl21HD2Yam4ZRU9kER8Qs/V7IQ7BIWVqp10TTCFN0gdgwvumJmkcwWDFgigsQtv4Sv8baZ2lt5Pn+n+Wfm+CMsUsHFIJQ7VH+l2hSXsaHFUbEb1l2GRt5zFb/FC1nSfskGam+lSP4cqmks10jyOc1fditiGMXD1G4DekTH5sf14gkTeD1QOdbrRLXodGAKb1hC7gh5nmvzvgI0NoHyswA1niP7WKQE4dmtYHDH4MwzxS3T2MmCWje5OL2aK26j9EC7qkrVIk97XtrM+RYzSoHSZmUCTlLoLNvTs+aFLug+XEu2Mt59boRl9+4vk7gbD79fXnii2dsS6Xc4lb3fx5lX1bfKfPD1HJInetS64lJQnxhkrryV2+INbxeCHXN1PtaGxClUYgvGJ1XY82IA7Fn7IyFO7DIDcYfflN/AFNdjdeDj7M+wAAAABJRU5ErkJggg=='
59
+ },
60
+ fixed: {
61
+ type: Boolean,
62
+ default: true
63
+ },
64
+ //v2.9.0+
65
+ isMask: {
66
+ type: Boolean,
67
+ default: false
68
+ },
69
+ //v2.9.0+
70
+ maskColor: {
71
+ type: String,
72
+ default: 'rgba(0,0,0,.3)'
15
73
  }
16
74
  }
17
75
  };
18
76
  </script>
19
77
 
20
78
  <style scoped>
21
- .up-loading-init {
22
- min-width: 200rpx;
23
- min-height: 200rpx;
24
- max-width: 500rpx;
79
+ .up-loading {
25
80
  display: flex;
26
81
  align-items: center;
27
82
  justify-content: center;
28
- flex-direction: column;
29
- position: fixed;
83
+ }
84
+
85
+ .up-loading__fixed {
30
86
  top: 50%;
31
87
  left: 50%;
32
88
  transform: translate(-50%, -50%);
33
89
  z-index: 9999;
34
- font-size: 26rpx;
35
- color: #fff;
36
- background-color: rgba(0, 0, 0, 0.7);
90
+ }
91
+
92
+ .up-loading__mask {
93
+ width: 100%;
94
+ position: fixed;
95
+ top: 0;
96
+ left: 0;
97
+ right: 0;
98
+ bottom: 0;
99
+ z-index: 9900;
100
+ }
101
+
102
+ .up-loading__box {
103
+ min-width: 200rpx;
104
+ min-height: 200rpx;
105
+ max-width: 500rpx;
106
+ flex-direction: column;
37
107
  border-radius: 10rpx;
38
108
  }
39
109
 
40
- .up-loading-center {
41
- width: 50rpx;
42
- height: 50rpx;
43
- border: 3px solid #fff;
44
- border-radius: 50%;
110
+ .up-loading__ani {
111
+ width: 64rpx;
112
+ height: 64rpx;
45
113
  margin: 0 6px;
46
- display: inline-block;
47
- vertical-align: middle;
48
- clip-path: polygon(0% 0%, 100% 0%, 100% 40%, 0% 40%);
49
- animation: rotate 1s linear infinite;
50
- margin-bottom: 36rpx;
114
+ animation: rotate 0.9s linear infinite;
115
+ margin-bottom: 30rpx;
116
+ }
117
+
118
+ .up-loading__row {
119
+ width: 100%;
120
+ height: 36rpx;
121
+ color: #888;
51
122
  }
52
123
 
53
- .up-loadmore-tips {
124
+ .up-loading-row__ani {
125
+ width: 36rpx;
126
+ height: 36rpx;
127
+ display: block;
128
+ border-radius: 50%;
129
+ animation: rotate 0.9s linear infinite;
130
+ margin-right: 20rpx;
131
+ }
132
+
133
+ .up-loading__text {
134
+ font-size: 26rpx;
135
+ line-height: 26rpx;
54
136
  text-align: center;
55
- padding: 0 20rpx;
56
- box-sizing: border-box;
57
137
  }
58
138
 
59
139
  @-webkit-keyframes rotate {