chore: 自定义低代码请求服务初始化
This commit is contained in:
@@ -1,61 +0,0 @@
|
||||
{
|
||||
"name": "Home",
|
||||
"locked": false,
|
||||
"inject": [],
|
||||
"state": {},
|
||||
"lifeCycles": {},
|
||||
"methods": {},
|
||||
"computed": {},
|
||||
"watch": [],
|
||||
"css": "",
|
||||
"props": [],
|
||||
"emits": [],
|
||||
"slots": [],
|
||||
"dataSources": {},
|
||||
"__VTJ_BLOCK__": true,
|
||||
"__VERSION__": "1739970308179",
|
||||
"id": "45t9lzaxt",
|
||||
"nodes": [
|
||||
{
|
||||
"id": "2yyhfejyt2",
|
||||
"name": "ElMain",
|
||||
"from": "element-plus",
|
||||
"invisible": false,
|
||||
"locked": false,
|
||||
"children": [
|
||||
{
|
||||
"id": "45t9m1nhz",
|
||||
"name": "ElText",
|
||||
"from": "element-plus",
|
||||
"invisible": false,
|
||||
"locked": false,
|
||||
"children": "我是主页",
|
||||
"props": {
|
||||
"type": "primary",
|
||||
"size": "default",
|
||||
"style": {
|
||||
"color": "#FF3C00",
|
||||
"position": "absolute",
|
||||
"inset": "0% 0% 0% 0%",
|
||||
"background-repeat": "repeat",
|
||||
"text-align": "center"
|
||||
}
|
||||
},
|
||||
"directives": [],
|
||||
"events": {}
|
||||
}
|
||||
],
|
||||
"props": {
|
||||
"style": {
|
||||
"position": "relative",
|
||||
"object-fit": "none",
|
||||
"overflow": "visible",
|
||||
"display": "flex",
|
||||
"cursor": "auto"
|
||||
}
|
||||
},
|
||||
"directives": [],
|
||||
"events": {}
|
||||
}
|
||||
]
|
||||
}
|
||||
31
apps/designer/.vtj/files/45taigdrw.json
Normal file
31
apps/designer/.vtj/files/45taigdrw.json
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"name": "Test",
|
||||
"locked": false,
|
||||
"inject": [],
|
||||
"state": {},
|
||||
"lifeCycles": {},
|
||||
"methods": {},
|
||||
"computed": {},
|
||||
"watch": [],
|
||||
"css": "",
|
||||
"props": [],
|
||||
"emits": [],
|
||||
"slots": [],
|
||||
"dataSources": {},
|
||||
"__VTJ_BLOCK__": true,
|
||||
"__VERSION__": "1740022802786",
|
||||
"id": "45taigdrw",
|
||||
"nodes": [
|
||||
{
|
||||
"id": "7pf889krf",
|
||||
"name": "span",
|
||||
"from": "",
|
||||
"invisible": false,
|
||||
"locked": false,
|
||||
"children": "内联容器文本内容示例",
|
||||
"props": {},
|
||||
"directives": [],
|
||||
"events": {}
|
||||
}
|
||||
]
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -3,7 +3,7 @@
|
||||
"id": "@sy/low-code-designer",
|
||||
"platform": "web",
|
||||
"name": "低代码编辑器",
|
||||
"homepage": "45t9lzaxt",
|
||||
"homepage": "",
|
||||
"description": "低代码编辑器",
|
||||
"dependencies": [
|
||||
{
|
||||
@@ -125,7 +125,7 @@
|
||||
"assetsLibrary": "AntdvMaterial",
|
||||
"required": false,
|
||||
"official": true,
|
||||
"enabled": false,
|
||||
"enabled": true,
|
||||
"platform": [
|
||||
"web"
|
||||
]
|
||||
@@ -142,7 +142,7 @@
|
||||
"assetsLibrary": "VtjChartsMaterial",
|
||||
"required": false,
|
||||
"official": true,
|
||||
"enabled": true,
|
||||
"enabled": false,
|
||||
"platform": [
|
||||
"web",
|
||||
"h5"
|
||||
@@ -152,12 +152,16 @@
|
||||
"pages": [
|
||||
{
|
||||
"dir": false,
|
||||
"name": "Home",
|
||||
"title": "主页",
|
||||
"icon": "AddLocation",
|
||||
"name": "Test",
|
||||
"title": "123",
|
||||
"icon": "",
|
||||
"mask": true,
|
||||
"hidden": false,
|
||||
"raw": false,
|
||||
"pure": false,
|
||||
"meta": "",
|
||||
"id": "45t9lzaxt",
|
||||
"cache": false,
|
||||
"id": "45taigdrw",
|
||||
"type": "page"
|
||||
}
|
||||
],
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
{
|
||||
"__VTJ_PROJECT__": true,
|
||||
"id": "vtj-project",
|
||||
"platform": "web",
|
||||
"name": "VTJ.PRO",
|
||||
"homepage": "",
|
||||
"description": "VTJ.PRO",
|
||||
"dependencies": [],
|
||||
"pages": [],
|
||||
"blocks": [],
|
||||
"apis": [],
|
||||
"meta": [],
|
||||
"config": {},
|
||||
"__BASE_PATH__": "/"
|
||||
}
|
||||
@@ -16,17 +16,21 @@
|
||||
"clean": "node ./scripts/clean.mjs"
|
||||
},
|
||||
"dependencies": {
|
||||
"@vtj/web": "^0.9.30",
|
||||
"vue": "~3.5.0",
|
||||
"vue-router": "~4.5.0",
|
||||
"element-plus": "^2.9.4",
|
||||
"@vtj/web": "^0.9.30",
|
||||
"@vtj/ui": "^0.9.30",
|
||||
"@vtj/materials": "^0.9.30"
|
||||
"@vtj/materials": "^0.9.30",
|
||||
"@vtj/node": "0.9.6",
|
||||
"@vtj/core": "^0.9.30",
|
||||
"@vtj/pro": "^0.9.30",
|
||||
"@vtj/renderer": "^0.9.30",
|
||||
"@vtj/local": "^0.9.30",
|
||||
"@vtj/utils": "0.9.30"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vtj/cli": "^0.9.8",
|
||||
"@vtj/pro": "^0.9.30",
|
||||
"@vtj/local": "^0.9.30",
|
||||
"@sy/vite-plugin-http2-proxy": "workspace:*",
|
||||
"vite-plugin-mkcert": "^1.17.6",
|
||||
"vite": "^6.1.1"
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import {
|
||||
createProvider,
|
||||
LocalService,
|
||||
createModules,
|
||||
NodeEnv,
|
||||
autoUpdate,
|
||||
@@ -15,15 +14,21 @@ import router from './router';
|
||||
import App from './App.vue';
|
||||
import { name, description } from '../package.json';
|
||||
import './style/index.scss';
|
||||
import { createMemoryService } from './server';
|
||||
|
||||
const memoryService = createMemoryService();
|
||||
console.log('memoryService', memoryService);
|
||||
|
||||
const app = createApp(App);
|
||||
const adapter = createAdapter({ loading, notify });
|
||||
const service = new LocalService(createServiceRequest(notify));
|
||||
console.log('service', service);
|
||||
const request = createServiceRequest(notify);
|
||||
console.log('request', request);
|
||||
// const service = new MemoryService(request);
|
||||
// console.log('service', service);
|
||||
const { provider, onReady } = createProvider({
|
||||
nodeEnv: process.env.NODE_ENV as NodeEnv,
|
||||
modules: createModules(),
|
||||
service,
|
||||
service: memoryService,
|
||||
adapter,
|
||||
router,
|
||||
dependencies: {
|
||||
|
||||
135
apps/designer/src/server/index.ts
Normal file
135
apps/designer/src/server/index.ts
Normal file
@@ -0,0 +1,135 @@
|
||||
import {
|
||||
type ProjectSchema,
|
||||
type BlockSchema,
|
||||
type HistorySchema,
|
||||
type HistoryItem,
|
||||
type MaterialDescription,
|
||||
ProjectModel,
|
||||
HistoryModel
|
||||
} from '@vtj/core';
|
||||
|
||||
import { mapToObject } from '@vtj/utils';
|
||||
import { BaseService } from '@vtj/renderer';
|
||||
|
||||
export class MemoryService extends BaseService {
|
||||
private projects: Record<string, ProjectSchema> = {};
|
||||
private materials: Record<string, Record<string, MaterialDescription>> = {};
|
||||
private files: Record<string, BlockSchema> = {};
|
||||
private histories: Record<string, HistorySchema> = {};
|
||||
private historyItems: Record<string, HistoryItem> = {};
|
||||
|
||||
public init(project: ProjectSchema): Promise<ProjectSchema> {
|
||||
console.log('MemoryService.init', { project });
|
||||
const model = new ProjectModel(project);
|
||||
const match = this.projects[model.id] || {};
|
||||
const dsl = Object.assign(model.toDsl(), match);
|
||||
this.projects[dsl.id as string] = dsl;
|
||||
console.log('MemoryService.init result', { dsl });
|
||||
return Promise.resolve(dsl);
|
||||
}
|
||||
|
||||
public saveProject(project: ProjectSchema): Promise<boolean> {
|
||||
console.log('MemoryService.saveProject', { project });
|
||||
const model = new ProjectModel(project);
|
||||
this.projects[model.id] = model.toDsl();
|
||||
console.log('MemoryService.saveProject result', { success: true });
|
||||
return Promise.resolve(true);
|
||||
}
|
||||
|
||||
public saveMaterials(
|
||||
project: ProjectSchema,
|
||||
materials: Map<string, MaterialDescription>
|
||||
): Promise<boolean> {
|
||||
console.log('MemoryService.saveMaterials', { project, materials });
|
||||
if (project.id) {
|
||||
this.materials[project.id] = mapToObject(materials);
|
||||
}
|
||||
console.log('MemoryService.saveMaterials result', { success: true });
|
||||
return Promise.resolve(true);
|
||||
}
|
||||
|
||||
public saveFile(file: BlockSchema): Promise<boolean> {
|
||||
console.log('MemoryService.saveFile', { file });
|
||||
this.files[file.id as string] = file;
|
||||
console.log('MemoryService.saveFile result', { success: true });
|
||||
return Promise.resolve(true);
|
||||
}
|
||||
|
||||
public getFile(id: string): Promise<BlockSchema> {
|
||||
console.log('MemoryService.getFile', { id });
|
||||
const file = this.files[id];
|
||||
console.log('MemoryService.getFile result', { file });
|
||||
return file ? Promise.resolve(file) : Promise.reject(null);
|
||||
}
|
||||
|
||||
public removeFile(id: string): Promise<boolean> {
|
||||
console.log('MemoryService.removeFile', { id });
|
||||
delete this.files[id];
|
||||
console.log('MemoryService.removeFile result', { success: true });
|
||||
return Promise.resolve(true);
|
||||
}
|
||||
|
||||
public saveHistory(history: HistorySchema): Promise<boolean> {
|
||||
console.log('MemoryService.saveHistory', { history });
|
||||
this.histories[history.id] = history;
|
||||
console.log('MemoryService.saveHistory result', { success: true });
|
||||
return Promise.resolve(true);
|
||||
}
|
||||
|
||||
public removeHistory(id: string): Promise<boolean> {
|
||||
console.log('MemoryService.removeHistory', { id });
|
||||
const history = this.histories[id] as HistorySchema;
|
||||
if (history) {
|
||||
const items = history.items || [];
|
||||
const ids = items.map((item) => item.id);
|
||||
this.removeHistoryItem(id, ids);
|
||||
delete this.historyItems[id];
|
||||
}
|
||||
console.log('MemoryService.removeHistory result', { success: true });
|
||||
return Promise.resolve(true);
|
||||
}
|
||||
|
||||
public getHistory(id: string): Promise<HistorySchema> {
|
||||
console.log('MemoryService.getHistory', { id });
|
||||
const dsl = this.histories[id];
|
||||
const history = new HistoryModel(dsl || { id });
|
||||
console.log('MemoryService.getHistory result', { history });
|
||||
return Promise.resolve(history);
|
||||
}
|
||||
|
||||
public getHistoryItem(fId: string, id: string): Promise<HistoryItem> {
|
||||
console.log('MemoryService.getHistoryItem', { fId, id });
|
||||
const key = `${fId}_${id}`;
|
||||
const item = this.historyItems[key] || {};
|
||||
console.log('MemoryService.getHistoryItem result', { item });
|
||||
return Promise.resolve(item);
|
||||
}
|
||||
|
||||
public saveHistoryItem(fId: string, item: HistoryItem): Promise<boolean> {
|
||||
console.log('MemoryService.saveHistoryItem', { fId, item });
|
||||
const key = `${fId}_${item.id}`;
|
||||
this.historyItems[key] = item;
|
||||
console.log('MemoryService.saveHistoryItem result', { success: true });
|
||||
return Promise.resolve(true);
|
||||
}
|
||||
|
||||
public removeHistoryItem(fId: string, ids: string[]): Promise<boolean> {
|
||||
console.log('MemoryService.removeHistoryItem', { fId, ids });
|
||||
ids.forEach((id) => {
|
||||
const key = `${fId}_${id}`;
|
||||
delete this.historyItems[key];
|
||||
});
|
||||
console.log('MemoryService.removeHistoryItem result', { success: true });
|
||||
return Promise.resolve(true);
|
||||
}
|
||||
}
|
||||
|
||||
let serviceInstance: MemoryService | null = null;
|
||||
|
||||
export function createMemoryService() {
|
||||
if (serviceInstance) return serviceInstance;
|
||||
{
|
||||
serviceInstance = new MemoryService();
|
||||
return serviceInstance;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user