@cloudbase/weda-ui 3.4.3 → 3.4.5

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 (277) hide show
  1. package/dist/configs/components/chart/bar.json +117 -8
  2. package/dist/configs/components/chart/line.js +127 -18
  3. package/dist/configs/components/chart/pie.json +117 -8
  4. package/dist/configs/components/chart/statisticsCard.json +57 -0
  5. package/dist/configs/components/dataView.js +507 -0
  6. package/dist/configs/components/form/location.json +2 -1
  7. package/dist/configs/components/form/userTreeSelect.json +55 -0
  8. package/dist/configs/components/formdetail.json +12 -2
  9. package/dist/configs/components/graphicCard.json +1 -1
  10. package/dist/configs/components/grid/col.js +125 -0
  11. package/dist/configs/components/grid/grid.js +131 -0
  12. package/dist/configs/components/grid/row.js +143 -0
  13. package/dist/configs/components/image.js +11 -1
  14. package/dist/configs/components/link.js +11 -1
  15. package/dist/configs/components/listView.js +1092 -0
  16. package/dist/configs/components/navLayout.json +1 -1
  17. package/dist/configs/components/navigationBar.json +9 -1
  18. package/dist/configs/components/repeater-item.json +17 -0
  19. package/dist/configs/components/repeater.js +125 -0
  20. package/dist/configs/components/table.json +187 -29
  21. package/dist/configs/components/text.js +12 -1
  22. package/dist/configs/components/wd-bubble.js +204 -0
  23. package/dist/configs/components/wd-button.js +417 -0
  24. package/dist/configs/components/wd-divider.js +89 -0
  25. package/dist/configs/components/wd-icon.js +126 -0
  26. package/dist/configs/components/wd-image.js +164 -0
  27. package/dist/configs/components/wd-link.js +234 -0
  28. package/dist/configs/components/wd-table.js +59 -0
  29. package/dist/configs/components/wd-text.js +142 -0
  30. package/dist/configs/components/wxOpenApi/phone.js +2 -2
  31. package/dist/configs/components/wxOpenApi/phoneCode.js +2 -2
  32. package/dist/configs/index.js +34 -3
  33. package/dist/configs/type-utils/index.js +4 -1
  34. package/dist/docs/common/componentList.js +144 -0
  35. package/dist/docs/common/components/classes-view.js +34 -0
  36. package/dist/docs/common/components/event-view.js +46 -0
  37. package/dist/docs/common/components/json-schema-view.js +18 -0
  38. package/dist/docs/common/components/methods-view.js +32 -0
  39. package/dist/docs/common/components/properties-view.js +45 -0
  40. package/dist/docs/common/format.js +60 -35
  41. package/dist/docs/common/helper.js +1 -0
  42. package/dist/docs/common/tableView.js +61 -50
  43. package/dist/enum/index.js +521 -0
  44. package/dist/index.js +1 -1
  45. package/dist/style/index.scss +1 -0
  46. package/dist/web/actions/showMessage/index.css +0 -3
  47. package/dist/web/actions/showMessage/index.js +1 -1
  48. package/dist/web/actions/showModal/index.css +0 -3
  49. package/dist/web/components/button/index.css +2 -5
  50. package/dist/web/components/button/index.js +3 -3
  51. package/dist/web/components/calendar/index.css +29 -32
  52. package/dist/web/components/calendar/index.js +37 -35
  53. package/dist/web/components/carousel/index.css +11 -14
  54. package/dist/web/components/carousel/index.js +3 -1
  55. package/dist/web/components/chart/common/core/eChartBar.js +10 -2
  56. package/dist/web/components/chart/common/core/eChartLine.js +16 -8
  57. package/dist/web/components/chart/common/core/eChartPie.js +2 -1
  58. package/dist/web/components/chart/common/data-transform.js +1 -1
  59. package/dist/web/components/chart/statisticsCard/index.css +12 -15
  60. package/dist/web/components/chart/statisticsCard/index.js +7 -2
  61. package/dist/web/components/dataView/index.js +3 -3
  62. package/dist/web/components/emptyContent/index.css +26 -0
  63. package/dist/web/components/emptyContent/index.js +46 -0
  64. package/dist/web/components/flow/components/FlowModuleText/index.css +1 -4
  65. package/dist/web/components/flow/components/FlowUserSelect/index.css +29 -32
  66. package/dist/web/components/flow/components/HighlightTextarea/index.css +5 -8
  67. package/dist/web/components/flow/components/UserSelectModel/UserSelect.js +9 -8
  68. package/dist/web/components/flow/components/UserSelectModel/UserSelectMobile.css +1 -4
  69. package/dist/web/components/flow/components/UserSelectModel/UserSelectMobile.js +3 -4
  70. package/dist/web/components/flow/components/WedaUserTransfer/index.css +0 -3
  71. package/dist/web/components/flow/frame/getCommonFlowData.js +3 -1
  72. package/dist/web/components/flow/frame/index.js +18 -1
  73. package/dist/web/components/flow/frame/types.js +6 -0
  74. package/dist/web/components/flow/frame/utils.js +20 -11
  75. package/dist/web/components/flow/modules/basic/Basic.css +3 -6
  76. package/dist/web/components/flow/modules/basic/BasicMobile.css +9 -12
  77. package/dist/web/components/flow/modules/chart/Chart.js +2 -2
  78. package/dist/web/components/flow/modules/chart/index.css +23 -29
  79. package/dist/web/components/flow/modules/chart/isString.js +5 -0
  80. package/dist/web/components/flow/modules/control/ApprovalDrawer.css +44 -47
  81. package/dist/web/components/flow/modules/control/ApprovalPopup.css +34 -37
  82. package/dist/web/components/flow/modules/control/ApprovalPopup.js +12 -9
  83. package/dist/web/components/flow/modules/control/Control.css +7 -10
  84. package/dist/web/components/flow/modules/control/Control.js +31 -16
  85. package/dist/web/components/flow/modules/control/ControlMobile.css +41 -12
  86. package/dist/web/components/flow/modules/control/ControlMobile.js +28 -13
  87. package/dist/web/components/flow/modules/control/FlowTaskInfoModal.css +0 -3
  88. package/dist/web/components/flow/modules/control/FlowTaskInfoModal.js +4 -4
  89. package/dist/web/components/flow/modules/control/provider/useControlModel.js +20 -11
  90. package/dist/web/components/flow/modules/control/provider/useMobileModel.js +0 -2
  91. package/dist/web/components/flow/modules/control/provider/useRevokeAndBackHook.js +2 -0
  92. package/dist/web/components/flow/modules/control/utils/index.js +1 -0
  93. package/dist/web/components/flow/modules/control/utils/tools.js +3 -0
  94. package/dist/web/components/flow/modules/layout/index.css +0 -3
  95. package/dist/web/components/flow/modules/process/Process.js +1 -1
  96. package/dist/web/components/flow/modules/process/ProcessMobile.js +1 -1
  97. package/dist/web/components/flow/modules/process/index.css +49 -43
  98. package/dist/web/components/form/form/index.css +2 -5
  99. package/dist/web/components/form/form/index.js +48 -4
  100. package/dist/web/components/form/formcell/index.css +29 -17
  101. package/dist/web/components/form/input/index.css +5 -8
  102. package/dist/web/components/form/input/index.js +11 -0
  103. package/dist/web/components/form/location/common/mapChoose.css +88 -91
  104. package/dist/web/components/form/location/common/selectModal.css +10 -13
  105. package/dist/web/components/form/location/components/LocationH5/index.css +17 -20
  106. package/dist/web/components/form/location/components/LocationH5/location.h5.js +2 -3
  107. package/dist/web/components/form/location/components/LocationH5/location.module.css +0 -3
  108. package/dist/web/components/form/location/components/LocationPC/index.css +10 -13
  109. package/dist/web/components/form/location/components/LocationPC/location.PC.js +2 -3
  110. package/dist/web/components/form/location/index.css +0 -3
  111. package/dist/web/components/form/radio/index.css +0 -3
  112. package/dist/web/components/form/select/allTimePicker/calendar.css +15 -18
  113. package/dist/web/components/form/select/allTimePicker/index.css +53 -27
  114. package/dist/web/components/form/select/dropdown-select/h5.js +23 -12
  115. package/dist/web/components/form/select/dropdown-select/index.css +34 -27
  116. package/dist/web/components/form/select/dropdown-select/index.js +37 -4
  117. package/dist/web/components/form/select/dropdown-select/pc.js +57 -17
  118. package/dist/web/components/form/select/dropdown-select/ui.js +5 -2
  119. package/dist/web/components/form/select/index.css +12 -8
  120. package/dist/web/components/form/select/index.js +4 -9
  121. package/dist/web/components/form/select/status/index.css +10 -13
  122. package/dist/web/components/form/switch/switch.module.css +0 -3
  123. package/dist/web/components/form/textarea/index.css +1 -4
  124. package/dist/web/components/form/textarea/index.js +1 -1
  125. package/dist/web/components/form/tips/index.css +11 -2
  126. package/dist/web/components/form/uploader/index.css +14 -17
  127. package/dist/web/components/form/uploaderFile/index.css +64 -66
  128. package/dist/web/components/form/uploaderFile/uploadFile.h5.js +10 -11
  129. package/dist/web/components/form/uploaderFile/uploadFile.pc.js +3 -2
  130. package/dist/web/components/form/userOrgSelect/common/fetch-data-service.js +120 -38
  131. package/dist/web/components/form/userOrgSelect/common/utils.js +89 -1
  132. package/dist/web/components/form/userOrgSelect/component/depart-breadcrumb.js +15 -0
  133. package/dist/web/components/form/userOrgSelect/component/depart-select/depart-select-pc.js +63 -0
  134. package/dist/web/components/form/userOrgSelect/component/depart-select/index.js +96 -0
  135. package/dist/web/components/form/userOrgSelect/component/depart-select/org-modal-pc.js +69 -0
  136. package/dist/web/components/form/userOrgSelect/{user-select-pc → component}/error-tips.js +0 -0
  137. package/dist/web/components/form/userOrgSelect/component/index.css +323 -0
  138. package/dist/web/components/form/userOrgSelect/component/input-tags.js +21 -0
  139. package/dist/web/components/form/userOrgSelect/component/modal-search-h5.js +25 -0
  140. package/dist/web/components/form/userOrgSelect/component/modal-search.js +11 -0
  141. package/dist/web/components/form/userOrgSelect/component/modal-select-h5.js +201 -0
  142. package/dist/web/components/form/userOrgSelect/component/org-tree-h5.js +19 -0
  143. package/dist/web/components/form/userOrgSelect/component/org-tree.js +33 -0
  144. package/dist/web/components/form/userOrgSelect/component/selected-list-h5.js +44 -0
  145. package/dist/web/components/form/userOrgSelect/component/selected-list.js +15 -0
  146. package/dist/web/components/form/userOrgSelect/component/user-org-list.js +55 -0
  147. package/dist/web/components/form/userOrgSelect/component/user-select-h5/index.js +168 -0
  148. package/dist/web/components/form/userOrgSelect/component/user-select-h5/user-list-h5.js +107 -0
  149. package/dist/web/components/form/userOrgSelect/component/user-select-h5/user-select-h5.js +59 -0
  150. package/dist/web/components/form/userOrgSelect/component/user-select-pc/error-tips.js +11 -0
  151. package/dist/web/components/form/userOrgSelect/{user-select-pc → component/user-select-pc}/model-user-list.js +9 -9
  152. package/dist/web/components/form/userOrgSelect/component/user-select-pc/org-tree.js +10 -0
  153. package/dist/web/components/form/userOrgSelect/component/user-select-pc/user-model.js +75 -0
  154. package/dist/web/components/form/userOrgSelect/component/user-select-pc/user-select-pc.js +65 -0
  155. package/dist/web/components/form/userOrgSelect/component/userOrgSelect.css +1160 -0
  156. package/dist/web/components/form/userOrgSelect/departTreeSelect/departTreeSelect.h5.js +54 -87
  157. package/dist/web/components/form/userOrgSelect/hooks/use-depart-data.js +30 -35
  158. package/dist/web/components/form/userOrgSelect/hooks/use-views-data.js +48 -0
  159. package/dist/web/components/formdetail/index.css +34 -31
  160. package/dist/web/components/formdetail/index.js +12 -3
  161. package/dist/web/components/graphicCard/index.css +15 -18
  162. package/dist/web/components/grid/_utils.css +67 -0
  163. package/dist/web/components/grid/col.js +33 -0
  164. package/dist/web/components/grid/grid.css +1185 -0
  165. package/dist/web/components/grid/grid.js +19 -0
  166. package/dist/web/components/grid/row.js +14 -0
  167. package/dist/web/components/image/image.js +9 -1
  168. package/dist/web/components/image/index.css +2 -5
  169. package/dist/web/components/index.js +17 -3
  170. package/dist/web/components/link/index.css +0 -3
  171. package/dist/web/components/listView/index.css +21 -23
  172. package/dist/web/components/listView/index.js +215 -81
  173. package/dist/web/components/lottery/index.css +72 -75
  174. package/dist/web/components/modal/h5.css +19 -21
  175. package/dist/web/components/modal/modal.h5.js +11 -10
  176. package/dist/web/components/navLayout/index.css +14 -139
  177. package/dist/web/components/navigationBar/common.js +5 -4
  178. package/dist/web/components/navigationBar/h5Menu.js +12 -10
  179. package/dist/web/components/navigationBar/horizontalMenu.js +42 -35
  180. package/dist/web/components/navigationBar/index.css +130 -86
  181. package/dist/web/components/navigationBar/index.js +6 -4
  182. package/dist/web/components/navigationBar/verticalMenu.js +13 -9
  183. package/dist/web/components/pageLayout/PageContent/index.css +7 -10
  184. package/dist/web/components/pageLayout/index.css +0 -3
  185. package/dist/web/components/pageLayout/index.js +2 -1
  186. package/dist/web/components/repeater/index.js +17 -0
  187. package/dist/web/components/repeater-item/index.js +9 -0
  188. package/dist/web/components/richText/index.css +5 -8
  189. package/dist/web/components/richText/index.js +4 -2
  190. package/dist/web/components/richText/richtext.module.css +1 -4
  191. package/dist/web/components/richTextView/index.css +9 -10
  192. package/dist/web/components/swiper/index.css +10 -13
  193. package/dist/web/components/swiper/index.js +25 -5
  194. package/dist/web/components/table/BaseTable.js +355 -286
  195. package/dist/web/components/table/ExportFileModalByApi/index.css +9 -0
  196. package/dist/web/components/table/ExportFileModalByApi/index.js +150 -0
  197. package/dist/web/components/table/FieldRender.js +25 -18
  198. package/dist/web/components/table/FilterFields.js +17 -11
  199. package/dist/web/components/table/Form/Location.css +2 -5
  200. package/dist/web/components/table/ImportFileModal/csvTemplate.json +65 -6
  201. package/dist/web/components/table/ImportFileModalByApi/index.css +130 -0
  202. package/dist/web/components/table/ImportFileModalByApi/index.js +321 -0
  203. package/dist/web/components/table/ImportFileModalByApi/uploadCSVFile.js +115 -0
  204. package/dist/web/components/table/InOrOutRecordModeal.js +139 -0
  205. package/dist/web/components/table/SelectableBlock/index.css +0 -2
  206. package/dist/web/components/table/UserDepartment/viewCell.css +3 -6
  207. package/dist/web/components/table/baseTable.css +579 -0
  208. package/dist/web/components/table/hooks/useImportingStatus.js +69 -0
  209. package/dist/web/components/table/hooks/useInOutFieldsRecords.js +23 -0
  210. package/dist/web/components/table/index.css +275 -508
  211. package/dist/web/components/table/index.js +6 -4
  212. package/dist/web/components/tabs/index.css +19 -18
  213. package/dist/web/components/tabs/tabs.h5.js +7 -16
  214. package/dist/web/components/text/index.css +6 -9
  215. package/dist/web/components/uploaderFileView/index.css +0 -3
  216. package/dist/web/components/uploaderView/index.css +5 -8
  217. package/dist/web/components/wd-bubble/index.js +3 -17
  218. package/dist/web/components/wd-bubble/wd-bubble.js +17 -0
  219. package/dist/web/components/wd-button/convert-legacy-props.js +14 -0
  220. package/dist/web/components/wd-button/index.js +3 -0
  221. package/dist/web/components/wd-button/wd-button.js +89 -0
  222. package/dist/web/components/wd-config-provider/index.js +1 -0
  223. package/dist/web/components/wd-config-provider/wd-config-context.js +5 -0
  224. package/dist/web/components/wd-config-provider/wd-config-provider.js +12 -0
  225. package/dist/web/components/wd-divider/index.js +3 -0
  226. package/dist/web/components/wd-divider/wd-divider.js +29 -0
  227. package/dist/web/components/wd-icon/convert-legacy-props.js +14 -0
  228. package/dist/web/components/wd-icon/index.js +3 -0
  229. package/dist/web/components/wd-icon/wd-icon.js +63 -0
  230. package/dist/web/components/wd-image/image.js +171 -0
  231. package/dist/web/components/wd-image/index.js +82 -0
  232. package/dist/web/components/wd-link/index.js +3 -0
  233. package/dist/web/components/wd-link/wd-link.js +105 -0
  234. package/dist/web/components/wd-table/index.js +3 -0
  235. package/dist/web/components/wd-table/wd-table.js +24 -0
  236. package/dist/web/components/wd-text/convert-legacy-props.js +14 -0
  237. package/dist/web/components/wd-text/index.js +3 -0
  238. package/dist/web/components/wd-text/wd-text.js +91 -0
  239. package/dist/web/components/wedaVideo/index.css +2 -5
  240. package/dist/web/components/wedaVideo/index.js +8 -6
  241. package/dist/web/index.js +1 -1
  242. package/dist/web/utils/config-context/index.js +1 -0
  243. package/dist/web/utils/config-context/use-config.js +9 -0
  244. package/dist/web/utils/constant.js +1 -0
  245. package/dist/web/utils/datasource.js +19 -7
  246. package/dist/web/utils/file.js +22 -0
  247. package/dist/web/utils/hooks/CreatePortal.js +6 -0
  248. package/dist/web/utils/hooks/EnumHoc.js +23 -3
  249. package/dist/web/utils/hooks/context.js +5 -1
  250. package/dist/web/utils/hooks/use-cloud-id-temp-url.js +2 -1
  251. package/dist/web/utils/platform.js +40 -12
  252. package/dist/web/utils/pollingInterface.js +61 -0
  253. package/dist/web/utils/tcb.js +16 -0
  254. package/dist/web/utils/tool.js +88 -0
  255. package/dist/web/utils/widget-api/index.js +18 -0
  256. package/dist/web/weda-ui.css +128 -4
  257. package/package.json +51 -33
  258. package/dist/configs/components/dataView.json +0 -305
  259. package/dist/configs/components/listView.json +0 -515
  260. package/dist/configs/components/wd-bubble.json +0 -170
  261. package/dist/web/components/form/userOrgSelect/comTool.js +0 -102
  262. package/dist/web/components/form/userOrgSelect/departTreeSelect/departTreeSelect.pc.js +0 -155
  263. package/dist/web/components/form/userOrgSelect/departTreeSelect/index.js +0 -17
  264. package/dist/web/components/form/userOrgSelect/getUserService.js +0 -165
  265. package/dist/web/components/form/userOrgSelect/index.js +0 -17
  266. package/dist/web/components/form/userOrgSelect/user-select-pc/index.css +0 -216
  267. package/dist/web/components/form/userOrgSelect/user-select-pc/index.js +0 -195
  268. package/dist/web/components/form/userOrgSelect/user-select-pc/org-tree.js +0 -15
  269. package/dist/web/components/form/userOrgSelect/user-select-pc/search-user.js +0 -80
  270. package/dist/web/components/form/userOrgSelect/user-select-pc/selected-user-list.js +0 -12
  271. package/dist/web/components/form/userOrgSelect/user-select-pc/user-model.js +0 -36
  272. package/dist/web/components/form/userOrgSelect/userOrgSelect.css +0 -824
  273. package/dist/web/components/form/userOrgSelect/userTreeSelect.h5.js +0 -302
  274. package/dist/web/components/form/userOrgSelect/utils.js +0 -95
  275. package/dist/web/components/table/ImportFileModal/index.css +0 -263
  276. package/dist/web/components/wd-bubble/index.css +0 -21
  277. package/dist/web/utils/hooks/useRequest.js +0 -25
@@ -0,0 +1,107 @@
1
+ import React, { useState, useEffect } from 'react';
2
+ import { Radio, Checkbox, List, StatusTip } from 'tea-component';
3
+ import { NullStatus } from '../error-tips';
4
+ import '../userOrgSelect.css';
5
+ export const UserListH5 = (props) => {
6
+ const { multiple, selectedList, setSelectedList, userList, isEnd, isSearch = false, onScrollBottom, loading, onTouchMove, } = props;
7
+ const [checkAll, setCheckAll] = useState(1); //1:未选中;2:半选;3:选中
8
+ const [count, setCount] = useState(0);
9
+ // 用户列表当前页全选逻辑
10
+ const onChange = (value) => {
11
+ setCheckAll(value ? 3 : 1);
12
+ if (value) {
13
+ //全选逻辑
14
+ const storgeUsers = [];
15
+ userList.map((e) => {
16
+ var _a;
17
+ let isContain = false;
18
+ for (let i = 0; i < selectedList.length; i++) {
19
+ //用户已被选中过
20
+ if (((_a = selectedList[i]) === null || _a === void 0 ? void 0 : _a.id) === (e === null || e === void 0 ? void 0 : e.id)) {
21
+ isContain = true;
22
+ break;
23
+ }
24
+ }
25
+ if (!isContain)
26
+ storgeUsers.push(e);
27
+ });
28
+ setSelectedList((selectedList || []).concat(storgeUsers));
29
+ }
30
+ else {
31
+ // 取消全选
32
+ userList.map((e) => {
33
+ selectedList.splice(selectedList.findIndex((s) => (s === null || s === void 0 ? void 0 : s.id) === (e === null || e === void 0 ? void 0 : e.id)), 1);
34
+ });
35
+ setSelectedList([].concat(selectedList));
36
+ }
37
+ };
38
+ useEffect(() => {
39
+ setCount(0);
40
+ const pageTotal = (userList === null || userList === void 0 ? void 0 : userList.length) || 0;
41
+ // 值变更,检查全选状态
42
+ if (multiple && userList && userList.length > 0) {
43
+ // 当前页有部分用户被选中
44
+ let count = 0;
45
+ userList.map((e) => {
46
+ if (selectedList.findIndex((s) => (s === null || s === void 0 ? void 0 : s.id) === (e === null || e === void 0 ? void 0 : e.id)) !== -1) {
47
+ count++;
48
+ }
49
+ });
50
+ if (count === 0) {
51
+ setCheckAll(1);
52
+ }
53
+ else if (count === pageTotal) {
54
+ setCheckAll(3);
55
+ }
56
+ setCount(count);
57
+ }
58
+ }, [selectedList, multiple, userList]);
59
+ return (React.createElement(React.Fragment, null,
60
+ multiple && (React.createElement("div", { className: "weda-select-user-dept__dialog-list-multiple-all" },
61
+ React.createElement("div", { className: "weda-select-user-dept__list-multiple-all", onTouchMove: (e) => onTouchMove(e) },
62
+ React.createElement("div", { className: "weda-select-user-dept__list-item-wrap" },
63
+ React.createElement("div", { className: "weda-select-user-dept__group" },
64
+ React.createElement(Checkbox, { value: checkAll === 3 ? true : false, indeterminate: checkAll === 2, onChange: (value) => {
65
+ onChange(value);
66
+ } },
67
+ "\u6279\u91CF\u9009\u62E9(",
68
+ count,
69
+ "/",
70
+ userList.length,
71
+ ")")))))),
72
+ React.createElement(List, { className: "weda-select-user-dept__dialog-list", onScrollBottom: onScrollBottom }, userList && userList.length > 0 ? (React.createElement(React.Fragment, null,
73
+ (userList || []).map((item, index) => {
74
+ var _a, _b;
75
+ return (React.createElement("div", { className: "weda-select-user-dept__list-item", key: index + (item === null || item === void 0 ? void 0 : item.id), onTouchMove: (e) => onTouchMove(e) },
76
+ React.createElement("div", { className: "weda-select-user-dept__list-item-wrap" },
77
+ React.createElement("div", { className: "weda-select-user-dept__group" },
78
+ multiple ? (React.createElement("div", null,
79
+ React.createElement(Checkbox.Group, { value: selectedList.map((e) => e === null || e === void 0 ? void 0 : e.id), layout: "column" },
80
+ React.createElement(Checkbox, { name: item === null || item === void 0 ? void 0 : item.userId, onChange: (value) => {
81
+ if (value) {
82
+ setSelectedList((selectedList || []).concat([item]));
83
+ }
84
+ else {
85
+ setSelectedList(selectedList.filter((e) => e.id !== (item === null || item === void 0 ? void 0 : item.id)));
86
+ }
87
+ } },
88
+ React.createElement("div", { className: "wedatea2td-form-check-select__user_h5" },
89
+ React.createElement("div", { className: "item-radio-name" }, item === null || item === void 0 ? void 0 : item.content)))))) : (React.createElement(Radio.Group, { value: (_a = selectedList.filter((e) => (e === null || e === void 0 ? void 0 : e.userId) === (item === null || item === void 0 ? void 0 : item.userId))[0]) === null || _a === void 0 ? void 0 : _a.userId, onChange: (value) => {
90
+ const ids = selectedList.map((item) => item === null || item === void 0 ? void 0 : item.userId);
91
+ // 多选情况,取消选中某元素时
92
+ if (ids.indexOf(value) !== -1) {
93
+ setSelectedList(selectedList.filter((e) => e.userId !== value));
94
+ }
95
+ else {
96
+ setSelectedList([item]);
97
+ }
98
+ }, layout: "column" },
99
+ React.createElement(Radio, { name: item === null || item === void 0 ? void 0 : item.userId },
100
+ React.createElement("div", { className: "wedatea2td-form-check-select__user_h5" },
101
+ React.createElement("div", { className: "item-radio-name" }, item === null || item === void 0 ? void 0 : item.content))))),
102
+ isSearch && (item === null || item === void 0 ? void 0 : item.mainOrg) && (item === null || item === void 0 ? void 0 : item.mainOrg.length) > 0 && (React.createElement("div", { className: "item-org-h5" }, (_b = item === null || item === void 0 ? void 0 : item.mainOrg[0]) === null || _b === void 0 ? void 0 : _b.OrgName))))));
103
+ }),
104
+ isEnd && (React.createElement("div", { className: "weda-select-user-dept__load-completed" }, "\u5DF2\u7ECF\u5230\u5E95\u4E86")),
105
+ (loading === null || loading === void 0 ? void 0 : loading.status) && (React.createElement("div", { className: "weda-select-user-dept__load-completed" },
106
+ React.createElement(StatusTip, { status: 'loading' }))))) : (React.createElement(NullStatus, { description: '无可选成员', size: 's' })))));
107
+ };
@@ -0,0 +1,59 @@
1
+ import React, { useState, useImperativeHandle } from 'react';
2
+ import { renderDecorator } from '../../../renderDecorator';
3
+ import classNames from '../../../../../utils/classnames';
4
+ import { defaultRequest } from '../../common/fetch-data-service';
5
+ import { ConfigProvider } from 'tea-component';
6
+ import { ModalSelectH5 } from '../modal-select-h5';
7
+ import { InputTags } from '../input-tags';
8
+ export function UserTreeSelectH5({ id, className, style, label = '成员选择', labelVisible = true, placeholder = '请选择成员', disabled = false, layout = 'horizontal', requiredFlag = false, decorator, multiple = false, //是否多选
9
+ outerRef, pageNo, setPageNo, pageSize,
10
+ // platform,
11
+ request = defaultRequest, onCancel, onConfirm, selectedUserList, setSelectedUserList, confirmUserList, setConfirmUserList, open, setOpen, filterParams, treeData, error, }) {
12
+ const cls = classNames({
13
+ 'weda-ui': true,
14
+ 'weda-select-user-dept': true,
15
+ [className]: className,
16
+ });
17
+ const subCls = classNames({
18
+ 'weui-cell': true,
19
+ 'weui-cell_active': true,
20
+ 'weui-cell_form': true,
21
+ 'weui-cell_disabled': disabled,
22
+ 'weda-select-user-dept__select-result': true,
23
+ });
24
+ const [originalOrgData, setOriginalOrgData] = useState([]);
25
+ const [errorInfo, setErrorInfo] = useState({
26
+ errorStatus: false,
27
+ errorMessage: null,
28
+ });
29
+ useImperativeHandle(outerRef, () => {
30
+ return {
31
+ methods: {
32
+ open: () => {
33
+ setOpen(true);
34
+ },
35
+ },
36
+ };
37
+ }, [setOpen]);
38
+ const onFocus = function () {
39
+ setSelectedUserList(confirmUserList);
40
+ if (!disabled)
41
+ setOpen(true);
42
+ };
43
+ return renderDecorator(React.createElement(ConfigProvider, { classPrefix: "wedatea2td" },
44
+ React.createElement("div", { className: subCls, onClick: onFocus },
45
+ React.createElement(InputTags, { tagsList: confirmUserList, placeholder: placeholder, multiple: multiple, errInfo: errorInfo, disabled: disabled, platForm: 'h5', onClose: (e, item) => {
46
+ setConfirmUserList(confirmUserList.filter((l) => (l === null || l === void 0 ? void 0 : l.id) !== (item === null || item === void 0 ? void 0 : item.id)));
47
+ e.stopPropagation();
48
+ } })),
49
+ React.createElement(ModalSelectH5, { open: open, request: request, treeData: treeData, originalOrgData: originalOrgData, setOriginalOrgData: setOriginalOrgData, multiple: multiple, errorInfo: errorInfo, selectedUserList: selectedUserList, setSelectedUserList: setSelectedUserList, confirmUserList: confirmUserList, onClose: onCancel, onConfirm: onConfirm, setErrorInfo: setErrorInfo, filterParams: filterParams, pageNo: pageNo, setPageNo: setPageNo, pageSize: pageSize, treeDataError: error })))({
50
+ id,
51
+ className: cls,
52
+ style,
53
+ label: labelVisible ? label : null,
54
+ multiCell: false,
55
+ requiredFlag,
56
+ layout,
57
+ decorator,
58
+ });
59
+ }
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import { Status } from 'tea-component';
3
+ export const ErrorStatus = ({ description, title = '接口调用失败' }) => {
4
+ return (React.createElement(Status, { icon: 'blank', size: 's', title: title, description: description }));
5
+ };
6
+ export const NullStatus = ({ title = null, size, description = null }) => {
7
+ return (React.createElement(Status, { icon: 'blank', size: size, title: title, description: description }));
8
+ };
9
+ export const LoadingStatus = () => {
10
+ return React.createElement(Status, { icon: 'loading', size: 's', description: '加载中' });
11
+ };
@@ -1,12 +1,11 @@
1
1
  import React, { useState, useEffect } from 'react';
2
2
  import { Checkbox, Button, Text } from 'tea-component';
3
- import { fetchUserList } from '../common/fetch-data-service';
4
- import { UserOrgContext } from './index';
5
- import { UserList } from './search-user';
6
- import './index.css';
7
- export const ModelUserList = (props) => {
8
- const { selectedOrgId, curPageUserList, setCurPageUserList } = props;
9
- const { selectedUserList, multiple, setSelectedUserList, request, pageNo, setPageNo, pageSize, } = React.useContext(UserOrgContext) || {};
3
+ import { fetchUserList } from '../../common/fetch-data-service';
4
+ import { UserOrgContext } from './user-select-pc';
5
+ import { UserOrgList } from './../user-org-list';
6
+ import '../index.css';
7
+ export const ModelUserList = ({ selectedOrgId, curPageUserList, setCurPageUserList, filterParams, }) => {
8
+ const { selectedUserList, multiple, setSelectedUserList, request, pageNo, setPageNo, pageSize, selectedUserIds, setSelectedIds, } = React.useContext(UserOrgContext) || {};
10
9
  const [errInfo, setErrInfo] = useState({
11
10
  errorStatus: false,
12
11
  errorMessage: null,
@@ -18,7 +17,7 @@ export const ModelUserList = (props) => {
18
17
  try {
19
18
  if (selectedOrgId) {
20
19
  setLoading(true);
21
- fetchUserList({ OrgId: selectedOrgId, pageNo, pageSize }, request).then((res) => {
20
+ fetchUserList({ OrgId: selectedOrgId, pageNo, pageSize, ...filterParams }, request).then((res) => {
22
21
  setLoading(false);
23
22
  setTotal(res === null || res === void 0 ? void 0 : res.total);
24
23
  setCurPageUserList(res.records);
@@ -29,6 +28,7 @@ export const ModelUserList = (props) => {
29
28
  setLoading(false);
30
29
  setErrInfo({ errorStatus: true, errorMessage: e });
31
30
  }
31
+ // eslint-disable-next-line react-hooks/exhaustive-deps
32
32
  }, [selectedOrgId, pageNo]);
33
33
  useEffect(() => {
34
34
  const pageTotal = (curPageUserList === null || curPageUserList === void 0 ? void 0 : curPageUserList.length) || 0;
@@ -95,5 +95,5 @@ export const ModelUserList = (props) => {
95
95
  "/ ",
96
96
  Math.ceil(total / pageSize))),
97
97
  React.createElement(Button, { type: "icon", icon: "arrowright--line", disabled: Math.ceil(total / pageSize) === pageNo, onClick: () => setPageNo(pageNo + 1) }))))),
98
- React.createElement(UserList, { userList: curPageUserList, isOrg: false, loading: loading, errorStatus: errInfo === null || errInfo === void 0 ? void 0 : errInfo.errorStatus, errorMessage: errInfo === null || errInfo === void 0 ? void 0 : errInfo.errorMessage })));
98
+ React.createElement(UserOrgList, { userOrgList: curPageUserList, isOrg: false, loading: loading, errorStatus: errInfo === null || errInfo === void 0 ? void 0 : errInfo.errorStatus, errorMessage: errInfo === null || errInfo === void 0 ? void 0 : errInfo.errorMessage, selectedList: selectedUserList, multiple: multiple, setSelectedList: setSelectedUserList, selectedIds: selectedUserIds, setSelectedIds: setSelectedIds })));
99
99
  };
@@ -0,0 +1,10 @@
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, } = props;
9
+ 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) => onActive(ids) })) : (React.createElement(LoadingStatus, null))))));
10
+ };
@@ -0,0 +1,75 @@
1
+ import React, { useState, useEffect } from 'react';
2
+ import { Button, Modal, Bubble } from 'tea-component';
3
+ import { ModalSearch } from '../modal-search';
4
+ import { UserOrgContext } from './user-select-pc';
5
+ import { OrgTree } from '../org-tree';
6
+ import { ModelUserList } from './model-user-list';
7
+ import { SelectedList } from '../selected-list';
8
+ import { fetchSearchUser } from '../../common/fetch-data-service';
9
+ import debounce from '../../../../../utils/debounce';
10
+ import '../index.css';
11
+ export const UserModel = ({ open, setOpen, onCancel, onConfirm, treeData, treeDataError, filterParams, }) => {
12
+ var _a;
13
+ const { selectedUserList, setSelectedUserIds, request, selectedUserIds, setSelectedUserList, multiple, setPageNo, confirmUserList, } = React.useContext(UserOrgContext) || {};
14
+ const [selectedOrgId, setSelectedOrgId] = useState(null);
15
+ //当前页人员列表
16
+ const [curPageUserList, setCurPageUserList] = useState(null);
17
+ const [searchUserList, setSearchUserList] = useState([]);
18
+ // 是否有搜索项
19
+ const [keyWords, setKeyWords] = useState('');
20
+ const [errInfo, setErrInfo] = useState({
21
+ errorStatus: false,
22
+ errorMessage: null,
23
+ });
24
+ const [loading, setLoading] = useState(false);
25
+ treeData.length > 0 && !selectedOrgId
26
+ ? setSelectedOrgId((_a = treeData[0]) === null || _a === void 0 ? void 0 : _a.id)
27
+ : [];
28
+ useEffect(() => {
29
+ setSelectedUserIds((selectedUserList || []).map((e) => e === null || e === void 0 ? void 0 : e.id));
30
+ // eslint-disable-next-line react-hooks/exhaustive-deps
31
+ }, [selectedUserList]);
32
+ //搜索值变化延迟响应,节流处理
33
+ const onSearch = debounce((key) => {
34
+ try {
35
+ if (key && key.length > 0) {
36
+ setLoading(true);
37
+ fetchSearchUser({ key, ...filterParams }, request).then((res) => {
38
+ setLoading(false);
39
+ setSearchUserList(res);
40
+ });
41
+ }
42
+ else {
43
+ setSearchUserList([]);
44
+ }
45
+ setKeyWords(key);
46
+ }
47
+ catch (e) {
48
+ setLoading(false);
49
+ setErrInfo({ errorStatus: true, errorMessage: e });
50
+ }
51
+ }, 500);
52
+ return (React.createElement(Modal, { visible: open, caption: "\u9009\u62E9\u6210\u5458", onClose: () => setOpen(false), className: "weda-ui weda-ui-user-select-modal" },
53
+ React.createElement(Modal.Body, null,
54
+ React.createElement("div", { className: "weda-ui-user-select-container" },
55
+ React.createElement(ModalSearch, { searchList: searchUserList, errInfo: errInfo, loading: loading, keyWords: keyWords, selectedList: selectedUserList, multiple: multiple, setSelectedList: setSelectedUserList, selectedIds: selectedUserIds, filterParams: filterParams, onSearch: (key) => onSearch(key), onReset: () => setSearchUserList([]) }),
56
+ keyWords.length === 0 && (React.createElement(React.Fragment, null,
57
+ React.createElement("div", { className: "weda-ui-user-select-container-list" },
58
+ React.createElement("div", { className: "weda-ui-user-select-container-list__start" },
59
+ React.createElement(OrgTree, { selectedOrgId: [selectedOrgId], treeData: treeData, treeDataError: treeDataError, onActive: (ids) => {
60
+ setSelectedOrgId(ids[0]);
61
+ setPageNo(1);
62
+ } })),
63
+ React.createElement("div", { className: "weda-ui-user-select-container-list__end" },
64
+ React.createElement(ModelUserList, { selectedOrgId: selectedOrgId, curPageUserList: curPageUserList, setCurPageUserList: setCurPageUserList, filterParams: filterParams })))))),
65
+ React.createElement(SelectedList, { selectedList: selectedUserList, onClose: (item) => {
66
+ //检查是否当前页用户被关闭
67
+ setSelectedUserList(selectedUserList.filter((e) => (e === null || e === void 0 ? void 0 : e.id) !== (item === null || item === void 0 ? void 0 : item.id)));
68
+ } })),
69
+ React.createElement(Modal.Footer, null,
70
+ React.createElement(Button, { type: "weak", onClick: onCancel }, "\u53D6\u6D88"),
71
+ React.createElement(Bubble, { content: selectedUserList.length === 0 && confirmUserList.length == 0
72
+ ? '请选择成员'
73
+ : null },
74
+ React.createElement(Button, { type: "primary", onClick: onConfirm, disabled: selectedUserList.length === 0 && confirmUserList.length == 0 }, "\u786E\u5B9A")))));
75
+ };
@@ -0,0 +1,65 @@
1
+ import React, { useImperativeHandle } from 'react';
2
+ import { renderDecorator } from '../../../renderDecorator';
3
+ import '../index.css';
4
+ import { ConfigProvider, Dropdown } from 'tea-component';
5
+ import { UserModel } from './user-model';
6
+ import { defaultRequest } from '../../common/fetch-data-service';
7
+ import { InputTags } from '../input-tags';
8
+ import classNames from '../../../../../utils/classnames';
9
+ export const UserOrgContext = React.createContext(null);
10
+ export function UserSelectPC({ id, className, style, label = '人员选择', labelVisible = true, //标题显隐
11
+ placeholder = '请选择人员', disabled = false, layout = 'horizontal', requiredFlag = false, size = 'l', multiple = false, //多选
12
+ outerRef, request = defaultRequest, //接口请求
13
+ decorator, onCancel, onConfirm, errInfo, open, setOpen, selectedUserList, setSelectedUserList, confirmUserList, setConfirmUserList, selectedUserIds, setSelectedUserIds, pageNo, setPageNo, pageSize, filterParams, treeData, error, }) {
14
+ // 外层组件类
15
+ const cls = classNames({
16
+ 'weda-ui': true,
17
+ 'weda-user-tree-select': true,
18
+ [className]: className,
19
+ });
20
+ const selectInputCls = classNames({
21
+ 'weda-ui-user-selected': true,
22
+ });
23
+ // 实例 ref 到外部
24
+ useImperativeHandle(outerRef, () => {
25
+ return {
26
+ methods: {
27
+ open: () => {
28
+ setOpen(true);
29
+ },
30
+ },
31
+ };
32
+ }, [setOpen]);
33
+ return renderDecorator(React.createElement(ConfigProvider, { classPrefix: "wedatea2td" },
34
+ React.createElement(UserOrgContext.Provider, { value: {
35
+ selectedUserList,
36
+ multiple,
37
+ setSelectedUserList,
38
+ selectedUserIds,
39
+ setSelectedUserIds,
40
+ confirmUserList,
41
+ request,
42
+ pageNo,
43
+ setPageNo,
44
+ pageSize,
45
+ } },
46
+ React.createElement(Dropdown, { "data-testid": "userSelectDropdown", className: classNames(selectInputCls, `size-${size}`), disabled: disabled, open: open, onOpenChange: (open) => {
47
+ if (open)
48
+ setSelectedUserList(confirmUserList);
49
+ setOpen(open);
50
+ }, appearance: 'button', button: React.createElement(InputTags, { tagsList: confirmUserList, placeholder: placeholder, multiple: multiple, errInfo: errInfo, disabled: disabled, onClose: (e, item) => {
51
+ setConfirmUserList(confirmUserList.filter((l) => (l === null || l === void 0 ? void 0 : l.id) !== (item === null || item === void 0 ? void 0 : item.id)));
52
+ e.stopPropagation();
53
+ } }), overlayClassName: 'weda-ui-user-selected-overlay-hidden', style: { width: '100%' } },
54
+ React.createElement(UserModel, { open: open, setOpen: setOpen, onConfirm: onConfirm, onCancel: onCancel, treeData: treeData || [], treeDataError: error, filterParams: filterParams })))))({
55
+ id,
56
+ className: cls,
57
+ style,
58
+ size,
59
+ label: labelVisible ? label : null,
60
+ layout,
61
+ multiCell: false,
62
+ requiredFlag,
63
+ decorator,
64
+ });
65
+ }