@cloudbase/weda-ui 3.4.5 → 3.4.7

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 (129) hide show
  1. package/dist/configs/components/form/input.json +48 -2
  2. package/dist/configs/components/form/richText.json +2 -1
  3. package/dist/configs/components/form/uploader.json +62 -14
  4. package/dist/configs/components/grid/col.js +4 -1
  5. package/dist/configs/components/grid/grid.js +8 -3
  6. package/dist/configs/components/grid/row.js +51 -3
  7. package/dist/configs/components/repeater.js +4 -1
  8. package/dist/configs/components/table.json +1 -0
  9. package/dist/configs/components/wd-bubble.js +6 -0
  10. package/dist/configs/components/wd-button.js +6 -0
  11. package/dist/configs/components/wd-divider.js +7 -18
  12. package/dist/configs/components/wd-icon.js +7 -0
  13. package/dist/configs/components/wd-image.js +7 -0
  14. package/dist/configs/components/wd-link.js +7 -2
  15. package/dist/configs/components/wd-text.js +14 -6
  16. package/dist/configs/index.js +0 -2
  17. package/dist/docs/common/componentList.js +1 -1
  18. package/dist/web/actions/showModal/index.js +1 -1
  19. package/dist/web/components/calendar/index.js +2 -2
  20. package/dist/web/components/flow/components/index.js +0 -4
  21. package/dist/web/components/flow/frame/index.js +4 -3
  22. package/dist/web/components/flow/frame/types.js +11 -5
  23. package/dist/web/components/flow/frame/utils.js +60 -1
  24. package/dist/web/components/flow/modules/chart/Chart.js +2 -3
  25. package/dist/web/components/flow/modules/combination/index.js +1 -1
  26. package/dist/web/components/flow/modules/operations/components/button/index.js +11 -0
  27. package/dist/web/components/flow/modules/operations/components/button/style.css +5 -0
  28. package/dist/web/components/flow/modules/operations/components/index.js +6 -0
  29. package/dist/web/components/flow/modules/operations/components/popup/index.js +100 -0
  30. package/dist/web/components/flow/modules/operations/components/popup/style.css +154 -0
  31. package/dist/web/components/flow/modules/operations/components/popup/types.js +1 -0
  32. package/dist/web/components/flow/modules/operations/components/user-select/index.js +43 -0
  33. package/dist/web/components/flow/modules/operations/components/user-select/style.css +4 -0
  34. package/dist/web/components/flow/modules/operations/components/user-select/types.js +1 -0
  35. package/dist/web/components/flow/modules/operations/config/approval-form-config.js +140 -0
  36. package/dist/web/components/flow/modules/operations/config/control-config.js +218 -0
  37. package/dist/web/components/flow/modules/operations/config/index.js +2 -0
  38. package/dist/web/components/flow/modules/operations/config/types.js +1 -0
  39. package/dist/web/components/flow/modules/operations/control.js +26 -0
  40. package/dist/web/components/flow/modules/operations/controls-items/add-assignee-btn.js +33 -0
  41. package/dist/web/components/flow/modules/operations/controls-items/apply-cc-btn.js +12 -0
  42. package/dist/web/components/flow/modules/operations/controls-items/approval-drawer/comment/index.js +188 -0
  43. package/dist/web/components/flow/modules/operations/controls-items/approval-drawer/comment/style.css +51 -0
  44. package/dist/web/components/flow/modules/operations/controls-items/approval-drawer/drawer-form/index.js +64 -0
  45. package/dist/web/components/flow/modules/operations/controls-items/approval-drawer/drawer-form/types.js +1 -0
  46. package/dist/web/components/flow/modules/operations/controls-items/approval-drawer/drawer-form/view-model.js +83 -0
  47. package/dist/web/components/flow/modules/operations/controls-items/approval-drawer/field/index.js +16 -0
  48. package/dist/web/components/flow/modules/operations/controls-items/approval-drawer/field/style.css +56 -0
  49. package/dist/web/components/flow/modules/operations/controls-items/approval-drawer/index.js +47 -0
  50. package/dist/web/components/flow/modules/operations/controls-items/approval-drawer/style.css +60 -0
  51. package/dist/web/components/flow/modules/operations/controls-items/cancel-apply-btn.js +15 -0
  52. package/dist/web/components/flow/modules/operations/controls-items/check-list-popup/index.js +11 -0
  53. package/dist/web/components/flow/modules/operations/controls-items/check-list-popup/style.css +26 -0
  54. package/dist/web/components/flow/modules/operations/controls-items/flow-task-info-modal.js +98 -0
  55. package/dist/web/components/flow/modules/operations/controls-items/index.js +18 -0
  56. package/dist/web/components/flow/modules/operations/controls-items/initiation-btn.js +25 -0
  57. package/dist/web/components/flow/modules/operations/controls-items/revoke-modal/index.js +50 -0
  58. package/dist/web/components/flow/modules/operations/controls-items/revoke-modal/style.css +28 -0
  59. package/dist/web/components/flow/modules/operations/controls-items/roll-back-modal.js +104 -0
  60. package/dist/web/components/flow/modules/operations/controls-items/types.js +1 -0
  61. package/dist/web/components/flow/modules/operations/index.js +2 -0
  62. package/dist/web/components/flow/modules/operations/style.css +20 -0
  63. package/dist/web/components/flow/modules/operations/view-model.js +137 -0
  64. package/dist/web/components/flow/services/ideData/instance.js +2 -2
  65. package/dist/web/components/flow/services/ideData/pageDetail.js +1 -0
  66. package/dist/web/components/form/uploader/index.css +19 -0
  67. package/dist/web/components/form/uploader/index.js +21 -3
  68. package/dist/web/components/form/uploader/uploader.h5.js +14 -8
  69. package/dist/web/components/form/uploader/uploader.pc.js +29 -16
  70. package/dist/web/components/form/uploaderFile/index.css +5 -2
  71. package/dist/web/components/form/uploaderFile/uploadFile.h5.js +15 -12
  72. package/dist/web/components/form/uploaderFile/uploadFile.pc.js +11 -8
  73. package/dist/web/components/form/userOrgSelect/common/fetch-data-service.js +0 -1
  74. package/dist/web/components/form/userOrgSelect/component/depart-select/index.js +1 -1
  75. package/dist/web/components/form/userOrgSelect/component/user-select-h5/index.js +9 -5
  76. package/dist/web/components/form/userOrgSelect/component/user-select-h5/user-select-h5.js +4 -2
  77. package/dist/web/components/form/userOrgSelect/component/user-select-pc/user-model.js +2 -2
  78. package/dist/web/components/form/userOrgSelect/component/user-select-pc/user-select-pc.js +4 -2
  79. package/dist/web/components/grid/col.js +81 -18
  80. package/dist/web/components/grid/grid.js +1 -1
  81. package/dist/web/components/grid/row.js +4 -2
  82. package/dist/web/components/index.js +1 -1
  83. package/dist/web/components/listView/index.js +4 -3
  84. package/dist/web/components/lottery/index.js +122 -123
  85. package/dist/web/components/table/ExportFileModalByApi/index.js +1 -1
  86. package/dist/web/components/table/ImportFileModal/index.js +1 -1
  87. package/dist/web/components/table/ImportFileModalByApi/index.js +1 -1
  88. package/dist/web/components/wd-bubble/wd-bubble.js +11 -3
  89. package/dist/web/components/wd-button/wd-button.js +22 -13
  90. package/dist/web/components/wd-divider/wd-divider.js +10 -7
  91. package/dist/web/components/wd-icon/wd-icon.js +12 -3
  92. package/dist/web/components/wd-image/index.js +12 -5
  93. package/dist/web/components/wd-link/wd-link.js +11 -3
  94. package/dist/web/components/wd-text/wd-text.js +15 -3
  95. package/dist/web/utils/hooks/use-cloud-id-temp-url.js +7 -3
  96. package/dist/web/utils/platform.js +0 -1
  97. package/dist/web/utils/tool.js +11 -0
  98. package/dist/web/utils/widget-api/index.js +3 -0
  99. package/package.json +5 -3
  100. package/dist/configs/components/auth.json +0 -17
  101. package/dist/web/components/flow/components/FlowUserSelect/index.css +0 -116
  102. package/dist/web/components/flow/components/FlowUserSelect/index.js +0 -115
  103. package/dist/web/components/flow/components/HighlightTextarea/index.css +0 -42
  104. package/dist/web/components/flow/components/HighlightTextarea/index.js +0 -131
  105. package/dist/web/components/flow/components/UserSelectModel/UserSelect.js +0 -72
  106. package/dist/web/components/flow/components/UserSelectModel/UserSelectMobile.css +0 -8
  107. package/dist/web/components/flow/components/UserSelectModel/UserSelectMobile.js +0 -82
  108. package/dist/web/components/flow/components/UserSelectModel/index.js +0 -18
  109. package/dist/web/components/flow/components/WedaUserTransfer/index.css +0 -3
  110. package/dist/web/components/flow/components/WedaUserTransfer/index.js +0 -162
  111. package/dist/web/components/flow/modules/control/ApprovalDrawer.css +0 -144
  112. package/dist/web/components/flow/modules/control/ApprovalDrawer.js +0 -178
  113. package/dist/web/components/flow/modules/control/ApprovalPopup.css +0 -115
  114. package/dist/web/components/flow/modules/control/ApprovalPopup.js +0 -240
  115. package/dist/web/components/flow/modules/control/Control.css +0 -29
  116. package/dist/web/components/flow/modules/control/Control.js +0 -105
  117. package/dist/web/components/flow/modules/control/ControlMobile.css +0 -101
  118. package/dist/web/components/flow/modules/control/ControlMobile.js +0 -148
  119. package/dist/web/components/flow/modules/control/FlowTaskInfoModal.css +0 -3
  120. package/dist/web/components/flow/modules/control/FlowTaskInfoModal.js +0 -31
  121. package/dist/web/components/flow/modules/control/constants/index.js +0 -35
  122. package/dist/web/components/flow/modules/control/index.js +0 -15
  123. package/dist/web/components/flow/modules/control/provider/index.js +0 -17
  124. package/dist/web/components/flow/modules/control/provider/useControlModel.js +0 -252
  125. package/dist/web/components/flow/modules/control/provider/useMobileModel.js +0 -84
  126. package/dist/web/components/flow/modules/control/provider/useRevokeAndBackHook.js +0 -84
  127. package/dist/web/components/flow/modules/control/utils/ControlModelUtils.js +0 -57
  128. package/dist/web/components/flow/modules/control/utils/index.js +0 -3
  129. package/dist/web/components/flow/modules/control/utils/tools.js +0 -3
@@ -1,162 +0,0 @@
1
- import React, { useEffect, useRef, useState } from 'react';
2
- import { Transfer, Table, SearchBox, Bubble, Text, Modal, Button, LoadingTip, } from 'tea-component';
3
- import to from 'await-to-js';
4
- import { useGlobalContext } from '../../../../utils/hooks/context';
5
- import { getWedaUserList } from '../../services';
6
- import './index.css';
7
- const { selectable, removeable, scrollable, radioable } = Table.addons;
8
- export function WedaUserTransfer({ visible, onClose, setOptions, multiple = true, isMobile = false, onSelectedChange, value, tableClassName, }) {
9
- var _a;
10
- const [targetKeys, setTargetKeys] = useState([]);
11
- const [selectedRows, setSelectedRows] = useState([]);
12
- const [inputValue, setInputValue] = useState('');
13
- const [userList, setUserList] = useState([]);
14
- const originUserList = useRef([]);
15
- const [loading, setLoading] = useState(false);
16
- const { callWedaApi, IS_WEDA_IDE } = useGlobalContext();
17
- useEffect(() => {
18
- getWedaUser({ PageNo: 1, PageSize: 200 });
19
- }, []);
20
- useEffect(() => {
21
- if (!visible) {
22
- onSearchUser('');
23
- }
24
- }, [visible]);
25
- useEffect(() => {
26
- var _a;
27
- if (isMobile) {
28
- setTargetKeys(value);
29
- }
30
- else {
31
- setTargetKeys(value === null || value === void 0 ? void 0 : value.map((i) => i === null || i === void 0 ? void 0 : i.value));
32
- }
33
- if ((_a = originUserList.current) === null || _a === void 0 ? void 0 : _a.length) {
34
- const initSelected = value === null || value === void 0 ? void 0 : value.map((i) => {
35
- var _a;
36
- return (_a = originUserList.current) === null || _a === void 0 ? void 0 : _a.find((user) => {
37
- if (isMobile)
38
- return (user === null || user === void 0 ? void 0 : user.UserId) === i;
39
- return (user === null || user === void 0 ? void 0 : user.UserId) === (i === null || i === void 0 ? void 0 : i.value);
40
- });
41
- });
42
- setSelectedRows(initSelected || []);
43
- }
44
- }, [value, (_a = originUserList.current) === null || _a === void 0 ? void 0 : _a.length]);
45
- const getWedaUser = async (params) => {
46
- setLoading(true);
47
- const [err, result] = await to(getWedaUserList(params, { callWedaApi, IS_WEDA_IDE }));
48
- setLoading(false);
49
- if (!err) {
50
- originUserList.current = (result === null || result === void 0 ? void 0 : result.UserList) || [];
51
- setUserList((result === null || result === void 0 ? void 0 : result.UserList) || []);
52
- }
53
- };
54
- const onSourceTableChange = (keys, context) => {
55
- if (multiple) {
56
- setTargetKeys(keys);
57
- const selectedRows = transSelectedRows(context);
58
- setSelectedRows(selectedRows);
59
- onSelectedChange === null || onSelectedChange === void 0 ? void 0 : onSelectedChange({ keys, rows: selectedRows });
60
- }
61
- else {
62
- setTargetKeys([keys]);
63
- setSelectedRows([context === null || context === void 0 ? void 0 : context.record]);
64
- onSelectedChange === null || onSelectedChange === void 0 ? void 0 : onSelectedChange({ keys: [keys], rows: [context === null || context === void 0 ? void 0 : context.record] });
65
- }
66
- };
67
- const transSelectedRows = (context) => {
68
- const { checked, record, recordKey } = context;
69
- const index = selectedRows.findIndex((val) => (val === null || val === void 0 ? void 0 : val.UserId) === recordKey);
70
- const newSelectedRows = selectedRows.concat();
71
- if (checked) {
72
- newSelectedRows.push(record);
73
- }
74
- else {
75
- newSelectedRows.splice(index, 1);
76
- }
77
- return newSelectedRows;
78
- };
79
- const onSearchUser = (value) => {
80
- var _a;
81
- setInputValue(value);
82
- if (value) {
83
- const list = (_a = originUserList.current) === null || _a === void 0 ? void 0 : _a.filter((item) => { var _a; return (_a = item === null || item === void 0 ? void 0 : item.Name) === null || _a === void 0 ? void 0 : _a.includes(value); });
84
- setUserList(list);
85
- }
86
- else {
87
- setUserList(originUserList.current);
88
- }
89
- };
90
- const onSubmitUser = () => {
91
- setOptions(selectedRows.map((item) => ({
92
- text: item.Name,
93
- value: item.UserId,
94
- })));
95
- onCloseModal();
96
- };
97
- const onRemoveUser = (key) => {
98
- setTargetKeys(targetKeys === null || targetKeys === void 0 ? void 0 : targetKeys.filter((i) => i !== key));
99
- setSelectedRows(selectedRows === null || selectedRows === void 0 ? void 0 : selectedRows.filter((i) => i.UserId !== key));
100
- };
101
- const onCloseModal = () => {
102
- setTargetKeys([]);
103
- setSelectedRows([]);
104
- onClose === null || onClose === void 0 ? void 0 : onClose();
105
- };
106
- if (isMobile) {
107
- if (loading) {
108
- return React.createElement(LoadingTip, { loadingText: "\u52A0\u8F7D\u4E2D" });
109
- }
110
- return (React.createElement(React.Fragment, null,
111
- React.createElement(SearchBox, { className: "weda-workbench__flow-user-search", value: inputValue, onChange: (value) => onSearchUser(value) }),
112
- React.createElement(SourceTable, { dataSource: userList, targetKeys: targetKeys, onChange: onSourceTableChange, multiple: multiple, className: tableClassName })));
113
- }
114
- return (React.createElement(Modal, { visible: visible, caption: "\u4EBA\u5458\u9009\u62E9", onClose: onCloseModal, size: "l" },
115
- React.createElement(Modal.Body, null,
116
- React.createElement(Transfer, { leftCell: React.createElement(Transfer.Cell, { scrollable: false, title: "\u8BF7\u9009\u62E9\u7528\u6237", header: React.createElement(SearchBox, { value: inputValue, onChange: (value) => onSearchUser(value) }) },
117
- React.createElement(SourceTable, { dataSource: userList, targetKeys: targetKeys, onChange: onSourceTableChange, multiple: multiple, className: tableClassName })), rightCell: React.createElement(Transfer.Cell, { title: `已选择 (${(targetKeys === null || targetKeys === void 0 ? void 0 : targetKeys.length) || 0})` },
118
- React.createElement(TargetTable, { dataSource: selectedRows, onRemove: onRemoveUser })) })),
119
- React.createElement(Modal.Footer, null,
120
- React.createElement(Button, { type: "primary", onClick: onSubmitUser }, "\u786E\u5B9A"),
121
- React.createElement(Button, { type: "weak", onClick: onCloseModal }, "\u53D6\u6D88"))));
122
- }
123
- const columns = [
124
- {
125
- key: 'Name',
126
- header: '用户名',
127
- render: (record) => (record === null || record === void 0 ? void 0 : record.Name) ? (React.createElement(Bubble, { content: record === null || record === void 0 ? void 0 : record.Name },
128
- React.createElement(Text, { overflow: true, style: { cursor: 'pointer' } }, record === null || record === void 0 ? void 0 : record.Name))) : (React.createElement(Text, null, "-")),
129
- },
130
- {
131
- key: 'UserDepartment',
132
- header: '所属部门',
133
- render: (record) => {
134
- var _a, _b;
135
- const showStr = (_a = record === null || record === void 0 ? void 0 : record.Orgs) === null || _a === void 0 ? void 0 : _a.map((i) => (i === null || i === void 0 ? void 0 : i.OrgName) || '').join();
136
- return ((_b = record === null || record === void 0 ? void 0 : record.Orgs) === null || _b === void 0 ? void 0 : _b.length) ? (React.createElement(Bubble, { content: showStr },
137
- React.createElement(Text, { overflow: true, style: { cursor: 'pointer' } }, showStr))) : (React.createElement(Text, null, "-"));
138
- },
139
- },
140
- ];
141
- function SourceTable({ dataSource, targetKeys, onChange, multiple, className, }) {
142
- const addons = [
143
- scrollable({
144
- maxHeight: 310,
145
- }),
146
- multiple
147
- ? selectable({
148
- value: targetKeys,
149
- onChange,
150
- rowSelect: true,
151
- })
152
- : radioable({
153
- value: targetKeys === null || targetKeys === void 0 ? void 0 : targetKeys[0],
154
- onChange,
155
- rowSelect: true,
156
- }),
157
- ];
158
- return (React.createElement(Table, { records: dataSource, recordKey: "UserId", rowDisabled: (record) => record.status === 'stopped', rowClassName: (record) => record.status, columns: columns, addons: addons, className: className }));
159
- }
160
- function TargetTable({ dataSource, onRemove }) {
161
- return (React.createElement(Table, { records: dataSource, recordKey: "UserId", columns: columns, addons: [removeable({ onRemove })] }));
162
- }
@@ -1,144 +0,0 @@
1
- .approval-drawer.drawer {
2
- width: 500px !important;
3
- top: 0px !important;
4
- box-shadow: 0px 25px 25px rgba(0, 0, 0, 0.5) !important;
5
- background-color: #fff;
6
- }
7
- .approval-drawer.drawer .wedatea2td-form.approval-form__drawer {
8
- display: block;
9
- }
10
- .approval-drawer.drawer
11
- .wedatea2td-form.approval-form__drawer
12
- .wedatea2td-form__label {
13
- padding-top: 5px !important;
14
- padding-bottom: 5px !important;
15
- min-width: auto !important;
16
- line-height: 1.5 !important;
17
- }
18
- .approval-drawer.drawer
19
- .wedatea2td-form.approval-form__drawer
20
- .wedatea2td-form__label
21
- label {
22
- font-size: 14px;
23
- color: #666;
24
- }
25
- .approval-drawer.drawer
26
- .wedatea2td-form.approval-form__drawer
27
- .wedatea2td-form__controls {
28
- width: 100%;
29
- font-size: 12px;
30
- }
31
- .approval-drawer.drawer
32
- .wedatea2td-form.approval-form__drawer
33
- .wedatea2td-form__controls--text {
34
- padding-top: 5px !important;
35
- padding-bottom: 16px !important;
36
- line-height: 1.5 !important;
37
- }
38
- .approval-drawer.drawer
39
- .wedatea2td-form.approval-form__drawer
40
- .wedatea2td-form__controls--text
41
- .wedatea2td-btn {
42
- padding: 0 20px !important;
43
- height: 28px !important;
44
- line-height: 28px !important;
45
- min-width: auto !important;
46
- }
47
- .approval-drawer.drawer
48
- .wedatea2td-form.approval-form__drawer
49
- .wedatea2td-form__controls--text
50
- .wedatea2td-btn.wedatea2td-btn--link {
51
- padding: 0 !important;
52
- }
53
- .approval-drawer.drawer
54
- .wedatea2td-form.approval-form__drawer
55
- .form-item__plain {
56
- font-size: 14px;
57
- color: #333;
58
- }
59
- .approval-drawer.drawer
60
- .wedatea2td-form.approval-form__drawer
61
- .btn-wrapper__black
62
- button {
63
- border-radius: 4px;
64
- }
65
- .approval-drawer.drawer
66
- .wedatea2td-form.approval-form__drawer
67
- .btn-wrapper__black.person-btn__wrapper
68
- button {
69
- margin-right: 8px;
70
- margin-bottom: 6px;
71
- }
72
- .approval-drawer.drawer
73
- .wedatea2td-form.approval-form__drawer
74
- .upload-item__label
75
- .wedatea2td-form__label {
76
- padding-top: 12px !important;
77
- }
78
- .approval-drawer.drawer
79
- .wedatea2td-form.approval-form__drawer
80
- .form-item__textarea {
81
- width: 356px;
82
- height: 108px;
83
- border-radius: 4px;
84
- }
85
- .approval-drawer.drawer .btn-wrapper button {
86
- border-radius: 4px;
87
- }
88
- .approval-drawer.drawer .btn-wrapper button:first-child {
89
- margin-right: 10px;
90
- }
91
- .approval-drawer.drawer .person-item {
92
- display: inline-block;
93
- vertical-align: middle;
94
- height: 30px;
95
- box-sizing: border-box;
96
- margin-right: 8px;
97
- margin-bottom: 6px;
98
- padding: 4px;
99
- border: 1px solid #dcdee6;
100
- border-radius: 4px;
101
- font-size: 12px;
102
- }
103
- .approval-drawer.drawer .person-item span {
104
- padding: 0 8px;
105
- }
106
- .approval-drawer.drawer .person-item .wedatea2td-icon-dismiss {
107
- cursor: pointer;
108
- }
109
- .approval-drawer.drawer .wedatea2td-drawer__body {
110
- padding: 28px;
111
- }
112
- .approval-drawer.drawer .wedatea2td-drawer__footer {
113
- flex: 0 0 76px;
114
- padding: 20px;
115
- background-color: #fff;
116
- }
117
- .approval-drawer.drawer .wedatea2td-drawer__footer .btn-wrapper button {
118
- height: 36px;
119
- width: 106px;
120
- }
121
- .approval-drawer.drawer .apass-upload-file-item__title {
122
- max-width: 220px;
123
- overflow: hidden;
124
- text-overflow: ellipsis;
125
- display: inline-block;
126
- }
127
- .ccUsers-wrapper .person-item {
128
- display: inline-block;
129
- vertical-align: middle;
130
- height: 30px;
131
- box-sizing: border-box;
132
- margin-right: 8px;
133
- margin-bottom: 6px;
134
- padding: 4px;
135
- border: 1px solid #dcdee6;
136
- border-radius: 4px;
137
- font-size: 12px;
138
- }
139
- .ccUsers-wrapper .person-item span {
140
- padding: 0 8px;
141
- }
142
- .ccUsers-wrapper .person-item .wedatea2td-icon-dismiss {
143
- cursor: pointer;
144
- }
@@ -1,178 +0,0 @@
1
- import React, { useState, useEffect } from 'react';
2
- import { Drawer, Button, Form, Icon } from 'tea-component';
3
- import { HighlightTextarea, UserSelectModel } from '../../components';
4
- import { useControlContext } from './provider';
5
- import './ApprovalDrawer.css';
6
- const ExtraDOM = (props) => {
7
- const {
8
- // fileList,
9
- approveInfo, onChange,
10
- // appCode,
11
- type, operationName, statusFlag, setStatusFlag, statusMessage, setStatusMessage, opinionUserMap, setOpinionUserMap, setHighlightPositionMap, } = props;
12
- const approveInfoLabel = type === 'handle' ? `${operationName}意见` : '审批意见';
13
- return (React.createElement(Form.Item, { label: approveInfoLabel, required: type === 'reject', status: statusFlag, message: statusMessage },
14
- React.createElement(HighlightTextarea, { value: approveInfo, placeholder: `请输入您的${approveInfoLabel},可@通知他人`, opinionUserMap: opinionUserMap, setOpinionUserMap: setOpinionUserMap, setHighlightPositionMap: setHighlightPositionMap, onChange: (value) => {
15
- onChange('approveInfo', value);
16
- setStatusFlag('');
17
- setStatusMessage(null);
18
- if (type === 'reject' && !value.trim()) {
19
- setStatusFlag('error');
20
- setStatusMessage(`请输入${approveInfoLabel}`);
21
- }
22
- if (value.length > 500) {
23
- setStatusFlag('error');
24
- setStatusMessage(`${approveInfoLabel}长度不可超过500,请检查`);
25
- }
26
- } })));
27
- };
28
- const ApprovePerson = (props) => {
29
- const { label, approvers, show, onChange } = props;
30
- const removeItem = (index) => {
31
- const approversAvatar = approvers.filter((item, idx) => idx !== index);
32
- onChange(approversAvatar);
33
- };
34
- return (React.createElement(Form.Item, { label: label, className: "btn-wrapper__black person-btn__wrapper" },
35
- React.createElement(Button, { onClick: show },
36
- React.createElement("span", { style: { fontSize: '16px', lineHeight: '16px' } }, "+"),
37
- " ",
38
- '人员'),
39
- approvers.length > 0
40
- ? approvers.map(({ text }, index) => (React.createElement("div", { className: "person-item", key: `person-${index}` },
41
- React.createElement("span", null, text),
42
- React.createElement(Icon, { type: "dismiss", onClick: () => removeItem(index) }))))
43
- : null));
44
- };
45
- export const ApprovalDrawer = (props) => {
46
- var _a, _b, _c, _d, _e, _f;
47
- const { pageInfo, flowDetail } = props;
48
- const { handleType, approveDrawerVisible, submitLoading, onTriggerFlowEvent, onApproveDrawerVisibleChange, } = useControlContext();
49
- const { startAppCode: appCode, currentNodeName: nodeName, operationName, currentApproverName, } = flowDetail || {};
50
- const { buttons, showCarbonCopy } = pageInfo || {};
51
- const [fileList, setFileList] = useState((_a = props.fileList) !== null && _a !== void 0 ? _a : []);
52
- const [approveInfo, setApproveInfo] = useState((_b = props.approveInfo) !== null && _b !== void 0 ? _b : '');
53
- const [opinionUserMap, setOpinionUserMap] = useState({});
54
- const [highlightPositionMap, setHighlightPositionMap] = useState({});
55
- const [approvers, setApprovers] = useState((_c = props.approvers) !== null && _c !== void 0 ? _c : []);
56
- const [modalVisible, setModalVisible] = useState(false);
57
- const [statusFlag, setStatusFlag] = useState('');
58
- const [statusMessage, setStatusMessage] = useState(null);
59
- const showModal = () => setModalVisible(true);
60
- const hideModal = () => setModalVisible(false);
61
- const stateMap = {
62
- fileList: {
63
- default: [],
64
- fn: setFileList,
65
- },
66
- // addTag: {
67
- // default: false,
68
- // fn: setTagStatus,
69
- // },
70
- approveInfo: {
71
- default: '',
72
- fn: setApproveInfo,
73
- },
74
- approvers: {
75
- default: [],
76
- fn: setApprovers,
77
- },
78
- statusFlag: {
79
- default: '',
80
- fn: setStatusFlag,
81
- },
82
- statusMessage: {
83
- default: null,
84
- fn: setStatusMessage,
85
- },
86
- };
87
- const approvalType = {
88
- agree: {
89
- title: `${(buttons === null || buttons === void 0 ? void 0 : buttons[1]) || '同意'}`,
90
- dom: true,
91
- personLabel: '抄送',
92
- },
93
- reject: {
94
- title: `${(buttons === null || buttons === void 0 ? void 0 : buttons[2]) || '拒绝'}`,
95
- dom: true,
96
- personLabel: '抄送',
97
- },
98
- transfer: {
99
- title: '转办',
100
- dom: false,
101
- personLabel: '转办',
102
- },
103
- handle: {
104
- title: '处理',
105
- dom: true,
106
- personLabel: '处理',
107
- },
108
- };
109
- useEffect(() => {
110
- if (!approveDrawerVisible) {
111
- Object.values(stateMap).forEach(({ default: defaultValue, fn }) => fn(defaultValue));
112
- }
113
- else {
114
- // postUserInfo().then((res) => {
115
- // if (res?.data) {
116
- // setApprover(res?.data?.name);
117
- // }
118
- // });
119
- }
120
- }, [approveDrawerVisible]);
121
- const handleSubmit = () => {
122
- var _a;
123
- // const getIdReg = /^(\d+)&(?:user|group),(?:.+)$/;
124
- if (submitLoading)
125
- return;
126
- const obj = {
127
- operationComment: approveInfo,
128
- opinionUserMap,
129
- highlightPositionList: JSON.stringify(highlightPositionMap),
130
- attachmentInfo: JSON.stringify(fileList),
131
- ccUserIds: approvers.map((item) => item.value).join(','),
132
- turnToUserId: (_a = approvers === null || approvers === void 0 ? void 0 : approvers[0]) === null || _a === void 0 ? void 0 : _a.value,
133
- };
134
- switch (handleType) {
135
- case 'agree':
136
- Reflect.deleteProperty(obj, 'turnToUserId');
137
- break;
138
- case 'reject':
139
- Reflect.deleteProperty(obj, 'ccUserIds');
140
- Reflect.deleteProperty(obj, 'turnToUserId');
141
- break;
142
- case 'transfer':
143
- Reflect.deleteProperty(obj, 'ccUserIds');
144
- break;
145
- }
146
- onTriggerFlowEvent(obj);
147
- };
148
- const onChange = (key, value) => {
149
- stateMap[key].fn(value);
150
- };
151
- return (React.createElement(React.Fragment, null,
152
- React.createElement(Drawer, { showMask: true, size: 'l', className: "approval-drawer drawer", outerClickClosable: false, visible: approveDrawerVisible, title: handleType === 'handle'
153
- ? `${operationName}意见`
154
- : `审批意见-${(_d = approvalType === null || approvalType === void 0 ? void 0 : approvalType[handleType]) === null || _d === void 0 ? void 0 : _d.title}`, onClose: onApproveDrawerVisibleChange, footer: React.createElement("div", { className: "btn-wrapper" },
155
- React.createElement(Button, { className: "submit-btn", type: "primary", loading: submitLoading, onClick: () => {
156
- if (handleType === 'reject' && !approveInfo.trim()) {
157
- setStatusFlag('error');
158
- setStatusMessage('请输入审批意见');
159
- return;
160
- }
161
- if (approveInfo.length > 500) {
162
- setStatusFlag('error');
163
- setStatusMessage('审批意见长度不可超过500,请检查');
164
- return;
165
- }
166
- handleSubmit();
167
- } }, "\u63D0\u4EA4"),
168
- React.createElement(Button, { onClick: onApproveDrawerVisibleChange }, "\u53D6\u6D88")) },
169
- React.createElement(Form, { className: "approval-form__drawer" },
170
- React.createElement(Form.Item, { label: '当前节点' },
171
- React.createElement("span", { className: "form-item__plain" }, nodeName)),
172
- React.createElement(Form.Item, { label: handleType === 'handle' ? '处理人' : '审批人' },
173
- React.createElement("span", { className: "form-item__plain" }, currentApproverName || '--')),
174
- ((_e = approvalType === null || approvalType === void 0 ? void 0 : approvalType[handleType]) === null || _e === void 0 ? void 0 : _e.dom) ? (React.createElement(ExtraDOM, { type: handleType, appCode: appCode, onChange: onChange, fileList: fileList, approveInfo: approveInfo, operationName: operationName, statusFlag: statusFlag, setStatusFlag: setStatusFlag, statusMessage: statusMessage, setStatusMessage: setStatusMessage, opinionUserMap: opinionUserMap, setOpinionUserMap: setOpinionUserMap, setHighlightPositionMap: setHighlightPositionMap })) : null,
175
- handleType !== 'reject' &&
176
- (showCarbonCopy || handleType === 'transfer') ? (React.createElement(ApprovePerson, { approvers: approvers, label: (_f = approvalType === null || approvalType === void 0 ? void 0 : approvalType[handleType]) === null || _f === void 0 ? void 0 : _f.personLabel, show: showModal, onChange: (val) => onChange('approvers', val) })) : null)),
177
- React.createElement(UserSelectModel, { visible: modalVisible, onChange: (val) => onChange('approvers', val), onClose: hideModal, value: approvers === null || approvers === void 0 ? void 0 : approvers.map((item) => item === null || item === void 0 ? void 0 : item.value) })));
178
- };
@@ -1,115 +0,0 @@
1
- .cp-vant-popup {
2
- z-index: 998 !important;
3
- }
4
- .cp-vant-popup h3.popup-title {
5
- padding: 20px 24px 12px;
6
- }
7
- .cp-vant-popup .rv-cell {
8
- padding: 12px 24px;
9
- }
10
- .cp-vant-popup .rv-field + .rv-field {
11
- margin-top: 12px;
12
- }
13
- .cp-vant-popup .rv-field__control {
14
- color: #000;
15
- }
16
- .cp-vant-popup .rv-cell:not(:last-child)::after {
17
- left: 24px;
18
- right: 24px;
19
- border-bottom: 1px solid #dcdee6;
20
- }
21
- .cp-vant-popup .apa-height-xl.wedatea2td-btn.success-btn {
22
- padding: 0;
23
- height: 40px;
24
- line-height: 40px;
25
- min-width: 152px;
26
- position: absolute;
27
- bottom: 30px;
28
- left: 20px;
29
- right: 20px;
30
- width: calc(100% - 48px);
31
- }
32
- .cp-vant-popup .popup-content-wrapper {
33
- height: calc(100% - 90px);
34
- overflow: auto;
35
- }
36
- .cp-vant-popup h3.popup-title {
37
- padding: 20px;
38
- padding-bottom: 10px;
39
- font-size: 14px;
40
- }
41
- .cp-vant-popup .rv-cell {
42
- padding-left: 20px;
43
- }
44
- .cp-vant-popup .upload-cell_wrapper .pant-cell__title {
45
- display: flex;
46
- justify-content: space-between;
47
- }
48
- .cp-vant-popup .label-execute__btn .rv-cell__value .rv-field__control-wrapper {
49
- margin-right: 12px;
50
- justify-content: flex-end;
51
- color: #2473f2;
52
- }
53
- .cp-vant-popup
54
- .label-execute__btn
55
- .rv-cell__value
56
- .rv-field__control-wrapper
57
- .rv-field__children {
58
- justify-content: flex-end;
59
- }
60
- .cp-vant-popup .label-execute__btn .btn-show-modal {
61
- display: flex;
62
- align-items: center;
63
- }
64
- .cp-vant-popup .label-execute__btn .apa-icon {
65
- width: 16px;
66
- height: 16px;
67
- display: inline-block;
68
- vertical-align: middle;
69
- background-repeat: no-repeat;
70
- background-position: inherit;
71
- font-size: 0;
72
- background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMTZweCIgaGVpZ2h0PSIxNnB4IiB2aWV3Qm94PSIwIDAgMTYgMTYiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDU4ICg4NDY2MykgLSBodHRwczovL3NrZXRjaC5jb20gLS0+CiAgICA8dGl0bGU+55S75p2/PC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGcgaWQ9IueUu+advyIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9IuWbvuaghy/mt7vliqAiPgogICAgICAgICAgICA8ZyBpZD0i57yW57uEIj4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik04LDIuNSBDOC4yNzYxNDIzNywyLjUgOC41LDIuNzIzODU3NjMgOC41LDMgTDguNSw3LjUgTDEzLDcuNSBDMTMuMjc2MTQyNCw3LjUgMTMuNSw3LjcyMzg1NzYzIDEzLjUsOCBDMTMuNSw4LjI3NjE0MjM3IDEzLjI3NjE0MjQsOC41IDEzLDguNSBMOC41LDguNSBMOC41LDEzIEM4LjUsMTMuMjc2MTQyNCA4LjI3NjE0MjM3LDEzLjUgOCwxMy41IEM3LjcyMzg1NzYzLDEzLjUgNy41LDEzLjI3NjE0MjQgNy41LDEzIEw3LjUsOC41IEwzLDguNSBDMi43MjM4NTc2Myw4LjUgMi41LDguMjc2MTQyMzcgMi41LDggQzIuNSw3LjcyMzg1NzYzIDIuNzIzODU3NjMsNy41IDMsNy41IEw3LjUsNy41IEw3LjUsMyBDNy41LDIuNzIzODU3NjMgNy43MjM4NTc2MywyLjUgOCwyLjUgWiIgaWQ9IuW9oueKtue7k+WQiCIgZmlsbD0iIzI0NzNGMiI+PC9wYXRoPgogICAgICAgICAgICAgICAgPHJlY3QgaWQ9IuefqeW9oiIgeD0iMCIgeT0iMCIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ij48L3JlY3Q+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==);
73
- }
74
- .pant-popup .success-btn {
75
- position: absolute;
76
- bottom: 30px;
77
- left: 20px;
78
- right: 20px;
79
- width: calc(100% - 48px);
80
- }
81
- .highlightTextarea-cell_wrapper .rv-cell__title {
82
- width: 100%;
83
- }
84
- .highlightTextarea-cell_wrapper
85
- .highlightTextarea-mobile__wrapper
86
- .highlight-textarea {
87
- border: none;
88
- color: #000;
89
- margin-top: 5px;
90
- }
91
- .highlightTextarea-cell_wrapper .highlightTextarea-mobile__wrapper .extra-dom {
92
- position: absolute;
93
- right: 40px;
94
- top: 14px;
95
- color: #006eff;
96
- cursor: pointer;
97
- }
98
- .highlightTextarea-cell_wrapper .rv-cell__value {
99
- display: none;
100
- }
101
- .rv-popup .person-item {
102
- display: flex;
103
- justify-content: space-between;
104
- font-size: 12px;
105
- background: rgba(220, 222, 230, 0.4);
106
- padding: 4px 8px;
107
- line-height: 20px;
108
- margin: 0 24px;
109
- }
110
- .rv-popup .person-item .tea-icon {
111
- margin-top: 4px;
112
- }
113
- .rv-popup .person-item + .person-item {
114
- margin-top: 4px;
115
- }