bhd-components 0.9.2 → 0.9.3

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