vxe-pc-ui 4.5.36 → 4.6.0
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/es/calendar/src/calendar.js +1 -1
- package/es/components.js +6 -0
- package/es/date-panel/index.js +12 -0
- package/es/date-panel/src/date-panel.js +1587 -0
- package/es/date-panel/src/util.js +191 -0
- package/es/date-panel/style.css +443 -0
- package/es/date-panel/style.min.css +1 -0
- package/es/date-picker/index.js +0 -1
- package/es/date-picker/src/date-picker.js +274 -1663
- package/es/date-picker/style.css +68 -810
- package/es/date-picker/style.min.css +1 -1
- package/es/date-range-picker/index.js +12 -0
- package/es/date-range-picker/src/date-range-picker.js +1121 -0
- package/es/date-range-picker/style.css +284 -0
- package/es/date-range-picker/style.min.css +1 -0
- package/es/form/render/index.js +21 -15
- package/es/icon/style.css +1 -1
- package/es/input/src/input.js +1 -1
- package/es/language/ar-EG.js +1 -1
- package/es/language/de-DE.js +1 -1
- package/es/language/en-US.js +1 -1
- package/es/language/es-ES.js +1 -1
- package/es/language/fr-FR.d.ts +2 -0
- package/es/language/fr-FR.js +1 -1
- package/es/language/hu-HU.js +1 -1
- package/es/language/hy-AM.d.ts +2 -0
- package/es/language/hy-AM.js +1 -1
- package/es/language/id-ID.d.ts +2 -0
- package/es/language/id-ID.js +1 -1
- package/es/language/it-IT.d.ts +2 -0
- package/es/language/it-IT.js +1 -1
- package/es/language/ja-JP.js +1 -1
- package/es/language/ko-KR.js +1 -1
- package/es/language/ms-MY.d.ts +2 -0
- package/es/language/ms-MY.js +708 -0
- package/es/language/nb-NO.d.ts +2 -0
- package/es/language/nb-NO.js +1 -1
- package/es/language/pt-BR.js +1 -1
- package/es/language/ru-RU.js +1 -1
- package/es/language/th-TH.d.ts +2 -0
- package/es/language/th-TH.js +1 -1
- package/es/language/ug-CN.d.ts +2 -0
- package/es/language/ug-CN.js +1 -1
- package/es/language/uk-UA.js +1 -1
- package/es/language/uz-UZ.d.ts +2 -0
- package/es/language/uz-UZ.js +708 -0
- package/es/language/vi-VN.d.ts +2 -0
- package/es/language/vi-VN.js +1 -1
- package/es/language/zh-CHT.d.ts +2 -0
- package/es/language/zh-CHT.js +1 -1
- package/es/language/zh-CN.js +1 -1
- package/es/print/src/print.js +4 -0
- package/es/print/src/util.js +46 -3
- package/es/pulldown/style.css +15 -0
- package/es/pulldown/style.min.css +1 -1
- package/es/select/style.css +15 -0
- package/es/select/style.min.css +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table-select/style.css +15 -0
- package/es/table-select/style.min.css +1 -1
- package/es/tree-select/style.css +15 -0
- package/es/tree-select/style.min.css +1 -1
- package/es/ui/index.js +31 -6
- package/es/ui/src/log.js +1 -1
- package/es/vxe-date-panel/index.js +3 -0
- package/es/vxe-date-panel/style.css +443 -0
- package/es/vxe-date-panel/style.min.css +1 -0
- package/es/vxe-date-picker/style.css +68 -810
- package/es/vxe-date-picker/style.min.css +1 -1
- package/es/vxe-date-range-picker/index.js +3 -0
- package/es/vxe-date-range-picker/style.css +284 -0
- package/es/vxe-date-range-picker/style.min.css +1 -0
- package/es/vxe-pulldown/style.css +15 -0
- package/es/vxe-pulldown/style.min.css +1 -1
- package/es/vxe-select/style.css +15 -0
- package/es/vxe-select/style.min.css +1 -1
- package/es/vxe-table-select/style.css +15 -0
- package/es/vxe-table-select/style.min.css +1 -1
- package/es/vxe-tree-select/style.css +15 -0
- package/es/vxe-tree-select/style.min.css +1 -1
- package/lib/calendar/src/calendar.js +1 -1
- package/lib/calendar/src/calendar.min.js +1 -1
- package/lib/components.js +25 -1
- package/lib/components.min.js +1 -1
- package/lib/date-panel/index.js +19 -0
- package/lib/date-panel/index.min.js +1 -0
- package/lib/date-panel/src/date-panel.js +1667 -0
- package/lib/date-panel/src/date-panel.min.js +1 -0
- package/lib/date-panel/src/util.js +219 -0
- package/lib/date-panel/src/util.min.js +1 -0
- package/lib/date-panel/style/index.js +1 -0
- package/lib/date-panel/style/style.css +443 -0
- package/lib/date-panel/style/style.min.css +1 -0
- package/lib/date-picker/index.js +0 -1
- package/lib/date-picker/index.min.js +1 -1
- package/lib/date-picker/src/date-picker.js +288 -1717
- package/lib/date-picker/src/date-picker.min.js +1 -1
- package/lib/date-picker/style/style.css +68 -810
- package/lib/date-picker/style/style.min.css +1 -1
- package/lib/date-range-picker/index.js +19 -0
- package/lib/date-range-picker/index.min.js +1 -0
- package/lib/date-range-picker/src/date-range-picker.js +1194 -0
- package/lib/date-range-picker/src/date-range-picker.min.js +1 -0
- package/lib/date-range-picker/style/index.js +1 -0
- package/lib/date-range-picker/style/style.css +284 -0
- package/lib/date-range-picker/style/style.min.css +1 -0
- package/lib/form/render/index.js +21 -15
- package/lib/form/render/index.min.js +1 -1
- package/lib/icon/style/style.css +1 -1
- package/lib/icon/style/style.min.css +1 -1
- package/lib/index.umd.js +2954 -1252
- package/lib/index.umd.min.js +1 -1
- package/lib/input/src/input.js +1 -1
- package/lib/input/src/input.min.js +1 -1
- package/lib/language/ar-EG.d.ts +2 -0
- package/lib/language/ar-EG.js +1 -1
- package/lib/language/ar-EG.min.js +1 -1
- package/lib/language/ar-EG.umd.js +728 -0
- package/lib/language/de-DE.d.ts +2 -0
- package/lib/language/de-DE.js +1 -1
- package/lib/language/de-DE.min.js +1 -1
- package/lib/language/de-DE.umd.js +728 -0
- package/lib/language/en-US.js +1 -1
- package/lib/language/en-US.min.js +1 -1
- package/lib/language/en-US.umd.js +1 -1
- package/lib/language/es-ES.js +1 -1
- package/lib/language/es-ES.min.js +1 -1
- package/lib/language/es-ES.umd.js +1 -1
- package/lib/language/fr-FR.d.ts +2 -0
- package/lib/language/fr-FR.js +1 -1
- package/lib/language/fr-FR.min.js +1 -1
- package/lib/language/fr-FR.umd.js +728 -0
- package/lib/language/hu-HU.js +1 -1
- package/lib/language/hu-HU.min.js +1 -1
- package/lib/language/hu-HU.umd.js +1 -1
- package/lib/language/hy-AM.d.ts +2 -0
- package/lib/language/hy-AM.js +1 -1
- package/lib/language/hy-AM.min.js +1 -1
- package/lib/language/hy-AM.umd.js +728 -0
- package/lib/language/id-ID.d.ts +2 -0
- package/lib/language/id-ID.js +1 -1
- package/lib/language/id-ID.min.js +1 -1
- package/lib/language/id-ID.umd.js +728 -0
- package/lib/language/it-IT.d.ts +2 -0
- package/lib/language/it-IT.js +1 -1
- package/lib/language/it-IT.min.js +1 -1
- package/lib/language/it-IT.umd.js +728 -0
- package/lib/language/ja-JP.js +1 -1
- package/lib/language/ja-JP.min.js +1 -1
- package/lib/language/ja-JP.umd.js +1 -1
- package/lib/language/ko-KR.js +1 -1
- package/lib/language/ko-KR.min.js +1 -1
- package/lib/language/ko-KR.umd.js +1 -1
- package/lib/language/ms-MY.d.ts +2 -0
- package/lib/language/ms-MY.js +714 -0
- package/lib/language/ms-MY.min.js +1 -0
- package/lib/language/ms-MY.umd.js +728 -0
- package/lib/language/nb-NO.d.ts +2 -0
- package/lib/language/nb-NO.js +1 -1
- package/lib/language/nb-NO.min.js +1 -1
- package/lib/language/nb-NO.umd.js +728 -0
- package/lib/language/pt-BR.js +1 -1
- package/lib/language/pt-BR.min.js +1 -1
- package/lib/language/pt-BR.umd.js +1 -1
- package/lib/language/ru-RU.js +1 -1
- package/lib/language/ru-RU.min.js +1 -1
- package/lib/language/ru-RU.umd.js +1 -1
- package/lib/language/th-TH.d.ts +2 -0
- package/lib/language/th-TH.js +1 -1
- package/lib/language/th-TH.min.js +1 -1
- package/lib/language/th-TH.umd.js +728 -0
- package/lib/language/ug-CN.d.ts +2 -0
- package/lib/language/ug-CN.js +1 -1
- package/lib/language/ug-CN.min.js +1 -1
- package/lib/language/ug-CN.umd.js +728 -0
- package/lib/language/uk-UA.js +1 -1
- package/lib/language/uk-UA.min.js +1 -1
- package/lib/language/uk-UA.umd.js +1 -1
- package/lib/language/uz-UZ.d.ts +2 -0
- package/lib/language/uz-UZ.js +714 -0
- package/lib/language/uz-UZ.min.js +1 -0
- package/lib/language/uz-UZ.umd.js +728 -0
- package/lib/language/vi-VN.d.ts +2 -0
- package/lib/language/vi-VN.js +1 -1
- package/lib/language/vi-VN.min.js +1 -1
- package/lib/language/vi-VN.umd.js +728 -0
- package/lib/language/zh-CHT.d.ts +2 -0
- package/lib/language/zh-CHT.js +1 -1
- package/lib/language/zh-CHT.min.js +1 -1
- package/lib/language/zh-CHT.umd.js +728 -0
- package/lib/language/zh-CN.js +1 -1
- package/lib/language/zh-CN.min.js +1 -1
- package/lib/language/zh-CN.umd.js +1 -1
- package/lib/language/zh-TC.min.js +1 -1
- package/lib/print/src/print.js +4 -0
- package/lib/print/src/print.min.js +1 -1
- package/lib/print/src/util.js +45 -2
- package/lib/print/src/util.min.js +1 -1
- package/lib/pulldown/style/style.css +15 -0
- package/lib/pulldown/style/style.min.css +1 -1
- package/lib/select/style/style.css +15 -0
- package/lib/select/style/style.min.css +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table-select/style/style.css +15 -0
- package/lib/table-select/style/style.min.css +1 -1
- package/lib/tree-select/style/style.css +15 -0
- package/lib/tree-select/style/style.min.css +1 -1
- package/lib/ui/index.js +31 -6
- 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/vxe-date-panel/index.js +22 -0
- package/lib/vxe-date-panel/index.min.js +1 -0
- package/lib/vxe-date-panel/style/index.js +1 -0
- package/lib/vxe-date-panel/style/style.css +443 -0
- package/lib/vxe-date-panel/style/style.min.css +1 -0
- package/lib/vxe-date-picker/style/style.css +68 -810
- package/lib/vxe-date-picker/style/style.min.css +1 -1
- package/lib/vxe-date-range-picker/index.js +22 -0
- package/lib/vxe-date-range-picker/index.min.js +1 -0
- package/lib/vxe-date-range-picker/style/index.js +1 -0
- package/lib/vxe-date-range-picker/style/style.css +284 -0
- package/lib/vxe-date-range-picker/style/style.min.css +1 -0
- package/lib/vxe-pulldown/style/style.css +15 -0
- package/lib/vxe-pulldown/style/style.min.css +1 -1
- package/lib/vxe-select/style/style.css +15 -0
- package/lib/vxe-select/style/style.min.css +1 -1
- package/lib/vxe-table-select/style/style.css +15 -0
- package/lib/vxe-table-select/style/style.min.css +1 -1
- package/lib/vxe-tree-select/style/style.css +15 -0
- package/lib/vxe-tree-select/style/style.min.css +1 -1
- package/package.json +4 -5
- package/packages/calendar/src/calendar.ts +10 -10
- package/packages/components.ts +6 -0
- package/packages/date-panel/index.ts +16 -0
- package/packages/date-panel/src/date-panel.ts +1654 -0
- package/packages/date-panel/src/util.ts +212 -0
- package/packages/date-picker/index.ts +0 -1
- package/packages/date-picker/src/date-picker.ts +298 -1697
- package/packages/date-range-picker/index.ts +16 -0
- package/packages/date-range-picker/src/date-range-picker.ts +1196 -0
- package/packages/form/render/index.ts +21 -15
- package/packages/input/src/input.ts +15 -15
- package/packages/language/ar-EG.ts +1 -1
- package/packages/language/de-DE.ts +1 -1
- package/packages/language/en-US.ts +1 -1
- package/packages/language/es-ES.ts +1 -1
- package/packages/language/fr-FR.ts +1 -1
- package/packages/language/hu-HU.ts +1 -1
- package/packages/language/hy-AM.ts +1 -1
- package/packages/language/id-ID.ts +1 -1
- package/packages/language/it-IT.ts +1 -1
- package/packages/language/ja-JP.ts +1 -1
- package/packages/language/ko-KR.ts +1 -1
- package/packages/language/ms-MY.ts +708 -0
- package/packages/language/nb-NO.ts +1 -1
- package/packages/language/pt-BR.ts +1 -1
- package/packages/language/ru-RU.ts +1 -1
- package/packages/language/th-TH.ts +1 -1
- package/packages/language/ug-CN.ts +1 -1
- package/packages/language/uk-UA.ts +1 -1
- package/packages/language/uz-UZ.ts +708 -0
- package/packages/language/vi-VN.ts +1 -1
- package/packages/language/zh-CHT.ts +1 -1
- package/packages/language/zh-CN.ts +1 -1
- package/packages/print/src/print.ts +4 -0
- package/packages/print/src/util.ts +47 -4
- package/packages/ui/index.ts +30 -5
- package/styles/all.scss +2 -0
- package/styles/components/date-panel.scss +491 -0
- package/styles/components/date-picker.scss +62 -652
- package/styles/components/date-range-picker.scss +284 -0
- package/styles/components/pulldown.scss +10 -0
- package/styles/components/select.scss +8 -0
- package/styles/components/table-select.scss +8 -0
- package/styles/components/tree-select.scss +8 -0
- package/styles/helpers/baseMixin.scss +13 -0
- package/types/all.d.ts +6 -0
- package/types/components/button-group.d.ts +1 -1
- package/types/components/date-panel.d.ts +240 -0
- package/types/components/date-picker.d.ts +35 -142
- package/types/components/date-range-picker.d.ts +267 -0
- package/types/components/print.d.ts +8 -0
- package/types/ui/commands.d.ts +28 -2
- package/types/ui/global-config.d.ts +4 -0
- package/es/date-picker/src/util.js +0 -41
- package/lib/date-picker/src/util.js +0 -46
- package/lib/date-picker/src/util.min.js +0 -1
- package/lib/language/zh-TC.umd.js +0 -23
- package/packages/date-picker/src/util.ts +0 -42
- /package/es/icon/{iconfont.1746417522210.ttf → iconfont.1746782659171.ttf} +0 -0
- /package/es/icon/{iconfont.1746417522210.woff → iconfont.1746782659171.woff} +0 -0
- /package/es/icon/{iconfont.1746417522210.woff2 → iconfont.1746782659171.woff2} +0 -0
- /package/es/{iconfont.1746417522210.ttf → iconfont.1746782659171.ttf} +0 -0
- /package/es/{iconfont.1746417522210.woff → iconfont.1746782659171.woff} +0 -0
- /package/es/{iconfont.1746417522210.woff2 → iconfont.1746782659171.woff2} +0 -0
- /package/es/language/{zh-TC.d.ts → ar-EG.d.ts} +0 -0
- /package/{lib/language/zh-TC.d.ts → es/language/de-DE.d.ts} +0 -0
- /package/lib/icon/style/{iconfont.1746417522210.ttf → iconfont.1746782659171.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1746417522210.woff → iconfont.1746782659171.woff} +0 -0
- /package/lib/icon/style/{iconfont.1746417522210.woff2 → iconfont.1746782659171.woff2} +0 -0
- /package/lib/{iconfont.1746417522210.ttf → iconfont.1746782659171.ttf} +0 -0
- /package/lib/{iconfont.1746417522210.woff → iconfont.1746782659171.woff} +0 -0
- /package/lib/{iconfont.1746417522210.woff2 → iconfont.1746782659171.woff2} +0 -0
|
@@ -9,8 +9,11 @@ var _xeUtils = _interopRequireDefault(require("xe-utils"));
|
|
|
9
9
|
var _ui = require("../../ui");
|
|
10
10
|
var _utils = require("../../ui/src/utils");
|
|
11
11
|
var _dom = require("../../ui/src/dom");
|
|
12
|
-
var _util = require("./util");
|
|
13
12
|
var _vn = require("../../ui/src/vn");
|
|
13
|
+
var _util = require("../../date-panel/src/util");
|
|
14
|
+
var _log = require("../../ui/src/log");
|
|
15
|
+
var _datePanel = _interopRequireDefault(require("../../date-panel/src/date-panel"));
|
|
16
|
+
var _button = _interopRequireDefault(require("../../button/src/button"));
|
|
14
17
|
var _buttonGroup = _interopRequireDefault(require("../../button/src/button-group"));
|
|
15
18
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
16
19
|
var _default = exports.default = (0, _vue.defineComponent)({
|
|
@@ -39,12 +42,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
39
42
|
default: null
|
|
40
43
|
},
|
|
41
44
|
placeholder: String,
|
|
42
|
-
maxLength: [String, Number],
|
|
43
45
|
autoComplete: {
|
|
44
46
|
type: String,
|
|
45
47
|
default: 'off'
|
|
46
48
|
},
|
|
47
|
-
align: String,
|
|
48
49
|
form: String,
|
|
49
50
|
className: String,
|
|
50
51
|
size: {
|
|
@@ -90,6 +91,18 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
90
91
|
type: [String, Number],
|
|
91
92
|
default: () => (0, _ui.getConfig)().datePicker.selectDay
|
|
92
93
|
},
|
|
94
|
+
showClearButton: {
|
|
95
|
+
type: Boolean,
|
|
96
|
+
default: () => (0, _ui.getConfig)().datePicker.showClearButton
|
|
97
|
+
},
|
|
98
|
+
showConfirmButton: {
|
|
99
|
+
type: Boolean,
|
|
100
|
+
default: () => (0, _ui.getConfig)().datePicker.showConfirmButton
|
|
101
|
+
},
|
|
102
|
+
autoClose: {
|
|
103
|
+
type: Boolean,
|
|
104
|
+
default: () => (0, _ui.getConfig)().datePicker.autoClose
|
|
105
|
+
},
|
|
93
106
|
prefixIcon: String,
|
|
94
107
|
suffixIcon: String,
|
|
95
108
|
placement: String,
|
|
@@ -99,11 +112,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
99
112
|
},
|
|
100
113
|
shortcutConfig: Object,
|
|
101
114
|
// 已废弃 startWeek,被 startDay 替换
|
|
102
|
-
startWeek: Number
|
|
103
|
-
// 已废弃
|
|
104
|
-
maxlength: [String, Number],
|
|
105
|
-
// 已废弃
|
|
106
|
-
autocomplete: String
|
|
115
|
+
startWeek: Number
|
|
107
116
|
},
|
|
108
117
|
emits: ['update:modelValue', 'input', 'change', 'keydown', 'keyup', 'click', 'focus', 'blur', 'clear', 'prefix-click', 'suffix-click', 'date-prev', 'date-today', 'date-next', 'shortcut-click'],
|
|
109
118
|
setup(props, context) {
|
|
@@ -129,24 +138,16 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
129
138
|
panelPlacement: '',
|
|
130
139
|
isActivated: false,
|
|
131
140
|
inputValue: '',
|
|
132
|
-
|
|
133
|
-
datePanelValue: null,
|
|
134
|
-
datePanelLabel: '',
|
|
135
|
-
datePanelType: 'day',
|
|
136
|
-
selectMonth: null,
|
|
137
|
-
currentDate: null
|
|
141
|
+
inputLabel: ''
|
|
138
142
|
});
|
|
139
143
|
const internalData = {
|
|
140
|
-
yearSize: 12,
|
|
141
|
-
monthSize: 20,
|
|
142
|
-
quarterSize: 8,
|
|
143
144
|
hpTimeout: undefined
|
|
144
145
|
};
|
|
145
146
|
const refElem = (0, _vue.ref)();
|
|
146
147
|
const refInputTarget = (0, _vue.ref)();
|
|
147
148
|
const refInputPanel = (0, _vue.ref)();
|
|
148
149
|
const refPanelWrapper = (0, _vue.ref)();
|
|
149
|
-
const
|
|
150
|
+
const refDatePanel = (0, _vue.ref)();
|
|
150
151
|
const refMaps = {
|
|
151
152
|
refElem,
|
|
152
153
|
refInput: refInputTarget
|
|
@@ -159,7 +160,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
159
160
|
internalData,
|
|
160
161
|
getRefMaps: () => refMaps
|
|
161
162
|
};
|
|
162
|
-
let datePickerMethods = {};
|
|
163
163
|
const computeBtnTransfer = (0, _vue.computed)(() => {
|
|
164
164
|
const {
|
|
165
165
|
transfer
|
|
@@ -212,56 +212,56 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
212
212
|
const computeIsClearable = (0, _vue.computed)(() => {
|
|
213
213
|
return props.clearable;
|
|
214
214
|
});
|
|
215
|
-
const
|
|
216
|
-
return props.startDate ? _xeUtils.default.toStringDate(props.startDate) : null;
|
|
217
|
-
});
|
|
218
|
-
const computeDateEndTime = (0, _vue.computed)(() => {
|
|
219
|
-
return props.endDate ? _xeUtils.default.toStringDate(props.endDate) : null;
|
|
220
|
-
});
|
|
221
|
-
const computeSupportMultiples = (0, _vue.computed)(() => {
|
|
222
|
-
return ['date', 'week', 'month', 'quarter', 'year'].indexOf(props.type) > -1;
|
|
223
|
-
});
|
|
224
|
-
const computeDateListValue = (0, _vue.computed)(() => {
|
|
215
|
+
const computeInputReadonly = (0, _vue.computed)(() => {
|
|
225
216
|
const {
|
|
226
|
-
|
|
217
|
+
type,
|
|
218
|
+
editable,
|
|
227
219
|
multiple
|
|
228
220
|
} = props;
|
|
229
|
-
const
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
});
|
|
221
|
+
const formReadonly = computeFormReadonly.value;
|
|
222
|
+
return formReadonly || multiple || !editable || type === 'week' || type === 'quarter';
|
|
223
|
+
});
|
|
224
|
+
const computeInpPlaceholder = (0, _vue.computed)(() => {
|
|
225
|
+
const {
|
|
226
|
+
placeholder
|
|
227
|
+
} = props;
|
|
228
|
+
if (placeholder) {
|
|
229
|
+
return (0, _utils.getFuncText)(placeholder);
|
|
239
230
|
}
|
|
240
|
-
|
|
231
|
+
const globalPlaceholder = (0, _ui.getConfig)().datePicker.placeholder;
|
|
232
|
+
if (globalPlaceholder) {
|
|
233
|
+
return (0, _utils.getFuncText)(globalPlaceholder);
|
|
234
|
+
}
|
|
235
|
+
return (0, _ui.getI18n)('vxe.base.pleaseSelect');
|
|
241
236
|
});
|
|
242
|
-
const
|
|
243
|
-
const
|
|
244
|
-
|
|
245
|
-
|
|
237
|
+
const computeInpImmediate = (0, _vue.computed)(() => {
|
|
238
|
+
const {
|
|
239
|
+
immediate
|
|
240
|
+
} = props;
|
|
241
|
+
return immediate;
|
|
246
242
|
});
|
|
247
|
-
const
|
|
248
|
-
|
|
249
|
-
const dateLabelFormat = computeDateLabelFormat.value;
|
|
250
|
-
return dateListValue.map(date => _xeUtils.default.toDateString(date, dateLabelFormat)).join(', ');
|
|
243
|
+
const computeShortcutOpts = (0, _vue.computed)(() => {
|
|
244
|
+
return Object.assign({}, (0, _ui.getConfig)().datePicker.shortcutConfig, props.shortcutConfig);
|
|
251
245
|
});
|
|
252
|
-
const
|
|
253
|
-
|
|
246
|
+
const computeShortcutList = (0, _vue.computed)(() => {
|
|
247
|
+
const shortcutOpts = computeShortcutOpts.value;
|
|
248
|
+
const {
|
|
249
|
+
options
|
|
250
|
+
} = shortcutOpts;
|
|
251
|
+
if (options) {
|
|
252
|
+
return options.map((option, index) => {
|
|
253
|
+
return Object.assign({
|
|
254
|
+
name: `${option.name || option.code || index}`
|
|
255
|
+
}, option);
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
return [];
|
|
254
259
|
});
|
|
255
|
-
const
|
|
260
|
+
const computeDateLabelFormat = (0, _vue.computed)(() => {
|
|
256
261
|
const {
|
|
257
|
-
|
|
262
|
+
labelFormat
|
|
258
263
|
} = props;
|
|
259
|
-
|
|
260
|
-
const dateMultipleValue = computeDateMultipleValue.value;
|
|
261
|
-
if (multiple && limitMaxCount) {
|
|
262
|
-
return dateMultipleValue.length >= limitMaxCount;
|
|
263
|
-
}
|
|
264
|
-
return false;
|
|
264
|
+
return labelFormat || (0, _ui.getI18n)(`vxe.input.date.labelFormat.${props.type}`);
|
|
265
265
|
});
|
|
266
266
|
const computeDateValueFormat = (0, _vue.computed)(() => {
|
|
267
267
|
const {
|
|
@@ -279,377 +279,37 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
279
279
|
}
|
|
280
280
|
return 'yyyy-MM-dd';
|
|
281
281
|
});
|
|
282
|
-
const computeDateValue = (0, _vue.computed)(() => {
|
|
283
|
-
const {
|
|
284
|
-
modelValue
|
|
285
|
-
} = props;
|
|
286
|
-
const isDatePickerType = computeIsDatePickerType.value;
|
|
287
|
-
const dateValueFormat = computeDateValueFormat.value;
|
|
288
|
-
let val = null;
|
|
289
|
-
if (modelValue && isDatePickerType) {
|
|
290
|
-
const date = parseDate(modelValue, dateValueFormat);
|
|
291
|
-
if (_xeUtils.default.isValidDate(date)) {
|
|
292
|
-
val = date;
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
return val;
|
|
296
|
-
});
|
|
297
|
-
const computeIsDisabledPrevDateBtn = (0, _vue.computed)(() => {
|
|
298
|
-
const dateStartTime = computeDateStartTime.value;
|
|
299
|
-
const {
|
|
300
|
-
selectMonth
|
|
301
|
-
} = reactData;
|
|
302
|
-
if (selectMonth && dateStartTime) {
|
|
303
|
-
return selectMonth <= dateStartTime;
|
|
304
|
-
}
|
|
305
|
-
return false;
|
|
306
|
-
});
|
|
307
|
-
const computeIsDisabledNextDateBtn = (0, _vue.computed)(() => {
|
|
308
|
-
const dateEndTime = computeDateEndTime.value;
|
|
309
|
-
const {
|
|
310
|
-
selectMonth
|
|
311
|
-
} = reactData;
|
|
312
|
-
if (selectMonth && dateEndTime) {
|
|
313
|
-
return selectMonth >= dateEndTime;
|
|
314
|
-
}
|
|
315
|
-
return false;
|
|
316
|
-
});
|
|
317
|
-
const computeDateTimeLabel = (0, _vue.computed)(() => {
|
|
318
|
-
const {
|
|
319
|
-
datetimePanelValue
|
|
320
|
-
} = reactData;
|
|
321
|
-
const hasTimeSecond = computeHasTimeSecond.value;
|
|
322
|
-
if (datetimePanelValue) {
|
|
323
|
-
return _xeUtils.default.toDateString(datetimePanelValue, hasTimeSecond ? 'HH:mm:ss' : 'HH:mm');
|
|
324
|
-
}
|
|
325
|
-
return '';
|
|
326
|
-
});
|
|
327
|
-
const computeDateHMSTime = (0, _vue.computed)(() => {
|
|
328
|
-
const dateValue = computeDateValue.value;
|
|
329
|
-
const isDateTimeType = computeIsDateTimeType.value;
|
|
330
|
-
return dateValue && isDateTimeType ? (dateValue.getHours() * 3600 + dateValue.getMinutes() * 60 + dateValue.getSeconds()) * 1000 : 0;
|
|
331
|
-
});
|
|
332
|
-
const computeDateLabelFormat = (0, _vue.computed)(() => {
|
|
333
|
-
const {
|
|
334
|
-
labelFormat
|
|
335
|
-
} = props;
|
|
336
|
-
const isDatePickerType = computeIsDatePickerType.value;
|
|
337
|
-
if (isDatePickerType) {
|
|
338
|
-
return labelFormat || (0, _ui.getI18n)(`vxe.input.date.labelFormat.${props.type}`);
|
|
339
|
-
}
|
|
340
|
-
return null;
|
|
341
|
-
});
|
|
342
|
-
const computeYearList = (0, _vue.computed)(() => {
|
|
343
|
-
const {
|
|
344
|
-
yearSize
|
|
345
|
-
} = internalData;
|
|
346
|
-
const {
|
|
347
|
-
selectMonth,
|
|
348
|
-
currentDate
|
|
349
|
-
} = reactData;
|
|
350
|
-
const years = [];
|
|
351
|
-
if (selectMonth && currentDate) {
|
|
352
|
-
const currFullYear = currentDate.getFullYear();
|
|
353
|
-
const selectFullYear = selectMonth.getFullYear();
|
|
354
|
-
const startYearDate = new Date(selectFullYear - selectFullYear % yearSize, 0, 1);
|
|
355
|
-
for (let index = -4; index < yearSize + 4; index++) {
|
|
356
|
-
const date = _xeUtils.default.getWhatYear(startYearDate, index, 'first');
|
|
357
|
-
const itemFullYear = date.getFullYear();
|
|
358
|
-
years.push({
|
|
359
|
-
date,
|
|
360
|
-
isCurrent: true,
|
|
361
|
-
isPrev: index < 0,
|
|
362
|
-
isNow: currFullYear === itemFullYear,
|
|
363
|
-
isNext: index >= yearSize,
|
|
364
|
-
year: itemFullYear
|
|
365
|
-
});
|
|
366
|
-
}
|
|
367
|
-
}
|
|
368
|
-
return years;
|
|
369
|
-
});
|
|
370
|
-
const computeSelectDatePanelObj = (0, _vue.computed)(() => {
|
|
371
|
-
const isDatePickerType = computeIsDatePickerType.value;
|
|
372
|
-
let y = '';
|
|
373
|
-
let m = '';
|
|
374
|
-
if (isDatePickerType) {
|
|
375
|
-
const {
|
|
376
|
-
datePanelType,
|
|
377
|
-
selectMonth
|
|
378
|
-
} = reactData;
|
|
379
|
-
const yearList = computeYearList.value;
|
|
380
|
-
let year = '';
|
|
381
|
-
let month;
|
|
382
|
-
if (selectMonth) {
|
|
383
|
-
year = selectMonth.getFullYear();
|
|
384
|
-
month = selectMonth.getMonth() + 1;
|
|
385
|
-
}
|
|
386
|
-
if (datePanelType === 'quarter' || datePanelType === 'month') {
|
|
387
|
-
y = (0, _ui.getI18n)('vxe.datePicker.yearTitle', [year]);
|
|
388
|
-
} else if (datePanelType === 'year') {
|
|
389
|
-
y = yearList.length ? `${yearList[0].year} - ${yearList[yearList.length - 1].year}` : '';
|
|
390
|
-
} else {
|
|
391
|
-
y = (0, _ui.getI18n)('vxe.datePicker.yearTitle', [year]);
|
|
392
|
-
m = month ? (0, _ui.getI18n)(`vxe.input.date.m${month}`) : '-';
|
|
393
|
-
}
|
|
394
|
-
}
|
|
395
|
-
return {
|
|
396
|
-
y,
|
|
397
|
-
m
|
|
398
|
-
};
|
|
399
|
-
});
|
|
400
282
|
const computeFirstDayOfWeek = (0, _vue.computed)(() => {
|
|
401
283
|
const {
|
|
402
|
-
startDay
|
|
403
|
-
startWeek
|
|
284
|
+
startDay
|
|
404
285
|
} = props;
|
|
405
|
-
return _xeUtils.default.toNumber(
|
|
286
|
+
return _xeUtils.default.toNumber(startDay);
|
|
406
287
|
});
|
|
407
|
-
const
|
|
408
|
-
const weeks = [];
|
|
409
|
-
const isDatePickerType = computeIsDatePickerType.value;
|
|
410
|
-
if (isDatePickerType) {
|
|
411
|
-
let sWeek = computeFirstDayOfWeek.value;
|
|
412
|
-
weeks.push(sWeek);
|
|
413
|
-
for (let index = 0; index < 6; index++) {
|
|
414
|
-
if (sWeek >= 6) {
|
|
415
|
-
sWeek = 0;
|
|
416
|
-
} else {
|
|
417
|
-
sWeek++;
|
|
418
|
-
}
|
|
419
|
-
weeks.push(sWeek);
|
|
420
|
-
}
|
|
421
|
-
}
|
|
422
|
-
return weeks;
|
|
423
|
-
});
|
|
424
|
-
const computeDateHeaders = (0, _vue.computed)(() => {
|
|
425
|
-
const isDatePickerType = computeIsDatePickerType.value;
|
|
426
|
-
if (isDatePickerType) {
|
|
427
|
-
const weekDatas = computeWeekDatas.value;
|
|
428
|
-
return weekDatas.map(day => {
|
|
429
|
-
return {
|
|
430
|
-
value: day,
|
|
431
|
-
label: (0, _ui.getI18n)(`vxe.input.date.weeks.w${day}`)
|
|
432
|
-
};
|
|
433
|
-
});
|
|
434
|
-
}
|
|
435
|
-
return [];
|
|
436
|
-
});
|
|
437
|
-
const computeWeekHeaders = (0, _vue.computed)(() => {
|
|
438
|
-
const isDatePickerType = computeIsDatePickerType.value;
|
|
439
|
-
if (isDatePickerType) {
|
|
440
|
-
const dateHeaders = computeDateHeaders.value;
|
|
441
|
-
return [{
|
|
442
|
-
label: (0, _ui.getI18n)('vxe.input.date.weeks.w')
|
|
443
|
-
}].concat(dateHeaders);
|
|
444
|
-
}
|
|
445
|
-
return [];
|
|
446
|
-
});
|
|
447
|
-
const computeYearDatas = (0, _vue.computed)(() => {
|
|
448
|
-
const yearList = computeYearList.value;
|
|
449
|
-
return _xeUtils.default.chunk(yearList, 4);
|
|
450
|
-
});
|
|
451
|
-
const computeQuarterList = (0, _vue.computed)(() => {
|
|
452
|
-
const {
|
|
453
|
-
quarterSize
|
|
454
|
-
} = internalData;
|
|
455
|
-
const {
|
|
456
|
-
selectMonth,
|
|
457
|
-
currentDate
|
|
458
|
-
} = reactData;
|
|
459
|
-
const quarters = [];
|
|
460
|
-
if (selectMonth && currentDate) {
|
|
461
|
-
const currFullYear = currentDate.getFullYear();
|
|
462
|
-
const currQuarter = (0, _util.getDateQuarter)(currentDate);
|
|
463
|
-
const firstYear = _xeUtils.default.getWhatYear(selectMonth, 0, 'first');
|
|
464
|
-
const selFullYear = firstYear.getFullYear();
|
|
465
|
-
for (let index = -2; index < quarterSize - 2; index++) {
|
|
466
|
-
const date = _xeUtils.default.getWhatQuarter(firstYear, index);
|
|
467
|
-
const itemFullYear = date.getFullYear();
|
|
468
|
-
const itemQuarter = (0, _util.getDateQuarter)(date);
|
|
469
|
-
const isPrev = itemFullYear < selFullYear;
|
|
470
|
-
quarters.push({
|
|
471
|
-
date,
|
|
472
|
-
isPrev,
|
|
473
|
-
isCurrent: itemFullYear === selFullYear,
|
|
474
|
-
isNow: itemFullYear === currFullYear && itemQuarter === currQuarter,
|
|
475
|
-
isNext: !isPrev && itemFullYear > selFullYear,
|
|
476
|
-
quarter: itemQuarter
|
|
477
|
-
});
|
|
478
|
-
}
|
|
479
|
-
}
|
|
480
|
-
return quarters;
|
|
481
|
-
});
|
|
482
|
-
const computeQuarterDatas = (0, _vue.computed)(() => {
|
|
483
|
-
const quarterList = computeQuarterList.value;
|
|
484
|
-
return _xeUtils.default.chunk(quarterList, 2);
|
|
485
|
-
});
|
|
486
|
-
const computeMonthList = (0, _vue.computed)(() => {
|
|
487
|
-
const {
|
|
488
|
-
monthSize
|
|
489
|
-
} = internalData;
|
|
490
|
-
const {
|
|
491
|
-
selectMonth,
|
|
492
|
-
currentDate
|
|
493
|
-
} = reactData;
|
|
494
|
-
const months = [];
|
|
495
|
-
if (selectMonth && currentDate) {
|
|
496
|
-
const currFullYear = currentDate.getFullYear();
|
|
497
|
-
const currMonth = currentDate.getMonth();
|
|
498
|
-
const selFullYear = _xeUtils.default.getWhatYear(selectMonth, 0, 'first').getFullYear();
|
|
499
|
-
for (let index = -4; index < monthSize - 4; index++) {
|
|
500
|
-
const date = _xeUtils.default.getWhatYear(selectMonth, 0, index);
|
|
501
|
-
const itemFullYear = date.getFullYear();
|
|
502
|
-
const itemMonth = date.getMonth();
|
|
503
|
-
const isPrev = itemFullYear < selFullYear;
|
|
504
|
-
months.push({
|
|
505
|
-
date,
|
|
506
|
-
isPrev,
|
|
507
|
-
isCurrent: itemFullYear === selFullYear,
|
|
508
|
-
isNow: itemFullYear === currFullYear && itemMonth === currMonth,
|
|
509
|
-
isNext: !isPrev && itemFullYear > selFullYear,
|
|
510
|
-
month: itemMonth
|
|
511
|
-
});
|
|
512
|
-
}
|
|
513
|
-
}
|
|
514
|
-
return months;
|
|
515
|
-
});
|
|
516
|
-
const computeMonthDatas = (0, _vue.computed)(() => {
|
|
517
|
-
const monthList = computeMonthList.value;
|
|
518
|
-
return _xeUtils.default.chunk(monthList, 4);
|
|
519
|
-
});
|
|
520
|
-
const computeDayList = (0, _vue.computed)(() => {
|
|
521
|
-
const {
|
|
522
|
-
selectMonth,
|
|
523
|
-
currentDate
|
|
524
|
-
} = reactData;
|
|
525
|
-
const days = [];
|
|
526
|
-
if (selectMonth && currentDate) {
|
|
527
|
-
const dateHMSTime = computeDateHMSTime.value;
|
|
528
|
-
const weekDatas = computeWeekDatas.value;
|
|
529
|
-
const currFullYear = currentDate.getFullYear();
|
|
530
|
-
const currMonth = currentDate.getMonth();
|
|
531
|
-
const currDate = currentDate.getDate();
|
|
532
|
-
const selFullYear = selectMonth.getFullYear();
|
|
533
|
-
const selMonth = selectMonth.getMonth();
|
|
534
|
-
const selDay = selectMonth.getDay();
|
|
535
|
-
const prevOffsetDate = -weekDatas.indexOf(selDay);
|
|
536
|
-
const startDayDate = new Date(_xeUtils.default.getWhatDay(selectMonth, prevOffsetDate).getTime() + dateHMSTime);
|
|
537
|
-
for (let index = 0; index < 42; index++) {
|
|
538
|
-
const date = _xeUtils.default.getWhatDay(startDayDate, index);
|
|
539
|
-
const itemFullYear = date.getFullYear();
|
|
540
|
-
const itemMonth = date.getMonth();
|
|
541
|
-
const itemDate = date.getDate();
|
|
542
|
-
const isPrev = date < selectMonth;
|
|
543
|
-
days.push({
|
|
544
|
-
date,
|
|
545
|
-
isPrev,
|
|
546
|
-
isCurrent: itemFullYear === selFullYear && itemMonth === selMonth,
|
|
547
|
-
isNow: itemFullYear === currFullYear && itemMonth === currMonth && itemDate === currDate,
|
|
548
|
-
isNext: !isPrev && selMonth !== itemMonth,
|
|
549
|
-
label: itemDate
|
|
550
|
-
});
|
|
551
|
-
}
|
|
552
|
-
}
|
|
553
|
-
return days;
|
|
554
|
-
});
|
|
555
|
-
const computeDayDatas = (0, _vue.computed)(() => {
|
|
556
|
-
const dayList = computeDayList.value;
|
|
557
|
-
return _xeUtils.default.chunk(dayList, 7);
|
|
558
|
-
});
|
|
559
|
-
const computeWeekDates = (0, _vue.computed)(() => {
|
|
560
|
-
const dayDatas = computeDayDatas.value;
|
|
561
|
-
const firstDayOfWeek = computeFirstDayOfWeek.value;
|
|
562
|
-
return dayDatas.map(list => {
|
|
563
|
-
const firstItem = list[0];
|
|
564
|
-
const item = {
|
|
565
|
-
date: firstItem.date,
|
|
566
|
-
isWeekNumber: true,
|
|
567
|
-
isPrev: false,
|
|
568
|
-
isCurrent: false,
|
|
569
|
-
isNow: false,
|
|
570
|
-
isNext: false,
|
|
571
|
-
label: _xeUtils.default.getYearWeek(firstItem.date, firstDayOfWeek)
|
|
572
|
-
};
|
|
573
|
-
return [item].concat(list);
|
|
574
|
-
});
|
|
575
|
-
});
|
|
576
|
-
const computeHourList = (0, _vue.computed)(() => {
|
|
577
|
-
const list = [];
|
|
578
|
-
const isDateTimeType = computeIsDateTimeType.value;
|
|
579
|
-
if (isDateTimeType) {
|
|
580
|
-
for (let index = 0; index < 24; index++) {
|
|
581
|
-
list.push({
|
|
582
|
-
value: index,
|
|
583
|
-
label: ('' + index).padStart(2, '0')
|
|
584
|
-
});
|
|
585
|
-
}
|
|
586
|
-
}
|
|
587
|
-
return list;
|
|
588
|
-
});
|
|
589
|
-
const computeMinuteList = (0, _vue.computed)(() => {
|
|
590
|
-
const list = [];
|
|
591
|
-
const isDateTimeType = computeIsDateTimeType.value;
|
|
592
|
-
if (isDateTimeType) {
|
|
593
|
-
for (let index = 0; index < 60; index++) {
|
|
594
|
-
list.push({
|
|
595
|
-
value: index,
|
|
596
|
-
label: ('' + index).padStart(2, '0')
|
|
597
|
-
});
|
|
598
|
-
}
|
|
599
|
-
}
|
|
600
|
-
return list;
|
|
601
|
-
});
|
|
602
|
-
const computeHasTimeMinute = (0, _vue.computed)(() => {
|
|
603
|
-
const dateValueFormat = computeDateValueFormat.value;
|
|
604
|
-
return !/HH/.test(dateValueFormat) || /mm/.test(dateValueFormat);
|
|
605
|
-
});
|
|
606
|
-
const computeHasTimeSecond = (0, _vue.computed)(() => {
|
|
607
|
-
const dateValueFormat = computeDateValueFormat.value;
|
|
608
|
-
return !/HH/.test(dateValueFormat) || /ss/.test(dateValueFormat);
|
|
609
|
-
});
|
|
610
|
-
const computeSecondList = (0, _vue.computed)(() => {
|
|
611
|
-
const minuteList = computeMinuteList.value;
|
|
612
|
-
return minuteList;
|
|
613
|
-
});
|
|
614
|
-
const computeInputReadonly = (0, _vue.computed)(() => {
|
|
288
|
+
const computePanelLabel = (0, _vue.computed)(() => {
|
|
615
289
|
const {
|
|
616
290
|
type,
|
|
617
|
-
editable,
|
|
618
291
|
multiple
|
|
619
292
|
} = props;
|
|
620
|
-
const formReadonly = computeFormReadonly.value;
|
|
621
|
-
return formReadonly || multiple || !editable || type === 'week' || type === 'quarter';
|
|
622
|
-
});
|
|
623
|
-
const computeDatePickerType = (0, _vue.computed)(() => {
|
|
624
|
-
return 'text';
|
|
625
|
-
});
|
|
626
|
-
const computeInpPlaceholder = (0, _vue.computed)(() => {
|
|
627
293
|
const {
|
|
628
|
-
|
|
629
|
-
} =
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
const
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
294
|
+
inputValue
|
|
295
|
+
} = reactData;
|
|
296
|
+
const dateLabelFormat = computeDateLabelFormat.value;
|
|
297
|
+
const dateValueFormat = computeDateValueFormat.value;
|
|
298
|
+
const firstDayOfWeek = computeFirstDayOfWeek.value;
|
|
299
|
+
const vals = inputValue ? multiple ? inputValue.split(',') : [inputValue] : [];
|
|
300
|
+
return vals.map(val => {
|
|
301
|
+
const dateObj = (0, _util.parseDateObj)(val, type, {
|
|
302
|
+
valueFormat: dateValueFormat,
|
|
303
|
+
labelFormat: dateLabelFormat,
|
|
304
|
+
firstDay: firstDayOfWeek
|
|
305
|
+
});
|
|
306
|
+
return dateObj.label;
|
|
307
|
+
}).join(', ');
|
|
638
308
|
});
|
|
639
|
-
const
|
|
309
|
+
const updateModelValue = () => {
|
|
640
310
|
const {
|
|
641
|
-
|
|
311
|
+
modelValue
|
|
642
312
|
} = props;
|
|
643
|
-
return immediate;
|
|
644
|
-
});
|
|
645
|
-
const computeShortcutOpts = (0, _vue.computed)(() => {
|
|
646
|
-
return Object.assign({}, (0, _ui.getConfig)().datePicker.shortcutConfig, props.shortcutConfig);
|
|
647
|
-
});
|
|
648
|
-
const updateModelValue = modelValue => {
|
|
649
|
-
const {
|
|
650
|
-
isActivated,
|
|
651
|
-
visiblePanel
|
|
652
|
-
} = reactData;
|
|
653
313
|
let val = '';
|
|
654
314
|
if (modelValue) {
|
|
655
315
|
if (_xeUtils.default.isNumber(modelValue) && /^[0-9]{11,15}$/.test(`${modelValue}`)) {
|
|
@@ -659,25 +319,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
659
319
|
}
|
|
660
320
|
}
|
|
661
321
|
reactData.inputValue = val;
|
|
662
|
-
if (isActivated && visiblePanel) {
|
|
663
|
-
dateOpenPanel();
|
|
664
|
-
}
|
|
665
|
-
};
|
|
666
|
-
const parseDate = (value, format) => {
|
|
667
|
-
const {
|
|
668
|
-
type,
|
|
669
|
-
multiple
|
|
670
|
-
} = props;
|
|
671
|
-
if (type === 'time') {
|
|
672
|
-
return (0, _util.toStringTimeDate)(value);
|
|
673
|
-
}
|
|
674
|
-
if (_xeUtils.default.isArray(value)) {
|
|
675
|
-
return _xeUtils.default.toStringDate(value[0], format);
|
|
676
|
-
}
|
|
677
|
-
if (_xeUtils.default.isString(value)) {
|
|
678
|
-
return _xeUtils.default.toStringDate(multiple ? _xeUtils.default.last(value.split(',')) : value, format);
|
|
679
|
-
}
|
|
680
|
-
return _xeUtils.default.toStringDate(value, format);
|
|
681
322
|
};
|
|
682
323
|
const triggerEvent = evnt => {
|
|
683
324
|
const {
|
|
@@ -688,9 +329,12 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
688
329
|
}, evnt);
|
|
689
330
|
};
|
|
690
331
|
const handleChange = (value, evnt) => {
|
|
332
|
+
const {
|
|
333
|
+
modelValue
|
|
334
|
+
} = props;
|
|
691
335
|
reactData.inputValue = value;
|
|
692
336
|
emit('update:modelValue', value);
|
|
693
|
-
if (_xeUtils.default.toValueString(
|
|
337
|
+
if (_xeUtils.default.toValueString(modelValue) !== value) {
|
|
694
338
|
dispatchEvent('change', {
|
|
695
339
|
value
|
|
696
340
|
}, evnt);
|
|
@@ -701,20 +345,12 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
701
345
|
}
|
|
702
346
|
};
|
|
703
347
|
const inputEvent = evnt => {
|
|
704
|
-
const isDatePickerType = computeIsDatePickerType.value;
|
|
705
|
-
const inpImmediate = computeInpImmediate.value;
|
|
706
348
|
const inputElem = evnt.target;
|
|
707
349
|
const value = inputElem.value;
|
|
708
|
-
reactData.
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
} else {
|
|
713
|
-
dispatchEvent('input', {
|
|
714
|
-
value
|
|
715
|
-
}, evnt);
|
|
716
|
-
}
|
|
717
|
-
}
|
|
350
|
+
reactData.inputLabel = value;
|
|
351
|
+
dispatchEvent('input', {
|
|
352
|
+
value
|
|
353
|
+
}, evnt);
|
|
718
354
|
};
|
|
719
355
|
const changeEvent = evnt => {
|
|
720
356
|
const inpImmediate = computeInpImmediate.value;
|
|
@@ -771,217 +407,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
771
407
|
}, evnt);
|
|
772
408
|
}
|
|
773
409
|
};
|
|
774
|
-
const dateParseValue = value => {
|
|
775
|
-
const {
|
|
776
|
-
type
|
|
777
|
-
} = props;
|
|
778
|
-
const dateLabelFormat = computeDateLabelFormat.value;
|
|
779
|
-
const dateValueFormat = computeDateValueFormat.value;
|
|
780
|
-
const firstDayOfWeek = computeFirstDayOfWeek.value;
|
|
781
|
-
let dValue = null;
|
|
782
|
-
let dLabel = '';
|
|
783
|
-
if (value) {
|
|
784
|
-
dValue = parseDate(value, dateValueFormat);
|
|
785
|
-
}
|
|
786
|
-
if (_xeUtils.default.isValidDate(dValue)) {
|
|
787
|
-
dLabel = _xeUtils.default.toDateString(dValue, dateLabelFormat, {
|
|
788
|
-
firstDay: firstDayOfWeek
|
|
789
|
-
});
|
|
790
|
-
// 周选择器,由于年份和第几周是冲突的行为,所以需要特殊处理,判断是否跨年,例如
|
|
791
|
-
// '2024-12-31' 'yyyy-MM-dd W' >> '2024-12-31 1'
|
|
792
|
-
// '2025-01-01' 'yyyy-MM-dd W' >> '2025-01-01 1'
|
|
793
|
-
if (dateLabelFormat && type === 'week') {
|
|
794
|
-
const weekNum = _xeUtils.default.getYearWeek(dValue, firstDayOfWeek);
|
|
795
|
-
const weekDate = _xeUtils.default.getWhatWeek(dValue, 0, weekNum === 1 ? (6 + firstDayOfWeek) % 7 : firstDayOfWeek, firstDayOfWeek);
|
|
796
|
-
const weekFullYear = weekDate.getFullYear();
|
|
797
|
-
if (weekFullYear !== dValue.getFullYear()) {
|
|
798
|
-
const yyIndex = dateLabelFormat.indexOf('yyyy');
|
|
799
|
-
if (yyIndex > -1) {
|
|
800
|
-
const yyNum = Number(dLabel.substring(yyIndex, yyIndex + 4));
|
|
801
|
-
if (yyNum && !isNaN(yyNum)) {
|
|
802
|
-
dLabel = dLabel.replace(`${yyNum}`, `${weekFullYear}`);
|
|
803
|
-
}
|
|
804
|
-
}
|
|
805
|
-
}
|
|
806
|
-
}
|
|
807
|
-
} else {
|
|
808
|
-
dValue = null;
|
|
809
|
-
}
|
|
810
|
-
reactData.datePanelValue = dValue;
|
|
811
|
-
reactData.datePanelLabel = dLabel;
|
|
812
|
-
};
|
|
813
|
-
/**
|
|
814
|
-
* 值变化时处理
|
|
815
|
-
*/
|
|
816
|
-
const changeValue = () => {
|
|
817
|
-
const isDatePickerType = computeIsDatePickerType.value;
|
|
818
|
-
const {
|
|
819
|
-
inputValue
|
|
820
|
-
} = reactData;
|
|
821
|
-
if (isDatePickerType) {
|
|
822
|
-
dateParseValue(inputValue);
|
|
823
|
-
reactData.inputValue = props.multiple ? computeDateMultipleLabel.value : reactData.datePanelLabel;
|
|
824
|
-
}
|
|
825
|
-
};
|
|
826
|
-
/**
|
|
827
|
-
* 检查初始值
|
|
828
|
-
*/
|
|
829
|
-
const initValue = () => {
|
|
830
|
-
const isDatePickerType = computeIsDatePickerType.value;
|
|
831
|
-
updateModelValue(props.modelValue);
|
|
832
|
-
if (isDatePickerType) {
|
|
833
|
-
changeValue();
|
|
834
|
-
}
|
|
835
|
-
};
|
|
836
|
-
const dateRevert = () => {
|
|
837
|
-
reactData.inputValue = props.multiple ? computeDateMultipleLabel.value : reactData.datePanelLabel;
|
|
838
|
-
};
|
|
839
|
-
const dateCheckMonth = date => {
|
|
840
|
-
const firstDayOfWeek = computeFirstDayOfWeek.value;
|
|
841
|
-
const weekNum = _xeUtils.default.getYearWeek(date, firstDayOfWeek);
|
|
842
|
-
const weekStartDate = _xeUtils.default.getWhatWeek(date, 0, firstDayOfWeek, firstDayOfWeek);
|
|
843
|
-
const month = _xeUtils.default.getWhatMonth(weekNum === 1 ? _xeUtils.default.getWhatDay(weekStartDate, 6) : date, 0, 'first');
|
|
844
|
-
if (!_xeUtils.default.isEqual(month, reactData.selectMonth)) {
|
|
845
|
-
reactData.selectMonth = month;
|
|
846
|
-
}
|
|
847
|
-
};
|
|
848
|
-
const dateChange = (date, isReload) => {
|
|
849
|
-
const {
|
|
850
|
-
modelValue,
|
|
851
|
-
multiple
|
|
852
|
-
} = props;
|
|
853
|
-
const {
|
|
854
|
-
datetimePanelValue
|
|
855
|
-
} = reactData;
|
|
856
|
-
const isDateTimeType = computeIsDateTimeType.value;
|
|
857
|
-
const dateValueFormat = computeDateValueFormat.value;
|
|
858
|
-
const firstDayOfWeek = computeFirstDayOfWeek.value;
|
|
859
|
-
if (props.type === 'week') {
|
|
860
|
-
const sWeek = _xeUtils.default.toNumber(props.selectDay);
|
|
861
|
-
date = _xeUtils.default.getWhatWeek(date, 0, sWeek, firstDayOfWeek);
|
|
862
|
-
} else if (isDateTimeType) {
|
|
863
|
-
if (datetimePanelValue) {
|
|
864
|
-
date.setHours(datetimePanelValue.getHours());
|
|
865
|
-
date.setMinutes(datetimePanelValue.getMinutes());
|
|
866
|
-
date.setSeconds(datetimePanelValue.getSeconds());
|
|
867
|
-
}
|
|
868
|
-
}
|
|
869
|
-
const inpVal = _xeUtils.default.toDateString(date, dateValueFormat, {
|
|
870
|
-
firstDay: firstDayOfWeek
|
|
871
|
-
});
|
|
872
|
-
dateCheckMonth(date);
|
|
873
|
-
if (multiple) {
|
|
874
|
-
const overCount = computeOverCount.value;
|
|
875
|
-
// 如果为多选
|
|
876
|
-
if (isDateTimeType) {
|
|
877
|
-
// 如果是datetime特殊类型
|
|
878
|
-
const dateListValue = isReload ? [] : [...computeDateListValue.value];
|
|
879
|
-
const datetimeRest = [];
|
|
880
|
-
const eqIndex = _xeUtils.default.findIndexOf(dateListValue, val => _xeUtils.default.isDateSame(date, val, 'yyyyMMdd'));
|
|
881
|
-
if (eqIndex === -1) {
|
|
882
|
-
if (overCount) {
|
|
883
|
-
// 如果超出最大多选数量
|
|
884
|
-
return;
|
|
885
|
-
}
|
|
886
|
-
dateListValue.push(date);
|
|
887
|
-
} else {
|
|
888
|
-
dateListValue.splice(eqIndex, 1);
|
|
889
|
-
}
|
|
890
|
-
dateListValue.forEach(item => {
|
|
891
|
-
if (item) {
|
|
892
|
-
if (datetimePanelValue) {
|
|
893
|
-
item.setHours(datetimePanelValue.getHours());
|
|
894
|
-
item.setMinutes(datetimePanelValue.getMinutes());
|
|
895
|
-
item.setSeconds(datetimePanelValue.getSeconds());
|
|
896
|
-
}
|
|
897
|
-
datetimeRest.push(item);
|
|
898
|
-
}
|
|
899
|
-
});
|
|
900
|
-
handleChange(datetimeRest.map(date => _xeUtils.default.toDateString(date, dateValueFormat)).join(','), {
|
|
901
|
-
type: 'update'
|
|
902
|
-
});
|
|
903
|
-
} else {
|
|
904
|
-
const dateMultipleValue = isReload ? [] : computeDateMultipleValue.value;
|
|
905
|
-
// 如果是日期类型
|
|
906
|
-
if (dateMultipleValue.some(val => _xeUtils.default.isEqual(val, inpVal))) {
|
|
907
|
-
handleChange(dateMultipleValue.filter(val => !_xeUtils.default.isEqual(val, inpVal)).join(','), {
|
|
908
|
-
type: 'update'
|
|
909
|
-
});
|
|
910
|
-
} else {
|
|
911
|
-
if (overCount) {
|
|
912
|
-
// 如果超出最大多选数量
|
|
913
|
-
return;
|
|
914
|
-
}
|
|
915
|
-
handleChange(dateMultipleValue.concat([inpVal]).join(','), {
|
|
916
|
-
type: 'update'
|
|
917
|
-
});
|
|
918
|
-
}
|
|
919
|
-
}
|
|
920
|
-
} else {
|
|
921
|
-
// 如果为单选
|
|
922
|
-
if (!_xeUtils.default.isEqual(modelValue, inpVal)) {
|
|
923
|
-
handleChange(inpVal, {
|
|
924
|
-
type: 'update'
|
|
925
|
-
});
|
|
926
|
-
}
|
|
927
|
-
}
|
|
928
|
-
};
|
|
929
|
-
const afterCheckValue = () => {
|
|
930
|
-
const {
|
|
931
|
-
type
|
|
932
|
-
} = props;
|
|
933
|
-
const {
|
|
934
|
-
inputValue,
|
|
935
|
-
datetimePanelValue
|
|
936
|
-
} = reactData;
|
|
937
|
-
const dateLabelFormat = computeDateLabelFormat.value;
|
|
938
|
-
const inputReadonly = computeInputReadonly.value;
|
|
939
|
-
if (!inputReadonly) {
|
|
940
|
-
if (inputValue) {
|
|
941
|
-
let inpDateVal = parseDate(inputValue, dateLabelFormat);
|
|
942
|
-
if (_xeUtils.default.isValidDate(inpDateVal)) {
|
|
943
|
-
if (type === 'time') {
|
|
944
|
-
inpDateVal = _xeUtils.default.toDateString(inpDateVal, dateLabelFormat);
|
|
945
|
-
if (inputValue !== inpDateVal) {
|
|
946
|
-
handleChange(inpDateVal, {
|
|
947
|
-
type: 'check'
|
|
948
|
-
});
|
|
949
|
-
}
|
|
950
|
-
reactData.inputValue = inpDateVal;
|
|
951
|
-
} else {
|
|
952
|
-
let isChange = false;
|
|
953
|
-
const firstDayOfWeek = computeFirstDayOfWeek.value;
|
|
954
|
-
if (type === 'datetime') {
|
|
955
|
-
const dateValue = computeDateValue.value;
|
|
956
|
-
if (inputValue !== _xeUtils.default.toDateString(dateValue, dateLabelFormat) || inputValue !== _xeUtils.default.toDateString(inpDateVal, dateLabelFormat)) {
|
|
957
|
-
isChange = true;
|
|
958
|
-
if (datetimePanelValue) {
|
|
959
|
-
datetimePanelValue.setHours(inpDateVal.getHours());
|
|
960
|
-
datetimePanelValue.setMinutes(inpDateVal.getMinutes());
|
|
961
|
-
datetimePanelValue.setSeconds(inpDateVal.getSeconds());
|
|
962
|
-
}
|
|
963
|
-
}
|
|
964
|
-
} else {
|
|
965
|
-
isChange = true;
|
|
966
|
-
}
|
|
967
|
-
reactData.inputValue = _xeUtils.default.toDateString(inpDateVal, dateLabelFormat, {
|
|
968
|
-
firstDay: firstDayOfWeek
|
|
969
|
-
});
|
|
970
|
-
if (isChange) {
|
|
971
|
-
dateChange(inpDateVal);
|
|
972
|
-
}
|
|
973
|
-
}
|
|
974
|
-
} else {
|
|
975
|
-
dateRevert();
|
|
976
|
-
}
|
|
977
|
-
} else {
|
|
978
|
-
handleChange('', {
|
|
979
|
-
type: 'check'
|
|
980
|
-
});
|
|
981
|
-
}
|
|
982
|
-
}
|
|
983
|
-
};
|
|
984
410
|
const blurEvent = evnt => {
|
|
411
|
+
const $datePanel = refDatePanel.value;
|
|
985
412
|
const {
|
|
986
413
|
inputValue
|
|
987
414
|
} = reactData;
|
|
@@ -990,509 +417,102 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
990
417
|
if (!inpImmediate) {
|
|
991
418
|
handleChange(value, evnt);
|
|
992
419
|
}
|
|
993
|
-
afterCheckValue();
|
|
994
420
|
if (!reactData.visiblePanel) {
|
|
995
|
-
reactData.isActivated = false;
|
|
996
|
-
}
|
|
997
|
-
dispatchEvent('blur', {
|
|
998
|
-
value
|
|
999
|
-
}, evnt);
|
|
1000
|
-
// 自动更新校验状态
|
|
1001
|
-
if ($xeForm && formItemInfo) {
|
|
1002
|
-
$xeForm.triggerItemEvent(evnt, formItemInfo.itemConfig.field, value);
|
|
1003
|
-
}
|
|
1004
|
-
};
|
|
1005
|
-
const keydownEvent = evnt => {
|
|
1006
|
-
triggerEvent(evnt);
|
|
1007
|
-
};
|
|
1008
|
-
const keyupEvent = evnt => {
|
|
1009
|
-
triggerEvent(evnt);
|
|
1010
|
-
};
|
|
1011
|
-
// 日期
|
|
1012
|
-
const dateMonthHandle = (date, offsetMonth) => {
|
|
1013
|
-
const firstDayOfWeek = computeFirstDayOfWeek.value;
|
|
1014
|
-
const weekNum = _xeUtils.default.getYearWeek(date, firstDayOfWeek);
|
|
1015
|
-
const weekStartDate = _xeUtils.default.getWhatWeek(date, 0, firstDayOfWeek, firstDayOfWeek);
|
|
1016
|
-
const month = _xeUtils.default.getWhatMonth(weekNum === 1 ? _xeUtils.default.getWhatDay(weekStartDate, 6) : date, offsetMonth, 'first');
|
|
1017
|
-
reactData.selectMonth = month;
|
|
1018
|
-
};
|
|
1019
|
-
const dateNowHandle = () => {
|
|
1020
|
-
const {
|
|
1021
|
-
type
|
|
1022
|
-
} = props;
|
|
1023
|
-
const firstDayOfWeek = computeFirstDayOfWeek.value;
|
|
1024
|
-
let currentDate = new Date();
|
|
1025
|
-
switch (type) {
|
|
1026
|
-
case 'week':
|
|
1027
|
-
currentDate = _xeUtils.default.getWhatWeek(currentDate, 0, firstDayOfWeek);
|
|
1028
|
-
break;
|
|
1029
|
-
case 'datetime':
|
|
1030
|
-
currentDate = new Date();
|
|
1031
|
-
reactData.datetimePanelValue = new Date();
|
|
1032
|
-
break;
|
|
1033
|
-
default:
|
|
1034
|
-
currentDate = _xeUtils.default.getWhatDay(Date.now(), 0, 'first');
|
|
1035
|
-
break;
|
|
1036
|
-
}
|
|
1037
|
-
reactData.currentDate = currentDate;
|
|
1038
|
-
dateMonthHandle(currentDate, 0);
|
|
1039
|
-
};
|
|
1040
|
-
const dateToggleYearTypeEvent = () => {
|
|
1041
|
-
reactData.datePanelType = 'year';
|
|
1042
|
-
};
|
|
1043
|
-
const dateToggleMonthTypeEvent = () => {
|
|
1044
|
-
let {
|
|
1045
|
-
datePanelType
|
|
1046
|
-
} = reactData;
|
|
1047
|
-
if (datePanelType === 'month' || datePanelType === 'quarter') {
|
|
1048
|
-
datePanelType = 'year';
|
|
1049
|
-
} else {
|
|
1050
|
-
datePanelType = 'month';
|
|
1051
|
-
}
|
|
1052
|
-
reactData.datePanelType = datePanelType;
|
|
1053
|
-
};
|
|
1054
|
-
const datePrevEvent = evnt => {
|
|
1055
|
-
const {
|
|
1056
|
-
type
|
|
1057
|
-
} = props;
|
|
1058
|
-
const {
|
|
1059
|
-
datePanelType,
|
|
1060
|
-
selectMonth,
|
|
1061
|
-
inputValue
|
|
1062
|
-
} = reactData;
|
|
1063
|
-
const {
|
|
1064
|
-
yearSize
|
|
1065
|
-
} = internalData;
|
|
1066
|
-
const value = inputValue;
|
|
1067
|
-
const isDisabledPrevDateBtn = computeIsDisabledPrevDateBtn.value;
|
|
1068
|
-
if (!isDisabledPrevDateBtn) {
|
|
1069
|
-
let viewDate;
|
|
1070
|
-
if (type === 'year') {
|
|
1071
|
-
viewDate = _xeUtils.default.getWhatYear(selectMonth, -yearSize, 'first');
|
|
1072
|
-
} else if (type === 'month' || type === 'quarter') {
|
|
1073
|
-
if (datePanelType === 'year') {
|
|
1074
|
-
viewDate = _xeUtils.default.getWhatYear(selectMonth, -yearSize, 'first');
|
|
1075
|
-
} else {
|
|
1076
|
-
viewDate = _xeUtils.default.getWhatYear(selectMonth, -1, 'first');
|
|
1077
|
-
}
|
|
1078
|
-
} else {
|
|
1079
|
-
if (datePanelType === 'year') {
|
|
1080
|
-
viewDate = _xeUtils.default.getWhatYear(selectMonth, -yearSize, 'first');
|
|
1081
|
-
} else if (datePanelType === 'month') {
|
|
1082
|
-
viewDate = _xeUtils.default.getWhatYear(selectMonth, -1, 'first');
|
|
1083
|
-
} else {
|
|
1084
|
-
viewDate = _xeUtils.default.getWhatMonth(selectMonth, -1, 'first');
|
|
1085
|
-
}
|
|
1086
|
-
}
|
|
1087
|
-
reactData.selectMonth = viewDate;
|
|
1088
|
-
dispatchEvent('date-prev', {
|
|
1089
|
-
viewType: datePanelType,
|
|
1090
|
-
viewDate,
|
|
1091
|
-
value,
|
|
1092
|
-
type
|
|
1093
|
-
}, evnt);
|
|
1094
|
-
}
|
|
1095
|
-
};
|
|
1096
|
-
const dateTodayMonthEvent = evnt => {
|
|
1097
|
-
dateNowHandle();
|
|
1098
|
-
dateChange(reactData.currentDate, true);
|
|
1099
|
-
if (!props.multiple) {
|
|
1100
|
-
hidePanel();
|
|
1101
|
-
}
|
|
1102
|
-
dispatchEvent('date-today', {
|
|
1103
|
-
type: props.type
|
|
1104
|
-
}, evnt);
|
|
1105
|
-
};
|
|
1106
|
-
const dateNextEvent = evnt => {
|
|
1107
|
-
const {
|
|
1108
|
-
type
|
|
1109
|
-
} = props;
|
|
1110
|
-
const {
|
|
1111
|
-
datePanelType,
|
|
1112
|
-
selectMonth,
|
|
1113
|
-
inputValue
|
|
1114
|
-
} = reactData;
|
|
1115
|
-
const {
|
|
1116
|
-
yearSize
|
|
1117
|
-
} = internalData;
|
|
1118
|
-
const value = inputValue;
|
|
1119
|
-
const isDisabledNextDateBtn = computeIsDisabledNextDateBtn.value;
|
|
1120
|
-
if (!isDisabledNextDateBtn) {
|
|
1121
|
-
let viewDate;
|
|
1122
|
-
if (type === 'year') {
|
|
1123
|
-
viewDate = _xeUtils.default.getWhatYear(selectMonth, yearSize, 'first');
|
|
1124
|
-
} else if (type === 'month' || type === 'quarter') {
|
|
1125
|
-
if (datePanelType === 'year') {
|
|
1126
|
-
viewDate = _xeUtils.default.getWhatYear(selectMonth, yearSize, 'first');
|
|
1127
|
-
} else {
|
|
1128
|
-
viewDate = _xeUtils.default.getWhatYear(selectMonth, 1, 'first');
|
|
1129
|
-
}
|
|
1130
|
-
} else {
|
|
1131
|
-
if (datePanelType === 'year') {
|
|
1132
|
-
viewDate = _xeUtils.default.getWhatYear(selectMonth, yearSize, 'first');
|
|
1133
|
-
} else if (datePanelType === 'month') {
|
|
1134
|
-
viewDate = _xeUtils.default.getWhatYear(selectMonth, 1, 'first');
|
|
1135
|
-
} else {
|
|
1136
|
-
viewDate = _xeUtils.default.getWhatMonth(selectMonth, 1, 'first');
|
|
1137
|
-
}
|
|
1138
|
-
}
|
|
1139
|
-
reactData.selectMonth = viewDate;
|
|
1140
|
-
dispatchEvent('date-next', {
|
|
1141
|
-
viewType: datePanelType,
|
|
1142
|
-
value,
|
|
1143
|
-
type
|
|
1144
|
-
}, evnt);
|
|
1145
|
-
}
|
|
1146
|
-
};
|
|
1147
|
-
const isDateDisabled = item => {
|
|
1148
|
-
const {
|
|
1149
|
-
disabledMethod
|
|
1150
|
-
} = props;
|
|
1151
|
-
const {
|
|
1152
|
-
datePanelType
|
|
1153
|
-
} = reactData;
|
|
1154
|
-
const dateStartTime = computeDateStartTime.value;
|
|
1155
|
-
const dateEndTime = computeDateEndTime.value;
|
|
1156
|
-
const {
|
|
1157
|
-
date
|
|
1158
|
-
} = item;
|
|
1159
|
-
if (dateStartTime && dateStartTime.getTime() > date.getTime()) {
|
|
1160
|
-
return true;
|
|
1161
|
-
}
|
|
1162
|
-
if (dateEndTime && dateEndTime.getTime() < date.getTime()) {
|
|
1163
|
-
return true;
|
|
1164
|
-
}
|
|
1165
|
-
if (disabledMethod) {
|
|
1166
|
-
return disabledMethod({
|
|
1167
|
-
type: datePanelType,
|
|
1168
|
-
viewType: datePanelType,
|
|
1169
|
-
date,
|
|
1170
|
-
$datePicker: $xeDatePicker
|
|
1171
|
-
});
|
|
1172
|
-
}
|
|
1173
|
-
return false;
|
|
1174
|
-
};
|
|
1175
|
-
const dateSelectItem = date => {
|
|
1176
|
-
const {
|
|
1177
|
-
type,
|
|
1178
|
-
multiple
|
|
1179
|
-
} = props;
|
|
1180
|
-
const {
|
|
1181
|
-
datePanelType
|
|
1182
|
-
} = reactData;
|
|
1183
|
-
if (type === 'month') {
|
|
1184
|
-
if (datePanelType === 'year') {
|
|
1185
|
-
reactData.datePanelType = 'month';
|
|
1186
|
-
dateCheckMonth(date);
|
|
1187
|
-
} else {
|
|
1188
|
-
dateChange(date);
|
|
1189
|
-
if (!multiple) {
|
|
1190
|
-
hidePanel();
|
|
1191
|
-
}
|
|
1192
|
-
}
|
|
1193
|
-
} else if (type === 'year') {
|
|
1194
|
-
dateChange(date);
|
|
1195
|
-
if (!multiple) {
|
|
1196
|
-
hidePanel();
|
|
1197
|
-
}
|
|
1198
|
-
} else if (type === 'quarter') {
|
|
1199
|
-
if (datePanelType === 'year') {
|
|
1200
|
-
reactData.datePanelType = 'quarter';
|
|
1201
|
-
dateCheckMonth(date);
|
|
1202
|
-
} else {
|
|
1203
|
-
dateChange(date);
|
|
1204
|
-
if (!multiple) {
|
|
1205
|
-
hidePanel();
|
|
1206
|
-
}
|
|
1207
|
-
}
|
|
1208
|
-
} else {
|
|
1209
|
-
if (datePanelType === 'month') {
|
|
1210
|
-
reactData.datePanelType = type === 'week' ? type : 'day';
|
|
1211
|
-
dateCheckMonth(date);
|
|
1212
|
-
} else if (datePanelType === 'year') {
|
|
1213
|
-
reactData.datePanelType = 'month';
|
|
1214
|
-
dateCheckMonth(date);
|
|
1215
|
-
} else {
|
|
1216
|
-
dateChange(date);
|
|
1217
|
-
if (type === 'datetime') {
|
|
1218
|
-
// 日期带时间
|
|
1219
|
-
} else {
|
|
1220
|
-
if (!multiple) {
|
|
1221
|
-
hidePanel();
|
|
1222
|
-
}
|
|
1223
|
-
}
|
|
1224
|
-
}
|
|
1225
|
-
}
|
|
1226
|
-
};
|
|
1227
|
-
const dateSelectEvent = item => {
|
|
1228
|
-
if (!isDateDisabled(item)) {
|
|
1229
|
-
dateSelectItem(item.date);
|
|
1230
|
-
}
|
|
1231
|
-
};
|
|
1232
|
-
const dateMoveDay = offsetDay => {
|
|
1233
|
-
if (!isDateDisabled({
|
|
1234
|
-
date: offsetDay
|
|
1235
|
-
})) {
|
|
1236
|
-
const dayList = computeDayList.value;
|
|
1237
|
-
if (!dayList.some(item => _xeUtils.default.isDateSame(item.date, offsetDay, 'yyyyMMdd'))) {
|
|
1238
|
-
dateCheckMonth(offsetDay);
|
|
1239
|
-
}
|
|
1240
|
-
dateParseValue(offsetDay);
|
|
1241
|
-
}
|
|
1242
|
-
};
|
|
1243
|
-
const dateMoveYear = offsetYear => {
|
|
1244
|
-
if (!isDateDisabled({
|
|
1245
|
-
date: offsetYear
|
|
1246
|
-
})) {
|
|
1247
|
-
const yearList = computeYearList.value;
|
|
1248
|
-
if (!yearList.some(item => _xeUtils.default.isDateSame(item.date, offsetYear, 'yyyy'))) {
|
|
1249
|
-
dateCheckMonth(offsetYear);
|
|
1250
|
-
}
|
|
1251
|
-
dateParseValue(offsetYear);
|
|
1252
|
-
}
|
|
1253
|
-
};
|
|
1254
|
-
const dateMoveQuarter = offsetQuarter => {
|
|
1255
|
-
if (!isDateDisabled({
|
|
1256
|
-
date: offsetQuarter
|
|
1257
|
-
})) {
|
|
1258
|
-
const quarterList = computeQuarterList.value;
|
|
1259
|
-
if (!quarterList.some(item => _xeUtils.default.isDateSame(item.date, offsetQuarter, 'yyyyq'))) {
|
|
1260
|
-
dateCheckMonth(offsetQuarter);
|
|
1261
|
-
}
|
|
1262
|
-
dateParseValue(offsetQuarter);
|
|
1263
|
-
}
|
|
1264
|
-
};
|
|
1265
|
-
const dateMoveMonth = offsetMonth => {
|
|
1266
|
-
if (!isDateDisabled({
|
|
1267
|
-
date: offsetMonth
|
|
1268
|
-
})) {
|
|
1269
|
-
const monthList = computeMonthList.value;
|
|
1270
|
-
if (!monthList.some(item => _xeUtils.default.isDateSame(item.date, offsetMonth, 'yyyyMM'))) {
|
|
1271
|
-
dateCheckMonth(offsetMonth);
|
|
1272
|
-
}
|
|
1273
|
-
dateParseValue(offsetMonth);
|
|
1274
|
-
}
|
|
1275
|
-
};
|
|
1276
|
-
const dateMouseenterEvent = item => {
|
|
1277
|
-
if (!isDateDisabled(item)) {
|
|
1278
|
-
const {
|
|
1279
|
-
datePanelType
|
|
1280
|
-
} = reactData;
|
|
1281
|
-
if (datePanelType === 'month') {
|
|
1282
|
-
dateMoveMonth(item.date);
|
|
1283
|
-
} else if (datePanelType === 'quarter') {
|
|
1284
|
-
dateMoveQuarter(item.date);
|
|
1285
|
-
} else if (datePanelType === 'year') {
|
|
1286
|
-
dateMoveYear(item.date);
|
|
1287
|
-
} else {
|
|
1288
|
-
dateMoveDay(item.date);
|
|
1289
|
-
}
|
|
421
|
+
reactData.isActivated = false;
|
|
1290
422
|
}
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
423
|
+
if ($datePanel) {
|
|
424
|
+
$datePanel.checkValue(reactData.inputLabel);
|
|
425
|
+
}
|
|
426
|
+
dispatchEvent('blur', {
|
|
427
|
+
value
|
|
428
|
+
}, evnt);
|
|
429
|
+
// 自动更新校验状态
|
|
430
|
+
if ($xeForm && formItemInfo) {
|
|
431
|
+
$xeForm.triggerItemEvent(evnt, formItemInfo.itemConfig.field, value);
|
|
1297
432
|
}
|
|
1298
433
|
};
|
|
1299
|
-
const
|
|
1300
|
-
|
|
1301
|
-
datetimePanelValue
|
|
1302
|
-
} = reactData;
|
|
1303
|
-
reactData.datetimePanelValue = datetimePanelValue ? new Date(datetimePanelValue.getTime()) : new Date();
|
|
1304
|
-
updateTimePos(evnt.currentTarget);
|
|
434
|
+
const keydownEvent = evnt => {
|
|
435
|
+
triggerEvent(evnt);
|
|
1305
436
|
};
|
|
1306
|
-
const
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
437
|
+
const keyupEvent = evnt => {
|
|
438
|
+
triggerEvent(evnt);
|
|
439
|
+
};
|
|
440
|
+
const confirmEvent = evnt => {
|
|
441
|
+
const $datePanel = refDatePanel.value;
|
|
442
|
+
if ($datePanel) {
|
|
443
|
+
$datePanel.confirmByEvent(evnt);
|
|
1312
444
|
}
|
|
1313
|
-
|
|
445
|
+
hidePanel();
|
|
1314
446
|
};
|
|
1315
|
-
|
|
1316
|
-
// const value = ''
|
|
1317
|
-
// handleChange(value, evnt)
|
|
1318
|
-
// dispatchEvent('clear', { value }, evnt)
|
|
1319
|
-
// }
|
|
1320
|
-
const dateConfirmEvent = () => {
|
|
447
|
+
const panelChangeEvent = params => {
|
|
1321
448
|
const {
|
|
1322
449
|
multiple
|
|
1323
450
|
} = props;
|
|
1324
451
|
const {
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
452
|
+
value,
|
|
453
|
+
$event
|
|
454
|
+
} = params;
|
|
1328
455
|
const isDateTimeType = computeIsDateTimeType.value;
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
// 如果为多选
|
|
1333
|
-
const dateMultipleValue = computeDateMultipleValue.value;
|
|
1334
|
-
if (isDateTimeType) {
|
|
1335
|
-
// 如果是datetime特殊类型
|
|
1336
|
-
const dateListValue = [...computeDateListValue.value];
|
|
1337
|
-
const datetimeRest = [];
|
|
1338
|
-
dateListValue.forEach(item => {
|
|
1339
|
-
if (item) {
|
|
1340
|
-
if (datetimePanelValue) {
|
|
1341
|
-
item.setHours(datetimePanelValue.getHours());
|
|
1342
|
-
item.setMinutes(datetimePanelValue.getMinutes());
|
|
1343
|
-
item.setSeconds(datetimePanelValue.getSeconds());
|
|
1344
|
-
}
|
|
1345
|
-
datetimeRest.push(item);
|
|
1346
|
-
}
|
|
1347
|
-
});
|
|
1348
|
-
handleChange(datetimeRest.map(date => _xeUtils.default.toDateString(date, dateValueFormat)).join(','), {
|
|
1349
|
-
type: 'update'
|
|
1350
|
-
});
|
|
1351
|
-
} else {
|
|
1352
|
-
// 如果是日期类型
|
|
1353
|
-
handleChange(dateMultipleValue.join(','), {
|
|
1354
|
-
type: 'update'
|
|
1355
|
-
});
|
|
1356
|
-
}
|
|
1357
|
-
} else {
|
|
1358
|
-
dateChange(dateValue || reactData.currentDate);
|
|
1359
|
-
}
|
|
1360
|
-
}
|
|
1361
|
-
hidePanel();
|
|
1362
|
-
};
|
|
1363
|
-
const dateMinuteEvent = (evnt, item) => {
|
|
1364
|
-
const {
|
|
1365
|
-
datetimePanelValue
|
|
1366
|
-
} = reactData;
|
|
1367
|
-
if (datetimePanelValue) {
|
|
1368
|
-
datetimePanelValue.setMinutes(item.value);
|
|
456
|
+
handleChange(value, $event);
|
|
457
|
+
if (!multiple && !isDateTimeType) {
|
|
458
|
+
hidePanel();
|
|
1369
459
|
}
|
|
1370
|
-
dateTimeChangeEvent(evnt);
|
|
1371
460
|
};
|
|
1372
|
-
|
|
461
|
+
// 全局事件
|
|
462
|
+
const handleGlobalMousedownEvent = evnt => {
|
|
463
|
+
const $datePanel = refDatePanel.value;
|
|
1373
464
|
const {
|
|
1374
|
-
|
|
465
|
+
visiblePanel,
|
|
466
|
+
isActivated
|
|
1375
467
|
} = reactData;
|
|
1376
|
-
|
|
1377
|
-
|
|
468
|
+
const el = refElem.value;
|
|
469
|
+
const panelWrapperElem = refPanelWrapper.value;
|
|
470
|
+
const isDisabled = computeIsDisabled.value;
|
|
471
|
+
if (!isDisabled && isActivated) {
|
|
472
|
+
reactData.isActivated = (0, _dom.getEventTargetNode)(evnt, el).flag || (0, _dom.getEventTargetNode)(evnt, panelWrapperElem).flag;
|
|
473
|
+
if (!reactData.isActivated) {
|
|
474
|
+
if (visiblePanel) {
|
|
475
|
+
hidePanel();
|
|
476
|
+
if ($datePanel) {
|
|
477
|
+
$datePanel.checkValue(reactData.inputLabel);
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
}
|
|
1378
481
|
}
|
|
1379
|
-
dateTimeChangeEvent(evnt);
|
|
1380
482
|
};
|
|
1381
|
-
const
|
|
483
|
+
const handleGlobalMousewheelEvent = evnt => {
|
|
1382
484
|
const {
|
|
1383
|
-
|
|
1384
|
-
datePanelValue,
|
|
1385
|
-
datePanelType
|
|
485
|
+
visiblePanel
|
|
1386
486
|
} = reactData;
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
if (isLeftArrow) {
|
|
1396
|
-
offsetYear = _xeUtils.default.getWhatYear(offsetYear, -1);
|
|
1397
|
-
} else if (isUpArrow) {
|
|
1398
|
-
offsetYear = _xeUtils.default.getWhatYear(offsetYear, -4);
|
|
1399
|
-
} else if (isRightArrow) {
|
|
1400
|
-
offsetYear = _xeUtils.default.getWhatYear(offsetYear, 1);
|
|
1401
|
-
} else if (isDwArrow) {
|
|
1402
|
-
offsetYear = _xeUtils.default.getWhatYear(offsetYear, 4);
|
|
1403
|
-
}
|
|
1404
|
-
dateMoveYear(offsetYear);
|
|
1405
|
-
} else if (datePanelType === 'quarter') {
|
|
1406
|
-
let offsetQuarter = _xeUtils.default.getWhatQuarter(datePanelValue || Date.now(), 0, 'first');
|
|
1407
|
-
if (isLeftArrow) {
|
|
1408
|
-
offsetQuarter = _xeUtils.default.getWhatQuarter(offsetQuarter, -1);
|
|
1409
|
-
} else if (isUpArrow) {
|
|
1410
|
-
offsetQuarter = _xeUtils.default.getWhatQuarter(offsetQuarter, -2);
|
|
1411
|
-
} else if (isRightArrow) {
|
|
1412
|
-
offsetQuarter = _xeUtils.default.getWhatQuarter(offsetQuarter, 1);
|
|
1413
|
-
} else if (isDwArrow) {
|
|
1414
|
-
offsetQuarter = _xeUtils.default.getWhatQuarter(offsetQuarter, 2);
|
|
1415
|
-
}
|
|
1416
|
-
dateMoveQuarter(offsetQuarter);
|
|
1417
|
-
} else if (datePanelType === 'month') {
|
|
1418
|
-
let offsetMonth = _xeUtils.default.getWhatMonth(datePanelValue || Date.now(), 0, 'first');
|
|
1419
|
-
if (isLeftArrow) {
|
|
1420
|
-
offsetMonth = _xeUtils.default.getWhatMonth(offsetMonth, -1);
|
|
1421
|
-
} else if (isUpArrow) {
|
|
1422
|
-
offsetMonth = _xeUtils.default.getWhatMonth(offsetMonth, -4);
|
|
1423
|
-
} else if (isRightArrow) {
|
|
1424
|
-
offsetMonth = _xeUtils.default.getWhatMonth(offsetMonth, 1);
|
|
1425
|
-
} else if (isDwArrow) {
|
|
1426
|
-
offsetMonth = _xeUtils.default.getWhatMonth(offsetMonth, 4);
|
|
1427
|
-
}
|
|
1428
|
-
dateMoveMonth(offsetMonth);
|
|
1429
|
-
} else if (datePanelType === 'week') {
|
|
1430
|
-
let offsetDay = datePanelValue || _xeUtils.default.getWhatDay(Date.now(), 0, 'first');
|
|
1431
|
-
const firstDayOfWeek = computeFirstDayOfWeek.value;
|
|
1432
|
-
if (isUpArrow) {
|
|
1433
|
-
offsetDay = _xeUtils.default.getWhatWeek(offsetDay, -1, firstDayOfWeek);
|
|
1434
|
-
} else if (isDwArrow) {
|
|
1435
|
-
offsetDay = _xeUtils.default.getWhatWeek(offsetDay, 1, firstDayOfWeek);
|
|
1436
|
-
}
|
|
1437
|
-
dateMoveDay(offsetDay);
|
|
1438
|
-
} else {
|
|
1439
|
-
let offsetDay = datePanelValue || _xeUtils.default.getWhatDay(Date.now(), 0, 'first');
|
|
1440
|
-
if (isLeftArrow) {
|
|
1441
|
-
offsetDay = _xeUtils.default.getWhatDay(offsetDay, -1);
|
|
1442
|
-
} else if (isUpArrow) {
|
|
1443
|
-
offsetDay = _xeUtils.default.getWhatWeek(offsetDay, -1, offsetDay.getDay());
|
|
1444
|
-
} else if (isRightArrow) {
|
|
1445
|
-
offsetDay = _xeUtils.default.getWhatDay(offsetDay, 1);
|
|
1446
|
-
} else if (isDwArrow) {
|
|
1447
|
-
offsetDay = _xeUtils.default.getWhatWeek(offsetDay, 1, offsetDay.getDay());
|
|
487
|
+
const isDisabled = computeIsDisabled.value;
|
|
488
|
+
if (!isDisabled) {
|
|
489
|
+
if (visiblePanel) {
|
|
490
|
+
const panelWrapperElem = refPanelWrapper.value;
|
|
491
|
+
if ((0, _dom.getEventTargetNode)(evnt, panelWrapperElem).flag) {
|
|
492
|
+
updatePlacement();
|
|
493
|
+
} else {
|
|
494
|
+
hidePanel();
|
|
1448
495
|
}
|
|
1449
|
-
dateMoveDay(offsetDay);
|
|
1450
496
|
}
|
|
1451
497
|
}
|
|
1452
498
|
};
|
|
1453
|
-
const
|
|
499
|
+
const handleGlobalBlurEvent = () => {
|
|
500
|
+
const $datePanel = refDatePanel.value;
|
|
1454
501
|
const {
|
|
1455
|
-
isActivated
|
|
502
|
+
isActivated,
|
|
503
|
+
visiblePanel
|
|
1456
504
|
} = reactData;
|
|
1457
|
-
if (
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
|
|
505
|
+
if (visiblePanel) {
|
|
506
|
+
hidePanel();
|
|
507
|
+
if ($datePanel) {
|
|
508
|
+
$datePanel.checkValue(reactData.inputLabel);
|
|
509
|
+
}
|
|
510
|
+
} else if (isActivated) {
|
|
511
|
+
if ($datePanel) {
|
|
512
|
+
$datePanel.checkValue(reactData.inputLabel);
|
|
1464
513
|
}
|
|
1465
514
|
}
|
|
1466
515
|
};
|
|
1467
|
-
const dateOpenPanel = () => {
|
|
1468
|
-
const {
|
|
1469
|
-
type
|
|
1470
|
-
} = props;
|
|
1471
|
-
const isDateTimeType = computeIsDateTimeType.value;
|
|
1472
|
-
const dateValue = computeDateValue.value;
|
|
1473
|
-
if (['year', 'quarter', 'month', 'week'].indexOf(type) > -1) {
|
|
1474
|
-
reactData.datePanelType = type;
|
|
1475
|
-
} else {
|
|
1476
|
-
reactData.datePanelType = 'day';
|
|
1477
|
-
}
|
|
1478
|
-
reactData.currentDate = _xeUtils.default.getWhatDay(Date.now(), 0, 'first');
|
|
1479
|
-
if (dateValue) {
|
|
1480
|
-
dateMonthHandle(dateValue, 0);
|
|
1481
|
-
dateParseValue(dateValue);
|
|
1482
|
-
} else {
|
|
1483
|
-
dateNowHandle();
|
|
1484
|
-
}
|
|
1485
|
-
if (isDateTimeType) {
|
|
1486
|
-
reactData.datetimePanelValue = reactData.datePanelValue || _xeUtils.default.getWhatDay(Date.now(), 0, 'first');
|
|
1487
|
-
(0, _vue.nextTick)(() => {
|
|
1488
|
-
const timeBodyElem = refInputTimeBody.value;
|
|
1489
|
-
_xeUtils.default.arrayEach(timeBodyElem.querySelectorAll('li.is--selected'), elem => {
|
|
1490
|
-
updateTimePos(elem);
|
|
1491
|
-
});
|
|
1492
|
-
});
|
|
1493
|
-
}
|
|
1494
|
-
};
|
|
1495
|
-
// 日期
|
|
1496
516
|
// 弹出面板
|
|
1497
517
|
const updateZindex = () => {
|
|
1498
518
|
if (reactData.panelIndex < (0, _utils.getLastZIndex)()) {
|
|
@@ -1585,7 +605,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
1585
605
|
visiblePanel
|
|
1586
606
|
} = reactData;
|
|
1587
607
|
const isDisabled = computeIsDisabled.value;
|
|
1588
|
-
const isDatePickerType = computeIsDatePickerType.value;
|
|
1589
608
|
if (!isDisabled && !visiblePanel) {
|
|
1590
609
|
if (!reactData.initialized) {
|
|
1591
610
|
reactData.initialized = true;
|
|
@@ -1596,9 +615,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
1596
615
|
}
|
|
1597
616
|
reactData.isActivated = true;
|
|
1598
617
|
reactData.isAniVisible = true;
|
|
1599
|
-
if (isDatePickerType) {
|
|
1600
|
-
dateOpenPanel();
|
|
1601
|
-
}
|
|
1602
618
|
setTimeout(() => {
|
|
1603
619
|
reactData.visiblePanel = true;
|
|
1604
620
|
}, 10);
|
|
@@ -1621,152 +637,81 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
1621
637
|
option,
|
|
1622
638
|
$event
|
|
1623
639
|
}) => {
|
|
640
|
+
const {
|
|
641
|
+
type
|
|
642
|
+
} = props;
|
|
643
|
+
const {
|
|
644
|
+
inputValue
|
|
645
|
+
} = reactData;
|
|
1624
646
|
const shortcutOpts = computeShortcutOpts.value;
|
|
1625
647
|
const {
|
|
1626
648
|
autoClose
|
|
1627
649
|
} = shortcutOpts;
|
|
1628
|
-
const
|
|
650
|
+
const {
|
|
651
|
+
code,
|
|
652
|
+
clickMethod
|
|
653
|
+
} = option;
|
|
654
|
+
let value = inputValue;
|
|
1629
655
|
const shortcutParams = {
|
|
1630
656
|
$datePicker: $xeDatePicker,
|
|
1631
|
-
option
|
|
657
|
+
option,
|
|
658
|
+
value,
|
|
659
|
+
code
|
|
1632
660
|
};
|
|
1633
|
-
if (clickMethod) {
|
|
1634
|
-
|
|
1635
|
-
|
|
1636
|
-
|
|
1637
|
-
|
|
1638
|
-
|
|
1639
|
-
|
|
1640
|
-
|
|
1641
|
-
|
|
1642
|
-
|
|
1643
|
-
|
|
1644
|
-
|
|
1645
|
-
|
|
1646
|
-
|
|
1647
|
-
|
|
1648
|
-
|
|
1649
|
-
|
|
1650
|
-
|
|
1651
|
-
|
|
1652
|
-
|
|
1653
|
-
|
|
1654
|
-
|
|
1655
|
-
|
|
1656
|
-
if (visiblePanel) {
|
|
1657
|
-
hidePanel();
|
|
1658
|
-
afterCheckValue();
|
|
1659
|
-
}
|
|
1660
|
-
} else {
|
|
1661
|
-
afterCheckValue();
|
|
1662
|
-
}
|
|
1663
|
-
}
|
|
1664
|
-
}
|
|
1665
|
-
};
|
|
1666
|
-
const handleGlobalKeydownEvent = evnt => {
|
|
1667
|
-
const {
|
|
1668
|
-
clearable
|
|
1669
|
-
} = props;
|
|
1670
|
-
const {
|
|
1671
|
-
visiblePanel
|
|
1672
|
-
} = reactData;
|
|
1673
|
-
const isDatePickerType = computeIsDatePickerType.value;
|
|
1674
|
-
const isDisabled = computeIsDisabled.value;
|
|
1675
|
-
if (!isDisabled) {
|
|
1676
|
-
const isTab = _ui.globalEvents.hasKey(evnt, _ui.GLOBAL_EVENT_KEYS.TAB);
|
|
1677
|
-
const isDel = _ui.globalEvents.hasKey(evnt, _ui.GLOBAL_EVENT_KEYS.DELETE);
|
|
1678
|
-
const isEsc = _ui.globalEvents.hasKey(evnt, _ui.GLOBAL_EVENT_KEYS.ESCAPE);
|
|
1679
|
-
const isEnter = _ui.globalEvents.hasKey(evnt, _ui.GLOBAL_EVENT_KEYS.ENTER);
|
|
1680
|
-
const isLeftArrow = _ui.globalEvents.hasKey(evnt, _ui.GLOBAL_EVENT_KEYS.ARROW_LEFT);
|
|
1681
|
-
const isUpArrow = _ui.globalEvents.hasKey(evnt, _ui.GLOBAL_EVENT_KEYS.ARROW_UP);
|
|
1682
|
-
const isRightArrow = _ui.globalEvents.hasKey(evnt, _ui.GLOBAL_EVENT_KEYS.ARROW_RIGHT);
|
|
1683
|
-
const isDwArrow = _ui.globalEvents.hasKey(evnt, _ui.GLOBAL_EVENT_KEYS.ARROW_DOWN);
|
|
1684
|
-
const isPgUp = _ui.globalEvents.hasKey(evnt, _ui.GLOBAL_EVENT_KEYS.PAGE_UP);
|
|
1685
|
-
const isPgDn = _ui.globalEvents.hasKey(evnt, _ui.GLOBAL_EVENT_KEYS.PAGE_DOWN);
|
|
1686
|
-
const operArrow = isLeftArrow || isUpArrow || isRightArrow || isDwArrow;
|
|
1687
|
-
let isActivated = reactData.isActivated;
|
|
1688
|
-
if (isTab) {
|
|
1689
|
-
if (isActivated) {
|
|
1690
|
-
afterCheckValue();
|
|
1691
|
-
}
|
|
1692
|
-
isActivated = false;
|
|
1693
|
-
reactData.isActivated = isActivated;
|
|
1694
|
-
} else if (operArrow) {
|
|
1695
|
-
if (isDatePickerType) {
|
|
1696
|
-
if (isActivated) {
|
|
1697
|
-
if (visiblePanel) {
|
|
1698
|
-
dateOffsetEvent(evnt);
|
|
1699
|
-
} else if (isUpArrow || isDwArrow) {
|
|
1700
|
-
datePickerOpenEvent(evnt);
|
|
1701
|
-
}
|
|
1702
|
-
}
|
|
1703
|
-
}
|
|
1704
|
-
} else if (isEnter) {
|
|
1705
|
-
if (isDatePickerType) {
|
|
1706
|
-
if (visiblePanel) {
|
|
1707
|
-
if (reactData.datePanelValue) {
|
|
1708
|
-
dateSelectItem(reactData.datePanelValue);
|
|
1709
|
-
} else {
|
|
1710
|
-
hidePanel();
|
|
661
|
+
if (!clickMethod && code) {
|
|
662
|
+
const gCommandOpts = _ui.commands.get(code);
|
|
663
|
+
const dpCommandMethod = gCommandOpts ? gCommandOpts.datePickerCommandMethod : null;
|
|
664
|
+
if (dpCommandMethod) {
|
|
665
|
+
dpCommandMethod(shortcutParams);
|
|
666
|
+
} else {
|
|
667
|
+
const dateValueFormat = computeDateValueFormat.value;
|
|
668
|
+
const firstDayOfWeek = computeFirstDayOfWeek.value;
|
|
669
|
+
switch (code) {
|
|
670
|
+
case 'now':
|
|
671
|
+
case 'prev':
|
|
672
|
+
case 'next':
|
|
673
|
+
case 'minus':
|
|
674
|
+
case 'plus':
|
|
675
|
+
{
|
|
676
|
+
const restObj = (0, _util.getDateByCode)(code, value, type, {
|
|
677
|
+
valueFormat: dateValueFormat,
|
|
678
|
+
firstDay: firstDayOfWeek
|
|
679
|
+
});
|
|
680
|
+
value = restObj.value;
|
|
681
|
+
shortcutParams.value = value;
|
|
682
|
+
handleChange(value, $event);
|
|
683
|
+
break;
|
|
1711
684
|
}
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
}
|
|
1716
|
-
} else if (isPgUp || isPgDn) {
|
|
1717
|
-
if (isDatePickerType) {
|
|
1718
|
-
if (isActivated) {
|
|
1719
|
-
datePgOffsetEvent(evnt);
|
|
1720
|
-
}
|
|
1721
|
-
}
|
|
1722
|
-
}
|
|
1723
|
-
if (isTab || isEsc) {
|
|
1724
|
-
if (visiblePanel) {
|
|
1725
|
-
hidePanel();
|
|
1726
|
-
}
|
|
1727
|
-
} else if (isDel && clearable) {
|
|
1728
|
-
if (isActivated) {
|
|
1729
|
-
clearValueEvent(evnt, null);
|
|
685
|
+
default:
|
|
686
|
+
(0, _log.errLog)('vxe.error.notCommands', [code]);
|
|
687
|
+
break;
|
|
1730
688
|
}
|
|
1731
689
|
}
|
|
1732
|
-
}
|
|
1733
|
-
|
|
1734
|
-
|
|
1735
|
-
|
|
1736
|
-
visiblePanel
|
|
1737
|
-
} = reactData;
|
|
1738
|
-
const isDisabled = computeIsDisabled.value;
|
|
1739
|
-
if (!isDisabled) {
|
|
1740
|
-
if (visiblePanel) {
|
|
1741
|
-
const panelWrapperElem = refPanelWrapper.value;
|
|
1742
|
-
if ((0, _dom.getEventTargetNode)(evnt, panelWrapperElem).flag) {
|
|
1743
|
-
updatePlacement();
|
|
1744
|
-
} else {
|
|
1745
|
-
hidePanel();
|
|
1746
|
-
afterCheckValue();
|
|
1747
|
-
}
|
|
690
|
+
} else {
|
|
691
|
+
const optClickMethod = clickMethod || shortcutOpts.clickMethod;
|
|
692
|
+
if (optClickMethod) {
|
|
693
|
+
optClickMethod(shortcutParams);
|
|
1748
694
|
}
|
|
1749
695
|
}
|
|
1750
|
-
|
|
1751
|
-
const handleGlobalBlurEvent = () => {
|
|
1752
|
-
const {
|
|
1753
|
-
isActivated,
|
|
1754
|
-
visiblePanel
|
|
1755
|
-
} = reactData;
|
|
1756
|
-
if (visiblePanel) {
|
|
696
|
+
if (autoClose) {
|
|
1757
697
|
hidePanel();
|
|
1758
|
-
afterCheckValue();
|
|
1759
|
-
} else if (isActivated) {
|
|
1760
|
-
afterCheckValue();
|
|
1761
698
|
}
|
|
699
|
+
dispatchEvent('shortcut-click', shortcutParams, $event);
|
|
1762
700
|
};
|
|
1763
701
|
const dispatchEvent = (type, params, evnt) => {
|
|
1764
702
|
emit(type, (0, _ui.createEvent)(evnt, {
|
|
1765
703
|
$datePicker: $xeDatePicker
|
|
1766
704
|
}, params));
|
|
1767
705
|
};
|
|
1768
|
-
datePickerMethods = {
|
|
706
|
+
const datePickerMethods = {
|
|
1769
707
|
dispatchEvent,
|
|
708
|
+
setModelValue(value) {
|
|
709
|
+
reactData.inputValue = value;
|
|
710
|
+
emit('update:modelValue', value);
|
|
711
|
+
},
|
|
712
|
+
setModelValueByEvent(evnt, value) {
|
|
713
|
+
handleChange(value || '', evnt);
|
|
714
|
+
},
|
|
1770
715
|
focus() {
|
|
1771
716
|
const inputElem = refInputTarget.value;
|
|
1772
717
|
reactData.isActivated = true;
|
|
@@ -1790,389 +735,19 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
1790
735
|
updatePlacement
|
|
1791
736
|
};
|
|
1792
737
|
Object.assign($xeDatePicker, datePickerMethods);
|
|
1793
|
-
const renderDateLabel = (item, label) => {
|
|
1794
|
-
const {
|
|
1795
|
-
festivalMethod
|
|
1796
|
-
} = props;
|
|
1797
|
-
if (festivalMethod) {
|
|
1798
|
-
const {
|
|
1799
|
-
datePanelType
|
|
1800
|
-
} = reactData;
|
|
1801
|
-
const festivalRest = festivalMethod({
|
|
1802
|
-
type: datePanelType,
|
|
1803
|
-
viewType: datePanelType,
|
|
1804
|
-
date: item.date,
|
|
1805
|
-
$datePicker: $xeDatePicker
|
|
1806
|
-
});
|
|
1807
|
-
const festivalItem = festivalRest ? _xeUtils.default.isString(festivalRest) ? {
|
|
1808
|
-
label: festivalRest
|
|
1809
|
-
} : festivalRest : {};
|
|
1810
|
-
const extraItem = festivalItem.extra ? _xeUtils.default.isString(festivalItem.extra) ? {
|
|
1811
|
-
label: festivalItem.extra
|
|
1812
|
-
} : festivalItem.extra : null;
|
|
1813
|
-
const labels = [(0, _vue.h)('span', {
|
|
1814
|
-
class: ['vxe-date-picker--date-label', {
|
|
1815
|
-
'is-notice': festivalItem.notice
|
|
1816
|
-
}]
|
|
1817
|
-
}, extraItem && extraItem.label ? [(0, _vue.h)('span', `${label}`), (0, _vue.h)('span', {
|
|
1818
|
-
class: ['vxe-date-picker--date-label--extra', extraItem.important ? 'is-important' : '', extraItem.className],
|
|
1819
|
-
style: extraItem.style
|
|
1820
|
-
}, _xeUtils.default.toValueString(extraItem.label))] : `${label}`)];
|
|
1821
|
-
const festivalLabel = festivalItem.label;
|
|
1822
|
-
if (festivalLabel) {
|
|
1823
|
-
// 默认最多支持3个节日重叠
|
|
1824
|
-
const festivalLabels = _xeUtils.default.toValueString(festivalLabel).split(',');
|
|
1825
|
-
labels.push((0, _vue.h)('span', {
|
|
1826
|
-
class: ['vxe-date-picker--date-festival', festivalItem.important ? 'is-important' : '', festivalItem.className],
|
|
1827
|
-
style: festivalItem.style
|
|
1828
|
-
}, [festivalLabels.length > 1 ? (0, _vue.h)('span', {
|
|
1829
|
-
class: ['vxe-date-picker--date-festival--overlap', `overlap--${festivalLabels.length}`]
|
|
1830
|
-
}, festivalLabels.map(label => (0, _vue.h)('span', label.substring(0, 3)))) : (0, _vue.h)('span', {
|
|
1831
|
-
class: 'vxe-date-picker--date-festival--label'
|
|
1832
|
-
}, festivalLabels[0].substring(0, 3))]));
|
|
1833
|
-
}
|
|
1834
|
-
return labels;
|
|
1835
|
-
}
|
|
1836
|
-
return label;
|
|
1837
|
-
};
|
|
1838
|
-
const renderDateDayTable = () => {
|
|
1839
|
-
const {
|
|
1840
|
-
multiple
|
|
1841
|
-
} = props;
|
|
1842
|
-
const {
|
|
1843
|
-
datePanelType,
|
|
1844
|
-
datePanelValue
|
|
1845
|
-
} = reactData;
|
|
1846
|
-
const dateValue = computeDateValue.value;
|
|
1847
|
-
const dateHeaders = computeDateHeaders.value;
|
|
1848
|
-
const dayDatas = computeDayDatas.value;
|
|
1849
|
-
const dateListValue = computeDateListValue.value;
|
|
1850
|
-
const overCount = computeOverCount.value;
|
|
1851
|
-
const matchFormat = 'yyyyMMdd';
|
|
1852
|
-
return [(0, _vue.h)('table', {
|
|
1853
|
-
class: `vxe-date-picker--date-${datePanelType}-view`,
|
|
1854
|
-
cellspacing: 0,
|
|
1855
|
-
cellpadding: 0,
|
|
1856
|
-
border: 0
|
|
1857
|
-
}, [(0, _vue.h)('thead', [(0, _vue.h)('tr', dateHeaders.map(item => {
|
|
1858
|
-
return (0, _vue.h)('th', item.label);
|
|
1859
|
-
}))]), (0, _vue.h)('tbody', dayDatas.map(rows => {
|
|
1860
|
-
return (0, _vue.h)('tr', rows.map(item => {
|
|
1861
|
-
const isSelected = multiple ? dateListValue.some(val => _xeUtils.default.isDateSame(val, item.date, matchFormat)) : _xeUtils.default.isDateSame(dateValue, item.date, matchFormat);
|
|
1862
|
-
return (0, _vue.h)('td', {
|
|
1863
|
-
class: {
|
|
1864
|
-
'is--prev': item.isPrev,
|
|
1865
|
-
'is--current': item.isCurrent,
|
|
1866
|
-
'is--now': item.isNow,
|
|
1867
|
-
'is--next': item.isNext,
|
|
1868
|
-
'is--disabled': isDateDisabled(item),
|
|
1869
|
-
'is--selected': isSelected,
|
|
1870
|
-
'is--over': overCount && !isSelected,
|
|
1871
|
-
'is--hover': !overCount && _xeUtils.default.isDateSame(datePanelValue, item.date, matchFormat)
|
|
1872
|
-
},
|
|
1873
|
-
onClick: () => dateSelectEvent(item),
|
|
1874
|
-
onMouseenter: () => dateMouseenterEvent(item)
|
|
1875
|
-
}, renderDateLabel(item, item.label));
|
|
1876
|
-
}));
|
|
1877
|
-
}))])];
|
|
1878
|
-
};
|
|
1879
|
-
const renderDateWeekTable = () => {
|
|
1880
|
-
const {
|
|
1881
|
-
multiple
|
|
1882
|
-
} = props;
|
|
1883
|
-
const {
|
|
1884
|
-
datePanelType,
|
|
1885
|
-
datePanelValue
|
|
1886
|
-
} = reactData;
|
|
1887
|
-
const dateValue = computeDateValue.value;
|
|
1888
|
-
const weekHeaders = computeWeekHeaders.value;
|
|
1889
|
-
const weekDates = computeWeekDates.value;
|
|
1890
|
-
const dateListValue = computeDateListValue.value;
|
|
1891
|
-
const overCount = computeOverCount.value;
|
|
1892
|
-
const matchFormat = 'yyyyMMdd';
|
|
1893
|
-
return [(0, _vue.h)('table', {
|
|
1894
|
-
class: `vxe-date-picker--date-${datePanelType}-view`,
|
|
1895
|
-
cellspacing: 0,
|
|
1896
|
-
cellpadding: 0,
|
|
1897
|
-
border: 0
|
|
1898
|
-
}, [(0, _vue.h)('thead', [(0, _vue.h)('tr', weekHeaders.map(item => {
|
|
1899
|
-
return (0, _vue.h)('th', item.label);
|
|
1900
|
-
}))]), (0, _vue.h)('tbody', weekDates.map(rows => {
|
|
1901
|
-
const isSelected = multiple ? rows.some(item => dateListValue.some(val => _xeUtils.default.isDateSame(val, item.date, matchFormat))) : rows.some(item => _xeUtils.default.isDateSame(dateValue, item.date, matchFormat));
|
|
1902
|
-
const isHover = rows.some(item => _xeUtils.default.isDateSame(datePanelValue, item.date, matchFormat));
|
|
1903
|
-
return (0, _vue.h)('tr', rows.map(item => {
|
|
1904
|
-
return (0, _vue.h)('td', {
|
|
1905
|
-
class: {
|
|
1906
|
-
'is--prev': item.isPrev,
|
|
1907
|
-
'is--current': item.isCurrent,
|
|
1908
|
-
'is--now': item.isNow,
|
|
1909
|
-
'is--next': item.isNext,
|
|
1910
|
-
'is--disabled': isDateDisabled(item),
|
|
1911
|
-
'is--selected': isSelected,
|
|
1912
|
-
'is--over': overCount && !isSelected,
|
|
1913
|
-
'is--hover': !overCount && isHover
|
|
1914
|
-
},
|
|
1915
|
-
// event
|
|
1916
|
-
onClick: () => dateSelectEvent(item),
|
|
1917
|
-
onMouseenter: () => dateMouseenterEvent(item)
|
|
1918
|
-
}, renderDateLabel(item, item.label));
|
|
1919
|
-
}));
|
|
1920
|
-
}))])];
|
|
1921
|
-
};
|
|
1922
|
-
const renderDateMonthTable = () => {
|
|
1923
|
-
const {
|
|
1924
|
-
multiple
|
|
1925
|
-
} = props;
|
|
1926
|
-
const {
|
|
1927
|
-
datePanelType,
|
|
1928
|
-
datePanelValue
|
|
1929
|
-
} = reactData;
|
|
1930
|
-
const dateValue = computeDateValue.value;
|
|
1931
|
-
const monthDatas = computeMonthDatas.value;
|
|
1932
|
-
const dateListValue = computeDateListValue.value;
|
|
1933
|
-
const overCount = computeOverCount.value;
|
|
1934
|
-
const matchFormat = 'yyyyMM';
|
|
1935
|
-
return [(0, _vue.h)('table', {
|
|
1936
|
-
class: `vxe-date-picker--date-${datePanelType}-view`,
|
|
1937
|
-
cellspacing: 0,
|
|
1938
|
-
cellpadding: 0,
|
|
1939
|
-
border: 0
|
|
1940
|
-
}, [(0, _vue.h)('tbody', monthDatas.map(rows => {
|
|
1941
|
-
return (0, _vue.h)('tr', rows.map(item => {
|
|
1942
|
-
const isSelected = multiple ? dateListValue.some(val => _xeUtils.default.isDateSame(val, item.date, matchFormat)) : _xeUtils.default.isDateSame(dateValue, item.date, matchFormat);
|
|
1943
|
-
return (0, _vue.h)('td', {
|
|
1944
|
-
class: {
|
|
1945
|
-
'is--prev': item.isPrev,
|
|
1946
|
-
'is--current': item.isCurrent,
|
|
1947
|
-
'is--now': item.isNow,
|
|
1948
|
-
'is--next': item.isNext,
|
|
1949
|
-
'is--disabled': isDateDisabled(item),
|
|
1950
|
-
'is--selected': isSelected,
|
|
1951
|
-
'is--over': overCount && !isSelected,
|
|
1952
|
-
'is--hover': !overCount && _xeUtils.default.isDateSame(datePanelValue, item.date, matchFormat)
|
|
1953
|
-
},
|
|
1954
|
-
onClick: () => dateSelectEvent(item),
|
|
1955
|
-
onMouseenter: () => dateMouseenterEvent(item)
|
|
1956
|
-
}, renderDateLabel(item, (0, _ui.getI18n)(`vxe.input.date.months.m${item.month}`)));
|
|
1957
|
-
}));
|
|
1958
|
-
}))])];
|
|
1959
|
-
};
|
|
1960
|
-
const renderDateQuarterTable = () => {
|
|
1961
|
-
const {
|
|
1962
|
-
multiple
|
|
1963
|
-
} = props;
|
|
1964
|
-
const {
|
|
1965
|
-
datePanelType,
|
|
1966
|
-
datePanelValue
|
|
1967
|
-
} = reactData;
|
|
1968
|
-
const dateValue = computeDateValue.value;
|
|
1969
|
-
const quarterDatas = computeQuarterDatas.value;
|
|
1970
|
-
const dateListValue = computeDateListValue.value;
|
|
1971
|
-
const overCount = computeOverCount.value;
|
|
1972
|
-
const matchFormat = 'yyyyq';
|
|
1973
|
-
return [(0, _vue.h)('table', {
|
|
1974
|
-
class: `vxe-date-picker--date-${datePanelType}-view`,
|
|
1975
|
-
cellspacing: 0,
|
|
1976
|
-
cellpadding: 0,
|
|
1977
|
-
border: 0
|
|
1978
|
-
}, [(0, _vue.h)('tbody', quarterDatas.map(rows => {
|
|
1979
|
-
return (0, _vue.h)('tr', rows.map(item => {
|
|
1980
|
-
const isSelected = multiple ? dateListValue.some(val => _xeUtils.default.isDateSame(val, item.date, matchFormat)) : _xeUtils.default.isDateSame(dateValue, item.date, matchFormat);
|
|
1981
|
-
return (0, _vue.h)('td', {
|
|
1982
|
-
class: {
|
|
1983
|
-
'is--prev': item.isPrev,
|
|
1984
|
-
'is--current': item.isCurrent,
|
|
1985
|
-
'is--now': item.isNow,
|
|
1986
|
-
'is--next': item.isNext,
|
|
1987
|
-
'is--disabled': isDateDisabled(item),
|
|
1988
|
-
'is--selected': isSelected,
|
|
1989
|
-
'is--over': overCount && !isSelected,
|
|
1990
|
-
'is--hover': !overCount && _xeUtils.default.isDateSame(datePanelValue, item.date, matchFormat)
|
|
1991
|
-
},
|
|
1992
|
-
onClick: () => dateSelectEvent(item),
|
|
1993
|
-
onMouseenter: () => dateMouseenterEvent(item)
|
|
1994
|
-
}, renderDateLabel(item, (0, _ui.getI18n)(`vxe.input.date.quarters.q${item.quarter}`)));
|
|
1995
|
-
}));
|
|
1996
|
-
}))])];
|
|
1997
|
-
};
|
|
1998
|
-
const renderDateYearTable = () => {
|
|
1999
|
-
const {
|
|
2000
|
-
multiple
|
|
2001
|
-
} = props;
|
|
2002
|
-
const {
|
|
2003
|
-
datePanelType,
|
|
2004
|
-
datePanelValue
|
|
2005
|
-
} = reactData;
|
|
2006
|
-
const dateValue = computeDateValue.value;
|
|
2007
|
-
const yearDatas = computeYearDatas.value;
|
|
2008
|
-
const dateListValue = computeDateListValue.value;
|
|
2009
|
-
const overCount = computeOverCount.value;
|
|
2010
|
-
const matchFormat = 'yyyy';
|
|
2011
|
-
return [(0, _vue.h)('table', {
|
|
2012
|
-
class: `vxe-date-picker--date-${datePanelType}-view`,
|
|
2013
|
-
cellspacing: 0,
|
|
2014
|
-
cellpadding: 0,
|
|
2015
|
-
border: 0
|
|
2016
|
-
}, [(0, _vue.h)('tbody', yearDatas.map(rows => {
|
|
2017
|
-
return (0, _vue.h)('tr', rows.map(item => {
|
|
2018
|
-
const isSelected = multiple ? dateListValue.some(val => _xeUtils.default.isDateSame(val, item.date, matchFormat)) : _xeUtils.default.isDateSame(dateValue, item.date, matchFormat);
|
|
2019
|
-
return (0, _vue.h)('td', {
|
|
2020
|
-
class: {
|
|
2021
|
-
'is--prev': item.isPrev,
|
|
2022
|
-
'is--current': item.isCurrent,
|
|
2023
|
-
'is--now': item.isNow,
|
|
2024
|
-
'is--next': item.isNext,
|
|
2025
|
-
'is--disabled': isDateDisabled(item),
|
|
2026
|
-
'is--selected': isSelected,
|
|
2027
|
-
'is--over': overCount && !isSelected,
|
|
2028
|
-
'is--hover': !overCount && _xeUtils.default.isDateSame(datePanelValue, item.date, matchFormat)
|
|
2029
|
-
},
|
|
2030
|
-
onClick: () => dateSelectEvent(item),
|
|
2031
|
-
onMouseenter: () => dateMouseenterEvent(item)
|
|
2032
|
-
}, renderDateLabel(item, item.year));
|
|
2033
|
-
}));
|
|
2034
|
-
}))])];
|
|
2035
|
-
};
|
|
2036
|
-
const renderDateTable = () => {
|
|
2037
|
-
const {
|
|
2038
|
-
datePanelType
|
|
2039
|
-
} = reactData;
|
|
2040
|
-
switch (datePanelType) {
|
|
2041
|
-
case 'week':
|
|
2042
|
-
return renderDateWeekTable();
|
|
2043
|
-
case 'month':
|
|
2044
|
-
return renderDateMonthTable();
|
|
2045
|
-
case 'quarter':
|
|
2046
|
-
return renderDateQuarterTable();
|
|
2047
|
-
case 'year':
|
|
2048
|
-
return renderDateYearTable();
|
|
2049
|
-
}
|
|
2050
|
-
return renderDateDayTable();
|
|
2051
|
-
};
|
|
2052
|
-
const renderDatePanel = () => {
|
|
2053
|
-
const {
|
|
2054
|
-
multiple
|
|
2055
|
-
} = props;
|
|
2056
|
-
const {
|
|
2057
|
-
datePanelType
|
|
2058
|
-
} = reactData;
|
|
2059
|
-
const isDisabledPrevDateBtn = computeIsDisabledPrevDateBtn.value;
|
|
2060
|
-
const isDisabledNextDateBtn = computeIsDisabledNextDateBtn.value;
|
|
2061
|
-
const selectDatePanelObj = computeSelectDatePanelObj.value;
|
|
2062
|
-
const supportMultiples = computeSupportMultiples.value;
|
|
2063
|
-
return [(0, _vue.h)('div', {
|
|
2064
|
-
class: 'vxe-date-picker--date-picker-header'
|
|
2065
|
-
}, [(0, _vue.h)('div', {
|
|
2066
|
-
class: 'vxe-date-picker--date-picker-type-wrapper'
|
|
2067
|
-
}, [datePanelType === 'year' ? (0, _vue.h)('span', {
|
|
2068
|
-
class: 'vxe-date-picker--date-picker-label'
|
|
2069
|
-
}, selectDatePanelObj.y) : (0, _vue.h)('span', {
|
|
2070
|
-
class: 'vxe-date-picker--date-picker-btns'
|
|
2071
|
-
}, [(0, _vue.h)('span', {
|
|
2072
|
-
class: 'vxe-date-picker--date-picker-btn',
|
|
2073
|
-
onClick: dateToggleYearTypeEvent
|
|
2074
|
-
}, selectDatePanelObj.y), selectDatePanelObj.m ? (0, _vue.h)('span', {
|
|
2075
|
-
class: 'vxe-date-picker--date-picker-btn',
|
|
2076
|
-
onClick: dateToggleMonthTypeEvent
|
|
2077
|
-
}, selectDatePanelObj.m) : (0, _ui.renderEmptyElement)($xeDatePicker)])]), (0, _vue.h)('div', {
|
|
2078
|
-
class: 'vxe-date-picker--date-picker-btn-wrapper'
|
|
2079
|
-
}, [(0, _vue.h)('span', {
|
|
2080
|
-
class: ['vxe-date-picker--date-picker-btn vxe-date-picker--date-picker-prev-btn', {
|
|
2081
|
-
'is--disabled': isDisabledPrevDateBtn
|
|
2082
|
-
}],
|
|
2083
|
-
onClick: datePrevEvent
|
|
2084
|
-
}, [(0, _vue.h)('i', {
|
|
2085
|
-
class: 'vxe-icon-caret-left'
|
|
2086
|
-
})]), (0, _vue.h)('span', {
|
|
2087
|
-
class: 'vxe-date-picker--date-picker-btn vxe-date-picker--date-picker-current-btn',
|
|
2088
|
-
onClick: dateTodayMonthEvent
|
|
2089
|
-
}, [(0, _vue.h)('i', {
|
|
2090
|
-
class: 'vxe-icon-dot'
|
|
2091
|
-
})]), (0, _vue.h)('span', {
|
|
2092
|
-
class: ['vxe-date-picker--date-picker-btn vxe-date-picker--date-picker-next-btn', {
|
|
2093
|
-
'is--disabled': isDisabledNextDateBtn
|
|
2094
|
-
}],
|
|
2095
|
-
onClick: dateNextEvent
|
|
2096
|
-
}, [(0, _vue.h)('i', {
|
|
2097
|
-
class: 'vxe-icon-caret-right'
|
|
2098
|
-
})]), multiple && supportMultiples ? (0, _vue.h)('span', {
|
|
2099
|
-
class: 'vxe-date-picker--date-picker-btn vxe-date-picker--date-picker-confirm-btn'
|
|
2100
|
-
}, [(0, _vue.h)('button', {
|
|
2101
|
-
class: 'vxe-date-picker--date-picker-confirm',
|
|
2102
|
-
type: 'button',
|
|
2103
|
-
onClick: dateConfirmEvent
|
|
2104
|
-
}, (0, _ui.getI18n)('vxe.button.confirm'))]) : null])]), (0, _vue.h)('div', {
|
|
2105
|
-
class: 'vxe-date-picker--date-picker-body'
|
|
2106
|
-
}, renderDateTable())];
|
|
2107
|
-
};
|
|
2108
|
-
const renderTimePanel = () => {
|
|
2109
|
-
const {
|
|
2110
|
-
datetimePanelValue
|
|
2111
|
-
} = reactData;
|
|
2112
|
-
const dateTimeLabel = computeDateTimeLabel.value;
|
|
2113
|
-
const hourList = computeHourList.value;
|
|
2114
|
-
const hasTimeMinute = computeHasTimeMinute.value;
|
|
2115
|
-
const minuteList = computeMinuteList.value;
|
|
2116
|
-
const hasTimeSecond = computeHasTimeSecond.value;
|
|
2117
|
-
const secondList = computeSecondList.value;
|
|
2118
|
-
return [(0, _vue.h)('div', {
|
|
2119
|
-
class: 'vxe-date-picker--time-picker-header'
|
|
2120
|
-
}, [hasTimeMinute ? (0, _vue.h)('div', {
|
|
2121
|
-
class: 'vxe-date-picker--time-picker-title'
|
|
2122
|
-
}, dateTimeLabel) : (0, _vue.createCommentVNode)(), (0, _vue.h)('div', {
|
|
2123
|
-
class: 'vxe-date-picker--time-picker-btn'
|
|
2124
|
-
}, [(0, _vue.h)('button', {
|
|
2125
|
-
class: 'vxe-date-picker--time-picker-confirm',
|
|
2126
|
-
type: 'button',
|
|
2127
|
-
onClick: dateConfirmEvent
|
|
2128
|
-
}, (0, _ui.getI18n)('vxe.button.confirm'))])]), (0, _vue.h)('div', {
|
|
2129
|
-
ref: refInputTimeBody,
|
|
2130
|
-
class: 'vxe-date-picker--time-picker-body'
|
|
2131
|
-
}, [(0, _vue.h)('ul', {
|
|
2132
|
-
class: 'vxe-date-picker--time-picker-hour-list'
|
|
2133
|
-
}, hourList.map((item, index) => {
|
|
2134
|
-
return (0, _vue.h)('li', {
|
|
2135
|
-
key: index,
|
|
2136
|
-
class: {
|
|
2137
|
-
'is--selected': datetimePanelValue && datetimePanelValue.getHours() === item.value
|
|
2138
|
-
},
|
|
2139
|
-
onClick: evnt => dateHourEvent(evnt, item)
|
|
2140
|
-
}, item.label);
|
|
2141
|
-
})), hasTimeMinute ? (0, _vue.h)('ul', {
|
|
2142
|
-
class: 'vxe-date-picker--time-picker-minute-list'
|
|
2143
|
-
}, minuteList.map((item, index) => {
|
|
2144
|
-
return (0, _vue.h)('li', {
|
|
2145
|
-
key: index,
|
|
2146
|
-
class: {
|
|
2147
|
-
'is--selected': datetimePanelValue && datetimePanelValue.getMinutes() === item.value
|
|
2148
|
-
},
|
|
2149
|
-
onClick: evnt => dateMinuteEvent(evnt, item)
|
|
2150
|
-
}, item.label);
|
|
2151
|
-
})) : (0, _vue.createCommentVNode)(), hasTimeMinute && hasTimeSecond ? (0, _vue.h)('ul', {
|
|
2152
|
-
class: 'vxe-date-picker--time-picker-second-list'
|
|
2153
|
-
}, secondList.map((item, index) => {
|
|
2154
|
-
return (0, _vue.h)('li', {
|
|
2155
|
-
key: index,
|
|
2156
|
-
class: {
|
|
2157
|
-
'is--selected': datetimePanelValue && datetimePanelValue.getSeconds() === item.value
|
|
2158
|
-
},
|
|
2159
|
-
onClick: evnt => dateSecondEvent(evnt, item)
|
|
2160
|
-
}, item.label);
|
|
2161
|
-
})) : (0, _vue.createCommentVNode)()])];
|
|
2162
|
-
};
|
|
2163
738
|
const renderShortcutBtn = (pos, isVertical) => {
|
|
2164
739
|
const shortcutOpts = computeShortcutOpts.value;
|
|
2165
740
|
const {
|
|
2166
|
-
options,
|
|
2167
741
|
position,
|
|
2168
742
|
align,
|
|
2169
743
|
mode
|
|
2170
744
|
} = shortcutOpts;
|
|
2171
|
-
|
|
745
|
+
const shortcutList = computeShortcutList.value;
|
|
746
|
+
if ((0, _utils.isEnableConf)(shortcutOpts) && shortcutList.length && (position || 'left') === pos) {
|
|
2172
747
|
return (0, _vue.h)('div', {
|
|
2173
|
-
class: `vxe-date-picker--
|
|
748
|
+
class: `vxe-date-picker--layout-${pos}-wrapper`
|
|
2174
749
|
}, [(0, _vue.h)(_buttonGroup.default, {
|
|
2175
|
-
options,
|
|
750
|
+
options: shortcutList,
|
|
2176
751
|
mode,
|
|
2177
752
|
align,
|
|
2178
753
|
vertical: isVertical,
|
|
@@ -2181,49 +756,28 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
2181
756
|
}
|
|
2182
757
|
return (0, _ui.renderEmptyElement)($xeDatePicker);
|
|
2183
758
|
};
|
|
2184
|
-
const renderPickerPanel = () => {
|
|
2185
|
-
const {
|
|
2186
|
-
type
|
|
2187
|
-
} = props;
|
|
2188
|
-
if (type === 'datetime') {
|
|
2189
|
-
return (0, _vue.h)('div', {
|
|
2190
|
-
key: type,
|
|
2191
|
-
ref: refPanelWrapper,
|
|
2192
|
-
class: 'vxe-date-picker--panel-datetime-layout-wrapper'
|
|
2193
|
-
}, [(0, _vue.h)('div', {
|
|
2194
|
-
class: 'vxe-date-picker--panel-datetime-left-wrapper'
|
|
2195
|
-
}, renderDatePanel()), (0, _vue.h)('div', {
|
|
2196
|
-
class: 'vxe-date-picker--panel-datetime-right-wrapper'
|
|
2197
|
-
}, renderTimePanel())]);
|
|
2198
|
-
} else if (type === 'time') {
|
|
2199
|
-
return (0, _vue.h)('div', {
|
|
2200
|
-
key: type,
|
|
2201
|
-
ref: refPanelWrapper,
|
|
2202
|
-
class: 'vxe-date-picker--panel-wrapper'
|
|
2203
|
-
}, renderTimePanel());
|
|
2204
|
-
}
|
|
2205
|
-
return (0, _vue.h)('div', {
|
|
2206
|
-
key: type || 'default',
|
|
2207
|
-
ref: refPanelWrapper,
|
|
2208
|
-
class: 'vxe-date-picker--panel-wrapper'
|
|
2209
|
-
}, renderDatePanel());
|
|
2210
|
-
};
|
|
2211
759
|
const renderPanel = () => {
|
|
2212
760
|
const {
|
|
2213
|
-
type
|
|
761
|
+
type,
|
|
762
|
+
multiple,
|
|
763
|
+
showClearButton,
|
|
764
|
+
showConfirmButton
|
|
2214
765
|
} = props;
|
|
2215
766
|
const {
|
|
2216
767
|
initialized,
|
|
2217
768
|
isAniVisible,
|
|
2218
769
|
visiblePanel,
|
|
2219
770
|
panelPlacement,
|
|
2220
|
-
panelStyle
|
|
771
|
+
panelStyle,
|
|
772
|
+
inputValue
|
|
2221
773
|
} = reactData;
|
|
2222
774
|
const vSize = computeSize.value;
|
|
2223
775
|
const btnTransfer = computeBtnTransfer.value;
|
|
2224
776
|
const shortcutOpts = computeShortcutOpts.value;
|
|
777
|
+
const isClearable = computeIsClearable.value;
|
|
778
|
+
const isDateTimeType = computeIsDateTimeType.value;
|
|
779
|
+
const shortcutList = computeShortcutList.value;
|
|
2225
780
|
const {
|
|
2226
|
-
options,
|
|
2227
781
|
position
|
|
2228
782
|
} = shortcutOpts;
|
|
2229
783
|
const headerSlot = slots.header;
|
|
@@ -2232,7 +786,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
2232
786
|
const bottomSlot = slots.bottom;
|
|
2233
787
|
const leftSlot = slots.left;
|
|
2234
788
|
const rightSlot = slots.right;
|
|
2235
|
-
const hasShortcutBtn =
|
|
789
|
+
const hasShortcutBtn = shortcutList.length > 0;
|
|
790
|
+
const showConfirmBtn = showConfirmButton === null ? isDateTimeType || multiple : showConfirmButton;
|
|
791
|
+
const showClearBtn = showClearButton === null ? isClearable && showConfirmBtn && type !== 'time' : showClearButton;
|
|
2236
792
|
return (0, _vue.h)(_vue.Teleport, {
|
|
2237
793
|
to: 'body',
|
|
2238
794
|
disabled: btnTransfer ? !initialized : true
|
|
@@ -2251,25 +807,61 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
2251
807
|
placement: panelPlacement,
|
|
2252
808
|
style: panelStyle
|
|
2253
809
|
}, initialized && (visiblePanel || isAniVisible) ? [(0, _vue.h)('div', {
|
|
2254
|
-
|
|
810
|
+
ref: refPanelWrapper,
|
|
811
|
+
class: ['vxe-date-picker--layout-all-wrapper', `type--${type}`, {
|
|
812
|
+
[`size--${vSize}`]: vSize
|
|
813
|
+
}]
|
|
2255
814
|
}, [topSlot ? (0, _vue.h)('div', {
|
|
2256
|
-
class: 'vxe-date-picker--
|
|
815
|
+
class: 'vxe-date-picker--layout-top-wrapper'
|
|
2257
816
|
}, topSlot({})) : renderShortcutBtn('top'), (0, _vue.h)('div', {
|
|
2258
|
-
class: 'vxe-date-picker--
|
|
817
|
+
class: 'vxe-date-picker--layout-body-layout-wrapper'
|
|
2259
818
|
}, [leftSlot ? (0, _vue.h)('div', {
|
|
2260
|
-
class: 'vxe-date-picker--
|
|
819
|
+
class: 'vxe-date-picker--layout-left-wrapper'
|
|
2261
820
|
}, leftSlot({})) : renderShortcutBtn('left', true), (0, _vue.h)('div', {
|
|
2262
|
-
class: 'vxe-date-picker--
|
|
821
|
+
class: 'vxe-date-picker--layout-body-content-wrapper'
|
|
2263
822
|
}, [headerSlot ? (0, _vue.h)('div', {
|
|
2264
|
-
class: 'vxe-date-picker--
|
|
823
|
+
class: 'vxe-date-picker--layout-header-wrapper'
|
|
2265
824
|
}, headerSlot({})) : renderShortcutBtn('header'), (0, _vue.h)('div', {
|
|
2266
|
-
class: 'vxe-date-picker--
|
|
2267
|
-
}, [
|
|
2268
|
-
|
|
2269
|
-
|
|
2270
|
-
|
|
825
|
+
class: 'vxe-date-picker--layout-body-wrapper'
|
|
826
|
+
}, [(0, _vue.h)(_datePanel.default, {
|
|
827
|
+
ref: refDatePanel,
|
|
828
|
+
modelValue: reactData.inputValue,
|
|
829
|
+
type: props.type,
|
|
830
|
+
className: props.className,
|
|
831
|
+
multiple: props.multiple,
|
|
832
|
+
limitCount: props.limitCount,
|
|
833
|
+
startDate: props.startDate,
|
|
834
|
+
endDate: props.endDate,
|
|
835
|
+
minDate: props.minDate,
|
|
836
|
+
maxDate: props.maxDate,
|
|
837
|
+
startDay: props.startDay,
|
|
838
|
+
labelFormat: props.labelFormat,
|
|
839
|
+
valueFormat: props.valueFormat,
|
|
840
|
+
festivalMethod: props.festivalMethod,
|
|
841
|
+
disabledMethod: props.disabledMethod,
|
|
842
|
+
selectDay: props.selectDay,
|
|
843
|
+
onChange: panelChangeEvent,
|
|
844
|
+
onDateToday: hidePanel
|
|
845
|
+
})]), (0, _vue.h)('div', {
|
|
846
|
+
class: 'vxe-date-picker--layout-footer-wrapper'
|
|
847
|
+
}, [(0, _vue.h)('div', {
|
|
848
|
+
class: 'vxe-date-picker--layout-footer-custom'
|
|
849
|
+
}, footerSlot ? footerSlot({}) : [renderShortcutBtn('footer')]), showClearBtn || showConfirmBtn ? (0, _vue.h)('div', {
|
|
850
|
+
class: 'vxe-date-picker--layout-footer-btns'
|
|
851
|
+
}, [showClearBtn ? (0, _vue.h)(_button.default, {
|
|
852
|
+
size: 'mini',
|
|
853
|
+
disabled: inputValue === '' || _xeUtils.default.eqNull(inputValue),
|
|
854
|
+
content: (0, _ui.getI18n)('vxe.button.clear'),
|
|
855
|
+
onClick: clearValueEvent
|
|
856
|
+
}) : (0, _ui.renderEmptyElement)($xeDatePicker), showConfirmBtn ? (0, _vue.h)(_button.default, {
|
|
857
|
+
size: 'mini',
|
|
858
|
+
status: 'primary',
|
|
859
|
+
content: (0, _ui.getI18n)('vxe.button.confirm'),
|
|
860
|
+
onClick: confirmEvent
|
|
861
|
+
}) : (0, _ui.renderEmptyElement)($xeDatePicker)]) : (0, _ui.renderEmptyElement)($xeDatePicker)])]), rightSlot ? (0, _vue.h)('div', {
|
|
862
|
+
class: 'vxe-date-picker--layout-right-wrapper'
|
|
2271
863
|
}, rightSlot({})) : renderShortcutBtn('right', true)]), bottomSlot ? (0, _vue.h)('div', {
|
|
2272
|
-
class: 'vxe-date-picker--
|
|
864
|
+
class: 'vxe-date-picker--layout-bottom-wrapper'
|
|
2273
865
|
}, bottomSlot({})) : renderShortcutBtn('bottom')])] : [])]);
|
|
2274
866
|
};
|
|
2275
867
|
const renderPrefixIcon = () => {
|
|
@@ -2305,12 +897,12 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
2305
897
|
onClick: clearValueEvent
|
|
2306
898
|
}, [(0, _vue.h)('i', {
|
|
2307
899
|
class: (0, _ui.getIcon)().INPUT_CLEAR
|
|
2308
|
-
})]) : (0,
|
|
900
|
+
})]) : (0, _ui.renderEmptyElement)($xeDatePicker), renderExtraSuffixIcon(), suffixSlot || suffixIcon ? (0, _vue.h)('div', {
|
|
2309
901
|
class: 'vxe-date-picker--suffix-icon',
|
|
2310
902
|
onClick: clickSuffixEvent
|
|
2311
903
|
}, suffixSlot ? (0, _vn.getSlotVNs)(suffixSlot({})) : [(0, _vue.h)('i', {
|
|
2312
904
|
class: suffixIcon
|
|
2313
|
-
})]) : (0,
|
|
905
|
+
})]) : (0, _ui.renderEmptyElement)($xeDatePicker)]);
|
|
2314
906
|
};
|
|
2315
907
|
const renderExtraSuffixIcon = () => {
|
|
2316
908
|
return (0, _vue.h)('div', {
|
|
@@ -2324,27 +916,26 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
2324
916
|
const {
|
|
2325
917
|
className,
|
|
2326
918
|
type,
|
|
2327
|
-
align,
|
|
2328
919
|
name,
|
|
2329
|
-
autocomplete,
|
|
2330
920
|
autoComplete
|
|
2331
921
|
} = props;
|
|
2332
922
|
const {
|
|
2333
923
|
inputValue,
|
|
924
|
+
inputLabel,
|
|
2334
925
|
visiblePanel,
|
|
2335
926
|
isActivated
|
|
2336
927
|
} = reactData;
|
|
2337
928
|
const vSize = computeSize.value;
|
|
2338
929
|
const isDisabled = computeIsDisabled.value;
|
|
2339
930
|
const formReadonly = computeFormReadonly.value;
|
|
931
|
+
const panelLabel = computePanelLabel.value;
|
|
2340
932
|
if (formReadonly) {
|
|
2341
933
|
return (0, _vue.h)('div', {
|
|
2342
934
|
ref: refElem,
|
|
2343
935
|
class: ['vxe-date-picker--readonly', `type--${type}`, className]
|
|
2344
|
-
},
|
|
936
|
+
}, panelLabel);
|
|
2345
937
|
}
|
|
2346
938
|
const inputReadonly = computeInputReadonly.value;
|
|
2347
|
-
const inputType = computeDatePickerType.value;
|
|
2348
939
|
const inpPlaceholder = computeInpPlaceholder.value;
|
|
2349
940
|
const isClearable = computeIsClearable.value;
|
|
2350
941
|
const prefix = renderPrefixIcon();
|
|
@@ -2353,7 +944,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
2353
944
|
ref: refElem,
|
|
2354
945
|
class: ['vxe-date-picker', `type--${type}`, className, {
|
|
2355
946
|
[`size--${vSize}`]: vSize,
|
|
2356
|
-
[`is--${align}`]: align,
|
|
2357
947
|
'is--prefix': !!prefix,
|
|
2358
948
|
'is--suffix': !!suffix,
|
|
2359
949
|
'is--visible': visiblePanel,
|
|
@@ -2362,18 +952,18 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
2362
952
|
'show--clear': isClearable && !isDisabled && !(inputValue === '' || _xeUtils.default.eqNull(inputValue))
|
|
2363
953
|
}],
|
|
2364
954
|
spellcheck: false
|
|
2365
|
-
}, [prefix || (0,
|
|
955
|
+
}, [prefix || (0, _ui.renderEmptyElement)($xeDatePicker), (0, _vue.h)('div', {
|
|
2366
956
|
class: 'vxe-date-picker--wrapper'
|
|
2367
957
|
}, [(0, _vue.h)('input', {
|
|
2368
958
|
ref: refInputTarget,
|
|
2369
959
|
class: 'vxe-date-picker--inner',
|
|
2370
|
-
value:
|
|
960
|
+
value: inputLabel,
|
|
2371
961
|
name,
|
|
2372
|
-
type:
|
|
962
|
+
type: 'text',
|
|
2373
963
|
placeholder: inpPlaceholder,
|
|
2374
964
|
readonly: inputReadonly,
|
|
2375
965
|
disabled: isDisabled,
|
|
2376
|
-
autocomplete: autoComplete
|
|
966
|
+
autocomplete: autoComplete,
|
|
2377
967
|
onKeydown: keydownEvent,
|
|
2378
968
|
onKeyup: keyupEvent,
|
|
2379
969
|
onClick: clickEvent,
|
|
@@ -2381,47 +971,28 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
2381
971
|
onChange: changeEvent,
|
|
2382
972
|
onFocus: focusEvent,
|
|
2383
973
|
onBlur: blurEvent
|
|
2384
|
-
})]), suffix || (0,
|
|
974
|
+
})]), suffix || (0, _ui.renderEmptyElement)($xeDatePicker),
|
|
2385
975
|
// 下拉面板
|
|
2386
976
|
renderPanel()]);
|
|
2387
977
|
};
|
|
2388
|
-
(0, _vue.watch)(
|
|
2389
|
-
|
|
2390
|
-
changeValue();
|
|
2391
|
-
});
|
|
2392
|
-
(0, _vue.watch)(() => props.type, () => {
|
|
2393
|
-
// 切换类型是重置内置变量
|
|
2394
|
-
Object.assign(reactData, {
|
|
2395
|
-
inputValue: '',
|
|
2396
|
-
datetimePanelValue: null,
|
|
2397
|
-
datePanelValue: null,
|
|
2398
|
-
datePanelLabel: '',
|
|
2399
|
-
datePanelType: 'day',
|
|
2400
|
-
selectMonth: null,
|
|
2401
|
-
currentDate: null
|
|
2402
|
-
});
|
|
2403
|
-
initValue();
|
|
978
|
+
(0, _vue.watch)(computePanelLabel, val => {
|
|
979
|
+
reactData.inputLabel = val;
|
|
2404
980
|
});
|
|
2405
|
-
(0, _vue.watch)(
|
|
2406
|
-
|
|
2407
|
-
if (isDatePickerType) {
|
|
2408
|
-
dateParseValue(reactData.datePanelValue);
|
|
2409
|
-
reactData.inputValue = props.multiple ? computeDateMultipleLabel.value : reactData.datePanelLabel;
|
|
2410
|
-
}
|
|
981
|
+
(0, _vue.watch)(() => props.modelValue, () => {
|
|
982
|
+
updateModelValue();
|
|
2411
983
|
});
|
|
2412
984
|
(0, _vue.nextTick)(() => {
|
|
2413
985
|
_ui.globalEvents.on($xeDatePicker, 'mousewheel', handleGlobalMousewheelEvent);
|
|
2414
986
|
_ui.globalEvents.on($xeDatePicker, 'mousedown', handleGlobalMousedownEvent);
|
|
2415
|
-
_ui.globalEvents.on($xeDatePicker, 'keydown', handleGlobalKeydownEvent);
|
|
2416
987
|
_ui.globalEvents.on($xeDatePicker, 'blur', handleGlobalBlurEvent);
|
|
2417
988
|
});
|
|
2418
989
|
(0, _vue.onUnmounted)(() => {
|
|
2419
990
|
_ui.globalEvents.off($xeDatePicker, 'mousewheel');
|
|
2420
991
|
_ui.globalEvents.off($xeDatePicker, 'mousedown');
|
|
2421
|
-
_ui.globalEvents.off($xeDatePicker, 'keydown');
|
|
2422
992
|
_ui.globalEvents.off($xeDatePicker, 'blur');
|
|
2423
993
|
});
|
|
2424
|
-
|
|
994
|
+
updateModelValue();
|
|
995
|
+
(0, _vue.provide)('$xeDatePicker', $xeDatePicker);
|
|
2425
996
|
$xeDatePicker.renderVN = renderVN;
|
|
2426
997
|
return $xeDatePicker;
|
|
2427
998
|
},
|