@10yun/cv-mobile-ui 0.4.6 → 0.4.8

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.
@@ -1,412 +1,429 @@
1
1
  <template>
2
- <view v-if="showPopup" class="uni-popup" :class="[popupstyle, isDesktop ? 'fixforpc-z-index' : '']" @touchmove.stop.prevent="clear">
3
- <view @touchstart="touchstart">
4
- <uni-transition key="1" v-if="maskShow" name="mask" mode-class="fade" :styles="maskClass" :duration="duration" :show="showTrans" @click="onTap" />
5
- <uni-transition key="2" :mode-class="ani" name="content" :styles="transClass" :duration="duration" :show="showTrans" @click="onTap">
6
- <view class="uni-popup__wrapper" :style="{ backgroundColor: bg }" :class="[popupstyle]" @click="clear">
7
- <slot />
8
- </view>
9
- </uni-transition>
10
- </view>
11
- <!-- #ifdef H5 -->
12
- <keypress v-if="maskShow" @esc="onTap" />
13
- <!-- #endif -->
14
- </view>
2
+ <view
3
+ v-if="showPopup"
4
+ class="uni-popup"
5
+ :class="[popupstyle, isDesktop ? 'fixforpc-z-index' : '']"
6
+ @touchmove.stop.prevent="clear"
7
+ >
8
+ <view @touchstart="touchstart">
9
+ <uni-transition
10
+ key="1"
11
+ v-if="maskShow"
12
+ name="mask"
13
+ mode-class="fade"
14
+ :styles="maskClass"
15
+ :duration="duration"
16
+ :show="showTrans"
17
+ @click="onTap"
18
+ />
19
+ <uni-transition
20
+ key="2"
21
+ :mode-class="ani"
22
+ name="content"
23
+ :styles="transClass"
24
+ :duration="duration"
25
+ :show="showTrans"
26
+ @click="onTap"
27
+ >
28
+ <view class="uni-popup__wrapper" :style="{ backgroundColor: bg }" :class="[popupstyle]" @click="clear">
29
+ <slot />
30
+ </view>
31
+ </uni-transition>
32
+ </view>
33
+ <!-- #ifdef H5 -->
34
+ <keypress v-if="maskShow" @esc="onTap" />
35
+ <!-- #endif -->
36
+ </view>
15
37
  </template>
16
38
 
17
39
  <script>
18
- // #ifdef H5
19
- import keypress from './keypress.js'
20
- // #endif
40
+ // #ifdef H5
41
+ import keypress from './keypress.js';
42
+ // #endif
21
43
 
22
- /**
23
- * PopUp 弹出层
24
- * @description 弹出层组件,为了解决遮罩弹层的问题
25
- * @tutorial https://ext.dcloud.net.cn/plugin?id=329
26
- * @property {String} type = [top|center|bottom|left|right|message|dialog|share] 弹出方式
27
- * @value top 顶部弹出
28
- * @value center 中间弹出
29
- * @value bottom 底部弹出
30
- * @value left 左侧弹出
31
- * @value right 右侧弹出
32
- * @value message 消息提示
33
- * @value dialog 对话框
34
- * @value share 底部分享示例
35
- * @property {Boolean} animation = [ture|false] 是否开启动画
36
- * @property {Boolean} maskClick = [ture|false] 蒙版点击是否关闭弹窗
37
- * @property {String} backgroundColor 主窗口背景色
38
- * @property {Boolean} safeArea 是否适配底部安全区
39
- * @event {Function} change 打开关闭弹窗触发,e={show: false}
40
- */
44
+ /**
45
+ * PopUp 弹出层
46
+ * @description 弹出层组件,为了解决遮罩弹层的问题
47
+ * @tutorial https://ext.dcloud.net.cn/plugin?id=329
48
+ * @property {String} type = [top|center|bottom|left|right|message|dialog|share] 弹出方式
49
+ * @value top 顶部弹出
50
+ * @value center 中间弹出
51
+ * @value bottom 底部弹出
52
+ * @value left 左侧弹出
53
+ * @value right 右侧弹出
54
+ * @value message 消息提示
55
+ * @value dialog 对话框
56
+ * @value share 底部分享示例
57
+ * @property {Boolean} animation = [ture|false] 是否开启动画
58
+ * @property {Boolean} maskClick = [ture|false] 蒙版点击是否关闭弹窗
59
+ * @property {String} backgroundColor 主窗口背景色
60
+ * @property {Boolean} safeArea 是否适配底部安全区
61
+ * @event {Function} change 打开关闭弹窗触发,e={show: false}
62
+ */
41
63
 
42
- export default {
43
- name: 'uniPopup',
44
- components: {
45
- // #ifdef H5
46
- keypress
47
- // #endif
48
- },
49
- emits: ['change', 'maskClick'],
50
- props: {
51
- // 开启动画
52
- animation: {
53
- type: Boolean,
54
- default: true
55
- },
56
- // 弹出层类型,可选值,top: 顶部弹出层;bottom:底部弹出层;center:全屏弹出层
57
- // message: 消息提示 ; dialog : 对话框
58
- type: {
59
- type: String,
60
- default: 'center'
61
- },
62
- // maskClick
63
- maskClick: {
64
- type: Boolean,
65
- default: true
66
- },
67
- backgroundColor: {
68
- type: String,
69
- default: 'none'
70
- },
71
- safeArea: {
72
- type: Boolean,
73
- default: true
74
- }
75
- },
64
+ export default {
65
+ name: 'uniPopup',
66
+ components: {
67
+ // #ifdef H5
68
+ keypress
69
+ // #endif
70
+ },
71
+ emits: ['change', 'maskClick'],
72
+ props: {
73
+ // 开启动画
74
+ animation: {
75
+ type: Boolean,
76
+ default: true
77
+ },
78
+ // 弹出层类型,可选值,top: 顶部弹出层;bottom:底部弹出层;center:全屏弹出层
79
+ // message: 消息提示 ; dialog : 对话框
80
+ type: {
81
+ type: String,
82
+ default: 'center'
83
+ },
84
+ // maskClick
85
+ maskClick: {
86
+ type: Boolean,
87
+ default: true
88
+ },
89
+ backgroundColor: {
90
+ type: String,
91
+ default: 'none'
92
+ },
93
+ safeArea: {
94
+ type: Boolean,
95
+ default: true
96
+ }
97
+ },
76
98
 
77
- watch: {
78
- /**
79
- * 监听type类型
80
- */
81
- type: {
82
- handler: function(type) {
83
- if (!this.config[type]) return
84
- this[this.config[type]](true)
85
- },
86
- immediate: true
87
- },
88
- isDesktop: {
89
- handler: function(newVal) {
90
- if (!this.config[newVal]) return
91
- this[this.config[this.type]](true)
92
- },
93
- immediate: true
94
- },
95
- /**
96
- * 监听遮罩是否可点击
97
- * @param {Object} val
98
- */
99
- maskClick: {
100
- handler: function(val) {
101
- this.mkclick = val
102
- },
103
- immediate: true
104
- }
105
- },
106
- data() {
107
- return {
108
- duration: 300,
109
- ani: [],
110
- showPopup: false,
111
- showTrans: false,
112
- popupWidth: 0,
113
- popupHeight: 0,
114
- config: {
115
- top: 'top',
116
- bottom: 'bottom',
117
- center: 'center',
118
- left: 'left',
119
- right: 'right',
120
- message: 'top',
121
- dialog: 'center',
122
- share: 'bottom'
123
- },
124
- maskClass: {
125
- position: 'fixed',
126
- bottom: 0,
127
- top: 0,
128
- left: 0,
129
- right: 0,
130
- backgroundColor: 'rgba(0, 0, 0, 0.4)'
131
- },
132
- transClass: {
133
- position: 'fixed',
134
- left: 0,
135
- right: 0
136
- },
137
- maskShow: true,
138
- mkclick: true,
139
- popupstyle: this.isDesktop ? 'fixforpc-top' : 'top'
140
- }
141
- },
142
- computed: {
143
- isDesktop() {
144
- return this.popupWidth >= 500 && this.popupHeight >= 500
145
- },
146
- bg() {
147
- if (this.backgroundColor === '' || this.backgroundColor === 'none') {
148
- return 'transparent'
149
- }
150
- return this.backgroundColor
151
- }
152
- },
153
- mounted() {
154
- const fixSize = () => {
155
- const {
156
- windowWidth,
157
- windowHeight,
158
- windowTop,
159
- safeAreaInsets
160
- } = uni.getSystemInfoSync()
161
- this.popupWidth = windowWidth
162
- this.popupHeight = windowHeight + windowTop
163
- // 是否适配底部安全区
164
- if (this.safeArea) {
165
- this.safeAreaInsets = safeAreaInsets
166
- } else {
167
- this.safeAreaInsets = 0
168
- }
169
- }
170
- fixSize()
171
- // #ifdef H5
172
- // window.addEventListener('resize', fixSize)
173
- // this.$once('hook:beforeDestroy', () => {
174
- // window.removeEventListener('resize', fixSize)
175
- // })
176
- // #endif
177
- },
178
- created() {
179
- this.mkclick = this.maskClick
180
- if (this.animation) {
181
- this.duration = 300
182
- } else {
183
- this.duration = 0
184
- }
185
- // TODO 处理 message 组件生命周期异常的问题
186
- this.messageChild = null
187
- // TODO 解决头条冒泡的问题
188
- this.clearPropagation = false
189
- },
190
- methods: {
191
- /**
192
- * 公用方法,不显示遮罩层
193
- */
194
- closeMask() {
195
- this.maskShow = false
196
- },
197
- /**
198
- * 公用方法,遮罩层禁止点击
199
- */
200
- disableMask() {
201
- this.mkclick = false
202
- },
203
- // TODO nvue 取消冒泡
204
- clear(e) {
205
- // #ifndef APP-NVUE
206
- e.stopPropagation()
207
- // #endif
208
- this.clearPropagation = true
209
- },
99
+ watch: {
100
+ /**
101
+ * 监听type类型
102
+ */
103
+ type: {
104
+ handler: function (type) {
105
+ if (!this.config[type]) return;
106
+ this[this.config[type]](true);
107
+ },
108
+ immediate: true
109
+ },
110
+ isDesktop: {
111
+ handler: function (newVal) {
112
+ if (!this.config[newVal]) return;
113
+ this[this.config[this.type]](true);
114
+ },
115
+ immediate: true
116
+ },
117
+ /**
118
+ * 监听遮罩是否可点击
119
+ * @param {Object} val
120
+ */
121
+ maskClick: {
122
+ handler: function (val) {
123
+ this.mkclick = val;
124
+ },
125
+ immediate: true
126
+ }
127
+ },
128
+ data() {
129
+ return {
130
+ duration: 300,
131
+ ani: [],
132
+ showPopup: false,
133
+ showTrans: false,
134
+ popupWidth: 0,
135
+ popupHeight: 0,
136
+ config: {
137
+ top: 'top',
138
+ bottom: 'bottom',
139
+ center: 'center',
140
+ left: 'left',
141
+ right: 'right',
142
+ message: 'top',
143
+ dialog: 'center',
144
+ share: 'bottom'
145
+ },
146
+ maskClass: {
147
+ position: 'fixed',
148
+ bottom: 0,
149
+ top: 0,
150
+ left: 0,
151
+ right: 0,
152
+ backgroundColor: 'rgba(0, 0, 0, 0.4)'
153
+ },
154
+ transClass: {
155
+ position: 'fixed',
156
+ left: 0,
157
+ right: 0
158
+ },
159
+ maskShow: true,
160
+ mkclick: true,
161
+ popupstyle: this.isDesktop ? 'fixforpc-top' : 'top'
162
+ };
163
+ },
164
+ computed: {
165
+ isDesktop() {
166
+ return this.popupWidth >= 500 && this.popupHeight >= 500;
167
+ },
168
+ bg() {
169
+ if (this.backgroundColor === '' || this.backgroundColor === 'none') {
170
+ return 'transparent';
171
+ }
172
+ return this.backgroundColor;
173
+ }
174
+ },
175
+ mounted() {
176
+ const fixSize = () => {
177
+ const { windowWidth, windowHeight, windowTop, safeAreaInsets } = uni.getSystemInfoSync();
178
+ this.popupWidth = windowWidth;
179
+ this.popupHeight = windowHeight + windowTop;
180
+ // 是否适配底部安全区
181
+ if (this.safeArea) {
182
+ this.safeAreaInsets = safeAreaInsets;
183
+ } else {
184
+ this.safeAreaInsets = 0;
185
+ }
186
+ };
187
+ fixSize();
188
+ // #ifdef H5
189
+ // window.addEventListener('resize', fixSize)
190
+ // this.$once('hook:beforeDestroy', () => {
191
+ // window.removeEventListener('resize', fixSize)
192
+ // })
193
+ // #endif
194
+ },
195
+ created() {
196
+ this.mkclick = this.maskClick;
197
+ if (this.animation) {
198
+ this.duration = 300;
199
+ } else {
200
+ this.duration = 0;
201
+ }
202
+ // TODO 处理 message 组件生命周期异常的问题
203
+ this.messageChild = null;
204
+ // TODO 解决头条冒泡的问题
205
+ this.clearPropagation = false;
206
+ },
207
+ methods: {
208
+ /**
209
+ * 公用方法,不显示遮罩层
210
+ */
211
+ closeMask() {
212
+ this.maskShow = false;
213
+ },
214
+ /**
215
+ * 公用方法,遮罩层禁止点击
216
+ */
217
+ disableMask() {
218
+ this.mkclick = false;
219
+ },
220
+ // TODO nvue 取消冒泡
221
+ clear(e) {
222
+ // #ifndef APP-NVUE
223
+ e.stopPropagation();
224
+ // #endif
225
+ this.clearPropagation = true;
226
+ },
210
227
 
211
- open(direction) {
212
- let innerType = ['top', 'center', 'bottom', 'left', 'right', 'message', 'dialog', 'share']
213
- if (!(direction && innerType.indexOf(direction) !== -1)) {
214
- direction = this.type
215
- }
216
- if (!this.config[direction]) {
217
- console.error('缺少类型:', direction)
218
- return
219
- }
220
- this[this.config[direction]]()
221
- this.$emit('change', {
222
- show: true,
223
- type: direction
224
- })
225
- },
226
- close(type) {
227
- this.showTrans = false
228
- this.$emit('change', {
229
- show: false,
230
- type: this.type
231
- })
232
- clearTimeout(this.timer)
233
- // // 自定义关闭事件
234
- // this.customOpen && this.customClose()
235
- this.timer = setTimeout(() => {
236
- this.showPopup = false
237
- }, 300)
238
- },
239
- // TODO 处理冒泡事件,头条的冒泡事件有问题 ,先这样兼容
240
- touchstart() {
241
- this.clearPropagation = false
242
- },
228
+ open(direction) {
229
+ let innerType = ['top', 'center', 'bottom', 'left', 'right', 'message', 'dialog', 'share'];
230
+ if (!(direction && innerType.indexOf(direction) !== -1)) {
231
+ direction = this.type;
232
+ }
233
+ if (!this.config[direction]) {
234
+ console.error('缺少类型:', direction);
235
+ return;
236
+ }
237
+ this[this.config[direction]]();
238
+ this.$emit('change', {
239
+ show: true,
240
+ type: direction
241
+ });
242
+ },
243
+ close(type) {
244
+ this.showTrans = false;
245
+ this.$emit('change', {
246
+ show: false,
247
+ type: this.type
248
+ });
249
+ clearTimeout(this.timer);
250
+ // // 自定义关闭事件
251
+ // this.customOpen && this.customClose()
252
+ this.timer = setTimeout(() => {
253
+ this.showPopup = false;
254
+ }, 300);
255
+ },
256
+ // TODO 处理冒泡事件,头条的冒泡事件有问题 ,先这样兼容
257
+ touchstart() {
258
+ this.clearPropagation = false;
259
+ },
243
260
 
244
- onTap() {
245
- if (this.clearPropagation) {
246
- // fix by mehaotian 兼容 nvue
247
- this.clearPropagation = false
248
- return
249
- }
250
- this.$emit('maskClick')
251
- if (!this.mkclick) return
252
- this.close()
253
- },
254
- /**
255
- * 顶部弹出样式处理
256
- */
257
- top(type) {
258
- this.popupstyle = this.isDesktop ? 'fixforpc-top' : 'top'
259
- this.ani = ['slide-top']
260
- this.transClass = {
261
- position: 'fixed',
262
- left: 0,
263
- right: 0,
264
- backgroundColor: this.bg
265
- }
266
- // TODO 兼容 type 属性 ,后续会废弃
267
- if (type) return
268
- this.showPopup = true
269
- this.showTrans = true
270
- this.$nextTick(() => {
271
- if (this.messageChild && this.type === 'message') {
272
- this.messageChild.timerClose()
273
- }
274
- })
275
- },
276
- /**
277
- * 底部弹出样式处理
278
- */
279
- bottom(type) {
280
- this.popupstyle = 'bottom'
281
- this.ani = ['slide-bottom']
261
+ onTap() {
262
+ if (this.clearPropagation) {
263
+ // fix by mehaotian 兼容 nvue
264
+ this.clearPropagation = false;
265
+ return;
266
+ }
267
+ this.$emit('maskClick');
268
+ if (!this.mkclick) return;
269
+ this.close();
270
+ },
271
+ /**
272
+ * 顶部弹出样式处理
273
+ */
274
+ top(type) {
275
+ this.popupstyle = this.isDesktop ? 'fixforpc-top' : 'top';
276
+ this.ani = ['slide-top'];
277
+ this.transClass = {
278
+ position: 'fixed',
279
+ left: 0,
280
+ right: 0,
281
+ backgroundColor: this.bg
282
+ };
283
+ // TODO 兼容 type 属性 ,后续会废弃
284
+ if (type) return;
285
+ this.showPopup = true;
286
+ this.showTrans = true;
287
+ this.$nextTick(() => {
288
+ if (this.messageChild && this.type === 'message') {
289
+ this.messageChild.timerClose();
290
+ }
291
+ });
292
+ },
293
+ /**
294
+ * 底部弹出样式处理
295
+ */
296
+ bottom(type) {
297
+ this.popupstyle = 'bottom';
298
+ this.ani = ['slide-bottom'];
282
299
 
283
- this.transClass = {
284
- position: 'fixed',
285
- left: 0,
286
- right: 0,
287
- bottom: 0,
288
- paddingBottom: (this.safeAreaInsets && this.safeAreaInsets.bottom) || 0,
289
- backgroundColor: this.bg
290
- }
291
- // TODO 兼容 type 属性 ,后续会废弃
292
- if (type) return
293
- this.showPopup = true
294
- this.showTrans = true
295
- },
296
- /**
297
- * 中间弹出样式处理
298
- */
299
- center(type) {
300
- this.popupstyle = 'center'
301
- this.ani = ['zoom-out', 'fade']
302
- this.transClass = {
303
- position: 'fixed',
304
- /* #ifndef APP-NVUE */
305
- display: 'flex',
306
- flexDirection: 'column',
307
- /* #endif */
308
- bottom: 0,
309
- left: 0,
310
- right: 0,
311
- top: 0,
312
- justifyContent: 'center',
313
- alignItems: 'center'
314
- }
315
- // TODO 兼容 type 属性 ,后续会废弃
316
- if (type) return
317
- this.showPopup = true
318
- this.showTrans = true
319
- },
320
- left(type) {
321
- this.popupstyle = 'left'
322
- this.ani = ['slide-left']
323
- this.transClass = {
324
- position: 'fixed',
325
- left: 0,
326
- bottom: 0,
327
- top: 0,
328
- backgroundColor: this.bg,
329
- /* #ifndef APP-NVUE */
330
- display: 'flex',
331
- flexDirection: 'column'
332
- /* #endif */
333
- }
334
- // TODO 兼容 type 属性 ,后续会废弃
335
- if (type) return
336
- this.showPopup = true
337
- this.showTrans = true
338
- },
339
- right(type) {
340
- this.popupstyle = 'right'
341
- this.ani = ['slide-right']
342
- this.transClass = {
343
- position: 'fixed',
344
- bottom: 0,
345
- right: 0,
346
- top: 0,
347
- backgroundColor: this.bg,
348
- /* #ifndef APP-NVUE */
349
- display: 'flex',
350
- flexDirection: 'column'
351
- /* #endif */
352
- }
353
- // TODO 兼容 type 属性 ,后续会废弃
354
- if (type) return
355
- this.showPopup = true
356
- this.showTrans = true
357
- }
358
- }
359
- }
300
+ this.transClass = {
301
+ position: 'fixed',
302
+ left: 0,
303
+ right: 0,
304
+ bottom: 0,
305
+ paddingBottom: (this.safeAreaInsets && this.safeAreaInsets.bottom) || 0,
306
+ backgroundColor: this.bg
307
+ };
308
+ // TODO 兼容 type 属性 ,后续会废弃
309
+ if (type) return;
310
+ this.showPopup = true;
311
+ this.showTrans = true;
312
+ },
313
+ /**
314
+ * 中间弹出样式处理
315
+ */
316
+ center(type) {
317
+ this.popupstyle = 'center';
318
+ this.ani = ['zoom-out', 'fade'];
319
+ this.transClass = {
320
+ position: 'fixed',
321
+ /* #ifndef APP-NVUE */
322
+ display: 'flex',
323
+ flexDirection: 'column',
324
+ /* #endif */
325
+ bottom: 0,
326
+ left: 0,
327
+ right: 0,
328
+ top: 0,
329
+ justifyContent: 'center',
330
+ alignItems: 'center'
331
+ };
332
+ // TODO 兼容 type 属性 ,后续会废弃
333
+ if (type) return;
334
+ this.showPopup = true;
335
+ this.showTrans = true;
336
+ },
337
+ left(type) {
338
+ this.popupstyle = 'left';
339
+ this.ani = ['slide-left'];
340
+ this.transClass = {
341
+ position: 'fixed',
342
+ left: 0,
343
+ bottom: 0,
344
+ top: 0,
345
+ backgroundColor: this.bg,
346
+ /* #ifndef APP-NVUE */
347
+ display: 'flex',
348
+ flexDirection: 'column'
349
+ /* #endif */
350
+ };
351
+ // TODO 兼容 type 属性 ,后续会废弃
352
+ if (type) return;
353
+ this.showPopup = true;
354
+ this.showTrans = true;
355
+ },
356
+ right(type) {
357
+ this.popupstyle = 'right';
358
+ this.ani = ['slide-right'];
359
+ this.transClass = {
360
+ position: 'fixed',
361
+ bottom: 0,
362
+ right: 0,
363
+ top: 0,
364
+ backgroundColor: this.bg,
365
+ /* #ifndef APP-NVUE */
366
+ display: 'flex',
367
+ flexDirection: 'column'
368
+ /* #endif */
369
+ };
370
+ // TODO 兼容 type 属性 ,后续会废弃
371
+ if (type) return;
372
+ this.showPopup = true;
373
+ this.showTrans = true;
374
+ }
375
+ }
376
+ };
360
377
  </script>
361
378
  <style scoped>
362
- @charset "UTF-8";
379
+ @charset "UTF-8";
363
380
 
364
- .uni-popup {
365
- position: fixed;
366
- /* #ifndef APP-NVUE */
367
- z-index: 99;
368
- /* #endif */
369
- }
381
+ .uni-popup {
382
+ position: fixed;
383
+ /* #ifndef APP-NVUE */
384
+ z-index: 99;
385
+ /* #endif */
386
+ }
370
387
 
371
- .uni-popup.top,
372
- .uni-popup.left,
373
- .uni-popup.right {
374
- /* #ifdef H5 */
375
- top: var(--window-top);
376
- /* #endif */
377
- /* #ifndef H5 */
378
- top: 0;
379
- /* #endif */
380
- }
388
+ .uni-popup.top,
389
+ .uni-popup.left,
390
+ .uni-popup.right {
391
+ /* #ifdef H5 */
392
+ top: var(--window-top);
393
+ /* #endif */
394
+ /* #ifndef H5 */
395
+ top: 0;
396
+ /* #endif */
397
+ }
381
398
 
382
- .uni-popup .uni-popup__wrapper {
383
- /* #ifndef APP-NVUE */
384
- display: block;
385
- /* #endif */
386
- position: relative;
387
- /* iphonex 等安全区设置,底部安全区适配 */
388
- /* #ifndef APP-NVUE */
389
- /* #endif */
390
- }
399
+ .uni-popup .uni-popup__wrapper {
400
+ /* #ifndef APP-NVUE */
401
+ display: block;
402
+ /* #endif */
403
+ position: relative;
404
+ /* iphonex 等安全区设置,底部安全区适配 */
405
+ /* #ifndef APP-NVUE */
406
+ /* #endif */
407
+ }
391
408
 
392
- .uni-popup .uni-popup__wrapper.left,
393
- .uni-popup .uni-popup__wrapper.right {
394
- /* #ifdef H5 */
395
- padding-top: var(--window-top);
396
- /* #endif */
397
- /* #ifndef H5 */
398
- padding-top: 0;
399
- /* #endif */
400
- flex: 1;
401
- }
409
+ .uni-popup .uni-popup__wrapper.left,
410
+ .uni-popup .uni-popup__wrapper.right {
411
+ /* #ifdef H5 */
412
+ padding-top: var(--window-top);
413
+ /* #endif */
414
+ /* #ifndef H5 */
415
+ padding-top: 0;
416
+ /* #endif */
417
+ flex: 1;
418
+ }
402
419
 
403
- .fixforpc-z-index {
404
- /* #ifndef APP-NVUE */
405
- z-index: 999;
406
- /* #endif */
407
- }
420
+ .fixforpc-z-index {
421
+ /* #ifndef APP-NVUE */
422
+ z-index: 999;
423
+ /* #endif */
424
+ }
408
425
 
409
- .fixforpc-top {
410
- top: 0;
411
- }
412
- </style>
426
+ .fixforpc-top {
427
+ top: 0;
428
+ }
429
+ </style>