mirror of
https://github.com/nocobase/nocobase
synced 2024-11-15 07:06:06 +00:00
fix(plugin-workflow-manual): fix schema migration (#3814)
This commit is contained in:
parent
1c32983c00
commit
080e491a0d
@ -20,10 +20,17 @@ function findSchema(root, filter, onlyLeaf = false) {
|
||||
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) {
|
||||
const root = { properties: schema };
|
||||
|
||||
const [node] = findSchema(root, (item) => {
|
||||
const detailNodes = findSchema(root, (item) => {
|
||||
return (
|
||||
item['x-decorator'] === 'DetailsBlockProvider' &&
|
||||
item['x-component'] === 'CardItem' &&
|
||||
@ -31,10 +38,7 @@ function migrateSchema(schema) {
|
||||
);
|
||||
});
|
||||
|
||||
if (node && node['x-decorator-props']?.dataSource) {
|
||||
node['x-decorator-props'].dataPath = node['x-decorator-props'].dataSource.replace(/^{{|}}$/g, '');
|
||||
delete node['x-decorator-props'].dataSource;
|
||||
}
|
||||
detailNodes.forEach(changeToDataPath);
|
||||
|
||||
return schema;
|
||||
}
|
||||
@ -55,12 +59,13 @@ export default class extends Migration {
|
||||
await nodes.reduce(
|
||||
(promise, node) =>
|
||||
promise.then(() => {
|
||||
const { schema, ...config } = node.config;
|
||||
const { assignees, forms, schema = {}, ...tabs } = node.config;
|
||||
return node.update(
|
||||
{
|
||||
config: {
|
||||
...config,
|
||||
...migrateSchema(schema),
|
||||
assignees,
|
||||
forms,
|
||||
schema: migrateSchema({ ...tabs, ...schema }),
|
||||
},
|
||||
},
|
||||
{
|
Loading…
Reference in New Issue
Block a user