feat:Add model management mock (#1795)
This commit is contained in:
parent
ab2f9baac2
commit
06b9cd8bfe
|
|
@ -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"}
|
||||||
|
|
@ -10,22 +10,51 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { getResponseData } from '../tool/Common'
|
import DateStore from '@seald-io/nedb'
|
||||||
import modelList from '../assets/json/model.json'
|
import { getDatabasePath, getResponseData } from '../tool/Common'
|
||||||
|
|
||||||
const defaultModel = {
|
const defaultModel = {
|
||||||
createdBy: '86',
|
createdBy: '1',
|
||||||
lastUpdatedBy: '86',
|
lastUpdatedBy: '1',
|
||||||
tenantId: null,
|
tenantId: null,
|
||||||
renterId: null,
|
renterId: null,
|
||||||
siteId: null,
|
siteId: null,
|
||||||
appId: null,
|
appId: null,
|
||||||
platformId: 1,
|
platformId: 1,
|
||||||
nameCn: 'test',
|
nameCn: '',
|
||||||
nameEn: 'test',
|
nameEn: '',
|
||||||
version: '1.0.0',
|
version: '1.0.0',
|
||||||
modelUrl: '1',
|
modelUrl: 'https://agent-alpha.opentiny.design/platform-center/api/model-data',
|
||||||
parameters: [],
|
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: [
|
method: [
|
||||||
{
|
{
|
||||||
name: '新增方法',
|
name: '新增方法',
|
||||||
|
|
@ -33,13 +62,41 @@ const defaultModel = {
|
||||||
requestParameters: [
|
requestParameters: [
|
||||||
{
|
{
|
||||||
prop: 'nameEn',
|
prop: 'nameEn',
|
||||||
type: 'String',
|
type: 'String'
|
||||||
children: null
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'params',
|
prop: 'params',
|
||||||
type: 'Object',
|
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: [
|
responseParameters: [
|
||||||
|
|
@ -63,18 +120,75 @@ const defaultModel = {
|
||||||
requestParameters: [
|
requestParameters: [
|
||||||
{
|
{
|
||||||
prop: 'nameEn',
|
prop: 'nameEn',
|
||||||
type: 'String',
|
type: 'String'
|
||||||
children: null
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'data',
|
prop: 'data',
|
||||||
type: 'Object',
|
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',
|
prop: 'params',
|
||||||
type: 'Object',
|
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: [
|
responseParameters: [
|
||||||
|
|
@ -98,28 +212,53 @@ const defaultModel = {
|
||||||
requestParameters: [
|
requestParameters: [
|
||||||
{
|
{
|
||||||
prop: 'nameEn',
|
prop: 'nameEn',
|
||||||
type: 'String',
|
type: 'String'
|
||||||
children: null
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'currentPage',
|
prop: 'currentPage',
|
||||||
type: 'Number',
|
type: 'Number'
|
||||||
children: null
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'pageSize',
|
prop: 'pageSize',
|
||||||
type: 'Number',
|
type: 'Number'
|
||||||
children: null
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'nameCn',
|
prop: 'nameCn',
|
||||||
type: 'String',
|
type: 'String'
|
||||||
children: null
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'params',
|
prop: 'params',
|
||||||
type: 'Object',
|
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: [
|
responseParameters: [
|
||||||
|
|
@ -147,13 +286,11 @@ const defaultModel = {
|
||||||
requestParameters: [
|
requestParameters: [
|
||||||
{
|
{
|
||||||
prop: 'nameEn',
|
prop: 'nameEn',
|
||||||
type: 'String',
|
type: 'String'
|
||||||
children: null
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'id',
|
prop: 'id',
|
||||||
type: 'Number',
|
type: 'Number'
|
||||||
children: null
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
responseParameters: [
|
responseParameters: [
|
||||||
|
|
@ -172,49 +309,56 @@ const defaultModel = {
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
description: '',
|
description: ''
|
||||||
created_at: '2026-01-30 04:34:25',
|
|
||||||
updated_at: '2026-01-30 04:34:25'
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export default class AppsService {
|
export default class ModelService {
|
||||||
constructor() {
|
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) {
|
async create(params) {
|
||||||
let mockId =
|
let mockId = this.modelList.length > 0 ? Math.max(...this.modelList.map((item) => item.id)) + 1 : 3
|
||||||
this.modelList.data.records.length > 0 ? Math.max(...this.modelList.data.records.map((item) => item.id)) + 1 : 3
|
|
||||||
const newModel = {
|
const newModel = {
|
||||||
...defaultModel,
|
...defaultModel,
|
||||||
id: mockId++,
|
id: mockId++,
|
||||||
|
created_at: new Date().toISOString(),
|
||||||
|
updated_at: new Date().toISOString(),
|
||||||
...params
|
...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) {
|
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() {
|
async list() {
|
||||||
return getResponseData(this.modelList.data)
|
this.modelList = await this.db.findAsync()
|
||||||
|
|
||||||
|
return getResponseData({ records: this.modelList })
|
||||||
}
|
}
|
||||||
|
|
||||||
async update(id, params) {
|
async update(id, params) {
|
||||||
const index = this.modelList.data.records.findIndex((item) => Number(item.id) === Number(id))
|
await this.db.updateAsync({ id: Number(id) }, { $set: params })
|
||||||
if (index === -1) {
|
const result = await this.db.findOneAsync({ id: Number(id) })
|
||||||
return getResponseData({ success: false, message: '未找到应用' })
|
|
||||||
}
|
|
||||||
|
|
||||||
this.modelList.data.records[index] = {
|
return getResponseData(result)
|
||||||
...this.modelList.data.records[index],
|
|
||||||
...params
|
|
||||||
}
|
|
||||||
|
|
||||||
return getResponseData(this.modelList.data.records[index])
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -277,7 +277,7 @@ export default {
|
||||||
.life-cycle-tips {
|
.life-cycle-tips {
|
||||||
color: var(--te-component-common-text-color-weaken);
|
color: var(--te-component-common-text-color-weaken);
|
||||||
margin: 4px 0 0;
|
margin: 4px 0 0;
|
||||||
height: 16px;
|
height: 30px;
|
||||||
line-height: 16px;
|
line-height: 16px;
|
||||||
}
|
}
|
||||||
.life-cycle-content-list {
|
.life-cycle-content-list {
|
||||||
|
|
|
||||||
|
|
@ -61,8 +61,8 @@
|
||||||
</block-event>
|
</block-event>
|
||||||
</div>
|
</div>
|
||||||
</tiny-collapse-item>
|
</tiny-collapse-item>
|
||||||
<tiny-collapse-item title="生命周期设置" name="lifeCycle">
|
<tiny-collapse-item class="life-cycles-container" title="生命周期设置" name="lifeCycle">
|
||||||
<div class="life-cycles-container">
|
<div>
|
||||||
<life-cycles :isPage="false" :bindLifeCycles="state.bindLifeCycles" @bind="bindLifeCycles"></life-cycles>
|
<life-cycles :isPage="false" :bindLifeCycles="state.bindLifeCycles" @bind="bindLifeCycles"></life-cycles>
|
||||||
</div>
|
</div>
|
||||||
</tiny-collapse-item>
|
</tiny-collapse-item>
|
||||||
|
|
@ -380,4 +380,9 @@ export default {
|
||||||
padding: 0 12px 12px;
|
padding: 0 12px 12px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.life-cycles-container {
|
||||||
|
:deep(.tiny-collapse-item__content) {
|
||||||
|
margin-bottom: 4px;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -498,4 +498,10 @@ export default {
|
||||||
padding: 0 12px 12px;
|
padding: 0 12px 12px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.input-output {
|
||||||
|
:deep(.tiny-collapse-item__content) {
|
||||||
|
margin-bottom: 4px;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue