work-flow-master 1.0.0 → 1.0.2

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 (47) hide show
  1. package/lib/App.css +92 -0
  2. package/lib/App.js +19 -0
  3. package/lib/api/index.js +83 -0
  4. package/lib/assets/images/add-close.png +0 -0
  5. package/lib/assets/images/add-close1.png +0 -0
  6. package/lib/assets/images/cancel.png +0 -0
  7. package/lib/assets/images/check_box.png +0 -0
  8. package/lib/assets/images/icon_file.png +0 -0
  9. package/lib/assets/images/icon_people.png +0 -0
  10. package/lib/assets/images/icon_role.png +0 -0
  11. package/lib/assets/images/jiaojiao.png +0 -0
  12. package/lib/assets/images/list_search.png +0 -0
  13. package/lib/assets/images/loading.gif +0 -0
  14. package/lib/assets/images/next_level.png +0 -0
  15. package/lib/assets/images/next_level_active.png +0 -0
  16. package/lib/assets/logo.svg +1 -0
  17. package/lib/components/AddNode/index.js +120 -0
  18. package/lib/components/AddNode/index.scss +120 -0
  19. package/lib/components/Dialog/ErrorDialog/index.js +61 -0
  20. package/lib/components/Dialog/ErrorDialog/index.scss +60 -0
  21. package/lib/components/Dialog/SelectDialog/index.js +336 -0
  22. package/lib/components/Dialog/SelectDialog/index.scss +34 -0
  23. package/lib/components/Drawer/ApproverDrawer/index.js +260 -0
  24. package/lib/components/Drawer/ApproverDrawer/index.scss +62 -0
  25. package/lib/components/Drawer/ConditionDrawer/index.js +431 -0
  26. package/lib/components/Drawer/ConditionDrawer/index.scss +113 -0
  27. package/lib/components/Drawer/CopyerDrawer/index.js +111 -0
  28. package/lib/components/Drawer/CopyerDrawer/index.scss +12 -0
  29. package/lib/components/Drawer/PromoterDrawer/index.js +82 -0
  30. package/lib/components/Drawer/PromoterDrawer/index.scss +16 -0
  31. package/lib/components/NodeWrap/index.js +383 -0
  32. package/lib/components/NodeWrap/index.scss +32 -0
  33. package/lib/components/SelectBox/index.js +72 -0
  34. package/lib/components/SelectBox/index.scss +27 -0
  35. package/lib/components/SelectResult/index.js +67 -0
  36. package/lib/components/SelectResult/index.scss +37 -0
  37. package/lib/components/setting/index.css +4 -0
  38. package/lib/components/setting/index.js +342 -0
  39. package/lib/css/override-element-ui.scss +119 -0
  40. package/lib/css/workflow.css +952 -0
  41. package/lib/index.js +0 -0
  42. package/lib/store/index.js +21 -0
  43. package/lib/store/models.js +91 -0
  44. package/lib/utils/axios.js +43 -0
  45. package/lib/utils/const.js +74 -0
  46. package/lib/utils/index.js +158 -0
  47. package/package.json +7 -5
@@ -0,0 +1,37 @@
1
+ .select-result {
2
+ width: 276px;
3
+ height: 100%;
4
+ font-size: 12px;
5
+ ul {
6
+ height: 460px;
7
+ overflow-y: auto;
8
+ li {
9
+ margin: 11px 26px 13px 19px;
10
+ line-height: 17px;
11
+ span {
12
+ vertical-align: middle;
13
+ }
14
+ img {
15
+ &:first-of-type {
16
+ width: 14px;
17
+ vertical-align: middle;
18
+ margin-right: 5px;
19
+ }
20
+ &:last-of-type {
21
+ float: right;
22
+ margin-top: 2px;
23
+ width: 14px;
24
+ }
25
+ }
26
+ }
27
+ }
28
+ p {
29
+ padding-left: 19px;
30
+ padding-right: 20px;
31
+ line-height: 37px;
32
+ border-bottom: 1px solid #f2f2f2;
33
+ a {
34
+ float: right;
35
+ }
36
+ }
37
+ }
@@ -0,0 +1,4 @@
1
+ @import "../../css/workflow.css";
2
+ .error-modal-list {
3
+ width: 455px;
4
+ }
@@ -0,0 +1,342 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _antd = require("antd");
10
+ var _ErrorDialog = _interopRequireDefault(require("../../components/Dialog/ErrorDialog"));
11
+ var _PromoterDrawer = _interopRequireDefault(require("../../components/Drawer/PromoterDrawer"));
12
+ var _ApproverDrawer = _interopRequireDefault(require("../../components/Drawer/ApproverDrawer"));
13
+ var _CopyerDrawer = _interopRequireDefault(require("../../components/Drawer/CopyerDrawer"));
14
+ var _ConditionDrawer = _interopRequireDefault(require("../../components/Drawer/ConditionDrawer"));
15
+ var _NodeWrap = _interopRequireDefault(require("../../components/NodeWrap"));
16
+ require("./index.css");
17
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
18
+ // import { useSearchParams } from "react-router-dom";
19
+
20
+ // import { getWorkFlowData, setWorkFlowData } from '../../api/index'
21
+
22
+ function Setting(props) {
23
+ let getWorkFlowData = {
24
+ "tableId": 1,
25
+ "workFlowDef": {
26
+ "name": "合同审批"
27
+ },
28
+ "directorMaxLevel": 4,
29
+ "flowPermission": [],
30
+ "nodeConfig": {
31
+ "nodeName": "发起人",
32
+ "type": 0,
33
+ "priorityLevel": "",
34
+ "settype": "",
35
+ "selectMode": "",
36
+ "selectRange": "",
37
+ "directorLevel": "",
38
+ "examineMode": "",
39
+ "noHanderAction": "",
40
+ "examineEndDirectorLevel": "",
41
+ "ccSelfSelectFlag": "",
42
+ "conditionList": [],
43
+ "nodeUserList": [],
44
+ "childNode": {
45
+ "nodeName": "审核人",
46
+ "error": false,
47
+ "type": 1,
48
+ "settype": 2,
49
+ "selectMode": 0,
50
+ "selectRange": 0,
51
+ "directorLevel": 1,
52
+ "examineMode": 1,
53
+ "noHanderAction": 2,
54
+ "examineEndDirectorLevel": 0,
55
+ "childNode": {
56
+ "nodeName": "路由",
57
+ "type": 4,
58
+ "priorityLevel": 1,
59
+ "settype": 1,
60
+ "selectMode": 0,
61
+ "selectRange": 0,
62
+ "directorLevel": 1,
63
+ "examineMode": 1,
64
+ "noHanderAction": 2,
65
+ "examineEndDirectorLevel": 1,
66
+ "ccSelfSelectFlag": 1,
67
+ "conditionList": [],
68
+ "nodeUserList": [],
69
+ "childNode": {
70
+ "nodeName": "抄送人",
71
+ "type": 2,
72
+ "ccSelfSelectFlag": 1,
73
+ "childNode": null,
74
+ "nodeUserList": [],
75
+ "error": false
76
+ },
77
+ "conditionNodes": [{
78
+ "nodeName": "条件1",
79
+ "type": 3,
80
+ "priorityLevel": 1,
81
+ "settype": 1,
82
+ "selectMode": 0,
83
+ "selectRange": 0,
84
+ "directorLevel": 1,
85
+ "examineMode": 1,
86
+ "noHanderAction": 2,
87
+ "examineEndDirectorLevel": 1,
88
+ "ccSelfSelectFlag": 1,
89
+ "conditionList": [{
90
+ "columnId": 0,
91
+ "type": 1,
92
+ "conditionEn": "",
93
+ "conditionCn": "",
94
+ "optType": "",
95
+ "zdy1": "",
96
+ "zdy2": "",
97
+ "opt1": "",
98
+ "opt2": "",
99
+ "columnDbname": "",
100
+ "columnType": "",
101
+ "showType": "",
102
+ "showName": "",
103
+ "fixedDownBoxValue": ""
104
+ }],
105
+ "nodeUserList": [{
106
+ "targetId": 85,
107
+ "type": 1,
108
+ "name": "天旭"
109
+ }],
110
+ "childNode": {
111
+ "nodeName": "审核人",
112
+ "type": 1,
113
+ "priorityLevel": 1,
114
+ "settype": 1,
115
+ "selectMode": 0,
116
+ "selectRange": 0,
117
+ "directorLevel": 1,
118
+ "examineMode": 1,
119
+ "noHanderAction": 2,
120
+ "examineEndDirectorLevel": 1,
121
+ "ccSelfSelectFlag": 1,
122
+ "conditionList": [],
123
+ "nodeUserList": [{
124
+ "targetId": 2515744,
125
+ "type": 1,
126
+ "name": "哈哈哈哈"
127
+ }],
128
+ "childNode": null,
129
+ "conditionNodes": [],
130
+ "error": false
131
+ },
132
+ "conditionNodes": [],
133
+ "error": false
134
+ }, {
135
+ "nodeName": "条件2",
136
+ "type": 3,
137
+ "priorityLevel": 2,
138
+ "settype": 1,
139
+ "selectMode": 0,
140
+ "selectRange": 0,
141
+ "directorLevel": 1,
142
+ "examineMode": 1,
143
+ "noHanderAction": 2,
144
+ "examineEndDirectorLevel": 1,
145
+ "ccSelfSelectFlag": 1,
146
+ "conditionList": [],
147
+ "nodeUserList": [],
148
+ "childNode": null,
149
+ "conditionNodes": [],
150
+ "error": false
151
+ }]
152
+ },
153
+ "nodeUserList": []
154
+ },
155
+ "conditionNodes": []
156
+ }
157
+ };
158
+ let setWorkFlowData = {
159
+ code: 200
160
+ };
161
+ // let { setTableId, setIsTried } = props
162
+ console.log('props123', props);
163
+ props = {
164
+ conditionsConfig1: {},
165
+ approverConfig1: {},
166
+ flowPermission1: {},
167
+ copyerConfig1: {}
168
+ };
169
+ console.log('123131', props);
170
+ let [errInfos, setErrInfos] = (0, _react.useState)([]);
171
+ let [visible, setVisible] = (0, _react.useState)(false);
172
+ let [curSize, setCurSize] = (0, _react.useState)(100);
173
+ let [processConfig, setProcessConfig] = (0, _react.useState)({});
174
+ let [nodeConfig, setNodeConfig] = (0, _react.useState)({
175
+ nodeUserList: []
176
+ });
177
+ let [workFlowDef, setWorkFlowDef] = (0, _react.useState)({});
178
+ let [flowPermission, setFlowPermission] = (0, _react.useState)([]);
179
+ let [directorMaxLevel, setDirectorMaxLevel] = (0, _react.useState)(0);
180
+ // const [search] = useSearchParams();
181
+ (0, _react.useEffect)(() => {
182
+ initData();
183
+ }, []);
184
+ const initData = async () => {
185
+ // let { data } = await getWorkFlowData({ workFlowDefId: search.get('workFlowDefId') })
186
+ let data = getWorkFlowData;
187
+ setProcessConfig(data);
188
+ let {
189
+ nodeConfig: nodes,
190
+ flowPermission: flows,
191
+ directorMaxLevel: directors,
192
+ workFlowDef: works,
193
+ tableId
194
+ } = data;
195
+ setNodeConfig(nodes);
196
+ setFlowPermission(flows);
197
+ setDirectorMaxLevel(directors);
198
+ setWorkFlowDef(works);
199
+ // setTableId(tableId);
200
+ };
201
+ const toReturn = () => {
202
+ //window.location.href = ""
203
+ };
204
+ const reErr = function (_ref) {
205
+ let {
206
+ childNode
207
+ } = _ref;
208
+ let data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
209
+ if (childNode) {
210
+ let {
211
+ type,
212
+ error,
213
+ nodeName,
214
+ conditionNodes
215
+ } = childNode;
216
+ if (type === 1 || type === 2) {
217
+ if (error) {
218
+ data.push({
219
+ name: nodeName,
220
+ type: ["", "审核人", "抄送人"][type]
221
+ });
222
+ }
223
+ reErr(childNode, data);
224
+ } else if (type === 3) {
225
+ reErr(childNode, data);
226
+ } else if (type === 4) {
227
+ for (var i = 0; i < conditionNodes.length; i++) {
228
+ if (conditionNodes[i].error) {
229
+ data.push({
230
+ name: conditionNodes[i].nodeName,
231
+ type: "条件"
232
+ });
233
+ }
234
+ reErr(conditionNodes[i], data);
235
+ }
236
+ reErr(childNode, data);
237
+ }
238
+ } else {
239
+ return data;
240
+ }
241
+ };
242
+ const saveSet = async () => {
243
+ // setIsTried(true);
244
+ let data = [];
245
+ reErr(nodeConfig, data);
246
+ if (data.length !== 0) {
247
+ setErrInfos(data);
248
+ setVisible(true);
249
+ return;
250
+ }
251
+ let processRes = {
252
+ ...processConfig,
253
+ flowPermission,
254
+ nodeConfig
255
+ };
256
+ setProcessConfig(processRes);
257
+ // eslint-disable-next-line no-console
258
+ console.log(JSON.stringify(processRes));
259
+ // let res = await setWorkFlowData(processRes);
260
+ let res = setWorkFlowData;
261
+ if (res.code === 200) {
262
+ _antd.message.success("设置成功");
263
+ setTimeout(function () {
264
+ window.location.href = "";
265
+ }, 200);
266
+ }
267
+ };
268
+ const zoomSize = type => {
269
+ if (type === 1) {
270
+ if (curSize === 50) {
271
+ return;
272
+ }
273
+ setCurSize(curSize - 10);
274
+ } else {
275
+ if (curSize === 300) {
276
+ return;
277
+ }
278
+ setCurSize(curSize + 10);
279
+ }
280
+ };
281
+ return /*#__PURE__*/_react.default.createElement("div", null, "12", /*#__PURE__*/_react.default.createElement("div", {
282
+ className: "fd-nav"
283
+ }, /*#__PURE__*/_react.default.createElement("div", {
284
+ className: "fd-nav-left"
285
+ }, /*#__PURE__*/_react.default.createElement("div", {
286
+ className: "fd-nav-back",
287
+ onClick: toReturn
288
+ }, /*#__PURE__*/_react.default.createElement("i", {
289
+ className: "anticon anticon-left"
290
+ })), /*#__PURE__*/_react.default.createElement("div", {
291
+ className: "fd-nav-title"
292
+ }, workFlowDef.name)), /*#__PURE__*/_react.default.createElement("div", {
293
+ className: "fd-nav-right"
294
+ }, /*#__PURE__*/_react.default.createElement(_antd.Button, {
295
+ className: "button-publish",
296
+ onClick: saveSet
297
+ }, "\u53D1 \u5E03"))), /*#__PURE__*/_react.default.createElement("div", {
298
+ className: "fd-nav-content"
299
+ }, /*#__PURE__*/_react.default.createElement("section", {
300
+ className: "dingflow-design"
301
+ }, /*#__PURE__*/_react.default.createElement("div", {
302
+ className: "zoom"
303
+ }, /*#__PURE__*/_react.default.createElement("div", {
304
+ className: `zoom-out ${curSize === 50 ? 'disabled' : ''}`,
305
+ onClick: () => zoomSize(1)
306
+ }), /*#__PURE__*/_react.default.createElement("span", null, curSize, "%"), /*#__PURE__*/_react.default.createElement("div", {
307
+ className: `zoom-in ${curSize === 300 ? 'disabled' : ''}`,
308
+ onClick: () => zoomSize(2)
309
+ })), /*#__PURE__*/_react.default.createElement("div", {
310
+ className: "box-scale",
311
+ style: {
312
+ transform: `scale(${curSize / 100})`
313
+ }
314
+ }, /*#__PURE__*/_react.default.createElement(_NodeWrap.default, {
315
+ nodeConfig: nodeConfig,
316
+ flowPermission: flowPermission,
317
+ store: props,
318
+ changeEvent: setNodeConfig,
319
+ updateEvent: setFlowPermission
320
+ }), /*#__PURE__*/_react.default.createElement("div", {
321
+ className: "end-node"
322
+ }, /*#__PURE__*/_react.default.createElement("div", {
323
+ className: "end-node-circle"
324
+ }), /*#__PURE__*/_react.default.createElement("div", {
325
+ className: "end-node-text"
326
+ }, "\u6D41\u7A0B\u7ED3\u675F"))))), /*#__PURE__*/_react.default.createElement(_ErrorDialog.default, {
327
+ visible: visible,
328
+ list: errInfos,
329
+ store: props,
330
+ setVisible: setVisible
331
+ }), /*#__PURE__*/_react.default.createElement(_ApproverDrawer.default, {
332
+ directorMaxLevel: directorMaxLevel,
333
+ store: props
334
+ }), /*#__PURE__*/_react.default.createElement(_PromoterDrawer.default, {
335
+ store: props
336
+ }), /*#__PURE__*/_react.default.createElement(_CopyerDrawer.default, {
337
+ store: props
338
+ }), /*#__PURE__*/_react.default.createElement(_ConditionDrawer.default, {
339
+ store: props
340
+ }));
341
+ }
342
+ var _default = exports.default = Setting;
@@ -0,0 +1,119 @@
1
+ .ant-drawer-header {
2
+ margin-bottom: 0 !important;
3
+ padding: 14px 0 14px 20px !important;
4
+ border-bottom: none !important;
5
+ color: #323232 !important;
6
+ font-size: 16px !important;
7
+ }
8
+ .ant-drawer-header .ant-drawer-title{
9
+ font-size: 16px !important;
10
+ font-weight: normal !important;
11
+ }
12
+ .ant-drawer-body{
13
+ padding: 0 !important;
14
+ }
15
+ .demo-drawer-content {
16
+ display: flex !important;
17
+ flex-direction: column !important;
18
+ height: 100% !important;
19
+ }
20
+
21
+ .drawer_content {
22
+ flex: 1 !important;
23
+ }
24
+
25
+ .demo-drawer-content>div {
26
+ border-top: 1px solid #F2F2F2 !important;
27
+ }
28
+
29
+ .ant-btn {
30
+ min-width: 79px !important;
31
+ padding: 8px 12px !important;
32
+ font-size: 12px !important;
33
+ border-radius: 2px !important;
34
+ color: #323232 !important;
35
+ background: #f2f2f2 !important;
36
+ height: 30px !important;
37
+ line-height: 1 !important;
38
+ }
39
+
40
+ .ant-btn.ant-btn-primary {
41
+ background: #46A6FE !important;
42
+ color: #fff !important;
43
+ border: none !important;
44
+ }
45
+
46
+ .demo-drawer-footer {
47
+ padding: 10px 30px !important;
48
+ border-top: 1px solid #F2F2F2 !important;
49
+ }
50
+
51
+ .demo-drawer-footer .ant-btn {
52
+ float: right !important;
53
+ margin-right: 10px !important;
54
+ }
55
+
56
+ .ant-modal {
57
+ width: 520px;
58
+ &-content{
59
+ padding: 0 !important;
60
+ border: 1px solid #DDE1E5 !important;
61
+ border-radius: 3px !important;
62
+ .ant-modal-close{
63
+ height: 12px !important;
64
+ width: 12px !important;
65
+ }
66
+ .ant-icon-close {
67
+ display: block;
68
+ width: 12px !important;
69
+ height: 12px !important;
70
+ background: url(~@/assets/images/add-close.png) no-repeat center !important;
71
+ background-size: 100% 100% !important;
72
+ }
73
+ }
74
+ &-header {
75
+ margin-bottom: 0 !important;
76
+ padding: 0 0 0 20px !important;
77
+ line-height: 50px !important;
78
+ height: 50px !important;
79
+ background: #fff !important;
80
+ border-bottom: 1px solid #F2F2F2 !important;
81
+ .ant-modal-title {
82
+ font-size: 16px !important;
83
+ line-height: 50px !important;
84
+ color: #333333 !important;
85
+ font-weight: normal !important;
86
+ }
87
+ }
88
+ &-footer {
89
+ margin-top: 0 !important;
90
+ border-top: 1px solid #F2F2F2 !important;
91
+ padding-bottom: 10px !important;
92
+ padding: 10px 20px 20px;
93
+ text-align: right;
94
+ }
95
+ }
96
+
97
+
98
+ .ant-drawer-body {
99
+ padding: 0 !important;
100
+ }
101
+
102
+ .ant-checkbox-wrapper,
103
+ .ant-checkbox-input.is-checked+.ant-checkbox-label,
104
+ .ant-radio-wrapper,
105
+ .ant-radio-input.is-checked+.ant-radio-label,
106
+ .ant-tree {
107
+ font-weight: 500;
108
+ color: #333 !important;
109
+ }
110
+
111
+ .ant-radio+*, .ant-checkbox+* {
112
+ font-size: 12px !important;
113
+ }
114
+ .my-ant-custom-spinner {
115
+ display: inline-block !important;
116
+ width: 80px !important;
117
+ height: 80px !important;
118
+ background: url(~@/assets/images/loading.gif) no-repeat center !important;
119
+ }