Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
E
Element
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
CI / CD Analytics
Repository Analytics
Value Stream Analytics
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
林焕东
Element
Commits
6ad98f7e
Commit
6ad98f7e
authored
Aug 11, 2016
by
qingwei.li
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update time/date picker
parent
096b3559
Changes
17
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
546 additions
and
559 deletions
+546
-559
examples/docs/date-picker.md
examples/docs/date-picker.md
+26
-3
examples/docs/datetime-picker.md
examples/docs/datetime-picker.md
+58
-3
examples/docs/time-picker.md
examples/docs/time-picker.md
+11
-3
packages/date-picker/package.json
packages/date-picker/package.json
+1
-1
packages/date-picker/src/basic/date-table.vue
packages/date-picker/src/basic/date-table.vue
+14
-8
packages/date-picker/src/basic/month-table.vue
packages/date-picker/src/basic/month-table.vue
+1
-1
packages/date-picker/src/basic/time-spinner.vue
packages/date-picker/src/basic/time-spinner.vue
+4
-5
packages/date-picker/src/basic/year-table.vue
packages/date-picker/src/basic/year-table.vue
+3
-3
packages/date-picker/src/panel/date-range.vue
packages/date-picker/src/panel/date-range.vue
+122
-143
packages/date-picker/src/panel/date.vue
packages/date-picker/src/panel/date.vue
+119
-129
packages/date-picker/src/panel/time-range.vue
packages/date-picker/src/panel/time-range.vue
+85
-156
packages/date-picker/src/panel/time-select.vue
packages/date-picker/src/panel/time-select.vue
+24
-32
packages/date-picker/src/panel/time.vue
packages/date-picker/src/panel/time.vue
+50
-45
packages/date-picker/src/util/index.js
packages/date-picker/src/util/index.js
+1
-1
packages/pagination/src/pagination.js
packages/pagination/src/pagination.js
+6
-6
packages/select/src/select.vue
packages/select/src/select.vue
+12
-11
src/index.js
src/index.js
+9
-9
No files found.
examples/docs/date-picker.md
View file @
6ad98f7e
...
@@ -50,7 +50,14 @@
...
@@ -50,7 +50,14 @@
picker.$emit('pick',
[
start, end
]
);
picker.$emit('pick',
[
start, end
]
);
}
}
}]
}]
}
},
value1: '',
value2: '',
value3: '',
value4: '',
value5: '',
value6: '',
value7: ''
};
};
}
}
};
};
...
@@ -63,12 +70,14 @@
...
@@ -63,12 +70,14 @@
以『日』为基本单位
以『日』为基本单位
<el-date-picker
<el-date-picker
v-model="value1"
type="date"
type="date"
placeholder="选择日期">
placeholder="选择日期">
</el-date-picker>
</el-date-picker>
```
html
```
html
<el-date-picker
<el-date-picker
v-model=
"value"
type=
"date"
type=
"date"
placeholder=
"选择日期"
>
placeholder=
"选择日期"
>
</el-date-picker>
</el-date-picker>
...
@@ -79,6 +88,7 @@
...
@@ -79,6 +88,7 @@
以『周』为基本单位
以『周』为基本单位
<el-date-picker
<el-date-picker
v-model="value2"
type="week"
type="week"
format="yyyy 第 WW 周"
format="yyyy 第 WW 周"
placeholder="选择周">
placeholder="选择周">
...
@@ -86,6 +96,7 @@
...
@@ -86,6 +96,7 @@
```
html
```
html
<el-date-picker
<el-date-picker
v-model=
"value"
type=
"week"
type=
"week"
format=
"yyyy 第 WW 周"
format=
"yyyy 第 WW 周"
placeholder=
"选择周"
>
placeholder=
"选择周"
>
...
@@ -97,12 +108,14 @@
...
@@ -97,12 +108,14 @@
以『月』为基本单位
以『月』为基本单位
<el-date-picker
<el-date-picker
v-model="value3"
type="month"
type="month"
placeholder="选择月">
placeholder="选择月">
</el-date-picker>
</el-date-picker>
```
html
```
html
<el-date-picker
<el-date-picker
v-model=
"value"
type=
"month"
type=
"month"
placeholder=
"选择月"
>
placeholder=
"选择月"
>
</el-date-picker>
</el-date-picker>
...
@@ -113,12 +126,14 @@
...
@@ -113,12 +126,14 @@
以『年』为基本单位
以『年』为基本单位
<el-date-picker
<el-date-picker
v-model="value4"
type="year"
type="year"
placeholder="选择日期">
placeholder="选择日期">
</el-date-picker>
</el-date-picker>
```
html
```
html
<el-date-picker
<el-date-picker
v-model=
"value"
type=
"year"
type=
"year"
placeholder=
"选择日期"
>
placeholder=
"选择日期"
>
</el-date-picker>
</el-date-picker>
...
@@ -129,6 +144,7 @@
...
@@ -129,6 +144,7 @@
左侧区域可配置快捷选项,例如『今天』、『昨天』等
左侧区域可配置快捷选项,例如『今天』、『昨天』等
<el-date-picker
<el-date-picker
v-model="value5"
type="date"
type="date"
placeholder="选择日期"
placeholder="选择日期"
:picker-options="pickerOptions1">
:picker-options="pickerOptions1">
...
@@ -136,6 +152,7 @@
...
@@ -136,6 +152,7 @@
```
html
```
html
<el-date-picker
<el-date-picker
v-model=
"value"
type=
"date"
type=
"date"
placeholder=
"选择日期"
placeholder=
"选择日期"
:picker-options=
"pickerOptions1"
>
:picker-options=
"pickerOptions1"
>
...
@@ -166,7 +183,8 @@
...
@@ -166,7 +183,8 @@
picker
.
$emit
(
'
pick
'
,
date
);
picker
.
$emit
(
'
pick
'
,
date
);
}
}
}]
}]
}
},
value
:
''
};
};
}
}
};
};
...
@@ -180,6 +198,7 @@
...
@@ -180,6 +198,7 @@
在一个选择器中选择
在一个选择器中选择
<el-date-picker
<el-date-picker
v-model="value6"
type="daterange"
type="daterange"
placeholder="选择日期范围"
placeholder="选择日期范围"
style="width: 220px">
style="width: 220px">
...
@@ -187,6 +206,7 @@
...
@@ -187,6 +206,7 @@
```
html
```
html
<el-date-picker
<el-date-picker
v-model=
"value"
type=
"daterange"
type=
"daterange"
placeholder=
"选择日期范围"
placeholder=
"选择日期范围"
style=
"width: 220px"
>
style=
"width: 220px"
>
...
@@ -198,6 +218,7 @@
...
@@ -198,6 +218,7 @@
左侧区域可配置快捷选项,例如『最近一周』、『最近一个月』等
左侧区域可配置快捷选项,例如『最近一周』、『最近一个月』等
<el-date-picker
<el-date-picker
v-model="value7"
type="daterange"
type="daterange"
placeholder="选择日期范围"
placeholder="选择日期范围"
:picker-options="pickerOptions2"
:picker-options="pickerOptions2"
...
@@ -206,6 +227,7 @@
...
@@ -206,6 +227,7 @@
```
html
```
html
<el-date-picker
<el-date-picker
v-model=
"value"
type=
"daterange"
type=
"daterange"
placeholder=
"选择日期范围"
placeholder=
"选择日期范围"
:picker-options=
"pickerOptions2"
:picker-options=
"pickerOptions2"
...
@@ -242,7 +264,8 @@
...
@@ -242,7 +264,8 @@
picker
.
$emit
(
'
pick
'
,
[
start
,
end
]);
picker
.
$emit
(
'
pick
'
,
[
start
,
end
]);
}
}
}]
}]
}
},
value
:
''
};
};
}
}
};
};
...
...
examples/docs/datetime-picker.md
View file @
6ad98f7e
...
@@ -50,7 +50,23 @@
...
@@ -50,7 +50,23 @@
picker.$emit('pick',
[
start, end
]
);
picker.$emit('pick',
[
start, end
]
);
}
}
}]
}]
}
},
value1: '',
value2: '',
value3: new Date(),
value4: '',
value5: '',
value6: '',
value7: '',
value8: '',
value9: '',
value10: '',
value11: '',
value12: '',
value13: '',
value14: '',
value15: '',
value16: ''
};
};
}
}
};
};
...
@@ -64,20 +80,24 @@
...
@@ -64,20 +80,24 @@
<div
class=
"demo-box"
>
<div
class=
"demo-box"
>
<el-date-picker
<el-date-picker
v-model="value1"
type="date"
type="date"
placeholder="选择日期">
placeholder="选择日期">
</el-date-picker>
</el-date-picker>
<el-time-picker
<el-time-picker
v-model="value1"
placeholder="选择时间">
placeholder="选择时间">
</el-date-picker>
</el-date-picker>
</div>
</div>
```
html
```
html
<el-date-picker
<el-date-picker
v-model=
"value"
type=
"date"
type=
"date"
placeholder=
"选择日期"
>
placeholder=
"选择日期"
>
</el-date-picker>
</el-date-picker>
<el-time-picker
<el-time-picker
v-model=
"value"
placeholder=
"选择时间"
>
placeholder=
"选择时间"
>
</el-time-picker>
</el-time-picker>
```
```
...
@@ -88,6 +108,7 @@
...
@@ -88,6 +108,7 @@
<div
class=
"demo-box"
>
<div
class=
"demo-box"
>
<el-date-picker
<el-date-picker
v-model="value2"
type="datetime"
type="datetime"
placeholder="选择日期时间">
placeholder="选择日期时间">
</el-date-picker>
</el-date-picker>
...
@@ -95,6 +116,7 @@
...
@@ -95,6 +116,7 @@
```
html
```
html
<el-date-picker
<el-date-picker
v-model=
"value"
type=
"datetime"
type=
"datetime"
placeholder=
"选择日期时间"
>
placeholder=
"选择日期时间"
>
</el-date-picker>
</el-date-picker>
...
@@ -106,22 +128,26 @@
...
@@ -106,22 +128,26 @@
<div
class=
"demo-box"
>
<div
class=
"demo-box"
>
<el-date-picker
<el-date-picker
v-model="value3"
type="date"
type="date"
:picker-options="pickerOptions1"
:picker-options="pickerOptions1"
placeholder="选择日期">
placeholder="选择日期">
</el-date-picker>
</el-date-picker>
<el-time-picker
<el-time-picker
v-model="value3"
placeholder="选择时间">
placeholder="选择时间">
</el-time-picker>
</el-time-picker>
</div>
</div>
```
html
```
html
<el-date-picker
<el-date-picker
v-model=
"value"
type=
"date"
type=
"date"
placeholder=
"选择日期"
placeholder=
"选择日期"
:picker-options=
"pickerOptions1"
>
:picker-options=
"pickerOptions1"
>
</el-date-picker>
</el-date-picker>
<el-time-picker
<el-time-picker
v-model=
"value"
placeholder=
"选择时间"
>
placeholder=
"选择时间"
>
</el-time-picker>
</el-time-picker>
...
@@ -150,7 +176,8 @@
...
@@ -150,7 +176,8 @@
picker
.
$emit
(
'
pick
'
,
date
);
picker
.
$emit
(
'
pick
'
,
date
);
}
}
}]
}]
}
},
value
:
new
Date
()
};
};
}
}
};
};
...
@@ -163,6 +190,7 @@
...
@@ -163,6 +190,7 @@
<div
class=
"demo-box"
>
<div
class=
"demo-box"
>
<el-date-picker
<el-date-picker
v-model="value4"
type="datetime"
type="datetime"
placeholder="选择日期时间"
placeholder="选择日期时间"
:picker-options="pickerOptions1">
:picker-options="pickerOptions1">
...
@@ -171,6 +199,7 @@
...
@@ -171,6 +199,7 @@
```
html
```
html
<el-date-picker
<el-date-picker
v-model=
"value"
type=
"datetime"
type=
"datetime"
placeholder=
"选择日期时间"
placeholder=
"选择日期时间"
:picker-options=
"pickerOptions1"
:picker-options=
"pickerOptions1"
...
@@ -202,7 +231,8 @@
...
@@ -202,7 +231,8 @@
picker
.
$emit
(
'
pick
'
,
date
);
picker
.
$emit
(
'
pick
'
,
date
);
}
}
}]
}]
}
},
value
:
''
};
};
}
}
};
};
...
@@ -217,10 +247,12 @@
...
@@ -217,10 +247,12 @@
<div
class=
"demo-box"
>
<div
class=
"demo-box"
>
<el-date-picker
<el-date-picker
v-model="value5"
type="datetime"
type="datetime"
placeholder="选择开始时间">
placeholder="选择开始时间">
</el-date-picker>
</el-date-picker>
<el-date-picker
<el-date-picker
v-model="value6"
type="datetime"
type="datetime"
placeholder="选择结束时间">
placeholder="选择结束时间">
</el-date-picker>
</el-date-picker>
...
@@ -228,10 +260,12 @@
...
@@ -228,10 +260,12 @@
```
html
```
html
<el-date-picker
<el-date-picker
v-model=
"startTime"
type=
"datetime"
type=
"datetime"
placeholder=
"选择开始时间"
>
placeholder=
"选择开始时间"
>
</el-date-picker>
</el-date-picker>
<el-date-picker
<el-date-picker
v-model=
"endTime"
type=
"datetime"
type=
"datetime"
placeholder=
"选择结束时间"
>
placeholder=
"选择结束时间"
>
</el-date-picker>
</el-date-picker>
...
@@ -243,6 +277,7 @@
...
@@ -243,6 +277,7 @@
<div
class=
"demo-box"
>
<div
class=
"demo-box"
>
<el-date-picker
<el-date-picker
v-model="value7"
type="datetimerange"
type="datetimerange"
placeholder="选择时间范围"
placeholder="选择时间范围"
style="width:340px">
style="width:340px">
...
@@ -251,6 +286,7 @@
...
@@ -251,6 +286,7 @@
```
html
```
html
<el-date-picker
<el-date-picker
v-model=
"value"
type=
"datetimerange"
type=
"datetimerange"
placeholder=
"选择时间范围"
placeholder=
"选择时间范围"
style=
"width:340px"
>
style=
"width:340px"
>
...
@@ -263,6 +299,7 @@
...
@@ -263,6 +299,7 @@
<div
class=
"demo-box"
>
<div
class=
"demo-box"
>
<el-date-picker
<el-date-picker
v-model="value8"
type="datetimerange"
type="datetimerange"
:picker-options="pickerOptions2"
:picker-options="pickerOptions2"
placeholder="选择时间范围"
placeholder="选择时间范围"
...
@@ -272,6 +309,7 @@
...
@@ -272,6 +309,7 @@
```
html
```
html
<el-date-picker
<el-date-picker
v-model=
"value"
type=
"datetimerange"
type=
"datetimerange"
:picker-options=
"pickerOptions2"
:picker-options=
"pickerOptions2"
placeholder=
"选择时间范围"
placeholder=
"选择时间范围"
...
@@ -282,6 +320,7 @@
...
@@ -282,6 +320,7 @@
module
.
exports
=
{
module
.
exports
=
{
data
()
{
data
()
{
return
{
return
{
value
:
''
,
pickerOptions2
:
{
pickerOptions2
:
{
shortcuts
:
[{
shortcuts
:
[{
text
:
'
最近一周
'
,
text
:
'
最近一周
'
,
...
@@ -321,11 +360,13 @@
...
@@ -321,11 +360,13 @@
<div
class=
"demo-box"
>
<div
class=
"demo-box"
>
<el-date-picker
<el-date-picker
v-model="value9"
type="daterange"
type="daterange"
placeholder="选择日期范围"
placeholder="选择日期范围"
style="width:220px">
style="width:220px">
</el-date-picker>
</el-date-picker>
<el-time-picker
<el-time-picker
v-model="value10"
is-range
is-range
placeholder="选择时间范围">
placeholder="选择时间范围">
</el-time-picker>
</el-time-picker>
...
@@ -333,11 +374,13 @@
...
@@ -333,11 +374,13 @@
```
html
```
html
<el-date-picker
<el-date-picker
v-model=
"date"
type=
"daterange"
type=
"daterange"
placeholder=
"选择日期范围"
placeholder=
"选择日期范围"
style=
"width:220px"
>
style=
"width:220px"
>
</el-date-picker>
</el-date-picker>
<el-time-picker
<el-time-picker
v-model=
"time"
is-range
is-range
placeholder=
"选择时间范围"
>
placeholder=
"选择时间范围"
>
</el-time-picker>
</el-time-picker>
...
@@ -350,10 +393,12 @@
...
@@ -350,10 +393,12 @@
<div
class=
"demo-box"
>
<div
class=
"demo-box"
>
<el-date-picker
<el-date-picker
v-model="value11"
type="week"
type="week"
placeholder="选择开始周">
placeholder="选择开始周">
</el-date-picker>
</el-date-picker>
<el-date-picker
<el-date-picker
v-model="value12"
type="week"
type="week"
placeholder="选择结束周">
placeholder="选择结束周">
</el-date-picker>
</el-date-picker>
...
@@ -361,10 +406,12 @@
...
@@ -361,10 +406,12 @@
```
html
```
html
<el-date-picker
<el-date-picker
v-model=
"startWeek"
type=
"week"
type=
"week"
placeholder=
"选择开始周"
>
placeholder=
"选择开始周"
>
</el-date-picker>
</el-date-picker>
<el-date-picker
<el-date-picker
v-model=
"endWeek"
type=
"week"
type=
"week"
placeholder=
"选择结束周"
>
placeholder=
"选择结束周"
>
</el-date-picker>
</el-date-picker>
...
@@ -374,10 +421,12 @@
...
@@ -374,10 +421,12 @@
<div
class=
"demo-box"
>
<div
class=
"demo-box"
>
<el-date-picker
<el-date-picker
v-model="value13"
type="month"
type="month"
placeholder="选择开始月">
placeholder="选择开始月">
</el-date-picker>
</el-date-picker>
<el-date-picker
<el-date-picker
v-model="value14"
type="month"
type="month"
placeholder="选择结束月">
placeholder="选择结束月">
</el-date-picker>
</el-date-picker>
...
@@ -385,10 +434,12 @@
...
@@ -385,10 +434,12 @@
```
html
```
html
<el-date-picker
<el-date-picker
v-model=
"startMonth"
type=
"month"
type=
"month"
placeholder=
"选择开始月"
>
placeholder=
"选择开始月"
>
</el-date-picker>
</el-date-picker>
<el-date-picker
<el-date-picker
v-model=
"endMonth"
type=
"month"
type=
"month"
placeholder=
"选择结束月"
>
placeholder=
"选择结束月"
>
</el-date-picker>
</el-date-picker>
...
@@ -398,10 +449,12 @@
...
@@ -398,10 +449,12 @@
<div
class=
"demo-box"
>
<div
class=
"demo-box"
>
<el-date-picker
<el-date-picker
v-model="value15"
type="year"
type="year"
placeholder="选择开始年">
placeholder="选择开始年">
</el-date-picker>
</el-date-picker>
<el-date-picker
<el-date-picker
v-model="value16"
type="year"
type="year"
placeholder="选择结束年">
placeholder="选择结束年">
</el-date-picker>
</el-date-picker>
...
@@ -409,10 +462,12 @@
...
@@ -409,10 +462,12 @@
```
html
```
html
<el-date-picker
<el-date-picker
v-model=
"startYear"
type=
"year"
type=
"year"
placeholder=
"选择开始年"
>
placeholder=
"选择开始年"
>
</el-date-picker>
</el-date-picker>
<el-date-picker
<el-date-picker
v-model=
"endYear"
type=
"year"
type=
"year"
placeholder=
"选择结束年"
>
placeholder=
"选择结束年"
>
</el-date-picker>
</el-date-picker>
...
...
examples/docs/time-picker.md
View file @
6ad98f7e
...
@@ -8,9 +8,9 @@
...
@@ -8,9 +8,9 @@
## 固定时间点
## 固定时间点
提供几个固定的时间点供用户选择。
提供几个固定的时间点供用户选择。
{{value}}
<div
class=
"demo-box"
>
<div
class=
"demo-box"
>
<el-time-select
<el-time-select
v-model="value1"
:picker-options="{
:picker-options="{
start: '08:30',
start: '08:30',
step: '00:15',
step: '00:15',
...
@@ -37,7 +37,7 @@
...
@@ -37,7 +37,7 @@
<div
class=
"demo-box"
>
<div
class=
"demo-box"
>
<el-time-picker
<el-time-picker
v-model="value"
v-model="value
2
"
placeholder="任意时间点">
placeholder="任意时间点">
</el-time-picker>
</el-time-picker>
</div>
</div>
...
@@ -52,6 +52,7 @@
...
@@ -52,6 +52,7 @@
### 通用 - 手动输入规则
### 通用 - 手动输入规则
<div
class=
"demo-box"
>
<div
class=
"demo-box"
>
<el-time-picker
<el-time-picker
v-model="value3"
placeholder="任意时间点">
placeholder="任意时间点">
</el-time-picker>
</el-time-picker>
</div>
</div>
...
@@ -67,6 +68,7 @@
...
@@ -67,6 +68,7 @@
<div
class=
"demo-box"
>
<div
class=
"demo-box"
>
<el-time-picker
<el-time-picker
v-model="value4"
:picker-options="{
:picker-options="{
selectableRange: '18:30:00 - 20:30:00'
selectableRange: '18:30:00 - 20:30:00'
}"
}"
...
@@ -187,6 +189,7 @@
...
@@ -187,6 +189,7 @@
<div
class=
"demo-box"
>
<div
class=
"demo-box"
>
<el-time-picker
<el-time-picker
is-range
is-range
v-model="value5"
placeholder="选择时间范围">
placeholder="选择时间范围">
</el-time-picker>
</el-time-picker>
</div>
</div>
...
@@ -194,6 +197,7 @@
...
@@ -194,6 +197,7 @@
```
html
```
html
<el-time-picker
<el-time-picker
is-range
is-range
v-model=
"value"
placeholder=
"选择时间范围"
>
placeholder=
"选择时间范围"
>
</el-time-picker>
</el-time-picker>
```
```
...
@@ -202,7 +206,11 @@
...
@@ -202,7 +206,11 @@
export default {
export default {
data() {
data() {
return {
return {
value: '',
value1: '',
value2: '',
value3: '',
value4: '',
value5: '',
startTime: '',
startTime: '',
endTime: '',
endTime: '',
startTime2: '',
startTime2: '',
...
...
packages/date-picker/package.json
View file @
6ad98f7e
...
@@ -15,6 +15,6 @@
...
@@ -15,6 +15,6 @@
"wind-dom"
:
"0.0.3"
"wind-dom"
:
"0.0.3"
},
},
"devDependencies"
:
{
"devDependencies"
:
{
"vue"
:
"^2.0.0"
"vue"
:
"^2.0.0
-beta.7
"
}
}
}
}
packages/date-picker/src/basic/date-table.vue
View file @
6ad98f7e
...
@@ -392,24 +392,30 @@
...
@@ -392,24 +392,30 @@
if
(
clickNormalCell
&&
this
.
selectionMode
===
'
range
'
)
{
if
(
clickNormalCell
&&
this
.
selectionMode
===
'
range
'
)
{
if
(
this
.
minDate
&&
this
.
maxDate
)
{
if
(
this
.
minDate
&&
this
.
maxDate
)
{
this
.
minDate
=
new
Date
(
newDate
.
getTime
());
const
minDate
=
new
Date
(
newDate
.
getTime
());
this
.
maxDate
=
null
;
const
maxDate
=
null
;
this
.
$emit
(
'
pick
'
,
{
minDate
,
maxDate
},
false
);
this
.
rangeState
.
selecting
=
true
;
this
.
rangeState
.
selecting
=
true
;
this
.
markRange
(
this
.
minDate
);
this
.
markRange
(
this
.
minDate
);
}
else
if
(
this
.
minDate
&&
!
this
.
maxDate
)
{
}
else
if
(
this
.
minDate
&&
!
this
.
maxDate
)
{
if
(
newDate
>=
this
.
minDate
)
{
if
(
newDate
>=
this
.
minDate
)
{
this
.
maxDate
=
new
Date
(
newDate
.
getTime
());
const
maxDate
=
new
Date
(
newDate
.
getTime
());
this
.
rangeState
.
selecting
=
false
;
this
.
rangeState
.
selecting
=
false
;
this
.
$emit
(
'
pick
'
,
{
this
.
$emit
(
'
pick
'
,
{
minDate
:
this
.
minDate
,
minDate
:
this
.
minDate
,
maxDate
:
this
.
maxDate
maxDate
});
});
}
else
{
}
else
{
this
.
minDate
=
new
Date
(
newDate
.
getTime
());
const
minDate
=
new
Date
(
newDate
.
getTime
());
this
.
$emit
(
'
pick
'
,
{
minDate
,
maxDate
:
this
.
maxDate
},
false
);
}
}
}
else
if
(
!
this
.
minDate
)
{
}
else
if
(
!
this
.
minDate
)
{
this
.
minDate
=
new
Date
(
newDate
.
getTime
());
const
minDate
=
new
Date
(
newDate
.
getTime
());
this
.
$emit
(
'
pick
'
,
{
minDate
,
maxDate
:
this
.
maxDate
},
false
);
this
.
rangeState
.
selecting
=
true
;
this
.
rangeState
.
selecting
=
true
;
this
.
markRange
(
this
.
minDate
);
this
.
markRange
(
this
.
minDate
);
}
}
...
@@ -420,11 +426,11 @@
...
@@ -420,11 +426,11 @@
}
else
if
(
selectionMode
===
'
week
'
)
{
}
else
if
(
selectionMode
===
'
week
'
)
{
var
weekNumber
=
getWeekNumber
(
newDate
);
var
weekNumber
=
getWeekNumber
(
newDate
);
this
.
value
=
newDate
.
getFullYear
()
+
'
w
'
+
weekNumber
;
const
value
=
newDate
.
getFullYear
()
+
'
w
'
+
weekNumber
;
this
.
$emit
(
'
pick
'
,
{
this
.
$emit
(
'
pick
'
,
{
year
:
newDate
.
getFullYear
(),
year
:
newDate
.
getFullYear
(),
week
:
weekNumber
,
week
:
weekNumber
,
value
:
this
.
value
,
value
:
value
,
date
:
newDate
date
:
newDate
});
});
}
}
...
...
packages/date-picker/src/basic/month-table.vue
View file @
6ad98f7e
...
@@ -65,7 +65,7 @@
...
@@ -65,7 +65,7 @@
if
(
target
.
tagName
!==
'
A
'
)
return
;
if
(
target
.
tagName
!==
'
A
'
)
return
;
const
column
=
target
.
parentNode
.
cellIndex
;
const
column
=
target
.
parentNode
.
cellIndex
;
const
row
=
target
.
parentNode
.
parentNode
.
rowIndex
;
const
row
=
target
.
parentNode
.
parentNode
.
rowIndex
;
const
month
=
this
.
month
=
row
*
4
+
column
;
const
month
=
row
*
4
+
column
;
this
.
$emit
(
'
pick
'
,
month
);
this
.
$emit
(
'
pick
'
,
month
);
}
}
...
...
packages/date-picker/src/basic/time-spinner.vue
View file @
6ad98f7e
...
@@ -9,7 +9,7 @@
...
@@ -9,7 +9,7 @@
<li
<li
@
click=
"handleClick('hours',
{ value: hour, disabled: disabled }, true)"
@
click=
"handleClick('hours',
{ value: hour, disabled: disabled }, true)"
v-for="(disabled, hour) in hoursList"
v-for="(disabled, hour) in hoursList"
track-by="
$index
"
track-by="
hour
"
class="el-time-spinner__item"
class="el-time-spinner__item"
:class="{ 'active': hour === hours, 'disabled': disabled }"
:class="{ 'active': hour === hours, 'disabled': disabled }"
v-text="hour">
</li>
v-text="hour">
</li>
...
@@ -67,9 +67,7 @@
...
@@ -67,9 +67,7 @@
showSeconds
:
{
showSeconds
:
{
type
:
Boolean
,
type
:
Boolean
,
default
:
true
default
:
true
},
}
selectableRange
:
{}
},
},
watch
:
{
watch
:
{
...
@@ -109,7 +107,8 @@
...
@@ -109,7 +107,8 @@
return
{
return
{
hoursPrivate
:
0
,
hoursPrivate
:
0
,
minutesPrivate
:
0
,
minutesPrivate
:
0
,
secondsPrivate
:
0
secondsPrivate
:
0
,
selectableRange
:
[]
};
};
},
},
...
...
packages/date-picker/src/basic/year-table.vue
View file @
6ad98f7e
...
@@ -59,17 +59,17 @@
...
@@ -59,17 +59,17 @@
methods
:
{
methods
:
{
nextTenYear
()
{
nextTenYear
()
{
this
.
year
+=
10
;
this
.
$emit
(
'
pick
'
,
this
.
year
+
10
,
false
)
;
},
},
prevTenYear
()
{
prevTenYear
()
{
this
.
year
-=
10
;
this
.
$emit
(
'
pick
'
,
this
.
year
-
10
,
false
)
;
},
},
handleYearTableClick
(
event
)
{
handleYearTableClick
(
event
)
{
const
target
=
event
.
target
;
const
target
=
event
.
target
;
if
(
target
.
tagName
===
'
A
'
)
{
if
(
target
.
tagName
===
'
A
'
)
{
const
year
=
this
.
year
=
parseInt
(
target
.
textContent
||
target
.
innerText
,
10
);
const
year
=
parseInt
(
target
.
textContent
||
target
.
innerText
,
10
);
this
.
$emit
(
'
pick
'
,
year
);
this
.
$emit
(
'
pick
'
,
year
);
}
}
}
}
...
...
packages/date-picker/src/panel/date-range.vue
View file @
6ad98f7e
This diff is collapsed.
Click to expand it.
packages/date-picker/src/panel/date.vue
View file @
6ad98f7e
<
template
>
<
template
>
<div
<transition
name=
"md-fade-bottom"
>
v-show=
"visible"
<div
transition=
"md-fade-bottom"
v-show=
"visible"
class=
"el-picker-panel el-date-picker"
>
class=
"el-picker-panel el-date-picker"
>
<div
class=
"el-picker-panel__body-wrapper"
>
<div
class=
"el-picker-panel__body-wrapper"
>
<slot
name=
"sidebar"
class=
"el-picker-panel__sidebar"
></slot>
<slot
name=
"sidebar"
class=
"el-picker-panel__sidebar"
></slot>
<div
class=
"el-picker-panel__sidebar"
v-if=
"shortcuts"
>
<div
class=
"el-picker-panel__sidebar"
v-if=
"shortcuts"
>
<button
<button
class=
"el-picker-panel__shortcut"
class=
"el-picker-panel__shortcut"
v-for=
"shortcut in shortcuts"
v-for=
"shortcut in shortcuts"
@
click=
"handleShortcutClick(shortcut)"
>
{{
shortcut
.
text
}}
</button>
@
click=
"handleShortcutClick(shortcut)"
>
{{
shortcut
.
text
}}
</button>
</div>
</div>
<div
class=
"el-picker-panel__body"
>
<div
class=
"el-picker-panel__body"
>
<div
class=
"el-date-picker__time-header"
v-if=
"showTime"
>
<div
class=
"el-date-picker__time-header"
v-if=
"showTime"
>
<input
placehoder=
"选择日期"
type=
"text"
v-model=
"visibleDate"
class=
"el-date-picker__editor"
>
<span
class=
"el-date-picker__editor"
>
<input
<input
@
focus=
"timePickerVisible = true"
placehoder=
"选择日期"
v-model=
"visibleTime"
placehoder=
"选择时间"
type=
"text"
type=
"text"
v-model=
"visibleDate"
class=
"el-date-picker__editor"
>
class=
"el-date-picker__editor"
>
<time-picker
<span
style=
"position: relative"
v-clickoutside=
"closeTimePicker"
>
ref=
"timepicker"
<input
@
focus=
"timePickerVisible = true"
v-model=
"visibleTime"
placehoder=
"选择时间"
type=
"text"
class=
"el-date-picker__editor"
>
<time-picker
ref=
"timepicker"
:date=
"date"
@
pick=
"handleTimePick"
:visible=
"timePickerVisible"
>
</time-picker>
</span>
</div>
<div
class=
"el-date-picker__header"
v-show=
"currentView !== 'time'"
>
<button
@
click=
"prevYear"
class=
"el-picker-panel__icon-btn el-date-picker__prev-btn el-icon-d-arrow-left"
>
</button>
<button
@
click=
"prevMonth"
v-show=
"currentView === 'date'"
class=
"el-picker-panel__icon-btn el-date-picker__prev-btn el-icon-arrow-left"
>
</button>
<span
@
click=
"showYearPicker"
class=
"el-date-picker__header-label"
>
{{
yearLabel
}}
</span>
<span
@
click=
"showMonthPicker"
v-show=
"currentView === 'date'"
class=
"el-date-picker__header-label"
:class=
"
{ active: currentView === 'month' }">
{{
month
+
1
}}
月
</span>
<button
@
click=
"nextYear"
class=
"el-picker-panel__icon-btn el-date-picker__next-btn el-icon-d-arrow-right"
>
</button>
<button
@
click=
"nextMonth"
v-show=
"currentView === 'date'"
class=
"el-picker-panel__icon-btn el-date-picker__next-btn el-icon-arrow-right"
>
</button>
</div>
<div
class=
"el-picker-panel__content"
>
<date-table
v-show=
"currentView === 'date'"
@
pick=
"handleDatePick"
:year=
"year"
:month=
"month"
:date=
"date"
:date=
"date"
@
pick=
"handleTimePick"
:value=
"value"
v-show=
"timePickerVisible"
>
:week=
"week"
</time-picker>
:selection-mode=
"selectionMode"
</span>
:disabled-date=
"disabledDate"
>
</div>
</date-table>
<div
class=
"el-date-picker__header"
v-show=
"currentView !== 'time'"
>
<year-table
<button
ref=
"yearTable"
@
click=
"prevYear"
:year=
"year"
class=
"el-picker-panel__icon-btn el-date-picker__prev-btn el-icon-d-arrow-left"
>
v-show=
"currentView === 'year'"
</button>
@
pick=
"handleYearPick"
>
<button
</year-table>
@
click=
"prevMonth"
<month-table
v-show=
"currentView === 'date'"
:month=
"month"
class=
"el-picker-panel__icon-btn el-date-picker__prev-btn el-icon-arrow-left"
>
v-show=
"currentView === 'month'"
</button>
@
pick=
"handleMonthPick"
>
<span
</month-table>
@
click=
"showYearPicker"
</div>
class=
"el-date-picker__header-label"
>
{{
yearLabel
}}
</span>
<span
@
click=
"showMonthPicker"
v-show=
"currentView === 'date'"
class=
"el-date-picker__header-label"
:class=
"
{ active: currentView === 'month' }">
{{
month
+
1
}}
月
</span>
<button
@
click=
"nextYear"
class=
"el-picker-panel__icon-btn el-date-picker__next-btn el-icon-d-arrow-right"
>
</button>
<button
@
click=
"nextMonth"
v-show=
"currentView === 'date'"
class=
"el-picker-panel__icon-btn el-date-picker__next-btn el-icon-arrow-right"
>
</button>
</div>
<div
class=
"el-picker-panel__content"
>
<date-table
v-show=
"currentView === 'date'"
@
pick=
"handleDatePick"
:year=
"year"
:month=
"month"
:date=
"date"
:value=
"value"
:week=
"week"
:selection-mode=
"selectionMode"
:disabled-date=
"disabledDate"
>
</date-table>
<year-table
ref=
"yearTable"
:year=
"year"
v-show=
"currentView === 'year'"
@
pick=
"handleYearPick"
>
</year-table>
<month-table
:month=
"month"
v-show=
"currentView === 'month'"
@
pick=
"handleMonthPick"
>
</month-table>
</div>
</div>
</div>
</div>
</div>
<div
<div
class=
"el-picker-panel__footer"
class=
"el-picker-panel__footer"
v-show=
"footerVisible && currentView === 'date'"
>
v-show=
"footerVisible && currentView === 'date'"
>
<a
<a
href=
"JavaScript:"
href=
"JavaScript:"
class=
"el-picker-panel__link-btn"
class=
"el-picker-panel__link-btn"
@
click=
"changeToToday"
>
{{
$t
(
'
datepicker.today
'
)
}}
</a>
@
click=
"changeToToday"
>
{{
$t
(
'
datepicker.today
'
)
}}
</a>
<button
<button
class=
"el-picker-panel__btn"
class=
"el-picker-panel__btn"
@
click=
"confirm"
>
{{
$t
(
'
datepicker.confirm
'
)
}}
</button>
@
click=
"confirm"
>
{{
$t
(
'
datepicker.confirm
'
)
}}
</button>
</div>
</div>
</div>
</
div
>
</
transition
>
</
template
>
</
template
>
<
script
type=
"text/ecmascript-6"
>
<
script
type=
"text/ecmascript-6"
>
import
{
$t
,
formatDate
,
parseDate
}
from
'
../util
'
;
import
{
$t
,
formatDate
,
parseDate
}
from
'
../util
'
;
export
default
{
export
default
{
props
:
{
currentView
:
{
default
:
'
date
'
},
date
:
{
default
()
{
return
new
Date
();
}
},
disabledDate
:
{},
value
:
{},
showTime
:
Boolean
,
selectionMode
:
{
type
:
String
,
default
:
'
day
'
},
shortcuts
:
{},
visible
:
Boolean
},
watch
:
{
watch
:
{
value
(
newVal
)
{
value
(
newVal
)
{
if
(
this
.
selectionMode
===
'
day
'
&&
newVal
instanceof
Date
)
{
if
(
this
.
selectionMode
===
'
day
'
&&
newVal
instanceof
Date
)
{
...
@@ -144,7 +118,7 @@
...
@@ -144,7 +118,7 @@
},
},
timePickerVisible
(
val
)
{
timePickerVisible
(
val
)
{
if
(
val
)
this
.
$
refs
.
timepicker
.
ajustScrollTop
(
);
if
(
val
)
this
.
$
nextTick
(()
=>
this
.
$refs
.
timepicker
.
ajustScrollTop
()
);
},
},
selectionMode
(
newVal
)
{
selectionMode
(
newVal
)
{
...
@@ -163,11 +137,8 @@
...
@@ -163,11 +137,8 @@
}
}
},
},
ready
()
{
directives
:
{
if
(
this
.
date
&&
!
this
.
year
)
{
Clickoutside
:
require
(
'
main/utils/clickoutside
'
).
default
this
.
year
=
this
.
date
.
getFullYear
();
this
.
month
=
this
.
date
.
getMonth
();
}
},
},
methods
:
{
methods
:
{
...
@@ -276,8 +247,10 @@
...
@@ -276,8 +247,10 @@
this
.
resetDate
();
this
.
resetDate
();
},
},
handleYearPick
(
year
)
{
handleYearPick
(
year
,
close
=
true
)
{
this
.
year
=
year
;
this
.
year
=
year
;
if
(
!
close
)
return
;
this
.
date
.
setFullYear
(
year
);
this
.
date
.
setFullYear
(
year
);
if
(
this
.
selectionMode
===
'
year
'
)
{
if
(
this
.
selectionMode
===
'
year
'
)
{
this
.
$emit
(
'
pick
'
,
year
);
this
.
$emit
(
'
pick
'
,
year
);
...
@@ -311,6 +284,10 @@
...
@@ -311,6 +284,10 @@
this
.
year
=
this
.
date
.
getFullYear
();
this
.
year
=
this
.
date
.
getFullYear
();
this
.
month
=
this
.
date
.
getMonth
();
this
.
month
=
this
.
date
.
getMonth
();
}
}
},
closeTimePicker
()
{
this
.
timePickerVisible
=
false
;
}
}
},
},
...
@@ -321,14 +298,27 @@
...
@@ -321,14 +298,27 @@
DateTable
:
require
(
'
../basic/date-table
'
)
DateTable
:
require
(
'
../basic/date-table
'
)
},
},
compil
ed
()
{
mount
ed
()
{
if
(
this
.
selectionMode
===
'
month
'
)
{
if
(
this
.
selectionMode
===
'
month
'
)
{
this
.
currentView
=
'
month
'
;
this
.
currentView
=
'
month
'
;
}
}
if
(
this
.
date
&&
!
this
.
year
)
{
this
.
year
=
this
.
date
.
getFullYear
();
this
.
month
=
this
.
date
.
getMonth
();
}
},
},
data
()
{
data
()
{
return
{
return
{
date
:
new
Date
(),
value
:
''
,
showTime
:
false
,
selectionMode
:
'
day
'
,
shortcuts
:
''
,
visible
:
false
,
currentView
:
'
date
'
,
disabledDate
:
''
,
year
:
null
,
year
:
null
,
month
:
null
,
month
:
null
,
week
:
null
,
week
:
null
,
...
...
packages/date-picker/src/panel/time-range.vue
View file @
6ad98f7e
<
template
>
<
template
>
<div
<transition
name=
"md-fade-bottom"
>
v-show=
"visible"
<div
transition=
"md-fade-bottom"
v-show=
"visible"
class=
"el-time-range-picker el-picker-panel"
>
class=
"el-time-range-picker el-picker-panel"
>
<div
class=
"el-time-range-picker__content"
>
<div
class=
"el-time-range-picker__content"
>
<div
class=
"el-time-range-picker__cell"
>
<div
class=
"el-time-range-picker__cell"
>
<div
class=
"el-time-range-picker__header"
>
开始时间
</div>
<div
class=
"el-time-range-picker__header"
>
开始时间
</div>
<div
class=
"el-time-range-picker__body el-time-panel__content"
>
<div
class=
"el-time-range-picker__body el-time-panel__content"
>
<time-spinner
<time-spinner
ref=
"minSpinner"
ref=
"minSpinner"
:show-seconds=
"showSeconds"
:show-seconds=
"showSeconds"
@
change=
"handleMinChange"
@
change=
"handleMinChange"
@
select-range=
"setMinSelectionRange"
@
select-range=
"setMinSelectionRange"
:hours=
"minHours"
:hours=
"minHours"
:minutes=
"minMinutes"
:minutes=
"minMinutes"
:seconds=
"minSeconds"
>
:seconds=
"minSeconds"
>
</time-spinner>
</time-spinner>
</div>
</div>
</div>
</div
>
<div
class=
"el-time-range-picker__cell"
>
<div
class=
"el-time-range-picker__cell"
>
<div
class=
"el-time-range-picker__header"
>
结束时间
</div
>
<div
class=
"el-time-range-picker__header"
>
结束时间
</div
>
<div
class=
"el-time-range-picker__body el-time-panel__content"
>
<div
class=
"el-time-range-picker__body el-time-panel__content"
>
<time-spinner
<time-spinner
ref=
"maxSpinner"
ref=
"maxSpinner
"
:show-seconds=
"showSeconds
"
:show-seconds=
"showSeconds
"
@
change=
"handleMaxChange
"
@
change=
"handleMaxCh
ange"
@
select-range=
"setMaxSelectionR
ange"
@
select-range=
"setMaxSelectionRange
"
:hours=
"maxHours
"
:hours=
"maxHour
s"
:minutes=
"maxMinute
s"
:minutes=
"maxMinutes"
:seconds=
"maxSeconds"
>
:seconds=
"maxSeconds"
>
</time-spinner
>
</
time-spinner
>
</
div
>
</div>
</div>
</div>
</div>
<div
class=
"el-time-panel__footer"
>
<button
class=
"el-time-panel__btn cancel"
@
click=
"handleCancel()"
>
取消
</button>
<button
class=
"el-time-panel__btn confirm"
@
click=
"handleConfirm()"
:disabled=
"btnDisabled"
>
确定
</button>
</div>
</div>
</div>
<div
class=
"el-time-panel__footer"
>
</transition>
<button
class=
"el-time-panel__btn cancel"
@
click=
"handleCancel()"
>
取消
</button>
<button
class=
"el-time-panel__btn confirm"
@
click=
"handleConfirm()"
:disabled=
"btnDisabled"
>
确定
</button>
</div>
</div>
</
template
>
</
template
>
<
script
type=
"text/ecmascript-6"
>
<
script
type=
"text/ecmascript-6"
>
...
@@ -62,127 +63,36 @@
...
@@ -62,127 +63,36 @@
TimeSpinner
:
require
(
'
../basic/time-spinner
'
)
TimeSpinner
:
require
(
'
../basic/time-spinner
'
)
},
},
props
:
{
minTime
:
{
default
()
{
return
new
Date
();
}
},
maxTime
:
{
default
()
{
const
date
=
new
Date
();
date
.
setHours
(
date
.
getHours
()
+
1
);
return
date
;
}
},
format
:
{
default
:
'
HH:mm:ss
'
},
visible
:
Boolean
},
computed
:
{
computed
:
{
showSeconds
()
{
showSeconds
()
{
return
(
this
.
format
||
''
).
indexOf
(
'
ss
'
)
!==
-
1
;
return
(
this
.
format
||
''
).
indexOf
(
'
ss
'
)
!==
-
1
;
},
minHours
:
{
get
()
{
if
(
this
.
minTime
)
{
return
this
.
minTime
.
getHours
();
}
return
0
;
},
set
(
hours
)
{
if
(
this
.
minTime
)
{
this
.
minTime
.
setHours
(
hours
);
}
}
},
minMinutes
:
{
get
()
{
if
(
this
.
minTime
)
{
return
this
.
minTime
.
getMinutes
();
}
return
0
;
},
set
(
minutes
)
{
if
(
this
.
minTime
)
{
this
.
minTime
.
setMinutes
(
minutes
);
}
}
},
minSeconds
:
{
get
()
{
if
(
this
.
minTime
)
{
return
this
.
minTime
.
getSeconds
();
}
return
0
;
},
set
(
seconds
)
{
if
(
this
.
minTime
)
{
this
.
minTime
.
setSeconds
(
seconds
);
}
}
},
maxHours
:
{
get
()
{
if
(
this
.
maxTime
)
{
return
this
.
maxTime
.
getHours
();
}
return
0
;
},
set
(
hours
)
{
if
(
this
.
maxTime
)
{
this
.
maxTime
.
setHours
(
hours
);
}
}
},
maxMinutes
:
{
get
()
{
if
(
this
.
maxTime
)
{
return
this
.
maxTime
.
getMinutes
();
}
return
0
;
},
set
(
minutes
)
{
if
(
this
.
maxTime
)
{
this
.
maxTime
.
setMinutes
(
minutes
);
}
}
},
maxSeconds
:
{
get
()
{
if
(
this
.
maxTime
)
{
return
this
.
maxTime
.
getSeconds
();
}
return
0
;
},
set
(
seconds
)
{
if
(
this
.
maxTime
)
{
this
.
maxTime
.
setSeconds
(
seconds
);
}
}
}
}
},
},
data
()
{
data
()
{
const
minTime
=
new
Date
();
const
date
=
new
Date
();
date
.
setHours
(
date
.
getHours
()
+
1
);
const
maxTime
=
date
;
return
{
return
{
btnDisabled
:
isDisabled
(
this
.
minTime
,
this
.
maxTime
)
minTime
:
minTime
,
maxTime
:
maxTime
,
btnDisabled
:
isDisabled
(
minTime
,
maxTime
),
maxHours
:
minTime
.
getHours
(),
maxMinutes
:
minTime
.
getMinutes
(),
maxSeconds
:
minTime
.
getSeconds
(),
minHours
:
maxTime
.
getHours
(),
minMinutes
:
maxTime
.
getMinutes
(),
minSeconds
:
maxTime
.
getSeconds
(),
format
:
'
HH:mm:ss
'
,
visible
:
false
};
};
},
},
methods
:
{
methods
:
{
handleCancel
()
{
handleCancel
()
{
this
.
$emit
(
'
pick
'
,
null
);
this
.
$emit
(
'
pick
'
);
},
},
handleChange
()
{
handleChange
()
{
...
@@ -192,16 +102,35 @@
...
@@ -192,16 +102,35 @@
},
},
handleMaxChange
(
date
)
{
handleMaxChange
(
date
)
{
if
(
date
.
hours
!==
undefined
)
this
.
maxHours
=
date
.
hours
;
if
(
date
.
hours
!==
undefined
)
{
if
(
date
.
minutes
!==
undefined
)
this
.
maxMinutes
=
date
.
minutes
;
this
.
maxTime
.
setHours
(
date
.
hours
);
if
(
date
.
seconds
!==
undefined
)
this
.
maxSeconds
=
date
.
seconds
;
this
.
maxHours
=
this
.
maxTime
.
getHours
();
}
if
(
date
.
minutes
!==
undefined
)
{
this
.
maxTime
.
setMinutes
(
date
.
minutes
);
this
.
maxMinutes
=
this
.
maxTime
.
getMinutes
();
}
if
(
date
.
seconds
!==
undefined
)
{
this
.
maxTime
.
setSeconds
(
date
.
seconds
);
this
.
maxSeconds
=
this
.
maxTime
.
getSeconds
();
}
this
.
handleChange
();
this
.
handleChange
();
},
},
handleMinChange
(
date
)
{
handleMinChange
(
date
)
{
if
(
date
.
hours
!==
undefined
)
this
.
minHours
=
date
.
hours
;
if
(
date
.
hours
!==
undefined
)
{
if
(
date
.
minutes
!==
undefined
)
this
.
minMinutes
=
date
.
minutes
;
this
.
minTime
.
setHours
(
date
.
hours
);
if
(
date
.
seconds
!==
undefined
)
this
.
minSeconds
=
date
.
seconds
;
this
.
minHours
=
this
.
minTime
.
getHours
();
}
if
(
date
.
minutes
!==
undefined
)
{
this
.
minTime
.
setMinutes
(
date
.
minutes
);
this
.
minMinutes
=
this
.
minTime
.
getMinutes
();
}
if
(
date
.
seconds
!==
undefined
)
{
this
.
minTime
.
setSeconds
(
date
.
seconds
);
this
.
minSeconds
=
this
.
minTime
.
getSeconds
();
}
this
.
handleChange
();
this
.
handleChange
();
},
},
...
@@ -228,8 +157,8 @@
...
@@ -228,8 +157,8 @@
this
.
$refs
.
maxSpinner
.
ajustScrollTop
();
this
.
$refs
.
maxSpinner
.
ajustScrollTop
();
},
},
focusEditor
(
...
args
)
{
focusEditor
(
val
)
{
return
this
.
$refs
.
minSpinner
.
focusEditor
(
...
args
);
return
this
.
$refs
.
minSpinner
.
focusEditor
(
val
);
}
}
},
},
...
...
packages/date-picker/src/panel/time-select.vue
View file @
6ad98f7e
<
template
>
<
template
>
<div
<transition
name=
"md-fade-bottom"
>
v-show=
"visible"
<div
class=
"el-picker-panel time-select"
v-show=
"visible"
transition=
"md-fade-bottom"
>
class=
"el-picker-panel time-select"
>
<div
class=
"el-picker-panel__content"
>
<div
class=
"el-picker-panel__content"
>
<div
class=
"time-select-item"
<div
class=
"time-select-item"
v-for=
"item in items"
v-for=
"item in items"
:class=
"
{ selected: value === item.value, disabled: item.disabled }"
:class=
"
{ selected: value === item.value, disabled: item.disabled }"
:disabled="item.disabled"
:disabled="item.disabled"
@click="handleClick(item)">
@click="handleClick(item)">
{{
item
.
value
}}
{{
item
.
value
}}
</div>
</div>
</div>
</div>
</div>
</
div
>
</
transition
>
</
template
>
</
template
>
<
script
type=
"text/ecmascript-6"
>
<
script
type=
"text/ecmascript-6"
>
...
@@ -67,26 +68,6 @@
...
@@ -67,26 +68,6 @@
};
};
export
default
{
export
default
{
props
:
{
start
:
{
default
:
'
09:00
'
},
end
:
{
default
:
'
18:00
'
},
step
:
{
default
:
'
00:30
'
},
value
:
{},
visible
:
Boolean
,
minTime
:
{}
},
watch
:
{
watch
:
{
minTime
(
val
)
{
minTime
(
val
)
{
if
(
this
.
value
&&
val
&&
compareTime
(
this
.
value
,
val
)
===
-
1
)
{
if
(
this
.
value
&&
val
&&
compareTime
(
this
.
value
,
val
)
===
-
1
)
{
...
@@ -103,6 +84,17 @@
...
@@ -103,6 +84,17 @@
}
}
},
},
data
()
{
return
{
start
:
'
09:00
'
,
end
:
'
18:00
'
,
step
:
'
00:30
'
,
value
:
''
,
visible
:
false
,
minTime
:
''
};
},
computed
:
{
computed
:
{
items
()
{
items
()
{
const
start
=
this
.
start
;
const
start
=
this
.
start
;
...
...
packages/date-picker/src/panel/time.vue
View file @
6ad98f7e
<
template
>
<
template
>
<div
<transition
name=
"md-fade-bottom"
>
v-show=
"visible"
<div
transition=
"md-fade-bottom"
v-show=
"visible"
class=
"el-time-panel"
>
class=
"el-time-panel"
>
<div
class=
"el-time-panel__content"
>
<div
class=
"el-time-panel__content"
>
<time-spinner
<time-spinner
ref=
"spinner"
ref=
"spinner"
@
change=
"handleChange"
@
change=
"handleChange"
:show-seconds=
"showSeconds"
:show-seconds=
"showSeconds"
@
select-range=
"setSelectionRange"
@
select-range=
"setSelectionRange"
:hours=
"hours"
:hours=
"hours"
:minutes=
"minutes"
:minutes=
"minutes"
:seconds=
"seconds"
>
:seconds=
"seconds"
>
</time-spinner>
</time-spinner>
</div>
<div
class=
"el-time-panel__footer"
>
<button
class=
"el-time-panel__btn cancel"
@
click=
"handleCancel()"
>
取消
</button>
<button
class=
"el-time-panel__btn confirm"
@
click=
"handleConfirm()"
>
确定
</button>
</div>
</div>
</div>
<div
class=
"el-time-panel__footer"
>
</transition>
<button
class=
"el-time-panel__btn
cancel"
@
click=
"handleCancel()"
>
取消
</button>
<button
class=
"el-time-panel__btn confirm"
@
click=
"handleConfirm()"
>
确定
</button>
</div>
</div>
</
template
>
</
template
>
<
script
type=
"text/ecmascript-6"
>
<
script
type=
"text/ecmascript-6"
>
import
{
limitRange
}
from
'
../util
'
;
import
{
limitRange
}
from
'
../util
'
;
import
Vue
from
'
vue
'
;
export
default
{
export
default
{
components
:
{
components
:
{
...
@@ -34,33 +36,41 @@
...
@@ -34,33 +36,41 @@
},
},
props
:
{
props
:
{
format
:
{
date
:
{
default
:
'
HH:mm:ss
'
default
:
new
Date
()
},
},
value
:
{},
visible
:
false
visible
:
Boolean
,
selectableRange
:
{}
},
},
watch
:
{
watch
:
{
value
(
newVal
)
{
value
(
newVal
)
{
let
date
;
if
(
newVal
instanceof
Date
)
{
if
(
newVal
instanceof
Date
)
{
this
.
date
=
newVal
;
date
=
limitRange
(
newVal
,
this
.
selectableRange
)
;
}
else
if
(
!
newVal
)
{
}
else
if
(
!
newVal
)
{
this
.
date
=
new
Date
();
date
=
new
Date
();
}
}
this
.
hours
=
date
.
getHours
();
this
.
minutes
=
date
.
getMinutes
();
this
.
seconds
=
date
.
getSeconds
();
this
.
handleConfirm
(
true
);
},
selectableRange
(
val
)
{
this
.
$refs
.
spinner
.
selectableRange
=
val
;
}
}
},
},
data
()
{
data
()
{
return
{
return
{
date
:
new
Date
(),
format
:
'
HH:mm:ss
'
,
value
:
''
,
hours
:
0
,
hours
:
0
,
minutes
:
0
,
minutes
:
0
,
seconds
:
0
seconds
:
0
,
selectableRange
:
[]
};
};
},
},
...
@@ -97,20 +107,13 @@
...
@@ -97,20 +107,13 @@
},
},
handleConfirm
(
visible
=
false
,
first
)
{
handleConfirm
(
visible
=
false
,
first
)
{
const
spinner
=
this
.
$refs
.
spinner
;
const
date
=
new
Date
(
limitRange
(
this
.
date
,
this
.
selectableRange
));
let
date
=
new
Date
();
const
{
hours
,
minutes
,
seconds
}
=
spinner
;
date
.
setHours
(
hours
);
date
.
setMinutes
(
minutes
);
date
.
setSeconds
(
seconds
);
this
.
date
=
date
=
limitRange
(
date
,
this
.
selectableRange
);
this
.
$emit
(
'
pick
'
,
date
,
visible
,
first
);
this
.
$emit
(
'
pick
'
,
date
,
visible
,
first
);
},
},
focusEditor
(
...
args
)
{
focusEditor
(
val
)
{
return
this
.
$refs
.
spinner
.
focusEditor
(
...
args
);
return
this
.
$refs
.
spinner
.
focusEditor
(
val
);
},
},
ajustScrollTop
()
{
ajustScrollTop
()
{
...
@@ -119,13 +122,15 @@
...
@@ -119,13 +122,15 @@
},
},
created
()
{
created
()
{
!
this
.
date
&&
Vue
.
set
(
this
,
'
date
'
,
new
Date
());
!
this
.
visible
&&
Vue
.
set
(
this
,
'
visible
'
,
false
);
this
.
hours
=
this
.
date
.
getHours
();
this
.
hours
=
this
.
date
.
getHours
();
this
.
minutes
=
this
.
date
.
getMinutes
();
this
.
minutes
=
this
.
date
.
getMinutes
();
this
.
seconds
=
this
.
date
.
getSeconds
();
this
.
seconds
=
this
.
date
.
getSeconds
();
},
},
mounted
()
{
mounted
()
{
this
.
$refs
.
spinner
.
selectableRange
=
this
.
selectableRange
;
this
.
$nextTick
(()
=>
this
.
handleConfirm
(
true
,
true
));
this
.
$nextTick
(()
=>
this
.
handleConfirm
(
true
,
true
));
}
}
};
};
...
...
packages/date-picker/src/util/index.js
View file @
6ad98f7e
...
@@ -143,7 +143,7 @@ export const getRangeHours = function(ranges) {
...
@@ -143,7 +143,7 @@ export const getRangeHours = function(ranges) {
};
};
export
const
limitRange
=
function
(
date
,
ranges
)
{
export
const
limitRange
=
function
(
date
,
ranges
)
{
if
(
!
ranges
)
return
date
;
if
(
!
ranges
||
!
ranges
.
length
)
return
date
;
const
len
=
ranges
.
length
;
const
len
=
ranges
.
length
;
const
format
=
'
HH:mm:ss
'
;
const
format
=
'
HH:mm:ss
'
;
...
...
packages/pagination/src/pagination.js
View file @
6ad98f7e
...
@@ -49,7 +49,7 @@ export default {
...
@@ -49,7 +49,7 @@ export default {
const
TEMPLATE_MAP
=
{
const
TEMPLATE_MAP
=
{
prev
:
<
prev
><
/prev>
,
prev
:
<
prev
><
/prev>
,
jumper
:
<
jumper
><
/jumper>
,
jumper
:
<
jumper
><
/jumper>
,
pager
:
<
pager
prop
-
currentPage
=
{
this
.
internalCurrentPage
}
prop
-
pageCount
=
{
this
.
pageCount
}
on
-
currentChange
=
{
this
.
handleCurrentChange
}
><
/pager>
,
pager
:
<
pager
currentPage
=
{
this
.
internalCurrentPage
}
pageCount
=
{
this
.
pageCount
}
on
-
currentChange
=
{
this
.
handleCurrentChange
}
><
/pager>
,
next
:
<
next
><
/next>
,
next
:
<
next
><
/next>
,
sizes
:
<
sizes
><
/sizes>
,
sizes
:
<
sizes
><
/sizes>
,
slot
:
<
slot
><
/slot>
,
slot
:
<
slot
><
/slot>
,
...
@@ -118,15 +118,15 @@ export default {
...
@@ -118,15 +118,15 @@ export default {
return
(
return
(
<
span
class
=
"
el-pagination__sizes
"
>
<
span
class
=
"
el-pagination__sizes
"
>
<
el
-
select
<
el
-
select
prop
-
size
=
"
small
"
size
=
"
small
"
prop
-
value
=
{
this
.
$parent
.
internalPageSize
}
value
=
{
this
.
$parent
.
internalPageSize
}
on
-
change
=
{
this
.
handleChange
}
on
-
change
=
{
this
.
handleChange
}
prop
-
width
=
{
110
}
>
width
=
{
110
}
>
{
{
this
.
$parent
.
pageSizes
.
map
(
item
=>
this
.
$parent
.
pageSizes
.
map
(
item
=>
<
el
-
option
<
el
-
option
prop
-
value
=
{
item
}
value
=
{
item
}
prop
-
label
=
{
item
+
'
条/页
'
}
>
label
=
{
item
+
'
条/页
'
}
>
<
/el-option
>
<
/el-option
>
)
)
}
}
...
...
packages/select/src/select.vue
View file @
6ad98f7e
...
@@ -46,16 +46,17 @@
...
@@ -46,16 +46,17 @@
:style=
"
{ 'width': inputWidth + 'px' }"
:style=
"
{ 'width': inputWidth + 'px' }"
v-element-clickoutside="handleClose">
v-element-clickoutside="handleClose">
</el-input>
</el-input>
<el-select-menu
<transition
name=
"md-fade-bottom"
>
ref=
"popper"
<el-select-menu
v-show=
"visible && nodataText !== false"
ref=
"popper"
transition=
"fade"
v-show=
"visible && nodataText !== false"
:style=
"
{ 'width': dropdownWidth ? dropdownWidth + 'px' : '100%' }">
:style=
"
{ 'width': dropdownWidth ? dropdownWidth + 'px' : '100%' }">
<ul
class=
"el-select-dropdown__list"
v-show=
"options.length > 0 && filteredOptionsCount > 0"
>
<ul
class=
"el-select-dropdown__list"
v-show=
"options.length > 0 && filteredOptionsCount > 0"
>
<slot></slot>
<slot></slot>
</ul>
</ul>
<p
class=
"el-select-dropdown__nodata"
v-if=
"nodataText"
>
{{
nodataText
}}
</p>
<p
class=
"el-select-dropdown__nodata"
v-if=
"nodataText"
>
{{
nodataText
}}
</p>
</el-select-menu>
</el-select-menu>
</transition>
</div>
</div>
</
template
>
</
template
>
...
@@ -195,7 +196,7 @@
...
@@ -195,7 +196,7 @@
this
.
valueChangeBySelected
=
false
;
this
.
valueChangeBySelected
=
false
;
return
;
return
;
}
}
if
(
this
.
multiple
&&
Object
.
prototype
.
toString
.
call
(
val
)
===
'
[object Array]
'
)
{
if
(
this
.
multiple
&&
Array
.
isArray
(
val
)
)
{
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
this
.
resetInputHeight
();
this
.
resetInputHeight
();
});
});
...
...
src/index.js
View file @
6ad98f7e
// import Group from '../packages/group/index.js';
// import Group from '../packages/group/index.js';
// import SelectDropdown from '../packages/select-dropdown/index.js';
// import SelectDropdown from '../packages/select-dropdown/index.js';
//
import Pagination from '../packages/pagination/index.js';
import
Pagination
from
'
../packages/pagination/index.js
'
;
// import Dialog from '../packages/dialog/index.js';
// import Dialog from '../packages/dialog/index.js';
// import Cascader from '../packages/cascader/index.js';
// import Cascader from '../packages/cascader/index.js';
// import Autocomplete from '../packages/autocomplete/index.js';
// import Autocomplete from '../packages/autocomplete/index.js';
...
@@ -20,7 +20,7 @@
...
@@ -20,7 +20,7 @@
// import Switch from '../packages/switch/index.js';
// import Switch from '../packages/switch/index.js';
import
Select
from
'
../packages/select/index.js
'
;
import
Select
from
'
../packages/select/index.js
'
;
import
Option
from
'
../packages/option/index.js
'
;
import
Option
from
'
../packages/option/index.js
'
;
//
import OptionGroup from '../packages/option-group/index.js';
import
OptionGroup
from
'
../packages/option-group/index.js
'
;
// import Button from '../packages/button/index.js';
// import Button from '../packages/button/index.js';
// import ButtonGroup from '../packages/button-group/index.js';
// import ButtonGroup from '../packages/button-group/index.js';
// import Table from '../packages/table/index.js';
// import Table from '../packages/table/index.js';
...
@@ -37,7 +37,7 @@ import TimePicker from '../packages/time-picker/index.js';
...
@@ -37,7 +37,7 @@ import TimePicker from '../packages/time-picker/index.js';
// import FormItem from '../packages/form-item/index.js';
// import FormItem from '../packages/form-item/index.js';
// import Tabs from '../packages/tabs/index.js';
// import Tabs from '../packages/tabs/index.js';
// import TabPane from '../packages/tab-pane/index.js';
// import TabPane from '../packages/tab-pane/index.js';
//
import Tag from '../packages/tag/index.js';
import
Tag
from
'
../packages/tag/index.js
'
;
// import Tree from '../packages/tree/index.js';
// import Tree from '../packages/tree/index.js';
// import Alert from '../packages/alert/index.js';
// import Alert from '../packages/alert/index.js';
// import Notification from '../packages/notification/index.js';
// import Notification from '../packages/notification/index.js';
...
@@ -55,7 +55,7 @@ const install = function(Vue) {
...
@@ -55,7 +55,7 @@ const install = function(Vue) {
// Vue.component(Group.name, Group);
// Vue.component(Group.name, Group);
// Vue.component(SelectDropdown.name, SelectDropdown);
// Vue.component(SelectDropdown.name, SelectDropdown);
//
Vue.component(Pagination.name, Pagination);
Vue
.
component
(
Pagination
.
name
,
Pagination
);
// Vue.component(Dialog.name, Dialog);
// Vue.component(Dialog.name, Dialog);
// Vue.component(Cascader.name, Cascader);
// Vue.component(Cascader.name, Cascader);
// Vue.component(Autocomplete.name, Autocomplete);
// Vue.component(Autocomplete.name, Autocomplete);
...
@@ -75,7 +75,7 @@ const install = function(Vue) {
...
@@ -75,7 +75,7 @@ const install = function(Vue) {
// Vue.component(Switch.name, Switch);
// Vue.component(Switch.name, Switch);
Vue
.
component
(
Select
.
name
,
Select
);
Vue
.
component
(
Select
.
name
,
Select
);
Vue
.
component
(
Option
.
name
,
Option
);
Vue
.
component
(
Option
.
name
,
Option
);
//
Vue.component(OptionGroup.name, OptionGroup);
Vue
.
component
(
OptionGroup
.
name
,
OptionGroup
);
// Vue.component(Button.name, Button);
// Vue.component(Button.name, Button);
// Vue.component(ButtonGroup.name, ButtonGroup);
// Vue.component(ButtonGroup.name, ButtonGroup);
// Vue.component(Table.name, Table);
// Vue.component(Table.name, Table);
...
@@ -91,7 +91,7 @@ const install = function(Vue) {
...
@@ -91,7 +91,7 @@ const install = function(Vue) {
// Vue.component(FormItem.name, FormItem);
// Vue.component(FormItem.name, FormItem);
// Vue.component(Tabs.name, Tabs);
// Vue.component(Tabs.name, Tabs);
// Vue.component(TabPane.name, TabPane);
// Vue.component(TabPane.name, TabPane);
//
Vue.component(Tag.name, Tag);
Vue
.
component
(
Tag
.
name
,
Tag
);
// Vue.component(Tree.name, Tree);
// Vue.component(Tree.name, Tree);
// Vue.component(Alert.name, Alert);
// Vue.component(Alert.name, Alert);
// Vue.component(Slider.name, Slider);
// Vue.component(Slider.name, Slider);
...
@@ -120,7 +120,7 @@ module.exports = {
...
@@ -120,7 +120,7 @@ module.exports = {
install
,
install
,
// Group,
// Group,
// SelectDropdown,
// SelectDropdown,
//
Pagination,
Pagination
,
// Dialog,
// Dialog,
// Cascader,
// Cascader,
// Autocomplete,
// Autocomplete,
...
@@ -140,7 +140,7 @@ module.exports = {
...
@@ -140,7 +140,7 @@ module.exports = {
// Switch,
// Switch,
Select
,
Select
,
Option
,
Option
,
//
OptionGroup,
OptionGroup
,
// Button,
// Button,
// ButtonGroup,
// ButtonGroup,
// Table,
// Table,
...
@@ -157,7 +157,7 @@ module.exports = {
...
@@ -157,7 +157,7 @@ module.exports = {
// FormItem,
// FormItem,
// Tabs,
// Tabs,
// TabPane,
// TabPane,
// Tag,
Tag
// Tree,
// Tree,
// Alert,
// Alert,
// Notification,
// Notification,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment