108 lines
2.1 KiB
TypeScript
108 lines
2.1 KiB
TypeScript
import React from 'react';
|
|
import { ISchema as IFormilySchema, observer, Schema, useField } from '@formily/react';
|
|
import { extend } from 'umi-request';
|
|
|
|
import './designable-bar/style.less';
|
|
|
|
export type FormilyISchema = IFormilySchema
|
|
|
|
export interface ISchema extends IFormilySchema {
|
|
[key: string]: any;
|
|
properties?: {
|
|
[key: string]: ISchema | IFormilySchema;
|
|
};
|
|
}
|
|
|
|
export * from '../components/schema-renderer';
|
|
|
|
export function useDefaultAction() {
|
|
return {
|
|
async run() {},
|
|
};
|
|
}
|
|
|
|
export const request = extend({
|
|
prefix: process.env.API_URL,
|
|
timeout: 1000,
|
|
});
|
|
console.log('process.env.API_URL', process.env.API_URL);
|
|
|
|
export async function createOrUpdateCollection(data: any) {
|
|
return await request('collections:createOrUpdate', {
|
|
method: 'post',
|
|
data,
|
|
});
|
|
}
|
|
|
|
export async function createCollectionField(collectionName: string, data: any) {
|
|
return await request(`collections/${collectionName}/fields:create`, {
|
|
method: 'post',
|
|
data,
|
|
});
|
|
}
|
|
|
|
export async function deleteCollection(name) {
|
|
await request('collections:destroy', {
|
|
method: 'post',
|
|
params: {
|
|
filter: {
|
|
name,
|
|
},
|
|
},
|
|
});
|
|
}
|
|
|
|
export async function createSchema(schema: ISchema) {
|
|
if (!schema) {
|
|
return;
|
|
}
|
|
if (!schema['key']) {
|
|
return;
|
|
}
|
|
return await request('ui_schemas:create', {
|
|
method: 'post',
|
|
data: schema.toJSON(),
|
|
});
|
|
}
|
|
|
|
export async function collectionMoveToAfter(source, target) {
|
|
if (source && target) {
|
|
return request(`collections:sort/${source}`, {
|
|
method: 'post',
|
|
data: {
|
|
field: 'sort',
|
|
target: {
|
|
name: target,
|
|
},
|
|
},
|
|
});
|
|
}
|
|
}
|
|
|
|
export async function updateSchema(schema: ISchema) {
|
|
if (!schema) {
|
|
return;
|
|
}
|
|
if (!schema['key']) {
|
|
return;
|
|
}
|
|
return await request(`ui_schemas:update/${schema.key}`, {
|
|
method: 'post',
|
|
data: Schema.isSchemaInstance(schema) ? schema.toJSON() : schema,
|
|
});
|
|
}
|
|
|
|
export async function removeSchema(schema: ISchema) {
|
|
if (!schema['key']) {
|
|
return;
|
|
}
|
|
await request('ui_schemas:destroy', {
|
|
method: 'post',
|
|
params: {
|
|
filter: {
|
|
key: schema['key'],
|
|
},
|
|
},
|
|
});
|
|
}
|