Skip to content

Commit 6cfffd6

Browse files
committed
Merge branch 'develop' of https://github.com/betterdancing/tiny-engine into feat/resources
2 parents 6e9d281 + 2f5b7bd commit 6cfffd6

8 files changed

Lines changed: 43 additions & 16 deletions

File tree

packages/canvas/render/src/builtin/CanvasCollection.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ return new Promise((resolve, reject) => {
183183
this.dataSourceMap.${sourceName}.load().then((res) => {
184184
// 如果按照数据源面板的建议格式编写dataHandler
185185
// 那么dataSourceMap的res格式应该是:{ code: string, msg: string, data: {items: any[], total: number} }
186-
resolve({ result: res.data.items, page: { total: res.data.total } });
186+
resolve({ result: res?.data?.items || res?.data?.data || res?.data, page: { total: res?.data?.total || res?.data?.data?.length || res?.data?.length } });
187187
});
188188
});
189189
}`

packages/plugins/datasource/src/DataSourceForm.vue

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -210,12 +210,14 @@ export default {
210210
}
211211
212212
const save = async () => {
213-
try {
214-
// await validate() 如果验证不通过会抛出异常,而不是返回 false
215-
await getServiceForm().validate()
216-
} catch (error) {
217-
activeTabChange('remote')
218-
return
213+
if (state.dataSource.data.type === 'remote') {
214+
try {
215+
// await validate() 如果验证不通过会抛出异常,而不是返回 false
216+
await getServiceForm().validate()
217+
} catch (error) {
218+
activeTabChange('remote')
219+
return
220+
}
219221
}
220222
getDataSourceName().validate(async (valid) => {
221223
if (valid) {

packages/plugins/datasource/src/DataSourceList.vue

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,7 @@ export default {
7070
const openDataSourceForm = (item, index) => {
7171
activeIndex.value = index
7272
fetchDataSourceDetail(item.id).then((data) => {
73-
const editData = { ...data, data: { ...data.data, type: 'remote' } } || {
74-
...item,
75-
data: { ...item.data, type: 'remote' }
76-
}
73+
const editData = data || item
7774
emit('edit', editData)
7875
getServiceForm()?.clearValidate()
7976
})

packages/plugins/datasource/src/DataSourceType.vue

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,10 @@ export default {
4444
{
4545
name: '远程数据源',
4646
value: 'remote'
47+
},
48+
{
49+
name: '静态数据源',
50+
value: 'field'
4751
}
4852
]
4953

packages/plugins/robot/src/mcp/utils.ts

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,25 @@ export const serializeError = (err: unknown): string => {
5252
}
5353
}
5454

55+
const formatToolResult = (
56+
toolResult: string | { type: 'text'; text: string } | Array<{ type: 'text'; text: string }>
57+
) => {
58+
let result: any = toolResult
59+
if (Array.isArray(result) && result.length === 1) {
60+
result = result[0]
61+
}
62+
63+
if (typeof result === 'object' && result.type === 'text' && result.text) {
64+
result = result.text
65+
}
66+
67+
if (typeof result === 'string') {
68+
return result
69+
}
70+
71+
return JSON.stringify(result)
72+
}
73+
5574
const handleToolCall = async (
5675
res: LLMResponse,
5776
tools: RequestTool[],
@@ -99,8 +118,7 @@ const handleToolCall = async (
99118
toolCallResult = serializeError(error)
100119
}
101120
toolMessages.push({
102-
type: 'text',
103-
content: toolCallResult,
121+
content: formatToolResult(toolCallResult),
104122
role: 'tool',
105123
tool_call_id: tool.id
106124
})

packages/vue-generator/src/templates/vue-template/templateFiles/src/lowcodeConfig/dataSource.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,9 @@ const createFn = (fnContent) => {
2525
}
2626
}
2727

28-
const globalDataHandle = dataSources.dataHandler ? createFn(dataSources.dataHandler.value) : (res) => res
28+
const globalDataHandle = dataSources.dataHandler
29+
? createFn(dataSources.dataHandler.value)
30+
: (res) => Promise.resolve({ data: res })
2931

3032
const load = (http, options, dataSource, shouldFetch) => (params, customUrl) => {
3133
// 如果没有配置远程请求,则直接返回静态数据,返回前可能会有全局数据处理

packages/vue-generator/test/testcases/element-plus-case/expected/appdemo01/src/lowcodeConfig/dataSource.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,9 @@ const createFn = (fnContent) => {
2525
}
2626
}
2727

28-
const globalDataHandle = dataSources.dataHandler ? createFn(dataSources.dataHandler.value) : (res) => res
28+
const globalDataHandle = dataSources.dataHandler
29+
? createFn(dataSources.dataHandler.value)
30+
: Promise.resolve({ data: res })
2931

3032
const load = (http, options, dataSource, shouldFetch) => (params, customUrl) => {
3133
// 如果没有配置远程请求,则直接返回静态数据,返回前可能会有全局数据处理

packages/vue-generator/test/testcases/generator/expected/appdemo01/src/lowcodeConfig/dataSource.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,9 @@ const createFn = (fnContent) => {
2525
}
2626
}
2727

28-
const globalDataHandle = dataSources.dataHandler ? createFn(dataSources.dataHandler.value) : (res) => res
28+
const globalDataHandle = dataSources.dataHandler
29+
? createFn(dataSources.dataHandler.value)
30+
: Promise.resolve({ data: res })
2931

3032
const load = (http, options, dataSource, shouldFetch) => (params, customUrl) => {
3133
// 如果没有配置远程请求,则直接返回静态数据,返回前可能会有全局数据处理

0 commit comments

Comments
 (0)