zydx-plus 1.35.588 → 1.35.589

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": "zydx-plus",
3
- "version": "1.35.588",
3
+ "version": "1.35.589",
4
4
  "description": "Vue.js",
5
5
  "main": "src/index.js",
6
6
  "files": [
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <teleport to="body">
3
- <div class="cale" :style="{top: y + 'px', left: x + 'px'}">
3
+ <div ref="caleRef" v-if="isOpen" class="cale" :style="{top: y + 'px', left: x + 'px'}">
4
4
  <div class="cale-cont">
5
5
  <div class='calendar-Time-header under_line'>
6
6
  <span class='calendar-lastY' @click="subYear">《</span>
@@ -206,17 +206,14 @@ export default {
206
206
  domeElement: {
207
207
  type: Object,
208
208
  default: null
209
+ },
210
+ open: {
211
+ type: Boolean,
212
+ default: false
209
213
  }
210
214
  },
211
215
  created() {
212
216
  this.render();
213
- if(this.domeElement) {
214
- let el = this.domeElement.$el
215
- if(!el) el = this.domeElement
216
- const dome = el.getBoundingClientRect()
217
- this.x = dome.left
218
- this.y = dome.top + dome.height
219
- }
220
217
  },
221
218
  data() {
222
219
  return {
@@ -242,12 +239,32 @@ export default {
242
239
  minute: '00', // 选择的分钟
243
240
  dayChange: undefined, // 选择的日期
244
241
  x: 22,
245
- y: 0
242
+ y: 0,
243
+ isOpen: false
246
244
  };
247
245
  },
248
246
  methods: {
247
+ init() {
248
+ this.$nextTick(() => {
249
+ if(this.domeElement) {
250
+ let el = this.domeElement.$el
251
+ if(!el) el = this.domeElement
252
+ const height = document.documentElement.clientHeight || document.body.clientHeight;
253
+ const dome = el.getBoundingClientRect()
254
+ const hei = this.$refs.caleRef.getBoundingClientRect()
255
+ this.x = dome.left
256
+ if((dome.top + hei.height - height) > 0) {
257
+ this.y = dome.top - hei.height
258
+ }else {
259
+ this.y = dome.top + dome.height
260
+ }
261
+ }
262
+ })
263
+ },
249
264
  cancel() {
265
+ this.isOpen = false
250
266
  this.$emit('cancel')
267
+ this.$emit('update:open', this.isOpen)
251
268
  },
252
269
  confirm() {
253
270
  let date = {start: this.dayChange}
@@ -661,20 +678,35 @@ export default {
661
678
 
662
679
  if (type == 1) { //上限值
663
680
  let _dateEnd = that.toDateByStr1(that.dateEnd);
664
- if (firstD <= _dateEnd && _dateEnd <= lastD) {
665
- return true;
666
- } else
667
- return false;
681
+ return firstD <= _dateEnd && _dateEnd <= lastD;
668
682
  } else { //下限值
669
683
  let _dateStart = that.toDateByStr1(that.dateStart);
670
- if (firstD <= _dateStart && _dateStart <= lastD) {
671
- return true;
672
- } else
673
- return false;
684
+ return firstD <= _dateStart && _dateStart <= lastD;
685
+ }
686
+ },
687
+ handler() {
688
+ if (this.isOpen) {
689
+ setTimeout(() => {
690
+ this.isOpen = false
691
+ this.$emit('update:open', this.isOpen)
692
+ }, 100)
674
693
  }
675
694
  },
676
695
  },
677
696
  watch: {
697
+ open: {
698
+ handler: function (v) {
699
+ this.isOpen = v
700
+ if(v) {
701
+ this.init()
702
+ window.addEventListener('scroll', this.handler)
703
+ }else {
704
+ window.removeEventListener('scroll', this.handler)
705
+ }
706
+ },
707
+ immediate: true,
708
+ deep: true
709
+ },
678
710
  currentTime: function (val, oldVal) { //时间改变
679
711
  let dateNew = this.toDateByStr1(val);
680
712
  if (dateNew.getFullYear() === this.year && (dateNew.getMonth() + 1) === this.month) {
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <teleport to="body">
3
- <div class="year" :style="{top: y + 'px', left: x + 'px'}">
3
+ <div ref="yearRef" v-if="isOpen" class="year" :style="{top: y + 'px', left: x + 'px'}">
4
4
  <div class="year-cont">
5
5
  <div class='calendar-Time-header under_line'>
6
6
  <span class='calendar-lastMonth' @click="last">{{ lastText }}</span>
@@ -43,6 +43,10 @@ export default {
43
43
  domeElement: {
44
44
  type: Object,
45
45
  default: null
46
+ },
47
+ open: {
48
+ type: Boolean,
49
+ default: false
46
50
  }
47
51
  },
48
52
  data() {
@@ -53,20 +57,55 @@ export default {
53
57
  max: 0,
54
58
  timeObj: 0,
55
59
  x: 0,
56
- y: 0
60
+ y: 0,
61
+ isOpen: false
57
62
  }
58
63
  },
59
64
  created() {
60
65
  this.render();
61
- if(this.domeElement) {
62
- let el = this.domeElement.$el
63
- if(!el) el = this.domeElement
64
- const dome = el.getBoundingClientRect()
65
- this.x = dome.left
66
- this.y = dome.top + dome.height
66
+ },
67
+ watch: {
68
+ open: {
69
+ handler: function (v) {
70
+ this.isOpen = v
71
+ if(v) {
72
+ this.init()
73
+ window.addEventListener('scroll', this.handler)
74
+ }else {
75
+ window.removeEventListener('scroll', this.handler)
76
+ }
77
+ },
78
+ immediate: true,
79
+ deep: true
67
80
  }
68
81
  },
69
82
  methods: {
83
+ init() {
84
+ this.$nextTick(() => {
85
+ if(this.domeElement) {
86
+ let el = this.domeElement.$el
87
+ if(!el) el = this.domeElement
88
+ const height = document.documentElement.clientHeight || document.body.clientHeight;
89
+ const dome = el.getBoundingClientRect()
90
+ const hei = this.$refs.yearRef.getBoundingClientRect()
91
+ this.x = dome.left
92
+ if((dome.top + hei.height - height) > 0) {
93
+ this.y = dome.top - hei.height
94
+ }else {
95
+ console.log(dome)
96
+ this.y = dome.top + dome.height
97
+ }
98
+ }
99
+ })
100
+ },
101
+ handler() {
102
+ if (this.isOpen) {
103
+ setTimeout(() => {
104
+ this.isOpen = false
105
+ this.$emit('update:open', this.isOpen)
106
+ }, 100)
107
+ }
108
+ },
70
109
  render() {
71
110
  this.timeObj = new Date().getFullYear();
72
111
  this.min = this.timeObj - 5
@@ -107,9 +146,7 @@ export default {
107
146
 
108
147
  <style scoped>
109
148
  .year{
110
- position: absolute;
111
- top: 22px;
112
- right: 0;
149
+ position: fixed;
113
150
  width: 300px;
114
151
  z-index: 100;
115
152
  background-color: #fff;
package/src/index.js CHANGED
@@ -89,7 +89,7 @@ function install(app) {
89
89
  }
90
90
 
91
91
  export default {
92
- version: '1.35.588',
92
+ version: '1.35.589',
93
93
  install,
94
94
  Calendar,
95
95
  Message,