diff --git a/src/components/date-picker/base/date-table.vue b/src/components/date-picker/base/date-table.vue
index 6fccf47..07beb3e 100644
--- a/src/components/date-picker/base/date-table.vue
+++ b/src/components/date-picker/base/date-table.vue
@@ -1,43 +1,34 @@
-
-
-
- |
- 日 |
- 一 |
- 二 |
- 三 |
- 四 |
- 五 |
- 六 |
-
-
- {{ cell.text }} |
-
-
-
+
+ 日一二三四五六
+
+ {{ cell.text }}
+
\ No newline at end of file
diff --git a/src/components/date-picker/panel/date.vue b/src/components/date-picker/panel/date.vue
index 24b17a5..fd971d2 100644
--- a/src/components/date-picker/panel/date.vue
+++ b/src/components/date-picker/panel/date.vue
@@ -32,7 +32,14 @@
+ v-show="currentView === 'date'"
+ :year="year"
+ :month="month"
+ :date="date"
+ :value="value"
+ :week="week"
+ :selection-mode="selectionMode"
+ :disabled-date="disabledDate">
\ No newline at end of file
diff --git a/src/components/date-picker/picker.vue b/src/components/date-picker/picker.vue
index d2c5a77..34f39e7 100644
--- a/src/components/date-picker/picker.vue
+++ b/src/components/date-picker/picker.vue
@@ -27,6 +27,7 @@
import Drop from '../../components/select/dropdown.vue';
import clickoutside from '../../directives/clickoutside';
import { oneOf } from '../../utils/assist';
+ import { formatDate } from './util';
const prefixCls = 'ivu-date-picker';
@@ -90,7 +91,8 @@
showClose: false,
visualValue: '',
visible: false,
- picker: null
+ picker: null,
+ internalValue: ''
}
},
computed: {
@@ -126,6 +128,13 @@
showPicker () {
if (!this.picker) {
this.picker = new Vue(this.panel).$mount(this.$els.picker);
+ this.picker.value = this.internalValue;
+ if (this.format) this.picker.format = this.format;
+
+ const options = this.options;
+ for (const option in options) {
+ this.picker[option] = options[option];
+ }
}
}
},
@@ -137,6 +146,12 @@
} else {
this.$refs.drop.destroy();
}
+ },
+ value: {
+ immediate: true,
+ handler (val) {
+ this.internalValue = formatDate(val);
+ }
}
},
beforeDestroy () {
diff --git a/src/components/date-picker/picker/date-picker.js b/src/components/date-picker/picker/date-picker.js
index d6bd690..79e77e3 100644
--- a/src/components/date-picker/picker/date-picker.js
+++ b/src/components/date-picker/picker/date-picker.js
@@ -19,9 +19,20 @@ export default {
return oneOf(value, ['year', 'month', 'week', 'date', 'daterange', 'datetime', 'datetimerange']);
},
default: 'date'
+ },
+ value: {
+ type: [String, Array]
}
},
- created() {
+ created () {
+ if (!this.value) {
+ if (this.type === 'daterange' || this.type === 'datetimerange') {
+ this.value = ['',''];
+ } else {
+ this.value = '';
+ }
+ }
+
this.panel = getPanel(this.type);
}
}
\ No newline at end of file
diff --git a/src/styles/components/date-picker.less b/src/styles/components/date-picker.less
new file mode 100644
index 0000000..ff8adb0
--- /dev/null
+++ b/src/styles/components/date-picker.less
@@ -0,0 +1,103 @@
+@date-picker-prefix-cls: ~"@{css-prefix}date-picker";
+
+.@{date-picker-prefix-cls} {
+ position: relative;
+ .@{select-dropdown-prefix-cls} {
+ width: auto;
+ overflow: visible;
+ max-height: none;
+ }
+ &-cells{
+ width: 196px;
+ margin: 10px;
+ span{
+ display: inline-block;
+ width: 24px;
+ height: 24px;
+
+ em{
+ display: inline-block;
+ width: 24px;
+ height: 24px;
+ line-height: 24px;
+ margin: 2px;
+ font-style: normal;
+ border-radius: @btn-border-radius-small;
+ text-align: center;
+ transition: all @transition-time @ease-in-out;
+ }
+ }
+ &-header span{
+ line-height: 24px;
+ text-align: center;
+ margin: 2px;
+ color: @btn-disable-color;
+ }
+ &-cell{
+ span&{
+ width: 28px;
+ height: 28px;
+ cursor: pointer;
+ }
+ &:hover{
+ em{
+ background: @date-picker-cell-hover-bg;
+ }
+ }
+ &-prev-month,&-next-month{
+ em{
+ color: @btn-disable-color;
+ }
+ &:hover{
+ em{
+ background: transparent;
+ }
+ }
+ }
+ span&-disabled,span&-disabled:hover{
+ cursor: @cursor-disabled;
+ background: @btn-disable-bg;
+ color: @btn-disable-color;
+ em{
+ color: inherit;
+ background: inherit;
+ }
+ }
+ &-today{
+ em {
+ position: relative;
+ &:after{
+ content: '';
+ display: block;
+ width: 6px;
+ height: 6px;
+ border-radius: 50%;
+ background: @primary-color;
+ position: absolute;
+ top: 1px;
+ right: 1px;
+ }
+ }
+ }
+ &-selected,&-selected:hover {
+ em{
+ background: @primary-color;
+ color: #fff;
+ }
+ }
+ span&-disabled&-selected{
+ em {
+ background: @btn-disable-color;
+ color: @btn-disable-bg;
+ }
+ }
+ &-today&-selected{
+ em{
+ &:after{
+ background: #fff;
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/styles/components/index.less b/src/styles/components/index.less
index 79404b6..a38a72d 100644
--- a/src/styles/components/index.less
+++ b/src/styles/components/index.less
@@ -31,4 +31,5 @@
@import "table";
@import "dropdown";
@import "tabs";
-@import "menu";
\ No newline at end of file
+@import "menu";
+@import "date-picker";
\ No newline at end of file
diff --git a/src/styles/themes/default/custom.less b/src/styles/themes/default/custom.less
index 5c5cceb..066481c 100644
--- a/src/styles/themes/default/custom.less
+++ b/src/styles/themes/default/custom.less
@@ -43,6 +43,7 @@
@table-td-hover-bg : #ebf7ff;
@table-td-highlight-bg : #ebf7ff;
@menu-dark-active-bg : #313540;
+@date-picker-cell-hover-bg : #e1f0fe;
// Shadow
@shadow-color : rgba(0, 0, 0, .2);
diff --git a/test/routers/date.vue b/test/routers/date.vue
index 2190e02..cb599a1 100644
--- a/test/routers/date.vue
+++ b/test/routers/date.vue
@@ -1,13 +1,21 @@
-
+