bhd-components 0.9.3 → 0.9.4

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.
@@ -2,13 +2,29 @@ import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
2
2
  import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
3
3
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "@ice/jsx-runtime/jsx-runtime";
4
4
  import * as React from "react";
5
- import { useState, useEffect, useRef } from "react";
5
+ import { useState, useEffect, useRef, useCallback } from "react";
6
6
  import styles from "./index.module.less";
7
7
  import { ConfigProvider, Button, DatePicker } from "antd";
8
8
  import { CustomArrow } from "../icons";
9
9
  // import dayjs from "dayjs";
10
+ // import type { Dayjs } from "dayjs";
10
11
  import i18Conversion from "../i18n";
11
12
  const { RangePicker } = DatePicker;
13
+ let months = [
14
+ "一月",
15
+ "二月",
16
+ "三月",
17
+ "四月",
18
+ "五月",
19
+ "六月",
20
+ "七月",
21
+ "八月",
22
+ "九月",
23
+ "十月",
24
+ "十一月",
25
+ "十二月"
26
+ ];
27
+ //January_February_March_April_May_June_July_August_September_October_November_December
12
28
  const BhdDatePicker = (props)=>{
13
29
  const lang = ConfigProvider.lang === "en" ? "en_US" : "zh_CN";
14
30
  // if (lang === "en_US") {
@@ -18,6 +34,7 @@ const BhdDatePicker = (props)=>{
18
34
  // const zhCN = require("dayjs/locale/zh-cn");
19
35
  // dayjs.locale(zhCN);
20
36
  // }
37
+ const id = "BhdDatePicker_" + new Date().getTime();
21
38
  // 默认格式
22
39
  const getDefaultFormat = ()=>{
23
40
  if (props.format) {
@@ -47,7 +64,7 @@ const BhdDatePicker = (props)=>{
47
64
  }
48
65
  };
49
66
  // 自己组件内使用的,或者自己处理的
50
- let { kind = "single", extraItems, extraReadonly = false, useType = "", open = false, mode, picker, value = props.kind === "range" ? [] : "", format = getDefaultFormat(), presets = [], className, popupClassName, showTime, showNow = true, allowClear = true, onClick, onBlur, onChange, onOk, onCalendarChange, onOpenChange, onPanelChange, disabledDate, cellRender, renderExtraFooter } = props;
67
+ let { kind = "single", extraItems, extraReadonly = false, useType = "", open = false, mode, picker, value = props.kind === "range" ? [] : "", format = getDefaultFormat(), presets = [], className, popupClassName, showTime, showNow = true, showToday = true, allowClear = true, onClick, onBlur, onChange, onOk, onCalendarChange, onOpenChange, onPanelChange, disabledDate, cellRender, renderExtraFooter } = props;
51
68
  const bhdDatePickerRef = useRef(null);
52
69
  const [panelOpen, setPanelOpen] = useState(open);
53
70
  const [panelMode, setPanelMode] = useState("date");
@@ -62,6 +79,7 @@ const BhdDatePicker = (props)=>{
62
79
  const [selectedRangeDate, setSelectedRangeDate] = useState(value);
63
80
  const [selectedRangeDateString, setSelectedRangeDateString] = useState([]);
64
81
  const [rangeOpenChange, setRangeOpenChange] = useState(false); // 用于范围选择失去焦点后,判断是否关闭
82
+ const isChange = useRef(false);
65
83
  useEffect(()=>{
66
84
  setDefaultMode();
67
85
  if (kind === "range") {
@@ -79,7 +97,18 @@ const BhdDatePicker = (props)=>{
79
97
  });
80
98
  }
81
99
  }
100
+ return ()=>{
101
+ var _document_getElementsByClassName__getElementsByClassName, _document_getElementsByClassName_, _document_getElementsByClassName, _btn;
102
+ const btn = (_document_getElementsByClassName = document.getElementsByClassName(id)) === null || _document_getElementsByClassName === void 0 ? void 0 : (_document_getElementsByClassName_ = _document_getElementsByClassName[0]) === null || _document_getElementsByClassName_ === void 0 ? void 0 : (_document_getElementsByClassName__getElementsByClassName = _document_getElementsByClassName_.getElementsByClassName("bhd-picker-today-btn")) === null || _document_getElementsByClassName__getElementsByClassName === void 0 ? void 0 : _document_getElementsByClassName__getElementsByClassName[0];
103
+ (_btn = btn) === null || _btn === void 0 ? void 0 : _btn.removeEventListener("click", todayClick);
104
+ };
82
105
  }, []);
106
+ useEffect(()=>{
107
+ isChange.current = true;
108
+ }, [
109
+ selectedDate,
110
+ selectedRangeDate
111
+ ]);
83
112
  // 传给 DatePicker 的props参数
84
113
  const getConfig = ()=>{
85
114
  let config = _object_spread_props(_object_spread({
@@ -144,6 +173,7 @@ const BhdDatePicker = (props)=>{
144
173
  config.allowClear = false; // 日程安排查看时,不显示清除按钮
145
174
  }
146
175
  }
176
+ config.popupClassName = `${config.popupClassName} ${id}`;
147
177
  return config;
148
178
  };
149
179
  // 设置默认mode
@@ -182,9 +212,14 @@ const BhdDatePicker = (props)=>{
182
212
  }
183
213
  // 月份 中文模式下显示全名称(例:一月),英文模式下显示短名称(例:Jan)
184
214
  if (info.type === "month") {
215
+ // return (
216
+ // <div className={`${"bhd-picker-cell-inner"}`}>
217
+ // {current.format(dayjs.locale() === "zh-cn" ? "MMMM" : "MMM")}
218
+ // </div>
219
+ // );
185
220
  return /*#__PURE__*/ _jsx("div", {
186
221
  className: `${"bhd-picker-cell-inner"}`,
187
- children: current.format(lang === "zh_CN" ? "MMMM" : "MMM")
222
+ children: i18Conversion(months[Number(current.format("M")) - 1])
188
223
  });
189
224
  }
190
225
  return info.originNode;
@@ -214,14 +249,14 @@ const BhdDatePicker = (props)=>{
214
249
  children: [
215
250
  renderExtraFooter && /*#__PURE__*/ _jsx("div", {
216
251
  className: "bhddatepicker-picker-footer-extra-extend",
217
- children: renderExtraFooter()
252
+ children: renderExtraFooter(mode)
218
253
  }),
219
254
  !showTime ? /*#__PURE__*/ _jsx(_Fragment, {
220
255
  children: /*#__PURE__*/ _jsxs("ul", {
221
256
  className: "bhd-picker-ranges",
222
257
  children: [
223
258
  selfRenderPresets(),
224
- renderNow(),
259
+ renderToday(),
225
260
  /*#__PURE__*/ _jsx("li", {
226
261
  className: "bhd-picker-ok",
227
262
  children: /*#__PURE__*/ _jsx(Button, {
@@ -241,20 +276,24 @@ const BhdDatePicker = (props)=>{
241
276
  });
242
277
  };
243
278
  // 渲染今天
244
- const renderNow = ()=>{
279
+ const renderToday = ()=>{
245
280
  // 显示now
246
- if (showNow) {
281
+ if (showToday) {
247
282
  var _extraItems;
248
283
  // 日程安排时: extraItems中今天是否是可选或者已选择状态
249
- let hasNow = ((_extraItems = extraItems) === null || _extraItems === void 0 ? void 0 : _extraItems.filter((item)=>item.status !== "noselectable").length) > 0;
284
+ let hasNow = ((_extraItems = extraItems) === null || _extraItems === void 0 ? void 0 : _extraItems.filter((item)=>item.status !== "noselectable" && // item.date.format(format) === dayjs().format(format)
285
+ item.date.format("YYYYMMDD") === getToday()).length) > 0;
250
286
  if (kind === "single" || kind === "extra" && hasNow) {
251
287
  if (mode === "date" || mode === undefined) {
252
288
  return /*#__PURE__*/ _jsx("li", {
253
289
  className: "bhd-picker-now",
254
290
  children: /*#__PURE__*/ _jsx("a", {
255
291
  className: "bhd-picker-now-btn",
292
+ style: {
293
+ visibility: "hidden"
294
+ },
256
295
  onClick: todayClick,
257
- children: showTime ? i18Conversion("此刻") : i18Conversion("今天")
296
+ children: i18Conversion("今天")
258
297
  })
259
298
  });
260
299
  }
@@ -262,6 +301,11 @@ const BhdDatePicker = (props)=>{
262
301
  }
263
302
  return null;
264
303
  };
304
+ // 获取到年月日
305
+ const getToday = ()=>{
306
+ const date = new Date();
307
+ return date.getFullYear().toString() + date.getMonth().toString().padStart(2, "0") + date.getDay().toString().padStart(2, "0");
308
+ };
265
309
  // 渲染预设
266
310
  const selfRenderPresets = ()=>{
267
311
  return /*#__PURE__*/ _jsx("li", {
@@ -287,42 +331,58 @@ const BhdDatePicker = (props)=>{
287
331
  setPanelOpen(true);
288
332
  }
289
333
  } else {
290
- if (selectedDate && selectedDateString) {
291
- onChange && onChange(selectedDate, selectedDateString);
334
+ if (selectedDateRef.current && selectedDateStringRef.current) {
335
+ onChange && onChange(selectedDateRef.current, selectedDateStringRef.current);
292
336
  setPanelOpen(false);
293
337
  }
294
338
  }
295
339
  };
296
340
  // 今天点击
297
- const todayClick = ()=>{
298
- // var today = dayjs();
299
- // var todayString = today.format(format);
300
- // setSelectedDate((prevState) => {
301
- // selectedDateRef.current = today;
302
- // return selectedDateRef.current;
303
- // });
304
- // setSelectedDateString((prevState) => {
305
- // selectedDateStringRef.current = todayString;
306
- // return selectedDateStringRef.current;
307
- // });
308
- // onChange && onChange(today, todayString);
309
- // setPanelOpen(false);
341
+ const todayClick = useCallback(()=>{
342
+ setTimeout(()=>{
343
+ okClick();
344
+ }, 0);
345
+ }, []);
346
+ const todayClickEventListener = (value)=>{
347
+ if (!value) return;
348
+ if (showToday) {
349
+ var _document_getElementsByClassName__getElementsByClassName, _document_getElementsByClassName_, _document_getElementsByClassName;
350
+ const btn = (_document_getElementsByClassName = document.getElementsByClassName(id)) === null || _document_getElementsByClassName === void 0 ? void 0 : (_document_getElementsByClassName_ = _document_getElementsByClassName[0]) === null || _document_getElementsByClassName_ === void 0 ? void 0 : (_document_getElementsByClassName__getElementsByClassName = _document_getElementsByClassName_.getElementsByClassName("bhd-picker-today-btn")) === null || _document_getElementsByClassName__getElementsByClassName === void 0 ? void 0 : _document_getElementsByClassName__getElementsByClassName[0];
351
+ if (value) {
352
+ var _btn, _btn1;
353
+ (_btn = btn) === null || _btn === void 0 ? void 0 : _btn.removeEventListener("click", todayClick);
354
+ (_btn1 = btn) === null || _btn1 === void 0 ? void 0 : _btn1.addEventListener("click", todayClick, {
355
+ once: true
356
+ });
357
+ }
358
+ }
310
359
  };
311
360
  //预设点击
312
361
  const presetClick = (info)=>{
313
362
  console.log(typeof info.value);
314
363
  const value = typeof info.value === "function" ? info.value() : info.value;
315
- const valueString = value.format(format);
316
- setSelectedDate((prevState)=>{
317
- selectedDateRef.current = value;
318
- return selectedDateRef.current;
319
- });
320
- setSelectedDateString((prevState)=>{
321
- selectedDateStringRef.current = valueString;
322
- return selectedDateStringRef.current;
323
- });
324
- onChange && onChange(value, valueString);
325
- setPanelOpen(false);
364
+ if (kind === "range") {
365
+ const valueString = [
366
+ value[0].format(format),
367
+ value[1].format(format)
368
+ ];
369
+ setSelectedRangeDate(value);
370
+ setSelectedRangeDateString(valueString);
371
+ onChange && onChange(value, valueString);
372
+ setPanelOpen(false);
373
+ } else {
374
+ const valueString = value.format(format);
375
+ setSelectedDate((prevState)=>{
376
+ selectedDateRef.current = value;
377
+ return selectedDateRef.current;
378
+ });
379
+ setSelectedDateString((prevState)=>{
380
+ selectedDateStringRef.current = valueString;
381
+ return selectedDateStringRef.current;
382
+ });
383
+ onChange && onChange(value, valueString);
384
+ setPanelOpen(false);
385
+ }
326
386
  };
327
387
  return /*#__PURE__*/ _jsxs("span", {
328
388
  className: `${styles.bhdDatePicker}`,
@@ -330,8 +390,8 @@ const BhdDatePicker = (props)=>{
330
390
  children: [
331
391
  (kind === "single" || kind === "extra") && /*#__PURE__*/ _jsx(_Fragment, {
332
392
  children: /*#__PURE__*/ _jsx(DatePicker, _object_spread_props(_object_spread({}, getConfig()), {
393
+ id: id,
333
394
  value: selectedDate,
334
- showNow: showTime ? showNow : false,
335
395
  mode: panelMode,
336
396
  open: panelOpen,
337
397
  disabledDate: selfDisabledDate,
@@ -343,6 +403,7 @@ const BhdDatePicker = (props)=>{
343
403
  // 打开设置默认mode
344
404
  if (value) {
345
405
  setDefaultMode();
406
+ todayClickEventListener(value);
346
407
  }
347
408
  onOpenChange && onOpenChange(value);
348
409
  },
@@ -379,7 +440,6 @@ const BhdDatePicker = (props)=>{
379
440
  kind === "range" && /*#__PURE__*/ _jsx(_Fragment, {
380
441
  children: /*#__PURE__*/ _jsx(RangePicker, _object_spread_props(_object_spread({}, getConfig()), {
381
442
  value: selectedRangeDate,
382
- showNow: false,
383
443
  mode: rangePanelMode,
384
444
  open: panelOpen,
385
445
  disabledDate: selfDisabledDate,
@@ -255,6 +255,7 @@
255
255
  }
256
256
  }
257
257
 
258
+
258
259
  // 多面板
259
260
  .bhd-picker-panels {
260
261
  & .bhd-picker-panel {
@@ -383,11 +384,16 @@
383
384
 
384
385
  // 隐藏默认的当前
385
386
  & > a {
386
- display: none;
387
+ // display: none;
387
388
  }
388
389
  // & > .bhd-picker-ranges {
389
390
  // display: none;
390
391
  // }
392
+
393
+ & > a.bhd-picker-today-btn {
394
+ position: absolute;
395
+ right: 91px;
396
+ }
391
397
  }
392
398
 
393
399
  // 默认颜色
@@ -442,27 +448,6 @@
442
448
  }
443
449
  }
444
450
  }
445
-
446
- // &.showNow {
447
- // :global {
448
- // .bhd-picker-footer {
449
- // & > a.bhd-picker-today-btn {
450
- // position: absolute;
451
- // right: 91px;
452
- // }
453
- // }
454
- // }
455
- // }
456
-
457
- // &.hideShow {
458
- // :global {
459
- // .bhd-picker-footer {
460
- // & > a {
461
- // display: none;
462
- // }
463
- // }
464
- // }
465
- // }
466
451
  }
467
452
 
468
453
  // 单选
@@ -6,6 +6,18 @@ const en_US = {
6
6
  Load: "Loading...",
7
7
  确定: 'OK',
8
8
  此刻: 'Now',
9
- 今天: 'Today'
9
+ 今天: 'Today',
10
+ 一月: 'Jan',
11
+ 二月: 'Feb',
12
+ 三月: 'Mar',
13
+ 四月: 'Apr',
14
+ 五月: 'May',
15
+ 六月: 'Jun',
16
+ 七月: 'Jul',
17
+ 八月: 'Aug',
18
+ 九月: 'Sep',
19
+ 十月: 'Oct',
20
+ 十一月: 'Nov',
21
+ 十二月: 'Dec'
10
22
  };
11
23
  export default en_US;
@@ -6,6 +6,18 @@ const zh_CN = {
6
6
  Load: "正在加载...",
7
7
  确定: '确定',
8
8
  此刻: '此刻',
9
- 今天: '今天'
9
+ 今天: '今天',
10
+ 一月: '一月',
11
+ 二月: '二月',
12
+ 三月: '三月',
13
+ 四月: '四月',
14
+ 五月: '五月',
15
+ 六月: '六月',
16
+ 七月: '七月',
17
+ 八月: '八月',
18
+ 九月: '九月',
19
+ 十月: '十月',
20
+ 十一月: '十一月',
21
+ 十二月: '十二月'
10
22
  };
11
23
  export default zh_CN;
@@ -4,13 +4,29 @@ import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
4
4
  import { _ as _type_of } from "@swc/helpers/_/_type_of";
5
5
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "@ice/jsx-runtime/jsx-runtime";
6
6
  import * as React from "react";
7
- import { useState, useEffect, useRef } from "react";
7
+ import { useState, useEffect, useRef, useCallback } from "react";
8
8
  import styles from "./index.module.less";
9
9
  import { ConfigProvider, Button, DatePicker } from "antd";
10
10
  import { CustomArrow } from "../icons";
11
11
  // import dayjs from "dayjs";
12
+ // import type { Dayjs } from "dayjs";
12
13
  import i18Conversion from "../i18n";
13
14
  var RangePicker = DatePicker.RangePicker;
15
+ var months = [
16
+ "一月",
17
+ "二月",
18
+ "三月",
19
+ "四月",
20
+ "五月",
21
+ "六月",
22
+ "七月",
23
+ "八月",
24
+ "九月",
25
+ "十月",
26
+ "十一月",
27
+ "十二月"
28
+ ];
29
+ //January_February_March_April_May_June_July_August_September_October_November_December
14
30
  var BhdDatePicker = function(props) {
15
31
  var lang = ConfigProvider.lang === "en" ? "en_US" : "zh_CN";
16
32
  // if (lang === "en_US") {
@@ -20,6 +36,7 @@ var BhdDatePicker = function(props) {
20
36
  // const zhCN = require("dayjs/locale/zh-cn");
21
37
  // dayjs.locale(zhCN);
22
38
  // }
39
+ var id = "BhdDatePicker_" + new Date().getTime();
23
40
  // 默认格式
24
41
  var getDefaultFormat = function() {
25
42
  if (props.format) {
@@ -49,7 +66,7 @@ var BhdDatePicker = function(props) {
49
66
  }
50
67
  };
51
68
  // 自己组件内使用的,或者自己处理的
52
- var _props_kind = props.kind, kind = _props_kind === void 0 ? "single" : _props_kind, extraItems = props.extraItems, _props_extraReadonly = props.extraReadonly, extraReadonly = _props_extraReadonly === void 0 ? false : _props_extraReadonly, _props_useType = props.useType, useType = _props_useType === void 0 ? "" : _props_useType, _props_open = props.open, open = _props_open === void 0 ? false : _props_open, mode = props.mode, picker = props.picker, _props_value = props.value, value = _props_value === void 0 ? props.kind === "range" ? [] : "" : _props_value, _props_format = props.format, format = _props_format === void 0 ? getDefaultFormat() : _props_format, _props_presets = props.presets, presets = _props_presets === void 0 ? [] : _props_presets, className = props.className, popupClassName = props.popupClassName, showTime = props.showTime, _props_showNow = props.showNow, showNow = _props_showNow === void 0 ? true : _props_showNow, _props_allowClear = props.allowClear, allowClear = _props_allowClear === void 0 ? true : _props_allowClear, onClick = props.onClick, onBlur = props.onBlur, onChange = props.onChange, onOk = props.onOk, onCalendarChange = props.onCalendarChange, onOpenChange = props.onOpenChange, onPanelChange = props.onPanelChange, disabledDate = props.disabledDate, cellRender = props.cellRender, renderExtraFooter = props.renderExtraFooter;
69
+ var _props_kind = props.kind, kind = _props_kind === void 0 ? "single" : _props_kind, extraItems = props.extraItems, _props_extraReadonly = props.extraReadonly, extraReadonly = _props_extraReadonly === void 0 ? false : _props_extraReadonly, _props_useType = props.useType, useType = _props_useType === void 0 ? "" : _props_useType, _props_open = props.open, open = _props_open === void 0 ? false : _props_open, mode = props.mode, picker = props.picker, _props_value = props.value, value = _props_value === void 0 ? props.kind === "range" ? [] : "" : _props_value, _props_format = props.format, format = _props_format === void 0 ? getDefaultFormat() : _props_format, _props_presets = props.presets, presets = _props_presets === void 0 ? [] : _props_presets, className = props.className, popupClassName = props.popupClassName, showTime = props.showTime, _props_showNow = props.showNow, showNow = _props_showNow === void 0 ? true : _props_showNow, _props_showToday = props.showToday, showToday = _props_showToday === void 0 ? true : _props_showToday, _props_allowClear = props.allowClear, allowClear = _props_allowClear === void 0 ? true : _props_allowClear, onClick = props.onClick, onBlur = props.onBlur, onChange = props.onChange, onOk = props.onOk, onCalendarChange = props.onCalendarChange, onOpenChange = props.onOpenChange, onPanelChange = props.onPanelChange, disabledDate = props.disabledDate, cellRender = props.cellRender, renderExtraFooter = props.renderExtraFooter;
53
70
  var bhdDatePickerRef = useRef(null);
54
71
  var _useState = _sliced_to_array(useState(open), 2), panelOpen = _useState[0], setPanelOpen = _useState[1];
55
72
  var _useState1 = _sliced_to_array(useState("date"), 2), panelMode = _useState1[0], setPanelMode = _useState1[1];
@@ -64,6 +81,7 @@ var BhdDatePicker = function(props) {
64
81
  var _useState5 = _sliced_to_array(useState(value), 2), selectedRangeDate = _useState5[0], setSelectedRangeDate = _useState5[1];
65
82
  var _useState6 = _sliced_to_array(useState([]), 2), selectedRangeDateString = _useState6[0], setSelectedRangeDateString = _useState6[1];
66
83
  var _useState7 = _sliced_to_array(useState(false), 2), rangeOpenChange = _useState7[0], setRangeOpenChange = _useState7[1]; // 用于范围选择失去焦点后,判断是否关闭
84
+ var isChange = useRef(false);
67
85
  useEffect(function() {
68
86
  setDefaultMode();
69
87
  if (kind === "range") {
@@ -81,7 +99,18 @@ var BhdDatePicker = function(props) {
81
99
  });
82
100
  }
83
101
  }
102
+ return function() {
103
+ var _document_getElementsByClassName__getElementsByClassName, _document_getElementsByClassName_, _document_getElementsByClassName, _btn;
104
+ var btn = (_document_getElementsByClassName = document.getElementsByClassName(id)) === null || _document_getElementsByClassName === void 0 ? void 0 : (_document_getElementsByClassName_ = _document_getElementsByClassName[0]) === null || _document_getElementsByClassName_ === void 0 ? void 0 : (_document_getElementsByClassName__getElementsByClassName = _document_getElementsByClassName_.getElementsByClassName("bhd-picker-today-btn")) === null || _document_getElementsByClassName__getElementsByClassName === void 0 ? void 0 : _document_getElementsByClassName__getElementsByClassName[0];
105
+ (_btn = btn) === null || _btn === void 0 ? void 0 : _btn.removeEventListener("click", todayClick);
106
+ };
84
107
  }, []);
108
+ useEffect(function() {
109
+ isChange.current = true;
110
+ }, [
111
+ selectedDate,
112
+ selectedRangeDate
113
+ ]);
85
114
  // 传给 DatePicker 的props参数
86
115
  var getConfig = function() {
87
116
  var config = _object_spread_props(_object_spread({
@@ -145,6 +174,7 @@ var BhdDatePicker = function(props) {
145
174
  config.allowClear = false; // 日程安排查看时,不显示清除按钮
146
175
  }
147
176
  }
177
+ config.popupClassName = "".concat(config.popupClassName, " ").concat(id);
148
178
  return config;
149
179
  };
150
180
  // 设置默认mode
@@ -185,9 +215,14 @@ var BhdDatePicker = function(props) {
185
215
  }
186
216
  // 月份 中文模式下显示全名称(例:一月),英文模式下显示短名称(例:Jan)
187
217
  if (info.type === "month") {
218
+ // return (
219
+ // <div className={`${"bhd-picker-cell-inner"}`}>
220
+ // {current.format(dayjs.locale() === "zh-cn" ? "MMMM" : "MMM")}
221
+ // </div>
222
+ // );
188
223
  return /*#__PURE__*/ _jsx("div", {
189
224
  className: "bhd-picker-cell-inner",
190
- children: current.format(lang === "zh_CN" ? "MMMM" : "MMM")
225
+ children: i18Conversion(months[Number(current.format("M")) - 1])
191
226
  });
192
227
  }
193
228
  return info.originNode;
@@ -219,14 +254,14 @@ var BhdDatePicker = function(props) {
219
254
  children: [
220
255
  renderExtraFooter && /*#__PURE__*/ _jsx("div", {
221
256
  className: "bhddatepicker-picker-footer-extra-extend",
222
- children: renderExtraFooter()
257
+ children: renderExtraFooter(mode)
223
258
  }),
224
259
  !showTime ? /*#__PURE__*/ _jsx(_Fragment, {
225
260
  children: /*#__PURE__*/ _jsxs("ul", {
226
261
  className: "bhd-picker-ranges",
227
262
  children: [
228
263
  selfRenderPresets(),
229
- renderNow(),
264
+ renderToday(),
230
265
  /*#__PURE__*/ _jsx("li", {
231
266
  className: "bhd-picker-ok",
232
267
  children: /*#__PURE__*/ _jsx(Button, {
@@ -246,13 +281,14 @@ var BhdDatePicker = function(props) {
246
281
  });
247
282
  };
248
283
  // 渲染今天
249
- var renderNow = function() {
284
+ var renderToday = function() {
250
285
  // 显示now
251
- if (showNow) {
286
+ if (showToday) {
252
287
  var _extraItems;
253
288
  // 日程安排时: extraItems中今天是否是可选或者已选择状态
254
289
  var hasNow = ((_extraItems = extraItems) === null || _extraItems === void 0 ? void 0 : _extraItems.filter(function(item) {
255
- return item.status !== "noselectable";
290
+ return item.status !== "noselectable" && // item.date.format(format) === dayjs().format(format)
291
+ item.date.format("YYYYMMDD") === getToday();
256
292
  }).length) > 0;
257
293
  if (kind === "single" || kind === "extra" && hasNow) {
258
294
  if (mode === "date" || mode === undefined) {
@@ -260,8 +296,11 @@ var BhdDatePicker = function(props) {
260
296
  className: "bhd-picker-now",
261
297
  children: /*#__PURE__*/ _jsx("a", {
262
298
  className: "bhd-picker-now-btn",
299
+ style: {
300
+ visibility: "hidden"
301
+ },
263
302
  onClick: todayClick,
264
- children: showTime ? i18Conversion("此刻") : i18Conversion("今天")
303
+ children: i18Conversion("今天")
265
304
  })
266
305
  });
267
306
  }
@@ -269,6 +308,11 @@ var BhdDatePicker = function(props) {
269
308
  }
270
309
  return null;
271
310
  };
311
+ // 获取到年月日
312
+ var getToday = function() {
313
+ var date = new Date();
314
+ return date.getFullYear().toString() + date.getMonth().toString().padStart(2, "0") + date.getDay().toString().padStart(2, "0");
315
+ };
272
316
  // 渲染预设
273
317
  var selfRenderPresets = function() {
274
318
  return /*#__PURE__*/ _jsx("li", {
@@ -294,42 +338,58 @@ var BhdDatePicker = function(props) {
294
338
  setPanelOpen(true);
295
339
  }
296
340
  } else {
297
- if (selectedDate && selectedDateString) {
298
- onChange && onChange(selectedDate, selectedDateString);
341
+ if (selectedDateRef.current && selectedDateStringRef.current) {
342
+ onChange && onChange(selectedDateRef.current, selectedDateStringRef.current);
299
343
  setPanelOpen(false);
300
344
  }
301
345
  }
302
346
  };
303
347
  // 今天点击
304
- var todayClick = function() {
305
- // var today = dayjs();
306
- // var todayString = today.format(format);
307
- // setSelectedDate((prevState) => {
308
- // selectedDateRef.current = today;
309
- // return selectedDateRef.current;
310
- // });
311
- // setSelectedDateString((prevState) => {
312
- // selectedDateStringRef.current = todayString;
313
- // return selectedDateStringRef.current;
314
- // });
315
- // onChange && onChange(today, todayString);
316
- // setPanelOpen(false);
348
+ var todayClick = useCallback(function() {
349
+ setTimeout(function() {
350
+ okClick();
351
+ }, 0);
352
+ }, []);
353
+ var todayClickEventListener = function(value) {
354
+ if (!value) return;
355
+ if (showToday) {
356
+ var _document_getElementsByClassName__getElementsByClassName, _document_getElementsByClassName_, _document_getElementsByClassName;
357
+ var btn = (_document_getElementsByClassName = document.getElementsByClassName(id)) === null || _document_getElementsByClassName === void 0 ? void 0 : (_document_getElementsByClassName_ = _document_getElementsByClassName[0]) === null || _document_getElementsByClassName_ === void 0 ? void 0 : (_document_getElementsByClassName__getElementsByClassName = _document_getElementsByClassName_.getElementsByClassName("bhd-picker-today-btn")) === null || _document_getElementsByClassName__getElementsByClassName === void 0 ? void 0 : _document_getElementsByClassName__getElementsByClassName[0];
358
+ if (value) {
359
+ var _btn, _btn1;
360
+ (_btn = btn) === null || _btn === void 0 ? void 0 : _btn.removeEventListener("click", todayClick);
361
+ (_btn1 = btn) === null || _btn1 === void 0 ? void 0 : _btn1.addEventListener("click", todayClick, {
362
+ once: true
363
+ });
364
+ }
365
+ }
317
366
  };
318
367
  //预设点击
319
368
  var presetClick = function(info) {
320
369
  console.log(_type_of(info.value));
321
370
  var value = typeof info.value === "function" ? info.value() : info.value;
322
- var valueString = value.format(format);
323
- setSelectedDate(function(prevState) {
324
- selectedDateRef.current = value;
325
- return selectedDateRef.current;
326
- });
327
- setSelectedDateString(function(prevState) {
328
- selectedDateStringRef.current = valueString;
329
- return selectedDateStringRef.current;
330
- });
331
- onChange && onChange(value, valueString);
332
- setPanelOpen(false);
371
+ if (kind === "range") {
372
+ var valueString = [
373
+ value[0].format(format),
374
+ value[1].format(format)
375
+ ];
376
+ setSelectedRangeDate(value);
377
+ setSelectedRangeDateString(valueString);
378
+ onChange && onChange(value, valueString);
379
+ setPanelOpen(false);
380
+ } else {
381
+ var valueString1 = value.format(format);
382
+ setSelectedDate(function(prevState) {
383
+ selectedDateRef.current = value;
384
+ return selectedDateRef.current;
385
+ });
386
+ setSelectedDateString(function(prevState) {
387
+ selectedDateStringRef.current = valueString1;
388
+ return selectedDateStringRef.current;
389
+ });
390
+ onChange && onChange(value, valueString1);
391
+ setPanelOpen(false);
392
+ }
333
393
  };
334
394
  return /*#__PURE__*/ _jsxs("span", {
335
395
  className: "".concat(styles.bhdDatePicker),
@@ -337,8 +397,8 @@ var BhdDatePicker = function(props) {
337
397
  children: [
338
398
  (kind === "single" || kind === "extra") && /*#__PURE__*/ _jsx(_Fragment, {
339
399
  children: /*#__PURE__*/ _jsx(DatePicker, _object_spread_props(_object_spread({}, getConfig()), {
400
+ id: id,
340
401
  value: selectedDate,
341
- showNow: showTime ? showNow : false,
342
402
  mode: panelMode,
343
403
  open: panelOpen,
344
404
  disabledDate: selfDisabledDate,
@@ -350,6 +410,7 @@ var BhdDatePicker = function(props) {
350
410
  // 打开设置默认mode
351
411
  if (value) {
352
412
  setDefaultMode();
413
+ todayClickEventListener(value);
353
414
  }
354
415
  onOpenChange && onOpenChange(value);
355
416
  },
@@ -386,7 +447,6 @@ var BhdDatePicker = function(props) {
386
447
  kind === "range" && /*#__PURE__*/ _jsx(_Fragment, {
387
448
  children: /*#__PURE__*/ _jsx(RangePicker, _object_spread_props(_object_spread({}, getConfig()), {
388
449
  value: selectedRangeDate,
389
- showNow: false,
390
450
  mode: rangePanelMode,
391
451
  open: panelOpen,
392
452
  disabledDate: selfDisabledDate,