bhd-components 0.9.2 → 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.
Files changed (87) hide show
  1. package/README.md +1 -1
  2. package/dist/index.esm.es5.development.css +456 -364
  3. package/dist/index.esm.es5.development.js +414 -323
  4. package/dist/index.esm.es5.production.css +1 -1
  5. package/dist/index.esm.es5.production.js +1 -1
  6. package/dist/vendor.esm.es5.development.css +119 -0
  7. package/dist/{a5565b8a.esm.es5.development.js → vendor.esm.es5.development.js} +8247 -6856
  8. package/dist/vendor.esm.es5.production.css +11 -0
  9. package/dist/vendor.esm.es5.production.js +485 -0
  10. package/es2017/bhdAppLayout/components/BhdTableSimple/index.js +1 -1
  11. package/es2017/bhdAppLayout/components/BhdTableSimple/index/347/232/204/345/211/257/346/234/254.js +2 -2
  12. package/es2017/bhdAppLayout/index.js +16 -16
  13. package/es2017/bhdDatePicker/index.d.ts +1 -2
  14. package/es2017/bhdDatePicker/index.js +311 -254
  15. package/es2017/bhdDatePicker/index.module.less +106 -9
  16. package/es2017/bhdSelect/index.js +4 -4
  17. package/es2017/bhdTipModal/index.js +6 -6
  18. package/es2017/customerService/contactsList.d.ts +2 -2
  19. package/es2017/customerService/contactsList.js +2 -2
  20. package/es2017/customerService/function.js +2 -1
  21. package/es2017/customerService/historyFun.d.ts +2 -2
  22. package/es2017/customerService/historyFun.js +2 -2
  23. package/es2017/customerService/index.d.ts +2 -2
  24. package/es2017/customerService/index.js +5 -5
  25. package/es2017/customerService/js-screen-shot/lib/common-methods/GetCanvasImgData.js +1 -1
  26. package/es2017/customerService/js-screen-shot/lib/common-methods/SaveBorderArrInfo.js +1 -1
  27. package/es2017/customerService/js-screen-shot/lib/common-methods/SaveCanvasToBase64.js +3 -2
  28. package/es2017/customerService/js-screen-shot/lib/common-methods/SaveCanvasToImage.js +2 -1
  29. package/es2017/customerService/js-screen-shot/lib/common-methods/ZoomCutOutBoxPosition.d.ts +3 -3
  30. package/es2017/customerService/js-screen-shot/lib/main-entrance/CreateDom.js +4 -3
  31. package/es2017/customerService/js-screen-shot/lib/main-entrance/InitData.js +2 -2
  32. package/es2017/customerService/js-screen-shot/lib/split-methods/DrawCutOutBox.js +6 -5
  33. package/es2017/customerService/js-screen-shot/lib/split-methods/SetPlugInParameters.js +15 -14
  34. package/es2017/customerService/js-screen-shot/lib/split-methods/ToolClickEvent.js +1 -1
  35. package/es2017/customerService/js-screen-shot/lib/split-methods/drawCrossImg.js +2 -1
  36. package/es2017/customerService/js-screen-shot/main.js +38 -35
  37. package/es2017/customerService/screenshotTool.d.ts +2 -2
  38. package/es2017/customerService/screenshotTool.js +2 -2
  39. package/es2017/customerService/teacherList.d.ts +2 -2
  40. package/es2017/customerService/teacherList.js +2 -2
  41. package/es2017/i18n/en_US.js +16 -1
  42. package/es2017/i18n/zh_CN.js +16 -1
  43. package/es2017/icons/index.js +2 -2
  44. package/es2017/index.js +14 -14
  45. package/es2017/provider/index.js +2 -2
  46. package/es2017/table/index.js +4 -4
  47. package/es2017/tableSelect/index.js +3 -3
  48. package/es2017/textTootip/index.js +1 -1
  49. package/es2017/titleBar/index.js +3 -3
  50. package/es2017/viewImage/index.js +13 -13
  51. package/esm/bhdAppLayout/index.js +15 -15
  52. package/esm/bhdDatePicker/index.d.ts +1 -2
  53. package/esm/bhdDatePicker/index.js +312 -255
  54. package/esm/bhdDatePicker/index.module.less +106 -9
  55. package/esm/bhdSelect/index.js +1 -1
  56. package/esm/bhdTipModal/index.js +1 -1
  57. package/esm/customerService/contactsList.d.ts +2 -2
  58. package/esm/customerService/contactsList.js +1 -1
  59. package/esm/customerService/function.js +2 -1
  60. package/esm/customerService/historyFun.d.ts +2 -2
  61. package/esm/customerService/historyFun.js +1 -1
  62. package/esm/customerService/index.d.ts +2 -2
  63. package/esm/customerService/index.js +1 -1
  64. package/esm/customerService/js-screen-shot/lib/common-methods/SaveCanvasToBase64.js +3 -2
  65. package/esm/customerService/js-screen-shot/lib/common-methods/SaveCanvasToImage.js +2 -1
  66. package/esm/customerService/js-screen-shot/lib/common-methods/ZoomCutOutBoxPosition.d.ts +3 -3
  67. package/esm/customerService/js-screen-shot/lib/main-entrance/CreateDom.js +4 -3
  68. package/esm/customerService/js-screen-shot/lib/split-methods/DrawCutOutBox.js +5 -4
  69. package/esm/customerService/js-screen-shot/lib/split-methods/SetPlugInParameters.js +15 -14
  70. package/esm/customerService/js-screen-shot/lib/split-methods/drawCrossImg.js +2 -1
  71. package/esm/customerService/js-screen-shot/main.js +31 -28
  72. package/esm/customerService/screenshotTool.d.ts +2 -2
  73. package/esm/customerService/screenshotTool.js +1 -1
  74. package/esm/customerService/teacherList.d.ts +2 -2
  75. package/esm/customerService/teacherList.js +1 -1
  76. package/esm/i18n/en_US.js +16 -1
  77. package/esm/i18n/zh_CN.js +16 -1
  78. package/esm/icons/index.js +1 -1
  79. package/esm/index.js +14 -14
  80. package/esm/tableSelect/index.js +1 -1
  81. package/esm/viewImage/index.js +3 -3
  82. package/package.json +1 -1
  83. package/dist/deb6cc9b.esm.es5.production.js +0 -485
  84. package/dist/vendor.esm.es5.development.esm.es5.development.css +0 -119
  85. package/dist/vendor.esm.es5.production.esm.es5.production.css +0 -11
  86. package/es2017/customerService/screenShotPlugin.esm.js +0 -6515
  87. package/esm/customerService/screenShotPlugin.esm.js +0 -6516
@@ -1,32 +1,74 @@
1
1
  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 { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
4
+ import { _ as _type_of } from "@swc/helpers/_/_type_of";
4
5
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "@ice/jsx-runtime/jsx-runtime";
5
6
  import * as React from "react";
6
- import { useState, useEffect, useRef } from "react";
7
+ import { useState, useEffect, useRef, useCallback } from "react";
7
8
  import styles from "./index.module.less";
8
- import { Button, DatePicker } from "antd";
9
- import { CustomArrow } from "../icons/index";
10
- import dayjs from "dayjs";
9
+ import { ConfigProvider, Button, DatePicker } from "antd";
10
+ import { CustomArrow } from "../icons";
11
+ // import dayjs from "dayjs";
12
+ // import type { Dayjs } from "dayjs";
13
+ import i18Conversion from "../i18n";
11
14
  var RangePicker = DatePicker.RangePicker;
12
15
  var months = [
13
- "",
14
- "",
15
- "",
16
- "",
17
- "",
18
- "",
19
- "",
20
- "",
21
- "",
22
- "",
23
- "十一",
24
- "十二"
16
+ "一月",
17
+ "二月",
18
+ "三月",
19
+ "四月",
20
+ "五月",
21
+ "六月",
22
+ "七月",
23
+ "八月",
24
+ "九月",
25
+ "十月",
26
+ "十一月",
27
+ "十二月"
25
28
  ];
29
+ //January_February_March_April_May_June_July_August_September_October_November_December
26
30
  var BhdDatePicker = function(props) {
27
- var _props_kind = props.kind, kind = _props_kind === void 0 ? "single" : _props_kind, _props_value = props.value, value = _props_value === void 0 ? props.kind === "range" ? [] : "" : _props_value, extraItems = props.extraItems, _props_extraReadonly = props.extraReadonly, extraReadonly = _props_extraReadonly === void 0 ? false : _props_extraReadonly, picker = props.picker, _props_useType = props.useType, useType = _props_useType === void 0 ? "" : _props_useType, className = props.className, popupClassName = props.popupClassName, showTime = props.showTime, _props_showNow = props.showNow, showNow = _props_showNow === void 0 ? true : _props_showNow, onClick = props.onClick, onBlur = props.onBlur, onChange = props.onChange, onOk = props.onOk, _props_presets = props.presets, presets = _props_presets === void 0 ? [] : _props_presets;
31
+ var lang = ConfigProvider.lang === "en" ? "en_US" : "zh_CN";
32
+ // if (lang === "en_US") {
33
+ // const enUS = require("dayjs/locale/en");
34
+ // dayjs.locale(enUS);
35
+ // } else {
36
+ // const zhCN = require("dayjs/locale/zh-cn");
37
+ // dayjs.locale(zhCN);
38
+ // }
39
+ var id = "BhdDatePicker_" + new Date().getTime();
40
+ // 默认格式
41
+ var getDefaultFormat = function() {
42
+ if (props.format) {
43
+ return props.format;
44
+ } else {
45
+ var fm = props.showTime ? "YYYY-MM-DD hh:mm:ss" : "YYYY-MM-DD";
46
+ switch(props.picker){
47
+ case undefined:
48
+ case "date":
49
+ break;
50
+ case "week":
51
+ fm = "YYYY-wo";
52
+ break;
53
+ case "month":
54
+ fm = "YYYY-MM";
55
+ break;
56
+ case "quarter":
57
+ fm = "YYYY-QQ";
58
+ break;
59
+ case "year":
60
+ fm = "YYYY";
61
+ break;
62
+ default:
63
+ break;
64
+ }
65
+ return fm;
66
+ }
67
+ };
68
+ // 自己组件内使用的,或者自己处理的
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;
28
70
  var bhdDatePickerRef = useRef(null);
29
- var _useState = _sliced_to_array(useState(false), 2), open = _useState[0], setOpen = _useState[1];
71
+ var _useState = _sliced_to_array(useState(open), 2), panelOpen = _useState[0], setPanelOpen = _useState[1];
30
72
  var _useState1 = _sliced_to_array(useState("date"), 2), panelMode = _useState1[0], setPanelMode = _useState1[1];
31
73
  var _useState2 = _sliced_to_array(useState([
32
74
  "date",
@@ -39,79 +81,122 @@ var BhdDatePicker = function(props) {
39
81
  var _useState5 = _sliced_to_array(useState(value), 2), selectedRangeDate = _useState5[0], setSelectedRangeDate = _useState5[1];
40
82
  var _useState6 = _sliced_to_array(useState([]), 2), selectedRangeDateString = _useState6[0], setSelectedRangeDateString = _useState6[1];
41
83
  var _useState7 = _sliced_to_array(useState(false), 2), rangeOpenChange = _useState7[0], setRangeOpenChange = _useState7[1]; // 用于范围选择失去焦点后,判断是否关闭
42
- var timer = useRef(null);
84
+ var isChange = useRef(false);
43
85
  useEffect(function() {
44
86
  setDefaultMode();
45
- }, []);
46
- useEffect(function() {
47
- if (panelMode === "year") {
48
- timer.current = setTimeout(function() {
49
- var doms = document.getElementsByClassName("bhd-picker-decade-btn");
50
- for(var index = 0; index < doms.length; index++){
51
- var _doms_index, _doms_index_childNodes;
52
- var dom = (_doms_index = doms[index]) === null || _doms_index === void 0 ? void 0 : (_doms_index_childNodes = _doms_index.childNodes) === null || _doms_index_childNodes === void 0 ? void 0 : _doms_index_childNodes[1];
53
- if (dom) {
54
- if (dom.textContent !== " ㅡ ") {
55
- dom.textContent = " ㅡ ";
56
- }
57
- }
58
- }
59
- }, 0);
87
+ if (kind === "range") {
88
+ if (selectedRangeDate[0] && selectedRangeDate[1]) {
89
+ setSelectedRangeDateString([
90
+ selectedRangeDate[0].format(format),
91
+ selectedRangeDate[1].format(format)
92
+ ]);
93
+ }
94
+ } else {
95
+ if (selectedDate) {
96
+ setSelectedDateString(function(prevState) {
97
+ selectedDateStringRef.current = selectedDate.format(format);
98
+ return selectedDateStringRef.current;
99
+ });
100
+ }
60
101
  }
61
102
  return function() {
62
- clearTimeout(timer.current);
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);
63
106
  };
107
+ }, []);
108
+ useEffect(function() {
109
+ isChange.current = true;
64
110
  }, [
65
- open,
66
- panelMode
111
+ selectedDate,
112
+ selectedRangeDate
67
113
  ]);
114
+ // 传给 DatePicker 的props参数
68
115
  var getConfig = function() {
69
- var config = _object_spread({}, props);
70
- delete config.cellRender;
71
- delete config.className;
72
- delete config.prevIcon;
73
- delete config.nextIcon;
74
- delete config.superPrevIcon;
75
- delete config.superNextIcon;
116
+ var config = _object_spread_props(_object_spread({
117
+ prevIcon: /*#__PURE__*/ _jsx(CustomArrow, {
118
+ style: {
119
+ transform: "rotate(90deg)"
120
+ }
121
+ }),
122
+ nextIcon: /*#__PURE__*/ _jsx(CustomArrow, {
123
+ style: {
124
+ transform: "rotate(-90deg)"
125
+ }
126
+ }),
127
+ superPrevIcon: /*#__PURE__*/ _jsx(CustomArrow, {
128
+ style: {
129
+ transform: "rotate(90deg)"
130
+ }
131
+ }),
132
+ superNextIcon: /*#__PURE__*/ _jsx(CustomArrow, {
133
+ style: {
134
+ transform: "rotate(-90deg)"
135
+ }
136
+ })
137
+ }, props), {
138
+ //--------------- 下边是需要处理的
139
+ className: "".concat(className, " ").concat(useType === "table" ? "table-date-picker" : ""),
140
+ popupClassName: popupClassName,
141
+ allowClear: allowClear,
142
+ showTime: showTime,
143
+ cellRender: cellRender,
144
+ renderExtraFooter: selfRenderExtraFooter
145
+ });
146
+ //组件支持传入,防止再次传入DatePicker,所以删掉
147
+ delete config.mode;
76
148
  delete config.open;
77
149
  delete config.onOpenChange;
78
- delete config.renderExtraFooter;
79
- delete config.useType;
80
- delete config.showNow;
81
150
  delete config.onClick;
82
151
  delete config.onBlur;
83
152
  delete config.onOk;
84
153
  delete config.onChange;
85
- delete config.presets;
86
- delete config.mode;
87
- if (kind === "single" || kind === "extra") {
88
- delete config.value;
154
+ delete config.useType; // 组件自己定义的
155
+ delete config.presets; // 必须删掉,因为预设由官网的左侧换到底部
156
+ delete config.showNow; // 必须删掉,因为官网的今天按钮有bug,不受showNow的值控制
157
+ if (!config.cellRender) {
158
+ config.cellRender = selfCellRender;
89
159
  }
90
- if (kind === "extra" && picker !== "date") {
91
- delete config.extraItems;
160
+ // 单选
161
+ if (kind === "single") {
162
+ config.popupClassName = "\n ".concat(styles.bhdDatePickerPopup, " ").concat(styles.singlePicker, " ").concat(popupClassName || "", " ").concat(showTime ? styles.showTime : "", " ").concat(renderExtraFooter ? styles.showExtraFooter : "");
92
163
  }
164
+ // 范围选择
165
+ if (kind === "range") {
166
+ config.popupClassName = "".concat(styles.bhdDatePickerPopup, " ").concat(styles.rangePicker, " ").concat(popupClassName || "", " ").concat(showTime ? styles.showTime : "", " ").concat(renderExtraFooter ? styles.showExtraFooter : "");
167
+ }
168
+ // 日常安排
93
169
  if (kind === "extra") {
94
- delete config.disabledDate;
170
+ delete config.showTime; // 日程安排的时候,不允许展示时间面板
171
+ showTime = false; // 日程安排不选择时间
172
+ config.popupClassName = "".concat(styles.bhdDatePickerPopup, " ").concat(styles.extraPicker, " ").concat(extraReadonly ? styles.readonly : "", " ").concat(popupClassName || "", " ").concat(showTime ? styles.showTime : "", " ").concat(renderExtraFooter ? styles.showExtraFooter : "");
173
+ if (extraReadonly) {
174
+ config.allowClear = false; // 日程安排查看时,不显示清除按钮
175
+ }
95
176
  }
177
+ config.popupClassName = "".concat(config.popupClassName, " ").concat(id);
96
178
  return config;
97
179
  };
98
180
  // 设置默认mode
99
181
  var setDefaultMode = function() {
182
+ if (kind === "single" || kind === "extra") {
183
+ setPanelMode(mode || picker || "date");
184
+ }
100
185
  if (kind === "range") {
186
+ var _mode, _mode1;
101
187
  setRangePanelMode([
102
- picker || "date",
103
- picker || "date"
188
+ ((_mode = mode) === null || _mode === void 0 ? void 0 : _mode[0]) || picker || "date",
189
+ ((_mode1 = mode) === null || _mode1 === void 0 ? void 0 : _mode1[1]) || picker || "date"
104
190
  ]);
105
- } else {
106
- setPanelMode(picker || "date");
107
191
  }
108
192
  };
109
193
  //单元格渲染
110
- var cellRender = function(current, info) {
194
+ var selfCellRender = function(current, info) {
111
195
  if (info.type === "date") {
112
196
  var extraItem = null;
113
197
  if (kind === "extra") {
114
- extraItem = extraItems === null || extraItems === void 0 ? void 0 : extraItems.find(function(item) {
198
+ var _extraItems;
199
+ extraItem = (_extraItems = extraItems) === null || _extraItems === void 0 ? void 0 : _extraItems.find(function(item) {
115
200
  return item.date.format("YYYYMMDD") === current.format("YYYYMMDD");
116
201
  });
117
202
  }
@@ -128,71 +213,115 @@ var BhdDatePicker = function(props) {
128
213
  })
129
214
  });
130
215
  }
216
+ // 月份 中文模式下显示全名称(例:一月),英文模式下显示短名称(例:Jan)
131
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
+ // );
132
223
  return /*#__PURE__*/ _jsx("div", {
133
224
  className: "bhd-picker-cell-inner",
134
- children: months[Number(current.format("M")) - 1] + "月"
225
+ children: i18Conversion(months[Number(current.format("M")) - 1])
135
226
  });
136
227
  }
137
228
  return info.originNode;
138
229
  };
139
230
  //日期禁用
140
- var disabledDate = function(current) {
141
- // if (extraReadonly) {
142
- // return true;
143
- // }
231
+ var selfDisabledDate = function(current) {
232
+ // 或者是传过来的
233
+ if (disabledDate) {
234
+ return disabledDate(current);
235
+ }
144
236
  // 不能选择的是没有日程安排的
145
237
  var extraItem = null;
146
238
  if (kind === "extra") {
147
- extraItem = extraItems === null || extraItems === void 0 ? void 0 : extraItems.find(function(item) {
239
+ var _extraItems;
240
+ extraItem = (_extraItems = extraItems) === null || _extraItems === void 0 ? void 0 : _extraItems.find(function(item) {
148
241
  return item.date.format("YYYYMMDD") === current.format("YYYYMMDD");
149
242
  });
150
243
  if (extraReadonly && extraItem) {
151
244
  return false;
152
245
  }
246
+ return !extraItem || current && extraItem.status === "noselectable";
153
247
  }
154
- return !extraItem || current && extraItem.status === "noselectable";
248
+ return false;
155
249
  };
156
- // 渲染底部扩展内容
157
- var renderExtraFooter = function(mode) {
158
- return !showTime ? /*#__PURE__*/ _jsxs("ul", {
159
- className: "bhd-picker-ranges",
250
+ // 渲染底部扩展内容(包括确定按钮、今天按钮、预设、传入的底部扩展)
251
+ var selfRenderExtraFooter = function(mode) {
252
+ var _selectedRangeDate, _selectedRangeDate1;
253
+ return /*#__PURE__*/ _jsxs(_Fragment, {
160
254
  children: [
161
- renderPresets(),
162
- showNow && (kind === "single" || kind === "extra" && extraItems.filter(function(item) {
163
- return item.status !== "noselectable" && item.date.format("YYYY-MM-DD") === dayjs().format("YYYY-MM-DD");
164
- }).length > 0) && mode === "date" && /*#__PURE__*/ _jsx("li", {
165
- className: "bhd-picker-now",
166
- children: /*#__PURE__*/ _jsx("a", {
167
- className: "bhd-picker-now-btn",
168
- onClick: todayClick,
169
- children: showTime ? "此刻" : "今天"
170
- })
255
+ renderExtraFooter && /*#__PURE__*/ _jsx("div", {
256
+ className: "bhddatepicker-picker-footer-extra-extend",
257
+ children: renderExtraFooter(mode)
171
258
  }),
172
- /*#__PURE__*/ _jsx("li", {
173
- className: "bhd-picker-ok",
174
- children: /*#__PURE__*/ _jsx(Button, {
175
- type: "primary",
176
- disabled: kind === "range" ? !((selectedRangeDate === null || selectedRangeDate === void 0 ? void 0 : selectedRangeDate[0]) && (selectedRangeDate === null || selectedRangeDate === void 0 ? void 0 : selectedRangeDate[1])) : !(selectedDate && selectedDateString),
177
- onClick: okClick,
178
- children: "确定"
259
+ !showTime ? /*#__PURE__*/ _jsx(_Fragment, {
260
+ children: /*#__PURE__*/ _jsxs("ul", {
261
+ className: "bhd-picker-ranges",
262
+ children: [
263
+ selfRenderPresets(),
264
+ renderToday(),
265
+ /*#__PURE__*/ _jsx("li", {
266
+ className: "bhd-picker-ok",
267
+ children: /*#__PURE__*/ _jsx(Button, {
268
+ type: "primary",
269
+ disabled: kind === "range" ? !(((_selectedRangeDate = selectedRangeDate) === null || _selectedRangeDate === void 0 ? void 0 : _selectedRangeDate[0]) && ((_selectedRangeDate1 = selectedRangeDate) === null || _selectedRangeDate1 === void 0 ? void 0 : _selectedRangeDate1[1])) : !(selectedDate && selectedDateString),
270
+ onClick: okClick,
271
+ children: i18Conversion("确定")
272
+ })
273
+ })
274
+ ]
179
275
  })
276
+ }) : /*#__PURE__*/ _jsx("ul", {
277
+ className: "bhd-picker-ranges showPresets ".concat(showNow ? "showNow" : ""),
278
+ children: selfRenderPresets()
180
279
  })
181
280
  ]
182
- }) : /*#__PURE__*/ _jsx("ul", {
183
- className: "bhd-picker-ranges",
184
- children: renderPresets()
185
281
  });
186
282
  };
283
+ // 渲染今天
284
+ var renderToday = function() {
285
+ // 显示now
286
+ if (showToday) {
287
+ var _extraItems;
288
+ // 日程安排时: extraItems中今天是否是可选或者已选择状态
289
+ var hasNow = ((_extraItems = extraItems) === null || _extraItems === void 0 ? void 0 : _extraItems.filter(function(item) {
290
+ return item.status !== "noselectable" && // item.date.format(format) === dayjs().format(format)
291
+ item.date.format("YYYYMMDD") === getToday();
292
+ }).length) > 0;
293
+ if (kind === "single" || kind === "extra" && hasNow) {
294
+ if (mode === "date" || mode === undefined) {
295
+ return /*#__PURE__*/ _jsx("li", {
296
+ className: "bhd-picker-now",
297
+ children: /*#__PURE__*/ _jsx("a", {
298
+ className: "bhd-picker-now-btn",
299
+ style: {
300
+ visibility: "hidden"
301
+ },
302
+ onClick: todayClick,
303
+ children: i18Conversion("今天")
304
+ })
305
+ });
306
+ }
307
+ }
308
+ }
309
+ return null;
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
+ };
187
316
  // 渲染预设
188
- var renderPresets = function() {
317
+ var selfRenderPresets = function() {
189
318
  return /*#__PURE__*/ _jsx("li", {
190
319
  className: "bhd-picker-presets",
191
320
  children: presets.map(function(item, index) {
192
321
  return /*#__PURE__*/ _jsx("a", {
193
322
  className: "bhd-picker-preset-btn",
194
323
  onClick: function() {
195
- presetClick(item.value);
324
+ presetClick(item);
196
325
  },
197
326
  children: item.label
198
327
  }, index);
@@ -204,77 +333,87 @@ var BhdDatePicker = function(props) {
204
333
  if (kind === "range") {
205
334
  if (selectedRangeDate[0] && selectedRangeDate[1] && selectedRangeDateString[0] && selectedRangeDateString[1]) {
206
335
  onChange && onChange(selectedRangeDate, selectedRangeDateString);
207
- setOpen(false);
336
+ setPanelOpen(false);
208
337
  } else {
209
- setOpen(true);
338
+ setPanelOpen(true);
210
339
  }
211
340
  } else {
212
- if (selectedDate && selectedDateString) {
213
- onChange && onChange(selectedDate, selectedDateString);
214
- setOpen(false);
341
+ if (selectedDateRef.current && selectedDateStringRef.current) {
342
+ onChange && onChange(selectedDateRef.current, selectedDateStringRef.current);
343
+ setPanelOpen(false);
215
344
  }
216
345
  }
217
346
  };
218
- var todayClick = function() {
219
- var today = dayjs();
220
- var todayString = today.format(showTime ? "YYYY-MM-DD hh:mm:ss" : "YYYY-MM-DD");
221
- setSelectedDate(today);
222
- setSelectedDateString(todayString);
223
- onChange && onChange(today, todayString);
224
- setOpen(false);
347
+ // 今天点击
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
+ }
225
366
  };
226
367
  //预设点击
227
- var presetClick = function(value) {
228
- var todayString = value.format(showTime ? "YYYY-MM-DD hh:mm:ss" : "YYYY-MM-DD");
229
- setSelectedDate(value);
230
- setSelectedDateString(todayString);
231
- onChange && onChange(value, todayString);
232
- setOpen(false);
368
+ var presetClick = function(info) {
369
+ console.log(_type_of(info.value));
370
+ var value = typeof info.value === "function" ? info.value() : info.value;
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
+ }
233
393
  };
234
394
  return /*#__PURE__*/ _jsxs("span", {
235
395
  className: "".concat(styles.bhdDatePicker),
236
396
  ref: bhdDatePickerRef,
237
397
  children: [
238
- kind === "single" && /*#__PURE__*/ _jsx(_Fragment, {
398
+ (kind === "single" || kind === "extra") && /*#__PURE__*/ _jsx(_Fragment, {
239
399
  children: /*#__PURE__*/ _jsx(DatePicker, _object_spread_props(_object_spread({}, getConfig()), {
240
- id: "pickerRef",
241
- className: "".concat(className, " ").concat(useType === "table" ? "table-date-picker" : ""),
242
- popupClassName: "".concat(styles.bhdDatePickerPopup, " ").concat(styles.singlePicker, " ").concat(popupClassName || ""),
243
- cellRender: cellRender,
244
- prevIcon: /*#__PURE__*/ _jsx(CustomArrow, {
245
- style: {
246
- transform: "rotate(90deg)"
247
- }
248
- }),
249
- nextIcon: /*#__PURE__*/ _jsx(CustomArrow, {
250
- style: {
251
- transform: "rotate(-90deg)"
252
- }
253
- }),
254
- superPrevIcon: /*#__PURE__*/ _jsx(CustomArrow, {
255
- style: {
256
- transform: "rotate(90deg)"
257
- }
258
- }),
259
- superNextIcon: /*#__PURE__*/ _jsx(CustomArrow, {
260
- style: {
261
- transform: "rotate(-90deg)"
262
- }
263
- }),
400
+ id: id,
401
+ value: selectedDate,
402
+ mode: panelMode,
403
+ open: panelOpen,
404
+ disabledDate: selfDisabledDate,
264
405
  onPanelChange: function(value, mode) {
265
406
  setPanelMode(mode);
407
+ onPanelChange && onPanelChange(value, mode);
266
408
  },
267
- mode: panelMode,
268
- open: open,
269
409
  onOpenChange: function(value) {
270
410
  // 打开设置默认mode
271
411
  if (value) {
272
412
  setDefaultMode();
413
+ todayClickEventListener(value);
273
414
  }
415
+ onOpenChange && onOpenChange(value);
274
416
  },
275
- showNow: showTime ? showNow : false,
276
- defaultPickerValue: selectedDate,
277
- value: selectedDate,
278
417
  onChange: function(date, dateString) {
279
418
  setSelectedDate(function(prevState) {
280
419
  selectedDateRef.current = date;
@@ -285,149 +424,67 @@ var BhdDatePicker = function(props) {
285
424
  return selectedDateStringRef.current;
286
425
  });
287
426
  },
288
- onOk: function() {
427
+ onOk: function(date) {
289
428
  if (showTime) {
290
429
  setTimeout(function() {
291
- console.log({
292
- selectedDate: selectedDateRef.current,
293
- selectedDateString: selectedDateStringRef.current
294
- });
295
430
  onChange && onChange(selectedDateRef.current, selectedDateStringRef.current);
296
- setOpen(false);
431
+ setPanelOpen(false);
297
432
  }, 0);
298
433
  }
299
- onOk && onOk();
434
+ onOk && onOk(date);
300
435
  },
301
- onClick: function() {
302
- setOpen(true);
303
- onClick && onClick();
436
+ onClick: function(e) {
437
+ setPanelOpen(true);
438
+ onClick && onClick(e);
304
439
  },
305
- onBlur: function() {
440
+ onBlur: function(e) {
306
441
  okClick();
307
- setOpen(false);
308
- onBlur && onBlur();
309
- },
310
- renderExtraFooter: renderExtraFooter
442
+ setPanelOpen(false);
443
+ onBlur && onBlur(e);
444
+ }
311
445
  }))
312
446
  }),
313
447
  kind === "range" && /*#__PURE__*/ _jsx(_Fragment, {
314
448
  children: /*#__PURE__*/ _jsx(RangePicker, _object_spread_props(_object_spread({}, getConfig()), {
315
- className: "".concat(className, " ").concat(useType === "table" ? "table-date-picker" : ""),
316
- popupClassName: "".concat(styles.bhdDatePickerPopup, " ").concat(styles.rangePicker, " ").concat(popupClassName || ""),
317
- cellRender: cellRender,
318
- prevIcon: /*#__PURE__*/ _jsx(CustomArrow, {
319
- style: {
320
- transform: "rotate(90deg)"
321
- }
322
- }),
323
- nextIcon: /*#__PURE__*/ _jsx(CustomArrow, {
324
- style: {
325
- transform: "rotate(-90deg)"
326
- }
327
- }),
328
- superPrevIcon: /*#__PURE__*/ _jsx(CustomArrow, {
329
- style: {
330
- transform: "rotate(90deg)"
331
- }
332
- }),
333
- superNextIcon: /*#__PURE__*/ _jsx(CustomArrow, {
334
- style: {
335
- transform: "rotate(-90deg)"
336
- }
337
- }),
449
+ value: selectedRangeDate,
450
+ mode: rangePanelMode,
451
+ open: panelOpen,
452
+ disabledDate: selfDisabledDate,
338
453
  onPanelChange: function(value, mode) {
339
454
  setRangePanelMode(mode);
455
+ onPanelChange && onPanelChange(value, mode);
340
456
  },
341
- mode: rangePanelMode,
342
- open: open,
343
457
  onOpenChange: function(value) {
344
458
  if (value) {
345
459
  setDefaultMode();
346
460
  }
461
+ if (showTime) {
462
+ setPanelOpen(value);
463
+ }
347
464
  setRangeOpenChange(value);
465
+ onOpenChange && onOpenChange(value);
348
466
  },
349
- showNow: false,
350
- defaultPickerValue: selectedRangeDate,
351
- value: selectedRangeDate,
352
- onClick: function() {
353
- setOpen(true);
354
- onClick && onClick();
467
+ onClick: function(e) {
468
+ setPanelOpen(true);
469
+ onClick && onClick(e);
355
470
  },
356
471
  onCalendarChange: function(dates, dateStrings, info) {
357
472
  setSelectedRangeDate(dates);
358
473
  setSelectedRangeDateString(dateStrings);
474
+ onCalendarChange && onCalendarChange(dates, dateStrings, info);
359
475
  },
360
- onBlur: function() {
361
- if ((selectedRangeDate === null || selectedRangeDate === void 0 ? void 0 : selectedRangeDate[0]) && (selectedRangeDate === null || selectedRangeDate === void 0 ? void 0 : selectedRangeDate[1])) {
476
+ onBlur: function(e) {
477
+ var _selectedRangeDate, _selectedRangeDate1, _selectedRangeDate2, _selectedRangeDate3;
478
+ if (((_selectedRangeDate = selectedRangeDate) === null || _selectedRangeDate === void 0 ? void 0 : _selectedRangeDate[0]) && ((_selectedRangeDate1 = selectedRangeDate) === null || _selectedRangeDate1 === void 0 ? void 0 : _selectedRangeDate1[1])) {
362
479
  okClick();
363
- setOpen(false);
364
- } else if (!(selectedRangeDate === null || selectedRangeDate === void 0 ? void 0 : selectedRangeDate[0]) || !(selectedRangeDate === null || selectedRangeDate === void 0 ? void 0 : selectedRangeDate[1])) {
365
- setOpen(rangeOpenChange);
480
+ setPanelOpen(false);
481
+ } else if (!((_selectedRangeDate2 = selectedRangeDate) === null || _selectedRangeDate2 === void 0 ? void 0 : _selectedRangeDate2[0]) || !((_selectedRangeDate3 = selectedRangeDate) === null || _selectedRangeDate3 === void 0 ? void 0 : _selectedRangeDate3[1])) {
482
+ setPanelOpen(rangeOpenChange);
366
483
  }
367
- onBlur && onBlur();
368
- },
369
- panelRender: function(panelNode) {
370
- return panelNode;
371
- },
372
- renderExtraFooter: renderExtraFooter
373
- }))
374
- }),
375
- kind === "extra" && /*#__PURE__*/ _jsx(DatePicker, _object_spread_props(_object_spread({}, getConfig()), {
376
- className: "".concat(className, " ").concat(useType === "table" ? "hide" : ""),
377
- popupClassName: "".concat(styles.bhdDatePickerPopup, " ").concat(styles.extraPicker, " ").concat(extraReadonly ? styles.readonly : "", " ").concat(popupClassName || ""),
378
- cellRender: cellRender,
379
- prevIcon: /*#__PURE__*/ _jsx(CustomArrow, {
380
- style: {
381
- transform: "rotate(90deg)"
382
- }
383
- }),
384
- nextIcon: /*#__PURE__*/ _jsx(CustomArrow, {
385
- style: {
386
- transform: "rotate(-90deg)"
387
- }
388
- }),
389
- superPrevIcon: /*#__PURE__*/ _jsx(CustomArrow, {
390
- style: {
391
- transform: "rotate(90deg)"
484
+ onBlur && onBlur(e);
392
485
  }
393
- }),
394
- superNextIcon: /*#__PURE__*/ _jsx(CustomArrow, {
395
- style: {
396
- transform: "rotate(-90deg)"
397
- }
398
- }),
399
- disabledDate: disabledDate,
400
- allowClear: !extraReadonly,
401
- onPanelChange: function(value, mode) {
402
- setPanelMode(mode);
403
- },
404
- mode: panelMode,
405
- onOpenChange: function(value) {
406
- if (value) {
407
- setDefaultMode();
408
- }
409
- },
410
- open: open,
411
- showNow: false,
412
- defaultPickerValue: selectedDate,
413
- value: selectedDate,
414
- onChange: function(date, dateString) {
415
- setSelectedDate(date);
416
- setSelectedDateString(dateString);
417
- },
418
- onClick: function() {
419
- setOpen(true);
420
- onClick && onClick();
421
- },
422
- onBlur: function() {
423
- if (!extraReadonly) {
424
- okClick();
425
- }
426
- setOpen(false);
427
- onBlur && onBlur();
428
- },
429
- renderExtraFooter: extraReadonly ? null : renderExtraFooter
430
- }))
486
+ }))
487
+ })
431
488
  ]
432
489
  });
433
490
  };