diff --git a/packages/plugins/@tachybase/plugin-workflow/src/client/features/approval/common/ApprovalTodos.collection.tsx b/packages/plugins/@tachybase/plugin-workflow/src/client/features/approval/common/ApprovalTodos.collection.tsx index 02df9065d..f37ef5171 100644 --- a/packages/plugins/@tachybase/plugin-workflow/src/client/features/approval/common/ApprovalTodos.collection.tsx +++ b/packages/plugins/@tachybase/plugin-workflow/src/client/features/approval/common/ApprovalTodos.collection.tsx @@ -15,6 +15,27 @@ export const CollectionApprovalTodos = { 'x-component': 'InputNumber', }, }, + { + type: 'belongsTo', + name: 'createdBy', + target: 'users', + foreignKey: 'createdById', + interface: 'm2o', + uiSchema: { + type: 'number', + title: `{{t("Initiator", { ns: "${NAMESPACE}" })}}`, + 'x-component': 'RemoteSelect', + 'x-component-props': { + fieldNames: { + label: 'nickname', + value: 'id', + }, + service: { + resource: 'users', + }, + }, + }, + }, { type: 'belongsTo', name: 'user', diff --git a/packages/plugins/@tachybase/plugin-workflow/src/client/features/approval/usage/approval-block/ApprovalBlock.schema.tsx b/packages/plugins/@tachybase/plugin-workflow/src/client/features/approval/usage/approval-block/ApprovalBlock.schema.tsx index 55c81f49d..9797efc4a 100644 --- a/packages/plugins/@tachybase/plugin-workflow/src/client/features/approval/usage/approval-block/ApprovalBlock.schema.tsx +++ b/packages/plugins/@tachybase/plugin-workflow/src/client/features/approval/usage/approval-block/ApprovalBlock.schema.tsx @@ -53,6 +53,8 @@ const schemaItems = [ collection: 'approvalRecords', params: { appends: [ + 'createdBy.id', + 'createdBy.nickname', 'user.id', 'user.nickname', 'node.id', diff --git a/packages/plugins/@tachybase/plugin-workflow/src/client/features/approval/usage/approval-block/todos/Sm.ApprovalBlockTodos.tsx b/packages/plugins/@tachybase/plugin-workflow/src/client/features/approval/usage/approval-block/todos/Sm.ApprovalBlockTodos.tsx index 3f520d2e8..546077e98 100644 --- a/packages/plugins/@tachybase/plugin-workflow/src/client/features/approval/usage/approval-block/todos/Sm.ApprovalBlockTodos.tsx +++ b/packages/plugins/@tachybase/plugin-workflow/src/client/features/approval/usage/approval-block/todos/Sm.ApprovalBlockTodos.tsx @@ -101,6 +101,20 @@ export const SchemaApprovalBlockTodos = { }, }, }, + createdBy: { + type: 'void', + title: `{{t("Initiator", { ns: "${NAMESPACE}" })}}`, + 'x-decorator': 'TableV2.Column.Decorator', + 'x-component': 'TableV2.Column', + 'x-component-props': { width: 160 }, + properties: { + createdBy: { + type: 'string', + 'x-component': 'UserColumn', + 'x-read-pretty': true, + }, + }, + }, user: { type: 'void', 'x-decorator': 'TableV2.Column.Decorator', diff --git a/packages/plugins/@tachybase/plugin-workflow/src/server/features/approval/ApprovalInstruction.ts b/packages/plugins/@tachybase/plugin-workflow/src/server/features/approval/ApprovalInstruction.ts index a9e385d3a..4a0eac775 100644 --- a/packages/plugins/@tachybase/plugin-workflow/src/server/features/approval/ApprovalInstruction.ts +++ b/packages/plugins/@tachybase/plugin-workflow/src/server/features/approval/ApprovalInstruction.ts @@ -131,7 +131,7 @@ export default class ApprovalInstruction extends Instruction { 'executions.id': processor.execution.id, }, fields: ['id', 'status', 'data', 'summary', 'collectionName'], - appends: ['approvalExecutions'], + appends: ['approvalExecutions', 'createdBy'], except: ['data'], }); const approvalExecution = approval.approvalExecutions.find((item) => item.executionId === processor.execution.id); @@ -144,6 +144,7 @@ export default class ApprovalInstruction extends Instruction { assignees.map((userId, index) => ({ approvalId: approval.id, approvalExecutionId: approvalExecution.id, + createdById: approval.createdBy?.id, userId, jobId: job.id, nodeId: node.id, diff --git a/packages/plugins/@tachybase/plugin-workflow/src/server/features/approval/collections/approvalRecords.ts b/packages/plugins/@tachybase/plugin-workflow/src/server/features/approval/collections/approvalRecords.ts index 30d42d714..cb4e7f0a8 100644 --- a/packages/plugins/@tachybase/plugin-workflow/src/server/features/approval/collections/approvalRecords.ts +++ b/packages/plugins/@tachybase/plugin-workflow/src/server/features/approval/collections/approvalRecords.ts @@ -5,6 +5,7 @@ export default defineCollection({ namespace: 'workflow.approvalRecords', dumpRules: 'required', name: 'approvalRecords', + createdBy: true, fields: [ { type: 'string',