dolphin-weex-ui 2.1.2 → 2.1.3

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dolphin-weex-ui",
3
- "version": "2.1.2",
3
+ "version": "2.1.3",
4
4
  "description": "inteligense cross platform frame",
5
5
  "main": "index.js",
6
6
  "directories": {
@@ -0,0 +1,15 @@
1
+ @media screen and (weex-theme: colmo) {
2
+ .content-inner {
3
+ border-radius: 0px;
4
+ padding: 32px;
5
+ }
6
+ .u-popover-arrow {
7
+ background-color: #292b2f;
8
+ }
9
+ .textContent {
10
+ font-family: PingFangSC-Regular;
11
+ font-size: 28px;
12
+ color: rgba(255,255,255,0.80);
13
+ font-weight: 400;
14
+ }
15
+ }
@@ -0,0 +1,4 @@
1
+ export default {
2
+ close:
3
+ 'data:image/png;base64,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'
4
+ }
@@ -6,7 +6,7 @@
6
6
  !-->
7
7
  <template>
8
8
  <div class="wrapper">
9
- <div class="g-cover" ref="dof-cover" v-if="show" @click="hideAction" :style="coverStyle"></div>
9
+ <div class="g-cover" ref="dof-cover" v-if="show" @click="clickCover" :style="coverStyle"></div>
10
10
  <div ref="dof-popover" class="g-popover" v-if="show && buttons.length" :style="contentStyle">
11
11
  <div :class="['u-popover-arrow', theme !== 'white' && 'u-popover-theme-dark']" :style="arrowStyle"></div>
12
12
  <scroller
@@ -35,12 +35,37 @@
35
35
  </div>
36
36
  </scroller>
37
37
  </div>
38
+ <div ref="dof-popover" class="g-popover" v-if="show && !buttons.length" :style="contentStyle" @click="() => {}">
39
+ <div :class="['u-popover-arrow', theme !== 'white' && 'u-popover-theme-dark']" :style="arrowStyle"></div>
40
+ <slot>
41
+ <div class="content-inner" ref="dof-inner-popover" :style="innerContentStyle">
42
+ <text class="textContent">{{ textContent }}</text>
43
+ <div class="closeBox" v-if="isShowClose" @click="$emit('clickedCloseBtn')">
44
+ <image v-if="!_isColmo" :src="imgs.close" class="closeIcon"></image>
45
+ <dof-iconfont
46
+ v-else
47
+ :code="'\u4725'"
48
+ :size="32"
49
+ :color="_isColmo ? 'rgba(255,255,255,0.80)' : '#333333'"
50
+ @dofIconFontClicked="$emit('clickedCloseBtn')"
51
+ ></dof-iconfont>
52
+ </div>
53
+ </div>
54
+ </slot>
55
+ </div>
38
56
  </div>
39
57
  </template>
40
58
 
41
59
  <script>
60
+ const { env } = weex.config
42
61
  const animation = weex.requireModule('animation')
62
+ const dom = weex.requireModule('dom')
63
+ import imgs from './imgs'
64
+ import ColmoMixin from '../../mixins/colmo'
65
+ import DofIconfont from '../dof-iconfont'
43
66
  export default {
67
+ mixins: [ColmoMixin],
68
+ components: { DofIconfont },
44
69
  props: {
45
70
  mode: {
46
71
  type: String,
@@ -84,12 +109,55 @@ export default {
84
109
  textStyle: {
85
110
  type: Object,
86
111
  default: () => ({})
112
+ },
113
+ textContent: {
114
+ type: String,
115
+ default: ''
116
+ },
117
+ innerBgColor: {
118
+ type: String,
119
+ default: ''
120
+ },
121
+ isClickCoverHide: {
122
+ type: Boolean,
123
+ default: true
124
+ },
125
+ isShowClose: {
126
+ type: Boolean,
127
+ default: false
128
+ },
129
+ width: {
130
+ type: Number,
131
+ default: 0
132
+ },
133
+ elPos: {
134
+ type: Object,
135
+ default: null
87
136
  }
88
137
  },
89
138
  data: () => ({
139
+ sHeight: (env.deviceHeight / env.deviceWidth) * 750,
90
140
  show: false,
91
- showIn: false
141
+ showIn: false,
142
+ imgs,
143
+ position_: { x: 0, y: 0 }
92
144
  }),
145
+ watch: {
146
+ elPos(val) {
147
+ setTimeout(() => {
148
+ this.handleElPos(val)
149
+ }, 100)
150
+ },
151
+ position: {
152
+ handler(val) {
153
+ if (!this.elPos) {
154
+ this.position_ = val
155
+ }
156
+ },
157
+ immediate: true
158
+ }
159
+ },
160
+ created() {},
93
161
  computed: {
94
162
  coverStyle() {
95
163
  return this.coverColor
@@ -138,10 +206,21 @@ export default {
138
206
  return _translates.join(' ')
139
207
  },
140
208
  contentStyle() {
141
- const { x = 0, y = 0 } = this.position
209
+ const { x = 0, y = 0 } = this.position_
142
210
  const style = {}
143
- x < 0 ? (style.right = `${-x}px`) : (style.left = `${x}px`)
144
- y < 0 ? (style.bottom = `${-y}px`) : (style.top = `${y}px`)
211
+ if (!this.elPos) {
212
+ x < 0 ? (style.right = `${-x}px`) : (style.left = `${x}px`)
213
+ y < 0 ? (style.bottom = `${-y}px`) : (style.top = `${y}px`)
214
+ } else {
215
+ if (this.arrowPosition.pos === 'bottom') {
216
+ style.left = `${x}px`
217
+ style.top = `${y}px`
218
+ } else {
219
+ style.left = `${x}px`
220
+ style.top = `${y}px`
221
+ }
222
+ }
223
+
145
224
  style.opacity = this.hasAnimation || !this.showIn ? '0' : '1'
146
225
  style.transform = this.hasAnimation || !this.showIn ? this.contentTransform : 'scale(1)'
147
226
  style.transformOrigin = this.transformOrigin
@@ -150,13 +229,15 @@ export default {
150
229
  arrowStyle() {
151
230
  let { x = 0, y = 0 } = this.arrowPosition
152
231
  const { pos = 'top' } = this.arrowPosition
153
- const style = {}
232
+ const style = {
233
+ backgroundColor: this.bgColor
234
+ }
154
235
  switch (pos) {
155
236
  case 'top':
156
237
  style.top = '6px'
157
238
  case 'bottom': //eslint-disable-line
158
239
  !style.top && (style.bottom = '6px')
159
- style.transform = 'scaleX(0.8) rotate(45deg)'
240
+ // style.transform = 'rotateZ(45deg) rotateY(45deg)'
160
241
  if (x >= 0 && x < 22) {
161
242
  x = 22
162
243
  } else if (x < 0 && x > -22) {
@@ -168,7 +249,7 @@ export default {
168
249
  style.left = '6px'
169
250
  case 'right': //eslint-disable-line
170
251
  !style.left && (style.right = '6px')
171
- style.transform = 'scaleY(0.8) rotate(45deg)'
252
+ // style.transform = 'scaleY(0.8) rotate(45deg)'
172
253
  if (y >= 0 && y < 22) {
173
254
  y = 22
174
255
  } else if (y < 0 && y > -22) {
@@ -204,6 +285,17 @@ export default {
204
285
  borderBottomWidth: '1px'
205
286
  }
206
287
  }
288
+ },
289
+ bgColor() {
290
+ return this.innerBgColor ? this.innerBgColor : this.theme === 'dark' ? '#000' : this._isColmo ? '#292b2f' : '#fff'
291
+ },
292
+ innerContentStyle() {
293
+ const style = {
294
+ backgroundColor: this.bgColor
295
+ }
296
+ if (this.width) style.width = this.width + 'px'
297
+ if (this._isColmo && this.isShowClose) style.paddingRight = '10px'
298
+ return style
207
299
  }
208
300
  },
209
301
  methods: {
@@ -337,6 +429,33 @@ export default {
337
429
  */
338
430
  setAnimationLock() {
339
431
  this.animationLock = true
432
+ },
433
+ clickCover() {
434
+ this.isClickCoverHide && this.hideAction()
435
+ this.$emit('dofPopoverCoverClicked')
436
+ },
437
+ getPosition(el) {
438
+ return new Promise((resolve, reject) => {
439
+ dom.getComponentRect(el, result => {
440
+ let size = result.size || {}
441
+ resolve(size)
442
+ })
443
+ })
444
+ },
445
+ async handleElPos(val) {
446
+ const res = await this.getPosition(val.el)
447
+ if (this.arrowPosition.pos === 'top' || !this.arrowPosition.pos) {
448
+ this.position_ = { x: res.left - 15 + this.elPos.offsetX, y: res.top + res.height + this.elPos.offsetY }
449
+ }
450
+ if (this.arrowPosition.pos === 'bottom') {
451
+ this.position_ = { x: res.left - 15 + this.elPos.offsetX, y: res.top - 110 - 15 + this.elPos.offsetY }
452
+ }
453
+ if (this.arrowPosition.pos === 'left') {
454
+ this.position_ = { x: res.left + res.width + 10 + this.elPos.offsetX, y: res.top - 15 + this.elPos.offsetY }
455
+ }
456
+ if (this.arrowPosition.pos === 'right') {
457
+ this.position_ = { x: res.left - 285 + this.elPos.offsetX, y: res.top - 15 + this.elPos.offsetY }
458
+ }
340
459
  }
341
460
  }
342
461
  }
@@ -362,16 +481,36 @@ export default {
362
481
  }
363
482
  .u-popover-arrow {
364
483
  position: absolute;
365
- border-radius: 4px;
366
- width: 30px;
367
- height: 30px;
484
+ /* border-radius: 4px; */
485
+ width: 36px;
486
+ height: 36px;
368
487
  background-color: #ffffff;
488
+ transform: rotateZ(45deg);
369
489
  }
370
490
  .u-popover-inner {
371
491
  border-radius: 16px;
372
492
  background-color: #ffffff;
373
493
  max-width: 686px;
374
494
  }
495
+ .content-inner {
496
+ border-radius: 16px;
497
+ max-width: 686px;
498
+ padding: 24px;
499
+ display: flex;
500
+ flex-direction: row;
501
+ justify-content: space-between;
502
+ align-items: center;
503
+ }
504
+ .closeBox {
505
+ padding-top: 10px;
506
+ padding-bottom: 10px;
507
+ padding-right: 0px;
508
+ padding-left: 10px;
509
+ }
510
+ .closeIcon {
511
+ width: 18px;
512
+ height: 18px;
513
+ }
375
514
 
376
515
  .u-popover-theme-white {
377
516
  background-color: #ffffff;
@@ -425,4 +564,13 @@ export default {
425
564
  .text-align-center {
426
565
  text-align: center;
427
566
  }
567
+ .textContent {
568
+ flex: 1;
569
+ font-family: PingFangSC-Regular;
570
+ font-size: 24px;
571
+ color: #666666;
572
+ font-weight: 400;
573
+ }
428
574
  </style>
575
+
576
+ <style scoped src="./colmo.css"></style>
@@ -43,7 +43,7 @@
43
43
  <style scoped>
44
44
  .dof-popup {
45
45
  position: fixed;
46
- width: 750px;
46
+ /* width: 750px; */
47
47
  }
48
48
  .top {
49
49
  left: 0;