@cloudbase/weda-ui 3.4.3 → 3.4.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 (263) hide show
  1. package/dist/configs/components/chart/bar.json +4 -0
  2. package/dist/configs/components/chart/line.js +14 -10
  3. package/dist/configs/components/chart/pie.json +4 -0
  4. package/dist/configs/components/dataView.js +507 -0
  5. package/dist/configs/components/form/location.json +2 -1
  6. package/dist/configs/components/form/userTreeSelect.json +55 -0
  7. package/dist/configs/components/formdetail.json +12 -2
  8. package/dist/configs/components/grid/col.js +125 -0
  9. package/dist/configs/components/grid/grid.js +131 -0
  10. package/dist/configs/components/grid/row.js +143 -0
  11. package/dist/configs/components/image.js +11 -1
  12. package/dist/configs/components/link.js +11 -1
  13. package/dist/configs/components/listView.js +988 -0
  14. package/dist/configs/components/navigationBar.json +9 -1
  15. package/dist/configs/components/repeater-item.json +17 -0
  16. package/dist/configs/components/repeater.js +125 -0
  17. package/dist/configs/components/table.json +67 -24
  18. package/dist/configs/components/text.js +12 -1
  19. package/dist/configs/components/wd-bubble.js +204 -0
  20. package/dist/configs/components/wd-button.js +417 -0
  21. package/dist/configs/components/wd-divider.js +89 -0
  22. package/dist/configs/components/wd-icon.js +126 -0
  23. package/dist/configs/components/wd-image.js +164 -0
  24. package/dist/configs/components/wd-link.js +234 -0
  25. package/dist/configs/components/wd-table.js +59 -0
  26. package/dist/configs/components/wd-text.js +142 -0
  27. package/dist/configs/components/wxOpenApi/phone.js +2 -2
  28. package/dist/configs/components/wxOpenApi/phoneCode.js +2 -2
  29. package/dist/configs/index.js +34 -3
  30. package/dist/configs/type-utils/index.js +4 -1
  31. package/dist/docs/common/componentList.js +144 -0
  32. package/dist/docs/common/components/classes-view.js +34 -0
  33. package/dist/docs/common/components/event-view.js +46 -0
  34. package/dist/docs/common/components/json-schema-view.js +18 -0
  35. package/dist/docs/common/components/methods-view.js +32 -0
  36. package/dist/docs/common/components/properties-view.js +45 -0
  37. package/dist/docs/common/format.js +60 -35
  38. package/dist/docs/common/helper.js +1 -0
  39. package/dist/docs/common/tableView.js +61 -50
  40. package/dist/enum/index.js +521 -0
  41. package/dist/index.js +1 -1
  42. package/dist/style/index.scss +1 -0
  43. package/dist/web/actions/showMessage/index.css +0 -3
  44. package/dist/web/actions/showMessage/index.js +1 -1
  45. package/dist/web/actions/showModal/index.css +0 -3
  46. package/dist/web/components/button/index.css +2 -5
  47. package/dist/web/components/button/index.js +3 -3
  48. package/dist/web/components/calendar/index.css +29 -32
  49. package/dist/web/components/calendar/index.js +37 -35
  50. package/dist/web/components/carousel/index.css +11 -14
  51. package/dist/web/components/carousel/index.js +3 -1
  52. package/dist/web/components/chart/common/core/eChartBar.js +10 -2
  53. package/dist/web/components/chart/common/core/eChartLine.js +16 -8
  54. package/dist/web/components/chart/common/core/eChartPie.js +2 -1
  55. package/dist/web/components/chart/statisticsCard/index.css +12 -15
  56. package/dist/web/components/chart/statisticsCard/index.js +6 -1
  57. package/dist/web/components/dataView/index.js +3 -3
  58. package/dist/web/components/emptyContent/index.css +26 -0
  59. package/dist/web/components/emptyContent/index.js +46 -0
  60. package/dist/web/components/flow/components/FlowModuleText/index.css +1 -4
  61. package/dist/web/components/flow/components/FlowUserSelect/index.css +29 -32
  62. package/dist/web/components/flow/components/HighlightTextarea/index.css +5 -8
  63. package/dist/web/components/flow/components/UserSelectModel/UserSelect.js +5 -2
  64. package/dist/web/components/flow/components/UserSelectModel/UserSelectMobile.css +1 -4
  65. package/dist/web/components/flow/components/UserSelectModel/UserSelectMobile.js +8 -5
  66. package/dist/web/components/flow/components/WedaUserTransfer/index.css +0 -3
  67. package/dist/web/components/flow/frame/getCommonFlowData.js +3 -1
  68. package/dist/web/components/flow/frame/index.js +18 -1
  69. package/dist/web/components/flow/frame/types.js +6 -0
  70. package/dist/web/components/flow/frame/utils.js +20 -11
  71. package/dist/web/components/flow/modules/basic/Basic.css +3 -6
  72. package/dist/web/components/flow/modules/basic/BasicMobile.css +9 -12
  73. package/dist/web/components/flow/modules/chart/Chart.js +2 -2
  74. package/dist/web/components/flow/modules/chart/index.css +23 -26
  75. package/dist/web/components/flow/modules/chart/isString.js +5 -0
  76. package/dist/web/components/flow/modules/control/ApprovalDrawer.css +44 -47
  77. package/dist/web/components/flow/modules/control/ApprovalPopup.css +34 -37
  78. package/dist/web/components/flow/modules/control/ApprovalPopup.js +10 -6
  79. package/dist/web/components/flow/modules/control/Control.css +7 -10
  80. package/dist/web/components/flow/modules/control/Control.js +4 -1
  81. package/dist/web/components/flow/modules/control/ControlMobile.css +10 -13
  82. package/dist/web/components/flow/modules/control/FlowTaskInfoModal.css +0 -3
  83. package/dist/web/components/flow/modules/control/provider/useControlModel.js +18 -5
  84. package/dist/web/components/flow/modules/layout/index.css +0 -3
  85. package/dist/web/components/flow/modules/process/Process.js +1 -1
  86. package/dist/web/components/flow/modules/process/ProcessMobile.js +1 -1
  87. package/dist/web/components/flow/modules/process/index.css +49 -43
  88. package/dist/web/components/form/form/index.css +2 -5
  89. package/dist/web/components/form/form/index.js +48 -4
  90. package/dist/web/components/form/formcell/index.css +29 -17
  91. package/dist/web/components/form/input/index.css +5 -8
  92. package/dist/web/components/form/input/index.js +11 -0
  93. package/dist/web/components/form/location/common/mapChoose.css +88 -91
  94. package/dist/web/components/form/location/common/selectModal.css +10 -13
  95. package/dist/web/components/form/location/components/LocationH5/index.css +17 -20
  96. package/dist/web/components/form/location/components/LocationH5/location.h5.js +2 -3
  97. package/dist/web/components/form/location/components/LocationH5/location.module.css +0 -3
  98. package/dist/web/components/form/location/components/LocationPC/index.css +10 -13
  99. package/dist/web/components/form/location/components/LocationPC/location.PC.js +2 -3
  100. package/dist/web/components/form/location/index.css +0 -3
  101. package/dist/web/components/form/radio/index.css +0 -3
  102. package/dist/web/components/form/select/allTimePicker/calendar.css +15 -18
  103. package/dist/web/components/form/select/allTimePicker/index.css +53 -27
  104. package/dist/web/components/form/select/dropdown-select/h5.js +22 -11
  105. package/dist/web/components/form/select/dropdown-select/index.css +28 -28
  106. package/dist/web/components/form/select/dropdown-select/index.js +37 -4
  107. package/dist/web/components/form/select/dropdown-select/pc.js +57 -17
  108. package/dist/web/components/form/select/dropdown-select/ui.js +5 -2
  109. package/dist/web/components/form/select/index.css +12 -8
  110. package/dist/web/components/form/select/index.js +2 -2
  111. package/dist/web/components/form/select/status/index.css +10 -13
  112. package/dist/web/components/form/switch/switch.module.css +0 -3
  113. package/dist/web/components/form/textarea/index.css +1 -4
  114. package/dist/web/components/form/tips/index.css +11 -2
  115. package/dist/web/components/form/uploader/index.css +14 -17
  116. package/dist/web/components/form/uploaderFile/index.css +61 -64
  117. package/dist/web/components/form/userOrgSelect/common/fetch-data-service.js +120 -38
  118. package/dist/web/components/form/userOrgSelect/common/utils.js +89 -1
  119. package/dist/web/components/form/userOrgSelect/component/depart-breadcrumb.js +15 -0
  120. package/dist/web/components/form/userOrgSelect/component/depart-select/depart-select-pc.js +63 -0
  121. package/dist/web/components/form/userOrgSelect/component/depart-select/index.js +96 -0
  122. package/dist/web/components/form/userOrgSelect/component/depart-select/org-modal-pc.js +69 -0
  123. package/dist/web/components/form/userOrgSelect/{user-select-pc → component}/error-tips.js +0 -0
  124. package/dist/web/components/form/userOrgSelect/component/index.css +323 -0
  125. package/dist/web/components/form/userOrgSelect/component/input-tags.js +21 -0
  126. package/dist/web/components/form/userOrgSelect/component/modal-search-h5.js +25 -0
  127. package/dist/web/components/form/userOrgSelect/component/modal-search.js +11 -0
  128. package/dist/web/components/form/userOrgSelect/component/modal-select-h5.js +201 -0
  129. package/dist/web/components/form/userOrgSelect/component/org-tree-h5.js +19 -0
  130. package/dist/web/components/form/userOrgSelect/component/org-tree.js +33 -0
  131. package/dist/web/components/form/userOrgSelect/component/selected-list-h5.js +44 -0
  132. package/dist/web/components/form/userOrgSelect/component/selected-list.js +15 -0
  133. package/dist/web/components/form/userOrgSelect/component/user-org-list.js +55 -0
  134. package/dist/web/components/form/userOrgSelect/component/user-select-h5/index.js +151 -0
  135. package/dist/web/components/form/userOrgSelect/component/user-select-h5/user-list-h5.js +107 -0
  136. package/dist/web/components/form/userOrgSelect/component/user-select-h5/user-select-h5.js +50 -0
  137. package/dist/web/components/form/userOrgSelect/component/user-select-pc/error-tips.js +11 -0
  138. package/dist/web/components/form/userOrgSelect/{user-select-pc → component/user-select-pc}/model-user-list.js +9 -9
  139. package/dist/web/components/form/userOrgSelect/component/user-select-pc/org-tree.js +10 -0
  140. package/dist/web/components/form/userOrgSelect/component/user-select-pc/user-model.js +75 -0
  141. package/dist/web/components/form/userOrgSelect/component/user-select-pc/user-select-pc.js +65 -0
  142. package/dist/web/components/form/userOrgSelect/component/userOrgSelect.css +1160 -0
  143. package/dist/web/components/form/userOrgSelect/departTreeSelect/departTreeSelect.h5.js +54 -87
  144. package/dist/web/components/form/userOrgSelect/hooks/use-depart-data.js +30 -35
  145. package/dist/web/components/form/userOrgSelect/hooks/use-views-data.js +48 -0
  146. package/dist/web/components/formdetail/index.css +34 -31
  147. package/dist/web/components/formdetail/index.js +12 -3
  148. package/dist/web/components/graphicCard/index.css +15 -18
  149. package/dist/web/components/grid/_utils.css +67 -0
  150. package/dist/web/components/grid/col.js +33 -0
  151. package/dist/web/components/grid/grid.css +1185 -0
  152. package/dist/web/components/grid/grid.js +19 -0
  153. package/dist/web/components/grid/row.js +14 -0
  154. package/dist/web/components/image/image.js +9 -1
  155. package/dist/web/components/image/index.css +2 -5
  156. package/dist/web/components/index.js +17 -3
  157. package/dist/web/components/link/index.css +0 -3
  158. package/dist/web/components/listView/index.css +21 -23
  159. package/dist/web/components/listView/index.js +171 -34
  160. package/dist/web/components/lottery/index.css +72 -75
  161. package/dist/web/components/modal/h5.css +19 -21
  162. package/dist/web/components/modal/modal.h5.js +11 -10
  163. package/dist/web/components/navLayout/index.css +14 -139
  164. package/dist/web/components/navigationBar/common.js +5 -4
  165. package/dist/web/components/navigationBar/h5Menu.js +12 -10
  166. package/dist/web/components/navigationBar/horizontalMenu.js +42 -35
  167. package/dist/web/components/navigationBar/index.css +130 -86
  168. package/dist/web/components/navigationBar/index.js +6 -4
  169. package/dist/web/components/navigationBar/verticalMenu.js +13 -9
  170. package/dist/web/components/pageLayout/PageContent/index.css +7 -10
  171. package/dist/web/components/pageLayout/index.css +0 -3
  172. package/dist/web/components/pageLayout/index.js +2 -1
  173. package/dist/web/components/repeater/index.js +17 -0
  174. package/dist/web/components/repeater-item/index.js +9 -0
  175. package/dist/web/components/richText/index.css +5 -8
  176. package/dist/web/components/richText/index.js +4 -2
  177. package/dist/web/components/richText/richtext.module.css +1 -4
  178. package/dist/web/components/richTextView/index.css +7 -10
  179. package/dist/web/components/swiper/index.css +10 -13
  180. package/dist/web/components/swiper/index.js +19 -5
  181. package/dist/web/components/table/BaseTable.js +352 -283
  182. package/dist/web/components/table/ExportFileModalByApi/index.css +9 -0
  183. package/dist/web/components/table/ExportFileModalByApi/index.js +150 -0
  184. package/dist/web/components/table/FieldRender.js +25 -18
  185. package/dist/web/components/table/FilterFields.js +17 -11
  186. package/dist/web/components/table/Form/Location.css +2 -5
  187. package/dist/web/components/table/ImportFileModal/csvTemplate.json +65 -6
  188. package/dist/web/components/table/ImportFileModalByApi/index.css +130 -0
  189. package/dist/web/components/table/ImportFileModalByApi/index.js +321 -0
  190. package/dist/web/components/table/ImportFileModalByApi/uploadCSVFile.js +115 -0
  191. package/dist/web/components/table/InOrOutRecordModeal.js +139 -0
  192. package/dist/web/components/table/SelectableBlock/index.css +0 -2
  193. package/dist/web/components/table/UserDepartment/viewCell.css +3 -6
  194. package/dist/web/components/table/baseTable.css +579 -0
  195. package/dist/web/components/table/hooks/useImportingStatus.js +69 -0
  196. package/dist/web/components/table/hooks/useInOutFieldsRecords.js +23 -0
  197. package/dist/web/components/table/index.css +275 -508
  198. package/dist/web/components/table/index.js +6 -4
  199. package/dist/web/components/tabs/index.css +19 -18
  200. package/dist/web/components/tabs/tabs.h5.js +7 -16
  201. package/dist/web/components/text/index.css +6 -9
  202. package/dist/web/components/uploaderFileView/index.css +0 -3
  203. package/dist/web/components/uploaderView/index.css +5 -8
  204. package/dist/web/components/wd-bubble/index.js +3 -17
  205. package/dist/web/components/wd-bubble/wd-bubble.js +17 -0
  206. package/dist/web/components/wd-button/convert-legacy-props.js +14 -0
  207. package/dist/web/components/wd-button/index.js +3 -0
  208. package/dist/web/components/wd-button/wd-button.js +89 -0
  209. package/dist/web/components/wd-config-provider/index.js +1 -0
  210. package/dist/web/components/wd-config-provider/wd-config-context.js +5 -0
  211. package/dist/web/components/wd-config-provider/wd-config-provider.js +12 -0
  212. package/dist/web/components/wd-divider/index.js +3 -0
  213. package/dist/web/components/wd-divider/wd-divider.js +29 -0
  214. package/dist/web/components/wd-icon/convert-legacy-props.js +14 -0
  215. package/dist/web/components/wd-icon/index.js +3 -0
  216. package/dist/web/components/wd-icon/wd-icon.js +63 -0
  217. package/dist/web/components/wd-image/image.js +171 -0
  218. package/dist/web/components/wd-image/index.js +82 -0
  219. package/dist/web/components/wd-link/index.js +3 -0
  220. package/dist/web/components/wd-link/wd-link.js +105 -0
  221. package/dist/web/components/wd-table/index.js +3 -0
  222. package/dist/web/components/wd-table/wd-table.js +24 -0
  223. package/dist/web/components/wd-text/convert-legacy-props.js +14 -0
  224. package/dist/web/components/wd-text/index.js +3 -0
  225. package/dist/web/components/wd-text/wd-text.js +91 -0
  226. package/dist/web/components/wedaVideo/index.css +2 -5
  227. package/dist/web/components/wedaVideo/index.js +8 -6
  228. package/dist/web/index.js +1 -1
  229. package/dist/web/utils/config-context/index.js +1 -0
  230. package/dist/web/utils/config-context/use-config.js +9 -0
  231. package/dist/web/utils/constant.js +1 -0
  232. package/dist/web/utils/datasource.js +19 -7
  233. package/dist/web/utils/file.js +22 -0
  234. package/dist/web/utils/hooks/CreatePortal.js +6 -0
  235. package/dist/web/utils/hooks/EnumHoc.js +23 -3
  236. package/dist/web/utils/hooks/context.js +5 -1
  237. package/dist/web/utils/platform.js +31 -11
  238. package/dist/web/utils/pollingInterface.js +61 -0
  239. package/dist/web/utils/tcb.js +16 -0
  240. package/dist/web/utils/tool.js +88 -0
  241. package/dist/web/utils/widget-api/index.js +18 -0
  242. package/dist/web/weda-ui.css +128 -4
  243. package/package.json +50 -32
  244. package/dist/configs/components/dataView.json +0 -305
  245. package/dist/configs/components/listView.json +0 -515
  246. package/dist/configs/components/wd-bubble.json +0 -170
  247. package/dist/web/components/form/userOrgSelect/comTool.js +0 -102
  248. package/dist/web/components/form/userOrgSelect/departTreeSelect/departTreeSelect.pc.js +0 -155
  249. package/dist/web/components/form/userOrgSelect/departTreeSelect/index.js +0 -17
  250. package/dist/web/components/form/userOrgSelect/getUserService.js +0 -165
  251. package/dist/web/components/form/userOrgSelect/index.js +0 -17
  252. package/dist/web/components/form/userOrgSelect/user-select-pc/index.css +0 -216
  253. package/dist/web/components/form/userOrgSelect/user-select-pc/index.js +0 -195
  254. package/dist/web/components/form/userOrgSelect/user-select-pc/org-tree.js +0 -15
  255. package/dist/web/components/form/userOrgSelect/user-select-pc/search-user.js +0 -80
  256. package/dist/web/components/form/userOrgSelect/user-select-pc/selected-user-list.js +0 -12
  257. package/dist/web/components/form/userOrgSelect/user-select-pc/user-model.js +0 -36
  258. package/dist/web/components/form/userOrgSelect/userOrgSelect.css +0 -824
  259. package/dist/web/components/form/userOrgSelect/userTreeSelect.h5.js +0 -302
  260. package/dist/web/components/form/userOrgSelect/utils.js +0 -95
  261. package/dist/web/components/table/ImportFileModal/index.css +0 -263
  262. package/dist/web/components/wd-bubble/index.css +0 -21
  263. package/dist/web/utils/hooks/useRequest.js +0 -25
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ import { Tag, Icon, Text } from 'tea-component';
3
+ export const InputTags = ({ tagsList, placeholder, onClose, multiple, errInfo, disabled, platForm = 'pc', }) => {
4
+ return (React.createElement("div", { className: "weda-ui-user-select-input" },
5
+ React.createElement(React.Fragment, null,
6
+ tagsList && tagsList.length > 0 && !errInfo.errorStatus ? (React.createElement(React.Fragment, null,
7
+ React.createElement("div", { className: "weda-ui-user-select-input__values" }, (tagsList || []).map((item) => (React.createElement(React.Fragment, null, disabled ? (React.createElement(Tag, { key: item === null || item === void 0 ? void 0 : item.id, "data-testid": "defaultValueDisabled" }, (item === null || item === void 0 ? void 0 : item.content) || '-')) : (React.createElement(Tag, { key: item === null || item === void 0 ? void 0 : item.id, onClose: (e) => onClose(e, item), "data-testid": "defaultValueText" }, (item === null || item === void 0 ? void 0 : item.content) || '-')))))),
8
+ multiple && (React.createElement("div", { className: disabled
9
+ ? 'weda-ui-user-select-input__extra__disabled'
10
+ : 'weda-ui-user-select-input__extra' }, platForm === 'pc' ? (React.createElement(React.Fragment, null,
11
+ React.createElement(Icon, { type: "more" }),
12
+ React.createElement(Text, { theme: "primary" },
13
+ "\u5171",
14
+ tagsList.length,
15
+ "\u4E2A"))) : (React.createElement("div", { className: "weda-select-user-dept__select-total" },
16
+ "\u5171",
17
+ tagsList.length,
18
+ "\u4E2A",
19
+ React.createElement("i", { className: "lcap-icon lcap-icon-chevronright" }))))))) : (React.createElement(Text, { className: "weda-ui-user-select-input__placeholder" }, placeholder)),
20
+ errInfo.errorStatus && (React.createElement(Text, { className: "weda-ui-user-select-input__placeholder" }, errInfo.errorMessage)))));
21
+ };
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import classNames from '../../../../utils/classnames';
3
+ export const ModalSearchH5 = (props) => {
4
+ const { value, onChange, onCancel, isSearch, onFocus } = props;
5
+ return (React.createElement("div", { className: classNames({
6
+ 'weda-select-user-dept__dialog-search-h5': true,
7
+ 'weda-select-user-dept__dialog-search-focus': isSearch,
8
+ }) },
9
+ React.createElement("div", { className: "weda-select-user-dept__dialog-search-box" },
10
+ React.createElement("input", { id: "wd-search-input", type: "text", onFocus: onFocus, value: value, onClick: (e) => {
11
+ e.stopPropagation();
12
+ }, onChange: (e) => {
13
+ var _a;
14
+ onChange((_a = e === null || e === void 0 ? void 0 : e.target) === null || _a === void 0 ? void 0 : _a.value);
15
+ }, className: "weda-select-user-dept__dialog-search-input" }),
16
+ React.createElement("div", { className: classNames({
17
+ 'weda-select-user-dept__dialog-label': true,
18
+ 'weda-select-user-dept__dialog-label-value': value,
19
+ }) },
20
+ React.createElement("span", { className: "search-icon" }),
21
+ React.createElement("span", { className: "search-placeholder" }, "\u641C\u7D22")),
22
+ value && value.length > 0 && (React.createElement("div", { className: "weda-select-user-dept__dialog-input-clear", onClick: () => onChange('') },
23
+ React.createElement("p", { className: "weda-select-user-dept__dialog-input-clear-close" })))),
24
+ React.createElement("span", { className: "weda-select-user-dept__dialog-search-cancel", onClick: onCancel }, "\u53D6\u6D88")));
25
+ };
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import { SearchBox } from 'tea-component';
3
+ import { UserOrgList } from './user-org-list';
4
+ import './index.css';
5
+ export const ModalSearch = (props) => {
6
+ const { searchList, onReset, keyWords, onSearch, loading, errInfo, selectedList, multiple, setSelectedList, setSelectedIds, selectedIds, isUser = true, } = props;
7
+ return (React.createElement(React.Fragment, null,
8
+ React.createElement(SearchBox, { "data-testid": "SearchBox", onChange: onSearch, onSearch: (key) => onSearch(key), onClear: () => onReset(), placeholder: `搜索${isUser ? '成员' : '部门'}` }),
9
+ keyWords.length !== 0 && (React.createElement("div", { className: "weda-ui-user-select-container-list__end " },
10
+ React.createElement(UserOrgList, { isUser: isUser, userOrgList: searchList, isOrg: true, loading: loading, errorStatus: errInfo === null || errInfo === void 0 ? void 0 : errInfo.errorStatus, errorMessage: errInfo === null || errInfo === void 0 ? void 0 : errInfo.errorMessage, selectedList: selectedList, multiple: multiple, setSelectedIds: setSelectedIds, setSelectedList: setSelectedList, selectedIds: selectedIds })))));
11
+ };
@@ -0,0 +1,201 @@
1
+ import React, { useEffect, useState } from 'react';
2
+ import { Modal } from 'tea-component';
3
+ import { ModalSearchH5 } from './modal-search-h5';
4
+ import { ErrorStatus, LoadingStatus } from './error-tips';
5
+ import { DepartBreadcrumb } from './depart-breadcrumb';
6
+ import { SelectedListH5 } from './selected-list-h5';
7
+ import './index.css';
8
+ import { OrgTreeH5 } from './org-tree-h5';
9
+ import { UserListH5 } from './user-select-h5/user-list-h5';
10
+ import { getNode, getBreadNode } from '../common/utils';
11
+ import debounce from '../../../../utils/debounce';
12
+ import { fetchSearchUser, fetchUserList } from '../common/fetch-data-service';
13
+ const appendNode = { id: 'appendNode', content: '直属成员' };
14
+ export const ModalSelectH5 = (props) => {
15
+ var _a;
16
+ const { open, onClose, onConfirm, treeData, multiple = false, errorInfo, setErrorInfo, selectedUserList, setSelectedUserList, confirmUserList, request, filterParams, pageNo, setPageNo, pageSize, treeDataError, } = props;
17
+ const [loading, setLoading] = useState({ id: null, status: false });
18
+ const [pageLoading, setPageLoading] = useState(false);
19
+ const [listLoading, setListLoading] = useState(false);
20
+ const [isSearch, setIsSearch] = useState(false);
21
+ // 是否有搜索项
22
+ const [keyWords, setKeyWords] = useState('');
23
+ const [showTreeData, setShowTreeData] = useState([]);
24
+ const [breadCrumbData, setBreadCrumbData] = useState([]);
25
+ const [userList, setUserList] = useState([]);
26
+ const [isEnd, setIsEnd] = useState(false);
27
+ const treeNode = getNode(treeData, 'root', 'id');
28
+ useEffect(() => {
29
+ // 仅执行一次
30
+ if (treeData) {
31
+ setShowTreeData(treeNode);
32
+ }
33
+ // eslint-disable-next-line react-hooks/exhaustive-deps
34
+ }, [treeData]);
35
+ useEffect(() => {
36
+ // 仅执行一次
37
+ if (open) {
38
+ setShowTreeData(treeNode);
39
+ setUserList([]);
40
+ setBreadCrumbData([]);
41
+ setPageNo(1);
42
+ }
43
+ // eslint-disable-next-line react-hooks/exhaustive-deps
44
+ }, [open]);
45
+ const handleFocus = (value) => {
46
+ setIsSearch(value);
47
+ };
48
+ //重置状态
49
+ const onrest = () => {
50
+ setIsEnd(false);
51
+ handleFocus(false);
52
+ setKeyWords('');
53
+ setBreadCrumbData([]);
54
+ setUserList([]);
55
+ setShowTreeData(treeNode);
56
+ };
57
+ //搜索值变化延迟响应,节流处理
58
+ const onSearch = debounce((key) => {
59
+ try {
60
+ setBreadCrumbData([]);
61
+ if (key && key.length > 0) {
62
+ setPageLoading(true);
63
+ fetchSearchUser({ key, ...filterParams }, request).then((res) => {
64
+ setPageLoading(false);
65
+ setUserList(res);
66
+ });
67
+ }
68
+ else {
69
+ setUserList([]);
70
+ setShowTreeData(treeNode);
71
+ }
72
+ }
73
+ catch (e) {
74
+ setPageLoading(false);
75
+ setErrorInfo({ errorStatus: true, errorMessage: e });
76
+ }
77
+ }, 500);
78
+ const cancleSearch = () => {
79
+ onrest();
80
+ };
81
+ const loadItem = (item) => {
82
+ var _a;
83
+ try {
84
+ setPageNo(1);
85
+ setLoading({ id: item === null || item === void 0 ? void 0 : item.id, status: true });
86
+ switch (item === null || item === void 0 ? void 0 : item.id) {
87
+ case 'isNoOrgList': {
88
+ const orgId = item === null || item === void 0 ? void 0 : item.id;
89
+ fetchUserData({ orgId, pageNo, pageSize, request, ...filterParams });
90
+ setBreadCrumbData(getBreadNode(breadCrumbData, item));
91
+ break;
92
+ }
93
+ case 'appendNode': {
94
+ const orgId = (_a = breadCrumbData[breadCrumbData.length - 1]) === null || _a === void 0 ? void 0 : _a.id;
95
+ fetchUserData({ orgId, pageNo, pageSize, request, ...filterParams });
96
+ break;
97
+ }
98
+ default: {
99
+ fetchUserList({ OrgId: item === null || item === void 0 ? void 0 : item.id, pageNo, pageSize, ...filterParams }, request).then((res) => {
100
+ setLoading({ id: null, status: false });
101
+ setListLoading(false);
102
+ if ((res === null || res === void 0 ? void 0 : res.total) > 0) {
103
+ appendNode['children'] = res === null || res === void 0 ? void 0 : res.records;
104
+ appendNode['content'] = `直属成员(${res === null || res === void 0 ? void 0 : res.total})`;
105
+ setShowTreeData((item === null || item === void 0 ? void 0 : item.children)
106
+ ? [appendNode].concat(item === null || item === void 0 ? void 0 : item.children)
107
+ : [appendNode]);
108
+ }
109
+ else {
110
+ setShowTreeData((item === null || item === void 0 ? void 0 : item.children) ? [].concat(item === null || item === void 0 ? void 0 : item.children) : []);
111
+ }
112
+ setBreadCrumbData(getBreadNode(breadCrumbData, item));
113
+ });
114
+ break;
115
+ }
116
+ }
117
+ }
118
+ catch (e) {
119
+ setLoading({ id: null, status: false });
120
+ setErrorInfo({ errorStatus: true, errorMessage: e });
121
+ }
122
+ };
123
+ const onBreadCrumbClick = (item) => {
124
+ var _a;
125
+ setKeyWords('');
126
+ if (!item) {
127
+ //根目录
128
+ setIsEnd(false);
129
+ setUserList([]);
130
+ setPageNo(1);
131
+ setShowTreeData(treeNode);
132
+ setBreadCrumbData([]);
133
+ }
134
+ else {
135
+ //避免重复点击请求
136
+ if ((item === null || item === void 0 ? void 0 : item.id) !== ((_a = breadCrumbData[breadCrumbData.length - 1]) === null || _a === void 0 ? void 0 : _a.id) ||
137
+ showTreeData.length === 0) {
138
+ setListLoading(true);
139
+ setIsEnd(false);
140
+ // 部门目录
141
+ loadItem(item);
142
+ }
143
+ }
144
+ };
145
+ const onScrollBottom = debounce(() => {
146
+ var _a;
147
+ if (!(keyWords && keyWords.length > 0)) {
148
+ const orgId = ((_a = breadCrumbData[breadCrumbData.length - 1]) === null || _a === void 0 ? void 0 : _a.id) || 'isNoOrgList';
149
+ setLoading({ id: orgId, status: true });
150
+ fetchUserData({ orgId, pageNo, pageSize, request, ...filterParams });
151
+ }
152
+ }, 1000);
153
+ const fetchUserData = ({ orgId, pageNo, pageSize, request, ...resetProps }) => {
154
+ if (orgId && !isEnd) {
155
+ fetchUserList({ OrgId: orgId, pageNo, pageSize, ...resetProps }, request).then((res) => {
156
+ setLoading({ id: null, status: false });
157
+ if ((res === null || res === void 0 ? void 0 : res.total) > 0) {
158
+ const currentUserData = userList.concat(res === null || res === void 0 ? void 0 : res.records);
159
+ setUserList(currentUserData);
160
+ setShowTreeData([]);
161
+ if ((res === null || res === void 0 ? void 0 : res.total) <= currentUserData.length) {
162
+ setIsEnd(true);
163
+ }
164
+ else {
165
+ setPageNo(pageNo + 1);
166
+ }
167
+ }
168
+ });
169
+ }
170
+ };
171
+ const onTouchMove = (e) => {
172
+ document.getElementById('wd-search-input').blur();
173
+ e.stopPropagation();
174
+ };
175
+ return (React.createElement(Modal, { visible: open, onClose: () => {
176
+ onrest();
177
+ onClose();
178
+ }, destroyOnClose: true, className: `weda-ui weda-select-user-dept__dialog` },
179
+ React.createElement(Modal.Body, { className: ((_a = selectedUserList[0]) === null || _a === void 0 ? void 0 : _a.userId) ? 'is-selected-value' : '' },
180
+ React.createElement("div", { className: "weda-select-user-dept__dialog-header" }, '选择成员'),
181
+ React.createElement(ModalSearchH5, { value: keyWords, onChange: (key) => {
182
+ setKeyWords(key);
183
+ onSearch(key);
184
+ }, onCancel: cancleSearch, isSearch: isSearch, onFocus: (e) => {
185
+ handleFocus(true);
186
+ e.stopPropagation();
187
+ } }),
188
+ (errorInfo === null || errorInfo === void 0 ? void 0 : errorInfo.errorStatus) ? (React.createElement(ErrorStatus, { description: (errorInfo === null || errorInfo === void 0 ? void 0 : errorInfo.errorMessage) || null })) : (React.createElement(React.Fragment, null, treeData && treeData.length > 0 && !pageLoading ? (React.createElement("div", { className: "weda-select-user-dept__dialog-content" },
189
+ !(keyWords && keyWords.length > 0) && (React.createElement(DepartBreadcrumb, { data: breadCrumbData, onBreadCrumbClick: (item) => onBreadCrumbClick(item) })),
190
+ listLoading ? (React.createElement(React.Fragment, null,
191
+ React.createElement("div", { className: "weda-select-user-dept__dialog-list" },
192
+ React.createElement(LoadingStatus, null)))) : (React.createElement(React.Fragment, null, showTreeData &&
193
+ showTreeData.length > 0 &&
194
+ !(keyWords && keyWords.length > 0) ? (React.createElement(OrgTreeH5, { treeData: showTreeData, loading: loading, loadItem: (item) => loadItem(item), treeDataError: treeDataError, onTouchMove: onTouchMove })) : (React.createElement(UserListH5, { userList: userList, selectedList: selectedUserList, setSelectedList: setSelectedUserList, loading: loading, multiple: multiple, isEnd: isEnd, isSearch: keyWords ? true : false, onScrollBottom: onScrollBottom, onTouchMove: onTouchMove })))))) : (React.createElement("div", { className: "weda-select-user-dept__dialog-list" },
195
+ React.createElement(LoadingStatus, null)))))),
196
+ React.createElement(Modal.Footer, null,
197
+ React.createElement(SelectedListH5, { selectedList: selectedUserList, setSelectedList: setSelectedUserList, confirmUserList: confirmUserList, onClose: () => {
198
+ onrest();
199
+ onClose();
200
+ }, onConfirm: onConfirm }))));
201
+ };
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ import { LoadingStatus, ErrorStatus } from './error-tips';
3
+ import './index.css';
4
+ import { IconFont } from 'tdesign-icons-react';
5
+ import classNames from '../../../../utils/classnames';
6
+ export const OrgTreeH5 = (props) => {
7
+ const { treeData, treeDataError, loading, loadItem, onTouchMove } = props;
8
+ return (React.createElement("div", { className: classNames('weda-select-user-dept__dialog-list'), onTouchMove: (e) => onTouchMove(e) }, treeDataError ? (React.createElement(ErrorStatus, { description: treeDataError || null })) : (React.createElement(React.Fragment, null, treeData && treeData.length > 0 && !treeDataError ? ((treeData || []).map((item, index) => (React.createElement("div", { className: "weda-select-user-dept__list-item", key: index + (item === null || item === void 0 ? void 0 : item.id), onClick: () => {
9
+ !(item === null || item === void 0 ? void 0 : item.isUser) ? loadItem(item) : null;
10
+ } },
11
+ React.createElement("div", { className: "weda-select-user-dept__list-item-wrap" },
12
+ React.createElement("div", { className: (item === null || item === void 0 ? void 0 : item.id) === 'appendNode'
13
+ ? 'weda-select-user-dept__item-detail weda-select-user-dept__item-detail-is-user'
14
+ : 'weda-select-user-dept__item-detail weda-select-user-dept__item-detail-is-org' },
15
+ React.createElement("div", { className: "item-name" }, item === null || item === void 0 ? void 0 : item.content),
16
+ loading.id !== item.id && (React.createElement("div", { className: "lcap-icon lcap-icon-chevronright" })),
17
+ loading.id === item.id && (loading === null || loading === void 0 ? void 0 : loading.status) && (React.createElement("div", null,
18
+ React.createElement(IconFont, { name: "loading", className: `user_loading weda-grid-navigation__fonticon` }))))))))) : (React.createElement(LoadingStatus, null))))));
19
+ };
@@ -0,0 +1,33 @@
1
+ import React from 'react';
2
+ import { Tree } from 'tea-component';
3
+ import { LoadingStatus, ErrorStatus } from './error-tips';
4
+ import './index.css';
5
+ export const OrgTree = (props) => {
6
+ const { selectedOrgId = [], treeData, treeDataError, onActive,
7
+ //是否展示 Checkbox
8
+ selectable = false,
9
+ //是否多选
10
+ mutiple = false, } = props;
11
+ // 切换选中组织节点
12
+ const onChange = (ids, checked, nodeId) => {
13
+ //是否取消选中
14
+ if (selectedOrgId.indexOf(nodeId) !== -1) {
15
+ const actionIds = selectedOrgId.filter((e) => e !== nodeId);
16
+ onActive(actionIds);
17
+ }
18
+ else {
19
+ //单选情况下
20
+ if (!mutiple) {
21
+ onActive([nodeId]);
22
+ }
23
+ else {
24
+ onActive(selectedOrgId.concat([nodeId]));
25
+ }
26
+ }
27
+ };
28
+ return (React.createElement(React.Fragment, null, treeDataError ? (React.createElement(ErrorStatus, { description: treeDataError || null })) : (React.createElement(React.Fragment, null, treeData && treeData.length > 0 && !treeDataError ? (React.createElement(Tree, { className: "depart-tree", data: treeData, fullActivable: true, activable: true, selectable: selectable, selectedIds: selectedOrgId, activeIds: selectedOrgId, selectStrictly: true, onActive: (ids, context) => {
29
+ onChange(ids, context === null || context === void 0 ? void 0 : context.active, context === null || context === void 0 ? void 0 : context.nodeId);
30
+ }, onSelect: (ids, context) => {
31
+ onChange(ids, context === null || context === void 0 ? void 0 : context.selected, context === null || context === void 0 ? void 0 : context.nodeId);
32
+ } })) : (React.createElement(LoadingStatus, null))))));
33
+ };
@@ -0,0 +1,44 @@
1
+ import React, { useState } from 'react';
2
+ import { Button as TButton, Popover, Tag, Bubble } from 'tea-component';
3
+ export const SelectedListH5 = (props) => {
4
+ const { selectedList, setSelectedList, onClose, onConfirm, confirmUserList } = props;
5
+ const [showDetail, setShowDetail] = useState(false);
6
+ return (React.createElement("div", null,
7
+ selectedList.length > 0 && (React.createElement("div", { className: "weda-select-user-dept__select-result", onClick: () => {
8
+ setShowDetail(true);
9
+ } },
10
+ React.createElement("div", { className: "weda-select-user-dept__select-label" }, "\u5DF2\u9009\u62E9"),
11
+ React.createElement("div", { className: "weda-select-user-dept__result-list" }, selectedList.map((d) => (React.createElement(Tag, { key: (d === null || d === void 0 ? void 0 : d.userId) || (d === null || d === void 0 ? void 0 : d.value) }, d === null || d === void 0 ? void 0 : d.content)))),
12
+ React.createElement(Popover, { trigger: "click", visible: showDetail, popupContainer: () => document.querySelector('#tea-overlay-root'), overlay: React.createElement("div", { className: "weda-ui-custom-picker" },
13
+ React.createElement("div", { className: "weda-ui-custom-backdrop", "data-testid": "allTime-backdrop" }),
14
+ React.createElement("div", { className: "weda-ui-custom-picker__inner" },
15
+ React.createElement("div", { className: "weda-ui-custom-picker__header" },
16
+ React.createElement("div", { "data-testid": "allTime-cancel", className: "weda-ui-custom-picker__header-cancle", onClick: (e) => {
17
+ setShowDetail(false);
18
+ //onClose();
19
+ e.stopPropagation();
20
+ } }, "\u53D6\u6D88"),
21
+ React.createElement("div", { className: "weda-ui-custom-picker__header-title" }, "\u5DF2\u9009\u62E9"),
22
+ React.createElement("div", { "data-testid": "allTime-confirm", className: "weda-ui-custom-picker__header-confirm", onClick: (e) => {
23
+ setShowDetail(false);
24
+ //onConfirm();
25
+ e.stopPropagation();
26
+ } }, "\u786E\u8BA4")),
27
+ React.createElement("div", { className: "weda-ui-custom-picker__body" },
28
+ React.createElement("ul", { className: "weda-user-select-h5 weda-ui-custom-picker__list " }, selectedList.map((d) => (React.createElement("li", { className: "weda-ui-custom-picker__list-item", key: (d === null || d === void 0 ? void 0 : d.userId) || (d === null || d === void 0 ? void 0 : d.value) },
29
+ React.createElement("span", { className: "weda-ui-custom-picker__list-label" }, d === null || d === void 0 ? void 0 : d.content),
30
+ React.createElement("i", { className: "weda-ui-custom-picker__list-dismiss", onClick: () => {
31
+ setSelectedList(selectedList.filter((e) => (e === null || e === void 0 ? void 0 : e.userId) !== (d === null || d === void 0 ? void 0 : d.userId)));
32
+ } })))))))) },
33
+ React.createElement("div", { className: "weda-select-user-dept__select-total" },
34
+ "\u5171",
35
+ selectedList.length,
36
+ "\u4EBA",
37
+ React.createElement("i", { className: "lcap-icon lcap-icon-chevronright" }))))),
38
+ React.createElement("div", { className: "weda-select-user-dept__btn-group" },
39
+ React.createElement(TButton, { type: "weak", onClick: onClose, className: "wd-btn--outline" }, "\u53D6\u6D88"),
40
+ React.createElement(Bubble, { content: selectedList.length === 0 && confirmUserList.length === 0
41
+ ? '请选择成员'
42
+ : null, className: "weda-select-user-dept__bubble" },
43
+ React.createElement(TButton, { type: "primary", onClick: onConfirm, disabled: selectedList.length === 0 && confirmUserList.length == 0 }, "\u786E\u5B9A")))));
44
+ };
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import { TagGroup, Tag, Text } from 'tea-component';
3
+ import './index.css';
4
+ export const SelectedList = (props) => {
5
+ const { selectedList, onClose, isUser = true } = props;
6
+ // const { selectedList, setSelectedUserList } =
7
+ // React.useContext(UserOrgContext) || {};
8
+ // const onClose = (item) => {
9
+ // //检查是否当前页用户被关闭
10
+ // setSelectedUserList(selectedUserList.filter((e) => e?.id !== item?.id));
11
+ // };
12
+ return (React.createElement("div", { className: "weda-ui-user-select-result" }, selectedList && selectedList.length > 0 ? (React.createElement(TagGroup, null, (selectedList || []).map((item) => (React.createElement(Tag, { key: item === null || item === void 0 ? void 0 : item.id, onClose: () => onClose(item) }, item === null || item === void 0 ? void 0 : item.content))))) : (React.createElement(Text, { className: "weda-ui-user-select-input__placeholder", theme: "label" },
13
+ "\u65E0\u9009\u4E2D",
14
+ isUser ? '成员' : '部门'))));
15
+ };
@@ -0,0 +1,55 @@
1
+ /* eslint-disable prettier/prettier */
2
+ import React from 'react';
3
+ import { Radio, List, Checkbox, useClassNames, Text } from 'tea-component';
4
+ import './index.css';
5
+ import { ErrorStatus, NullStatus, LoadingStatus } from './error-tips';
6
+ // 用户组织展示列表
7
+ export const UserOrgList = ({ isUser = true, userOrgList, isOrg, loading, errorStatus, errorMessage, selectedList, multiple, setSelectedList, setSelectedIds, selectedIds, }) => {
8
+ const { Margin } = useClassNames();
9
+ const onChange = (value, item) => {
10
+ if (value) {
11
+ setSelectedIds
12
+ ? setSelectedIds((selectedIds || []).concat([item === null || item === void 0 ? void 0 : item.id]))
13
+ : false;
14
+ setSelectedList((selectedList || []).concat([item]));
15
+ }
16
+ else {
17
+ setSelectedIds
18
+ ? setSelectedIds(selectedIds.filter((e) => e !== (item === null || item === void 0 ? void 0 : item.id)))
19
+ : false;
20
+ setSelectedList(selectedList.filter((e) => e.id !== (item === null || item === void 0 ? void 0 : item.id)));
21
+ }
22
+ };
23
+ return (React.createElement(List, { className: "weda-ui-user-select-list" },
24
+ React.createElement(List.Item, null, loading ? (React.createElement(LoadingStatus, null)) : (React.createElement(React.Fragment, null, errorStatus ? (React.createElement(ErrorStatus, { description: errorMessage || null })) : (React.createElement(React.Fragment, null, userOrgList && userOrgList.length > 0 ? (React.createElement(React.Fragment, null, multiple ? (React.createElement("div", null,
25
+ React.createElement(Checkbox.Group, { layout: "column", value: selectedIds }, (userOrgList || []).map((item) => {
26
+ var _a;
27
+ return (React.createElement(React.Fragment, null,
28
+ React.createElement(Checkbox, { name: item === null || item === void 0 ? void 0 : item.id, onChange: (value) => onChange(value, item) }, item === null || item === void 0 ? void 0 :
29
+ item.content,
30
+ isOrg && isUser && (React.createElement(Text, { theme: "label", className: Margin.Left['2n'] }, (_a = item === null || item === void 0 ? void 0 : item.mainOrg[0]) === null || _a === void 0 ? void 0 : _a.OrgName)))));
31
+ })))) : (React.createElement(React.Fragment, null, (userOrgList || []).map((item, index) => {
32
+ var _a;
33
+ return (React.createElement(Radio.Group, { value: selectedIds[0], key: index, layout: "column", onChange: (value) => {
34
+ // 被选中过,取消选中
35
+ if ((selectedIds || []).indexOf(value) !== -1) {
36
+ setSelectedIds
37
+ ? setSelectedIds(selectedIds.filter((e) => e !== (item === null || item === void 0 ? void 0 : item.id)))
38
+ : false;
39
+ setSelectedList(selectedList.filter((e) => e.id !== value));
40
+ }
41
+ else {
42
+ const list = [].concat([item]);
43
+ setSelectedIds
44
+ ? setSelectedIds([].concat([item === null || item === void 0 ? void 0 : item.id]))
45
+ : false;
46
+ setSelectedList(list);
47
+ }
48
+ } },
49
+ React.createElement(Radio, { name: item === null || item === void 0 ? void 0 : item.id }, item === null || item === void 0 ? void 0 :
50
+ item.content,
51
+ isOrg && isUser && (React.createElement(Text, { theme: "label", className: Margin.Left['2n'] }, (_a = item === null || item === void 0 ? void 0 : item.mainOrg[0]) === null || _a === void 0 ? void 0 : _a.OrgName)))));
52
+ }))))) : (React.createElement(NullStatus, { description: isOrg
53
+ ? `无相关${isUser ? '成员' : '部门'}`
54
+ : `无可选${isUser ? '成员' : '部门'}`, size: 's' })))))))));
55
+ };
@@ -0,0 +1,151 @@
1
+ import React, { useState, useEffect } from 'react';
2
+ import { UserSelectPC } from '../user-select-pc/user-select-pc';
3
+ import { UserTreeSelectH5 as UserSelectH5 } from './user-select-h5';
4
+ import '../userOrgSelect.css';
5
+ import { isInIde, filterStrList, getUserInfo, usePlatform, } from '../../../../../utils/platform';
6
+ import { useSyncValue } from '../../../../../utils/hooks/useSyncValue';
7
+ import isObjectEqual from '../../../../../utils/isObjectEqual';
8
+ import { getUserListByIds, defaultRequest, } from '../../common/fetch-data-service';
9
+ import { emptyArray, emptyObject } from '../../../../../utils/constant';
10
+ import { useViewData } from '../../hooks/use-views-data';
11
+ import { useDepartData } from '../../hooks/use-depart-data';
12
+ import { parseStrToArr } from '../../common/utils';
13
+ export default function UserTreeSelect(props) {
14
+ const { events = emptyObject, defaultValue = emptyArray, confirmValue = '', defaultValueType = 'noneUser', onChange = null, multiple = false, request = defaultRequest, where, } = props;
15
+ const platform = usePlatform();
16
+ const [errInfo, setErrInfo] = useState({
17
+ errorStatus: false,
18
+ errorMessage: null,
19
+ });
20
+ const [open, setOpen] = useState(false);
21
+ const [selectUserIds, setSelectUserIds] = useSyncValue(defaultValue, isObjectEqual);
22
+ // 两次默认值不同, 需要刷新
23
+ const prevDefaultRef = React.useRef(null);
24
+ //弹窗中被选中用户集合
25
+ const [selectedUserList, setSelectedUserList] = useState([]);
26
+ //弹窗中被选中用户id集合
27
+ const [selectedUserIds, setSelectedUserIds] = useState([]);
28
+ // 最终选定用户集合
29
+ const [confirmUserList, setConfirmUserList] = useState([]);
30
+ //组织下展示用户页码
31
+ const [pageNo, setPageNo] = useState(1);
32
+ //组织下展示用户页大小
33
+ const pageSize = 200;
34
+ const { filterParams } = useViewData(where);
35
+ const { treeData, error } = useDepartData({ request });
36
+ useEffect(() => {
37
+ // 仅执行一次
38
+ if (defaultValueType === 'loginUser') {
39
+ getLoginUserInfo();
40
+ }
41
+ // eslint-disable-next-line react-hooks/exhaustive-deps
42
+ }, [defaultValueType]);
43
+ useEffect(() => {
44
+ if (defaultValueType === 'confirmUser') {
45
+ setSelectUserIds(confirmValue);
46
+ }
47
+ // eslint-disable-next-line react-hooks/exhaustive-deps
48
+ }, [defaultValueType, confirmValue]);
49
+ const getLoginUserInfo = async () => {
50
+ if (isInIde()) {
51
+ setConfirmUserList([{ userName: '显示登录人名称', id: 'loginmock' }]);
52
+ }
53
+ else {
54
+ const logginUserInfo = await getUserInfo();
55
+ setSelectUserIds(multiple ? [logginUserInfo === null || logginUserInfo === void 0 ? void 0 : logginUserInfo.userId] : logginUserInfo === null || logginUserInfo === void 0 ? void 0 : logginUserInfo.userId);
56
+ }
57
+ };
58
+ const getDefaultUser = async (defaultValue) => {
59
+ try {
60
+ setErrInfo({ errorStatus: false, errorMessage: null });
61
+ // 避免ide mock值请求数据异常
62
+ if (defaultValue && defaultValue.length !== 0 && !isInIde()) {
63
+ const userSelectList = await getUserListByIds({
64
+ selectUserIds: filterStrList(parseStrToArr(defaultValue)) || [],
65
+ IsNoRelatedOrgFlag: false,
66
+ request,
67
+ });
68
+ setConfirmUserList(userSelectList);
69
+ }
70
+ else {
71
+ setConfirmUserList([]);
72
+ }
73
+ }
74
+ catch (e) {
75
+ setErrInfo({ errorStatus: true, errorMessage: e });
76
+ }
77
+ };
78
+ useEffect(() => {
79
+ try {
80
+ if (!isObjectEqual(prevDefaultRef.current, selectUserIds)) {
81
+ getDefaultUser(selectUserIds);
82
+ prevDefaultRef.current = selectUserIds;
83
+ }
84
+ }
85
+ catch (e) { }
86
+ // eslint-disable-next-line react-hooks/exhaustive-deps
87
+ }, [defaultValueType, selectUserIds]);
88
+ useEffect(() => {
89
+ var _a, _b, _c;
90
+ setSelectedUserList(confirmUserList);
91
+ onChange === null || onChange === void 0 ? void 0 : onChange(multiple
92
+ ? confirmUserList.length > 0
93
+ ? confirmUserList.map((e) => {
94
+ return e === null || e === void 0 ? void 0 : e.id;
95
+ })
96
+ : null
97
+ : (_a = confirmUserList[0]) === null || _a === void 0 ? void 0 : _a.id);
98
+ (_b = events === null || events === void 0 ? void 0 : events.change) === null || _b === void 0 ? void 0 : _b.call(events, multiple
99
+ ? {
100
+ value: confirmUserList.length > 0
101
+ ? confirmUserList.map((e) => {
102
+ return e === null || e === void 0 ? void 0 : e.id;
103
+ })
104
+ : null,
105
+ data: confirmUserList,
106
+ }
107
+ : {
108
+ value: ((_c = confirmUserList[0]) === null || _c === void 0 ? void 0 : _c.id) || null,
109
+ data: confirmUserList[0] || null,
110
+ });
111
+ // eslint-disable-next-line react-hooks/exhaustive-deps
112
+ }, [confirmUserList]);
113
+ //确定 关闭弹窗
114
+ const onConfirm = () => {
115
+ setConfirmUserList(selectedUserList);
116
+ setOpen(false);
117
+ };
118
+ //取消 关闭弹窗
119
+ const onCancel = () => {
120
+ setSelectedUserIds([]);
121
+ setSelectedUserList([]);
122
+ setOpen(false);
123
+ };
124
+ const restProps = {
125
+ errInfo,
126
+ open,
127
+ setOpen,
128
+ selectedUserList,
129
+ setSelectedUserList,
130
+ confirmUserList,
131
+ setConfirmUserList,
132
+ selectedUserIds,
133
+ setSelectedUserIds,
134
+ pageNo,
135
+ setPageNo,
136
+ pageSize,
137
+ onConfirm,
138
+ onCancel,
139
+ platform,
140
+ filterParams,
141
+ treeData,
142
+ error,
143
+ };
144
+ if ((props === null || props === void 0 ? void 0 : props.showType) === 'pc') {
145
+ return React.createElement(UserSelectPC, { ...restProps, ...props });
146
+ }
147
+ if ((props === null || props === void 0 ? void 0 : props.showType) === 'h5') {
148
+ return React.createElement(UserSelectH5, { ...restProps, ...props });
149
+ }
150
+ return platform === 'h5' ? (React.createElement(UserSelectH5, { ...restProps, ...props })) : (React.createElement(UserSelectPC, { ...restProps, ...props }));
151
+ }