@cloudbase/weda-ui 3.4.4 → 3.4.6

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 (147) hide show
  1. package/dist/configs/components/chart/bar.json +113 -8
  2. package/dist/configs/components/chart/line.js +113 -8
  3. package/dist/configs/components/chart/pie.json +113 -8
  4. package/dist/configs/components/chart/statisticsCard.json +57 -0
  5. package/dist/configs/components/dataView.js +7 -7
  6. package/dist/configs/components/form/input.json +48 -2
  7. package/dist/configs/components/form/richText.json +2 -1
  8. package/dist/configs/components/form/uploader.json +62 -14
  9. package/dist/configs/components/graphicCard.json +1 -1
  10. package/dist/configs/components/grid/col.js +4 -1
  11. package/dist/configs/components/grid/grid.js +8 -3
  12. package/dist/configs/components/grid/row.js +51 -3
  13. package/dist/configs/components/listView.js +113 -9
  14. package/dist/configs/components/navLayout.json +1 -1
  15. package/dist/configs/components/repeater.js +4 -1
  16. package/dist/configs/components/table.json +125 -9
  17. package/dist/configs/components/wd-bubble.js +6 -0
  18. package/dist/configs/components/wd-button.js +6 -0
  19. package/dist/configs/components/wd-divider.js +7 -18
  20. package/dist/configs/components/wd-icon.js +7 -0
  21. package/dist/configs/components/wd-image.js +7 -0
  22. package/dist/configs/components/wd-link.js +7 -2
  23. package/dist/configs/components/wd-text.js +14 -6
  24. package/dist/configs/index.js +0 -2
  25. package/dist/docs/common/componentList.js +1 -1
  26. package/dist/style/index.scss +1 -1
  27. package/dist/web/actions/showModal/index.js +1 -1
  28. package/dist/web/components/calendar/index.js +2 -2
  29. package/dist/web/components/chart/common/data-transform.js +1 -1
  30. package/dist/web/components/chart/statisticsCard/index.js +1 -1
  31. package/dist/web/components/flow/components/index.js +0 -4
  32. package/dist/web/components/flow/frame/index.js +4 -3
  33. package/dist/web/components/flow/frame/types.js +11 -5
  34. package/dist/web/components/flow/frame/utils.js +60 -1
  35. package/dist/web/components/flow/modules/chart/Chart.js +2 -3
  36. package/dist/web/components/flow/modules/chart/index.css +0 -3
  37. package/dist/web/components/flow/modules/combination/index.js +1 -1
  38. package/dist/web/components/flow/modules/operations/components/button/index.js +11 -0
  39. package/dist/web/components/flow/modules/operations/components/button/style.css +5 -0
  40. package/dist/web/components/flow/modules/operations/components/index.js +6 -0
  41. package/dist/web/components/flow/modules/operations/components/popup/index.js +100 -0
  42. package/dist/web/components/flow/modules/operations/components/popup/style.css +154 -0
  43. package/dist/web/components/flow/modules/operations/components/popup/types.js +1 -0
  44. package/dist/web/components/flow/modules/operations/components/user-select/index.js +43 -0
  45. package/dist/web/components/flow/modules/operations/components/user-select/style.css +4 -0
  46. package/dist/web/components/flow/modules/operations/components/user-select/types.js +1 -0
  47. package/dist/web/components/flow/modules/operations/config/approval-form-config.js +140 -0
  48. package/dist/web/components/flow/modules/operations/config/control-config.js +218 -0
  49. package/dist/web/components/flow/modules/operations/config/index.js +2 -0
  50. package/dist/web/components/flow/modules/operations/config/types.js +1 -0
  51. package/dist/web/components/flow/modules/operations/control.js +26 -0
  52. package/dist/web/components/flow/modules/operations/controls-items/add-assignee-btn.js +33 -0
  53. package/dist/web/components/flow/modules/operations/controls-items/apply-cc-btn.js +12 -0
  54. package/dist/web/components/flow/modules/operations/controls-items/approval-drawer/comment/index.js +188 -0
  55. package/dist/web/components/flow/modules/operations/controls-items/approval-drawer/comment/style.css +51 -0
  56. package/dist/web/components/flow/modules/operations/controls-items/approval-drawer/drawer-form/index.js +64 -0
  57. package/dist/web/components/flow/modules/operations/controls-items/approval-drawer/drawer-form/types.js +1 -0
  58. package/dist/web/components/flow/modules/operations/controls-items/approval-drawer/drawer-form/view-model.js +83 -0
  59. package/dist/web/components/flow/modules/operations/controls-items/approval-drawer/field/index.js +16 -0
  60. package/dist/web/components/flow/modules/operations/controls-items/approval-drawer/field/style.css +56 -0
  61. package/dist/web/components/flow/modules/operations/controls-items/approval-drawer/index.js +47 -0
  62. package/dist/web/components/flow/modules/operations/controls-items/approval-drawer/style.css +60 -0
  63. package/dist/web/components/flow/modules/operations/controls-items/cancel-apply-btn.js +15 -0
  64. package/dist/web/components/flow/modules/operations/controls-items/check-list-popup/index.js +11 -0
  65. package/dist/web/components/flow/modules/operations/controls-items/check-list-popup/style.css +26 -0
  66. package/dist/web/components/flow/modules/operations/controls-items/flow-task-info-modal.js +98 -0
  67. package/dist/web/components/flow/modules/operations/controls-items/index.js +18 -0
  68. package/dist/web/components/flow/modules/operations/controls-items/initiation-btn.js +25 -0
  69. package/dist/web/components/flow/modules/operations/controls-items/revoke-modal/index.js +50 -0
  70. package/dist/web/components/flow/modules/operations/controls-items/revoke-modal/style.css +28 -0
  71. package/dist/web/components/flow/modules/operations/controls-items/roll-back-modal.js +104 -0
  72. package/dist/web/components/flow/modules/operations/controls-items/types.js +1 -0
  73. package/dist/web/components/flow/modules/operations/index.js +2 -0
  74. package/dist/web/components/flow/modules/operations/style.css +20 -0
  75. package/dist/web/components/flow/modules/operations/view-model.js +137 -0
  76. package/dist/web/components/flow/services/ideData/instance.js +2 -2
  77. package/dist/web/components/flow/services/ideData/pageDetail.js +1 -0
  78. package/dist/web/components/form/select/dropdown-select/h5.js +1 -1
  79. package/dist/web/components/form/select/dropdown-select/index.css +7 -0
  80. package/dist/web/components/form/select/index.js +2 -7
  81. package/dist/web/components/form/textarea/index.js +1 -1
  82. package/dist/web/components/form/uploader/index.css +19 -0
  83. package/dist/web/components/form/uploader/index.js +21 -3
  84. package/dist/web/components/form/uploader/uploader.h5.js +14 -8
  85. package/dist/web/components/form/uploader/uploader.pc.js +29 -16
  86. package/dist/web/components/form/uploaderFile/index.css +9 -5
  87. package/dist/web/components/form/uploaderFile/uploadFile.h5.js +23 -21
  88. package/dist/web/components/form/uploaderFile/uploadFile.pc.js +14 -10
  89. package/dist/web/components/form/userOrgSelect/common/fetch-data-service.js +0 -1
  90. package/dist/web/components/form/userOrgSelect/component/depart-select/index.js +1 -1
  91. package/dist/web/components/form/userOrgSelect/component/user-select-h5/index.js +43 -22
  92. package/dist/web/components/form/userOrgSelect/component/user-select-h5/user-select-h5.js +15 -4
  93. package/dist/web/components/form/userOrgSelect/component/user-select-pc/user-model.js +2 -2
  94. package/dist/web/components/form/userOrgSelect/component/user-select-pc/user-select-pc.js +4 -2
  95. package/dist/web/components/grid/col.js +81 -18
  96. package/dist/web/components/grid/grid.js +1 -1
  97. package/dist/web/components/grid/row.js +4 -2
  98. package/dist/web/components/index.js +1 -1
  99. package/dist/web/components/listView/index.js +98 -100
  100. package/dist/web/components/lottery/index.js +122 -123
  101. package/dist/web/components/richTextView/index.css +2 -0
  102. package/dist/web/components/swiper/index.js +14 -8
  103. package/dist/web/components/table/BaseTable.js +3 -3
  104. package/dist/web/components/table/ExportFileModalByApi/index.js +1 -1
  105. package/dist/web/components/table/ImportFileModal/index.js +1 -1
  106. package/dist/web/components/table/ImportFileModalByApi/index.js +1 -1
  107. package/dist/web/components/wd-bubble/wd-bubble.js +11 -3
  108. package/dist/web/components/wd-button/wd-button.js +22 -13
  109. package/dist/web/components/wd-divider/wd-divider.js +10 -7
  110. package/dist/web/components/wd-icon/wd-icon.js +12 -3
  111. package/dist/web/components/wd-image/index.js +12 -5
  112. package/dist/web/components/wd-link/wd-link.js +11 -3
  113. package/dist/web/components/wd-text/wd-text.js +15 -3
  114. package/dist/web/utils/hooks/use-cloud-id-temp-url.js +7 -2
  115. package/dist/web/utils/platform.js +9 -2
  116. package/dist/web/utils/tool.js +11 -0
  117. package/dist/web/utils/widget-api/index.js +3 -0
  118. package/package.json +7 -5
  119. package/dist/configs/components/auth.json +0 -17
  120. package/dist/web/components/flow/components/FlowUserSelect/index.css +0 -116
  121. package/dist/web/components/flow/components/FlowUserSelect/index.js +0 -115
  122. package/dist/web/components/flow/components/HighlightTextarea/index.css +0 -42
  123. package/dist/web/components/flow/components/HighlightTextarea/index.js +0 -131
  124. package/dist/web/components/flow/components/UserSelectModel/UserSelect.js +0 -74
  125. package/dist/web/components/flow/components/UserSelectModel/UserSelectMobile.css +0 -8
  126. package/dist/web/components/flow/components/UserSelectModel/UserSelectMobile.js +0 -86
  127. package/dist/web/components/flow/components/UserSelectModel/index.js +0 -18
  128. package/dist/web/components/flow/components/WedaUserTransfer/index.css +0 -3
  129. package/dist/web/components/flow/components/WedaUserTransfer/index.js +0 -162
  130. package/dist/web/components/flow/modules/control/ApprovalDrawer.css +0 -144
  131. package/dist/web/components/flow/modules/control/ApprovalDrawer.js +0 -178
  132. package/dist/web/components/flow/modules/control/ApprovalPopup.css +0 -115
  133. package/dist/web/components/flow/modules/control/ApprovalPopup.js +0 -241
  134. package/dist/web/components/flow/modules/control/Control.css +0 -29
  135. package/dist/web/components/flow/modules/control/Control.js +0 -93
  136. package/dist/web/components/flow/modules/control/ControlMobile.css +0 -69
  137. package/dist/web/components/flow/modules/control/ControlMobile.js +0 -133
  138. package/dist/web/components/flow/modules/control/FlowTaskInfoModal.css +0 -3
  139. package/dist/web/components/flow/modules/control/FlowTaskInfoModal.js +0 -31
  140. package/dist/web/components/flow/modules/control/constants/index.js +0 -35
  141. package/dist/web/components/flow/modules/control/index.js +0 -15
  142. package/dist/web/components/flow/modules/control/provider/index.js +0 -17
  143. package/dist/web/components/flow/modules/control/provider/useControlModel.js +0 -256
  144. package/dist/web/components/flow/modules/control/provider/useMobileModel.js +0 -86
  145. package/dist/web/components/flow/modules/control/provider/useRevokeAndBackHook.js +0 -82
  146. package/dist/web/components/flow/modules/control/utils/ControlModelUtils.js +0 -57
  147. package/dist/web/components/flow/modules/control/utils/index.js +0 -2
@@ -7,11 +7,13 @@ import { useSyncValue } from '../../../utils/hooks/useSyncValue';
7
7
  import { randomStr } from '../../../utils/platform';
8
8
  import { IMAGE_TYPES, encodeConvert } from './uploader.pc';
9
9
  import { useTempUrl } from '../../../utils/hooks/use-cloud-id-temp-url';
10
+ import { getParentForm } from '../../../utils/widget-api';
10
11
  const uploadPath = 'weda-uploader';
11
12
  /**
12
13
  * H5端
13
14
  */
14
- export function ImageUploaderH5({ title: label, maxUploadCount, maxSize = 10, acceptTypes, className, id, events, layout, defaultValue, single = false, disabled = false, requiredFlag = false, labelVisible = true, onChange, style, }) {
15
+ export function ImageUploaderH5({ title: label, maxUploadCount, maxSize = 10, acceptTypes, className, id, events, layout, defaultValue, single = false, disabled = false, requiredFlag = false, labelVisible = true, onChange, style, imgTypeCls, $node, }) {
16
+ var _a;
15
17
  const cls = classNames({
16
18
  'weda-ui': true,
17
19
  'weui-cells': true,
@@ -23,6 +25,7 @@ export function ImageUploaderH5({ title: label, maxUploadCount, maxSize = 10, ac
23
25
  //上传进度
24
26
  const [progress, setProgress] = React.useState(0);
25
27
  const [inputValue, setInputValue] = useSyncValue(defaultValue, isObjectEqual);
28
+ const formType = ((_a = getParentForm($node)) === null || _a === void 0 ? void 0 : _a.formType) || 'create';
26
29
  const fileIdList = React.useMemo(() => {
27
30
  // 兼容h5默认值为空时情况
28
31
  if (inputValue === null) {
@@ -133,12 +136,13 @@ export function ImageUploaderH5({ title: label, maxUploadCount, maxSize = 10, ac
133
136
  React.createElement(UploaderLabel, { layout: layout, label: label, labelVisible: labelVisible, currentCount: fileIdList.length, maxCount: finalMaxImgCount, requiredFlag: requiredFlag })),
134
137
  React.createElement("div", { className: "weui-uploader__bd" },
135
138
  React.createElement("ul", { className: "weui-uploader__files", id: "uploaderFiles" },
136
- (fileIdList !== null && fileIdList !== void 0 ? fileIdList : []).map((f) => (React.createElement(SingleImage, { key: f, src: f, deleteBySrc: deleteFile, disabled: disabled }))),
137
- uploading && (React.createElement("li", { className: "weui-uploader__file weui-uploader__file_status" },
139
+ (fileIdList !== null && fileIdList !== void 0 ? fileIdList : []).map((f) => (React.createElement(SingleImage, { key: f, src: f, deleteBySrc: deleteFile, disabled: disabled, imgTypeCls: imgTypeCls }))),
140
+ fileIdList.length < 1 && formType === 'read' && React.createElement(React.Fragment, null, "\u2014"),
141
+ uploading && (React.createElement("li", { className: `weui-uploader__file weui-uploader__file_status ${imgTypeCls}` },
138
142
  React.createElement("div", { className: "weui-uploader__file-content" },
139
143
  progress,
140
144
  "%")))),
141
- showAdd && (React.createElement("div", { className: "weui-uploader__input-box" }, !disabled && (React.createElement("input", { "data-testid": "uploaderh5_input", id: "uploaderInput", className: "weui-uploader__input", type: "file", accept: accepts.join(','), multiple: !single, onChange: (e) => {
145
+ showAdd && formType !== 'read' && (React.createElement("div", { className: `weui-uploader__input-box ${imgTypeCls}` }, !disabled && (React.createElement("input", { "data-testid": "uploaderh5_input", id: "uploaderInput", className: "weui-uploader__input", type: "file", accept: accepts.join(','), multiple: !single, onChange: (e) => {
142
146
  const files = [...e.target.files];
143
147
  if (!islegalType(files, accepts))
144
148
  return;
@@ -158,7 +162,7 @@ export function ImageUploaderH5({ title: label, maxUploadCount, maxSize = 10, ac
158
162
  files.forEach((f) => uploadToTcb(f));
159
163
  } }))))))));
160
164
  }
161
- function SingleImage({ src, deleteBySrc }) {
165
+ function SingleImage({ src, deleteBySrc, disabled, imgTypeCls, }) {
162
166
  const cls = classNames({
163
167
  'weui-uploader__file': true,
164
168
  });
@@ -170,12 +174,14 @@ function SingleImage({ src, deleteBySrc }) {
170
174
  const showGallery = () => {
171
175
  const gallery = weui.gallery(encodeURI(encodeSrc), {
172
176
  onDelete: function () {
173
- deleteBySrc(src);
174
- gallery.hide();
177
+ if (!disabled) {
178
+ deleteBySrc(src);
179
+ gallery.hide();
180
+ }
175
181
  },
176
182
  });
177
183
  };
178
- return (React.createElement("li", { className: cls, style: imgStyle, onClick: showGallery, "data-testid": "uploaderh5_imgStyle" }, error || status ? (React.createElement("div", { className: "weui-uploader__file-content" }, error ? (React.createElement("i", { role: "img", "aria-label": "\u9519\u8BEF", className: "weui-icon-warn" })) : (React.createElement("i", { className: "weui-loading", style: { width: 30, height: 30 } })))) : (false)));
184
+ return (React.createElement("li", { className: `${cls} ${imgTypeCls}`, style: imgStyle, onClick: showGallery, "data-testid": "uploaderh5_imgStyle" }, error || status ? (React.createElement("div", { className: "weui-uploader__file-content" }, error ? (React.createElement("i", { role: "img", "aria-label": "\u9519\u8BEF", className: "weui-icon-warn" })) : (React.createElement("i", { className: `weui-loading ${imgTypeCls}`, style: { width: 30, height: 30 } })))) : (false)));
179
185
  }
180
186
  const UploaderLabel = ({ layout, label, currentCount, maxCount, requiredFlag, labelVisible, }) => {
181
187
  if (layout === 'horizontal') {
@@ -6,6 +6,7 @@ import { randomStr } from '../../../utils/platform';
6
6
  import isObjectEqual from '../../../utils/isObjectEqual';
7
7
  import { emptyObject } from '../../../utils/constant';
8
8
  import { useTempUrl } from '../../../utils/hooks/use-cloud-id-temp-url';
9
+ import { getParentForm } from '../../../utils/widget-api';
9
10
  // 默认组件类前缀
10
11
  export const CLASS_PREFIX = 'weda-uploader-pc';
11
12
  // 默认图片类型
@@ -36,8 +37,9 @@ export function UploaderPC({ layout, className, id, style, title, tips, ...props
36
37
  React.createElement(UploaderPCInner, { ...props })));
37
38
  }
38
39
  export function UploaderPCInner(props) {
40
+ var _a;
39
41
  const { tips = '', btnTitle = '上传图片', maxUploadCount = 9, maxSize = 10, value: defaultValue, // 需要兼容 cloud:和https: 协议,需要兼容 字符串和字符串数组
40
- acceptTypes = IMAGE_TYPES, uploadPath = 'weda-uploader', events = emptyObject, single = false, disabled = false, onChange, } = props;
42
+ acceptTypes = IMAGE_TYPES, uploadPath = 'weda-uploader', events = emptyObject, single = false, disabled = false, onChange, imgTypeCls, $node, } = props;
41
43
  // 上传中
42
44
  const [uploading, setUploading] = React.useState(false);
43
45
  //上传进度
@@ -45,6 +47,7 @@ export function UploaderPCInner(props) {
45
47
  // 文件列表
46
48
  const [fileIDList, setfileIDList] = React.useState([]);
47
49
  const fileRef = React.useRef([]);
50
+ const formType = ((_a = getParentForm($node)) === null || _a === void 0 ? void 0 : _a.formType) || 'create';
48
51
  React.useEffect(() => {
49
52
  let initialValue = []
50
53
  .concat(defaultValue)
@@ -166,30 +169,40 @@ export function UploaderPCInner(props) {
166
169
  maxSize && (extraProps['maxSize'] = maxSize * 1024 * 1024);
167
170
  return (React.createElement(ConfigProvider, { classPrefix: "wedatea2td" },
168
171
  React.createElement("div", { className: "_weda-fn-upload-result" },
169
- fileIDList.map((d) => (React.createElement("div", { className: "_weda-fn-upload-result__item", key: d },
170
- React.createElement(TcbImage, { fileID: d }),
171
- React.createElement("div", { className: "_weda-fn-upload-result__op" },
172
+ fileIDList.map((d) => (React.createElement("div", { className: `_weda-fn-upload-result__item ${imgTypeCls}`, key: d },
173
+ React.createElement(TcbImage, { fileID: d, imgTypeCls: imgTypeCls }),
174
+ React.createElement("div", { className: `_weda-fn-upload-result__op ${imgTypeCls}` },
172
175
  React.createElement(Button, { disabled: disabled, onClick: () => deleteHandle(d), className: `${CLASS_PREFIX}__btn` }, "\u5220\u9664"))))),
173
- uploading && (React.createElement("div", { className: "_weda-fn-upload-result__item" },
176
+ uploading && (React.createElement("div", { className: `_weda-fn-upload-result__item ${imgTypeCls}` },
174
177
  React.createElement("div", { className: "_weda-fn-upload-result__status", key: "_place_image" },
175
178
  React.createElement(Icon, { type: "loading" }),
176
179
  !!progress && (React.createElement("span", { className: "wedatea2td-mt-1n wedatea2td-text-label wedatea2td-fz-reset" },
177
180
  "\u4E0A\u4F20",
178
181
  progress,
179
182
  "%..."))))),
180
- React.createElement("div", { className: `${CLASS_PREFIX}__input-box` }, disabled ? (React.createElement("li", { className: "_weda-fn-upload-result__item wedatea2td-disabled" },
181
- React.createElement("div", { className: "_weda-fn-upload-result__status" },
182
- React.createElement("i", { className: "wedatea2td-icon wedatea2td-icon-plus", role: "img", "aria-label": "plus" }),
183
- React.createElement("span", { className: "wedatea2td-mt-1n wedatea2td-text-label wedatea2td-fz-reset" }, btnTitle)))) : (((!single && fileIDList.length < maxUploadCount) ||
184
- (single && fileIDList.length < 1 && !uploading)) && ( // single 模式时,当数组为空且不在上传文件过程中时显示
185
- React.createElement(Upload, { ...extraProps, beforeUpload: beforeHandle },
186
- React.createElement("li", { className: "_weda-fn-upload-result__item _weda-fn-upload-result__item--upload" },
183
+ React.createElement("div", { className: `${CLASS_PREFIX}__input-box` },
184
+ formType === 'read' && fileIDList.length < 1 && React.createElement("div", null, "\u2014"),
185
+ disabled && formType !== 'read' ? (React.createElement("li", { className: `_weda-fn-upload-result__item wedatea2td-disabled ${imgTypeCls}` },
187
186
  React.createElement("div", { className: "_weda-fn-upload-result__status" },
188
187
  React.createElement("i", { className: "wedatea2td-icon wedatea2td-icon-plus", role: "img", "aria-label": "plus" }),
189
- React.createElement("span", { className: "wedatea2td-mt-1n wedatea2td-text-label wedatea2td-fz-reset" }, btnTitle))))))))));
188
+ React.createElement("span", { className: "wedatea2td-mt-1n wedatea2td-text-label wedatea2td-fz-reset" }, btnTitle)))) : (((!single && fileIDList.length < maxUploadCount) ||
189
+ (single && fileIDList.length < 1 && !uploading)) &&
190
+ formType !== 'read' && ( // single 模式时,当数组为空且不在上传文件过程中时显示
191
+ React.createElement(Upload, { ...extraProps, beforeUpload: beforeHandle },
192
+ React.createElement("li", {
193
+ // className={"_weda-fn-upload-result__item _weda-fn-upload-result__item--upload" imgTypeCls}
194
+ // className={classNames(
195
+ // `_weda-fn-upload-result__item _weda-fn-upload-result__item--upload`,
196
+ // imgTypeCls
197
+ // )}
198
+ className: `_weda-fn-upload-result__item _weda-fn-upload-result__item--upload ${imgTypeCls}` },
199
+ imgTypeCls,
200
+ React.createElement("div", { className: "_weda-fn-upload-result__status" },
201
+ React.createElement("i", { className: "wedatea2td-icon wedatea2td-icon-plus", role: "img", "aria-label": "plus" }),
202
+ React.createElement("span", { className: "wedatea2td-mt-1n wedatea2td-text-label wedatea2td-fz-reset" }, btnTitle))))))))));
190
203
  }
191
204
  export const TcbImage = (props) => {
192
- const { fileID, isZoom, ...rest } = props;
205
+ const { fileID, isZoom, imgTypeCls, ...rest } = props;
193
206
  const [isError, setIsError] = React.useState(false);
194
207
  const { data: src, error: requestError } = useTempUrl(fileID);
195
208
  const encodeSrc = encodeConvert(src);
@@ -197,12 +210,12 @@ export const TcbImage = (props) => {
197
210
  return React.createElement(ErrorTip, null);
198
211
  }
199
212
  if (src) {
200
- return isZoom ? (React.createElement(ImagePreview, { key: fileID, className: `${CLASS_PREFIX}__image`, ...rest, src: encodeURI(encodeSrc), previewSrc: encodeURI(encodeSrc),
213
+ return isZoom ? (React.createElement(ImagePreview, { key: fileID, className: `${CLASS_PREFIX}__image ${imgTypeCls}`, ...rest, src: encodeURI(encodeSrc), previewSrc: encodeURI(encodeSrc),
201
214
  /** @ts-expect-error tea imagepreview onError */
202
215
  onError: (e) => {
203
216
  setIsError(true);
204
217
  (props === null || props === void 0 ? void 0 : props.onError) && props.onError(e);
205
- } })) : (React.createElement("img", { "data-testid": "uploaderpc_imgStyle", key: fileID, className: `${CLASS_PREFIX}__image`, ...rest, src: encodeURI(encodeSrc), onError: (e) => {
218
+ } })) : (React.createElement("img", { "data-testid": "uploaderpc_imgStyle", key: fileID, className: `${CLASS_PREFIX}__image ${imgTypeCls}`, ...rest, src: encodeURI(encodeSrc), onError: (e) => {
206
219
  setIsError(true);
207
220
  (props === null || props === void 0 ? void 0 : props.onError) && props.onError(e);
208
221
  } }));
@@ -274,7 +274,7 @@
274
274
 
275
275
  .weda-upload-file-mobile .weda-upload-file-mobile__item {
276
276
  width: 100%;
277
- padding: 16px;
277
+ padding: 8px;
278
278
  display: flex;
279
279
  justify-content: space-between;
280
280
  align-items: center;
@@ -319,7 +319,7 @@
319
319
  .weda-upload-file-mobile__item
320
320
  .weda-upload-file-mobile__item-left {
321
321
  flex: 1;
322
- margin-right: 16px;
322
+ margin-right: 4px;
323
323
  width: 70%;
324
324
  }
325
325
 
@@ -336,7 +336,7 @@
336
336
  font-size: 0.875em;
337
337
  line-height: 1.375em;
338
338
  color: rgba(0, 0, 0, 0.9);
339
- max-width: 6.5rem;
339
+ max-width: 100%;
340
340
  overflow: hidden;
341
341
  text-overflow: ellipsis;
342
342
  white-space: nowrap;
@@ -345,8 +345,11 @@
345
345
  .weda-upload-file-mobile
346
346
  .weda-upload-file-mobile__item
347
347
  .weda-upload-file-mobile__file-status {
348
- margin-left: 24px;
349
- display: flex;
348
+ margin-left: 0.28571rem;
349
+ display: inline-block;
350
+ white-space: nowrap;
351
+ overflow: hidden;
352
+ text-overflow: ellipsis;
350
353
  }
351
354
 
352
355
  .weda-upload-file-mobile
@@ -399,6 +402,7 @@
399
402
  background-color: #e7e7e7;
400
403
  height: 3px !important;
401
404
  margin-bottom: 0;
405
+ display: inline;
402
406
  }
403
407
 
404
408
  .weda-upload-file-mobile
@@ -2,12 +2,13 @@ import * as React from 'react';
2
2
  import weui from '../../../utils/weui';
3
3
  import isObjectEqual from '../../../utils/isObjectEqual';
4
4
  import { ConfigProvider, Button, Icon, Text, List, Progress, Tooltip, message, } from 'tea-component';
5
- import { filterStrList, isCloudFileID, isHttpFileID, transSize, downloadFile, transFileCloudidToName, randomStr, isInIde, } from '../../../utils/platform';
5
+ import { filterStrList, isCloudFileID, isHttpFileID, transSize, downloadFile, transFileCloudidToName, randomStr, isInIde, isWebInMiniprogram, } from '../../../utils/platform';
6
6
  import { getCloudInstance } from '../../../utils/tcb';
7
7
  import classNames from '../../../utils/classnames';
8
8
  import { renderDecorator } from '../renderDecorator';
9
9
  import { emptyArray, emptyObject } from '../../../utils/constant';
10
10
  import { useTempUrl } from '../../../utils/hooks/use-cloud-id-temp-url';
11
+ import { getParentForm } from '../../../utils/widget-api';
11
12
  // 默认组件类前缀
12
13
  const CLASS_PREFIX = 'weda-upload-file-mobile';
13
14
  // 默认图片类型
@@ -36,7 +37,8 @@ export function UploadFileH5({
36
37
  layout, id = '', style = defaultStyle, labelVisible = true, label = '上传文件', requiredFlag = false, disabled = false, className = '', acceptTypes = emptyArray,
37
38
  // 组件属性
38
39
  tips = '', btnTitle = '点击上传', maxUploadCount = 9, maxSize = 10, deleteVisible = true, downloadVisible = true, value = emptyArray, // 需要兼容 cloud:和https: 协议,需要兼容字符串和字符串数组
39
- events = emptyObject, defaultValue, uploadPath = 'weda-uploader', single = true, onChange = null, isEdit = true, }) {
40
+ events = emptyObject, defaultValue, uploadPath = 'weda-uploader', single = true, onChange = null, isEdit = true, $node, }) {
41
+ var _a;
40
42
  const [fileIDList, setfileIDList] = React.useState(isInIde() ? [] : filterStrList([].concat(defaultValue, value))); // 上传成功文件ID列表,fileID[]
41
43
  const [fileList, setFileList] = React.useState([]); // 上传中的文件列表,file[],file为原始文件 + uuid属性
42
44
  const [fileSizeObj, setFileSizeObj] = React.useState({}); // 管理上传文件大小 {uuid:size}
@@ -44,6 +46,7 @@ events = emptyObject, defaultValue, uploadPath = 'weda-uploader', single = true,
44
46
  const prevDefaultRef = React.useRef([]);
45
47
  const fileRef = React.useRef(fileIDList);
46
48
  const maxSizeLimit = maxSize > 500 ? 500 : maxSize;
49
+ const formType = ((_a = getParentForm($node)) === null || _a === void 0 ? void 0 : _a.formType) || 'create';
47
50
  React.useMemo(() => {
48
51
  //有有效默认值时不刷新,解决初次渲染默认值不显示问题
49
52
  if (!isInIde() &&
@@ -169,8 +172,8 @@ events = emptyObject, defaultValue, uploadPath = 'weda-uploader', single = true,
169
172
  React.createElement("div", { className: `${CLASS_PREFIX}__bd` },
170
173
  fileIDList && fileIDList.length > 0 && (React.createElement("div", { className: "weda-uploader-files_split" })),
171
174
  React.createElement(List, null,
172
- fileIDList.map((d) => (React.createElement(List.Item, { key: d }, React.createElement(TcbFileEcho, { fileID: d, fileList: fileList, onChange: handleChange, disabled: disabled, deleteVisible: deleteVisible, downloadVisible: downloadVisible })))),
173
- fileList.map((item) => (React.createElement(List.Item, { key: item === null || item === void 0 ? void 0 : item._uuid }, React.createElement(TcbFileUpload, { disabled: disabled, file: item, downloadVisible: downloadVisible, deleteVisible: deleteVisible && !disabled })))))))))))({
175
+ fileIDList.map((d) => (React.createElement(List.Item, { key: d }, React.createElement(TcbFileEcho, { fileID: d, fileList: fileList, onChange: handleChange, disabled: disabled, deleteVisible: deleteVisible, downloadVisible: downloadVisible, formType: formType })))),
176
+ fileList.map((item) => (React.createElement(List.Item, { key: item === null || item === void 0 ? void 0 : item._uuid }, React.createElement(TcbFileUpload, { disabled: disabled, file: item, downloadVisible: downloadVisible, deleteVisible: deleteVisible && !disabled, formType: formType })))))))))))({
174
177
  id,
175
178
  className: cls,
176
179
  style,
@@ -183,7 +186,7 @@ events = emptyObject, defaultValue, uploadPath = 'weda-uploader', single = true,
183
186
  /**
184
187
  * 基于 FileID 文件回显组件
185
188
  */
186
- const TcbFileEcho = ({ fileID, disabled }) => {
189
+ const TcbFileEcho = ({ fileID, disabled, formType }) => {
187
190
  const { fileSizeObj } = React.useContext(FileContext) || {};
188
191
  const { data: src, error } = useTempUrl(fileID);
189
192
  if (error) {
@@ -203,14 +206,14 @@ const TcbFileEcho = ({ fileID, disabled }) => {
203
206
  //上传文件列表展示
204
207
  return (React.createElement("div", { className: `${CLASS_PREFIX}__item` },
205
208
  React.createElement("div", { className: `${CLASS_PREFIX}__item-left` },
206
- React.createElement(UploadFileStatus, { title: label, size: fileSizeObj[fileID] || '--' })),
209
+ React.createElement(UploadFileStatus, { title: label, size: fileSizeObj[fileID] || '-', formType: formType })),
207
210
  React.createElement("div", { className: `${CLASS_PREFIX}__btn-group` },
208
211
  React.createElement(UploadFileAction, { title: label, disabled: disabled, status: "UPLOAD_STATUS_SUCCESS", fileID: fileID, src: src }))));
209
212
  };
210
213
  /**
211
214
  * 基于 File 上传文件过程组件
212
215
  */
213
- const TcbFileUpload = ({ file, disabled }) => {
216
+ const TcbFileUpload = ({ file, disabled, formType }) => {
214
217
  const { uploadPath, onChange, events } = React.useContext(FileContext) || {};
215
218
  const [percent, setPercent] = React.useState(0); // 上传进度
216
219
  const [status, setStatus] = React.useState('UPLOAD_STATUS_PENDING'); // 上传状态
@@ -251,7 +254,7 @@ const TcbFileUpload = ({ file, disabled }) => {
251
254
  };
252
255
  return (React.createElement("div", { className: `${CLASS_PREFIX}__item`, role: "TcbFileUpload" },
253
256
  React.createElement("div", { className: `${CLASS_PREFIX}__item-left` },
254
- React.createElement(UploadFileStatus, { status: status, percent: percent, size: size, title: title, percentSize: (((file === null || file === void 0 ? void 0 : file.size) / 1024) * percent) / 100 })),
257
+ React.createElement(UploadFileStatus, { status: status, percent: percent, size: size, title: title, percentSize: (((file === null || file === void 0 ? void 0 : file.size) / 1024) * percent) / 100, formType: formType })),
255
258
  React.createElement("div", { className: `${CLASS_PREFIX}__btn-group` },
256
259
  React.createElement(UploadFileAction, { file: file, uuid: file === null || file === void 0 ? void 0 : file._uuid, status: status, onCancel: (uuid) => {
257
260
  cancleRef.current = uuid;
@@ -261,7 +264,7 @@ const TcbFileUpload = ({ file, disabled }) => {
261
264
  /**
262
265
  * 上传文件状态组件
263
266
  */
264
- const UploadFileStatus = ({ status = 'UPLOAD_STATUS_SUCCESS', percent = 0, size, title = null, percentSize = 0, }) => {
267
+ const UploadFileStatus = ({ status = 'UPLOAD_STATUS_SUCCESS', percent = 0, size, title = null, percentSize = 0, formType, }) => {
265
268
  var _a, _b;
266
269
  const { isEdit } = React.useContext(FileContext) || {};
267
270
  //上传中、待上传状态
@@ -269,30 +272,29 @@ const UploadFileStatus = ({ status = 'UPLOAD_STATUS_SUCCESS', percent = 0, size,
269
272
  (status == 'UPLOAD_STATUS_PENDING' && percent)) {
270
273
  return (React.createElement(React.Fragment, null,
271
274
  React.createElement("div", { className: `${CLASS_PREFIX}__file-detail` },
272
- React.createElement(Text, { className: `${CLASS_PREFIX}__file-name` }, title),
273
- React.createElement("div", { className: `${CLASS_PREFIX}__file-status` },
274
- React.createElement("div", { className: `${CLASS_PREFIX}__file-status` },
275
- React.createElement(Progress, { percent: percent, theme: "default", strokeColor: '#0052D9', className: `${CLASS_PREFIX}__file-progress` })))),
275
+ React.createElement(Text, { className: `${CLASS_PREFIX}__file-name` }, title)),
276
+ React.createElement("div", null,
277
+ React.createElement(Progress, { percent: percent, theme: "default", strokeColor: '#0052D9', className: `${CLASS_PREFIX}__file-progress` })),
276
278
  React.createElement("div", { className: `${CLASS_PREFIX}__file-foot` },
277
- React.createElement("div", null,
279
+ formType !== 'read' && (React.createElement("div", null,
278
280
  React.createElement(Text, null,
279
281
  Math.floor(percentSize),
280
282
  "K/"),
281
- React.createElement(Text, null, size)),
283
+ React.createElement(Text, null, size))),
282
284
  React.createElement(Text, null, status === 'UPLOAD_STATUS_PENDING' ? '等待上传' : '上传中'))));
283
285
  }
284
286
  return (React.createElement(React.Fragment, null,
285
287
  React.createElement("div", { className: `${CLASS_PREFIX}__file-detail` },
286
288
  React.createElement(Tooltip, { title: title },
287
- React.createElement(Text, { className: `${CLASS_PREFIX}__file-name` }, title)),
289
+ React.createElement(Text, { className: `${CLASS_PREFIX}__file-name` }, title))),
290
+ isEdit && (React.createElement("div", { className: `${CLASS_PREFIX}__file-foot` },
291
+ formType !== 'read' && (React.createElement("div", null,
292
+ React.createElement(Text, null, size))),
288
293
  isEdit && (React.createElement("div", { className: `${CLASS_PREFIX}__file-status` },
289
294
  React.createElement(Icon, { type: ((_a = statusMap[status]) === null || _a === void 0 ? void 0 : _a.icon) ||
290
295
  statusMap['UPLOAD_STATUS_PENDING'].icon }),
291
296
  React.createElement(Text, { className: `${CLASS_PREFIX}__file-status--msg` }, ((_b = statusMap[status]) === null || _b === void 0 ? void 0 : _b.title) ||
292
- statusMap['UPLOAD_STATUS_PENDING'].title)))),
293
- isEdit && (React.createElement("div", { className: `${CLASS_PREFIX}__file-foot` },
294
- React.createElement("div", null,
295
- React.createElement(Text, null, size))))));
297
+ statusMap['UPLOAD_STATUS_PENDING'].title)))))));
296
298
  };
297
299
  /**
298
300
  * 操作列组件, onChange 从最外层 UploadFilePc 传进来
@@ -319,7 +321,7 @@ const UploadFileAction = ({ status = 'UPLOAD_STATUS_PENDING', fileID = '', uuid
319
321
  return (React.createElement(React.Fragment, null,
320
322
  deleteVisible && renderDelete(),
321
323
  ' ',
322
- downloadVisible && renderDownLoad()));
324
+ downloadVisible && !isWebInMiniprogram() && renderDownLoad()));
323
325
  case 'UPLOAD_STATUS_ERROR':
324
326
  return (React.createElement(React.Fragment, null,
325
327
  deleteVisible && renderDelete(),
@@ -1,12 +1,13 @@
1
1
  import * as React from 'react';
2
2
  import { Upload, ConfigProvider, Button, message, Icon, Text, List, } from 'tea-component';
3
- import { filterStrList, isCloudFileID, isHttpFileID, transSize, downloadFile, cutFileTitle, transFileCloudidToName, randomStr, isInIde, } from '../../../utils/platform';
3
+ import { filterStrList, isCloudFileID, isHttpFileID, transSize, downloadFile, cutFileTitle, transFileCloudidToName, randomStr, isInIde, isWebInMiniprogram, } from '../../../utils/platform';
4
4
  import { getCloudInstance } from '../../../utils/tcb';
5
5
  import classNames from '../../../utils/classnames';
6
6
  import { renderDecorator } from '../renderDecorator';
7
7
  import isObjectEqual from '../../../utils/isObjectEqual';
8
8
  import { emptyArray, emptyObject } from '../../../utils/constant';
9
9
  import { useTempUrl } from '../../../utils/hooks/use-cloud-id-temp-url';
10
+ import { getParentForm } from '../../../utils/widget-api';
10
11
  // 默认组件类前缀
11
12
  const CLASS_PREFIX = 'weda-upload-file-pc';
12
13
  // 上传状态字典
@@ -27,7 +28,8 @@ layout, id = '', style, labelVisible = true, label = '上传文件', requiredFla
27
28
  // 组件属性
28
29
  decorator, tips = '', btnTitle = '点击上传', maxUploadCount = 9, maxSize = 1024, single = true, defaultValue = emptyArray, // 组件默认初始化值
29
30
  value = emptyArray, // 用于模型组件中 formily 的值管理
30
- acceptTypes = emptyArray, downloadVisible = true, deleteVisible = true, uploadPath = 'weda-uploader', onChange = null, isEdit = true, }) {
31
+ acceptTypes = emptyArray, downloadVisible = true, deleteVisible = true, uploadPath = 'weda-uploader', onChange = null, isEdit = true, $node, }) {
32
+ var _a;
31
33
  const [fileIDList, setfileIDList] = React.useState(isInIde() ? [] : filterStrList([].concat(defaultValue, value))); // 上传成功文件ID列表,fileID[]
32
34
  const [fileList, setFileList] = React.useState([]); // 上传中的文件列表,file[],file为原始文件 + uuid属性
33
35
  const [fileSizeObj, setFileSizeObj] = React.useState({}); // 管理上传文件大小 {uuid:size}
@@ -35,6 +37,7 @@ acceptTypes = emptyArray, downloadVisible = true, deleteVisible = true, uploadPa
35
37
  const prevDefaultRef = React.useRef([]);
36
38
  const fileRef = React.useRef(fileIDList);
37
39
  const maxSizeLimit = maxSize > 500 ? 500 : maxSize;
40
+ const formType = ((_a = getParentForm($node)) === null || _a === void 0 ? void 0 : _a.formType) || 'create';
38
41
  React.useMemo(() => {
39
42
  //有有效默认值时不刷新,解决初次渲染默认值不显示问题
40
43
  if (!isInIde() &&
@@ -156,11 +159,11 @@ acceptTypes = emptyArray, downloadVisible = true, deleteVisible = true, uploadPa
156
159
  React.createElement(List.Item, null,
157
160
  React.createElement("div", { className: `${CLASS_PREFIX}--item ${CLASS_PREFIX}--item-header` },
158
161
  React.createElement("div", { className: `${CLASS_PREFIX}--item-title ${CLASS_PREFIX}--item-label` }, "\u6587\u4EF6\u540D"),
159
- React.createElement("div", { className: `${CLASS_PREFIX}--item-size ${CLASS_PREFIX}--item-label` }, "\u5927\u5C0F"),
162
+ formType !== 'read' && (React.createElement("div", { className: `${CLASS_PREFIX}--item-size ${CLASS_PREFIX}--item-label` }, "\u5927\u5C0F")),
160
163
  React.createElement("div", { className: `${CLASS_PREFIX}--item-status ${CLASS_PREFIX}--item-label` }, "\u72B6\u6001"),
161
164
  React.createElement("div", { className: `${CLASS_PREFIX}--item-action` }, "\u64CD\u4F5C"))),
162
- fileIDList.map((d) => (React.createElement(List.Item, { key: d }, React.createElement(TcbFileEcho, { disabled: disabled, fileID: d })))),
163
- fileList.map((item) => (React.createElement(List.Item, { key: item === null || item === void 0 ? void 0 : item._uuid }, React.createElement(TcbFileUpload, { disabled: disabled, file: item })))),
165
+ fileIDList.map((d) => (React.createElement(List.Item, { key: d }, React.createElement(TcbFileEcho, { disabled: disabled, fileID: d, formType: formType })))),
166
+ fileList.map((item) => (React.createElement(List.Item, { key: item === null || item === void 0 ? void 0 : item._uuid }, React.createElement(TcbFileUpload, { disabled: disabled, file: item, formType: formType })))),
164
167
  isEdit && fileIDList.length === 0 && fileList.length === 0 && (React.createElement(List.Item, { className: `${CLASS_PREFIX}--item-empty` },
165
168
  React.createElement("div", { className: `${CLASS_PREFIX}--item` },
166
169
  "\u70B9\u51FB\u4E0A\u65B9\u201C",
@@ -178,7 +181,7 @@ acceptTypes = emptyArray, downloadVisible = true, deleteVisible = true, uploadPa
178
181
  /**
179
182
  * 基于 FileID 回显文件表格行组件
180
183
  */
181
- const TcbFileEcho = ({ fileID, disabled }) => {
184
+ const TcbFileEcho = ({ fileID, disabled, formType }) => {
182
185
  const { fileSizeObj } = React.useContext(FileContext) || {};
183
186
  const { data: src } = useTempUrl(fileID);
184
187
  const title = React.useMemo(() => {
@@ -191,7 +194,7 @@ const TcbFileEcho = ({ fileID, disabled }) => {
191
194
  }, [fileID]);
192
195
  return (React.createElement("div", { className: `${CLASS_PREFIX}--item ${CLASS_PREFIX}--item-body` },
193
196
  React.createElement("div", { className: `${CLASS_PREFIX}--item-title`, title: title }, cutFileTitle(title)),
194
- React.createElement("div", { className: `${CLASS_PREFIX}--item-size` }, fileSizeObj[fileID] || '--'),
197
+ formType !== 'read' && (React.createElement("div", { className: `${CLASS_PREFIX}--item-size` }, fileSizeObj[fileID] || '--')),
195
198
  React.createElement("div", { className: `${CLASS_PREFIX}--item-status` },
196
199
  React.createElement(UploadFileStatus, null)),
197
200
  React.createElement("div", { className: `${CLASS_PREFIX}--item-action` },
@@ -200,7 +203,7 @@ const TcbFileEcho = ({ fileID, disabled }) => {
200
203
  /**
201
204
  * 基于 File 上传文件过程表格行组件
202
205
  */
203
- const TcbFileUpload = ({ file, disabled }) => {
206
+ const TcbFileUpload = ({ file, disabled, formType }) => {
204
207
  const { uploadPath, onChange, events } = React.useContext(FileContext) || {};
205
208
  const [percent, setPercent] = React.useState(0); // 上传进度
206
209
  const [status, setStatus] = React.useState('0'); // 上传状态
@@ -240,7 +243,7 @@ const TcbFileUpload = ({ file, disabled }) => {
240
243
  };
241
244
  return (React.createElement("div", { className: `${CLASS_PREFIX}--item ${CLASS_PREFIX}--item-body` },
242
245
  React.createElement("div", { className: `${CLASS_PREFIX}--item-title`, title: title }, cutFileTitle(title)),
243
- React.createElement("div", { className: `${CLASS_PREFIX}--item-size` }, size),
246
+ formType !== 'read' && (React.createElement("div", { className: `${CLASS_PREFIX}--item-size` }, size)),
244
247
  React.createElement("div", { className: `${CLASS_PREFIX}--item-status` },
245
248
  React.createElement(UploadFileStatus, { status: status, percent: percent })),
246
249
  React.createElement("div", { className: `${CLASS_PREFIX}--item-action` },
@@ -281,7 +284,8 @@ const UploadFileAction = ({ title = 'downfile', status = '0', fileID = '', uuid
281
284
  onReLoad === null || onReLoad === void 0 ? void 0 : onReLoad(file);
282
285
  } }, "\u91CD\u65B0\u4E0A\u4F20"));
283
286
  // 操作列按钮-下载
284
- const renderDownLoad = () => downloadVisible && (React.createElement(Button, { type: "link", title: "\u70B9\u51FB\u4E0B\u8F7D\u6587\u4EF6", onClick: () => downloadFile(src, title) }, "\u4E0B\u8F7D"));
287
+ const renderDownLoad = () => downloadVisible &&
288
+ !isWebInMiniprogram && (React.createElement(Button, { type: "link", title: "\u70B9\u51FB\u4E0B\u8F7D\u6587\u4EF6", onClick: () => downloadFile(src, title) }, "\u4E0B\u8F7D"));
285
289
  switch (status) {
286
290
  case '0':
287
291
  return renderCancel();
@@ -236,7 +236,6 @@ export async function getDepartByIds({ ids, request }) {
236
236
  const dataRecord = res === null || res === void 0 ? void 0 : res.DataList.map((item) => JSON.parse((item === null || item === void 0 ? void 0 : item.DataRecord) || {}));
237
237
  return { orgList: dealOrgData(dataRecord), orgIds };
238
238
  }
239
- // return [];
240
239
  return res;
241
240
  }
242
241
  catch (error) {
@@ -39,7 +39,7 @@ export default function DepartTreeSelect(props) {
39
39
  setErrorInfo({ errorStatus: false, errorMessage: null });
40
40
  if (ids && ids.length !== 0 && !isInIde()) {
41
41
  const { orgList } = await getDepartByIds({ ids, request });
42
- setConfirmOrgList(orgList);
42
+ setConfirmOrgList(orgList || []);
43
43
  }
44
44
  else {
45
45
  setConfirmOrgList([]);
@@ -11,7 +11,7 @@ import { useViewData } from '../../hooks/use-views-data';
11
11
  import { useDepartData } from '../../hooks/use-depart-data';
12
12
  import { parseStrToArr } from '../../common/utils';
13
13
  export default function UserTreeSelect(props) {
14
- const { events = emptyObject, defaultValue = emptyArray, confirmValue = '', defaultValueType = 'noneUser', onChange = null, multiple = false, request = defaultRequest, where, } = props;
14
+ const { events = emptyObject, defaultValue = emptyArray, confirmValue = '', defaultValueType = 'noneUser', onChange = null, multiple = false, request = defaultRequest, where, confirmAction, closeAction, } = props;
15
15
  const platform = usePlatform();
16
16
  const [errInfo, setErrInfo] = useState({
17
17
  errorStatus: false,
@@ -86,32 +86,20 @@ export default function UserTreeSelect(props) {
86
86
  // eslint-disable-next-line react-hooks/exhaustive-deps
87
87
  }, [defaultValueType, selectUserIds]);
88
88
  useEffect(() => {
89
- var _a, _b, _c;
89
+ var _a;
90
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
- });
91
+ onChange === null || onChange === void 0 ? void 0 : onChange(setOnChangeValue(multiple, confirmUserList));
92
+ (_a = events === null || events === void 0 ? void 0 : events.change) === null || _a === void 0 ? void 0 : _a.call(events, setOnChangeValue(multiple, confirmUserList, true));
111
93
  // eslint-disable-next-line react-hooks/exhaustive-deps
112
94
  }, [confirmUserList]);
95
+ /** 点击确认时获取所选用户,调用confirmAction,将所选用户向外传出 */
96
+ const onConfirmSelectUser = (selectedUserList) => {
97
+ const selectedUser = setOnChangeValue(multiple, selectedUserList, true);
98
+ confirmAction === null || confirmAction === void 0 ? void 0 : confirmAction(selectedUser);
99
+ };
113
100
  //确定 关闭弹窗
114
101
  const onConfirm = () => {
102
+ onConfirmSelectUser(selectedUserList);
115
103
  setConfirmUserList(selectedUserList);
116
104
  setOpen(false);
117
105
  };
@@ -120,6 +108,7 @@ export default function UserTreeSelect(props) {
120
108
  setSelectedUserIds([]);
121
109
  setSelectedUserList([]);
122
110
  setOpen(false);
111
+ closeAction === null || closeAction === void 0 ? void 0 : closeAction();
123
112
  };
124
113
  const restProps = {
125
114
  errInfo,
@@ -140,6 +129,7 @@ export default function UserTreeSelect(props) {
140
129
  filterParams,
141
130
  treeData,
142
131
  error,
132
+ onConfirmSelectUser,
143
133
  };
144
134
  if ((props === null || props === void 0 ? void 0 : props.showType) === 'pc') {
145
135
  return React.createElement(UserSelectPC, { ...restProps, ...props });
@@ -149,3 +139,34 @@ export default function UserTreeSelect(props) {
149
139
  }
150
140
  return platform === 'h5' ? (React.createElement(UserSelectH5, { ...restProps, ...props })) : (React.createElement(UserSelectPC, { ...restProps, ...props }));
151
141
  }
142
+ /**
143
+ * 设置onChange值
144
+ * @param multiple 是否是多选
145
+ * @param confirmUserList 已选用户列表
146
+ * @param isEventChange 是否是event事件
147
+ */
148
+ function setOnChangeValue(multiple, confirmUserList, isEventChange = false) {
149
+ var _a, _b;
150
+ if (isEventChange) {
151
+ return multiple
152
+ ? {
153
+ value: confirmUserList.length > 0
154
+ ? confirmUserList.map((e) => {
155
+ return e === null || e === void 0 ? void 0 : e.id;
156
+ })
157
+ : null,
158
+ data: confirmUserList,
159
+ }
160
+ : {
161
+ value: ((_a = confirmUserList[0]) === null || _a === void 0 ? void 0 : _a.id) || null,
162
+ data: confirmUserList[0] || null,
163
+ };
164
+ }
165
+ return multiple
166
+ ? confirmUserList.length > 0
167
+ ? confirmUserList.map((e) => {
168
+ return e === null || e === void 0 ? void 0 : e.id;
169
+ })
170
+ : null
171
+ : (_b = confirmUserList[0]) === null || _b === void 0 ? void 0 : _b.id;
172
+ }
@@ -1,4 +1,4 @@
1
- import React, { useState } from 'react';
1
+ import React, { useState, useImperativeHandle } from 'react';
2
2
  import { renderDecorator } from '../../../renderDecorator';
3
3
  import classNames from '../../../../../utils/classnames';
4
4
  import { defaultRequest } from '../../common/fetch-data-service';
@@ -6,9 +6,9 @@ import { ConfigProvider } from 'tea-component';
6
6
  import { ModalSelectH5 } from '../modal-select-h5';
7
7
  import { InputTags } from '../input-tags';
8
8
  export function UserTreeSelectH5({ id, className, style, label = '成员选择', labelVisible = true, placeholder = '请选择成员', disabled = false, layout = 'horizontal', requiredFlag = false, decorator, multiple = false, //是否多选
9
- pageNo, setPageNo, pageSize,
9
+ outerRef, pageNo, setPageNo, pageSize,
10
10
  // platform,
11
- request = defaultRequest, onCancel, onConfirm, selectedUserList, setSelectedUserList, confirmUserList, setConfirmUserList, open, setOpen, filterParams, treeData, error, }) {
11
+ request = defaultRequest, onCancel, onConfirm, selectedUserList, setSelectedUserList, confirmUserList, setConfirmUserList, open, setOpen, filterParams, treeData, error, onConfirmSelectUser, }) {
12
12
  const cls = classNames({
13
13
  'weda-ui': true,
14
14
  'weda-select-user-dept': true,
@@ -26,6 +26,15 @@ request = defaultRequest, onCancel, onConfirm, selectedUserList, setSelectedUser
26
26
  errorStatus: false,
27
27
  errorMessage: null,
28
28
  });
29
+ useImperativeHandle(outerRef, () => {
30
+ return {
31
+ methods: {
32
+ open: () => {
33
+ setOpen(true);
34
+ },
35
+ },
36
+ };
37
+ }, [setOpen]);
29
38
  const onFocus = function () {
30
39
  setSelectedUserList(confirmUserList);
31
40
  if (!disabled)
@@ -34,7 +43,9 @@ request = defaultRequest, onCancel, onConfirm, selectedUserList, setSelectedUser
34
43
  return renderDecorator(React.createElement(ConfigProvider, { classPrefix: "wedatea2td" },
35
44
  React.createElement("div", { className: subCls, onClick: onFocus },
36
45
  React.createElement(InputTags, { tagsList: confirmUserList, placeholder: placeholder, multiple: multiple, errInfo: errorInfo, disabled: disabled, platForm: 'h5', onClose: (e, item) => {
37
- setConfirmUserList(confirmUserList.filter((l) => (l === null || l === void 0 ? void 0 : l.id) !== (item === null || item === void 0 ? void 0 : item.id)));
46
+ const currentConfirmUserList = confirmUserList.filter((l) => (l === null || l === void 0 ? void 0 : l.id) !== (item === null || item === void 0 ? void 0 : item.id));
47
+ setConfirmUserList(currentConfirmUserList);
48
+ onConfirmSelectUser(currentConfirmUserList);
38
49
  e.stopPropagation();
39
50
  } })),
40
51
  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 })))({