@cloudbase/weda-ui 3.4.9 → 3.4.11

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 (70) hide show
  1. package/dist/configs/components/wd-table.js +1 -1
  2. package/dist/web/components/calendar/index.js +1 -1
  3. package/dist/web/components/form/enumSelect/MultipleSelect.js +1 -0
  4. package/dist/web/components/form/enumSelect/SelectContainer.js +1 -0
  5. package/dist/web/components/form/input/index.js +11 -5
  6. package/dist/web/components/form/location/components/LocationPC/Header.js +1 -0
  7. package/dist/web/components/form/location/index.js +1 -0
  8. package/dist/web/components/form/select/request.js +14 -2
  9. package/dist/web/components/form/uploader/uploader.h5.js +1 -1
  10. package/dist/web/components/form/uploader/uploader.pc.js +3 -2
  11. package/dist/web/components/form/uploaderFile/index.js +2 -0
  12. package/dist/web/components/form/userOrgSelect/common/fetch-data-service.js +47 -43
  13. package/dist/web/components/form/userOrgSelect/common/utils.js +0 -20
  14. package/dist/web/components/form/userOrgSelect/component/depart-select/depart-select-pc.js +8 -3
  15. package/dist/web/components/form/userOrgSelect/component/depart-select/index.js +18 -14
  16. package/dist/web/components/form/userOrgSelect/component/depart-select/org-modal-pc.js +14 -20
  17. package/dist/web/components/form/userOrgSelect/component/modal-select-h5.js +1 -1
  18. package/dist/web/components/form/userOrgSelect/component/org-tree.js +1 -3
  19. package/dist/web/components/form/userOrgSelect/component/user-select-h5/index.js +4 -29
  20. package/dist/web/components/form/userOrgSelect/component/user-select-pc/user-model.js +7 -2
  21. package/dist/web/components/form/userOrgSelect/component/user-select-pc/user-select-pc.js +4 -6
  22. package/dist/web/components/form/userOrgSelect/component/userOrgSelect.css +2 -8
  23. package/dist/web/components/form/userOrgSelect/departTreeSelect/departTreeSelect.h5.js +51 -25
  24. package/dist/web/components/form-input-hooks/index.js +2 -1
  25. package/dist/web/components/repeater/index.js +1 -0
  26. package/dist/web/components/repeater-item/index.js +1 -0
  27. package/dist/web/components/statusContent/index.js +1 -0
  28. package/dist/web/components/table/ImportFileModalByApi/uploadCSVFile.js +1 -1
  29. package/dist/web/components/wd-form/index.js +3 -2
  30. package/dist/web/components/wd-table/components/FieldRender/index.js +15 -18
  31. package/dist/web/components/wd-table/wd-table.js +18 -18
  32. package/dist/web/utils/datasource.js +23 -17
  33. package/package.json +1 -1
  34. package/dist/web/components/emptyContent/index.js +0 -46
  35. package/dist/web/components/flow/components/FlowModuleText/Content.js +0 -6
  36. package/dist/web/components/flow/components/FlowModuleText/Title.js +0 -16
  37. package/dist/web/components/flow/components/FlowModuleText/index.js +0 -7
  38. package/dist/web/components/flow/components/FlowModuleText/utils.js +0 -34
  39. package/dist/web/components/flow/components/FlowStatusText/index.js +0 -37
  40. package/dist/web/components/flow/components/HighLightComment/index.js +0 -31
  41. package/dist/web/components/flow/components/index.js +0 -3
  42. package/dist/web/components/flow/constants/index.js +0 -65
  43. package/dist/web/components/flow/frame/getCommonFlowData.js +0 -80
  44. package/dist/web/components/flow/frame/hooks/index.js +0 -2
  45. package/dist/web/components/flow/frame/hooks/useCommonFlowRequest.js +0 -148
  46. package/dist/web/components/flow/frame/hooks/useElementMediaQuery.js +0 -15
  47. package/dist/web/components/flow/frame/index.js +0 -76
  48. package/dist/web/components/flow/frame/types.js +0 -277
  49. package/dist/web/components/flow/frame/utils.js +0 -149
  50. package/dist/web/components/flow/modules/chart/Chart.js +0 -282
  51. package/dist/web/components/flow/modules/chart/constants.js +0 -28
  52. package/dist/web/components/flow/modules/chart/index.css +0 -84
  53. package/dist/web/components/flow/modules/chart/isString.js +0 -5
  54. package/dist/web/components/flow/modules/chart/utils.js +0 -111
  55. package/dist/web/components/flow/modules/operations/controls-items/flow-task-info-modal.js +0 -98
  56. package/dist/web/components/flow/modules/process/Process.js +0 -73
  57. package/dist/web/components/flow/modules/process/ProcessMobile.js +0 -81
  58. package/dist/web/components/flow/modules/process/index.js +0 -14
  59. package/dist/web/components/flow/modules/process/utils/index.js +0 -32
  60. package/dist/web/components/flow/services/flow.js +0 -111
  61. package/dist/web/components/flow/services/ideData/chart.js +0 -88
  62. package/dist/web/components/flow/services/ideData/index.js +0 -5
  63. package/dist/web/components/flow/services/ideData/instance.js +0 -23
  64. package/dist/web/components/flow/services/ideData/pageDetail.js +0 -42
  65. package/dist/web/components/flow/services/ideData/process.js +0 -27
  66. package/dist/web/components/flow/services/index.js +0 -2
  67. package/dist/web/components/flow/services/user.js +0 -23
  68. package/dist/web/components/flow/services/utils.js +0 -28
  69. package/dist/web/components/form/userOrgSelect/component/OrgPaths.js +0 -12
  70. package/dist/web/components/form/userOrgSelect/component/depart-select/departTreeSelect.h5.js +0 -156
@@ -20,7 +20,7 @@ const commonProperties = {
20
20
  'x-linkages': [
21
21
  {
22
22
  type: 'value:state',
23
- target: '*( filterFields,bindMetadata,queryCondition,orderBy,orderType,defaultPageSize)',
23
+ target: '*( filterFields,bindMetadata,queryCondition,orderBy,orderType,defaultPageSize,defaultPageIndex)',
24
24
  condition: "{{$self.value !='custom-connector'}}",
25
25
  state: {
26
26
  display: true,
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useState, useEffect, useMemo } from 'react';
2
+ import React, { useState, useEffect, useMemo } from 'react';
3
3
  import { usePlatform } from '../../utils/platform';
4
4
  import { ConfigProvider, Select } from 'tea-component';
5
5
  import * as PropTypes from 'prop-types';
@@ -1,4 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as React from 'react';
2
3
  import { SelectMultiple } from 'tea-component';
3
4
  import SelectContainer from './SelectContainer';
4
5
  import { normalProps } from './props/defaultProps';
@@ -1,4 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as React from 'react';
2
3
  import classNames from '../../../utils/classnames';
3
4
  import { selectContainerPropsTypes } from './props/propsTypes';
4
5
  import { renderDecorator } from '../renderDecorator';
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import * as React from 'react';
3
3
  import classNames from '../../../utils/classnames';
4
4
  import { usePlatform } from '../../../utils/platform';
@@ -59,14 +59,20 @@ label = '标题', labelVisible = true, name = 'formInput', defaultValue = '', pa
59
59
  e.preventDefault();
60
60
  };
61
61
  const onKeyDown = function (e) {
62
- var _a;
62
+ var _a, _b;
63
63
  // 确认逻辑
64
64
  if (e.key === 'enter' || e.keyCode === 13) {
65
65
  (_a = events === null || events === void 0 ? void 0 : events.confirm) === null || _a === void 0 ? void 0 : _a.call(events, { value: e.target.value }, { originEvent: e });
66
66
  }
67
67
  // 数字类型的键盘, 不能输入e
68
- if (inputType === 'number' && e.key === 'e') {
69
- e.preventDefault();
68
+ if (inputType === 'number') {
69
+ if (e.key === 'e') {
70
+ e.preventDefault();
71
+ }
72
+ // 不能输入 -
73
+ if (e.key === '-' && ((_b = e.target.value) === null || _b === void 0 ? void 0 : _b.length) > 0) {
74
+ e.preventDefault();
75
+ }
70
76
  }
71
77
  };
72
78
  const onFocus = function (e) {
@@ -79,7 +85,7 @@ label = '标题', labelVisible = true, name = 'formInput', defaultValue = '', pa
79
85
  (_a = events === null || events === void 0 ? void 0 : events.blur) === null || _a === void 0 ? void 0 : _a.call(events, { value: e.target.value }, { originEvent: e });
80
86
  setIsFocus(false);
81
87
  };
82
- const fieldEl = platform === 'h5' ? (_jsx("div", { className: subCls, children: _jsxs("div", { className: "weui-cell__bd weui-flex", children: [_jsx("input", { className: "weui-input", "data-testid": "weui-input-test", type: inputType, placeholder: placeholder, value: value, disabled: disabled, name: name, autoFocus: autoFocus, onChange: onChange, onFocus: onFocus, onBlur: onBlur, onKeyDown: onKeyDown, role: "input" }), clearable && (_jsx("button", { "data-testid": "weui-btn_input-clear-test", className: "weui-btn_reset weui-btn_icon weui-btn_input-clear", onMouseDown: onClear, children: _jsx("i", { className: "weui-icon-clear" }) }))] }) })) : (_jsx(ConfigProvider, { classPrefix: "wedatea2td", children: _jsxs("div", { className: 'weui-pc-input', children: [_jsx(TeaInput, { "data-testid": "weui-input-test-pc", className: 'pc-input', size: size, type: inputType, placeholder: placeholder, value: value, disabled: disabled, name: name, autoFocus: autoFocus, onChange: onChange, onFocus: onFocus, onBlur: onBlur, onKeyDown: onKeyDown }), showPcClear && (_jsx(Icon, { "data-testid": "weui-input-test-pc-clear", className: 'pc-clear', type: "dismiss", size: "s", onMouseDown: onClear }))] }) }));
88
+ const fieldEl = platform === 'h5' ? (_jsx(_Fragment, { children: _jsx("div", { className: subCls, children: _jsxs("div", { className: "weui-cell__bd weui-flex", children: [_jsx("input", { className: "weui-input", "data-testid": "weui-input-test", type: inputType, placeholder: placeholder, value: value, disabled: disabled, name: name, autoFocus: autoFocus, onChange: onChange, onFocus: onFocus, onBlur: onBlur, onKeyDown: onKeyDown, role: "input" }), clearable && (_jsx("button", { "data-testid": "weui-btn_input-clear-test", className: "weui-btn_reset weui-btn_icon weui-btn_input-clear", onMouseDown: onClear, children: _jsx("i", { className: "weui-icon-clear" }) }))] }) }) })) : (_jsx(ConfigProvider, { classPrefix: "wedatea2td", children: _jsxs("div", { className: 'weui-pc-input', children: [_jsx(TeaInput, { "data-testid": "weui-input-test-pc", className: 'pc-input', size: size, type: inputType, placeholder: placeholder, value: value, disabled: disabled, name: name, autoFocus: autoFocus, onChange: onChange, onFocus: onFocus, onBlur: onBlur, onKeyDown: onKeyDown }), showPcClear && (_jsx(Icon, { "data-testid": "weui-input-test-pc-clear", className: 'pc-clear', type: "dismiss", size: "s", onMouseDown: onClear }))] }) }));
83
89
  return renderDecorator(fieldEl, decorator)({
84
90
  id,
85
91
  className: cls,
@@ -1,4 +1,5 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import * as React from 'react';
2
3
  import { Button } from 'tea-component';
3
4
  import classNames from '../../../../../utils/classnames';
4
5
  const Header = ({ onClick, isEdit, info, disabled, showLngLat, locationType, dataSourceStatus, apiKeyStatus, currentLocStatus, }) => {
@@ -1,4 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as React from 'react';
2
3
  import { ConfigProvider } from 'tea-component';
3
4
  import './index.css';
4
5
  import { usePlatform } from '../../../utils/platform';
@@ -30,10 +30,22 @@ export const requestFatherRelatedOption = async (params, pageNo, type, searchVal
30
30
  let realWhere = [];
31
31
  if (searchValue) {
32
32
  if (type === RequestOptionType.SEARCH) {
33
- realWhere = [{ key: primaryField, val: searchValue, rel: 'search' }];
33
+ realWhere = [
34
+ {
35
+ [primaryField]: {
36
+ $search: searchValue,
37
+ },
38
+ },
39
+ ];
34
40
  }
35
41
  else if (type === RequestOptionType.EQUAL) {
36
- realWhere = [{ key: '_id', val: searchValue, rel: 'eq' }];
42
+ realWhere = [
43
+ {
44
+ _id: {
45
+ $eq: searchValue,
46
+ },
47
+ },
48
+ ];
37
49
  }
38
50
  }
39
51
  realWhere = [{ $and: [...getWhereList(where), ...realWhere] }];
@@ -137,7 +137,7 @@ export function ImageUploaderH5({ title: label, maxUploadCount, maxSize = 10, ac
137
137
  if (!islegalType(files, accepts))
138
138
  return;
139
139
  if (files.some((f) => f.size > maxSize * 1024 * 1024)) {
140
- weui.alert('请上传不超过10M的图片');
140
+ weui.alert(`请上传不超过 ${maxSize}M 的图片`);
141
141
  return false;
142
142
  }
143
143
  if (files.length > finalMaxImgCount) {
@@ -36,7 +36,8 @@ export function UploaderPC({ layout, className, id, style, title, tips, ...props
36
36
  export function UploaderPCInner(props) {
37
37
  var _a;
38
38
  const { tips = '', btnTitle = '上传图片', maxUploadCount = 9, maxSize = 10, defaultValue, // 需要兼容 cloud:和https: 协议,需要兼容 字符串和字符串数组
39
- acceptTypes = IMAGE_TYPES, uploadPath = 'weda-uploader', events = emptyObject, single = false, disabled = false, onChange, imgTypeCls, $node, } = props;
39
+ acceptTypes = IMAGE_TYPES, uploadPath = 'weda-uploader', events = emptyObject, single = false, disabled = false, onChange, imgTypeCls, $node, value, // 数据管理后台中,formily使用此字段传默认值
40
+ } = props;
40
41
  // 上传中
41
42
  const [uploading, setUploading] = React.useState(false);
42
43
  //上传进度
@@ -47,7 +48,7 @@ export function UploaderPCInner(props) {
47
48
  const formType = ((_a = getParentForm($node)) === null || _a === void 0 ? void 0 : _a.formType) || 'create';
48
49
  React.useEffect(() => {
49
50
  let initialValue = []
50
- .concat(defaultValue)
51
+ .concat(value ? value : defaultValue)
51
52
  .filter((d) => typeof d === 'string' && d !== '');
52
53
  if (single) {
53
54
  initialValue = initialValue[0] ? [initialValue[0]] : [];
@@ -1,4 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ /* eslint-disable react/prop-types */
3
+ import * as React from 'react';
2
4
  import { usePlatform } from '../../../utils/platform';
3
5
  import { UploadFileH5 as UploaderH5 } from './uploadFile.h5';
4
6
  import { UploadFilePc } from './uploadFile.pc';
@@ -42,26 +42,23 @@ export const errorHandle = (error, action) => {
42
42
  */
43
43
  export const fetchUserListByIds = async (selectUserIds = [], request) => {
44
44
  try {
45
- const PAGE_SIZE = 50;
46
- const total = selectUserIds.length;
47
- const records = [];
48
- const promises = [];
49
- for (let index = 1; index <= Math.ceil(total / PAGE_SIZE); index++) {
50
- const start = (index - 1) * PAGE_SIZE;
51
- const end = start + PAGE_SIZE;
52
- promises.push(request('DescribeWedaUsersRuntime', {
53
- UserIds: selectUserIds.slice(start, end),
45
+ let pageNo = 1;
46
+ const pageSize = 50;
47
+ let records = [];
48
+ let total = 9999;
49
+ for (let index = 0; index < Math.floor(total / pageSize) + 1; index++) {
50
+ const data = await request('DescribeWedaUsersRuntime', {
51
+ pageNo: pageNo,
52
+ pageSize: pageSize,
53
+ UserIds: selectUserIds || [],
54
54
  UserType: 'internalUser',
55
55
  NeedPrimaryColumn: true,
56
56
  IsNoRelatedOrgFlag: false,
57
- }));
58
- }
59
- const results = await Promise.all(promises);
60
- for (const res of results) {
61
- if (res.UserList &&
62
- Array.isArray(res.UserList) &&
63
- res.UserList.length > 0) {
64
- records.push(...res.UserList);
57
+ });
58
+ pageNo = pageNo + 1;
59
+ if (data === null || data === void 0 ? void 0 : data.UserList) {
60
+ total = (data === null || data === void 0 ? void 0 : data.Total) || 0;
61
+ records = records.concat(data === null || data === void 0 ? void 0 : data.UserList);
65
62
  }
66
63
  }
67
64
  return records;
@@ -175,36 +172,43 @@ async function fetchUsersByOrgId(params, request) {
175
172
  }
176
173
  }
177
174
  /**
178
- *获取全量组织数据
175
+ * 获取当前组织列表总数
179
176
  */
180
- export const DescribeOrgs = async (request) => {
177
+ export const fetchOrgTotal = async (request) => {
181
178
  try {
182
- const PAGE_SIZE = 1000;
183
- const { Total = 0, DataList = [] } = await request('DescribeOrgs', {
179
+ return await request('DescribeOrgs', {
184
180
  pageNo: 1,
185
- pageSize: PAGE_SIZE,
181
+ pageSize: 1,
182
+ }).then((data) => {
183
+ return (data === null || data === void 0 ? void 0 : data.Total) || 0;
186
184
  });
187
- const total = Number(Total);
188
- // 一页拉取了全部数据,直接返回
189
- if (total <= PAGE_SIZE) {
190
- return DataList;
191
- }
192
- const records = [...DataList];
193
- const promises = [];
194
- // 从第二页开始,并发拉取所有
195
- for (let index = 2; index <= Math.ceil(total / PAGE_SIZE); index++) {
196
- promises.push(request('DescribeOrgs', {
197
- pageNo: index,
198
- pageSize: PAGE_SIZE,
199
- }));
200
- }
201
- const results = await Promise.all(promises);
202
- for (const res of results) {
203
- if (res.DataList &&
204
- Array.isArray(res.DataList) &&
205
- res.DataList.length > 0) {
206
- records.push(...res.DataList);
185
+ }
186
+ catch (error) {
187
+ console.error('错误', error);
188
+ throw errorHandle(error, 'fetchOrgTotal');
189
+ }
190
+ };
191
+ /**
192
+ *获取全量组织数据
193
+ */
194
+ export const DescribeOrgs = async (request) => {
195
+ try {
196
+ const total = await fetchOrgTotal(request);
197
+ let records = [];
198
+ if (total > 0) {
199
+ const resultPromise = [];
200
+ for (let index = 1; index <= Math.ceil(total / 1000); index++) {
201
+ const DescribeOrgsByPage = request('DescribeOrgs', {
202
+ pageNo: index,
203
+ pageSize: 1000,
204
+ }) || {};
205
+ resultPromise.push(DescribeOrgsByPage);
207
206
  }
207
+ await Promise.all(resultPromise).then((data) => {
208
+ (data || []).map((item) => {
209
+ records = records.concat(item === null || item === void 0 ? void 0 : item.DataList);
210
+ });
211
+ });
208
212
  }
209
213
  return records;
210
214
  }
@@ -252,6 +256,6 @@ export const fetchViewList = async () => {
252
256
  }
253
257
  catch (error) {
254
258
  console.error('错误', error);
255
- throw errorHandle(error, 'fetchViewList');
259
+ throw errorHandle(error, 'DescribeOrgs');
256
260
  }
257
261
  };
@@ -306,23 +306,3 @@ export const formatTree = (nodes) => {
306
306
  }
307
307
  return [];
308
308
  };
309
- /**
310
- * 根据code再树结构中查找节点
311
- * @param treeData
312
- * @param code
313
- * @returns
314
- */
315
- export const getNodeFromTreeByCode = (treeData, code) => {
316
- for (const node of treeData) {
317
- if (node.code === code) {
318
- return node;
319
- }
320
- if (node.children) {
321
- const result = getNodeFromTreeByCode(node.children, code);
322
- if (result) {
323
- return result;
324
- }
325
- }
326
- }
327
- return null;
328
- };
@@ -3,12 +3,14 @@ import React, { useState } from 'react';
3
3
  import { renderDecorator } from '../../../renderDecorator';
4
4
  import classNames from '../../../../../utils/classnames';
5
5
  import { Dropdown, ConfigProvider } from 'tea-component';
6
+ //import {dealOrgData } from '../../utils';
6
7
  import { defaultRequest } from '../../common/fetch-data-service';
7
8
  import '../index.css';
8
9
  import { OrgModalPC } from './org-modal-pc';
9
10
  import { InputTags } from '../../component/input-tags';
11
+ import { filterStrList } from '../../../../../utils/platform';
10
12
  export const OrgTreeContext = React.createContext(null);
11
- export function DepartTreeSelectPC({ id, className, style, label = '部门选择', labelVisible = true, placeholder = '请选择部门', disabled = false, layout = 'horizontal', requiredFlag = false, size = 'l', multiple = false, decorator, request = defaultRequest, confirmOrgList, setConfirmOrgList, selectedOrgList, setSelectedOrgList, errorInfo, setErrorInfo, treeData, orgList, error, defaultExpandedIds, }) {
13
+ export function DepartTreeSelectPC({ id, className, style, label = '部门选择', labelVisible = true, placeholder = '请选择部门', disabled = false, layout = 'horizontal', requiredFlag = false, size = 'l', multiple = false, decorator, request = defaultRequest, confirmOrgList, confirmOrgIds, setConfirmOrgList, selectedOrgIds, setSelectedOrgIds, selectedOrgList, setSelectedOrgList, errorInfo, setErrorInfo, treeData, orgList, error, defaultExpandedIds, }) {
12
14
  const [open, setOpen] = useState(false);
13
15
  // 外层组件类
14
16
  const cls = classNames({
@@ -23,18 +25,21 @@ export function DepartTreeSelectPC({ id, className, style, label = '部门选择
23
25
  };
24
26
  //取消 关闭弹窗
25
27
  const onCancel = () => {
26
- setSelectedOrgList(confirmOrgList);
28
+ setSelectedOrgList([]);
27
29
  setOpen(false);
28
30
  };
29
31
  return renderDecorator(_jsx(ConfigProvider, { classPrefix: "wedatea2td", children: _jsx(OrgTreeContext.Provider, { value: {
32
+ selectedOrgList,
30
33
  multiple,
31
34
  setSelectedOrgList,
32
- selectedOrgList,
33
35
  confirmOrgList,
36
+ selectedOrgIds,
37
+ setSelectedOrgIds,
34
38
  defaultExpandedIds,
35
39
  request,
36
40
  }, children: _jsx(Dropdown, { className: classNames(`weda-ui-org-selected`, `size-${size}`), open: open, onOpenChange: (open) => {
37
41
  setOpen(open);
42
+ setSelectedOrgIds(filterStrList(confirmOrgIds));
38
43
  setErrorInfo({ errorStatus: false, errorMessage: null });
39
44
  }, appearance: 'button', button: _jsx(InputTags, { tagsList: confirmOrgList, placeholder: placeholder, multiple: multiple, errInfo: errorInfo, disabled: disabled, onClose: (e, item) => {
40
45
  setConfirmOrgList(confirmOrgList.filter((l) => (l === null || l === void 0 ? void 0 : l.id) !== (item === null || item === void 0 ? void 0 : item.id)));
@@ -22,6 +22,8 @@ export default function DepartTreeSelect(props) {
22
22
  const prevDefaultRef = React.useRef(null);
23
23
  // 最终选定部门id
24
24
  const [confirmOrgIds, setConfirmOrgIds] = useSyncValue(defaultValue, isObjectEqual);
25
+ //弹窗中被选中部门id集合
26
+ const [selectedOrgIds, setSelectedOrgIds] = useState([]);
25
27
  // 最终选定部门集合
26
28
  const [confirmOrgList, setConfirmOrgList] = useState([]);
27
29
  //弹窗中被选中部门集合
@@ -59,23 +61,23 @@ export default function DepartTreeSelect(props) {
59
61
  }
60
62
  // eslint-disable-next-line react-hooks/exhaustive-deps
61
63
  }, [defaultValueType, confirmValue]);
62
- useEffect(() => {
63
- const getDefaultOrg = async (ids) => {
64
- try {
65
- setErrorInfo({ errorStatus: false, errorMessage: null });
66
- if (ids && ids.length !== 0 && !isInIde()) {
67
- const { orgList } = await getDepartByIds({ ids, request });
68
- setConfirmOrgList(orgList || []);
69
- }
70
- else {
71
- setConfirmOrgList([]);
72
- }
64
+ const getDefaultOrg = async (ids) => {
65
+ try {
66
+ setErrorInfo({ errorStatus: false, errorMessage: null });
67
+ if (ids && ids.length !== 0 && !isInIde()) {
68
+ const { orgList } = await getDepartByIds({ ids, request });
69
+ setConfirmOrgList(orgList || []);
73
70
  }
74
- catch (e) {
71
+ else {
75
72
  setConfirmOrgList([]);
76
- setErrorInfo({ errorStatus: true, errorMessage: e });
77
73
  }
78
- };
74
+ }
75
+ catch (e) {
76
+ setConfirmOrgList([]);
77
+ setErrorInfo({ errorStatus: true, errorMessage: e });
78
+ }
79
+ };
80
+ useEffect(() => {
79
81
  try {
80
82
  if (!isObjectEqual(prevDefaultRef.current, confirmOrgIds)) {
81
83
  getDefaultOrg(confirmOrgIds);
@@ -114,6 +116,8 @@ export default function DepartTreeSelect(props) {
114
116
  confirmOrgIds,
115
117
  confirmOrgList,
116
118
  setConfirmOrgList,
119
+ selectedOrgIds,
120
+ setSelectedOrgIds,
117
121
  selectedOrgList,
118
122
  setSelectedOrgList,
119
123
  errorInfo,
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- import React, { useState, useCallback, useMemo } from 'react';
2
+ import React, { useState, useEffect } from 'react';
3
3
  import { Button, Modal, Bubble } from 'tea-component';
4
4
  import { ModalSearch } from '../modal-search';
5
5
  import { OrgTreeContext } from './depart-select-pc';
@@ -10,7 +10,7 @@ import debounce from '../../../../../utils/debounce';
10
10
  import '../index.css';
11
11
  export const OrgModalPC = (props) => {
12
12
  const { open, setOpen, onCancel, onConfirm, treeData, orgList, treeDataError, } = props;
13
- const { multiple, setSelectedOrgList, selectedOrgList, confirmOrgList, defaultExpandedIds, } = React.useContext(OrgTreeContext) || {};
13
+ const { selectedOrgList, multiple, setSelectedOrgList, confirmOrgList, selectedOrgIds, setSelectedOrgIds, defaultExpandedIds, } = React.useContext(OrgTreeContext) || {};
14
14
  const [searchOrgList, setSearchOrgList] = useState([]);
15
15
  // 是否有搜索项
16
16
  const [keyWords, setKeyWords] = useState('');
@@ -19,7 +19,13 @@ export const OrgModalPC = (props) => {
19
19
  errorMessage: null,
20
20
  });
21
21
  const [loading, setLoading] = useState(false);
22
- const selectedIds = useMemo(() => selectedOrgList.map((item) => item.id), [selectedOrgList]);
22
+ useEffect(() => {
23
+ let selectOrgList = [];
24
+ []
25
+ .concat(selectedOrgIds)
26
+ .map((e) => (selectOrgList = selectOrgList.concat(orgList.filter((item) => (item === null || item === void 0 ? void 0 : item.id) === e))));
27
+ setSelectedOrgList(selectOrgList);
28
+ }, [selectedOrgIds]);
23
29
  //搜索值变化延迟响应,节流处理
24
30
  const onSearch = debounce((key) => {
25
31
  try {
@@ -39,24 +45,12 @@ export const OrgModalPC = (props) => {
39
45
  setErrInfo({ errorStatus: true, errorMessage: e });
40
46
  }
41
47
  }, 500);
42
- const handleSelectedIdsChange = useCallback((ids) => {
43
- const items = [];
44
- if (ids.length > 0) {
45
- for (const id of ids) {
46
- const item = orgList.find((i) => i.id === id);
47
- if (item) {
48
- items.push(item);
49
- }
50
- }
51
- }
52
- if (items.length > 0) {
53
- setSelectedOrgList(items);
54
- }
55
- }, [orgList, setSelectedOrgList]);
56
- return (_jsxs(Modal, { disableEscape: true, maskClosable: false, visible: open, caption: "\u9009\u62E9\u90E8\u95E8", onClose: () => setOpen(false), className: "weda-ui weda-ui-user-select-modal", children: [_jsxs(Modal.Body, { children: [_jsxs("div", { className: "weda-ui-user-select-container", children: [_jsx(ModalSearch, { searchList: searchOrgList, errInfo: errInfo, loading: loading, keyWords: keyWords, selectedList: selectedOrgList, multiple: multiple, setSelectedList: setSelectedOrgList, setSelectedIds: handleSelectedIdsChange, selectedIds: selectedIds, onSearch: (key) => onSearch(key), onReset: () => setSearchOrgList([]), isUser: false }), keyWords.length === 0 && (_jsx(_Fragment, { children: _jsx("div", { className: "weda-ui-user-select-container-list", children: _jsx("div", { className: "weda-ui-user-select-container-list__start", children: _jsx(OrgTree, { selectedOrgId: selectedIds, mutiple: multiple,
48
+ return (_jsxs(Modal, { visible: open, caption: "\u9009\u62E9\u90E8\u95E8", onClose: () => setOpen(false), className: "weda-ui weda-ui-user-select-modal", children: [_jsxs(Modal.Body, { children: [_jsxs("div", { className: "weda-ui-user-select-container", children: [_jsx(ModalSearch, { searchList: searchOrgList, errInfo: errInfo, loading: loading, keyWords: keyWords, selectedList: selectedOrgList, multiple: multiple, setSelectedList: setSelectedOrgList, setSelectedIds: setSelectedOrgIds, selectedIds: selectedOrgIds, onSearch: (key) => onSearch(key), onReset: () => setSearchOrgList([]), isUser: false }), keyWords.length === 0 && (_jsx(_Fragment, { children: _jsx("div", { className: "weda-ui-user-select-container-list", children: _jsx("div", { className: "weda-ui-user-select-container-list__start", children: _jsx(OrgTree, { selectedOrgId: selectedOrgIds, mutiple: multiple,
57
49
  //setSelectedOrgId={setSelectedOrgId}
58
- isUser: false, treeData: treeData, treeDataError: treeDataError, selectable: true, defaultExpandedIds: defaultExpandedIds, onActive: (ids) => handleSelectedIdsChange(ids) }) }) }) }))] }), _jsx(SelectedList, { selectedList: selectedOrgList, isUser: false, onClose: (item) => {
59
- setSelectedOrgList(selectedOrgList.filter((data) => data.id !== (item === null || item === void 0 ? void 0 : item.id)));
50
+ isUser: false, treeData: treeData, treeDataError: treeDataError, selectable: true, defaultExpandedIds: defaultExpandedIds, onActive: (ids) => {
51
+ setSelectedOrgIds(ids);
52
+ } }) }) }) }))] }), _jsx(SelectedList, { selectedList: selectedOrgList, isUser: false, onClose: (item) => {
53
+ setSelectedOrgIds(selectedOrgIds.filter((e) => e !== (item === null || item === void 0 ? void 0 : item.id)));
60
54
  } })] }), _jsxs(Modal.Footer, { children: [_jsx(Button, { type: "weak", onClick: onCancel, children: "\u53D6\u6D88" }), _jsx(Bubble, { content: selectedOrgList.length === 0 && confirmOrgList.length === 0
61
55
  ? '请选择部门'
62
56
  : null, children: _jsx(Button, { type: "primary", onClick: onConfirm, disabled: selectedOrgList.length === 0 && confirmOrgList.length === 0, children: "\u786E\u5B9A" }) })] })] }));
@@ -197,7 +197,7 @@ export const ModalSelectH5 = (props) => {
197
197
  document.getElementById('wd-search-input').blur();
198
198
  e.stopPropagation();
199
199
  };
200
- return (_jsxs(Modal, { disableEscape: true, maskClosable: false, visible: open, onClose: () => {
200
+ return (_jsxs(Modal, { visible: open, onClose: () => {
201
201
  onrest();
202
202
  onClose();
203
203
  }, destroyOnClose: true, className: `weda-ui weda-select-user-dept__dialog`, children: [_jsxs(Modal.Body, { className: ((_a = selectedUserList[0]) === null || _a === void 0 ? void 0 : _a.userId) ? 'is-selected-value' : '', children: [_jsx("div", { className: "weda-select-user-dept__dialog-header", children: '选择成员' }), _jsx(ModalSearchH5, { value: keyWords, onChange: (key) => {
@@ -35,7 +35,5 @@ export const OrgTree = (props) => {
35
35
  onChange(ids, context === null || context === void 0 ? void 0 : context.active, context === null || context === void 0 ? void 0 : context.nodeId, (_a = context === null || context === void 0 ? void 0 : context.data) === null || _a === void 0 ? void 0 : _a.selectable);
36
36
  }, onSelect: (ids, context) => {
37
37
  onChange(ids, context === null || context === void 0 ? void 0 : context.selected, context === null || context === void 0 ? void 0 : context.nodeId, true);
38
- },
39
- // 开启虚拟滚动,优化大数据量性能!!
40
- height: 320 })) : (_jsx(LoadingStatus, {})) })) }));
38
+ } })) : (_jsx(LoadingStatus, {})) })) }));
41
39
  };
@@ -12,14 +12,7 @@ import { useViewData } from '../../hooks/use-views-data';
12
12
  import { useDepartData } from '../../hooks/use-depart-data';
13
13
  import { parseStrToArr } from '../../common/utils';
14
14
  export default function UserTreeSelect(props) {
15
- const { events = emptyObject, defaultValue = emptyArray, confirmValue = '', defaultValueType = 'noneUser', onChange = null, multiple = false, request = defaultRequest, where, confirmAction, closeAction, secondDisplay, // 辅助信息
16
- /**
17
- * 以下两个属性 不用在组件库,企业工作台使用该组件时支持外部定义样式
18
- * naked: 单纯使用该组件,而不在FormCell中使用(该组件实现默认在在)
19
- * containerClass: string
20
- * triggerElement: React.ReactNode
21
- */
22
- naked = false, containerClass = '', triggerElement = null, } = props;
15
+ const { events = emptyObject, defaultValue = emptyArray, confirmValue = '', defaultValueType = 'noneUser', onChange = null, multiple = false, request = defaultRequest, where, confirmAction, closeAction, } = props;
23
16
  const platform = usePlatform();
24
17
  const [errInfo, setErrInfo] = useState({
25
18
  errorStatus: false,
@@ -29,8 +22,6 @@ export default function UserTreeSelect(props) {
29
22
  const [selectUserIds, setSelectUserIds] = useSyncValue(defaultValue, isObjectEqual);
30
23
  // 两次默认值不同, 需要刷新
31
24
  const prevDefaultRef = React.useRef(null);
32
- // 当前选中的部门id
33
- const [selectedOrgId, setSelectedOrgId] = useState(null);
34
25
  //弹窗中被选中用户集合
35
26
  const [selectedUserList, setSelectedUserList] = useState([]);
36
27
  //弹窗中被选中用户id集合
@@ -43,13 +34,6 @@ export default function UserTreeSelect(props) {
43
34
  const pageSize = 200;
44
35
  const { filterParams } = useViewData(where);
45
36
  const { treeData, error } = useDepartData({ request });
46
- // 默认选中第一个部门
47
- useEffect(() => {
48
- var _a;
49
- if (!selectedOrgId && treeData && treeData.length > 0) {
50
- setSelectedOrgId((_a = treeData[0]) === null || _a === void 0 ? void 0 : _a.id);
51
- }
52
- }, [selectedOrgId, treeData]);
53
37
  useEffect(() => {
54
38
  // 仅执行一次
55
39
  if (defaultValueType === 'loginUser') {
@@ -131,8 +115,6 @@ export default function UserTreeSelect(props) {
131
115
  errInfo,
132
116
  open,
133
117
  setOpen,
134
- selectedOrgId,
135
- setSelectedOrgId,
136
118
  selectedUserList,
137
119
  setSelectedUserList,
138
120
  confirmUserList,
@@ -149,21 +131,14 @@ export default function UserTreeSelect(props) {
149
131
  treeData,
150
132
  error,
151
133
  onConfirmSelectUser,
152
- secondDisplay,
153
- };
154
- // 企业工作台使用该组件时,支持自定义样式
155
- const extraProps = {
156
- naked,
157
- containerClass,
158
- triggerElement,
159
134
  };
160
135
  if ((props === null || props === void 0 ? void 0 : props.showType) === 'pc') {
161
- return _jsx(UserSelectPC, { ...props, ...restProps, ...extraProps });
136
+ return _jsx(UserSelectPC, { ...restProps, ...props });
162
137
  }
163
138
  if ((props === null || props === void 0 ? void 0 : props.showType) === 'h5') {
164
- return _jsx(UserSelectH5, { ...props, ...restProps, ...extraProps });
139
+ return _jsx(UserSelectH5, { ...restProps, ...props });
165
140
  }
166
- return platform === 'h5' ? (_jsx(UserSelectH5, { ...props, ...restProps, ...extraProps })) : (_jsx(UserSelectPC, { ...props, ...restProps, ...extraProps }));
141
+ return platform === 'h5' ? (_jsx(UserSelectH5, { ...restProps, ...props })) : (_jsx(UserSelectPC, { ...restProps, ...props }));
167
142
  }
168
143
  /**
169
144
  * 设置onChange值
@@ -10,7 +10,9 @@ import { fetchSearchUser } from '../../common/fetch-data-service';
10
10
  import debounce from '../../../../../utils/debounce';
11
11
  import '../index.css';
12
12
  export const UserModel = ({ open, onCancel, onConfirm, treeData, treeDataError, filterParams, secondDisplay, }) => {
13
- const { selectedOrgId, setSelectedOrgId, selectedUserList, setSelectedUserIds, request, selectedUserIds, setSelectedUserList, multiple, setPageNo, confirmUserList, } = React.useContext(UserOrgContext) || {};
13
+ var _a;
14
+ const { selectedUserList, setSelectedUserIds, request, selectedUserIds, setSelectedUserList, multiple, setPageNo, confirmUserList, } = React.useContext(UserOrgContext) || {};
15
+ const [selectedOrgId, setSelectedOrgId] = useState(null);
14
16
  //当前页人员列表
15
17
  const [curPageUserList, setCurPageUserList] = useState(null);
16
18
  const [searchUserList, setSearchUserList] = useState([]);
@@ -21,6 +23,9 @@ export const UserModel = ({ open, onCancel, onConfirm, treeData, treeDataError,
21
23
  errorMessage: null,
22
24
  });
23
25
  const [loading, setLoading] = useState(false);
26
+ treeData.length > 0 && !selectedOrgId
27
+ ? setSelectedOrgId((_a = treeData[0]) === null || _a === void 0 ? void 0 : _a.id)
28
+ : [];
24
29
  useEffect(() => {
25
30
  setSelectedUserIds((selectedUserList || []).map((e) => e === null || e === void 0 ? void 0 : e.id));
26
31
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -45,7 +50,7 @@ export const UserModel = ({ open, onCancel, onConfirm, treeData, treeDataError,
45
50
  setErrInfo({ errorStatus: true, errorMessage: e });
46
51
  }
47
52
  }, 500);
48
- return (_jsxs(Modal, { disableEscape: true, maskClosable: false, visible: open, caption: "\u9009\u62E9\u6210\u5458", onClose: () => onCancel(null), className: "weda-ui weda-ui-user-select-modal", children: [_jsxs(Modal.Body, { children: [_jsxs("div", { className: "weda-ui-user-select-container", children: [_jsx(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([]) }), keyWords.length === 0 && (_jsx(_Fragment, { children: _jsxs("div", { className: "weda-ui-user-select-container-list", children: [_jsx("div", { className: "weda-ui-user-select-container-list__start", children: _jsx(OrgTree, { selectedOrgId: [selectedOrgId], treeData: treeData, treeDataError: treeDataError, onActive: (ids) => {
53
+ return (_jsxs(Modal, { visible: open, caption: "\u9009\u62E9\u6210\u5458", onClose: () => onCancel(null), className: "weda-ui weda-ui-user-select-modal", children: [_jsxs(Modal.Body, { children: [_jsxs("div", { className: "weda-ui-user-select-container", children: [_jsx(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([]) }), keyWords.length === 0 && (_jsx(_Fragment, { children: _jsxs("div", { className: "weda-ui-user-select-container-list", children: [_jsx("div", { className: "weda-ui-user-select-container-list__start", children: _jsx(OrgTree, { selectedOrgId: [selectedOrgId], treeData: treeData, treeDataError: treeDataError, onActive: (ids) => {
49
54
  setSelectedOrgId(ids[0]);
50
55
  setPageNo(1);
51
56
  } }) }), _jsx("div", { className: "weda-ui-user-select-container-list__end", children: _jsx(ModelUserList, { selectedOrgId: selectedOrgId, curPageUserList: curPageUserList, setCurPageUserList: setCurPageUserList, filterParams: filterParams, secondDisplay: secondDisplay }) })] }) }))] }), _jsx(SelectedList, { selectedList: selectedUserList, secondDisplay: secondDisplay, onClose: (item) => {
@@ -11,7 +11,7 @@ export const UserOrgContext = React.createContext(null);
11
11
  export function UserSelectPC({ id, className, style, label = '人员选择', labelVisible = true, //标题显隐
12
12
  placeholder = '请选择人员', disabled = false, layout = 'horizontal', requiredFlag = false, size = 'l', multiple = false, //多选
13
13
  outerRef, request = defaultRequest, //接口请求
14
- decorator, onCancel, onConfirm, errInfo, open, setOpen, selectedOrgId, setSelectedOrgId, selectedUserList, setSelectedUserList, confirmUserList, setConfirmUserList, selectedUserIds, setSelectedUserIds, pageNo, setPageNo, pageSize, filterParams, treeData, error, onConfirmSelectUser, secondDisplay, naked, containerClass, triggerElement, }) {
14
+ decorator, onCancel, onConfirm, errInfo, open, setOpen, selectedUserList, setSelectedUserList, confirmUserList, setConfirmUserList, selectedUserIds, setSelectedUserIds, pageNo, setPageNo, pageSize, filterParams, treeData, error, onConfirmSelectUser, secondDisplay, }) {
15
15
  // 外层组件类
16
16
  const cls = classNames({
17
17
  'weda-ui': true,
@@ -32,8 +32,6 @@ decorator, onCancel, onConfirm, errInfo, open, setOpen, selectedOrgId, setSelect
32
32
  };
33
33
  }, [setOpen]);
34
34
  return renderDecorator(_jsx(ConfigProvider, { classPrefix: "wedatea2td", children: _jsx(UserOrgContext.Provider, { value: {
35
- selectedOrgId,
36
- setSelectedOrgId,
37
35
  selectedUserList,
38
36
  multiple,
39
37
  setSelectedUserList,
@@ -44,16 +42,16 @@ decorator, onCancel, onConfirm, errInfo, open, setOpen, selectedOrgId, setSelect
44
42
  pageNo,
45
43
  setPageNo,
46
44
  pageSize,
47
- }, children: _jsx(Dropdown, { "data-testid": "userSelectDropdown", className: classNames(selectInputCls, `size-${size}`, containerClass), disabled: disabled, open: open, onOpenChange: (open) => {
45
+ }, children: _jsx(Dropdown, { "data-testid": "userSelectDropdown", className: classNames(selectInputCls, `size-${size}`), disabled: disabled, open: open, onOpenChange: (open) => {
48
46
  if (open)
49
47
  setSelectedUserList(confirmUserList);
50
48
  setOpen(open);
51
- }, appearance: 'button', button: triggerElement || (_jsx(InputTags, { tagsList: confirmUserList, placeholder: placeholder, multiple: multiple, errInfo: errInfo, disabled: disabled, onClose: (e, item) => {
49
+ }, appearance: 'button', button: _jsx(InputTags, { tagsList: confirmUserList, placeholder: placeholder, multiple: multiple, errInfo: errInfo, disabled: disabled, onClose: (e, item) => {
52
50
  const currentConfirmUserList = confirmUserList.filter((l) => (l === null || l === void 0 ? void 0 : l.id) !== (item === null || item === void 0 ? void 0 : item.id));
53
51
  setConfirmUserList(currentConfirmUserList);
54
52
  onConfirmSelectUser(currentConfirmUserList);
55
53
  e.stopPropagation();
56
- } })), overlayClassName: 'weda-ui-user-selected-overlay-hidden', style: { width: '100%' }, children: _jsx(UserModel, { open: open, setOpen: setOpen, onConfirm: onConfirm, onCancel: onCancel, treeData: treeData || [], treeDataError: error, filterParams: filterParams, secondDisplay: secondDisplay }) }) }) }), naked ? null : undefined)({
54
+ } }), overlayClassName: 'weda-ui-user-selected-overlay-hidden', style: { width: '100%' }, children: _jsx(UserModel, { open: open, setOpen: setOpen, onConfirm: onConfirm, onCancel: onCancel, treeData: treeData || [], treeDataError: error, filterParams: filterParams, secondDisplay: secondDisplay }) }) }) }))({
57
55
  id,
58
56
  className: cls,
59
57
  style,