@tachybase/plugin-workflow-approval 1.5.1 → 1.6.1

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 (35) hide show
  1. package/dist/client/base/ApprovalPane.schema.d.ts +81 -11
  2. package/dist/client/common/components/ApprovalsSummary.d.ts +11 -0
  3. package/dist/client/common/components/SimpleTable.d.ts +24 -0
  4. package/dist/client/common/components/WorkflowApproval.d.ts +4 -0
  5. package/dist/client/common/components/index.d.ts +5 -0
  6. package/dist/client/common/tools/cleanAssociationIds.d.ts +9 -0
  7. package/dist/client/index.js +34 -70
  8. package/dist/client/user-interface/h5/common/approval-columns/summary.column.d.ts +7 -0
  9. package/dist/client/user-interface/h5/common/processSummary.d.ts +14 -0
  10. package/dist/client/user-interface/h5/todos/component/TabApprovalItem.d.ts +1 -1
  11. package/dist/common/constants.d.ts +6 -0
  12. package/dist/common/constants.js +14 -2
  13. package/dist/common/interface.d.js +15 -0
  14. package/dist/common/utils.d.ts +2 -0
  15. package/dist/common/utils.js +46 -0
  16. package/dist/externalVersion.js +10 -9
  17. package/dist/locale/en-US.json +3 -1
  18. package/dist/locale/zh-CN.json +2 -1
  19. package/dist/server/actions/approvalCarbonCopy.d.ts +1 -1
  20. package/dist/server/actions/approvalCarbonCopy.js +7 -7
  21. package/dist/server/actions/approvalRecords.d.ts +2 -2
  22. package/dist/server/actions/approvalRecords.js +19 -19
  23. package/dist/server/actions/approvals.d.ts +6 -6
  24. package/dist/server/actions/approvals.js +65 -82
  25. package/dist/server/actions/index.js +1 -1
  26. package/dist/server/actions/workflows.d.ts +1 -1
  27. package/dist/server/actions/workflows.js +3 -3
  28. package/dist/server/plugin.js +0 -3
  29. package/dist/server/tools.d.ts +4 -7
  30. package/dist/server/tools.js +253 -12
  31. package/dist/server/triggers/Approval.d.ts +3 -3
  32. package/dist/server/triggers/Approval.js +32 -22
  33. package/dist/server/utils.d.ts +2 -2
  34. package/dist/server/utils.js +4 -4
  35. package/package.json +9 -9
@@ -58,7 +58,9 @@ const _ApprovalTrigger = class _ApprovalTrigger extends import_module_workflow.T
58
58
  return;
59
59
  }
60
60
  const [dataSourceName, collectionName] = (0, import_server.parseCollectionName)(approval.collectionName);
61
- const { repository } = this.workflow.app.dataSourceManager.dataSources.get(dataSourceName).collectionManager.getCollection(collectionName);
61
+ const dataSource = this.workflow.app.dataSourceManager.dataSources.get(dataSourceName);
62
+ const collection = dataSource.collectionManager.getCollection(collectionName);
63
+ const { repository } = collection;
62
64
  const data = await repository.findOne({
63
65
  filterByTk: approval.get("dataKey"),
64
66
  appends: workflow.config.appends,
@@ -72,7 +74,10 @@ const _ApprovalTrigger = class _ApprovalTrigger extends import_module_workflow.T
72
74
  applicantRoleName: approval.applicantRoleName,
73
75
  summary: (0, import_tools.getSummary)({
74
76
  summaryConfig: workflow.config.summary,
75
- data
77
+ data,
78
+ collection,
79
+ // Fix: type assertion to bypass typing error
80
+ app: this.workflow.app
76
81
  }),
77
82
  collectionName: approval.collectionName
78
83
  },
@@ -170,26 +175,26 @@ const _ApprovalTrigger = class _ApprovalTrigger extends import_module_workflow.T
170
175
  await approval.update({ status }, { transaction });
171
176
  await approvalExecution.update({ status: execution.status }, { transaction });
172
177
  };
173
- this.middleware = async (context, next) => {
174
- if (!context.action) {
178
+ this.middleware = async (ctx, next) => {
179
+ if (!ctx.action) {
175
180
  return;
176
181
  }
177
182
  const {
178
183
  resourceName,
179
184
  actionName,
180
185
  params: { triggerWorkflows, beforeWorkflows }
181
- } = context.action;
186
+ } = ctx.action;
182
187
  if (beforeWorkflows) {
183
- this.collectionTriggerAction(context, beforeWorkflows);
188
+ this.collectionTriggerAction(ctx, beforeWorkflows);
184
189
  }
185
190
  if (resourceName === "workflows" && actionName === "trigger") {
186
- return this.workflowTriggerAction(context, next);
191
+ return this.workflowTriggerAction(ctx, next);
187
192
  }
188
193
  await next();
189
194
  if (!triggerWorkflows || !["create", "update"].includes(actionName)) {
190
195
  return;
191
196
  }
192
- this.collectionTriggerAction(context, triggerWorkflows);
197
+ this.collectionTriggerAction(ctx, triggerWorkflows);
193
198
  };
194
199
  const { db } = workflow.app;
195
200
  db.on("approvals.afterSave", this.triggerHandler);
@@ -197,10 +202,10 @@ const _ApprovalTrigger = class _ApprovalTrigger extends import_module_workflow.T
197
202
  db.on("executions.afterUpdate", this.onExecutionUpdate);
198
203
  workflow.app.use(this.middleware, { tag: "workflow-trigger", after: "dataSource" });
199
204
  }
200
- async workflowTriggerAction(context, next) {
201
- const { triggerWorkflows, values } = context.action.params;
205
+ async workflowTriggerAction(ctx, next) {
206
+ const { triggerWorkflows, values } = ctx.action.params;
202
207
  if (!triggerWorkflows) {
203
- return context.throw(400);
208
+ return ctx.throw(400);
204
209
  }
205
210
  const triggers = triggerWorkflows.split(",").map((trigger) => trigger.split("!"));
206
211
  const workflowRepo = this.workflow.db.getRepository("workflows");
@@ -212,7 +217,7 @@ const _ApprovalTrigger = class _ApprovalTrigger extends import_module_workflow.T
212
217
  enabled: true
213
218
  }
214
219
  });
215
- context.status = 202;
220
+ ctx.status = 202;
216
221
  await next();
217
222
  workflows.forEach(async (workflow) => {
218
223
  const trigger = triggers.find((trigger2) => trigger2[0] === workflow.key);
@@ -224,7 +229,7 @@ const _ApprovalTrigger = class _ApprovalTrigger extends import_module_workflow.T
224
229
  // createdBy: currentUser.id,
225
230
  // updatedById: currentUser.id,
226
231
  },
227
- context
232
+ context: ctx
228
233
  });
229
234
  const approvalRepo = this.workflow.db.getRepository("approvals");
230
235
  await approvalRepo.create({
@@ -239,15 +244,18 @@ const _ApprovalTrigger = class _ApprovalTrigger extends import_module_workflow.T
239
244
  workflowKey: workflow.key,
240
245
  summary: (0, import_tools.getSummary)({
241
246
  summaryConfig: workflow.config.summary,
242
- data
247
+ data,
248
+ collection: collecton,
249
+ // Fix: type assertion to bypass typing error
250
+ app: this.workflow.app
243
251
  })
244
252
  },
245
- context
253
+ context: ctx
246
254
  });
247
255
  });
248
256
  }
249
- async collectionTriggerAction(context, workflowList) {
250
- const dataSourceHeader = context.get("x-data-source") || "main";
257
+ async collectionTriggerAction(ctx, workflowList) {
258
+ const dataSourceHeader = ctx.get("x-data-source") || "main";
251
259
  const approvalRepo = this.workflow.db.getRepository("approvals");
252
260
  const triggers = workflowList.split(",").map((trigger) => trigger.split("!"));
253
261
  const triggersKeysMap = new Map(triggers);
@@ -257,7 +265,7 @@ const _ApprovalTrigger = class _ApprovalTrigger extends import_module_workflow.T
257
265
  for (const workflow of workflows) {
258
266
  const [dataSourceName, collectionName] = (0, import_server.parseCollectionName)(workflow.config.collection);
259
267
  const trigger = triggers.find((trigger2) => trigger2[0] === workflow.key);
260
- const { body: data } = context;
268
+ const { body: data } = ctx;
261
269
  if (!data) {
262
270
  return;
263
271
  }
@@ -285,7 +293,7 @@ const _ApprovalTrigger = class _ApprovalTrigger extends import_module_workflow.T
285
293
  }
286
294
  }
287
295
  }
288
- const collection = context.app.dataSourceManager.dataSources.get(dataSourceName).collectionManager.getCollection(collectionName);
296
+ const collection = ctx.tego.dataSourceManager.dataSources.get(dataSourceName).collectionManager.getCollection(collectionName);
289
297
  if (!collection || collection.model !== payload.constructor) {
290
298
  return;
291
299
  }
@@ -299,13 +307,15 @@ const _ApprovalTrigger = class _ApprovalTrigger extends import_module_workflow.T
299
307
  // updatedBy: currentUser.id,
300
308
  workflowId: workflow.id,
301
309
  workflowKey: workflow.key,
302
- applicantRoleName: context.state.currentRole,
310
+ applicantRoleName: ctx.state.currentRole,
303
311
  summary: (0, import_tools.getSummary)({
304
312
  summaryConfig: workflow.config.summary,
305
- data: dataCurrent
313
+ data: dataCurrent,
314
+ collection,
315
+ app: ctx.app
306
316
  })
307
317
  },
308
- context
318
+ context: ctx
309
319
  });
310
320
  });
311
321
  }
@@ -1,3 +1,3 @@
1
1
  export declare function findUniqueObjects(sourceArray: any[], uniqueByArray: string[], compareByKey?: string, compareByFunc?: (a: any, b: any) => number): any[];
2
- export declare function getWorkflow(context: any, workflowId: any): Promise<any>;
3
- export declare function getWorkflowByKey(context: any, workflowKey: any): Promise<any>;
2
+ export declare function getWorkflow(ctx: any, workflowId: any): Promise<any>;
3
+ export declare function getWorkflowByKey(ctx: any, workflowKey: any): Promise<any>;
@@ -35,17 +35,17 @@ function findUniqueObjects(sourceArray = [], uniqueByArray, compareByKey = "", c
35
35
  result = Object.values(uniqueMap);
36
36
  return result;
37
37
  }
38
- async function getWorkflow(context, workflowId) {
38
+ async function getWorkflow(ctx, workflowId) {
39
39
  if (workflowId) {
40
- return await context.db.getRepository("workflows").findOne({
40
+ return await ctx.db.getRepository("workflows").findOne({
41
41
  filterByTk: workflowId
42
42
  });
43
43
  }
44
44
  return null;
45
45
  }
46
- async function getWorkflowByKey(context, workflowKey) {
46
+ async function getWorkflowByKey(ctx, workflowKey) {
47
47
  if (workflowKey) {
48
- return await context.db.getRepository("workflows").findOne({
48
+ return await ctx.db.getRepository("workflows").findOne({
49
49
  filter: {
50
50
  key: workflowKey,
51
51
  enabled: true
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tachybase/plugin-workflow-approval",
3
3
  "displayName": "Approval",
4
- "version": "1.5.1",
4
+ "version": "1.6.1",
5
5
  "description": "Approval base in Workflow",
6
6
  "keywords": [
7
7
  "Approval",
@@ -9,11 +9,11 @@
9
9
  ],
10
10
  "main": "dist/server/index.js",
11
11
  "devDependencies": {
12
- "@ant-design/icons": "^5.6.1",
13
- "@tachybase/schema": "1.3.52",
14
- "@tachybase/test": "1.3.52",
15
- "@tego/client": "1.3.52",
16
- "@tego/server": "1.3.52",
12
+ "@ant-design/icons": "^6.1.0",
13
+ "@tachybase/schema": "1.6.0-alpha.9",
14
+ "@tachybase/test": "1.6.0-alpha.9",
15
+ "@tego/client": "1.6.0-alpha.9",
16
+ "@tego/server": "1.6.0-alpha.9",
17
17
  "@types/file-saver": "^2.0.7",
18
18
  "@types/lodash": "^4.17.20",
19
19
  "ahooks": "^3.9.0",
@@ -27,9 +27,9 @@
27
27
  "react-i18next": "16.2.1",
28
28
  "react-router-dom": "6.28.1",
29
29
  "sequelize": "6.37.5",
30
- "@tachybase/module-ui-schema": "1.5.1",
31
- "@tachybase/module-workflow": "1.5.1",
32
- "@tachybase/client": "1.5.1"
30
+ "@tachybase/client": "1.6.1",
31
+ "@tachybase/module-workflow": "1.6.1",
32
+ "@tachybase/module-ui-schema": "1.6.1"
33
33
  },
34
34
  "description.zh-CN": "审批系统是一个强大的BPM工具,为业务流程自动化提供基础支持,同时具备高度灵活性和可扩展性,确保审批流程的效率和合规性,助力企业释放创新潜力。",
35
35
  "displayName.zh-CN": "审批"