vxe-pc-ui 3.0.1 → 3.0.2
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/README.md +23 -25
- package/es/calendar/index.js +12 -0
- package/es/calendar/src/calendar.js +1227 -0
- package/es/calendar/style.css +247 -0
- package/es/calendar/style.min.css +1 -0
- package/es/checkbox/src/checkbox.js +6 -1
- package/es/checkbox/src/group.js +6 -1
- package/es/collapse/index.js +12 -0
- package/es/collapse/src/collapse-pane.js +39 -0
- package/es/collapse/src/collapse.js +39 -0
- package/es/collapse/style.css +0 -0
- package/es/collapse/style.min.css +0 -0
- package/es/collapse-pane/index.js +12 -0
- package/es/collapse-pane/style.css +0 -0
- package/es/collapse-pane/style.min.css +0 -0
- package/es/components.js +27 -27
- package/es/date-picker/src/date-picker.js +17 -13
- package/es/drawer/src/drawer.js +17 -12
- package/es/form/index.js +13 -0
- package/es/form/render/index.js +461 -0
- package/es/form/src/form-config-item.js +201 -0
- package/es/form/src/form-gather.js +87 -0
- package/es/form/src/form-item.js +291 -0
- package/es/form/src/form.js +762 -0
- package/es/form/src/itemInfo.js +43 -0
- package/es/form/src/render.js +78 -0
- package/es/form/src/util.js +66 -0
- package/es/form/style.css +470 -0
- package/es/form/style.min.css +1 -0
- package/es/form-gather/index.js +12 -0
- package/es/form-gather/style.css +0 -0
- package/es/form-gather/style.min.css +0 -0
- package/es/form-item/index.js +12 -0
- package/es/form-item/style.css +0 -0
- package/es/form-item/style.min.css +0 -0
- package/es/icon/style.css +1 -1
- package/es/icon-picker/src/icon-picker.js +5 -1
- package/es/image/src/preview.js +1 -2
- package/es/input/src/input.js +19 -15
- package/es/list/index.js +12 -0
- package/es/list/src/list.js +373 -0
- package/es/list/style.css +28 -0
- package/es/list/style.min.css +1 -0
- package/es/loading/src/loading.js +5 -0
- package/es/menu/src/menu.js +6 -2
- package/es/modal/src/modal.js +7 -4
- package/es/number-input/src/number-input.js +11 -7
- package/es/pager/style.css +303 -0
- package/es/pager/style.min.css +1 -0
- package/es/password-input/src/password-input.js +7 -3
- package/es/pulldown/src/pulldown.js +6 -2
- package/es/radio/src/button.js +6 -2
- package/es/radio/src/group.js +6 -2
- package/es/radio/src/radio.js +6 -2
- package/es/select/src/select.js +16 -1
- package/es/select/src/util.js +2 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/switch/src/switch.js +6 -2
- package/es/tabs/src/tabs.js +8 -3
- package/es/textarea/src/textarea.js +9 -5
- package/es/tooltip/src/tooltip.js +6 -1
- package/es/tree/index.js +12 -0
- package/es/tree/src/tree.js +1216 -0
- package/es/tree/style.css +219 -0
- package/es/tree/style.min.css +1 -0
- package/es/tree-select/index.js +12 -0
- package/es/tree-select/src/tree-select.js +685 -0
- package/es/tree-select/style.css +129 -0
- package/es/tree-select/style.min.css +1 -0
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/es/ui/src/vn.js +1 -1
- package/es/upload/src/upload.js +9 -5
- package/es/vxe-calendar/index.js +3 -0
- package/es/vxe-calendar/style.css +247 -0
- package/es/vxe-calendar/style.min.css +1 -0
- package/es/vxe-collapse/index.js +3 -0
- package/es/vxe-collapse/style.css +0 -0
- package/es/vxe-collapse/style.min.css +0 -0
- package/es/vxe-collapse-pane/index.js +3 -0
- package/es/vxe-collapse-pane/style.css +0 -0
- package/es/vxe-collapse-pane/style.min.css +0 -0
- package/es/vxe-form/index.js +3 -0
- package/es/vxe-form/style.css +470 -0
- package/es/vxe-form/style.min.css +1 -0
- package/es/vxe-form-gather/index.js +3 -0
- package/es/vxe-form-gather/style.css +0 -0
- package/es/vxe-form-gather/style.min.css +0 -0
- package/es/vxe-form-item/index.js +3 -0
- package/es/vxe-form-item/style.css +0 -0
- package/es/vxe-form-item/style.min.css +0 -0
- package/es/vxe-list/index.js +3 -0
- package/es/vxe-list/style.css +28 -0
- package/es/vxe-list/style.min.css +1 -0
- package/es/vxe-pager/index.js +3 -0
- package/es/vxe-pager/style.css +303 -0
- package/es/vxe-pager/style.min.css +1 -0
- package/es/vxe-tree/index.js +3 -0
- package/es/vxe-tree/style.css +219 -0
- package/es/vxe-tree/style.min.css +1 -0
- package/es/vxe-tree-select/index.js +3 -0
- package/es/vxe-tree-select/style.css +129 -0
- package/es/vxe-tree-select/style.min.css +1 -0
- package/lib/calendar/index.js +19 -0
- package/lib/calendar/index.min.js +1 -0
- package/lib/calendar/src/calendar.js +1286 -0
- package/lib/calendar/src/calendar.min.js +1 -0
- package/lib/calendar/style/index.js +1 -0
- package/lib/calendar/style/style.css +247 -0
- package/lib/calendar/style/style.min.css +1 -0
- package/lib/checkbox/src/checkbox.js +6 -1
- package/lib/checkbox/src/checkbox.min.js +1 -1
- package/lib/checkbox/src/group.js +6 -1
- package/lib/checkbox/src/group.min.js +1 -1
- package/lib/collapse/index.js +19 -0
- package/lib/collapse/index.min.js +1 -0
- package/lib/collapse/src/collapse-pane.js +48 -0
- package/lib/collapse/src/collapse-pane.min.js +1 -0
- package/lib/collapse/src/collapse.js +48 -0
- package/lib/collapse/src/collapse.min.js +1 -0
- package/lib/collapse/style/index.js +1 -0
- package/lib/collapse/style/style.css +0 -0
- package/lib/collapse/style/style.min.css +0 -0
- package/lib/collapse-pane/index.js +19 -0
- package/lib/collapse-pane/index.min.js +1 -0
- package/lib/collapse-pane/style/index.js +1 -0
- package/lib/collapse-pane/style/style.css +0 -0
- package/lib/collapse-pane/style/style.min.css +0 -0
- package/lib/components.js +114 -39
- package/lib/components.min.js +1 -1
- package/lib/date-picker/src/date-picker.js +17 -13
- package/lib/date-picker/src/date-picker.min.js +1 -1
- package/lib/drawer/src/drawer.js +17 -12
- package/lib/drawer/src/drawer.min.js +1 -1
- package/lib/form/index.js +20 -0
- package/lib/form/index.min.js +1 -0
- package/lib/form/render/index.js +509 -0
- package/lib/form/render/index.min.js +1 -0
- package/lib/form/src/form-config-item.js +210 -0
- package/lib/form/src/form-config-item.min.js +1 -0
- package/lib/form/src/form-gather.js +99 -0
- package/lib/form/src/form-gather.min.js +1 -0
- package/lib/form/src/form-item.js +299 -0
- package/lib/form/src/form-item.min.js +1 -0
- package/lib/form/src/form.js +856 -0
- package/lib/form/src/form.min.js +1 -0
- package/lib/form/src/itemInfo.js +60 -0
- package/lib/form/src/itemInfo.min.js +1 -0
- package/lib/form/src/render.js +94 -0
- package/lib/form/src/render.min.js +1 -0
- package/lib/form/src/util.js +93 -0
- package/lib/form/src/util.min.js +1 -0
- package/lib/form/style/index.js +1 -0
- package/lib/form/style/style.css +470 -0
- package/lib/form/style/style.min.css +1 -0
- package/lib/form-gather/index.js +19 -0
- package/lib/form-gather/index.min.js +1 -0
- package/lib/form-gather/style/index.js +1 -0
- package/lib/form-gather/style/style.css +0 -0
- package/lib/form-gather/style/style.min.css +0 -0
- package/lib/form-item/index.js +19 -0
- package/lib/form-item/index.min.js +1 -0
- package/lib/form-item/style/index.js +1 -0
- package/lib/form-item/style/style.css +0 -0
- package/lib/form-item/style/style.min.css +0 -0
- package/lib/icon/style/style.css +1 -1
- package/lib/icon/style/style.min.css +1 -1
- package/lib/icon-picker/src/icon-picker.js +5 -1
- package/lib/icon-picker/src/icon-picker.min.js +1 -1
- package/lib/image/src/preview.js +1 -2
- package/lib/image/src/preview.min.js +1 -1
- package/lib/index.umd.js +11284 -5009
- package/lib/index.umd.min.js +1 -1
- package/lib/input/src/input.js +19 -15
- package/lib/input/src/input.min.js +1 -1
- package/lib/list/index.js +19 -0
- package/lib/list/index.min.js +1 -0
- package/lib/list/src/list.js +415 -0
- package/lib/list/src/list.min.js +1 -0
- package/lib/list/style/index.js +1 -0
- package/lib/list/style/style.css +28 -0
- package/lib/list/style/style.min.css +1 -0
- package/lib/loading/src/loading.js +5 -0
- package/lib/loading/src/loading.min.js +1 -1
- package/lib/menu/src/menu.js +6 -2
- package/lib/menu/src/menu.min.js +1 -1
- package/lib/modal/src/modal.js +7 -4
- package/lib/modal/src/modal.min.js +1 -1
- package/lib/number-input/src/number-input.js +11 -7
- package/lib/number-input/src/number-input.min.js +1 -1
- package/lib/pager/style/index.js +1 -0
- package/lib/pager/style/style.css +303 -0
- package/lib/pager/style/style.min.css +1 -0
- package/lib/password-input/src/password-input.js +7 -3
- package/lib/password-input/src/password-input.min.js +1 -1
- package/lib/pulldown/src/pulldown.js +6 -2
- package/lib/pulldown/src/pulldown.min.js +1 -1
- package/lib/radio/src/button.js +6 -2
- package/lib/radio/src/button.min.js +1 -1
- package/lib/radio/src/group.js +6 -2
- package/lib/radio/src/group.min.js +1 -1
- package/lib/radio/src/radio.js +6 -2
- package/lib/radio/src/radio.min.js +1 -1
- package/lib/select/src/select.js +16 -1
- package/lib/select/src/select.min.js +1 -1
- package/lib/select/src/util.js +2 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/switch/src/switch.js +6 -2
- package/lib/switch/src/switch.min.js +1 -1
- package/lib/tabs/src/tabs.js +8 -3
- package/lib/tabs/src/tabs.min.js +1 -1
- package/lib/textarea/src/textarea.js +9 -5
- package/lib/textarea/src/textarea.min.js +1 -1
- package/lib/tooltip/src/tooltip.js +6 -1
- package/lib/tooltip/src/tooltip.min.js +1 -1
- package/lib/tree/index.js +19 -0
- package/lib/tree/index.min.js +1 -0
- package/lib/tree/src/tree.js +1324 -0
- package/lib/tree/src/tree.min.js +1 -0
- package/lib/tree/style/index.js +1 -0
- package/lib/tree/style/style.css +219 -0
- package/lib/tree/style/style.min.css +1 -0
- package/lib/tree-select/index.js +19 -0
- package/lib/tree-select/index.min.js +1 -0
- package/lib/tree-select/src/tree-select.js +695 -0
- package/lib/tree-select/src/tree-select.min.js +1 -0
- package/lib/tree-select/style/index.js +1 -0
- package/lib/tree-select/style/style.css +129 -0
- package/lib/tree-select/style/style.min.css +1 -0
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/ui/src/vn.js +1 -1
- package/lib/ui/src/vn.min.js +1 -1
- package/lib/upload/src/upload.js +9 -5
- package/lib/upload/src/upload.min.js +1 -1
- package/lib/vxe-calendar/index.js +23 -0
- package/lib/vxe-calendar/index.min.js +1 -0
- package/lib/vxe-calendar/style/index.js +1 -0
- package/lib/vxe-calendar/style/style.css +247 -0
- package/lib/vxe-calendar/style/style.min.css +1 -0
- package/lib/vxe-collapse/index.js +23 -0
- package/lib/vxe-collapse/index.min.js +1 -0
- package/lib/vxe-collapse/style/index.js +1 -0
- package/lib/vxe-collapse/style/style.css +0 -0
- package/lib/vxe-collapse/style/style.min.css +0 -0
- package/lib/vxe-collapse-pane/index.js +23 -0
- package/lib/vxe-collapse-pane/index.min.js +1 -0
- package/lib/vxe-collapse-pane/style/index.js +1 -0
- package/lib/vxe-collapse-pane/style/style.css +0 -0
- package/lib/vxe-collapse-pane/style/style.min.css +0 -0
- package/lib/vxe-form/index.js +23 -0
- package/lib/vxe-form/index.min.js +1 -0
- package/lib/vxe-form/style/index.js +1 -0
- package/lib/vxe-form/style/style.css +470 -0
- package/lib/vxe-form/style/style.min.css +1 -0
- package/lib/vxe-form-gather/index.js +23 -0
- package/lib/vxe-form-gather/index.min.js +1 -0
- package/lib/vxe-form-gather/style/index.js +1 -0
- package/lib/vxe-form-gather/style/style.css +0 -0
- package/lib/vxe-form-gather/style/style.min.css +0 -0
- package/lib/vxe-form-item/index.js +23 -0
- package/lib/vxe-form-item/index.min.js +1 -0
- package/lib/vxe-form-item/style/index.js +1 -0
- package/lib/vxe-form-item/style/style.css +0 -0
- package/lib/vxe-form-item/style/style.min.css +0 -0
- package/lib/vxe-list/index.js +23 -0
- package/lib/vxe-list/index.min.js +1 -0
- package/lib/vxe-list/style/index.js +1 -0
- package/lib/vxe-list/style/style.css +28 -0
- package/lib/vxe-list/style/style.min.css +1 -0
- package/lib/vxe-pager/index.js +23 -0
- package/lib/vxe-pager/index.min.js +1 -0
- package/lib/vxe-pager/style/index.js +1 -0
- package/lib/vxe-pager/style/style.css +303 -0
- package/lib/vxe-pager/style/style.min.css +1 -0
- package/lib/vxe-tree/index.js +23 -0
- package/lib/vxe-tree/index.min.js +1 -0
- package/lib/vxe-tree/style/index.js +1 -0
- package/lib/vxe-tree/style/style.css +219 -0
- package/lib/vxe-tree/style/style.min.css +1 -0
- package/lib/vxe-tree-select/index.js +23 -0
- package/lib/vxe-tree-select/index.min.js +1 -0
- package/lib/vxe-tree-select/style/index.js +1 -0
- package/lib/vxe-tree-select/style/style.css +129 -0
- package/lib/vxe-tree-select/style/style.min.css +1 -0
- package/package.json +1 -1
- package/packages/calendar/index.ts +16 -0
- package/packages/calendar/src/calendar.ts +1281 -0
- package/packages/checkbox/src/checkbox.ts +7 -1
- package/packages/checkbox/src/group.ts +8 -2
- package/packages/collapse/index.ts +16 -0
- package/packages/collapse/src/collapse-pane.ts +47 -0
- package/packages/collapse/src/collapse.ts +47 -0
- package/packages/collapse-pane/index.ts +16 -0
- package/packages/components.ts +27 -27
- package/packages/date-picker/src/date-picker.ts +18 -13
- package/packages/drawer/src/drawer.ts +18 -12
- package/packages/form/index.ts +17 -0
- package/packages/form/render/index.ts +499 -0
- package/packages/form/src/form-config-item.ts +219 -0
- package/packages/form/src/form-gather.ts +104 -0
- package/packages/form/src/form-item.ts +322 -0
- package/packages/form/src/form.ts +809 -0
- package/packages/form/src/itemInfo.ts +47 -0
- package/packages/form/src/render.ts +98 -0
- package/packages/form/src/util.ts +80 -0
- package/packages/form-gather/index.ts +16 -0
- package/packages/form-item/index.ts +16 -0
- package/packages/icon-picker/src/icon-picker.ts +6 -1
- package/packages/image/src/preview.ts +1 -2
- package/packages/input/src/input.ts +20 -15
- package/packages/layout-footer/src/layout-footer.ts +1 -0
- package/packages/list/index.ts +16 -0
- package/packages/list/src/list.ts +403 -0
- package/packages/loading/src/loading.ts +6 -0
- package/packages/menu/src/menu.ts +7 -2
- package/packages/modal/src/modal.ts +8 -4
- package/packages/number-input/src/number-input.ts +12 -7
- package/packages/password-input/src/password-input.ts +8 -3
- package/packages/pulldown/src/pulldown.ts +7 -2
- package/packages/radio/src/button.ts +7 -2
- package/packages/radio/src/group.ts +7 -2
- package/packages/radio/src/radio.ts +7 -2
- package/packages/select/src/select.ts +17 -1
- package/packages/select/src/util.ts +4 -3
- package/packages/switch/src/switch.ts +7 -2
- package/packages/tabs/src/tabs.ts +9 -3
- package/packages/textarea/src/textarea.ts +10 -5
- package/packages/tooltip/src/tooltip.ts +7 -1
- package/packages/tree/index.ts +16 -0
- package/packages/tree/src/tree.ts +1292 -0
- package/packages/tree-select/index.ts +16 -0
- package/packages/tree-select/src/tree-select.ts +743 -0
- package/packages/ui/src/vn.ts +1 -1
- package/packages/upload/src/upload.ts +10 -5
- package/types/components/calendar.d.ts +6 -0
- package/types/components/colgroup.d.ts +1 -0
- package/types/components/column.d.ts +1 -0
- package/types/components/drawer.d.ts +11 -10
- package/types/components/form-item.d.ts +1 -1
- package/types/components/form.d.ts +8 -1
- package/types/components/list.d.ts +1 -0
- package/types/components/table.d.ts +43 -4
- package/types/components/toolbar.d.ts +5 -0
- package/types/components/tree-select.d.ts +4 -0
- package/types/ui/index.d.ts +0 -5
- package/types/ui/renderer.d.ts +37 -36
- package/types/handles/form-design.d.ts +0 -4
- package/types/handles/index.d.ts +0 -3
- package/types/handles/list-design.d.ts +0 -4
- package/types/handles/table.d.ts +0 -4
- /package/es/icon/style/{iconfont.1725723159302.ttf → iconfont.1725869586078.ttf} +0 -0
- /package/es/icon/style/{iconfont.1725723159302.woff → iconfont.1725869586078.woff} +0 -0
- /package/es/icon/style/{iconfont.1725723159302.woff2 → iconfont.1725869586078.woff2} +0 -0
- /package/es/{iconfont.1725723159302.ttf → iconfont.1725869586078.ttf} +0 -0
- /package/es/{iconfont.1725723159302.woff → iconfont.1725869586078.woff} +0 -0
- /package/es/{iconfont.1725723159302.woff2 → iconfont.1725869586078.woff2} +0 -0
- /package/lib/icon/style/{iconfont.1725723159302.ttf → iconfont.1725869586078.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1725723159302.woff → iconfont.1725869586078.woff} +0 -0
- /package/lib/icon/style/{iconfont.1725723159302.woff2 → iconfont.1725869586078.woff2} +0 -0
- /package/lib/{iconfont.1725723159302.ttf → iconfont.1725869586078.ttf} +0 -0
- /package/lib/{iconfont.1725723159302.woff → iconfont.1725869586078.woff} +0 -0
- /package/lib/{iconfont.1725723159302.woff2 → iconfont.1725869586078.woff2} +0 -0
|
@@ -0,0 +1,1286 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _comp = require("../../ui/src/comp");
|
|
9
|
+
var _xeUtils = _interopRequireDefault(require("xe-utils"));
|
|
10
|
+
var _ui = require("../../ui");
|
|
11
|
+
var _util = require("../../date-picker/src/util");
|
|
12
|
+
var _dom = require("../..//ui/src/dom");
|
|
13
|
+
var _button = _interopRequireDefault(require("../../button/src/button"));
|
|
14
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
16
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
17
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
18
|
+
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
19
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
20
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
21
|
+
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
22
|
+
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
|
|
23
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
24
|
+
var _default2 = exports.default = (0, _comp.defineVxeComponent)({
|
|
25
|
+
name: 'VxeCalendar',
|
|
26
|
+
mixins: [_ui.globalMixins.sizeMixin],
|
|
27
|
+
props: {
|
|
28
|
+
value: [String, Number, Date],
|
|
29
|
+
type: {
|
|
30
|
+
type: String,
|
|
31
|
+
default: 'date'
|
|
32
|
+
},
|
|
33
|
+
className: String,
|
|
34
|
+
size: {
|
|
35
|
+
type: String,
|
|
36
|
+
default: function _default() {
|
|
37
|
+
return (0, _ui.getConfig)().calendar.size || (0, _ui.getConfig)().size;
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
multiple: Boolean,
|
|
41
|
+
width: [String, Number],
|
|
42
|
+
height: [String, Number],
|
|
43
|
+
// date、week、month、quarter、year
|
|
44
|
+
minDate: {
|
|
45
|
+
type: [String, Number, Date],
|
|
46
|
+
default: function _default() {
|
|
47
|
+
return (0, _ui.getConfig)().calendar.minDate;
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
maxDate: {
|
|
51
|
+
type: [String, Number, Date],
|
|
52
|
+
default: function _default() {
|
|
53
|
+
return (0, _ui.getConfig)().calendar.maxDate;
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
startDay: {
|
|
57
|
+
type: [String, Number],
|
|
58
|
+
default: function _default() {
|
|
59
|
+
return (0, _ui.getConfig)().calendar.startDay;
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
labelFormat: String,
|
|
63
|
+
valueFormat: String,
|
|
64
|
+
festivalMethod: {
|
|
65
|
+
type: Function,
|
|
66
|
+
default: function _default() {
|
|
67
|
+
return (0, _ui.getConfig)().calendar.festivalMethod;
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
disabledMethod: {
|
|
71
|
+
type: Function,
|
|
72
|
+
default: function _default() {
|
|
73
|
+
return (0, _ui.getConfig)().calendar.disabledMethod;
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
// week
|
|
77
|
+
selectDay: {
|
|
78
|
+
type: [String, Number],
|
|
79
|
+
default: function _default() {
|
|
80
|
+
return (0, _ui.getConfig)().calendar.selectDay;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
data: function data() {
|
|
85
|
+
var reactData = {
|
|
86
|
+
selectValue: null,
|
|
87
|
+
inputValue: null,
|
|
88
|
+
datePanelValue: null,
|
|
89
|
+
datePanelLabel: '',
|
|
90
|
+
datePanelType: 'day',
|
|
91
|
+
selectMonth: null,
|
|
92
|
+
currentDate: null
|
|
93
|
+
};
|
|
94
|
+
var internalData = {
|
|
95
|
+
yearSize: 12,
|
|
96
|
+
monthSize: 20,
|
|
97
|
+
quarterSize: 8
|
|
98
|
+
};
|
|
99
|
+
return {
|
|
100
|
+
xID: _xeUtils.default.uniqueId(),
|
|
101
|
+
reactData: reactData,
|
|
102
|
+
internalData: internalData
|
|
103
|
+
};
|
|
104
|
+
},
|
|
105
|
+
computed: Object.assign(Object.assign({}, {}), {
|
|
106
|
+
computeCalendarStyle: function computeCalendarStyle() {
|
|
107
|
+
var $xeCalendar = this;
|
|
108
|
+
var props = $xeCalendar;
|
|
109
|
+
var height = props.height,
|
|
110
|
+
width = props.width;
|
|
111
|
+
var stys = {};
|
|
112
|
+
if (width) {
|
|
113
|
+
stys.width = (0, _dom.toCssUnit)(width);
|
|
114
|
+
}
|
|
115
|
+
if (height) {
|
|
116
|
+
stys.height = (0, _dom.toCssUnit)(height);
|
|
117
|
+
}
|
|
118
|
+
return stys;
|
|
119
|
+
},
|
|
120
|
+
computeIsDisabled: function computeIsDisabled() {
|
|
121
|
+
return false;
|
|
122
|
+
},
|
|
123
|
+
computeIsCalendarType: function computeIsCalendarType() {
|
|
124
|
+
var $xeCalendar = this;
|
|
125
|
+
var props = $xeCalendar;
|
|
126
|
+
return ['date', 'week', 'month', 'quarter', 'year'].includes(props.type);
|
|
127
|
+
},
|
|
128
|
+
computeDateStartTime: function computeDateStartTime() {
|
|
129
|
+
var $xeCalendar = this;
|
|
130
|
+
var props = $xeCalendar;
|
|
131
|
+
return props.minDate ? _xeUtils.default.toStringDate(props.minDate) : null;
|
|
132
|
+
},
|
|
133
|
+
computeDateEndTime: function computeDateEndTime() {
|
|
134
|
+
var $xeCalendar = this;
|
|
135
|
+
var props = $xeCalendar;
|
|
136
|
+
return props.maxDate ? _xeUtils.default.toStringDate(props.maxDate) : null;
|
|
137
|
+
},
|
|
138
|
+
computeSupportMultiples: function computeSupportMultiples() {
|
|
139
|
+
var $xeCalendar = this;
|
|
140
|
+
var props = $xeCalendar;
|
|
141
|
+
return ['date', 'week', 'month', 'quarter', 'year'].indexOf(props.type) > -1;
|
|
142
|
+
},
|
|
143
|
+
computeDateListValue: function computeDateListValue() {
|
|
144
|
+
var $xeCalendar = this;
|
|
145
|
+
var props = $xeCalendar;
|
|
146
|
+
var reactData = $xeCalendar.reactData;
|
|
147
|
+
var multiple = props.multiple;
|
|
148
|
+
var selectValue = reactData.selectValue;
|
|
149
|
+
var isCalendarType = $xeCalendar.computeIsCalendarType;
|
|
150
|
+
var dateValueFormat = $xeCalendar.computeDateValueFormat;
|
|
151
|
+
if (multiple && selectValue && isCalendarType) {
|
|
152
|
+
return _xeUtils.default.toValueString(selectValue).split(',').map(function (item) {
|
|
153
|
+
var date = $xeCalendar.parseDate(item, dateValueFormat);
|
|
154
|
+
if (_xeUtils.default.isValidDate(date)) {
|
|
155
|
+
return date;
|
|
156
|
+
}
|
|
157
|
+
return date;
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
return [];
|
|
161
|
+
},
|
|
162
|
+
computeDateMultipleValue: function computeDateMultipleValue() {
|
|
163
|
+
var $xeCalendar = this;
|
|
164
|
+
var dateListValue = $xeCalendar.computeDateListValue;
|
|
165
|
+
var dateValueFormat = $xeCalendar.computeDateValueFormat;
|
|
166
|
+
return dateListValue.map(function (date) {
|
|
167
|
+
return _xeUtils.default.toDateString(date, dateValueFormat);
|
|
168
|
+
});
|
|
169
|
+
},
|
|
170
|
+
computeDateMultipleLabel: function computeDateMultipleLabel() {
|
|
171
|
+
var $xeCalendar = this;
|
|
172
|
+
var dateListValue = $xeCalendar.computeDateListValue;
|
|
173
|
+
var dateLabelFormat = $xeCalendar.computeDateLabelFormat;
|
|
174
|
+
return dateListValue.map(function (date) {
|
|
175
|
+
return _xeUtils.default.toDateString(date, dateLabelFormat);
|
|
176
|
+
}).join(', ');
|
|
177
|
+
},
|
|
178
|
+
computeDateValueFormat: function computeDateValueFormat() {
|
|
179
|
+
var $xeCalendar = this;
|
|
180
|
+
var props = $xeCalendar;
|
|
181
|
+
var valueFormat = props.valueFormat;
|
|
182
|
+
if (valueFormat) {
|
|
183
|
+
return valueFormat;
|
|
184
|
+
}
|
|
185
|
+
return 'yyyy-MM-dd';
|
|
186
|
+
},
|
|
187
|
+
computeDateValue: function computeDateValue() {
|
|
188
|
+
var $xeCalendar = this;
|
|
189
|
+
var reactData = $xeCalendar.reactData;
|
|
190
|
+
var selectValue = reactData.selectValue;
|
|
191
|
+
var isCalendarType = $xeCalendar.computeIsCalendarType;
|
|
192
|
+
var dateValueFormat = $xeCalendar.computeDateValueFormat;
|
|
193
|
+
var val = null;
|
|
194
|
+
if (selectValue && isCalendarType) {
|
|
195
|
+
var date = $xeCalendar.parseDate(selectValue, dateValueFormat);
|
|
196
|
+
if (_xeUtils.default.isValidDate(date)) {
|
|
197
|
+
val = date;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
return val;
|
|
201
|
+
},
|
|
202
|
+
computeIsDisabledPrevDateBtn: function computeIsDisabledPrevDateBtn() {
|
|
203
|
+
var $xeCalendar = this;
|
|
204
|
+
var reactData = $xeCalendar.reactData;
|
|
205
|
+
var dateStartTime = $xeCalendar.computeDateStartTime;
|
|
206
|
+
var selectMonth = reactData.selectMonth;
|
|
207
|
+
if (selectMonth && dateStartTime) {
|
|
208
|
+
return selectMonth <= dateStartTime;
|
|
209
|
+
}
|
|
210
|
+
return false;
|
|
211
|
+
},
|
|
212
|
+
computeIsDisabledNextDateBtn: function computeIsDisabledNextDateBtn() {
|
|
213
|
+
var $xeCalendar = this;
|
|
214
|
+
var reactData = $xeCalendar.reactData;
|
|
215
|
+
var dateEndTime = $xeCalendar.computeDateEndTime;
|
|
216
|
+
var selectMonth = reactData.selectMonth;
|
|
217
|
+
if (selectMonth && dateEndTime) {
|
|
218
|
+
return selectMonth >= dateEndTime;
|
|
219
|
+
}
|
|
220
|
+
return false;
|
|
221
|
+
},
|
|
222
|
+
computeDateHMSTime: function computeDateHMSTime() {
|
|
223
|
+
var $xeCalendar = this;
|
|
224
|
+
var dateValue = $xeCalendar.computeDateValue;
|
|
225
|
+
return dateValue ? (dateValue.getHours() * 3600 + dateValue.getMinutes() * 60 + dateValue.getSeconds()) * 1000 : 0;
|
|
226
|
+
},
|
|
227
|
+
computeDateLabelFormat: function computeDateLabelFormat() {
|
|
228
|
+
var $xeCalendar = this;
|
|
229
|
+
var props = $xeCalendar;
|
|
230
|
+
var labelFormat = props.labelFormat;
|
|
231
|
+
var isCalendarType = $xeCalendar.computeIsCalendarType;
|
|
232
|
+
var dateValueFormat = $xeCalendar.computeDateValueFormat;
|
|
233
|
+
if (isCalendarType) {
|
|
234
|
+
return labelFormat || dateValueFormat || (0, _ui.getI18n)("vxe.input.date.labelFormat.".concat(props.type));
|
|
235
|
+
}
|
|
236
|
+
return '';
|
|
237
|
+
},
|
|
238
|
+
computeYearList: function computeYearList() {
|
|
239
|
+
var $xeCalendar = this;
|
|
240
|
+
var reactData = $xeCalendar.reactData;
|
|
241
|
+
var internalData = $xeCalendar.internalData;
|
|
242
|
+
var selectMonth = reactData.selectMonth,
|
|
243
|
+
currentDate = reactData.currentDate;
|
|
244
|
+
var yearSize = internalData.yearSize;
|
|
245
|
+
var years = [];
|
|
246
|
+
if (selectMonth && currentDate) {
|
|
247
|
+
var currFullYear = currentDate.getFullYear();
|
|
248
|
+
var selectFullYear = selectMonth.getFullYear();
|
|
249
|
+
var startYearDate = new Date(selectFullYear - selectFullYear % yearSize, 0, 1);
|
|
250
|
+
for (var index = -4; index < yearSize + 4; index++) {
|
|
251
|
+
var date = _xeUtils.default.getWhatYear(startYearDate, index, 'first');
|
|
252
|
+
var itemFullYear = date.getFullYear();
|
|
253
|
+
years.push({
|
|
254
|
+
date: date,
|
|
255
|
+
isCurrent: true,
|
|
256
|
+
isPrev: index < 0,
|
|
257
|
+
isNow: currFullYear === itemFullYear,
|
|
258
|
+
isNext: index >= yearSize,
|
|
259
|
+
year: itemFullYear
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
return years;
|
|
264
|
+
},
|
|
265
|
+
computeSelectDatePanelLabel: function computeSelectDatePanelLabel() {
|
|
266
|
+
var $xeCalendar = this;
|
|
267
|
+
var reactData = $xeCalendar.reactData;
|
|
268
|
+
var isCalendarType = $xeCalendar.computeIsCalendarType;
|
|
269
|
+
if (isCalendarType) {
|
|
270
|
+
var datePanelType = reactData.datePanelType,
|
|
271
|
+
selectMonth = reactData.selectMonth;
|
|
272
|
+
var yearList = $xeCalendar.computeYearList;
|
|
273
|
+
var year = '';
|
|
274
|
+
var month;
|
|
275
|
+
if (selectMonth) {
|
|
276
|
+
year = selectMonth.getFullYear();
|
|
277
|
+
month = selectMonth.getMonth() + 1;
|
|
278
|
+
}
|
|
279
|
+
if (datePanelType === 'quarter') {
|
|
280
|
+
return (0, _ui.getI18n)('vxe.input.date.quarterLabel', [year]);
|
|
281
|
+
} else if (datePanelType === 'month') {
|
|
282
|
+
return (0, _ui.getI18n)('vxe.input.date.monthLabel', [year]);
|
|
283
|
+
} else if (datePanelType === 'year') {
|
|
284
|
+
return yearList.length ? "".concat(yearList[0].year, " - ").concat(yearList[yearList.length - 1].year) : '';
|
|
285
|
+
}
|
|
286
|
+
return (0, _ui.getI18n)('vxe.input.date.dayLabel', [year, month ? (0, _ui.getI18n)("vxe.input.date.m".concat(month)) : '-']);
|
|
287
|
+
}
|
|
288
|
+
return '';
|
|
289
|
+
},
|
|
290
|
+
computeFirstDayOfWeek: function computeFirstDayOfWeek() {
|
|
291
|
+
var $xeCalendar = this;
|
|
292
|
+
var props = $xeCalendar;
|
|
293
|
+
var startDay = props.startDay;
|
|
294
|
+
return _xeUtils.default.toNumber(startDay);
|
|
295
|
+
},
|
|
296
|
+
computeWeekDatas: function computeWeekDatas() {
|
|
297
|
+
var $xeCalendar = this;
|
|
298
|
+
var weeks = [];
|
|
299
|
+
var isCalendarType = $xeCalendar.computeIsCalendarType;
|
|
300
|
+
if (isCalendarType) {
|
|
301
|
+
var sWeek = $xeCalendar.computeFirstDayOfWeek;
|
|
302
|
+
weeks.push(sWeek);
|
|
303
|
+
for (var index = 0; index < 6; index++) {
|
|
304
|
+
if (sWeek >= 6) {
|
|
305
|
+
sWeek = 0;
|
|
306
|
+
} else {
|
|
307
|
+
sWeek++;
|
|
308
|
+
}
|
|
309
|
+
weeks.push(sWeek);
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
return weeks;
|
|
313
|
+
},
|
|
314
|
+
computeDateHeaders: function computeDateHeaders() {
|
|
315
|
+
var $xeCalendar = this;
|
|
316
|
+
var isCalendarType = $xeCalendar.computeIsCalendarType;
|
|
317
|
+
if (isCalendarType) {
|
|
318
|
+
var weekDatas = $xeCalendar.computeWeekDatas;
|
|
319
|
+
return weekDatas.map(function (day) {
|
|
320
|
+
return {
|
|
321
|
+
value: day,
|
|
322
|
+
label: (0, _ui.getI18n)("vxe.input.date.weeks.w".concat(day))
|
|
323
|
+
};
|
|
324
|
+
});
|
|
325
|
+
}
|
|
326
|
+
return [];
|
|
327
|
+
},
|
|
328
|
+
computeWeekHeaders: function computeWeekHeaders() {
|
|
329
|
+
var $xeCalendar = this;
|
|
330
|
+
var isCalendarType = $xeCalendar.computeIsCalendarType;
|
|
331
|
+
if (isCalendarType) {
|
|
332
|
+
var dateHeaders = $xeCalendar.computeDateHeaders;
|
|
333
|
+
return [{
|
|
334
|
+
label: (0, _ui.getI18n)('vxe.input.date.weeks.w')
|
|
335
|
+
}].concat(dateHeaders);
|
|
336
|
+
}
|
|
337
|
+
return [];
|
|
338
|
+
},
|
|
339
|
+
computeYearDatas: function computeYearDatas() {
|
|
340
|
+
var $xeCalendar = this;
|
|
341
|
+
var yearList = $xeCalendar.computeYearList;
|
|
342
|
+
return _xeUtils.default.chunk(yearList, 4);
|
|
343
|
+
},
|
|
344
|
+
computeQuarterList: function computeQuarterList() {
|
|
345
|
+
var $xeCalendar = this;
|
|
346
|
+
var reactData = $xeCalendar.reactData;
|
|
347
|
+
var internalData = $xeCalendar.internalData;
|
|
348
|
+
var selectMonth = reactData.selectMonth,
|
|
349
|
+
currentDate = reactData.currentDate;
|
|
350
|
+
var quarterSize = internalData.quarterSize;
|
|
351
|
+
var quarters = [];
|
|
352
|
+
if (selectMonth && currentDate) {
|
|
353
|
+
var currFullYear = currentDate.getFullYear();
|
|
354
|
+
var currQuarter = (0, _util.getDateQuarter)(currentDate);
|
|
355
|
+
var firstYear = _xeUtils.default.getWhatYear(selectMonth, 0, 'first');
|
|
356
|
+
var selFullYear = firstYear.getFullYear();
|
|
357
|
+
for (var index = -2; index < quarterSize - 2; index++) {
|
|
358
|
+
var date = _xeUtils.default.getWhatQuarter(firstYear, index);
|
|
359
|
+
var itemFullYear = date.getFullYear();
|
|
360
|
+
var itemQuarter = (0, _util.getDateQuarter)(date);
|
|
361
|
+
var isPrev = itemFullYear < selFullYear;
|
|
362
|
+
quarters.push({
|
|
363
|
+
date: date,
|
|
364
|
+
isPrev: isPrev,
|
|
365
|
+
isCurrent: itemFullYear === selFullYear,
|
|
366
|
+
isNow: itemFullYear === currFullYear && itemQuarter === currQuarter,
|
|
367
|
+
isNext: !isPrev && itemFullYear > selFullYear,
|
|
368
|
+
quarter: itemQuarter
|
|
369
|
+
});
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
return quarters;
|
|
373
|
+
},
|
|
374
|
+
computeQuarterDatas: function computeQuarterDatas() {
|
|
375
|
+
var $xeCalendar = this;
|
|
376
|
+
var quarterList = $xeCalendar.computeQuarterList;
|
|
377
|
+
return _xeUtils.default.chunk(quarterList, 2);
|
|
378
|
+
},
|
|
379
|
+
computeMonthList: function computeMonthList() {
|
|
380
|
+
var $xeCalendar = this;
|
|
381
|
+
var reactData = $xeCalendar.reactData;
|
|
382
|
+
var internalData = $xeCalendar.internalData;
|
|
383
|
+
var selectMonth = reactData.selectMonth,
|
|
384
|
+
currentDate = reactData.currentDate;
|
|
385
|
+
var monthSize = internalData.monthSize;
|
|
386
|
+
var months = [];
|
|
387
|
+
if (selectMonth && currentDate) {
|
|
388
|
+
var currFullYear = currentDate.getFullYear();
|
|
389
|
+
var currMonth = currentDate.getMonth();
|
|
390
|
+
var selFullYear = _xeUtils.default.getWhatYear(selectMonth, 0, 'first').getFullYear();
|
|
391
|
+
for (var index = -4; index < monthSize - 4; index++) {
|
|
392
|
+
var date = _xeUtils.default.getWhatYear(selectMonth, 0, index);
|
|
393
|
+
var itemFullYear = date.getFullYear();
|
|
394
|
+
var itemMonth = date.getMonth();
|
|
395
|
+
var isPrev = itemFullYear < selFullYear;
|
|
396
|
+
months.push({
|
|
397
|
+
date: date,
|
|
398
|
+
isPrev: isPrev,
|
|
399
|
+
isCurrent: itemFullYear === selFullYear,
|
|
400
|
+
isNow: itemFullYear === currFullYear && itemMonth === currMonth,
|
|
401
|
+
isNext: !isPrev && itemFullYear > selFullYear,
|
|
402
|
+
month: itemMonth
|
|
403
|
+
});
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
return months;
|
|
407
|
+
},
|
|
408
|
+
computeMonthDatas: function computeMonthDatas() {
|
|
409
|
+
var $xeCalendar = this;
|
|
410
|
+
var monthList = $xeCalendar.computeMonthList;
|
|
411
|
+
return _xeUtils.default.chunk(monthList, 4);
|
|
412
|
+
},
|
|
413
|
+
computeDayList: function computeDayList() {
|
|
414
|
+
var $xeCalendar = this;
|
|
415
|
+
var reactData = $xeCalendar.reactData;
|
|
416
|
+
var selectMonth = reactData.selectMonth,
|
|
417
|
+
currentDate = reactData.currentDate;
|
|
418
|
+
var days = [];
|
|
419
|
+
if (selectMonth && currentDate) {
|
|
420
|
+
var dateHMSTime = $xeCalendar.computeDateHMSTime;
|
|
421
|
+
var weekDatas = $xeCalendar.computeWeekDatas;
|
|
422
|
+
var currFullYear = currentDate.getFullYear();
|
|
423
|
+
var currMonth = currentDate.getMonth();
|
|
424
|
+
var currDate = currentDate.getDate();
|
|
425
|
+
var selFullYear = selectMonth.getFullYear();
|
|
426
|
+
var selMonth = selectMonth.getMonth();
|
|
427
|
+
var selDay = selectMonth.getDay();
|
|
428
|
+
var prevOffsetDate = -weekDatas.indexOf(selDay);
|
|
429
|
+
var startDayDate = new Date(_xeUtils.default.getWhatDay(selectMonth, prevOffsetDate).getTime() + dateHMSTime);
|
|
430
|
+
for (var index = 0; index < 42; index++) {
|
|
431
|
+
var date = _xeUtils.default.getWhatDay(startDayDate, index);
|
|
432
|
+
var itemFullYear = date.getFullYear();
|
|
433
|
+
var itemMonth = date.getMonth();
|
|
434
|
+
var itemDate = date.getDate();
|
|
435
|
+
var isPrev = date < selectMonth;
|
|
436
|
+
days.push({
|
|
437
|
+
date: date,
|
|
438
|
+
isPrev: isPrev,
|
|
439
|
+
isCurrent: itemFullYear === selFullYear && itemMonth === selMonth,
|
|
440
|
+
isNow: itemFullYear === currFullYear && itemMonth === currMonth && itemDate === currDate,
|
|
441
|
+
isNext: !isPrev && selMonth !== itemMonth,
|
|
442
|
+
label: itemDate
|
|
443
|
+
});
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
return days;
|
|
447
|
+
},
|
|
448
|
+
computeDayDatas: function computeDayDatas() {
|
|
449
|
+
var $xeCalendar = this;
|
|
450
|
+
var dayList = $xeCalendar.computeDayList;
|
|
451
|
+
return _xeUtils.default.chunk(dayList, 7);
|
|
452
|
+
},
|
|
453
|
+
computeWeekDates: function computeWeekDates() {
|
|
454
|
+
var $xeCalendar = this;
|
|
455
|
+
var dayDatas = $xeCalendar.computeDayDatas;
|
|
456
|
+
var firstDayOfWeek = $xeCalendar.computeFirstDayOfWeek;
|
|
457
|
+
return dayDatas.map(function (list) {
|
|
458
|
+
var firstItem = list[0];
|
|
459
|
+
var item = {
|
|
460
|
+
date: firstItem.date,
|
|
461
|
+
isWeekNumber: true,
|
|
462
|
+
isPrev: false,
|
|
463
|
+
isCurrent: false,
|
|
464
|
+
isNow: false,
|
|
465
|
+
isNext: false,
|
|
466
|
+
label: _xeUtils.default.getYearWeek(firstItem.date, firstDayOfWeek)
|
|
467
|
+
};
|
|
468
|
+
return [item].concat(list);
|
|
469
|
+
});
|
|
470
|
+
}
|
|
471
|
+
}),
|
|
472
|
+
methods: {
|
|
473
|
+
//
|
|
474
|
+
// Method
|
|
475
|
+
//
|
|
476
|
+
dispatchEvent: function dispatchEvent(type, params, evnt) {
|
|
477
|
+
var $xeCalendar = this;
|
|
478
|
+
$xeCalendar.$emit(type, (0, _ui.createEvent)(evnt, {
|
|
479
|
+
$input: $xeCalendar
|
|
480
|
+
}, params));
|
|
481
|
+
},
|
|
482
|
+
emitModel: function emitModel(value) {
|
|
483
|
+
var $xeCalendar = this;
|
|
484
|
+
$xeCalendar.$emit('modelValue', value);
|
|
485
|
+
$xeCalendar.$emit('input', value);
|
|
486
|
+
},
|
|
487
|
+
parseDate: function parseDate(value, format) {
|
|
488
|
+
return _xeUtils.default.toStringDate(value, format);
|
|
489
|
+
},
|
|
490
|
+
handleChange: function handleChange(value, evnt) {
|
|
491
|
+
var $xeCalendar = this;
|
|
492
|
+
var props = $xeCalendar;
|
|
493
|
+
var reactData = $xeCalendar.reactData;
|
|
494
|
+
reactData.inputValue = value;
|
|
495
|
+
$xeCalendar.emitModel(value);
|
|
496
|
+
if (_xeUtils.default.toValueString(props.value) !== value) {
|
|
497
|
+
$xeCalendar.dispatchEvent('change', {
|
|
498
|
+
value: value
|
|
499
|
+
}, evnt);
|
|
500
|
+
}
|
|
501
|
+
},
|
|
502
|
+
dateParseValue: function dateParseValue(value) {
|
|
503
|
+
var $xeCalendar = this;
|
|
504
|
+
var props = $xeCalendar;
|
|
505
|
+
var reactData = $xeCalendar.reactData;
|
|
506
|
+
var type = props.type;
|
|
507
|
+
var dateLabelFormat = $xeCalendar.computeDateLabelFormat;
|
|
508
|
+
var dateValueFormat = $xeCalendar.computeDateValueFormat;
|
|
509
|
+
var firstDayOfWeek = $xeCalendar.computeFirstDayOfWeek;
|
|
510
|
+
var dValue = null;
|
|
511
|
+
var dLabel = '';
|
|
512
|
+
if (value) {
|
|
513
|
+
dValue = $xeCalendar.parseDate(value, dateValueFormat);
|
|
514
|
+
}
|
|
515
|
+
if (_xeUtils.default.isValidDate(dValue)) {
|
|
516
|
+
dLabel = _xeUtils.default.toDateString(dValue, dateLabelFormat, {
|
|
517
|
+
firstDay: firstDayOfWeek
|
|
518
|
+
});
|
|
519
|
+
// 由于年份和第几周是冲突的行为,所以需要特殊处理,判断是否跨年
|
|
520
|
+
if (dateLabelFormat && type === 'week') {
|
|
521
|
+
var firstWeekDate = _xeUtils.default.getWhatWeek(dValue, 0, firstDayOfWeek, firstDayOfWeek);
|
|
522
|
+
if (firstWeekDate.getFullYear() < dValue.getFullYear()) {
|
|
523
|
+
var yyIndex = dateLabelFormat.indexOf('yyyy');
|
|
524
|
+
if (yyIndex > -1) {
|
|
525
|
+
var yyNum = Number(dLabel.substring(yyIndex, yyIndex + 4));
|
|
526
|
+
if (yyNum && !isNaN(yyNum)) {
|
|
527
|
+
dLabel = dLabel.replace("".concat(yyNum), "".concat(yyNum - 1));
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
} else {
|
|
533
|
+
dValue = null;
|
|
534
|
+
}
|
|
535
|
+
reactData.datePanelValue = dValue;
|
|
536
|
+
reactData.datePanelLabel = dLabel;
|
|
537
|
+
},
|
|
538
|
+
/**
|
|
539
|
+
* 值变化时处理
|
|
540
|
+
*/
|
|
541
|
+
changeValue: function changeValue() {
|
|
542
|
+
var $xeCalendar = this;
|
|
543
|
+
var props = $xeCalendar;
|
|
544
|
+
var reactData = $xeCalendar.reactData;
|
|
545
|
+
var isCalendarType = $xeCalendar.computeIsCalendarType;
|
|
546
|
+
var inputValue = reactData.inputValue;
|
|
547
|
+
if (isCalendarType) {
|
|
548
|
+
$xeCalendar.dateParseValue(inputValue);
|
|
549
|
+
reactData.inputValue = props.multiple ? $xeCalendar.computeDateMultipleLabel : reactData.datePanelLabel;
|
|
550
|
+
}
|
|
551
|
+
},
|
|
552
|
+
/**
|
|
553
|
+
* 检查初始值
|
|
554
|
+
*/
|
|
555
|
+
initValue: function initValue() {
|
|
556
|
+
var $xeCalendar = this;
|
|
557
|
+
var isCalendarType = $xeCalendar.computeIsCalendarType;
|
|
558
|
+
if (isCalendarType) {
|
|
559
|
+
$xeCalendar.changeValue();
|
|
560
|
+
}
|
|
561
|
+
},
|
|
562
|
+
dateCheckMonth: function dateCheckMonth(date) {
|
|
563
|
+
var $xeCalendar = this;
|
|
564
|
+
var reactData = $xeCalendar.reactData;
|
|
565
|
+
var month = _xeUtils.default.getWhatMonth(date, 0, 'first');
|
|
566
|
+
if (!_xeUtils.default.isEqual(month, reactData.selectMonth)) {
|
|
567
|
+
reactData.selectMonth = month;
|
|
568
|
+
}
|
|
569
|
+
},
|
|
570
|
+
dateChange: function dateChange(date) {
|
|
571
|
+
var $xeCalendar = this;
|
|
572
|
+
var props = $xeCalendar;
|
|
573
|
+
var reactData = $xeCalendar.reactData;
|
|
574
|
+
var value = props.value,
|
|
575
|
+
multiple = props.multiple;
|
|
576
|
+
var dateValueFormat = $xeCalendar.computeDateValueFormat;
|
|
577
|
+
var firstDayOfWeek = $xeCalendar.computeFirstDayOfWeek;
|
|
578
|
+
if (props.type === 'week') {
|
|
579
|
+
var sWeek = _xeUtils.default.toNumber(props.selectDay);
|
|
580
|
+
date = _xeUtils.default.getWhatWeek(date, 0, sWeek, firstDayOfWeek);
|
|
581
|
+
}
|
|
582
|
+
var inpVal = _xeUtils.default.toDateString(date, dateValueFormat, {
|
|
583
|
+
firstDay: firstDayOfWeek
|
|
584
|
+
});
|
|
585
|
+
$xeCalendar.dateCheckMonth(date);
|
|
586
|
+
reactData.selectValue = date;
|
|
587
|
+
if (multiple) {
|
|
588
|
+
// 如果为多选
|
|
589
|
+
var dateMultipleValue = $xeCalendar.computeDateMultipleValue;
|
|
590
|
+
// 如果是日期类型
|
|
591
|
+
if (dateMultipleValue.some(function (val) {
|
|
592
|
+
return _xeUtils.default.isEqual(val, inpVal);
|
|
593
|
+
})) {
|
|
594
|
+
$xeCalendar.handleChange(dateMultipleValue.filter(function (val) {
|
|
595
|
+
return !_xeUtils.default.isEqual(val, inpVal);
|
|
596
|
+
}).join(','), {
|
|
597
|
+
type: 'update'
|
|
598
|
+
});
|
|
599
|
+
} else {
|
|
600
|
+
$xeCalendar.handleChange(dateMultipleValue.concat([inpVal]).join(','), {
|
|
601
|
+
type: 'update'
|
|
602
|
+
});
|
|
603
|
+
}
|
|
604
|
+
} else {
|
|
605
|
+
// 如果为单选
|
|
606
|
+
if (!_xeUtils.default.isEqual(value, inpVal)) {
|
|
607
|
+
$xeCalendar.handleChange(inpVal, {
|
|
608
|
+
type: 'update'
|
|
609
|
+
});
|
|
610
|
+
}
|
|
611
|
+
}
|
|
612
|
+
},
|
|
613
|
+
dateMonthHandle: function dateMonthHandle(date, offsetMonth) {
|
|
614
|
+
var $xeCalendar = this;
|
|
615
|
+
var reactData = $xeCalendar.reactData;
|
|
616
|
+
reactData.selectMonth = _xeUtils.default.getWhatMonth(date, offsetMonth, 'first');
|
|
617
|
+
},
|
|
618
|
+
dateNowHandle: function dateNowHandle() {
|
|
619
|
+
var $xeCalendar = this;
|
|
620
|
+
var reactData = $xeCalendar.reactData;
|
|
621
|
+
var currentDate = _xeUtils.default.getWhatDay(Date.now(), 0, 'first');
|
|
622
|
+
reactData.currentDate = currentDate;
|
|
623
|
+
$xeCalendar.dateMonthHandle(currentDate, 0);
|
|
624
|
+
},
|
|
625
|
+
dateToggleTypeEvent: function dateToggleTypeEvent() {
|
|
626
|
+
var $xeCalendar = this;
|
|
627
|
+
var reactData = $xeCalendar.reactData;
|
|
628
|
+
var datePanelType = reactData.datePanelType;
|
|
629
|
+
if (datePanelType === 'month' || datePanelType === 'quarter') {
|
|
630
|
+
datePanelType = 'year';
|
|
631
|
+
} else {
|
|
632
|
+
datePanelType = 'month';
|
|
633
|
+
}
|
|
634
|
+
reactData.datePanelType = datePanelType;
|
|
635
|
+
},
|
|
636
|
+
datePrevEvent: function datePrevEvent(evnt) {
|
|
637
|
+
var $xeCalendar = this;
|
|
638
|
+
var props = $xeCalendar;
|
|
639
|
+
var reactData = $xeCalendar.reactData;
|
|
640
|
+
var internalData = $xeCalendar.internalData;
|
|
641
|
+
var type = props.type;
|
|
642
|
+
var datePanelType = reactData.datePanelType,
|
|
643
|
+
selectMonth = reactData.selectMonth;
|
|
644
|
+
var yearSize = internalData.yearSize;
|
|
645
|
+
var isDisabledPrevDateBtn = $xeCalendar.computeIsDisabledPrevDateBtn;
|
|
646
|
+
if (!isDisabledPrevDateBtn) {
|
|
647
|
+
if (type === 'year') {
|
|
648
|
+
reactData.selectMonth = _xeUtils.default.getWhatYear(selectMonth, -yearSize, 'first');
|
|
649
|
+
} else if (type === 'month' || type === 'quarter') {
|
|
650
|
+
if (datePanelType === 'year') {
|
|
651
|
+
reactData.selectMonth = _xeUtils.default.getWhatYear(selectMonth, -yearSize, 'first');
|
|
652
|
+
} else {
|
|
653
|
+
reactData.selectMonth = _xeUtils.default.getWhatYear(selectMonth, -1, 'first');
|
|
654
|
+
}
|
|
655
|
+
} else {
|
|
656
|
+
if (datePanelType === 'year') {
|
|
657
|
+
reactData.selectMonth = _xeUtils.default.getWhatYear(selectMonth, -yearSize, 'first');
|
|
658
|
+
} else if (datePanelType === 'month') {
|
|
659
|
+
reactData.selectMonth = _xeUtils.default.getWhatYear(selectMonth, -1, 'first');
|
|
660
|
+
} else {
|
|
661
|
+
reactData.selectMonth = _xeUtils.default.getWhatMonth(selectMonth, -1, 'first');
|
|
662
|
+
}
|
|
663
|
+
}
|
|
664
|
+
$xeCalendar.dispatchEvent('date-prev', {
|
|
665
|
+
type: type
|
|
666
|
+
}, evnt);
|
|
667
|
+
}
|
|
668
|
+
},
|
|
669
|
+
dateTodayMonthEvent: function dateTodayMonthEvent(evnt) {
|
|
670
|
+
var $xeCalendar = this;
|
|
671
|
+
var props = $xeCalendar;
|
|
672
|
+
var reactData = $xeCalendar.reactData;
|
|
673
|
+
$xeCalendar.dateNowHandle();
|
|
674
|
+
if (!props.multiple) {
|
|
675
|
+
$xeCalendar.dateChange(reactData.currentDate);
|
|
676
|
+
}
|
|
677
|
+
$xeCalendar.dispatchEvent('date-today', {
|
|
678
|
+
type: props.type
|
|
679
|
+
}, evnt);
|
|
680
|
+
},
|
|
681
|
+
dateNextEvent: function dateNextEvent(evnt) {
|
|
682
|
+
var $xeCalendar = this;
|
|
683
|
+
var props = $xeCalendar;
|
|
684
|
+
var reactData = $xeCalendar.reactData;
|
|
685
|
+
var internalData = $xeCalendar.internalData;
|
|
686
|
+
var type = props.type;
|
|
687
|
+
var datePanelType = reactData.datePanelType,
|
|
688
|
+
selectMonth = reactData.selectMonth;
|
|
689
|
+
var yearSize = internalData.yearSize;
|
|
690
|
+
var isDisabledNextDateBtn = $xeCalendar.computeIsDisabledNextDateBtn;
|
|
691
|
+
if (!isDisabledNextDateBtn) {
|
|
692
|
+
if (type === 'year') {
|
|
693
|
+
reactData.selectMonth = _xeUtils.default.getWhatYear(selectMonth, yearSize, 'first');
|
|
694
|
+
} else if (type === 'month' || type === 'quarter') {
|
|
695
|
+
if (datePanelType === 'year') {
|
|
696
|
+
reactData.selectMonth = _xeUtils.default.getWhatYear(selectMonth, yearSize, 'first');
|
|
697
|
+
} else {
|
|
698
|
+
reactData.selectMonth = _xeUtils.default.getWhatYear(selectMonth, 1, 'first');
|
|
699
|
+
}
|
|
700
|
+
} else {
|
|
701
|
+
if (datePanelType === 'year') {
|
|
702
|
+
reactData.selectMonth = _xeUtils.default.getWhatYear(selectMonth, yearSize, 'first');
|
|
703
|
+
} else if (datePanelType === 'month') {
|
|
704
|
+
reactData.selectMonth = _xeUtils.default.getWhatYear(selectMonth, 1, 'first');
|
|
705
|
+
} else {
|
|
706
|
+
reactData.selectMonth = _xeUtils.default.getWhatMonth(selectMonth, 1, 'first');
|
|
707
|
+
}
|
|
708
|
+
}
|
|
709
|
+
$xeCalendar.dispatchEvent('date-next', {
|
|
710
|
+
type: type
|
|
711
|
+
}, evnt);
|
|
712
|
+
}
|
|
713
|
+
},
|
|
714
|
+
isDateDisabled: function isDateDisabled(item) {
|
|
715
|
+
var $xeCalendar = this;
|
|
716
|
+
var props = $xeCalendar;
|
|
717
|
+
var reactData = $xeCalendar.reactData;
|
|
718
|
+
var disabledMethod = props.disabledMethod;
|
|
719
|
+
var datePanelType = reactData.datePanelType;
|
|
720
|
+
return disabledMethod && disabledMethod({
|
|
721
|
+
type: datePanelType,
|
|
722
|
+
viewType: datePanelType,
|
|
723
|
+
date: item.date,
|
|
724
|
+
$calendar: $xeCalendar
|
|
725
|
+
});
|
|
726
|
+
},
|
|
727
|
+
dateSelectItem: function dateSelectItem(date) {
|
|
728
|
+
var $xeCalendar = this;
|
|
729
|
+
var props = $xeCalendar;
|
|
730
|
+
var reactData = $xeCalendar.reactData;
|
|
731
|
+
var type = props.type;
|
|
732
|
+
var datePanelType = reactData.datePanelType;
|
|
733
|
+
if (type === 'month') {
|
|
734
|
+
if (datePanelType === 'year') {
|
|
735
|
+
reactData.datePanelType = 'month';
|
|
736
|
+
$xeCalendar.dateCheckMonth(date);
|
|
737
|
+
} else {
|
|
738
|
+
$xeCalendar.dateChange(date);
|
|
739
|
+
}
|
|
740
|
+
} else if (type === 'year') {
|
|
741
|
+
$xeCalendar.dateChange(date);
|
|
742
|
+
} else if (type === 'quarter') {
|
|
743
|
+
if (datePanelType === 'year') {
|
|
744
|
+
reactData.datePanelType = 'quarter';
|
|
745
|
+
$xeCalendar.dateCheckMonth(date);
|
|
746
|
+
} else {
|
|
747
|
+
$xeCalendar.dateChange(date);
|
|
748
|
+
}
|
|
749
|
+
} else {
|
|
750
|
+
if (datePanelType === 'month') {
|
|
751
|
+
reactData.datePanelType = type === 'week' ? type : 'day';
|
|
752
|
+
$xeCalendar.dateCheckMonth(date);
|
|
753
|
+
} else if (datePanelType === 'year') {
|
|
754
|
+
reactData.datePanelType = 'month';
|
|
755
|
+
$xeCalendar.dateCheckMonth(date);
|
|
756
|
+
} else {
|
|
757
|
+
$xeCalendar.dateChange(date);
|
|
758
|
+
}
|
|
759
|
+
}
|
|
760
|
+
},
|
|
761
|
+
dateSelectEvent: function dateSelectEvent(item) {
|
|
762
|
+
var $xeCalendar = this;
|
|
763
|
+
if (!$xeCalendar.isDateDisabled(item)) {
|
|
764
|
+
$xeCalendar.dateSelectItem(item.date);
|
|
765
|
+
}
|
|
766
|
+
},
|
|
767
|
+
dateMoveDay: function dateMoveDay(offsetDay) {
|
|
768
|
+
var $xeCalendar = this;
|
|
769
|
+
if (!$xeCalendar.isDateDisabled({
|
|
770
|
+
date: offsetDay
|
|
771
|
+
})) {
|
|
772
|
+
var dayList = $xeCalendar.computeDayList;
|
|
773
|
+
if (!dayList.some(function (item) {
|
|
774
|
+
return _xeUtils.default.isDateSame(item.date, offsetDay, 'yyyyMMdd');
|
|
775
|
+
})) {
|
|
776
|
+
$xeCalendar.dateCheckMonth(offsetDay);
|
|
777
|
+
}
|
|
778
|
+
$xeCalendar.dateParseValue(offsetDay);
|
|
779
|
+
}
|
|
780
|
+
},
|
|
781
|
+
dateMoveYear: function dateMoveYear(offsetYear) {
|
|
782
|
+
var $xeCalendar = this;
|
|
783
|
+
if (!$xeCalendar.isDateDisabled({
|
|
784
|
+
date: offsetYear
|
|
785
|
+
})) {
|
|
786
|
+
var yearList = $xeCalendar.computeYearList;
|
|
787
|
+
if (!yearList.some(function (item) {
|
|
788
|
+
return _xeUtils.default.isDateSame(item.date, offsetYear, 'yyyy');
|
|
789
|
+
})) {
|
|
790
|
+
$xeCalendar.dateCheckMonth(offsetYear);
|
|
791
|
+
}
|
|
792
|
+
$xeCalendar.dateParseValue(offsetYear);
|
|
793
|
+
}
|
|
794
|
+
},
|
|
795
|
+
dateMoveQuarter: function dateMoveQuarter(offsetQuarter) {
|
|
796
|
+
var $xeCalendar = this;
|
|
797
|
+
if (!$xeCalendar.isDateDisabled({
|
|
798
|
+
date: offsetQuarter
|
|
799
|
+
})) {
|
|
800
|
+
var quarterList = $xeCalendar.computeQuarterList;
|
|
801
|
+
if (!quarterList.some(function (item) {
|
|
802
|
+
return _xeUtils.default.isDateSame(item.date, offsetQuarter, 'yyyyq');
|
|
803
|
+
})) {
|
|
804
|
+
$xeCalendar.dateCheckMonth(offsetQuarter);
|
|
805
|
+
}
|
|
806
|
+
$xeCalendar.dateParseValue(offsetQuarter);
|
|
807
|
+
}
|
|
808
|
+
},
|
|
809
|
+
dateMoveMonth: function dateMoveMonth(offsetMonth) {
|
|
810
|
+
var $xeCalendar = this;
|
|
811
|
+
if (!$xeCalendar.isDateDisabled({
|
|
812
|
+
date: offsetMonth
|
|
813
|
+
})) {
|
|
814
|
+
var monthList = $xeCalendar.computeMonthList;
|
|
815
|
+
if (!monthList.some(function (item) {
|
|
816
|
+
return _xeUtils.default.isDateSame(item.date, offsetMonth, 'yyyyMM');
|
|
817
|
+
})) {
|
|
818
|
+
$xeCalendar.dateCheckMonth(offsetMonth);
|
|
819
|
+
}
|
|
820
|
+
$xeCalendar.dateParseValue(offsetMonth);
|
|
821
|
+
}
|
|
822
|
+
},
|
|
823
|
+
dateMouseenterEvent: function dateMouseenterEvent(item) {
|
|
824
|
+
var $xeCalendar = this;
|
|
825
|
+
var reactData = $xeCalendar.reactData;
|
|
826
|
+
if (!$xeCalendar.isDateDisabled(item)) {
|
|
827
|
+
var datePanelType = reactData.datePanelType;
|
|
828
|
+
if (datePanelType === 'month') {
|
|
829
|
+
$xeCalendar.dateMoveMonth(item.date);
|
|
830
|
+
} else if (datePanelType === 'quarter') {
|
|
831
|
+
$xeCalendar.dateMoveQuarter(item.date);
|
|
832
|
+
} else if (datePanelType === 'year') {
|
|
833
|
+
$xeCalendar.dateMoveYear(item.date);
|
|
834
|
+
} else {
|
|
835
|
+
$xeCalendar.dateMoveDay(item.date);
|
|
836
|
+
}
|
|
837
|
+
}
|
|
838
|
+
},
|
|
839
|
+
dateConfirmEvent: function dateConfirmEvent() {},
|
|
840
|
+
dateOpenPanel: function dateOpenPanel() {
|
|
841
|
+
var $xeCalendar = this;
|
|
842
|
+
var props = $xeCalendar;
|
|
843
|
+
var reactData = $xeCalendar.reactData;
|
|
844
|
+
var type = props.type;
|
|
845
|
+
var dateValue = $xeCalendar.computeDateValue;
|
|
846
|
+
if (['year', 'quarter', 'month', 'week'].indexOf(type) > -1) {
|
|
847
|
+
reactData.datePanelType = type;
|
|
848
|
+
} else {
|
|
849
|
+
reactData.datePanelType = 'day';
|
|
850
|
+
}
|
|
851
|
+
reactData.currentDate = _xeUtils.default.getWhatDay(Date.now(), 0, 'first');
|
|
852
|
+
if (dateValue) {
|
|
853
|
+
$xeCalendar.dateMonthHandle(dateValue, 0);
|
|
854
|
+
$xeCalendar.dateParseValue(dateValue);
|
|
855
|
+
} else {
|
|
856
|
+
$xeCalendar.dateNowHandle();
|
|
857
|
+
}
|
|
858
|
+
},
|
|
859
|
+
//
|
|
860
|
+
// Render
|
|
861
|
+
//
|
|
862
|
+
renderDateLabel: function renderDateLabel(h, item, label) {
|
|
863
|
+
var $xeCalendar = this;
|
|
864
|
+
var props = $xeCalendar;
|
|
865
|
+
var reactData = $xeCalendar.reactData;
|
|
866
|
+
var festivalMethod = props.festivalMethod;
|
|
867
|
+
if (festivalMethod) {
|
|
868
|
+
var datePanelType = reactData.datePanelType;
|
|
869
|
+
var festivalRest = festivalMethod({
|
|
870
|
+
type: datePanelType,
|
|
871
|
+
viewType: datePanelType,
|
|
872
|
+
date: item.date,
|
|
873
|
+
$calendar: $xeCalendar
|
|
874
|
+
});
|
|
875
|
+
var festivalItem = festivalRest ? _xeUtils.default.isString(festivalRest) ? {
|
|
876
|
+
label: festivalRest
|
|
877
|
+
} : festivalRest : {};
|
|
878
|
+
var extraItem = festivalItem.extra ? _xeUtils.default.isString(festivalItem.extra) ? {
|
|
879
|
+
label: festivalItem.extra
|
|
880
|
+
} : festivalItem.extra : null;
|
|
881
|
+
var labels = [h('span', {
|
|
882
|
+
class: ['vxe-calendar--date-label', {
|
|
883
|
+
'is-notice': festivalItem.notice
|
|
884
|
+
}]
|
|
885
|
+
}, extraItem && extraItem.label ? [h('span', "".concat(label || '')), h('span', {
|
|
886
|
+
class: ['vxe-calendar--date-label--extra', extraItem.important ? 'is-important' : '', extraItem.className],
|
|
887
|
+
style: extraItem.style
|
|
888
|
+
}, _xeUtils.default.toValueString(extraItem.label))] : ["".concat(label || '')])];
|
|
889
|
+
var festivalLabel = festivalItem.label;
|
|
890
|
+
if (festivalLabel) {
|
|
891
|
+
// 默认最多支持3个节日重叠
|
|
892
|
+
var festivalLabels = _xeUtils.default.toValueString(festivalLabel).split(',');
|
|
893
|
+
labels.push(h('span', {
|
|
894
|
+
class: ['vxe-calendar--date-festival', festivalItem.important ? 'is-important' : '', festivalItem.className],
|
|
895
|
+
style: festivalItem.style
|
|
896
|
+
}, [festivalLabels.length > 1 ? h('span', {
|
|
897
|
+
class: ['vxe-calendar--date-festival--overlap', "overlap--".concat(festivalLabels.length)]
|
|
898
|
+
}, festivalLabels.map(function (label) {
|
|
899
|
+
return h('span', label.substring(0, 3));
|
|
900
|
+
})) : h('span', {
|
|
901
|
+
class: 'vxe-calendar--date-festival--label'
|
|
902
|
+
}, festivalLabels[0].substring(0, 3))]));
|
|
903
|
+
}
|
|
904
|
+
return labels;
|
|
905
|
+
}
|
|
906
|
+
return "".concat(label || '');
|
|
907
|
+
},
|
|
908
|
+
renderDateDayTable: function renderDateDayTable(h) {
|
|
909
|
+
var $xeCalendar = this;
|
|
910
|
+
var props = $xeCalendar;
|
|
911
|
+
var reactData = $xeCalendar.reactData;
|
|
912
|
+
var multiple = props.multiple;
|
|
913
|
+
var datePanelType = reactData.datePanelType,
|
|
914
|
+
datePanelValue = reactData.datePanelValue;
|
|
915
|
+
var dateValue = $xeCalendar.computeDateValue;
|
|
916
|
+
var dateHeaders = $xeCalendar.computeDateHeaders;
|
|
917
|
+
var dayDatas = $xeCalendar.computeDayDatas;
|
|
918
|
+
var dateListValue = $xeCalendar.computeDateListValue;
|
|
919
|
+
var matchFormat = 'yyyyMMdd';
|
|
920
|
+
return [h('table', {
|
|
921
|
+
class: "vxe-calendar--date-".concat(datePanelType, "-view"),
|
|
922
|
+
attrs: {
|
|
923
|
+
cellspacing: 0,
|
|
924
|
+
cellpadding: 0,
|
|
925
|
+
border: 0
|
|
926
|
+
}
|
|
927
|
+
}, [h('tr', dateHeaders.map(function (item) {
|
|
928
|
+
return h('th', {
|
|
929
|
+
class: 'vxe-calendar--view-th'
|
|
930
|
+
}, item.label);
|
|
931
|
+
}))].concat(_toConsumableArray(dayDatas.map(function (rows) {
|
|
932
|
+
return h('tr', rows.map(function (item) {
|
|
933
|
+
return h('td', {
|
|
934
|
+
class: ['vxe-calendar--view-td', {
|
|
935
|
+
'is--prev': item.isPrev,
|
|
936
|
+
'is--current': item.isCurrent,
|
|
937
|
+
'is--now': item.isNow,
|
|
938
|
+
'is--next': item.isNext,
|
|
939
|
+
'is--disabled': $xeCalendar.isDateDisabled(item),
|
|
940
|
+
'is--selected': multiple ? dateListValue.some(function (val) {
|
|
941
|
+
return _xeUtils.default.isDateSame(val, item.date, matchFormat);
|
|
942
|
+
}) : _xeUtils.default.isDateSame(dateValue, item.date, matchFormat),
|
|
943
|
+
'is--hover': _xeUtils.default.isDateSame(datePanelValue, item.date, matchFormat)
|
|
944
|
+
}],
|
|
945
|
+
on: {
|
|
946
|
+
click: function click() {
|
|
947
|
+
return $xeCalendar.dateSelectEvent(item);
|
|
948
|
+
},
|
|
949
|
+
mouseenter: function mouseenter() {
|
|
950
|
+
return $xeCalendar.dateMouseenterEvent(item);
|
|
951
|
+
}
|
|
952
|
+
}
|
|
953
|
+
}, $xeCalendar.renderDateLabel(h, item, item.label));
|
|
954
|
+
}));
|
|
955
|
+
}))))];
|
|
956
|
+
},
|
|
957
|
+
renderDateWeekTable: function renderDateWeekTable(h) {
|
|
958
|
+
var $xeCalendar = this;
|
|
959
|
+
var props = $xeCalendar;
|
|
960
|
+
var reactData = $xeCalendar.reactData;
|
|
961
|
+
var multiple = props.multiple;
|
|
962
|
+
var datePanelType = reactData.datePanelType,
|
|
963
|
+
datePanelValue = reactData.datePanelValue;
|
|
964
|
+
var dateValue = $xeCalendar.computeDateValue;
|
|
965
|
+
var weekHeaders = $xeCalendar.computeWeekHeaders;
|
|
966
|
+
var weekDates = $xeCalendar.computeWeekDates;
|
|
967
|
+
var dateListValue = $xeCalendar.computeDateListValue;
|
|
968
|
+
var matchFormat = 'yyyyMMdd';
|
|
969
|
+
return [h('table', {
|
|
970
|
+
class: "vxe-calendar--date-".concat(datePanelType, "-view"),
|
|
971
|
+
attrs: {
|
|
972
|
+
cellspacing: 0,
|
|
973
|
+
cellpadding: 0,
|
|
974
|
+
border: 0
|
|
975
|
+
}
|
|
976
|
+
}, [h('tr', weekHeaders.map(function (item) {
|
|
977
|
+
return h('td', {
|
|
978
|
+
class: 'vxe-calendar--view-th'
|
|
979
|
+
}, item.label);
|
|
980
|
+
}))].concat(_toConsumableArray(weekDates.map(function (rows) {
|
|
981
|
+
var isSelected = multiple ? rows.some(function (item) {
|
|
982
|
+
return dateListValue.some(function (val) {
|
|
983
|
+
return _xeUtils.default.isDateSame(val, item.date, matchFormat);
|
|
984
|
+
});
|
|
985
|
+
}) : rows.some(function (item) {
|
|
986
|
+
return _xeUtils.default.isDateSame(dateValue, item.date, matchFormat);
|
|
987
|
+
});
|
|
988
|
+
var isHover = rows.some(function (item) {
|
|
989
|
+
return _xeUtils.default.isDateSame(datePanelValue, item.date, matchFormat);
|
|
990
|
+
});
|
|
991
|
+
return h('tr', rows.map(function (item) {
|
|
992
|
+
return h('td', {
|
|
993
|
+
class: ['vxe-calendar--view-td', {
|
|
994
|
+
'is--prev': item.isPrev,
|
|
995
|
+
'is--current': item.isCurrent,
|
|
996
|
+
'is--now': item.isNow,
|
|
997
|
+
'is--next': item.isNext,
|
|
998
|
+
'is--disabled': $xeCalendar.isDateDisabled(item),
|
|
999
|
+
'is--selected': isSelected,
|
|
1000
|
+
'is--hover': isHover
|
|
1001
|
+
}],
|
|
1002
|
+
on: {
|
|
1003
|
+
click: function click() {
|
|
1004
|
+
return $xeCalendar.dateSelectEvent(item);
|
|
1005
|
+
},
|
|
1006
|
+
mouseenter: function mouseenter() {
|
|
1007
|
+
return $xeCalendar.dateMouseenterEvent(item);
|
|
1008
|
+
}
|
|
1009
|
+
}
|
|
1010
|
+
}, $xeCalendar.renderDateLabel(h, item, item.label));
|
|
1011
|
+
}));
|
|
1012
|
+
}))))];
|
|
1013
|
+
},
|
|
1014
|
+
renderDateMonthTable: function renderDateMonthTable(h) {
|
|
1015
|
+
var $xeCalendar = this;
|
|
1016
|
+
var props = $xeCalendar;
|
|
1017
|
+
var reactData = $xeCalendar.reactData;
|
|
1018
|
+
var multiple = props.multiple;
|
|
1019
|
+
var datePanelType = reactData.datePanelType,
|
|
1020
|
+
datePanelValue = reactData.datePanelValue;
|
|
1021
|
+
var dateValue = $xeCalendar.computeDateValue;
|
|
1022
|
+
var monthDatas = $xeCalendar.computeMonthDatas;
|
|
1023
|
+
var dateListValue = $xeCalendar.computeDateListValue;
|
|
1024
|
+
var matchFormat = 'yyyyMM';
|
|
1025
|
+
return [h('table', {
|
|
1026
|
+
class: "vxe-calendar--date-".concat(datePanelType, "-view"),
|
|
1027
|
+
attrs: {
|
|
1028
|
+
cellspacing: 0,
|
|
1029
|
+
cellpadding: 0,
|
|
1030
|
+
border: 0
|
|
1031
|
+
}
|
|
1032
|
+
}, [h('tbody', monthDatas.map(function (rows) {
|
|
1033
|
+
return h('tr', rows.map(function (item) {
|
|
1034
|
+
return h('td', {
|
|
1035
|
+
class: ['vxe-calendar--view-td', {
|
|
1036
|
+
'is--prev': item.isPrev,
|
|
1037
|
+
'is--current': item.isCurrent,
|
|
1038
|
+
'is--now': item.isNow,
|
|
1039
|
+
'is--next': item.isNext,
|
|
1040
|
+
'is--disabled': $xeCalendar.isDateDisabled(item),
|
|
1041
|
+
'is--selected': multiple ? dateListValue.some(function (val) {
|
|
1042
|
+
return _xeUtils.default.isDateSame(val, item.date, matchFormat);
|
|
1043
|
+
}) : _xeUtils.default.isDateSame(dateValue, item.date, matchFormat),
|
|
1044
|
+
'is--hover': _xeUtils.default.isDateSame(datePanelValue, item.date, matchFormat)
|
|
1045
|
+
}],
|
|
1046
|
+
on: {
|
|
1047
|
+
click: function click() {
|
|
1048
|
+
return $xeCalendar.dateSelectEvent(item);
|
|
1049
|
+
},
|
|
1050
|
+
mouseenter: function mouseenter() {
|
|
1051
|
+
return $xeCalendar.dateMouseenterEvent(item);
|
|
1052
|
+
}
|
|
1053
|
+
}
|
|
1054
|
+
}, $xeCalendar.renderDateLabel(h, item, (0, _ui.getI18n)("vxe.input.date.months.m".concat(item.month))));
|
|
1055
|
+
}));
|
|
1056
|
+
}))])];
|
|
1057
|
+
},
|
|
1058
|
+
renderDateQuarterTable: function renderDateQuarterTable(h) {
|
|
1059
|
+
var $xeCalendar = this;
|
|
1060
|
+
var props = $xeCalendar;
|
|
1061
|
+
var reactData = $xeCalendar.reactData;
|
|
1062
|
+
var multiple = props.multiple;
|
|
1063
|
+
var datePanelType = reactData.datePanelType,
|
|
1064
|
+
datePanelValue = reactData.datePanelValue;
|
|
1065
|
+
var dateValue = $xeCalendar.computeDateValue;
|
|
1066
|
+
var quarterDatas = $xeCalendar.computeQuarterDatas;
|
|
1067
|
+
var dateListValue = $xeCalendar.computeDateListValue;
|
|
1068
|
+
var matchFormat = 'yyyyq';
|
|
1069
|
+
return [h('table', {
|
|
1070
|
+
class: "vxe-calendar--date-".concat(datePanelType, "-view"),
|
|
1071
|
+
attrs: {
|
|
1072
|
+
cellspacing: 0,
|
|
1073
|
+
cellpadding: 0,
|
|
1074
|
+
border: 0
|
|
1075
|
+
}
|
|
1076
|
+
}, [h('tbody', quarterDatas.map(function (rows) {
|
|
1077
|
+
return h('tr', rows.map(function (item) {
|
|
1078
|
+
return h('td', {
|
|
1079
|
+
class: ['vxe-calendar--view-td', {
|
|
1080
|
+
'is--prev': item.isPrev,
|
|
1081
|
+
'is--current': item.isCurrent,
|
|
1082
|
+
'is--now': item.isNow,
|
|
1083
|
+
'is--next': item.isNext,
|
|
1084
|
+
'is--disabled': $xeCalendar.isDateDisabled(item),
|
|
1085
|
+
'is--selected': multiple ? dateListValue.some(function (val) {
|
|
1086
|
+
return _xeUtils.default.isDateSame(val, item.date, matchFormat);
|
|
1087
|
+
}) : _xeUtils.default.isDateSame(dateValue, item.date, matchFormat),
|
|
1088
|
+
'is--hover': _xeUtils.default.isDateSame(datePanelValue, item.date, matchFormat)
|
|
1089
|
+
}],
|
|
1090
|
+
on: {
|
|
1091
|
+
click: function click() {
|
|
1092
|
+
return $xeCalendar.dateSelectEvent(item);
|
|
1093
|
+
},
|
|
1094
|
+
mouseenter: function mouseenter() {
|
|
1095
|
+
return $xeCalendar.dateMouseenterEvent(item);
|
|
1096
|
+
}
|
|
1097
|
+
}
|
|
1098
|
+
}, $xeCalendar.renderDateLabel(h, item, (0, _ui.getI18n)("vxe.input.date.quarters.q".concat(item.quarter))));
|
|
1099
|
+
}));
|
|
1100
|
+
}))])];
|
|
1101
|
+
},
|
|
1102
|
+
renderDateYearTable: function renderDateYearTable(h) {
|
|
1103
|
+
var $xeCalendar = this;
|
|
1104
|
+
var props = $xeCalendar;
|
|
1105
|
+
var reactData = $xeCalendar.reactData;
|
|
1106
|
+
var multiple = props.multiple;
|
|
1107
|
+
var datePanelType = reactData.datePanelType,
|
|
1108
|
+
datePanelValue = reactData.datePanelValue;
|
|
1109
|
+
var dateValue = $xeCalendar.computeDateValue;
|
|
1110
|
+
var yearDatas = $xeCalendar.computeYearDatas;
|
|
1111
|
+
var dateListValue = $xeCalendar.computeDateListValue;
|
|
1112
|
+
var matchFormat = 'yyyy';
|
|
1113
|
+
return [h('table', {
|
|
1114
|
+
class: "vxe-calendar--date-".concat(datePanelType, "-view"),
|
|
1115
|
+
attrs: {
|
|
1116
|
+
cellspacing: 0,
|
|
1117
|
+
cellpadding: 0,
|
|
1118
|
+
border: 0
|
|
1119
|
+
}
|
|
1120
|
+
}, [h('tbody', yearDatas.map(function (rows) {
|
|
1121
|
+
return h('tr', rows.map(function (item) {
|
|
1122
|
+
return h('td', {
|
|
1123
|
+
class: ['vxe-calendar--view-td', {
|
|
1124
|
+
'is--prev': item.isPrev,
|
|
1125
|
+
'is--current': item.isCurrent,
|
|
1126
|
+
'is--now': item.isNow,
|
|
1127
|
+
'is--next': item.isNext,
|
|
1128
|
+
'is--disabled': $xeCalendar.isDateDisabled(item),
|
|
1129
|
+
'is--selected': multiple ? dateListValue.some(function (val) {
|
|
1130
|
+
return _xeUtils.default.isDateSame(val, item.date, matchFormat);
|
|
1131
|
+
}) : _xeUtils.default.isDateSame(dateValue, item.date, matchFormat),
|
|
1132
|
+
'is--hover': _xeUtils.default.isDateSame(datePanelValue, item.date, matchFormat)
|
|
1133
|
+
}],
|
|
1134
|
+
on: {
|
|
1135
|
+
click: function click() {
|
|
1136
|
+
return $xeCalendar.dateSelectEvent(item);
|
|
1137
|
+
},
|
|
1138
|
+
mouseenter: function mouseenter() {
|
|
1139
|
+
return $xeCalendar.dateMouseenterEvent(item);
|
|
1140
|
+
}
|
|
1141
|
+
}
|
|
1142
|
+
}, $xeCalendar.renderDateLabel(h, item, item.year));
|
|
1143
|
+
}));
|
|
1144
|
+
}))])];
|
|
1145
|
+
},
|
|
1146
|
+
renderDateTable: function renderDateTable(h) {
|
|
1147
|
+
var $xeCalendar = this;
|
|
1148
|
+
var reactData = $xeCalendar.reactData;
|
|
1149
|
+
var datePanelType = reactData.datePanelType;
|
|
1150
|
+
switch (datePanelType) {
|
|
1151
|
+
case 'week':
|
|
1152
|
+
return $xeCalendar.renderDateWeekTable(h);
|
|
1153
|
+
case 'month':
|
|
1154
|
+
return $xeCalendar.renderDateMonthTable(h);
|
|
1155
|
+
case 'quarter':
|
|
1156
|
+
return $xeCalendar.renderDateQuarterTable(h);
|
|
1157
|
+
case 'year':
|
|
1158
|
+
return $xeCalendar.renderDateYearTable(h);
|
|
1159
|
+
}
|
|
1160
|
+
return $xeCalendar.renderDateDayTable(h);
|
|
1161
|
+
},
|
|
1162
|
+
renderDatePanel: function renderDatePanel(h) {
|
|
1163
|
+
var $xeCalendar = this;
|
|
1164
|
+
var props = $xeCalendar;
|
|
1165
|
+
var reactData = $xeCalendar.reactData;
|
|
1166
|
+
var multiple = props.multiple;
|
|
1167
|
+
var datePanelType = reactData.datePanelType;
|
|
1168
|
+
var isDisabledPrevDateBtn = $xeCalendar.computeIsDisabledPrevDateBtn;
|
|
1169
|
+
var isDisabledNextDateBtn = $xeCalendar.computeIsDisabledNextDateBtn;
|
|
1170
|
+
var selectDatePanelLabel = $xeCalendar.computeSelectDatePanelLabel;
|
|
1171
|
+
return [h('div', {
|
|
1172
|
+
class: 'vxe-calendar--header'
|
|
1173
|
+
}, [h('div', {
|
|
1174
|
+
class: 'vxe-calendar--type-wrapper'
|
|
1175
|
+
}, [h(_button.default, {
|
|
1176
|
+
props: {
|
|
1177
|
+
disabled: datePanelType === 'year',
|
|
1178
|
+
content: selectDatePanelLabel
|
|
1179
|
+
},
|
|
1180
|
+
on: {
|
|
1181
|
+
click: $xeCalendar.dateToggleTypeEvent
|
|
1182
|
+
}
|
|
1183
|
+
})]), h('div', {
|
|
1184
|
+
class: 'vxe-calendar--btn-wrapper'
|
|
1185
|
+
}, [h(_button.default, {
|
|
1186
|
+
props: {
|
|
1187
|
+
disabled: isDisabledPrevDateBtn,
|
|
1188
|
+
icon: 'vxe-icon-caret-left'
|
|
1189
|
+
},
|
|
1190
|
+
on: {
|
|
1191
|
+
click: $xeCalendar.datePrevEvent
|
|
1192
|
+
}
|
|
1193
|
+
}), h(_button.default, {
|
|
1194
|
+
props: {
|
|
1195
|
+
icon: 'vxe-icon-dot'
|
|
1196
|
+
},
|
|
1197
|
+
on: {
|
|
1198
|
+
click: $xeCalendar.dateTodayMonthEvent
|
|
1199
|
+
}
|
|
1200
|
+
}), h(_button.default, {
|
|
1201
|
+
props: {
|
|
1202
|
+
disabled: isDisabledNextDateBtn,
|
|
1203
|
+
icon: 'vxe-icon-caret-right'
|
|
1204
|
+
},
|
|
1205
|
+
on: {
|
|
1206
|
+
click: $xeCalendar.dateNextEvent
|
|
1207
|
+
}
|
|
1208
|
+
}), multiple && $xeCalendar.computeSupportMultiples ? h('span', {
|
|
1209
|
+
class: 'vxe-calendar--btn vxe-calendar--confirm-btn'
|
|
1210
|
+
}, [h('button', {
|
|
1211
|
+
class: 'vxe-calendar--confirm',
|
|
1212
|
+
attrs: {
|
|
1213
|
+
type: 'button'
|
|
1214
|
+
},
|
|
1215
|
+
on: {
|
|
1216
|
+
click: $xeCalendar.dateConfirmEvent
|
|
1217
|
+
}
|
|
1218
|
+
}, (0, _ui.getI18n)('vxe.button.confirm'))]) : null])]), h('div', {
|
|
1219
|
+
class: 'vxe-calendar--body'
|
|
1220
|
+
}, $xeCalendar.renderDateTable(h))];
|
|
1221
|
+
},
|
|
1222
|
+
renderVN: function renderVN(h) {
|
|
1223
|
+
var $xeCalendar = this;
|
|
1224
|
+
var props = $xeCalendar;
|
|
1225
|
+
var className = props.className,
|
|
1226
|
+
type = props.type;
|
|
1227
|
+
var vSize = $xeCalendar.computeSize;
|
|
1228
|
+
var isDisabled = $xeCalendar.computeIsDisabled;
|
|
1229
|
+
var calendarStyle = $xeCalendar.computeCalendarStyle;
|
|
1230
|
+
return h('div', {
|
|
1231
|
+
ref: 'refElem',
|
|
1232
|
+
class: ['vxe-calendar', "type--".concat(type), className, _defineProperty(_defineProperty({}, "size--".concat(vSize), vSize), 'is--disabled', isDisabled)],
|
|
1233
|
+
style: calendarStyle
|
|
1234
|
+
}, [$xeCalendar.renderDatePanel(h)]);
|
|
1235
|
+
}
|
|
1236
|
+
},
|
|
1237
|
+
watch: {
|
|
1238
|
+
value: function value(val) {
|
|
1239
|
+
var $xeCalendar = this;
|
|
1240
|
+
var reactData = $xeCalendar.reactData;
|
|
1241
|
+
reactData.inputValue = val;
|
|
1242
|
+
$xeCalendar.changeValue();
|
|
1243
|
+
},
|
|
1244
|
+
type: function type() {
|
|
1245
|
+
var $xeCalendar = this;
|
|
1246
|
+
var reactData = $xeCalendar.reactData;
|
|
1247
|
+
// 切换类型是重置内置变量
|
|
1248
|
+
Object.assign(reactData, {
|
|
1249
|
+
selectValue: null,
|
|
1250
|
+
inputValue: null,
|
|
1251
|
+
datePanelValue: null,
|
|
1252
|
+
datePanelLabel: '',
|
|
1253
|
+
datePanelType: 'day',
|
|
1254
|
+
selectMonth: null,
|
|
1255
|
+
currentDate: null
|
|
1256
|
+
});
|
|
1257
|
+
$xeCalendar.initValue();
|
|
1258
|
+
$xeCalendar.dateOpenPanel();
|
|
1259
|
+
},
|
|
1260
|
+
computeDateLabelFormat: function computeDateLabelFormat() {
|
|
1261
|
+
var $xeCalendar = this;
|
|
1262
|
+
var props = $xeCalendar;
|
|
1263
|
+
var reactData = $xeCalendar.reactData;
|
|
1264
|
+
var isCalendarType = $xeCalendar.computeIsCalendarType;
|
|
1265
|
+
if (isCalendarType) {
|
|
1266
|
+
$xeCalendar.dateParseValue(reactData.datePanelValue);
|
|
1267
|
+
reactData.inputValue = props.multiple ? $xeCalendar.computeDateMultipleLabel : reactData.datePanelLabel;
|
|
1268
|
+
}
|
|
1269
|
+
}
|
|
1270
|
+
},
|
|
1271
|
+
created: function created() {
|
|
1272
|
+
var $xeCalendar = this;
|
|
1273
|
+
var props = $xeCalendar;
|
|
1274
|
+
var reactData = $xeCalendar.reactData;
|
|
1275
|
+
reactData.selectValue = props.value;
|
|
1276
|
+
reactData.inputValue = props.value;
|
|
1277
|
+
$xeCalendar.initValue();
|
|
1278
|
+
},
|
|
1279
|
+
mounted: function mounted() {
|
|
1280
|
+
var $xeCalendar = this;
|
|
1281
|
+
$xeCalendar.dateOpenPanel();
|
|
1282
|
+
},
|
|
1283
|
+
render: function render(h) {
|
|
1284
|
+
return this.renderVN(h);
|
|
1285
|
+
}
|
|
1286
|
+
});
|