fix(plugin-workflow-manual): fix schema migration (#3814)

This commit is contained in:
Junyi 2024-03-25 21:57:58 +08:00 committed by GitHub
parent 1c32983c00
commit 080e491a0d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -20,10 +20,17 @@ function findSchema(root, filter, onlyLeaf = false) {
return result; return result;
} }
function changeToDataPath(item) {
if (item && item['x-decorator-props']?.dataSource) {
item['x-decorator-props'].dataPath = item['x-decorator-props'].dataSource.replace(/^{{|}}$/g, '');
delete item['x-decorator-props'].dataSource;
}
}
function migrateSchema(schema) { function migrateSchema(schema) {
const root = { properties: schema }; const root = { properties: schema };
const [node] = findSchema(root, (item) => { const detailNodes = findSchema(root, (item) => {
return ( return (
item['x-decorator'] === 'DetailsBlockProvider' && item['x-decorator'] === 'DetailsBlockProvider' &&
item['x-component'] === 'CardItem' && item['x-component'] === 'CardItem' &&
@ -31,10 +38,7 @@ function migrateSchema(schema) {
); );
}); });
if (node && node['x-decorator-props']?.dataSource) { detailNodes.forEach(changeToDataPath);
node['x-decorator-props'].dataPath = node['x-decorator-props'].dataSource.replace(/^{{|}}$/g, '');
delete node['x-decorator-props'].dataSource;
}
return schema; return schema;
} }
@ -55,12 +59,13 @@ export default class extends Migration {
await nodes.reduce( await nodes.reduce(
(promise, node) => (promise, node) =>
promise.then(() => { promise.then(() => {
const { schema, ...config } = node.config; const { assignees, forms, schema = {}, ...tabs } = node.config;
return node.update( return node.update(
{ {
config: { config: {
...config, assignees,
...migrateSchema(schema), forms,
schema: migrateSchema({ ...tabs, ...schema }),
}, },
}, },
{ {