bhd-components 0.9.0 → 0.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (194) hide show
  1. package/dist/{f8c2008a.esm.es5.development.js → a5565b8a.esm.es5.development.js} +9382 -1289
  2. package/dist/deb6cc9b.esm.es5.production.js +485 -0
  3. package/dist/index.esm.es5.development.css +2278 -1580
  4. package/dist/index.esm.es5.development.js +4454 -221
  5. package/dist/index.esm.es5.production.css +1 -1
  6. package/dist/index.esm.es5.production.js +1 -1
  7. package/es2017/bhdDatePicker/index.d.ts +0 -1
  8. package/es2017/bhdDatePicker/index.js +238 -171
  9. package/es2017/bhdDatePicker/index.module.less +81 -46
  10. package/es2017/customerService/index.js +122 -23
  11. package/es2017/customerService/js-screen-shot/assets/less/screen-shot.less +478 -0
  12. package/es2017/customerService/js-screen-shot/lib/common-methods/CanvasPatch.d.ts +1 -0
  13. package/es2017/customerService/js-screen-shot/lib/common-methods/CanvasPatch.js +15 -0
  14. package/es2017/customerService/js-screen-shot/lib/common-methods/DeviceTypeVerif.d.ts +2 -0
  15. package/es2017/customerService/js-screen-shot/lib/common-methods/DeviceTypeVerif.js +32 -0
  16. package/es2017/customerService/js-screen-shot/lib/common-methods/FixedData.d.ts +11 -0
  17. package/es2017/customerService/js-screen-shot/lib/common-methods/FixedData.js +17 -0
  18. package/es2017/customerService/js-screen-shot/lib/common-methods/GetBrushSelectedName.d.ts +5 -0
  19. package/es2017/customerService/js-screen-shot/lib/common-methods/GetBrushSelectedName.js +18 -0
  20. package/es2017/customerService/js-screen-shot/lib/common-methods/GetCanvasImgData.d.ts +4 -0
  21. package/es2017/customerService/js-screen-shot/lib/common-methods/GetCanvasImgData.js +25 -0
  22. package/es2017/customerService/js-screen-shot/lib/common-methods/GetColor.d.ts +1 -0
  23. package/es2017/customerService/js-screen-shot/lib/common-methods/GetColor.js +41 -0
  24. package/es2017/customerService/js-screen-shot/lib/common-methods/GetSelectedCalssName.d.ts +1 -0
  25. package/es2017/customerService/js-screen-shot/lib/common-methods/GetSelectedCalssName.js +23 -0
  26. package/es2017/customerService/js-screen-shot/lib/common-methods/GetToolRelativePosition.d.ts +7 -0
  27. package/es2017/customerService/js-screen-shot/lib/common-methods/GetToolRelativePosition.js +9 -0
  28. package/es2017/customerService/js-screen-shot/lib/common-methods/ImgScaling.d.ts +11 -0
  29. package/es2017/customerService/js-screen-shot/lib/common-methods/ImgScaling.js +41 -0
  30. package/es2017/customerService/js-screen-shot/lib/common-methods/SaveBorderArrInfo.d.ts +8 -0
  31. package/es2017/customerService/js-screen-shot/lib/common-methods/SaveBorderArrInfo.js +125 -0
  32. package/es2017/customerService/js-screen-shot/lib/common-methods/SaveCanvasToBase64.d.ts +1 -0
  33. package/es2017/customerService/js-screen-shot/lib/common-methods/SaveCanvasToBase64.js +37 -0
  34. package/es2017/customerService/js-screen-shot/lib/common-methods/SaveCanvasToImage.d.ts +1 -0
  35. package/es2017/customerService/js-screen-shot/lib/common-methods/SaveCanvasToImage.js +26 -0
  36. package/es2017/customerService/js-screen-shot/lib/common-methods/SelectColor.d.ts +1 -0
  37. package/es2017/customerService/js-screen-shot/lib/common-methods/SelectColor.js +6 -0
  38. package/es2017/customerService/js-screen-shot/lib/common-methods/SelectTextSize.d.ts +5 -0
  39. package/es2017/customerService/js-screen-shot/lib/common-methods/SelectTextSize.js +26 -0
  40. package/es2017/customerService/js-screen-shot/lib/common-methods/SetBrushSize.d.ts +14 -0
  41. package/es2017/customerService/js-screen-shot/lib/common-methods/SetBrushSize.js +50 -0
  42. package/es2017/customerService/js-screen-shot/lib/common-methods/SetSelectedClassName.d.ts +7 -0
  43. package/es2017/customerService/js-screen-shot/lib/common-methods/SetSelectedClassName.js +28 -0
  44. package/es2017/customerService/js-screen-shot/lib/common-methods/TakeOutHistory.d.ts +1 -0
  45. package/es2017/customerService/js-screen-shot/lib/common-methods/TakeOutHistory.js +20 -0
  46. package/es2017/customerService/js-screen-shot/lib/common-methods/UpdateContainerMouseStyle.d.ts +1 -0
  47. package/es2017/customerService/js-screen-shot/lib/common-methods/UpdateContainerMouseStyle.js +10 -0
  48. package/es2017/customerService/js-screen-shot/lib/common-methods/ZoomCutOutBoxPosition.d.ts +17 -0
  49. package/es2017/customerService/js-screen-shot/lib/common-methods/ZoomCutOutBoxPosition.js +92 -0
  50. package/es2017/customerService/js-screen-shot/lib/config/Toolbar.d.ts +5 -0
  51. package/es2017/customerService/js-screen-shot/lib/config/Toolbar.js +46 -0
  52. package/es2017/customerService/js-screen-shot/lib/main-entrance/CreateDom.d.ts +24 -0
  53. package/es2017/customerService/js-screen-shot/lib/main-entrance/CreateDom.js +304 -0
  54. package/es2017/customerService/js-screen-shot/lib/main-entrance/InitData.d.ts +78 -0
  55. package/es2017/customerService/js-screen-shot/lib/main-entrance/InitData.js +538 -0
  56. package/es2017/customerService/js-screen-shot/lib/main-entrance/PlugInParameters.d.ts +46 -0
  57. package/es2017/customerService/js-screen-shot/lib/main-entrance/PlugInParameters.js +162 -0
  58. package/es2017/customerService/js-screen-shot/lib/split-methods/AddHistoryData.d.ts +1 -0
  59. package/es2017/customerService/js-screen-shot/lib/split-methods/AddHistoryData.js +23 -0
  60. package/es2017/customerService/js-screen-shot/lib/split-methods/BoundaryJudgment.d.ts +8 -0
  61. package/es2017/customerService/js-screen-shot/lib/split-methods/BoundaryJudgment.js +13 -0
  62. package/es2017/customerService/js-screen-shot/lib/split-methods/CalculateOptionIcoPosition.d.ts +5 -0
  63. package/es2017/customerService/js-screen-shot/lib/split-methods/CalculateOptionIcoPosition.js +21 -0
  64. package/es2017/customerService/js-screen-shot/lib/split-methods/CalculateToolLocation.d.ts +16 -0
  65. package/es2017/customerService/js-screen-shot/lib/split-methods/CalculateToolLocation.js +39 -0
  66. package/es2017/customerService/js-screen-shot/lib/split-methods/DrawArrow.d.ts +31 -0
  67. package/es2017/customerService/js-screen-shot/lib/split-methods/DrawArrow.js +131 -0
  68. package/es2017/customerService/js-screen-shot/lib/split-methods/DrawCircle.d.ts +11 -0
  69. package/es2017/customerService/js-screen-shot/lib/split-methods/DrawCircle.js +37 -0
  70. package/es2017/customerService/js-screen-shot/lib/split-methods/DrawCutOutBox.d.ts +19 -0
  71. package/es2017/customerService/js-screen-shot/lib/split-methods/DrawCutOutBox.js +118 -0
  72. package/es2017/customerService/js-screen-shot/lib/split-methods/DrawLineArrow.d.ts +13 -0
  73. package/es2017/customerService/js-screen-shot/lib/split-methods/DrawLineArrow.js +51 -0
  74. package/es2017/customerService/js-screen-shot/lib/split-methods/DrawMasking.d.ts +6 -0
  75. package/es2017/customerService/js-screen-shot/lib/split-methods/DrawMasking.js +41 -0
  76. package/es2017/customerService/js-screen-shot/lib/split-methods/DrawMosaic.d.ts +12 -0
  77. package/es2017/customerService/js-screen-shot/lib/split-methods/DrawMosaic.js +67 -0
  78. package/es2017/customerService/js-screen-shot/lib/split-methods/DrawPencil.d.ts +13 -0
  79. package/es2017/customerService/js-screen-shot/lib/split-methods/DrawPencil.js +27 -0
  80. package/es2017/customerService/js-screen-shot/lib/split-methods/DrawRectangle.d.ts +11 -0
  81. package/es2017/customerService/js-screen-shot/lib/split-methods/DrawRectangle.js +22 -0
  82. package/es2017/customerService/js-screen-shot/lib/split-methods/DrawText.d.ts +10 -0
  83. package/es2017/customerService/js-screen-shot/lib/split-methods/DrawText.js +24 -0
  84. package/es2017/customerService/js-screen-shot/lib/split-methods/KeyboardEventHandle.d.ts +10 -0
  85. package/es2017/customerService/js-screen-shot/lib/split-methods/KeyboardEventHandle.js +50 -0
  86. package/es2017/customerService/js-screen-shot/lib/split-methods/SetPlugInParameters.d.ts +2 -0
  87. package/es2017/customerService/js-screen-shot/lib/split-methods/SetPlugInParameters.js +61 -0
  88. package/es2017/customerService/js-screen-shot/lib/split-methods/ToolClickEvent.d.ts +1 -0
  89. package/es2017/customerService/js-screen-shot/lib/split-methods/ToolClickEvent.js +132 -0
  90. package/es2017/customerService/js-screen-shot/lib/split-methods/drawCrossImg.d.ts +1 -0
  91. package/es2017/customerService/js-screen-shot/lib/split-methods/drawCrossImg.js +32 -0
  92. package/es2017/customerService/js-screen-shot/lib/type/ComponentType.d.ts +133 -0
  93. package/es2017/customerService/js-screen-shot/lib/type/ComponentType.js +2 -0
  94. package/es2017/customerService/js-screen-shot/main.d.ts +110 -0
  95. package/es2017/customerService/js-screen-shot/main.js +1098 -0
  96. package/es2017/customerService/screenShotPlugin.esm.js +6515 -0
  97. package/es2017/customerService/screenshotTool.d.ts +1 -0
  98. package/es2017/customerService/screenshotTool.js +23 -15
  99. package/es2017/theme/variable.less +27 -0
  100. package/esm/bhdDatePicker/index.d.ts +0 -1
  101. package/esm/bhdDatePicker/index.js +242 -175
  102. package/esm/bhdDatePicker/index.module.less +81 -46
  103. package/esm/customerService/index.js +127 -27
  104. package/esm/customerService/js-screen-shot/assets/less/screen-shot.less +478 -0
  105. package/esm/customerService/js-screen-shot/lib/common-methods/CanvasPatch.d.ts +1 -0
  106. package/esm/customerService/js-screen-shot/lib/common-methods/CanvasPatch.js +15 -0
  107. package/esm/customerService/js-screen-shot/lib/common-methods/DeviceTypeVerif.d.ts +2 -0
  108. package/esm/customerService/js-screen-shot/lib/common-methods/DeviceTypeVerif.js +32 -0
  109. package/esm/customerService/js-screen-shot/lib/common-methods/FixedData.d.ts +11 -0
  110. package/esm/customerService/js-screen-shot/lib/common-methods/FixedData.js +17 -0
  111. package/esm/customerService/js-screen-shot/lib/common-methods/GetBrushSelectedName.d.ts +5 -0
  112. package/esm/customerService/js-screen-shot/lib/common-methods/GetBrushSelectedName.js +18 -0
  113. package/esm/customerService/js-screen-shot/lib/common-methods/GetCanvasImgData.d.ts +4 -0
  114. package/esm/customerService/js-screen-shot/lib/common-methods/GetCanvasImgData.js +25 -0
  115. package/esm/customerService/js-screen-shot/lib/common-methods/GetColor.d.ts +1 -0
  116. package/esm/customerService/js-screen-shot/lib/common-methods/GetColor.js +41 -0
  117. package/esm/customerService/js-screen-shot/lib/common-methods/GetSelectedCalssName.d.ts +1 -0
  118. package/esm/customerService/js-screen-shot/lib/common-methods/GetSelectedCalssName.js +23 -0
  119. package/esm/customerService/js-screen-shot/lib/common-methods/GetToolRelativePosition.d.ts +7 -0
  120. package/esm/customerService/js-screen-shot/lib/common-methods/GetToolRelativePosition.js +10 -0
  121. package/esm/customerService/js-screen-shot/lib/common-methods/ImgScaling.d.ts +11 -0
  122. package/esm/customerService/js-screen-shot/lib/common-methods/ImgScaling.js +38 -0
  123. package/esm/customerService/js-screen-shot/lib/common-methods/SaveBorderArrInfo.d.ts +8 -0
  124. package/esm/customerService/js-screen-shot/lib/common-methods/SaveBorderArrInfo.js +125 -0
  125. package/esm/customerService/js-screen-shot/lib/common-methods/SaveCanvasToBase64.d.ts +1 -0
  126. package/esm/customerService/js-screen-shot/lib/common-methods/SaveCanvasToBase64.js +37 -0
  127. package/esm/customerService/js-screen-shot/lib/common-methods/SaveCanvasToImage.d.ts +1 -0
  128. package/esm/customerService/js-screen-shot/lib/common-methods/SaveCanvasToImage.js +26 -0
  129. package/esm/customerService/js-screen-shot/lib/common-methods/SelectColor.d.ts +1 -0
  130. package/esm/customerService/js-screen-shot/lib/common-methods/SelectColor.js +6 -0
  131. package/esm/customerService/js-screen-shot/lib/common-methods/SelectTextSize.d.ts +5 -0
  132. package/esm/customerService/js-screen-shot/lib/common-methods/SelectTextSize.js +26 -0
  133. package/esm/customerService/js-screen-shot/lib/common-methods/SetBrushSize.d.ts +14 -0
  134. package/esm/customerService/js-screen-shot/lib/common-methods/SetBrushSize.js +50 -0
  135. package/esm/customerService/js-screen-shot/lib/common-methods/SetSelectedClassName.d.ts +7 -0
  136. package/esm/customerService/js-screen-shot/lib/common-methods/SetSelectedClassName.js +28 -0
  137. package/esm/customerService/js-screen-shot/lib/common-methods/TakeOutHistory.d.ts +1 -0
  138. package/esm/customerService/js-screen-shot/lib/common-methods/TakeOutHistory.js +20 -0
  139. package/esm/customerService/js-screen-shot/lib/common-methods/UpdateContainerMouseStyle.d.ts +1 -0
  140. package/esm/customerService/js-screen-shot/lib/common-methods/UpdateContainerMouseStyle.js +10 -0
  141. package/esm/customerService/js-screen-shot/lib/common-methods/ZoomCutOutBoxPosition.d.ts +17 -0
  142. package/esm/customerService/js-screen-shot/lib/common-methods/ZoomCutOutBoxPosition.js +92 -0
  143. package/esm/customerService/js-screen-shot/lib/config/Toolbar.d.ts +5 -0
  144. package/esm/customerService/js-screen-shot/lib/config/Toolbar.js +46 -0
  145. package/esm/customerService/js-screen-shot/lib/main-entrance/CreateDom.d.ts +24 -0
  146. package/esm/customerService/js-screen-shot/lib/main-entrance/CreateDom.js +345 -0
  147. package/esm/customerService/js-screen-shot/lib/main-entrance/InitData.d.ts +78 -0
  148. package/esm/customerService/js-screen-shot/lib/main-entrance/InitData.js +758 -0
  149. package/esm/customerService/js-screen-shot/lib/main-entrance/PlugInParameters.d.ts +46 -0
  150. package/esm/customerService/js-screen-shot/lib/main-entrance/PlugInParameters.js +259 -0
  151. package/esm/customerService/js-screen-shot/lib/split-methods/AddHistoryData.d.ts +1 -0
  152. package/esm/customerService/js-screen-shot/lib/split-methods/AddHistoryData.js +23 -0
  153. package/esm/customerService/js-screen-shot/lib/split-methods/BoundaryJudgment.d.ts +8 -0
  154. package/esm/customerService/js-screen-shot/lib/split-methods/BoundaryJudgment.js +13 -0
  155. package/esm/customerService/js-screen-shot/lib/split-methods/CalculateOptionIcoPosition.d.ts +5 -0
  156. package/esm/customerService/js-screen-shot/lib/split-methods/CalculateOptionIcoPosition.js +21 -0
  157. package/esm/customerService/js-screen-shot/lib/split-methods/CalculateToolLocation.d.ts +16 -0
  158. package/esm/customerService/js-screen-shot/lib/split-methods/CalculateToolLocation.js +39 -0
  159. package/esm/customerService/js-screen-shot/lib/split-methods/DrawArrow.d.ts +31 -0
  160. package/esm/customerService/js-screen-shot/lib/split-methods/DrawArrow.js +159 -0
  161. package/esm/customerService/js-screen-shot/lib/split-methods/DrawCircle.d.ts +11 -0
  162. package/esm/customerService/js-screen-shot/lib/split-methods/DrawCircle.js +37 -0
  163. package/esm/customerService/js-screen-shot/lib/split-methods/DrawCutOutBox.d.ts +19 -0
  164. package/esm/customerService/js-screen-shot/lib/split-methods/DrawCutOutBox.js +119 -0
  165. package/esm/customerService/js-screen-shot/lib/split-methods/DrawLineArrow.d.ts +13 -0
  166. package/esm/customerService/js-screen-shot/lib/split-methods/DrawLineArrow.js +51 -0
  167. package/esm/customerService/js-screen-shot/lib/split-methods/DrawMasking.d.ts +6 -0
  168. package/esm/customerService/js-screen-shot/lib/split-methods/DrawMasking.js +41 -0
  169. package/esm/customerService/js-screen-shot/lib/split-methods/DrawMosaic.d.ts +12 -0
  170. package/esm/customerService/js-screen-shot/lib/split-methods/DrawMosaic.js +67 -0
  171. package/esm/customerService/js-screen-shot/lib/split-methods/DrawPencil.d.ts +13 -0
  172. package/esm/customerService/js-screen-shot/lib/split-methods/DrawPencil.js +27 -0
  173. package/esm/customerService/js-screen-shot/lib/split-methods/DrawRectangle.d.ts +11 -0
  174. package/esm/customerService/js-screen-shot/lib/split-methods/DrawRectangle.js +22 -0
  175. package/esm/customerService/js-screen-shot/lib/split-methods/DrawText.d.ts +10 -0
  176. package/esm/customerService/js-screen-shot/lib/split-methods/DrawText.js +24 -0
  177. package/esm/customerService/js-screen-shot/lib/split-methods/KeyboardEventHandle.d.ts +10 -0
  178. package/esm/customerService/js-screen-shot/lib/split-methods/KeyboardEventHandle.js +61 -0
  179. package/esm/customerService/js-screen-shot/lib/split-methods/SetPlugInParameters.d.ts +2 -0
  180. package/esm/customerService/js-screen-shot/lib/split-methods/SetPlugInParameters.js +62 -0
  181. package/esm/customerService/js-screen-shot/lib/split-methods/ToolClickEvent.d.ts +1 -0
  182. package/esm/customerService/js-screen-shot/lib/split-methods/ToolClickEvent.js +132 -0
  183. package/esm/customerService/js-screen-shot/lib/split-methods/drawCrossImg.d.ts +1 -0
  184. package/esm/customerService/js-screen-shot/lib/split-methods/drawCrossImg.js +32 -0
  185. package/esm/customerService/js-screen-shot/lib/type/ComponentType.d.ts +133 -0
  186. package/esm/customerService/js-screen-shot/lib/type/ComponentType.js +2 -0
  187. package/esm/customerService/js-screen-shot/main.d.ts +110 -0
  188. package/esm/customerService/js-screen-shot/main.js +1201 -0
  189. package/esm/customerService/screenShotPlugin.esm.js +6516 -0
  190. package/esm/customerService/screenshotTool.d.ts +1 -0
  191. package/esm/customerService/screenshotTool.js +21 -13
  192. package/esm/theme/variable.less +27 -0
  193. package/package.json +20 -2
  194. package/dist/256789e0.esm.es5.production.js +0 -468
@@ -9,7 +9,6 @@ interface BhdDatePickerProps {
9
9
  [key: string]: any;
10
10
  kind: "single" | "range" | "extra";
11
11
  useType?: string;
12
- label?: React.ReactNode;
13
12
  extraItems?: BhdDateExtraPicker[];
14
13
  extraReadonly?: boolean;
15
14
  }
@@ -2,22 +2,68 @@ 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, useRef } from "react";
5
+ import { useState, useEffect, useRef } from "react";
6
6
  import styles from "./index.module.less";
7
7
  import { Button, DatePicker } from "antd";
8
- import { CustomArrow, CalendarOutlined } from "../icons/index";
8
+ import { CustomArrow } from "../icons/index";
9
9
  import dayjs from "dayjs";
10
10
  const { RangePicker } = DatePicker;
11
+ let months = [
12
+ "一",
13
+ "二",
14
+ "三",
15
+ "四",
16
+ "五",
17
+ "六",
18
+ "七",
19
+ "八",
20
+ "九",
21
+ "十",
22
+ "十一",
23
+ "十二"
24
+ ];
11
25
  const BhdDatePicker = (props)=>{
12
- let { kind ="single" , value =props.kind === "range" ? [] : "" , extraItems , extraReadonly =false , picker , useType ="" , label ="" , className , popupClassName , showTime , showNow =true , onClick , onBlur , onChange , onOk , presets =[] } = 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
27
  const bhdDatePickerRef = useRef(null);
14
28
  const [open, setOpen] = useState(false);
29
+ const [panelMode, setPanelMode] = useState("date");
30
+ const [rangePanelMode, setRangePanelMode] = useState([
31
+ "date",
32
+ "date"
33
+ ]);
15
34
  const [selectedDate, setSelectedDate] = useState(value);
16
35
  const [selectedDateString, setSelectedDateString] = useState(null);
17
36
  const selectedDateRef = useRef(value);
18
37
  const selectedDateStringRef = useRef(null);
19
38
  const [selectedRangeDate, setSelectedRangeDate] = useState(value);
20
39
  const [selectedRangeDateString, setSelectedRangeDateString] = useState([]);
40
+ const [rangeOpenChange, setRangeOpenChange] = useState(false); // 用于范围选择失去焦点后,判断是否关闭
41
+ const timer = useRef(null);
42
+ useEffect(()=>{
43
+ 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);
59
+ }
60
+ return ()=>{
61
+ clearTimeout(timer.current);
62
+ };
63
+ }, [
64
+ open,
65
+ panelMode
66
+ ]);
21
67
  const getConfig = ()=>{
22
68
  let config = _object_spread({}, props);
23
69
  delete config.cellRender;
@@ -36,6 +82,7 @@ const BhdDatePicker = (props)=>{
36
82
  delete config.onOk;
37
83
  delete config.onChange;
38
84
  delete config.presets;
85
+ delete config.mode;
39
86
  if (kind === "single" || kind === "extra") {
40
87
  delete config.value;
41
88
  }
@@ -47,43 +94,57 @@ const BhdDatePicker = (props)=>{
47
94
  }
48
95
  return config;
49
96
  };
97
+ // 设置默认mode
98
+ const setDefaultMode = ()=>{
99
+ if (kind === "range") {
100
+ setRangePanelMode([
101
+ picker || "date",
102
+ picker || "date"
103
+ ]);
104
+ } else {
105
+ setPanelMode(picker || "date");
106
+ }
107
+ };
50
108
  //单元格渲染
51
109
  const cellRender = (current, info)=>{
52
- if (info.type !== "date") {
53
- return info.originNode;
110
+ if (info.type === "date") {
111
+ let extraItem = null;
112
+ if (kind === "extra") {
113
+ extraItem = extraItems === null || extraItems === void 0 ? void 0 : extraItems.find((item)=>item.date.format("YYYYMMDD") === current.format("YYYYMMDD"));
114
+ }
115
+ return /*#__PURE__*/ _jsx(_Fragment, {
116
+ children: /*#__PURE__*/ _jsxs("div", {
117
+ className: `${"bhd-picker-cell-inner"}`,
118
+ children: [
119
+ current.format("DD"),
120
+ kind === "extra" && extraItem && /*#__PURE__*/ _jsx("div", {
121
+ className: `extraText ${extraItem.status}`,
122
+ children: extraItem.text
123
+ })
124
+ ]
125
+ })
126
+ });
54
127
  }
55
- if (typeof current === "number" || typeof current === "string") {
128
+ if (info.type === "month") {
56
129
  return /*#__PURE__*/ _jsx("div", {
57
- className: "bhd-picker-cell-inner",
58
- children: current
130
+ className: `${"bhd-picker-cell-inner"}`,
131
+ children: months[Number(current.format("M")) - 1] + "月"
59
132
  });
60
133
  }
61
- let extraItem = null;
62
- if (kind === "extra") {
63
- extraItem = extraItems === null || extraItems === void 0 ? void 0 : extraItems.find((item)=>item.date.format("YYYYMMDD") === current.format("YYYYMMDD"));
64
- }
65
- return /*#__PURE__*/ _jsx(_Fragment, {
66
- children: /*#__PURE__*/ _jsxs("div", {
67
- className: "bhd-picker-cell-inner",
68
- children: [
69
- current.format("DD"),
70
- kind === "extra" && extraItem && /*#__PURE__*/ _jsx("div", {
71
- className: `extraText ${extraItem.status}`,
72
- children: extraItem.text
73
- })
74
- ]
75
- })
76
- });
134
+ return info.originNode;
77
135
  };
78
136
  //日期禁用
79
137
  const disabledDate = (current)=>{
80
- if (extraReadonly) {
81
- return true;
82
- }
138
+ // if (extraReadonly) {
139
+ // return true;
140
+ // }
83
141
  // 不能选择的是没有日程安排的
84
142
  let extraItem = null;
85
143
  if (kind === "extra") {
86
144
  extraItem = extraItems === null || extraItems === void 0 ? void 0 : extraItems.find((item)=>item.date.format("YYYYMMDD") === current.format("YYYYMMDD"));
145
+ if (extraReadonly && extraItem) {
146
+ return false;
147
+ }
87
148
  }
88
149
  return !extraItem || current && extraItem.status === "noselectable";
89
150
  };
@@ -93,7 +154,7 @@ const BhdDatePicker = (props)=>{
93
154
  className: "bhd-picker-ranges",
94
155
  children: [
95
156
  renderPresets(),
96
- 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", {
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", {
97
158
  className: "bhd-picker-now",
98
159
  children: /*#__PURE__*/ _jsx("a", {
99
160
  className: "bhd-picker-now-btn",
@@ -120,23 +181,25 @@ const BhdDatePicker = (props)=>{
120
181
  const renderPresets = ()=>{
121
182
  return /*#__PURE__*/ _jsx("li", {
122
183
  className: "bhd-picker-presets",
123
- children: presets.map((item)=>{
184
+ children: presets.map((item, index)=>{
124
185
  return /*#__PURE__*/ _jsx("a", {
125
186
  className: "bhd-picker-preset-btn",
126
187
  onClick: ()=>{
127
188
  presetClick(item.value);
128
189
  },
129
190
  children: item.label
130
- });
191
+ }, index);
131
192
  })
132
193
  });
133
194
  };
134
195
  // 日期选择确认
135
196
  const okClick = ()=>{
136
197
  if (kind === "range") {
137
- if (selectedRangeDate && selectedRangeDateString) {
198
+ if (selectedRangeDate[0] && selectedRangeDate[1] && selectedRangeDateString[0] && selectedRangeDateString[1]) {
138
199
  onChange && onChange(selectedRangeDate, selectedRangeDateString);
139
200
  setOpen(false);
201
+ } else {
202
+ setOpen(true);
140
203
  }
141
204
  } else {
142
205
  if (selectedDate && selectedDateString) {
@@ -161,148 +224,146 @@ const BhdDatePicker = (props)=>{
161
224
  onChange && onChange(value, todayString);
162
225
  setOpen(false);
163
226
  };
164
- return /*#__PURE__*/ _jsxs("div", {
227
+ return /*#__PURE__*/ _jsxs("span", {
165
228
  className: `${styles.bhdDatePicker}`,
166
229
  ref: bhdDatePickerRef,
167
230
  children: [
168
- kind === "single" && /*#__PURE__*/ _jsxs(_Fragment, {
169
- children: [
170
- useType === "table" && /*#__PURE__*/ _jsxs("span", {
171
- className: styles.pickerLabel,
172
- onClick: ()=>{
173
- setOpen(true);
174
- },
175
- children: [
176
- label,
177
- /*#__PURE__*/ _jsx(CalendarOutlined, {})
178
- ]
231
+ kind === "single" && /*#__PURE__*/ _jsx(_Fragment, {
232
+ 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
+ }
179
241
  }),
180
- /*#__PURE__*/ _jsx(DatePicker, _object_spread_props(_object_spread({}, getConfig()), {
181
- className: `${className} ${useType === "table" ? "hide" : ""}`,
182
- popupClassName: `${styles.bhdDatePickerPopup} ${styles.singlePicker} ${popupClassName || ""}`,
183
- cellRender: cellRender,
184
- prevIcon: /*#__PURE__*/ _jsx(CustomArrow, {
185
- style: {
186
- transform: "rotate(90deg)"
187
- }
188
- }),
189
- nextIcon: /*#__PURE__*/ _jsx(CustomArrow, {
190
- style: {
191
- transform: "rotate(-90deg)"
192
- }
193
- }),
194
- superPrevIcon: /*#__PURE__*/ _jsx(CustomArrow, {
195
- style: {
196
- transform: "rotate(90deg)"
197
- }
198
- }),
199
- superNextIcon: /*#__PURE__*/ _jsx(CustomArrow, {
200
- style: {
201
- transform: "rotate(-90deg)"
202
- }
203
- }),
204
- open: open,
205
- showNow: showTime ? showNow : false,
206
- value: selectedDate,
207
- onChange: (date, dateString)=>{
208
- setSelectedDate((prevState)=>{
209
- selectedDateRef.current = date;
210
- return selectedDateRef.current;
211
- });
212
- setSelectedDateString((prevState)=>{
213
- selectedDateStringRef.current = dateString;
214
- return selectedDateStringRef.current;
215
- });
216
- console.log({
217
- selectedDate: selectedDateRef.current,
218
- selectedDateString: selectedDateStringRef.current
219
- });
220
- },
221
- onOk: ()=>{
222
- if (showTime) {
223
- setTimeout(()=>{
224
- console.log({
225
- selectedDate: selectedDateRef.current,
226
- selectedDateString: selectedDateStringRef.current
227
- });
228
- onChange && onChange(selectedDateRef.current, selectedDateStringRef.current);
229
- setOpen(false);
230
- }, 0);
231
- }
232
- onOk && onOk();
233
- },
234
- onClick: ()=>{
235
- setOpen(true);
236
- onClick && onClick();
237
- },
238
- onBlur: ()=>{
239
- okClick();
240
- setOpen(false);
241
- onBlur && onBlur();
242
- },
243
- renderExtraFooter: renderExtraFooter
244
- }))
245
- ]
246
- }),
247
- kind === "range" && /*#__PURE__*/ _jsxs(_Fragment, {
248
- children: [
249
- useType === "table" && /*#__PURE__*/ _jsxs("span", {
250
- className: styles.pickerLabel,
251
- onClick: ()=>{
252
- setOpen(true);
253
- },
254
- children: [
255
- label,
256
- /*#__PURE__*/ _jsx(CalendarOutlined, {})
257
- ]
242
+ nextIcon: /*#__PURE__*/ _jsx(CustomArrow, {
243
+ style: {
244
+ transform: "rotate(-90deg)"
245
+ }
258
246
  }),
259
- /*#__PURE__*/ _jsx(RangePicker, _object_spread_props(_object_spread({}, getConfig()), {
260
- className: `${className} ${useType === "table" ? "hide" : ""}`,
261
- popupClassName: `${styles.bhdDatePickerPopup} ${styles.rangePicker} ${popupClassName || ""}`,
262
- cellRender: cellRender,
263
- prevIcon: /*#__PURE__*/ _jsx(CustomArrow, {
264
- style: {
265
- transform: "rotate(90deg)"
266
- }
267
- }),
268
- nextIcon: /*#__PURE__*/ _jsx(CustomArrow, {
269
- style: {
270
- transform: "rotate(-90deg)"
271
- }
272
- }),
273
- superPrevIcon: /*#__PURE__*/ _jsx(CustomArrow, {
274
- style: {
275
- transform: "rotate(90deg)"
276
- }
277
- }),
278
- superNextIcon: /*#__PURE__*/ _jsx(CustomArrow, {
279
- style: {
280
- transform: "rotate(-90deg)"
281
- }
282
- }),
283
- open: open,
284
- showNow: false,
285
- value: selectedRangeDate,
286
- onClick: ()=>{
287
- setOpen(true);
288
- onClick && onClick();
289
- },
290
- onCalendarChange: (dates, dateStrings, info)=>{
291
- setSelectedRangeDate(dates);
292
- setSelectedRangeDateString(dateStrings);
293
- },
294
- onBlur: ()=>{
295
- if ((selectedRangeDate === null || selectedRangeDate === void 0 ? void 0 : selectedRangeDate[0]) && (selectedRangeDate === null || selectedRangeDate === void 0 ? void 0 : selectedRangeDate[1])) {
296
- okClick();
297
- setOpen(false);
298
- } else if (!(selectedRangeDate === null || selectedRangeDate === void 0 ? void 0 : selectedRangeDate[0]) && !(selectedRangeDate === null || selectedRangeDate === void 0 ? void 0 : selectedRangeDate[1])) {
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
+ }),
257
+ onPanelChange: (value, mode)=>{
258
+ setPanelMode(mode);
259
+ },
260
+ mode: panelMode,
261
+ open: open,
262
+ onOpenChange: (value)=>{
263
+ // 打开设置默认mode
264
+ if (value) {
265
+ setDefaultMode();
266
+ }
267
+ },
268
+ showNow: showTime ? showNow : false,
269
+ defaultPickerValue: selectedDate,
270
+ value: selectedDate,
271
+ onChange: (date, dateString)=>{
272
+ setSelectedDate((prevState)=>{
273
+ selectedDateRef.current = date;
274
+ return selectedDateRef.current;
275
+ });
276
+ setSelectedDateString((prevState)=>{
277
+ selectedDateStringRef.current = dateString;
278
+ return selectedDateStringRef.current;
279
+ });
280
+ },
281
+ onOk: ()=>{
282
+ if (showTime) {
283
+ setTimeout(()=>{
284
+ console.log({
285
+ selectedDate: selectedDateRef.current,
286
+ selectedDateString: selectedDateStringRef.current
287
+ });
288
+ onChange && onChange(selectedDateRef.current, selectedDateStringRef.current);
299
289
  setOpen(false);
300
- }
301
- onBlur && onBlur();
302
- },
303
- renderExtraFooter: renderExtraFooter
304
- }))
305
- ]
290
+ }, 0);
291
+ }
292
+ onOk && onOk();
293
+ },
294
+ onClick: ()=>{
295
+ setOpen(true);
296
+ onClick && onClick();
297
+ },
298
+ onBlur: ()=>{
299
+ okClick();
300
+ setOpen(false);
301
+ onBlur && onBlur();
302
+ },
303
+ renderExtraFooter: renderExtraFooter
304
+ }))
305
+ }),
306
+ kind === "range" && /*#__PURE__*/ _jsx(_Fragment, {
307
+ 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
+ }),
331
+ onPanelChange: (value, mode)=>{
332
+ setRangePanelMode(mode);
333
+ },
334
+ mode: rangePanelMode,
335
+ open: open,
336
+ onOpenChange: (value)=>{
337
+ if (value) {
338
+ setDefaultMode();
339
+ }
340
+ setRangeOpenChange(value);
341
+ },
342
+ showNow: false,
343
+ defaultPickerValue: selectedRangeDate,
344
+ value: selectedRangeDate,
345
+ onClick: ()=>{
346
+ setOpen(true);
347
+ onClick && onClick();
348
+ },
349
+ onCalendarChange: (dates, dateStrings, info)=>{
350
+ setSelectedRangeDate(dates);
351
+ setSelectedRangeDateString(dateStrings);
352
+ },
353
+ onBlur: ()=>{
354
+ if ((selectedRangeDate === null || selectedRangeDate === void 0 ? void 0 : selectedRangeDate[0]) && (selectedRangeDate === null || selectedRangeDate === void 0 ? void 0 : selectedRangeDate[1])) {
355
+ 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);
359
+ }
360
+ onBlur && onBlur();
361
+ },
362
+ panelRender: (panelNode)=>{
363
+ return panelNode;
364
+ },
365
+ renderExtraFooter: renderExtraFooter
366
+ }))
306
367
  }),
307
368
  kind === "extra" && /*#__PURE__*/ _jsx(DatePicker, _object_spread_props(_object_spread({}, getConfig()), {
308
369
  className: `${className} ${useType === "table" ? "hide" : ""}`,
@@ -330,8 +391,18 @@ const BhdDatePicker = (props)=>{
330
391
  }),
331
392
  disabledDate: disabledDate,
332
393
  allowClear: !extraReadonly,
394
+ onPanelChange: (value, mode)=>{
395
+ setPanelMode(mode);
396
+ },
397
+ mode: panelMode,
398
+ onOpenChange: (value)=>{
399
+ if (value) {
400
+ setDefaultMode();
401
+ }
402
+ },
333
403
  open: open,
334
404
  showNow: false,
405
+ defaultPickerValue: selectedDate,
335
406
  value: selectedDate,
336
407
  onChange: (date, dateString)=>{
337
408
  setSelectedDate(date);
@@ -348,10 +419,6 @@ const BhdDatePicker = (props)=>{
348
419
  setOpen(false);
349
420
  onBlur && onBlur();
350
421
  },
351
- panelRender: (panelNode)=>{
352
- console.log(panelNode);
353
- return panelNode;
354
- },
355
422
  renderExtraFooter: extraReadonly ? null : renderExtraFooter
356
423
  }))
357
424
  ]