@@ -458,33 +458,45 @@ var getPanelPosition = exports.getPanelPosition = function getPanelPosition(pane
458458
459459 var top = 0 ;
460460 var left = 0 ;
461+ var isMinusOffsetLeft = false ;
462+ var isMinusOffsetTop = false ;
461463
462464 var topDiff = docHeight - panelDefTop ;
463465 if ( topDiff < panelHeight ) {
464466 if ( wrapTop > panelHeight ) {
465467 top = - ( panelHeight + 10 ) ;
468+ isMinusOffsetTop = true ;
466469 } else {
467- top = topDiff - panelHeight ;
470+ // topDiff - panelHeight
471+ // 偏移到上边界
472+ top = - panelHeight ;
473+ isMinusOffsetTop = false ;
468474 }
469475 } else {
470476 top = wrapHeight ;
477+ isMinusOffsetTop = false ;
471478 }
472479 // fix #7
473480 var leftDiff = docWidth - panelDefRight ;
474481 if ( leftDiff < 0 ) {
475482 if ( docWidth > wrapLeft ) {
476483 left = leftDiff ;
484+ isMinusOffsetLeft = true ;
477485 } else {
478486 // 偏移到左边界
479487 left = - panelWidth ;
488+ isMinusOffsetLeft = false ;
480489 }
481490 } else {
482491 left = 0 ;
492+ isMinusOffsetLeft = false ;
483493 }
484494
485495 return {
486496 top : top ,
487- left : left
497+ left : left ,
498+ isMinusOffsetTop : isMinusOffsetTop ,
499+ isMinusOffsetLeft : isMinusOffsetLeft
488500 } ;
489501} ;
490502
@@ -800,8 +812,6 @@ exports.default = {
800812 default : ' - '
801813 } ,
802814
803- date : { } ,
804-
805815 lang : {
806816 type : String ,
807817 default : 'cn' ,
@@ -831,6 +841,23 @@ exports.default = {
831841 default : function _default ( ) {
832842 return { } ;
833843 }
844+ } ,
845+
846+ // since 2.2.0
847+ defaultValue : {
848+ // default date when open the datepicker
849+ } ,
850+
851+ // since 2.2.0
852+ /* 用于计算 top/left 值时的额外偏移量 */
853+ offsetLeft : {
854+ type : Number ,
855+ default : 0
856+ } ,
857+
858+ offsetTop : {
859+ type : Number ,
860+ default : 0
834861 }
835862 } ,
836863
@@ -909,6 +936,11 @@ exports.default = {
909936
910937 return [ leftDate , rightDate ] ;
911938 }
939+ // since 2.2.0
940+ if ( ! this . unlinkPanels && ( 0 , _utils . isDate ) ( this . defaultValue ) ) {
941+ var _leftDate = new Date ( this . defaultValue ) ;
942+ return [ _leftDate , ( 0 , _utils . nextMonth ) ( _leftDate , 1 ) ] ;
943+ }
912944
913945 return [ new Date ( ) , ( 0 , _utils . nextMonth ) ( new Date ( ) , 1 ) ] ;
914946 } ,
@@ -1068,10 +1100,12 @@ exports.default = {
10681100
10691101 var _getPanelPosition = ( 0 , _utils . getPanelPosition ) ( this . panelHeight , this . panelWidth , this . wrapRect ) ,
10701102 top = _getPanelPosition . top ,
1071- left = _getPanelPosition . left ;
1103+ left = _getPanelPosition . left ,
1104+ isMinusOffsetTop = _getPanelPosition . isMinusOffsetTop ,
1105+ isMinusOffsetLeft = _getPanelPosition . isMinusOffsetLeft ;
10721106
1073- this . top = top ;
1074- this . left = left ;
1107+ this . top = isMinusOffsetTop ? top - this . offsetTop : top ;
1108+ this . left = isMinusOffsetLeft ? left - this . offsetLeft : left ;
10751109 } ,
10761110 handleDocResize : function handleDocResize ( ) {
10771111 var _this2 = this ;
@@ -1680,7 +1714,7 @@ Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
16801714/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_index_vue__ = __webpack_require__ ( 21 ) ;
16811715/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_index_vue___default = __webpack_require__ . n ( __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_index_vue__ ) ;
16821716/* harmony namespace reexport (unknown) */ for ( var __WEBPACK_IMPORT_KEY__ in __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_index_vue__ ) if ( __WEBPACK_IMPORT_KEY__ !== 'default' ) ( function ( key ) { __webpack_require__ . d ( __webpack_exports__ , key , function ( ) { return __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_index_vue__ [ key ] ; } ) } ( __WEBPACK_IMPORT_KEY__ ) ) ;
1683- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_d08203ca_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_index_vue__ = __webpack_require__ ( 73 ) ;
1717+ /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_6c6663de_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_index_vue__ = __webpack_require__ ( 73 ) ;
16841718var normalizeComponent = __webpack_require__ ( 1 )
16851719/* script */
16861720
@@ -1697,7 +1731,7 @@ var __vue_scopeId__ = null
16971731var __vue_module_identifier__ = null
16981732var Component = normalizeComponent (
16991733 __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_index_vue___default . a ,
1700- __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_d08203ca_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_index_vue__ [ "a" /* default */ ] ,
1734+ __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_6c6663de_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_index_vue__ [ "a" /* default */ ] ,
17011735 __vue_template_functional__ ,
17021736 __vue_styles__ ,
17031737 __vue_scopeId__ ,
0 commit comments