meixioacomponent 1.1.49 → 1.1.51

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 (25) hide show
  1. package/lib/meixioacomponent.common.js +337 -52
  2. package/lib/meixioacomponent.umd.js +337 -52
  3. package/lib/meixioacomponent.umd.min.js +7 -7
  4. package/package.json +1 -1
  5. package/packages/components/base/baseArea/api.js +7 -0
  6. package/packages/components/base/baseArea/areaConfig.js +4 -3
  7. package/packages/components/base/baseArea/baseAreaV2.vue +157 -0
  8. package/packages/components/base/baseArea/index.js +2 -1
  9. package/packages/components/base/elDatePicker/basic/date-table.vue +441 -441
  10. package/packages/components/base/elDatePicker/basic/month-table.vue +269 -269
  11. package/packages/components/base/elDatePicker/basic/time-spinner.vue +304 -304
  12. package/packages/components/base/elDatePicker/basic/year-table.vue +111 -111
  13. package/packages/components/base/elDatePicker/index.js +6 -6
  14. package/packages/components/base/elDatePicker/index.vue +27 -27
  15. package/packages/components/base/elDatePicker/panel/date-range.vue +680 -680
  16. package/packages/components/base/elDatePicker/panel/date.vue +609 -609
  17. package/packages/components/base/elDatePicker/panel/month-range.vue +289 -289
  18. package/packages/components/base/elDatePicker/panel/time-range.vue +248 -248
  19. package/packages/components/base/elDatePicker/panel/time-select.vue +178 -178
  20. package/packages/components/base/elDatePicker/panel/time.vue +186 -186
  21. package/packages/components/base/elDatePicker/picker/date-picker.js +55 -55
  22. package/packages/components/base/elDatePicker/picker/time-picker.js +39 -39
  23. package/packages/components/base/elDatePicker/picker/time-select.js +21 -21
  24. package/packages/components/base/elDatePicker/picker.vue +956 -956
  25. package/packages/components/proForm/proForm/pro_form.vue +6 -4
@@ -1,248 +1,248 @@
1
- <template>
2
- <transition
3
- name="el-zoom-in-top"
4
- @after-leave="$emit('dodestroy')">
5
- <div
6
- v-show="visible"
7
- class="el-time-range-picker el-picker-panel el-popper"
8
- :class="popperClass">
9
- <div class="el-time-range-picker__content">
10
- <div class="el-time-range-picker__cell">
11
- <div class="el-time-range-picker__header">{{ t('el.datepicker.startTime') }}</div>
12
- <div
13
- :class="{ 'has-seconds': showSeconds, 'is-arrow': arrowControl }"
14
- class="el-time-range-picker__body el-time-panel__content">
15
- <time-spinner
16
- ref="minSpinner"
17
- :show-seconds="showSeconds"
18
- :am-pm-mode="amPmMode"
19
- @change="handleMinChange"
20
- :arrow-control="arrowControl"
21
- @select-range="setMinSelectionRange"
22
- :date="minDate">
23
- </time-spinner>
24
- </div>
25
- </div>
26
- <div class="el-time-range-picker__cell">
27
- <div class="el-time-range-picker__header">{{ t('el.datepicker.endTime') }}</div>
28
- <div
29
- :class="{ 'has-seconds': showSeconds, 'is-arrow': arrowControl }"
30
- class="el-time-range-picker__body el-time-panel__content">
31
- <time-spinner
32
- ref="maxSpinner"
33
- :show-seconds="showSeconds"
34
- :am-pm-mode="amPmMode"
35
- @change="handleMaxChange"
36
- :arrow-control="arrowControl"
37
- @select-range="setMaxSelectionRange"
38
- :date="maxDate">
39
- </time-spinner>
40
- </div>
41
- </div>
42
- </div>
43
- <div class="el-time-panel__footer">
44
- <button
45
- type="button"
46
- class="el-time-panel__btn cancel"
47
- @click="handleCancel()">{{ t('el.datepicker.cancel') }}</button>
48
- <button
49
- type="button"
50
- class="el-time-panel__btn confirm"
51
- @click="handleConfirm()"
52
- :disabled="btnDisabled">{{ t('el.datepicker.confirm') }}</button>
53
- </div>
54
- </div>
55
- </transition>
56
- </template>
57
-
58
- <script type="text/babel">
59
- import {
60
- parseDate,
61
- limitTimeRange,
62
- modifyDate,
63
- clearMilliseconds,
64
- timeWithinRange
65
- } from 'element-ui/src/utils/date-util';
66
- import Locale from 'element-ui/src/mixins/locale';
67
- import TimeSpinner from '../basic/time-spinner';
68
-
69
- const MIN_TIME = parseDate('00:00:00', 'HH:mm:ss');
70
- const MAX_TIME = parseDate('23:59:59', 'HH:mm:ss');
71
-
72
- const minTimeOfDay = function(date) {
73
- return modifyDate(MIN_TIME, date.getFullYear(), date.getMonth(), date.getDate());
74
- };
75
-
76
- const maxTimeOfDay = function(date) {
77
- return modifyDate(MAX_TIME, date.getFullYear(), date.getMonth(), date.getDate());
78
- };
79
-
80
- // increase time by amount of milliseconds, but within the range of day
81
- const advanceTime = function(date, amount) {
82
- return new Date(Math.min(date.getTime() + amount, maxTimeOfDay(date).getTime()));
83
- };
84
-
85
- export default {
86
- mixins: [Locale],
87
-
88
- components: { TimeSpinner },
89
-
90
- computed: {
91
- showSeconds() {
92
- return (this.format || '').indexOf('ss') !== -1;
93
- },
94
-
95
- offset() {
96
- return this.showSeconds ? 11 : 8;
97
- },
98
-
99
- spinner() {
100
- return this.selectionRange[0] < this.offset ? this.$refs.minSpinner : this.$refs.maxSpinner;
101
- },
102
-
103
- btnDisabled() {
104
- return this.minDate.getTime() > this.maxDate.getTime();
105
- },
106
- amPmMode() {
107
- if ((this.format || '').indexOf('A') !== -1) return 'A';
108
- if ((this.format || '').indexOf('a') !== -1) return 'a';
109
- return '';
110
- }
111
- },
112
-
113
- data() {
114
- return {
115
- popperClass: '',
116
- minDate: new Date(),
117
- maxDate: new Date(),
118
- value: [],
119
- oldValue: [new Date(), new Date()],
120
- defaultValue: null,
121
- format: 'HH:mm:ss',
122
- visible: false,
123
- selectionRange: [0, 2],
124
- arrowControl: false
125
- };
126
- },
127
-
128
- watch: {
129
- value(value) {
130
- if (Array.isArray(value)) {
131
- this.minDate = new Date(value[0]);
132
- this.maxDate = new Date(value[1]);
133
- } else {
134
- if (Array.isArray(this.defaultValue)) {
135
- this.minDate = new Date(this.defaultValue[0]);
136
- this.maxDate = new Date(this.defaultValue[1]);
137
- } else if (this.defaultValue) {
138
- this.minDate = new Date(this.defaultValue);
139
- this.maxDate = advanceTime(new Date(this.defaultValue), 60 * 60 * 1000);
140
- } else {
141
- this.minDate = new Date();
142
- this.maxDate = advanceTime(new Date(), 60 * 60 * 1000);
143
- }
144
- }
145
- },
146
-
147
- visible(val) {
148
- if (val) {
149
- this.oldValue = this.value;
150
- this.$nextTick(() => this.$refs.minSpinner.emitSelectRange('hours'));
151
- }
152
- }
153
- },
154
-
155
- methods: {
156
- handleClear() {
157
- this.$emit('pick', null);
158
- },
159
-
160
- handleCancel() {
161
- this.$emit('pick', this.oldValue);
162
- },
163
-
164
- handleMinChange(date) {
165
- this.minDate = clearMilliseconds(date);
166
- this.handleChange();
167
- },
168
-
169
- handleMaxChange(date) {
170
- this.maxDate = clearMilliseconds(date);
171
- this.handleChange();
172
- },
173
-
174
- handleChange() {
175
- if (this.isValidValue([this.minDate, this.maxDate])) {
176
- this.$refs.minSpinner.selectableRange = [[minTimeOfDay(this.minDate), this.maxDate]];
177
- this.$refs.maxSpinner.selectableRange = [[this.minDate, maxTimeOfDay(this.maxDate)]];
178
- this.$emit('pick', [this.minDate, this.maxDate], true);
179
- }
180
- },
181
-
182
- setMinSelectionRange(start, end) {
183
- this.$emit('select-range', start, end, 'min');
184
- this.selectionRange = [start, end];
185
- },
186
-
187
- setMaxSelectionRange(start, end) {
188
- this.$emit('select-range', start, end, 'max');
189
- this.selectionRange = [start + this.offset, end + this.offset];
190
- },
191
-
192
- handleConfirm(visible = false) {
193
- const minSelectableRange = this.$refs.minSpinner.selectableRange;
194
- const maxSelectableRange = this.$refs.maxSpinner.selectableRange;
195
-
196
- this.minDate = limitTimeRange(this.minDate, minSelectableRange, this.format);
197
- this.maxDate = limitTimeRange(this.maxDate, maxSelectableRange, this.format);
198
-
199
- this.$emit('pick', [this.minDate, this.maxDate], visible);
200
- },
201
-
202
- adjustSpinners() {
203
- this.$refs.minSpinner.adjustSpinners();
204
- this.$refs.maxSpinner.adjustSpinners();
205
- },
206
-
207
- changeSelectionRange(step) {
208
- const list = this.showSeconds ? [0, 3, 6, 11, 14, 17] : [0, 3, 8, 11];
209
- const mapping = ['hours', 'minutes'].concat(this.showSeconds ? ['seconds'] : []);
210
- const index = list.indexOf(this.selectionRange[0]);
211
- const next = (index + step + list.length) % list.length;
212
- const half = list.length / 2;
213
- if (next < half) {
214
- this.$refs.minSpinner.emitSelectRange(mapping[next]);
215
- } else {
216
- this.$refs.maxSpinner.emitSelectRange(mapping[next - half]);
217
- }
218
- },
219
-
220
- isValidValue(date) {
221
- return Array.isArray(date) &&
222
- timeWithinRange(this.minDate, this.$refs.minSpinner.selectableRange) &&
223
- timeWithinRange(this.maxDate, this.$refs.maxSpinner.selectableRange);
224
- },
225
-
226
- handleKeydown(event) {
227
- const keyCode = event.keyCode;
228
- const mapping = { 38: -1, 40: 1, 37: -1, 39: 1 };
229
-
230
- // Left or Right
231
- if (keyCode === 37 || keyCode === 39) {
232
- const step = mapping[keyCode];
233
- this.changeSelectionRange(step);
234
- event.preventDefault();
235
- return;
236
- }
237
-
238
- // Up or Down
239
- if (keyCode === 38 || keyCode === 40) {
240
- const step = mapping[keyCode];
241
- this.spinner.scrollDown(step);
242
- event.preventDefault();
243
- return;
244
- }
245
- }
246
- }
247
- };
248
- </script>
1
+ <template>
2
+ <transition
3
+ name="el-zoom-in-top"
4
+ @after-leave="$emit('dodestroy')">
5
+ <div
6
+ v-show="visible"
7
+ class="el-time-range-picker el-picker-panel el-popper"
8
+ :class="popperClass">
9
+ <div class="el-time-range-picker__content">
10
+ <div class="el-time-range-picker__cell">
11
+ <div class="el-time-range-picker__header">{{ t('el.datepicker.startTime') }}</div>
12
+ <div
13
+ :class="{ 'has-seconds': showSeconds, 'is-arrow': arrowControl }"
14
+ class="el-time-range-picker__body el-time-panel__content">
15
+ <time-spinner
16
+ ref="minSpinner"
17
+ :show-seconds="showSeconds"
18
+ :am-pm-mode="amPmMode"
19
+ @change="handleMinChange"
20
+ :arrow-control="arrowControl"
21
+ @select-range="setMinSelectionRange"
22
+ :date="minDate">
23
+ </time-spinner>
24
+ </div>
25
+ </div>
26
+ <div class="el-time-range-picker__cell">
27
+ <div class="el-time-range-picker__header">{{ t('el.datepicker.endTime') }}</div>
28
+ <div
29
+ :class="{ 'has-seconds': showSeconds, 'is-arrow': arrowControl }"
30
+ class="el-time-range-picker__body el-time-panel__content">
31
+ <time-spinner
32
+ ref="maxSpinner"
33
+ :show-seconds="showSeconds"
34
+ :am-pm-mode="amPmMode"
35
+ @change="handleMaxChange"
36
+ :arrow-control="arrowControl"
37
+ @select-range="setMaxSelectionRange"
38
+ :date="maxDate">
39
+ </time-spinner>
40
+ </div>
41
+ </div>
42
+ </div>
43
+ <div class="el-time-panel__footer">
44
+ <button
45
+ type="button"
46
+ class="el-time-panel__btn cancel"
47
+ @click="handleCancel()">{{ t('el.datepicker.cancel') }}</button>
48
+ <button
49
+ type="button"
50
+ class="el-time-panel__btn confirm"
51
+ @click="handleConfirm()"
52
+ :disabled="btnDisabled">{{ t('el.datepicker.confirm') }}</button>
53
+ </div>
54
+ </div>
55
+ </transition>
56
+ </template>
57
+
58
+ <script type="text/babel">
59
+ import {
60
+ parseDate,
61
+ limitTimeRange,
62
+ modifyDate,
63
+ clearMilliseconds,
64
+ timeWithinRange
65
+ } from 'element-ui/src/utils/date-util';
66
+ import Locale from 'element-ui/src/mixins/locale';
67
+ import TimeSpinner from '../basic/time-spinner';
68
+
69
+ const MIN_TIME = parseDate('00:00:00', 'HH:mm:ss');
70
+ const MAX_TIME = parseDate('23:59:59', 'HH:mm:ss');
71
+
72
+ const minTimeOfDay = function(date) {
73
+ return modifyDate(MIN_TIME, date.getFullYear(), date.getMonth(), date.getDate());
74
+ };
75
+
76
+ const maxTimeOfDay = function(date) {
77
+ return modifyDate(MAX_TIME, date.getFullYear(), date.getMonth(), date.getDate());
78
+ };
79
+
80
+ // increase time by amount of milliseconds, but within the range of day
81
+ const advanceTime = function(date, amount) {
82
+ return new Date(Math.min(date.getTime() + amount, maxTimeOfDay(date).getTime()));
83
+ };
84
+
85
+ export default {
86
+ mixins: [Locale],
87
+
88
+ components: { TimeSpinner },
89
+
90
+ computed: {
91
+ showSeconds() {
92
+ return (this.format || '').indexOf('ss') !== -1;
93
+ },
94
+
95
+ offset() {
96
+ return this.showSeconds ? 11 : 8;
97
+ },
98
+
99
+ spinner() {
100
+ return this.selectionRange[0] < this.offset ? this.$refs.minSpinner : this.$refs.maxSpinner;
101
+ },
102
+
103
+ btnDisabled() {
104
+ return this.minDate.getTime() > this.maxDate.getTime();
105
+ },
106
+ amPmMode() {
107
+ if ((this.format || '').indexOf('A') !== -1) return 'A';
108
+ if ((this.format || '').indexOf('a') !== -1) return 'a';
109
+ return '';
110
+ }
111
+ },
112
+
113
+ data() {
114
+ return {
115
+ popperClass: '',
116
+ minDate: new Date(),
117
+ maxDate: new Date(),
118
+ value: [],
119
+ oldValue: [new Date(), new Date()],
120
+ defaultValue: null,
121
+ format: 'HH:mm:ss',
122
+ visible: false,
123
+ selectionRange: [0, 2],
124
+ arrowControl: false
125
+ };
126
+ },
127
+
128
+ watch: {
129
+ value(value) {
130
+ if (Array.isArray(value)) {
131
+ this.minDate = new Date(value[0]);
132
+ this.maxDate = new Date(value[1]);
133
+ } else {
134
+ if (Array.isArray(this.defaultValue)) {
135
+ this.minDate = new Date(this.defaultValue[0]);
136
+ this.maxDate = new Date(this.defaultValue[1]);
137
+ } else if (this.defaultValue) {
138
+ this.minDate = new Date(this.defaultValue);
139
+ this.maxDate = advanceTime(new Date(this.defaultValue), 60 * 60 * 1000);
140
+ } else {
141
+ this.minDate = new Date();
142
+ this.maxDate = advanceTime(new Date(), 60 * 60 * 1000);
143
+ }
144
+ }
145
+ },
146
+
147
+ visible(val) {
148
+ if (val) {
149
+ this.oldValue = this.value;
150
+ this.$nextTick(() => this.$refs.minSpinner.emitSelectRange('hours'));
151
+ }
152
+ }
153
+ },
154
+
155
+ methods: {
156
+ handleClear() {
157
+ this.$emit('pick', null);
158
+ },
159
+
160
+ handleCancel() {
161
+ this.$emit('pick', this.oldValue);
162
+ },
163
+
164
+ handleMinChange(date) {
165
+ this.minDate = clearMilliseconds(date);
166
+ this.handleChange();
167
+ },
168
+
169
+ handleMaxChange(date) {
170
+ this.maxDate = clearMilliseconds(date);
171
+ this.handleChange();
172
+ },
173
+
174
+ handleChange() {
175
+ if (this.isValidValue([this.minDate, this.maxDate])) {
176
+ this.$refs.minSpinner.selectableRange = [[minTimeOfDay(this.minDate), this.maxDate]];
177
+ this.$refs.maxSpinner.selectableRange = [[this.minDate, maxTimeOfDay(this.maxDate)]];
178
+ this.$emit('pick', [this.minDate, this.maxDate], true);
179
+ }
180
+ },
181
+
182
+ setMinSelectionRange(start, end) {
183
+ this.$emit('select-range', start, end, 'min');
184
+ this.selectionRange = [start, end];
185
+ },
186
+
187
+ setMaxSelectionRange(start, end) {
188
+ this.$emit('select-range', start, end, 'max');
189
+ this.selectionRange = [start + this.offset, end + this.offset];
190
+ },
191
+
192
+ handleConfirm(visible = false) {
193
+ const minSelectableRange = this.$refs.minSpinner.selectableRange;
194
+ const maxSelectableRange = this.$refs.maxSpinner.selectableRange;
195
+
196
+ this.minDate = limitTimeRange(this.minDate, minSelectableRange, this.format);
197
+ this.maxDate = limitTimeRange(this.maxDate, maxSelectableRange, this.format);
198
+
199
+ this.$emit('pick', [this.minDate, this.maxDate], visible);
200
+ },
201
+
202
+ adjustSpinners() {
203
+ this.$refs.minSpinner.adjustSpinners();
204
+ this.$refs.maxSpinner.adjustSpinners();
205
+ },
206
+
207
+ changeSelectionRange(step) {
208
+ const list = this.showSeconds ? [0, 3, 6, 11, 14, 17] : [0, 3, 8, 11];
209
+ const mapping = ['hours', 'minutes'].concat(this.showSeconds ? ['seconds'] : []);
210
+ const index = list.indexOf(this.selectionRange[0]);
211
+ const next = (index + step + list.length) % list.length;
212
+ const half = list.length / 2;
213
+ if (next < half) {
214
+ this.$refs.minSpinner.emitSelectRange(mapping[next]);
215
+ } else {
216
+ this.$refs.maxSpinner.emitSelectRange(mapping[next - half]);
217
+ }
218
+ },
219
+
220
+ isValidValue(date) {
221
+ return Array.isArray(date) &&
222
+ timeWithinRange(this.minDate, this.$refs.minSpinner.selectableRange) &&
223
+ timeWithinRange(this.maxDate, this.$refs.maxSpinner.selectableRange);
224
+ },
225
+
226
+ handleKeydown(event) {
227
+ const keyCode = event.keyCode;
228
+ const mapping = { 38: -1, 40: 1, 37: -1, 39: 1 };
229
+
230
+ // Left or Right
231
+ if (keyCode === 37 || keyCode === 39) {
232
+ const step = mapping[keyCode];
233
+ this.changeSelectionRange(step);
234
+ event.preventDefault();
235
+ return;
236
+ }
237
+
238
+ // Up or Down
239
+ if (keyCode === 38 || keyCode === 40) {
240
+ const step = mapping[keyCode];
241
+ this.spinner.scrollDown(step);
242
+ event.preventDefault();
243
+ return;
244
+ }
245
+ }
246
+ }
247
+ };
248
+ </script>