fix(ui-templates): share approval templates (#8648)

This commit is contained in:
Zeke Zhang
2026-02-14 15:43:12 +08:00
committed by GitHub
parent 4d810db023
commit 2891649697
2 changed files with 27 additions and 2 deletions
@@ -132,11 +132,15 @@ function isModelInsideReferenceBlock(model: FlowModel | undefined): boolean {
return model.parent?.use === 'ReferenceBlockModel';
}
function resolveExpectedRootUse(blockModel: FlowModel | undefined): string | string[] {
export function resolveExpectedRootUse(blockModel: FlowModel | undefined): string | string[] {
// Create/Edit:允许互通
if (blockModel?.use === 'CreateFormModel' || blockModel?.use === 'EditFormModel') {
return ['CreateFormModel', 'EditFormModel'];
}
// 审批发起/处理表单:允许互通(最小改动方案)
if (blockModel?.use === 'ApplyFormModel' || blockModel?.use === 'ProcessFormModel') {
return ['ApplyFormModel', 'ProcessFormModel'];
}
return blockModel?.use || '';
}
@@ -9,7 +9,28 @@
import { FlowEngine, FlowModel } from '@nocobase/flow-engine';
import { describe, it, expect, vi } from 'vitest';
import { SubModelTemplateImporterModel } from '../SubModelTemplateImporterModel';
import { SubModelTemplateImporterModel, resolveExpectedRootUse } from '../SubModelTemplateImporterModel';
describe('resolveExpectedRootUse', () => {
it('allows ApplyFormModel and ProcessFormModel to share templates', () => {
expect(resolveExpectedRootUse({ use: 'ApplyFormModel' } as FlowModel)).toEqual([
'ApplyFormModel',
'ProcessFormModel',
]);
expect(resolveExpectedRootUse({ use: 'ProcessFormModel' } as FlowModel)).toEqual([
'ApplyFormModel',
'ProcessFormModel',
]);
});
it('keeps CreateFormModel and EditFormModel sharing behavior', () => {
expect(resolveExpectedRootUse({ use: 'CreateFormModel' } as FlowModel)).toEqual([
'CreateFormModel',
'EditFormModel',
]);
expect(resolveExpectedRootUse({ use: 'EditFormModel' } as FlowModel)).toEqual(['CreateFormModel', 'EditFormModel']);
});
});
describe('SubModelTemplateImporterModel', () => {
it('stores derived targetUid into stepParams in beforeParamsSave', async () => {