@cloudbase/weda-ui 3.4.5 → 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.
- package/dist/configs/components/form/input.json +48 -2
- package/dist/configs/components/form/richText.json +2 -1
- package/dist/configs/components/form/uploader.json +62 -14
- package/dist/configs/components/grid/col.js +4 -1
- package/dist/configs/components/grid/grid.js +8 -3
- package/dist/configs/components/grid/row.js +51 -3
- package/dist/configs/components/repeater.js +4 -1
- package/dist/configs/components/table.json +1 -0
- package/dist/configs/components/wd-bubble.js +6 -0
- package/dist/configs/components/wd-button.js +6 -0
- package/dist/configs/components/wd-divider.js +7 -18
- package/dist/configs/components/wd-icon.js +7 -0
- package/dist/configs/components/wd-image.js +7 -0
- package/dist/configs/components/wd-link.js +7 -2
- package/dist/configs/components/wd-text.js +14 -6
- package/dist/configs/index.js +0 -2
- package/dist/docs/common/componentList.js +1 -1
- package/dist/web/actions/showModal/index.js +1 -1
- package/dist/web/components/calendar/index.js +2 -2
- package/dist/web/components/flow/components/index.js +0 -4
- package/dist/web/components/flow/frame/index.js +4 -3
- package/dist/web/components/flow/frame/types.js +11 -5
- package/dist/web/components/flow/frame/utils.js +60 -1
- package/dist/web/components/flow/modules/chart/Chart.js +2 -3
- package/dist/web/components/flow/modules/combination/index.js +1 -1
- package/dist/web/components/flow/modules/operations/components/button/index.js +11 -0
- package/dist/web/components/flow/modules/operations/components/button/style.css +5 -0
- package/dist/web/components/flow/modules/operations/components/index.js +6 -0
- package/dist/web/components/flow/modules/operations/components/popup/index.js +100 -0
- package/dist/web/components/flow/modules/operations/components/popup/style.css +154 -0
- package/dist/web/components/flow/modules/operations/components/popup/types.js +1 -0
- package/dist/web/components/flow/modules/operations/components/user-select/index.js +43 -0
- package/dist/web/components/flow/modules/operations/components/user-select/style.css +4 -0
- package/dist/web/components/flow/modules/operations/components/user-select/types.js +1 -0
- package/dist/web/components/flow/modules/operations/config/approval-form-config.js +140 -0
- package/dist/web/components/flow/modules/operations/config/control-config.js +218 -0
- package/dist/web/components/flow/modules/operations/config/index.js +2 -0
- package/dist/web/components/flow/modules/operations/config/types.js +1 -0
- package/dist/web/components/flow/modules/operations/control.js +26 -0
- package/dist/web/components/flow/modules/operations/controls-items/add-assignee-btn.js +33 -0
- package/dist/web/components/flow/modules/operations/controls-items/apply-cc-btn.js +12 -0
- package/dist/web/components/flow/modules/operations/controls-items/approval-drawer/comment/index.js +188 -0
- package/dist/web/components/flow/modules/operations/controls-items/approval-drawer/comment/style.css +51 -0
- package/dist/web/components/flow/modules/operations/controls-items/approval-drawer/drawer-form/index.js +64 -0
- package/dist/web/components/flow/modules/operations/controls-items/approval-drawer/drawer-form/types.js +1 -0
- package/dist/web/components/flow/modules/operations/controls-items/approval-drawer/drawer-form/view-model.js +83 -0
- package/dist/web/components/flow/modules/operations/controls-items/approval-drawer/field/index.js +16 -0
- package/dist/web/components/flow/modules/operations/controls-items/approval-drawer/field/style.css +56 -0
- package/dist/web/components/flow/modules/operations/controls-items/approval-drawer/index.js +47 -0
- package/dist/web/components/flow/modules/operations/controls-items/approval-drawer/style.css +60 -0
- package/dist/web/components/flow/modules/operations/controls-items/cancel-apply-btn.js +15 -0
- package/dist/web/components/flow/modules/operations/controls-items/check-list-popup/index.js +11 -0
- package/dist/web/components/flow/modules/operations/controls-items/check-list-popup/style.css +26 -0
- package/dist/web/components/flow/modules/operations/controls-items/flow-task-info-modal.js +98 -0
- package/dist/web/components/flow/modules/operations/controls-items/index.js +18 -0
- package/dist/web/components/flow/modules/operations/controls-items/initiation-btn.js +25 -0
- package/dist/web/components/flow/modules/operations/controls-items/revoke-modal/index.js +50 -0
- package/dist/web/components/flow/modules/operations/controls-items/revoke-modal/style.css +28 -0
- package/dist/web/components/flow/modules/operations/controls-items/roll-back-modal.js +104 -0
- package/dist/web/components/flow/modules/operations/controls-items/types.js +1 -0
- package/dist/web/components/flow/modules/operations/index.js +2 -0
- package/dist/web/components/flow/modules/operations/style.css +20 -0
- package/dist/web/components/flow/modules/operations/view-model.js +137 -0
- package/dist/web/components/flow/services/ideData/instance.js +2 -2
- package/dist/web/components/flow/services/ideData/pageDetail.js +1 -0
- package/dist/web/components/form/uploader/index.css +19 -0
- package/dist/web/components/form/uploader/index.js +21 -3
- package/dist/web/components/form/uploader/uploader.h5.js +14 -8
- package/dist/web/components/form/uploader/uploader.pc.js +29 -16
- package/dist/web/components/form/uploaderFile/index.css +5 -2
- package/dist/web/components/form/uploaderFile/uploadFile.h5.js +15 -12
- package/dist/web/components/form/uploaderFile/uploadFile.pc.js +11 -8
- package/dist/web/components/form/userOrgSelect/common/fetch-data-service.js +0 -1
- package/dist/web/components/form/userOrgSelect/component/depart-select/index.js +1 -1
- package/dist/web/components/form/userOrgSelect/component/user-select-h5/index.js +9 -5
- package/dist/web/components/form/userOrgSelect/component/user-select-h5/user-select-h5.js +4 -2
- package/dist/web/components/form/userOrgSelect/component/user-select-pc/user-model.js +2 -2
- package/dist/web/components/form/userOrgSelect/component/user-select-pc/user-select-pc.js +4 -2
- package/dist/web/components/grid/col.js +81 -18
- package/dist/web/components/grid/grid.js +1 -1
- package/dist/web/components/grid/row.js +4 -2
- package/dist/web/components/index.js +1 -1
- package/dist/web/components/listView/index.js +4 -3
- package/dist/web/components/lottery/index.js +122 -123
- package/dist/web/components/table/ExportFileModalByApi/index.js +1 -1
- package/dist/web/components/table/ImportFileModal/index.js +1 -1
- package/dist/web/components/table/ImportFileModalByApi/index.js +1 -1
- package/dist/web/components/wd-bubble/wd-bubble.js +11 -3
- package/dist/web/components/wd-button/wd-button.js +22 -13
- package/dist/web/components/wd-divider/wd-divider.js +10 -7
- package/dist/web/components/wd-icon/wd-icon.js +12 -3
- package/dist/web/components/wd-image/index.js +12 -5
- package/dist/web/components/wd-link/wd-link.js +11 -3
- package/dist/web/components/wd-text/wd-text.js +15 -3
- package/dist/web/utils/hooks/use-cloud-id-temp-url.js +7 -3
- package/dist/web/utils/platform.js +0 -1
- package/dist/web/utils/tool.js +11 -0
- package/dist/web/utils/widget-api/index.js +3 -0
- package/package.json +5 -3
- package/dist/configs/components/auth.json +0 -17
- package/dist/web/components/flow/components/FlowUserSelect/index.css +0 -116
- package/dist/web/components/flow/components/FlowUserSelect/index.js +0 -115
- package/dist/web/components/flow/components/HighlightTextarea/index.css +0 -42
- package/dist/web/components/flow/components/HighlightTextarea/index.js +0 -131
- package/dist/web/components/flow/components/UserSelectModel/UserSelect.js +0 -72
- package/dist/web/components/flow/components/UserSelectModel/UserSelectMobile.css +0 -8
- package/dist/web/components/flow/components/UserSelectModel/UserSelectMobile.js +0 -82
- package/dist/web/components/flow/components/UserSelectModel/index.js +0 -18
- package/dist/web/components/flow/components/WedaUserTransfer/index.css +0 -3
- package/dist/web/components/flow/components/WedaUserTransfer/index.js +0 -162
- package/dist/web/components/flow/modules/control/ApprovalDrawer.css +0 -144
- package/dist/web/components/flow/modules/control/ApprovalDrawer.js +0 -178
- package/dist/web/components/flow/modules/control/ApprovalPopup.css +0 -115
- package/dist/web/components/flow/modules/control/ApprovalPopup.js +0 -240
- package/dist/web/components/flow/modules/control/Control.css +0 -29
- package/dist/web/components/flow/modules/control/Control.js +0 -105
- package/dist/web/components/flow/modules/control/ControlMobile.css +0 -101
- package/dist/web/components/flow/modules/control/ControlMobile.js +0 -148
- package/dist/web/components/flow/modules/control/FlowTaskInfoModal.css +0 -3
- package/dist/web/components/flow/modules/control/FlowTaskInfoModal.js +0 -31
- package/dist/web/components/flow/modules/control/constants/index.js +0 -35
- package/dist/web/components/flow/modules/control/index.js +0 -15
- package/dist/web/components/flow/modules/control/provider/index.js +0 -17
- package/dist/web/components/flow/modules/control/provider/useControlModel.js +0 -252
- package/dist/web/components/flow/modules/control/provider/useMobileModel.js +0 -84
- package/dist/web/components/flow/modules/control/provider/useRevokeAndBackHook.js +0 -84
- package/dist/web/components/flow/modules/control/utils/ControlModelUtils.js +0 -57
- package/dist/web/components/flow/modules/control/utils/index.js +0 -3
- package/dist/web/components/flow/modules/control/utils/tools.js +0 -3
|
@@ -1,240 +0,0 @@
|
|
|
1
|
-
import React, { useState, useEffect, useRef } from 'react';
|
|
2
|
-
import { Icon, Button } from 'tea-component';
|
|
3
|
-
import { Popup, Field } from 'react-vant';
|
|
4
|
-
import { HighlightTextarea } from '../../components';
|
|
5
|
-
import { useControlContext } from './provider';
|
|
6
|
-
import { ACTION_TYPE } from './constants';
|
|
7
|
-
import './ApprovalPopup.css';
|
|
8
|
-
const ExtraDOM = (props) => {
|
|
9
|
-
const { type, statusMessage, setStatusMessage, operationName, opinionUserMap, setOpinionUserMap, setHighlightPositionMap, prevFn, onUserSelectModelVisibleChange, onUserSelectModalInfoChange, safeJsonParse, userSelectModelVisible, setApproveComment, } = props;
|
|
10
|
-
const [approveInfo, setApproveInfo] = useState('');
|
|
11
|
-
useEffect(() => {
|
|
12
|
-
if (!userSelectModelVisible) {
|
|
13
|
-
const popupData = sessionStorage.getItem('FlowActionsMobile');
|
|
14
|
-
if (popupData) {
|
|
15
|
-
const { approveInfo: localApproveInfo } = safeJsonParse(popupData);
|
|
16
|
-
setApproveInfo(localApproveInfo);
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
}, [userSelectModelVisible]);
|
|
20
|
-
const toSelectPerson = () => {
|
|
21
|
-
prevFn === null || prevFn === void 0 ? void 0 : prevFn(approveInfo);
|
|
22
|
-
onUserSelectModelVisibleChange();
|
|
23
|
-
onUserSelectModalInfoChange({
|
|
24
|
-
approveField: 'highLightApprovers',
|
|
25
|
-
mode: 'multiple',
|
|
26
|
-
});
|
|
27
|
-
};
|
|
28
|
-
const approveInfoLabel = type === 'handle' ? `${operationName}意见` : '审批意见';
|
|
29
|
-
return (React.createElement(React.Fragment, null,
|
|
30
|
-
React.createElement(Field, { className: "highlightTextarea-cell_wrapper", label: React.createElement("div", { className: "highlightTextarea-mobile__wrapper" },
|
|
31
|
-
React.createElement("span", { className: "label" },
|
|
32
|
-
type === 'reject' && React.createElement("span", { style: { color: '#ee0a24' } }, "*"),
|
|
33
|
-
approveInfoLabel),
|
|
34
|
-
React.createElement("span", { onClick: toSelectPerson, className: "extra-dom" }, "@\u67D0\u4EBA"),
|
|
35
|
-
React.createElement(HighlightTextarea, { value: approveInfo || '', size: "mobile", placeholder: `请输入您的${approveInfoLabel},可@通知他人`, opinionUserMap: opinionUserMap, setOpinionUserMap: setOpinionUserMap, setHighlightPositionMap: setHighlightPositionMap, onChange: (value) => {
|
|
36
|
-
setApproveComment(value);
|
|
37
|
-
setApproveInfo(value);
|
|
38
|
-
setStatusMessage(null);
|
|
39
|
-
if (type === 'reject' && !value.trim()) {
|
|
40
|
-
setStatusMessage(`请输入${approveInfoLabel}`);
|
|
41
|
-
}
|
|
42
|
-
if (value.length > 500) {
|
|
43
|
-
setStatusMessage(`${approveInfoLabel}长度不可超过500,请检查`);
|
|
44
|
-
}
|
|
45
|
-
} }),
|
|
46
|
-
statusMessage && (React.createElement("div", { className: "pant-field__error-message" }, statusMessage))), placeholder: "" })));
|
|
47
|
-
};
|
|
48
|
-
const ApprovePerson = (props) => {
|
|
49
|
-
const { label, onChange, approvers, prevFn, type, approveField = 'approvers', onUserSelectModelVisibleChange, onUserSelectModalInfoChange, safeJsonParse, } = props;
|
|
50
|
-
const getUserMap = () => {
|
|
51
|
-
var _a;
|
|
52
|
-
return (_a = safeJsonParse(sessionStorage.getItem('approvers'))) === null || _a === void 0 ? void 0 : _a.reduce((p, c) => {
|
|
53
|
-
// eslint-disable-next-line no-param-reassign
|
|
54
|
-
p[c === null || c === void 0 ? void 0 : c.UserId] = c === null || c === void 0 ? void 0 : c.Name;
|
|
55
|
-
return p;
|
|
56
|
-
}, {});
|
|
57
|
-
};
|
|
58
|
-
const toSelectPerson = () => {
|
|
59
|
-
prevFn === null || prevFn === void 0 ? void 0 : prevFn();
|
|
60
|
-
onUserSelectModelVisibleChange();
|
|
61
|
-
onUserSelectModalInfoChange({
|
|
62
|
-
approveField,
|
|
63
|
-
mode: [ACTION_TYPE.AGREE, ACTION_TYPE.TRANSFER].includes(type)
|
|
64
|
-
? 'multiple'
|
|
65
|
-
: 'single',
|
|
66
|
-
});
|
|
67
|
-
};
|
|
68
|
-
const removeItem = (index) => {
|
|
69
|
-
const approversAvatar = approvers.filter((item, idx) => idx !== index);
|
|
70
|
-
onChange(approversAvatar);
|
|
71
|
-
};
|
|
72
|
-
return (React.createElement(React.Fragment, null,
|
|
73
|
-
React.createElement(Field, { label: React.createElement(React.Fragment, null,
|
|
74
|
-
React.createElement("span", { className: "label" }, label)), className: "label-execute__btn", name: "approvers", placeholder: "" },
|
|
75
|
-
React.createElement("span", { className: "btn-show-modal", onClick: toSelectPerson },
|
|
76
|
-
React.createElement("i", { className: "apa-icon apa-icon-plus-blue" }),
|
|
77
|
-
"\u4EBA\u5458")),
|
|
78
|
-
(approvers === null || approvers === void 0 ? void 0 : approvers.length) > 0
|
|
79
|
-
? approvers === null || approvers === void 0 ? void 0 : approvers.map((item, index) => {
|
|
80
|
-
var _a;
|
|
81
|
-
return (React.createElement("div", { className: "person-item", key: `person-item_${index}` },
|
|
82
|
-
React.createElement("span", null, ((_a = getUserMap()) === null || _a === void 0 ? void 0 : _a[item]) || item),
|
|
83
|
-
React.createElement(Icon, { type: "dismiss", onClick: () => removeItem(index) })));
|
|
84
|
-
})
|
|
85
|
-
: null));
|
|
86
|
-
};
|
|
87
|
-
export const ApprovalPopup = (props) => {
|
|
88
|
-
var _a, _b, _c;
|
|
89
|
-
const { pageInfo, flowDetail, safeJsonParse } = props;
|
|
90
|
-
const { handleType, approveDrawerVisible, submitLoading, approver, approvers, fileList, opinionUserMap, highlightPositionMap, userSelectModelVisible, setFileList, setApprovers, setApprover, setOpinionUserMap, setHighlightPositionMap, onApproveDrawerVisibleChange, onUserSelectModelVisibleChange, onUserSelectModalInfoChange, onTriggerFlowEvent, } = useControlContext();
|
|
91
|
-
const { startAppCode: appCode, currentNodeName: nodeName, operationName, currentApproverName, } = flowDetail || {};
|
|
92
|
-
const { buttons, showCarbonCopy } = pageInfo || {};
|
|
93
|
-
const [statusMessage, setStatusMessage] = useState('');
|
|
94
|
-
const approveInfoRef = useRef('');
|
|
95
|
-
const stateMap = {
|
|
96
|
-
fileList: {
|
|
97
|
-
default: [],
|
|
98
|
-
fn: setFileList,
|
|
99
|
-
},
|
|
100
|
-
approvers: {
|
|
101
|
-
default: [],
|
|
102
|
-
fn: setApprovers,
|
|
103
|
-
},
|
|
104
|
-
approver: {
|
|
105
|
-
default: '',
|
|
106
|
-
fn: setApprover,
|
|
107
|
-
},
|
|
108
|
-
statusMessage: {
|
|
109
|
-
default: '',
|
|
110
|
-
fn: setStatusMessage,
|
|
111
|
-
},
|
|
112
|
-
};
|
|
113
|
-
const approvalType = {
|
|
114
|
-
agree: {
|
|
115
|
-
title: `${(buttons === null || buttons === void 0 ? void 0 : buttons[1]) || '同意'}`,
|
|
116
|
-
dom: true,
|
|
117
|
-
personLabel: '抄送',
|
|
118
|
-
},
|
|
119
|
-
reject: {
|
|
120
|
-
title: `${(buttons === null || buttons === void 0 ? void 0 : buttons[2]) || '拒绝'}`,
|
|
121
|
-
dom: true,
|
|
122
|
-
personLabel: '抄送',
|
|
123
|
-
},
|
|
124
|
-
transfer: {
|
|
125
|
-
title: '转办',
|
|
126
|
-
dom: false,
|
|
127
|
-
personLabel: '转办',
|
|
128
|
-
},
|
|
129
|
-
handle: {
|
|
130
|
-
title: '处理',
|
|
131
|
-
dom: true,
|
|
132
|
-
personLabel: '抄送',
|
|
133
|
-
},
|
|
134
|
-
};
|
|
135
|
-
useEffect(() => {
|
|
136
|
-
if (!approveDrawerVisible) {
|
|
137
|
-
// resetValue?.();
|
|
138
|
-
Object.values(stateMap).forEach(({ default: defaultValue, fn }) => fn(defaultValue));
|
|
139
|
-
}
|
|
140
|
-
else if (!approver) {
|
|
141
|
-
if (!props.approver) {
|
|
142
|
-
// postUserInfo().then((res) => {
|
|
143
|
-
// if (res?.data) {
|
|
144
|
-
// setApprover(res?.data?.name);
|
|
145
|
-
// }
|
|
146
|
-
// });
|
|
147
|
-
}
|
|
148
|
-
else {
|
|
149
|
-
Object.entries(stateMap).forEach(([key, value]) => value.fn(props[key]));
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
}, [approveDrawerVisible]);
|
|
153
|
-
useEffect(() => {
|
|
154
|
-
setApprovers(props.approvers);
|
|
155
|
-
}, [props.approvers]);
|
|
156
|
-
useEffect(() => {
|
|
157
|
-
setFileList(props.fileList);
|
|
158
|
-
}, [props.fileList]);
|
|
159
|
-
useEffect(() => {
|
|
160
|
-
var _a;
|
|
161
|
-
setOpinionUserMap((_a = props.opinionUserMap) !== null && _a !== void 0 ? _a : {});
|
|
162
|
-
}, [props.opinionUserMap]);
|
|
163
|
-
useEffect(() => {
|
|
164
|
-
var _a;
|
|
165
|
-
setHighlightPositionMap((_a = props.highlightPositionMap) !== null && _a !== void 0 ? _a : {});
|
|
166
|
-
}, [props.highlightPositionMap]);
|
|
167
|
-
const onChange = (key, value) => {
|
|
168
|
-
stateMap[key].fn(value);
|
|
169
|
-
};
|
|
170
|
-
const handleSubmit = () => {
|
|
171
|
-
const obj = {
|
|
172
|
-
operationComment: approveInfoRef.current || '',
|
|
173
|
-
opinionUserMap,
|
|
174
|
-
highlightPositionList: JSON.stringify(highlightPositionMap),
|
|
175
|
-
attachmentInfo: JSON.stringify(fileList),
|
|
176
|
-
ccUserIds: approvers === null || approvers === void 0 ? void 0 : approvers.join(','),
|
|
177
|
-
turnToUserId: approvers === null || approvers === void 0 ? void 0 : approvers[0],
|
|
178
|
-
};
|
|
179
|
-
switch (handleType) {
|
|
180
|
-
case 'agree':
|
|
181
|
-
Reflect.deleteProperty(obj, 'turnToUserId');
|
|
182
|
-
break;
|
|
183
|
-
case 'reject':
|
|
184
|
-
Reflect.deleteProperty(obj, 'ccUserIds');
|
|
185
|
-
Reflect.deleteProperty(obj, 'turnToUserId');
|
|
186
|
-
break;
|
|
187
|
-
case 'transfer':
|
|
188
|
-
Reflect.deleteProperty(obj, 'ccUserIds');
|
|
189
|
-
break;
|
|
190
|
-
}
|
|
191
|
-
onTriggerFlowEvent(obj);
|
|
192
|
-
};
|
|
193
|
-
const dynamiticHeight = handleType === 'transfer' ? '500px' : '540px';
|
|
194
|
-
const saveTemp = (approveInfo) => {
|
|
195
|
-
approveInfoRef.current = approveInfo;
|
|
196
|
-
const temp = {
|
|
197
|
-
fileList,
|
|
198
|
-
approveInfo,
|
|
199
|
-
opinionUserMap,
|
|
200
|
-
highlightPositionMap,
|
|
201
|
-
approvers,
|
|
202
|
-
handleType,
|
|
203
|
-
approveDrawerVisible,
|
|
204
|
-
appCode,
|
|
205
|
-
// addApprovers,
|
|
206
|
-
// tagType,
|
|
207
|
-
// addTag,
|
|
208
|
-
nodeName,
|
|
209
|
-
approver,
|
|
210
|
-
};
|
|
211
|
-
sessionStorage.setItem('FlowActionsMobile', JSON.stringify(temp));
|
|
212
|
-
};
|
|
213
|
-
const setApproveComment = (value) => {
|
|
214
|
-
approveInfoRef.current = value;
|
|
215
|
-
};
|
|
216
|
-
return (React.createElement(React.Fragment, null,
|
|
217
|
-
React.createElement(Popup, { visible: approveDrawerVisible, position: "bottom", style: { height: dynamiticHeight }, onClose: onApproveDrawerVisibleChange, closeable: true, className: "cp-vant-popup", overlayStyle: { zIndex: 998 } },
|
|
218
|
-
React.createElement(React.Fragment, null,
|
|
219
|
-
React.createElement("div", { className: "popup-content-wrapper" },
|
|
220
|
-
React.createElement("h3", { className: "popup-title" }, handleType === 'handle'
|
|
221
|
-
? `${operationName}意见`
|
|
222
|
-
: `审批意见 - ${(_a = approvalType === null || approvalType === void 0 ? void 0 : approvalType[handleType]) === null || _a === void 0 ? void 0 : _a.title}`),
|
|
223
|
-
React.createElement(Field, { value: nodeName, label: "\u5F53\u524D\u8282\u70B9", readOnly: true }),
|
|
224
|
-
React.createElement(Field, { value: currentApproverName || '-', label: handleType === 'handle' ? '处理人' : '审批人', readOnly: true }),
|
|
225
|
-
((_b = approvalType === null || approvalType === void 0 ? void 0 : approvalType[handleType]) === null || _b === void 0 ? void 0 : _b.dom) && approveDrawerVisible ? (React.createElement(ExtraDOM, { type: handleType, appCode: appCode, onChange: onChange, fileList: fileList, operationName: operationName, statusMessage: statusMessage, setStatusMessage: setStatusMessage, opinionUserMap: opinionUserMap, setOpinionUserMap: setOpinionUserMap, setHighlightPositionMap: setHighlightPositionMap, prevFn: saveTemp, onUserSelectModelVisibleChange: onUserSelectModelVisibleChange, onUserSelectModalInfoChange: onUserSelectModalInfoChange, safeJsonParse: safeJsonParse, userSelectModelVisible: userSelectModelVisible, setApproveComment: setApproveComment })) : null,
|
|
226
|
-
handleType !== 'reject' &&
|
|
227
|
-
(showCarbonCopy || handleType === 'transfer') ? (React.createElement(ApprovePerson, { type: handleType, prevFn: saveTemp, approvers: approvers, label: (_c = approvalType === null || approvalType === void 0 ? void 0 : approvalType[handleType]) === null || _c === void 0 ? void 0 : _c.personLabel, onChange: (val) => onChange('approvers', val), onUserSelectModelVisibleChange: onUserSelectModelVisibleChange, onUserSelectModalInfoChange: onUserSelectModalInfoChange, safeJsonParse: safeJsonParse })) : null),
|
|
228
|
-
React.createElement(Button, { className: "success-btn apa-height-xl", type: "primary", loading: submitLoading, onClick: () => {
|
|
229
|
-
var _a;
|
|
230
|
-
if (handleType === 'reject' && !approveInfoRef.current.trim()) {
|
|
231
|
-
setStatusMessage('请输入审批意见');
|
|
232
|
-
return;
|
|
233
|
-
}
|
|
234
|
-
if (((_a = approveInfoRef.current) === null || _a === void 0 ? void 0 : _a.length) > 500) {
|
|
235
|
-
setStatusMessage('审批意见长度不可超过500,请检查');
|
|
236
|
-
return;
|
|
237
|
-
}
|
|
238
|
-
handleSubmit();
|
|
239
|
-
} }, "\u63D0\u4EA4")))));
|
|
240
|
-
};
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
.page-process__progress__app-page {
|
|
2
|
-
height: auto;
|
|
3
|
-
}
|
|
4
|
-
.mf-progress-footer__app-page {
|
|
5
|
-
left: 233px;
|
|
6
|
-
}
|
|
7
|
-
.page-process__progress .mf-progress-footer {
|
|
8
|
-
overflow-x: auto;
|
|
9
|
-
background: #fff;
|
|
10
|
-
text-align: center;
|
|
11
|
-
padding: 20px;
|
|
12
|
-
}
|
|
13
|
-
.page-process__progress .mf-progress-footer .mf-progress-footer__btn-line {
|
|
14
|
-
position: relative;
|
|
15
|
-
margin-left: 24px;
|
|
16
|
-
}
|
|
17
|
-
.page-process__progress
|
|
18
|
-
.mf-progress-footer
|
|
19
|
-
.mf-progress-footer__btn-line:before {
|
|
20
|
-
border-left: 1px solid rgba(0, 0, 0, 0.25);
|
|
21
|
-
height: 30px;
|
|
22
|
-
content: '';
|
|
23
|
-
position: absolute;
|
|
24
|
-
top: 3px;
|
|
25
|
-
left: -13px;
|
|
26
|
-
}
|
|
27
|
-
.mf-progress-footer__btn-group {
|
|
28
|
-
display: inline-flex;
|
|
29
|
-
}
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { Button, Modal, Form, Select } from 'tea-component';
|
|
3
|
-
import classNames from '../../../../utils/classnames';
|
|
4
|
-
import { UserSelectModel } from '../../components';
|
|
5
|
-
import { useControlContext } from './provider';
|
|
6
|
-
import { ACTION_TYPE } from './constants';
|
|
7
|
-
import { ApprovalDrawer } from './ApprovalDrawer';
|
|
8
|
-
import { FlowTaskInfoModal } from './FlowTaskInfoModal';
|
|
9
|
-
import { setOperationButtonId } from './utils';
|
|
10
|
-
import './Control.css';
|
|
11
|
-
export const FlowControl = (props) => {
|
|
12
|
-
const { commonFlowData, flowLocalProps, ide } = props;
|
|
13
|
-
const { flowDetail, pageInfo } = commonFlowData;
|
|
14
|
-
const { isWedaIde, currentPageType } = flowLocalProps;
|
|
15
|
-
const {
|
|
16
|
-
// ControlModel
|
|
17
|
-
userModalVisible, submitApplyLoading, ccUserModelVisible, ccUsers, ifSubmitAndCc, hasGoBack, setCcUsers, setCcUserModelVisible, onControlChick, setUserModalVisible, onUserModalVisibleChange, onAddCounterSign, onBackFlowCenter,
|
|
18
|
-
// RevokeModel
|
|
19
|
-
showRevokeModal, showBackModal, backNodeList, backNode, setShowRevokeModal, doneRevokeFn, doneBackFn, setShowBackModal, getNodeList, setBackNode, } = useControlContext();
|
|
20
|
-
const onClickGoBack = async () => {
|
|
21
|
-
await getNodeList();
|
|
22
|
-
setShowBackModal(true);
|
|
23
|
-
};
|
|
24
|
-
const footerClassNames = classNames('mf-progress-footer', {
|
|
25
|
-
'mf-progress-footer__app-page': !isWedaIde,
|
|
26
|
-
});
|
|
27
|
-
const containerClassNames = classNames('page-process__progress', {
|
|
28
|
-
'page-process__progress__app-page': !isWedaIde,
|
|
29
|
-
});
|
|
30
|
-
const renderButtonGroup = () => {
|
|
31
|
-
var _a, _b, _c;
|
|
32
|
-
if (hasGoBack)
|
|
33
|
-
return null;
|
|
34
|
-
/**
|
|
35
|
-
* 审批页面类型 - approval:审批页面,apply:提交审批页面
|
|
36
|
-
* 微搭编辑器中预览按钮区域根据审批页面类型展示不同的按钮,审批页面类型是提交审批页面 且在微搭编辑器中 的话 渲染提交申请按钮组
|
|
37
|
-
*/
|
|
38
|
-
if (((_a = ide.bindMetadata) === null || _a === void 0 ? void 0 : _a.approvalPageType) === 'apply' && isWedaIde) {
|
|
39
|
-
return (React.createElement("div", { className: footerClassNames },
|
|
40
|
-
React.createElement(ButtonLayout, { gap: 10 },
|
|
41
|
-
React.createElement(Button, { type: "primary" }, "\u63D0\u4EA4\u7533\u8BF7"),
|
|
42
|
-
React.createElement(Button, { type: "weak" }, "\u4FDD\u5B58\u8349\u7A3F"),
|
|
43
|
-
React.createElement(Button, { type: "weak" }, "\u53D6\u6D88"))));
|
|
44
|
-
}
|
|
45
|
-
if (['CREATE', 'DONE'].includes(currentPageType) && (pageInfo === null || pageInfo === void 0 ? void 0 : pageInfo.showRevoke)) {
|
|
46
|
-
return (React.createElement("div", { className: footerClassNames },
|
|
47
|
-
React.createElement(Button, { type: "weak", onClick: () => setShowRevokeModal(true), id: setOperationButtonId('revoke') }, "\u64A4\u9500")));
|
|
48
|
-
}
|
|
49
|
-
if (['DRAFT', 'CREATEFLOW', 'TODO'].includes(currentPageType) &&
|
|
50
|
-
(pageInfo === null || pageInfo === void 0 ? void 0 : pageInfo.show)) {
|
|
51
|
-
if (pageInfo === null || pageInfo === void 0 ? void 0 : pageInfo.showSubmitApp) {
|
|
52
|
-
return (React.createElement("div", { className: footerClassNames },
|
|
53
|
-
React.createElement(ButtonLayout, { gap: 10 },
|
|
54
|
-
ifSubmitAndCc ? (React.createElement(Button, { type: "link", onClick: () => setCcUserModelVisible(true), id: setOperationButtonId('cc') },
|
|
55
|
-
"+\u6284\u9001\u4EBA(",
|
|
56
|
-
(ccUsers === null || ccUsers === void 0 ? void 0 : ccUsers.length) || 0,
|
|
57
|
-
")")) : null,
|
|
58
|
-
React.createElement(Button, { type: "primary", loading: submitApplyLoading, onClick: (e) => onControlChick(ACTION_TYPE.SUBMIT, e), id: setOperationButtonId('submit') }, ((_b = pageInfo === null || pageInfo === void 0 ? void 0 : pageInfo.buttons) === null || _b === void 0 ? void 0 : _b[3]) || '提交申请'),
|
|
59
|
-
(flowDetail === null || flowDetail === void 0 ? void 0 : flowDetail.canDelete) && (React.createElement(React.Fragment, null,
|
|
60
|
-
React.createElement(Button, { type: "weak", onClick: (e) => onControlChick(ACTION_TYPE.SAVE_DRAFT, e), id: setOperationButtonId('save_draft') }, "\u4FDD\u5B58\u8349\u7A3F"),
|
|
61
|
-
React.createElement(Button, { type: "weak", onClick: onBackFlowCenter }, "\u53D6\u6D88"))))));
|
|
62
|
-
}
|
|
63
|
-
return (React.createElement("div", { className: footerClassNames },
|
|
64
|
-
React.createElement(ButtonLayout, null,
|
|
65
|
-
(flowDetail === null || flowDetail === void 0 ? void 0 : flowDetail.userTaskType) === 2 ? (React.createElement(Button, { type: "primary", onClick: (e) => onControlChick(ACTION_TYPE.HANDLE, e), id: setOperationButtonId('handle') }, flowDetail === null || flowDetail === void 0 ? void 0 : flowDetail.operationName)) : (React.createElement(ButtonLayout, { gap: 10 },
|
|
66
|
-
React.createElement(Button, { type: "primary", onClick: (e) => onControlChick(ACTION_TYPE.AGREE, e), id: setOperationButtonId('agree') }, (pageInfo === null || pageInfo === void 0 ? void 0 : pageInfo.buttons) ? pageInfo === null || pageInfo === void 0 ? void 0 : pageInfo.buttons[1] : '同意'),
|
|
67
|
-
React.createElement(Button, { type: "weak", onClick: (e) => onControlChick(ACTION_TYPE.REJECT, e), id: setOperationButtonId('reject') }, (pageInfo === null || pageInfo === void 0 ? void 0 : pageInfo.buttons) ? pageInfo === null || pageInfo === void 0 ? void 0 : pageInfo.buttons[2] : '拒绝'))),
|
|
68
|
-
(pageInfo === null || pageInfo === void 0 ? void 0 : pageInfo.showTurnToPerson) ? (React.createElement(Button, { type: "weak", className: "mf-progress-footer__btn-line", onClick: (e) => onControlChick(ACTION_TYPE.TRANSFER, e), id: setOperationButtonId('turn_to_person') }, "\u8F6C\u529E")) : null,
|
|
69
|
-
(pageInfo === null || pageInfo === void 0 ? void 0 : pageInfo.showRollBack) && (React.createElement(Button, { type: "weak", className: "mf-progress-footer__btn-line", onClick: onClickGoBack, id: setOperationButtonId('roll_back') }, "\u56DE\u9000")),
|
|
70
|
-
(pageInfo === null || pageInfo === void 0 ? void 0 : pageInfo.showAddAssignee) && (React.createElement(Button, { type: "weak", className: "mf-progress-footer__btn-line", onClick: onUserModalVisibleChange, id: setOperationButtonId('add_assignee') }, "\u52A0\u7B7E")))));
|
|
71
|
-
}
|
|
72
|
-
if (['DRAFT', 'CREATEFLOW'].includes(currentPageType)) {
|
|
73
|
-
return (React.createElement("div", { className: footerClassNames },
|
|
74
|
-
React.createElement(Button, { type: "primary", loading: submitApplyLoading, onClick: (e) => onControlChick(ACTION_TYPE.SUBMIT, e), id: setOperationButtonId('submit') }, ((_c = pageInfo === null || pageInfo === void 0 ? void 0 : pageInfo.buttons) === null || _c === void 0 ? void 0 : _c[3]) || '提交申请'),
|
|
75
|
-
React.createElement(Button, { type: "weak", onClick: (e) => onControlChick(ACTION_TYPE.SAVE_DRAFT, e), id: setOperationButtonId('save_draft') }, "\u4FDD\u5B58\u8349\u7A3F"),
|
|
76
|
-
React.createElement(Button, { type: "weak", onClick: onBackFlowCenter }, "\u53D6\u6D88")));
|
|
77
|
-
}
|
|
78
|
-
return null;
|
|
79
|
-
};
|
|
80
|
-
return (
|
|
81
|
-
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
82
|
-
React.createElement("div", { ...ide },
|
|
83
|
-
React.createElement("div", { className: containerClassNames },
|
|
84
|
-
renderButtonGroup(),
|
|
85
|
-
React.createElement(Modal, { visible: showBackModal, caption: '流程回退', onClose: () => setShowBackModal(false) },
|
|
86
|
-
React.createElement(Modal.Body, null,
|
|
87
|
-
React.createElement(Form, null,
|
|
88
|
-
React.createElement(Form.Item, { label: '选择回退节点' },
|
|
89
|
-
React.createElement(Select, { size: "full", appearance: "button", matchButtonWidth: true, options: backNodeList, value: backNode, onChange: (value) => setBackNode(value) })))),
|
|
90
|
-
React.createElement(Modal.Footer, null,
|
|
91
|
-
React.createElement(Button, { type: "primary", disabled: (backNodeList === null || backNodeList === void 0 ? void 0 : backNodeList.length) === 0, onClick: () => doneBackFn() }, "\u786E\u5B9A"),
|
|
92
|
-
React.createElement(Button, { type: "weak", onClick: () => setShowBackModal(false) }, "\u53D6\u6D88"))),
|
|
93
|
-
React.createElement(Modal, { visible: showRevokeModal, caption: '撤销流程提醒', onClose: () => setShowRevokeModal(false) },
|
|
94
|
-
React.createElement(Modal.Body, null, '流程正在进行中,确认撤销此流程?'),
|
|
95
|
-
React.createElement(Modal.Footer, null,
|
|
96
|
-
React.createElement(Button, { type: "primary", onClick: doneRevokeFn }, "\u786E\u5B9A"),
|
|
97
|
-
React.createElement(Button, { type: "weak", onClick: () => setShowRevokeModal(false) }, "\u53D6\u6D88"))),
|
|
98
|
-
React.createElement(UserSelectModel, { visible: userModalVisible, onChange: (val) => val.length && onAddCounterSign(val), onClose: () => setUserModalVisible(false) }),
|
|
99
|
-
React.createElement(UserSelectModel, { value: ccUsers, visible: ccUserModelVisible, onUserIdChange: (ids) => setCcUsers(ids || []), onClose: () => setCcUserModelVisible(false) }),
|
|
100
|
-
React.createElement(FlowTaskInfoModal, null),
|
|
101
|
-
React.createElement(ApprovalDrawer, { pageInfo: pageInfo, flowDetail: flowDetail }))));
|
|
102
|
-
};
|
|
103
|
-
export const ButtonLayout = ({ children, gap }) => {
|
|
104
|
-
return (React.createElement("div", { className: "mf-progress-footer__btn-group", style: { gap: gap || 0 } }, children));
|
|
105
|
-
};
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
.mf-progress-mb--footer {
|
|
2
|
-
background: #fff;
|
|
3
|
-
padding: 20px 0;
|
|
4
|
-
text-align: center;
|
|
5
|
-
width: 100%;
|
|
6
|
-
}
|
|
7
|
-
.approval-progress__more--dialog .wedatea2td-dialog__inner {
|
|
8
|
-
width: 100%;
|
|
9
|
-
padding: 0;
|
|
10
|
-
vertical-align: bottom;
|
|
11
|
-
min-width: 100%;
|
|
12
|
-
border-radius: 0px;
|
|
13
|
-
}
|
|
14
|
-
@media (max-width: 1024px) {
|
|
15
|
-
.approval-progress__more--dialog .wedatea2td-dialog__inner {
|
|
16
|
-
margin: 0;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
.flow-popup {
|
|
20
|
-
display: flex;
|
|
21
|
-
max-height: 400px;
|
|
22
|
-
flex-direction: column;
|
|
23
|
-
}
|
|
24
|
-
.flow-popup-title {
|
|
25
|
-
height: 40px;
|
|
26
|
-
display: flex;
|
|
27
|
-
flex-shrink: 0;
|
|
28
|
-
justify-content: space-between;
|
|
29
|
-
align-items: center;
|
|
30
|
-
font-size: 16px;
|
|
31
|
-
font-weight: 400;
|
|
32
|
-
padding: 0 20px;
|
|
33
|
-
border-bottom: 1px solid #dcdee6;
|
|
34
|
-
}
|
|
35
|
-
.flow-popup-title .left {
|
|
36
|
-
color: #666;
|
|
37
|
-
}
|
|
38
|
-
.flow-popup-title .center {
|
|
39
|
-
font-size: 14px;
|
|
40
|
-
color: #666;
|
|
41
|
-
}
|
|
42
|
-
.flow-popup-title .right {
|
|
43
|
-
color: #006eff;
|
|
44
|
-
}
|
|
45
|
-
.flow-popup_mb-group-list {
|
|
46
|
-
display: flex;
|
|
47
|
-
align-items: center;
|
|
48
|
-
}
|
|
49
|
-
.flow-popup_mb-group-list span {
|
|
50
|
-
flex: 1;
|
|
51
|
-
white-space: nowrap;
|
|
52
|
-
overflow: hidden;
|
|
53
|
-
text-overflow: ellipsis;
|
|
54
|
-
}
|
|
55
|
-
.flow-popup_mb-group-list .apa-icon {
|
|
56
|
-
width: 16px;
|
|
57
|
-
height: 16px;
|
|
58
|
-
display: inline-block;
|
|
59
|
-
vertical-align: middle;
|
|
60
|
-
background-repeat: no-repeat;
|
|
61
|
-
background-position: inherit;
|
|
62
|
-
font-size: 0;
|
|
63
|
-
}
|
|
64
|
-
.flow-popup_mb-group-list .apa-icon-star-fill-active {
|
|
65
|
-
background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMTZweCIgaGVpZ2h0PSIxNnB4IiB2aWV3Qm94PSIwIDAgMTYgMTYiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDU4ICg4NDY2MykgLSBodHRwczovL3NrZXRjaC5jb20gLS0+CiAgICA8dGl0bGU+55S75p2/PC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGcgaWQ9IueUu+advyIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9Iue8lue7hCI+CiAgICAgICAgICAgIDxyZWN0IGlkPSLnn6nlvaIiIHg9IjAiIHk9IjAiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PC9yZWN0PgogICAgICAgICAgICA8cGF0aCBkPSJNOC40NDgzNjgwNCwxLjcwODQ5Mjg4IEwxMC4zNTExNDEsNS41NjM5MzIwMiBMMTAuMzUxMTQxLDUuNTYzOTMyMDIgTDE0LjYwNTg3MDcsNi4xODIxODA0NCBDMTQuODc5MTQzMSw2LjIyMTg4OTI1IDE1LjA2ODQ4MzksNi40NzU2MTA2NyAxNS4wMjg3NzUxLDYuNzQ4ODgzMSBDMTUuMDEyOTYyOCw2Ljg1NzcwMTYyIDE0Ljk2MTcxOTIsNi45NTgyNzI4MiAxNC44ODI5Nzc0LDcuMDM1MDI3MTMgTDExLjgwNDIyNjEsMTAuMDM2MDY4IEwxMS44MDQyMjYxLDEwLjAzNjA2OCBMMTIuNTMxMDIwNywxNC4yNzM2MDU3IEMxMi41Nzc3MDEyLDE0LjU0NTc3MzkgMTIuMzk0OTA3MywxNC44MDQyNTE4IDEyLjEyMjczOSwxNC44NTA5MzI0IEMxMi4wMTQzNjAyLDE0Ljg2OTUyMDggMTEuOTAyODc2MiwxNC44NTE4NjM0IDExLjgwNTU0NTksMTQuODAwNjkzOSBMOCwxMi44IEw4LDEyLjggTDQuMTk0NDU0MDYsMTQuODAwNjkzOSBDMy45NTAwMzE3NywxNC45MjkxOTQzIDMuNjQ3NzE4MTksMTQuODM1MjIxIDMuNTE5MjE3NzgsMTQuNTkwNzk4OCBDMy40NjgwNDgyNSwxNC40OTM0Njg1IDMuNDUwMzkwOTEsMTQuMzgxOTg0NSAzLjQ2ODk3OTMzLDE0LjI3MzYwNTcgTDQuMTk1NzczOTMsMTAuMDM2MDY4IEw0LjE5NTc3MzkzLDEwLjAzNjA2OCBMMS4xMTcwMjI2LDcuMDM1MDI3MTMgQzAuOTE5MjgwODA2LDYuODQyMjc2NTIgMC45MTUyMzQ2NTMsNi41MjU3MTk4OSAxLjEwNzk4NTI2LDYuMzI3OTc4MSBDMS4xODQ3Mzk1Niw2LjI0OTIzNjI4IDEuMjg1MzEwNzcsNi4xOTc5OTI2OSAxLjM5NDEyOTI4LDYuMTgyMTgwNDQgTDUuNjQ4ODU4OTksNS41NjM5MzIwMiBMNS42NDg4NTg5OSw1LjU2MzkzMjAyIEw3LjU1MTYzMTk2LDEuNzA4NDkyODggQzcuNjczODQzMTEsMS40NjA4NjYwNSA3Ljk3MzY1NjAzLDEuMzU5MTk2NTUgOC4yMjEyODI4NiwxLjQ4MTQwNzY5IEM4LjMxOTg4OTE2LDEuNTMwMDcyODEgOC4zOTk3MDI5MiwxLjYwOTg4NjU3IDguNDQ4MzY4MDQsMS43MDg0OTI4OCBaIiBpZD0i5pif5b2iIiBmaWxsPSIjRjRDMDBDIiBmaWxsLXJ1bGU9Im5vbnplcm8iPjwvcGF0aD4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==);
|
|
66
|
-
}
|
|
67
|
-
.flow-popup_mb-group-list .apa-icon-star-fill {
|
|
68
|
-
background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMTZweCIgaGVpZ2h0PSIxNnB4IiB2aWV3Qm94PSIwIDAgMTYgMTYiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDU4ICg4NDY2MykgLSBodHRwczovL3NrZXRjaC5jb20gLS0+CiAgICA8dGl0bGU+55S75p2/PC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGcgaWQ9IueUu+advyIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9Iue8lue7hCI+CiAgICAgICAgICAgIDxyZWN0IGlkPSLnn6nlvaIiIHg9IjAiIHk9IjAiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PC9yZWN0PgogICAgICAgICAgICA8cGF0aCBkPSJNOC40NDgzNjgwNCwxLjcwODQ5Mjg4IEwxMC4zNTExNDEsNS41NjM5MzIwMiBMMTAuMzUxMTQxLDUuNTYzOTMyMDIgTDE0LjYwNTg3MDcsNi4xODIxODA0NCBDMTQuODc5MTQzMSw2LjIyMTg4OTI1IDE1LjA2ODQ4MzksNi40NzU2MTA2NyAxNS4wMjg3NzUxLDYuNzQ4ODgzMSBDMTUuMDEyOTYyOCw2Ljg1NzcwMTYyIDE0Ljk2MTcxOTIsNi45NTgyNzI4MiAxNC44ODI5Nzc0LDcuMDM1MDI3MTMgTDExLjgwNDIyNjEsMTAuMDM2MDY4IEwxMS44MDQyMjYxLDEwLjAzNjA2OCBMMTIuNTMxMDIwNywxNC4yNzM2MDU3IEMxMi41Nzc3MDEyLDE0LjU0NTc3MzkgMTIuMzk0OTA3MywxNC44MDQyNTE4IDEyLjEyMjczOSwxNC44NTA5MzI0IEMxMi4wMTQzNjAyLDE0Ljg2OTUyMDggMTEuOTAyODc2MiwxNC44NTE4NjM0IDExLjgwNTU0NTksMTQuODAwNjkzOSBMOCwxMi44IEw4LDEyLjggTDQuMTk0NDU0MDYsMTQuODAwNjkzOSBDMy45NTAwMzE3NywxNC45MjkxOTQzIDMuNjQ3NzE4MTksMTQuODM1MjIxIDMuNTE5MjE3NzgsMTQuNTkwNzk4OCBDMy40NjgwNDgyNSwxNC40OTM0Njg1IDMuNDUwMzkwOTEsMTQuMzgxOTg0NSAzLjQ2ODk3OTMzLDE0LjI3MzYwNTcgTDQuMTk1NzczOTMsMTAuMDM2MDY4IEw0LjE5NTc3MzkzLDEwLjAzNjA2OCBMMS4xMTcwMjI2LDcuMDM1MDI3MTMgQzAuOTE5MjgwODA2LDYuODQyMjc2NTIgMC45MTUyMzQ2NTMsNi41MjU3MTk4OSAxLjEwNzk4NTI2LDYuMzI3OTc4MSBDMS4xODQ3Mzk1Niw2LjI0OTIzNjI4IDEuMjg1MzEwNzcsNi4xOTc5OTI2OSAxLjM5NDEyOTI4LDYuMTgyMTgwNDQgTDUuNjQ4ODU4OTksNS41NjM5MzIwMiBMNS42NDg4NTg5OSw1LjU2MzkzMjAyIEw3LjU1MTYzMTk2LDEuNzA4NDkyODggQzcuNjczODQzMTEsMS40NjA4NjYwNSA3Ljk3MzY1NjAzLDEuMzU5MTk2NTUgOC4yMjEyODI4NiwxLjQ4MTQwNzY5IEM4LjMxOTg4OTE2LDEuNTMwMDcyODEgOC4zOTk3MDI5MiwxLjYwOTg4NjU3IDguNDQ4MzY4MDQsMS43MDg0OTI4OCBaIiBpZD0i5pif5b2iIiBmaWxsPSIjQTJBQ0JEIiBmaWxsLXJ1bGU9Im5vbnplcm8iPjwvcGF0aD4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
.list-content {
|
|
72
|
-
flex: 1;
|
|
73
|
-
padding: 0 20px 20px;
|
|
74
|
-
font-size: 14px;
|
|
75
|
-
overflow-y: auto;
|
|
76
|
-
}
|
|
77
|
-
.list-content li {
|
|
78
|
-
height: 40px;
|
|
79
|
-
line-height: 40px;
|
|
80
|
-
border-bottom: 1px solid #dcdee6;
|
|
81
|
-
}
|
|
82
|
-
.list-content .list-checked {
|
|
83
|
-
color: #2473f2;
|
|
84
|
-
display: flex;
|
|
85
|
-
justify-content: space-between;
|
|
86
|
-
align-items: center;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
.list-checked::after {
|
|
90
|
-
content: '\2713';
|
|
91
|
-
width: 16px;
|
|
92
|
-
height: 40px;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
.list-content li span {
|
|
96
|
-
display: inline-block;
|
|
97
|
-
max-width: 90%;
|
|
98
|
-
white-space: nowrap;
|
|
99
|
-
overflow: hidden;
|
|
100
|
-
text-overflow: ellipsis;
|
|
101
|
-
}
|
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { Button, Status, Text, StatusTip } from 'tea-component';
|
|
3
|
-
import { Popup } from 'react-vant';
|
|
4
|
-
import { UserSelectModel } from '../../components';
|
|
5
|
-
import { useControlContext } from './provider';
|
|
6
|
-
import { ACTION_TYPE } from './constants';
|
|
7
|
-
import { ApprovalPopup } from './ApprovalPopup';
|
|
8
|
-
import { ButtonLayout } from './Control';
|
|
9
|
-
import { setOperationButtonId } from './utils';
|
|
10
|
-
import { FlowTaskInfoModal } from './FlowTaskInfoModal';
|
|
11
|
-
import './ControlMobile.css';
|
|
12
|
-
export const FlowControlMobile = (props) => {
|
|
13
|
-
const { commonFlowData, flowLocalProps, ide } = props;
|
|
14
|
-
const { pageInfo, flowDetail } = commonFlowData;
|
|
15
|
-
const { isWedaIde, safeJsonParse, currentPageType } = flowLocalProps;
|
|
16
|
-
const {
|
|
17
|
-
// ControlModel
|
|
18
|
-
submitApplyLoading, showMoreAction, ifSubmitAndCc, hasGoBack, ccUsers, onControlChick, onShowMoreVisibleChange, loadingAssign, onBackFlowCenter,
|
|
19
|
-
// RevokeModel
|
|
20
|
-
showRevokeModal, showBackModal, backNodeList, backNode, setShowRevokeModal, doneRevokeFn, doneBackFn, setShowBackModal, getNodeList, setBackNode, onUserSelectModalInfoChange, setUserSelectModelVisible, userSelectApproveField, userSelectModelVisible, userSelectMode, } = useControlContext();
|
|
21
|
-
const onClickRollBack = async () => {
|
|
22
|
-
await getNodeList();
|
|
23
|
-
onShowMoreVisibleChange();
|
|
24
|
-
setShowBackModal(true);
|
|
25
|
-
};
|
|
26
|
-
const onClickAddCcUser = () => {
|
|
27
|
-
setUserSelectModelVisible(true);
|
|
28
|
-
onUserSelectModalInfoChange({ approveField: 'ccUsers', mode: 'multiple' });
|
|
29
|
-
};
|
|
30
|
-
const buttonActionMap = {
|
|
31
|
-
showTurnToPerson: {
|
|
32
|
-
label: '转办',
|
|
33
|
-
action: (e) => onControlChick(ACTION_TYPE.TRANSFER, e),
|
|
34
|
-
operationName: 'turn_to_person',
|
|
35
|
-
},
|
|
36
|
-
showRollBack: {
|
|
37
|
-
label: '回退',
|
|
38
|
-
action: async () => {
|
|
39
|
-
await getNodeList();
|
|
40
|
-
setShowBackModal(true);
|
|
41
|
-
},
|
|
42
|
-
operationName: 'roll_back',
|
|
43
|
-
},
|
|
44
|
-
showAddAssignee: {
|
|
45
|
-
label: '加签',
|
|
46
|
-
action: () => {
|
|
47
|
-
onShowMoreVisibleChange();
|
|
48
|
-
sessionStorage.setItem('selected', JSON.stringify([]));
|
|
49
|
-
sessionStorage.setItem('FlowActionsMobile', JSON.stringify({
|
|
50
|
-
instanceId: flowDetail.instanceId,
|
|
51
|
-
nodeId: flowDetail.currentNodeId,
|
|
52
|
-
taskId: flowDetail.taskId,
|
|
53
|
-
assigneeIds: [],
|
|
54
|
-
}));
|
|
55
|
-
sessionStorage.setItem('last-url', location.href);
|
|
56
|
-
setUserSelectModelVisible(true);
|
|
57
|
-
onUserSelectModalInfoChange({
|
|
58
|
-
approveField: 'assigneeIds',
|
|
59
|
-
mode: 'multiple',
|
|
60
|
-
});
|
|
61
|
-
},
|
|
62
|
-
operationName: 'add_assignee',
|
|
63
|
-
},
|
|
64
|
-
};
|
|
65
|
-
const renderButtonGroup = () => {
|
|
66
|
-
var _a, _b;
|
|
67
|
-
if (hasGoBack)
|
|
68
|
-
return null;
|
|
69
|
-
if (((_a = ide.bindMetadata) === null || _a === void 0 ? void 0 : _a.approvalPageType) === 'apply' && isWedaIde) {
|
|
70
|
-
return (React.createElement("div", { className: "mf-progress-mb--footer" },
|
|
71
|
-
React.createElement(ButtonLayout, { gap: 10 },
|
|
72
|
-
React.createElement(Button, { type: "primary" }, "\u63D0\u4EA4\u7533\u8BF7"),
|
|
73
|
-
React.createElement(Button, { type: "weak" }, "\u4FDD\u5B58\u8349\u7A3F"),
|
|
74
|
-
React.createElement(Button, { type: "weak" }, "\u53D6\u6D88"))));
|
|
75
|
-
}
|
|
76
|
-
if (['CREATE', 'DONE'].includes(currentPageType) && (pageInfo === null || pageInfo === void 0 ? void 0 : pageInfo.showRevoke)) {
|
|
77
|
-
return (React.createElement("div", { className: "mf-progress-mb--footer" },
|
|
78
|
-
React.createElement(Button, { type: "primary", onClick: () => setShowRevokeModal(true), id: setOperationButtonId('revoke') }, "\u64A4\u9500")));
|
|
79
|
-
}
|
|
80
|
-
if (['DRAFT', 'CREATEFLOW', 'TODO'].includes(currentPageType) &&
|
|
81
|
-
(pageInfo === null || pageInfo === void 0 ? void 0 : pageInfo.show)) {
|
|
82
|
-
return (React.createElement("div", { className: "mf-progress-mb--footer" }, (pageInfo === null || pageInfo === void 0 ? void 0 : pageInfo.showSubmitApp) ? (React.createElement(ButtonLayout, { gap: 10 },
|
|
83
|
-
flowDetail.canDelete ? (React.createElement(Button, { type: "link", onClick: () => onControlChick(ACTION_TYPE.SAVE_DRAFT), id: setOperationButtonId('save_draft') }, "\u4FDD\u5B58\u8349\u7A3F")) : null,
|
|
84
|
-
ifSubmitAndCc ? (React.createElement(Button, { type: "link", onClick: onClickAddCcUser, id: setOperationButtonId('cc') },
|
|
85
|
-
"+\u6284\u9001\u4EBA(",
|
|
86
|
-
ccUsers.length || 0,
|
|
87
|
-
")")) : null,
|
|
88
|
-
React.createElement(Button, { type: "primary", loading: submitApplyLoading, onClick: () => onControlChick(ACTION_TYPE.SUBMIT), id: setOperationButtonId('submit') }, ((_b = pageInfo === null || pageInfo === void 0 ? void 0 : pageInfo.buttons) === null || _b === void 0 ? void 0 : _b[3]) || '提交申请'),
|
|
89
|
-
flowDetail.canDelete ? (React.createElement(Button, { type: "weak", onClick: onBackFlowCenter }, "\u53D6\u6D88")) : null)) : (React.createElement(ButtonLayout, { gap: 10 },
|
|
90
|
-
['showTurnToPerson', 'showRollBack', 'showAddAssignee'].filter((key) => pageInfo[key]).length >= 2 ? (React.createElement(Button, { type: "link", onClick: onShowMoreVisibleChange }, "\u66F4\u591A")) : (['showTurnToPerson', 'showRollBack', 'showAddAssignee']
|
|
91
|
-
.filter((key) => pageInfo[key])
|
|
92
|
-
.map((key, actionIndex) => {
|
|
93
|
-
const { label, action, operationName } = buttonActionMap[key];
|
|
94
|
-
return (React.createElement(Button, { key: `actionItem-${actionIndex}`, className: "apa-height-xl tea-mr-4n tea-mt-1n", type: "link", onClick: action, id: setOperationButtonId(operationName) }, label));
|
|
95
|
-
})),
|
|
96
|
-
flowDetail.userTaskType === 2 ? (React.createElement(Button, { type: "primary", style: { flex: 3 }, onClick: (e) => onControlChick(ACTION_TYPE.HANDLE, e), id: setOperationButtonId('handle') }, flowDetail.operationName)) : (React.createElement(React.Fragment, null,
|
|
97
|
-
React.createElement(Button, { onClick: (e) => onControlChick(ACTION_TYPE.REJECT, e), id: setOperationButtonId('reject') }, (pageInfo === null || pageInfo === void 0 ? void 0 : pageInfo.buttons) ? pageInfo === null || pageInfo === void 0 ? void 0 : pageInfo.buttons[2] : '拒绝'),
|
|
98
|
-
React.createElement(Button, { type: "primary", onClick: (e) => onControlChick(ACTION_TYPE.AGREE, e), id: setOperationButtonId('agree') }, (pageInfo === null || pageInfo === void 0 ? void 0 : pageInfo.buttons) ? pageInfo === null || pageInfo === void 0 ? void 0 : pageInfo.buttons[1] : '同意')))))));
|
|
99
|
-
}
|
|
100
|
-
};
|
|
101
|
-
return (
|
|
102
|
-
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
103
|
-
React.createElement("div", { ...ide },
|
|
104
|
-
renderButtonGroup(),
|
|
105
|
-
React.createElement(FlowTaskInfoModal, { layout: "vertical" }),
|
|
106
|
-
React.createElement(Popup, { className: "cp-mobile-dialog apa-m-overlay approval-progress__more--dialog", visible: showMoreAction, onClose: onShowMoreVisibleChange,
|
|
107
|
-
// disableCloseIcon={true}
|
|
108
|
-
closeIcon: false, position: "bottom" },
|
|
109
|
-
React.createElement("div", { className: "apa-m-overlay__body" },
|
|
110
|
-
React.createElement("div", { className: "approval-progress__more--btns" },
|
|
111
|
-
(pageInfo === null || pageInfo === void 0 ? void 0 : pageInfo.showTurnToPerson) && (React.createElement("div", { className: "approval-progress__more--btn", onClick: (e) => {
|
|
112
|
-
onShowMoreVisibleChange();
|
|
113
|
-
onControlChick(ACTION_TYPE.TRANSFER, e);
|
|
114
|
-
} },
|
|
115
|
-
React.createElement("p", { style: { fontSize: 14 } }, "\u8F6C\u529E"),
|
|
116
|
-
React.createElement("p", null,
|
|
117
|
-
React.createElement(Text, { theme: "label" }, "\u9009\u62E9\u8F6C\u529E\u4EBA\u5458")))),
|
|
118
|
-
(pageInfo === null || pageInfo === void 0 ? void 0 : pageInfo.showRollBack) && (React.createElement("div", { className: "approval-progress__more--btn", onClick: onClickRollBack },
|
|
119
|
-
React.createElement("p", { style: { fontSize: 14 } }, "\u56DE\u9000"),
|
|
120
|
-
React.createElement("p", null,
|
|
121
|
-
React.createElement(Text, { theme: "label" }, "\u56DE\u9000\u81F3\u6307\u5B9A\u8282\u70B9")))),
|
|
122
|
-
(pageInfo === null || pageInfo === void 0 ? void 0 : pageInfo.showAddAssignee) && (React.createElement("div", { className: "approval-progress__more--btn", onClick: buttonActionMap.showAddAssignee.action },
|
|
123
|
-
React.createElement("p", { style: { fontSize: 14 } }, "\u52A0\u7B7E"),
|
|
124
|
-
React.createElement("p", null,
|
|
125
|
-
React.createElement(Text, { theme: "label" }, "\u9009\u62E9\u52A0\u7B7E\u4EBA\u5458"))))),
|
|
126
|
-
React.createElement("div", { className: "approval-progress__more--footer" },
|
|
127
|
-
React.createElement(Text, { theme: "label", onClick: onShowMoreVisibleChange }, "\u53D6\u6D88")))),
|
|
128
|
-
React.createElement(Popup, { className: "confim-popup", visible: showRevokeModal, onClose: () => setShowRevokeModal(false) },
|
|
129
|
-
React.createElement(React.Fragment, null,
|
|
130
|
-
React.createElement("h3", { className: "popup-header" }, "\u64A4\u9500\u6D41\u7A0B"),
|
|
131
|
-
React.createElement("div", { className: "popup-body" }, "\u6D41\u7A0B\u6B63\u5728\u5BA1\u6279\u6D41\u8F6C\u4E2D\uFF0C\u786E\u5B9A\u64A4\u9500\u6D41\u7A0B\uFF1F"),
|
|
132
|
-
React.createElement("div", { className: "popup-footer" },
|
|
133
|
-
React.createElement("span", { onClick: () => setShowRevokeModal(false) }, "\u53D6\u6D88"),
|
|
134
|
-
React.createElement("span", { className: "confirm-btn", onClick: doneRevokeFn }, "\u786E\u5B9A")))),
|
|
135
|
-
React.createElement(Popup, { visible: loadingAssign, className: "assign-modal" },
|
|
136
|
-
React.createElement(StatusTip, { status: "loading", loadingText: "\u52A0\u7B7E\u4E2D...", style: { color: '#fff' } })),
|
|
137
|
-
React.createElement(Popup, { className: "flow-popup", visible: showBackModal, position: "bottom", onClose: () => setShowBackModal(false) },
|
|
138
|
-
React.createElement("h3", { className: "flow-popup-title" },
|
|
139
|
-
React.createElement("span", { className: "left", onClick: () => setShowBackModal(false) }, "\u53D6\u6D88"),
|
|
140
|
-
React.createElement("span", { className: "center" }, "\u8BF7\u9009\u62E9\u56DE\u9000\u8282\u70B9"),
|
|
141
|
-
React.createElement("span", { className: "right", onClick: () => {
|
|
142
|
-
doneBackFn();
|
|
143
|
-
} }, "\u5B8C\u6210")),
|
|
144
|
-
(backNodeList === null || backNodeList === void 0 ? void 0 : backNodeList.length) ? (React.createElement("ul", { className: "list-content" }, backNodeList === null || backNodeList === void 0 ? void 0 : backNodeList.map((item) => (React.createElement("li", { key: item.value, className: backNode === item.value ? 'list-checked' : '', onClick: () => setBackNode(item.value) },
|
|
145
|
-
React.createElement("span", null, item.text)))))) : (React.createElement(Status, { icon: "blank", size: "l", title: "\u6682\u65E0\u53EF\u56DE\u9000\u8282\u70B9" }))),
|
|
146
|
-
React.createElement(UserSelectModel, { visible: userSelectModelVisible, approveField: userSelectApproveField, mode: userSelectMode, close: () => setUserSelectModelVisible(false), mobileModel: true, values: ccUsers.map((user) => user.value) }),
|
|
147
|
-
React.createElement(ApprovalPopup, { pageInfo: pageInfo, flowDetail: flowDetail, safeJsonParse: safeJsonParse })));
|
|
148
|
-
};
|