diff --git a/mockServer/src/assets/json/model.json b/mockServer/src/assets/json/model.json index a0dab4b340..8fa7d42d56 100644 --- a/mockServer/src/assets/json/model.json +++ b/mockServer/src/assets/json/model.json @@ -529,4 +529,4 @@ "current": 1, "pages": 1 } -} +} \ No newline at end of file diff --git a/mockServer/src/database/model.db b/mockServer/src/database/model.db new file mode 100644 index 0000000000..f94205f057 --- /dev/null +++ b/mockServer/src/database/model.db @@ -0,0 +1,2 @@ +{"_id":1,"id":5,"createdBy":"1","lastUpdatedBy":"1","tenantId":null,"renterId":null,"siteId":null,"appId":null,"platformId":1,"nameCn":"员工","nameEn":"staff","version":"1.0.0","modelUrl":"https://agent-alpha.opentiny.design/platform-center/api/model-data","parameters":[{"prop":"id","isModel":false,"type":"Number","required":true,"description":"主键","_RID":"row_1"},{"prop":"name","isModel":false,"type":"String","required":true,"description":"姓名","_RID":"row_2"},{"prop":"status","isModel":false,"type":"Enum","options":"[{\"value\":\"1\",\"label\":\"已转正\"},{\"value\":\"0\",\"label\":\"未转正\"}]","required":true,"description":"状态","_RID":"row_3"},{"prop":"test","type":"String","required":false,"description":"","isModel":false,"_RID":"row_4"}],"method":[{"name":"新增方法","nameEn":"insertApi","requestParameters":[{"prop":"nameEn","type":"String"},{"prop":"params","type":"Object","children":[{"prop":"id","isModel":false,"type":"Number","required":true,"description":"主键"},{"prop":"name","isModel":false,"type":"String","required":true,"description":"姓名"},{"prop":"status","isModel":false,"type":"Enum","options":"[{\"value\":\"1\",\"label\":\"已转正\"},{\"value\":\"0\",\"label\":\"未转正\"}]","required":true,"description":"状态"},{"prop":"test","type":"String","required":false,"description":""}]}],"responseParameters":[{"prop":"code","type":"Number"},{"prop":"message","type":"String"},{"prop":"data","type":"Enum"}]},{"name":"修改方法","nameEn":"updateApi","requestParameters":[{"prop":"nameEn","type":"String"},{"prop":"data","type":"Object","children":[{"prop":"id","isModel":false,"type":"Number","required":true,"description":"主键"},{"prop":"name","isModel":false,"type":"String","required":true,"description":"姓名"},{"prop":"status","isModel":false,"type":"Enum","options":"[{\"value\":\"1\",\"label\":\"已转正\"},{\"value\":\"0\",\"label\":\"未转正\"}]","required":true,"description":"状态"},{"prop":"test","type":"String","required":false,"description":""}]},{"prop":"params","type":"Object","children":[{"prop":"id","isModel":false,"type":"Number","required":true,"description":"主键"},{"prop":"name","isModel":false,"type":"String","required":true,"description":"姓名"},{"prop":"status","isModel":false,"type":"Enum","options":"[{\"value\":\"1\",\"label\":\"已转正\"},{\"value\":\"0\",\"label\":\"未转正\"}]","required":true,"description":"状态"},{"prop":"test","type":"String","required":false,"description":""}]}],"responseParameters":[{"prop":"code","type":"Number"},{"prop":"message","type":"String"},{"prop":"data","type":"Enum"}]},{"name":"查询方法","nameEn":"queryApi","requestParameters":[{"prop":"nameEn","type":"String"},{"prop":"currentPage","type":"Number"},{"prop":"pageSize","type":"Number"},{"prop":"nameCn","type":"String"},{"prop":"params","type":"Object","children":[{"prop":"id","isModel":false,"type":"Number","required":true,"description":"主键"},{"prop":"name","isModel":false,"type":"String","required":true,"description":"姓名"},{"prop":"status","isModel":false,"type":"Enum","options":"[{\"value\":\"1\",\"label\":\"已转正\"},{\"value\":\"0\",\"label\":\"未转正\"}]","required":true,"description":"状态"},{"prop":"test","type":"String","required":false,"description":""}]}],"responseParameters":[{"prop":"total","type":"Number"},{"prop":"code","type":"Number"},{"prop":"message","type":"String"},{"prop":"data","type":"Enum"}]},{"name":"删除方法","nameEn":"deleteApi","requestParameters":[{"prop":"nameEn","type":"String"},{"prop":"id","type":"Number"}],"responseParameters":[{"prop":"code","type":"Number"},{"prop":"message","type":"String"},{"prop":"data","type":"Enum"}]}],"description":"1112","created_at":"2026-01-27 10:41:10","updated_at":"2026-01-27 10:41:10"} +{"_id":2,"id":6,"createdBy":"11","lastUpdatedBy":"11","tenantId":null,"renterId":null,"siteId":null,"appId":null,"platformId":1,"nameCn":"用户","nameEn":"user","version":"1.0.0","modelUrl":"https://agent-alpha.opentiny.design/platform-center/api","parameters":[{"prop":"name","type":"String","required":false,"description":""},{"prop":"age","type":"Number","required":false,"description":""}],"method":[{"name":"新增方法","nameEn":"insertApi","requestParameters":[{"prop":"nameEn","type":"String"},{"prop":"params","type":"Object","children":[{"prop":"name","type":"String","required":false,"description":""},{"prop":"age","type":"Number","required":false,"description":""}]}],"responseParameters":[{"prop":"code","type":"Number"},{"prop":"message","type":"String"},{"prop":"data","type":"Enum"}]},{"name":"修改方法","nameEn":"updateApi","requestParameters":[{"prop":"nameEn","type":"String"},{"prop":"data","type":"Object","children":[{"prop":"name","type":"String","required":false,"description":""},{"prop":"age","type":"Number","required":false,"description":""}]},{"prop":"params","type":"Object","children":[{"prop":"name","type":"String","required":false,"description":""},{"prop":"age","type":"Number","required":false,"description":""}]}],"responseParameters":[{"prop":"code","type":"Number"},{"prop":"message","type":"String"},{"prop":"data","type":"Enum"}]},{"name":"查询方法","nameEn":"queryApi","requestParameters":[{"prop":"nameEn","type":"String"},{"prop":"currentPage","type":"Number"},{"prop":"pageSize","type":"Number"},{"prop":"nameCn","type":"String"},{"prop":"params","type":"Object","children":[{"prop":"name","type":"String","required":false,"description":""},{"prop":"age","type":"Number","required":false,"description":""}]}],"responseParameters":[{"prop":"total","type":"Number"},{"prop":"code","type":"Number"},{"prop":"message","type":"String"},{"prop":"data","type":"Enum"}]},{"name":"删除方法","nameEn":"deleteApi","requestParameters":[{"prop":"nameEn","type":"String"},{"prop":"id","type":"Number"}],"responseParameters":[{"prop":"code","type":"Number"},{"prop":"message","type":"String"},{"prop":"data","type":"Enum"}]}],"description":"","created_at":"2026-01-29 03:00:21","updated_at":"2026-01-29 03:00:21"} diff --git a/mockServer/src/services/model.js b/mockServer/src/services/model.js index debb6493dd..e1d2e838f2 100644 --- a/mockServer/src/services/model.js +++ b/mockServer/src/services/model.js @@ -10,22 +10,51 @@ * */ -import { getResponseData } from '../tool/Common' -import modelList from '../assets/json/model.json' +import DateStore from '@seald-io/nedb' +import { getDatabasePath, getResponseData } from '../tool/Common' const defaultModel = { - createdBy: '86', - lastUpdatedBy: '86', + createdBy: '1', + lastUpdatedBy: '1', tenantId: null, renterId: null, siteId: null, appId: null, platformId: 1, - nameCn: 'test', - nameEn: 'test', + nameCn: '', + nameEn: '', version: '1.0.0', - modelUrl: '1', - parameters: [], + modelUrl: 'https://agent-alpha.opentiny.design/platform-center/api/model-data', + parameters: [ + { + prop: 'id', + isModel: false, + type: 'Number', + required: true, + description: '主键' + }, + { + prop: 'name', + isModel: false, + type: 'String', + required: true, + description: '姓名' + }, + { + prop: 'status', + isModel: false, + type: 'Enum', + options: '[{"value":"1","label":"已转正"},{"value":"0","label":"未转正"}]', + required: true, + description: '状态' + }, + { + prop: 'test', + type: 'String', + required: false, + description: '' + } + ], method: [ { name: '新增方法', @@ -33,13 +62,41 @@ const defaultModel = { requestParameters: [ { prop: 'nameEn', - type: 'String', - children: null + type: 'String' }, { prop: 'params', type: 'Object', - children: [] + children: [ + { + prop: 'id', + isModel: false, + type: 'Number', + required: true, + description: '主键' + }, + { + prop: 'name', + isModel: false, + type: 'String', + required: true, + description: '姓名' + }, + { + prop: 'status', + isModel: false, + type: 'Enum', + options: '[{"value":"1","label":"已转正"},{"value":"0","label":"未转正"}]', + required: true, + description: '状态' + }, + { + prop: 'test', + type: 'String', + required: false, + description: '' + } + ] } ], responseParameters: [ @@ -63,18 +120,75 @@ const defaultModel = { requestParameters: [ { prop: 'nameEn', - type: 'String', - children: null + type: 'String' }, { prop: 'data', type: 'Object', - children: [] + children: [ + { + prop: 'id', + isModel: false, + type: 'Number', + required: true, + description: '主键' + }, + { + prop: 'name', + isModel: false, + type: 'String', + required: true, + description: '姓名' + }, + { + prop: 'status', + isModel: false, + type: 'Enum', + options: '[{"value":"1","label":"已转正"},{"value":"0","label":"未转正"}]', + required: true, + description: '状态' + }, + { + prop: 'test', + type: 'String', + required: false, + description: '' + } + ] }, { prop: 'params', type: 'Object', - children: [] + children: [ + { + prop: 'id', + isModel: false, + type: 'Number', + required: true, + description: '主键' + }, + { + prop: 'name', + isModel: false, + type: 'String', + required: true, + description: '姓名' + }, + { + prop: 'status', + isModel: false, + type: 'Enum', + options: '[{"value":"1","label":"已转正"},{"value":"0","label":"未转正"}]', + required: true, + description: '状态' + }, + { + prop: 'test', + type: 'String', + required: false, + description: '' + } + ] } ], responseParameters: [ @@ -98,28 +212,53 @@ const defaultModel = { requestParameters: [ { prop: 'nameEn', - type: 'String', - children: null + type: 'String' }, { prop: 'currentPage', - type: 'Number', - children: null + type: 'Number' }, { prop: 'pageSize', - type: 'Number', - children: null + type: 'Number' }, { prop: 'nameCn', - type: 'String', - children: null + type: 'String' }, { prop: 'params', type: 'Object', - children: [] + children: [ + { + prop: 'id', + isModel: false, + type: 'Number', + required: true, + description: '主键' + }, + { + prop: 'name', + isModel: false, + type: 'String', + required: true, + description: '姓名' + }, + { + prop: 'status', + isModel: false, + type: 'Enum', + options: '[{"value":"1","label":"已转正"},{"value":"0","label":"未转正"}]', + required: true, + description: '状态' + }, + { + prop: 'test', + type: 'String', + required: false, + description: '' + } + ] } ], responseParameters: [ @@ -147,13 +286,11 @@ const defaultModel = { requestParameters: [ { prop: 'nameEn', - type: 'String', - children: null + type: 'String' }, { prop: 'id', - type: 'Number', - children: null + type: 'Number' } ], responseParameters: [ @@ -172,49 +309,56 @@ const defaultModel = { ] } ], - description: '', - created_at: '2026-01-30 04:34:25', - updated_at: '2026-01-30 04:34:25' + description: '' } -export default class AppsService { +export default class ModelService { constructor() { - this.modelList = modelList + this.db = new DateStore({ + filename: getDatabasePath('model.db'), + autoload: true + }) + + this.db.ensureIndex({ + fieldName: '_id', + unique: true + }) + this.modelList = [] } async create(params) { - let mockId = - this.modelList.data.records.length > 0 ? Math.max(...this.modelList.data.records.map((item) => item.id)) + 1 : 3 + let mockId = this.modelList.length > 0 ? Math.max(...this.modelList.map((item) => item.id)) + 1 : 3 const newModel = { ...defaultModel, id: mockId++, + created_at: new Date().toISOString(), + updated_at: new Date().toISOString(), ...params } - this.modelList.data.records.push(newModel) - return getResponseData(newModel) + + this.db.insert(newModel) + this.modelList.push(newModel) + + return getResponseData({ records: this.modelList }) } async delete(id) { - this.modelList.data.records = this.modelList.data.records.filter((item) => Number(item.id) !== Number(id)) + const result = await this.db.findOneAsync({ id: Number(id) }) + await this.db.removeAsync({ id: Number(id) }) - return getResponseData(this.modelList.data) + return getResponseData(result) } async list() { - return getResponseData(this.modelList.data) + this.modelList = await this.db.findAsync() + + return getResponseData({ records: this.modelList }) } async update(id, params) { - const index = this.modelList.data.records.findIndex((item) => Number(item.id) === Number(id)) - if (index === -1) { - return getResponseData({ success: false, message: '未找到应用' }) - } - - this.modelList.data.records[index] = { - ...this.modelList.data.records[index], - ...params - } + await this.db.updateAsync({ id: Number(id) }, { $set: params }) + const result = await this.db.findOneAsync({ id: Number(id) }) - return getResponseData(this.modelList.data.records[index]) + return getResponseData(result) } } diff --git a/packages/common/component/LifeCycles.vue b/packages/common/component/LifeCycles.vue index 8dcde96417..2bfa55fa6a 100644 --- a/packages/common/component/LifeCycles.vue +++ b/packages/common/component/LifeCycles.vue @@ -277,7 +277,7 @@ export default { .life-cycle-tips { color: var(--te-component-common-text-color-weaken); margin: 4px 0 0; - height: 16px; + height: 30px; line-height: 16px; } .life-cycle-content-list { diff --git a/packages/plugins/block/src/BlockSetting.vue b/packages/plugins/block/src/BlockSetting.vue index 211ac4bba0..a66c4366e0 100644 --- a/packages/plugins/block/src/BlockSetting.vue +++ b/packages/plugins/block/src/BlockSetting.vue @@ -61,8 +61,8 @@ - -
+ +
@@ -380,4 +380,9 @@ export default { padding: 0 12px 12px; } } +.life-cycles-container { + :deep(.tiny-collapse-item__content) { + margin-bottom: 4px; + } +} diff --git a/packages/plugins/page/src/PageSetting.vue b/packages/plugins/page/src/PageSetting.vue index 8e3f65501a..576b908ae1 100644 --- a/packages/plugins/page/src/PageSetting.vue +++ b/packages/plugins/page/src/PageSetting.vue @@ -498,4 +498,10 @@ export default { padding: 0 12px 12px; } } + +.input-output { + :deep(.tiny-collapse-item__content) { + margin-bottom: 4px; + } +}