diff --git a/eslint.config.js b/eslint.config.js index 8ad0ffe6..ce9e0d31 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -16,6 +16,7 @@ export default defineConfig([ '*/**/public/**/*', '*/**/types/**/*', '*/**/*.config.ts', + './tepm/**/*', 'vite-env.d.ts', ]), ...eslintConfig(path.join(path.dirname(fileURLToPath(import.meta.url)), 'tsconfig.json')), diff --git a/packages/data-source/src/data-sources/Http.ts b/packages/data-source/src/data-sources/Http.ts index de101a6e..67d9c620 100644 --- a/packages/data-source/src/data-sources/Http.ts +++ b/packages/data-source/src/data-sources/Http.ts @@ -79,9 +79,9 @@ export default class HttpDataSource extends DataSource { /** 请求函数 */ #fetch?: RequestFunction; /** 请求前需要执行的函数队列 */ - #beforeRequest: ((...args: any[]) => any)[] = []; + #beforeRequest: (Function | ((...args: any[]) => any))[] = []; /** 请求后需要执行的函数队列 */ - #afterRequest: ((...args: any[]) => any)[] = []; + #afterRequest: (Function | ((...args: any[]) => any))[] = []; #type = 'http'; diff --git a/packages/editor/src/components/CodeBlockEditor.vue b/packages/editor/src/components/CodeBlockEditor.vue index 19d46f2a..276ce781 100644 --- a/packages/editor/src/components/CodeBlockEditor.vue +++ b/packages/editor/src/components/CodeBlockEditor.vue @@ -88,7 +88,7 @@ const width = defineModel('width', { default: 670 }); const boxVisible = defineModel('visible', { default: false }); const props = defineProps<{ - content: CodeBlockContent; + content: Omit & { content: string }; disabled?: boolean; isDataSource?: boolean; dataSourceType?: string; diff --git a/packages/editor/src/fields/DataSourceMethods.vue b/packages/editor/src/fields/DataSourceMethods.vue index 902c7f88..91ba7739 100644 --- a/packages/editor/src/fields/DataSourceMethods.vue +++ b/packages/editor/src/fields/DataSourceMethods.vue @@ -42,7 +42,7 @@ const props = withDefaults(defineProps>(), { const emit = defineEmits(['change']); -const codeConfig = ref(); +const codeConfig = ref & { content: string }>(); const codeBlockEditorRef = useTemplateRef>('codeBlockEditor'); let editIndex = -1; @@ -72,10 +72,14 @@ const methodColumns: ColumnConfig[] = [ { text: '编辑', handler: (method: CodeBlockContent, index: number) => { - let codeContent = method.content || '({ params, dataSource, app }) => {\n // place your code here\n}'; + let codeContent: string = '({ params, dataSource, app }) => {\n // place your code here\n}'; - if (typeof codeContent !== 'string') { - codeContent = codeContent.toString(); + if (method.content) { + if (typeof method.content !== 'string') { + codeContent = method.content.toString(); + } else { + codeContent = method.content; + } } codeConfig.value = { diff --git a/packages/editor/src/hooks/use-code-block-edit.ts b/packages/editor/src/hooks/use-code-block-edit.ts index 9a6df770..7fd32655 100644 --- a/packages/editor/src/hooks/use-code-block-edit.ts +++ b/packages/editor/src/hooks/use-code-block-edit.ts @@ -8,7 +8,7 @@ import CodeBlockEditor from '@editor/components/CodeBlockEditor.vue'; import type { Services } from '@editor/type'; export const useCodeBlockEdit = (codeBlockService: Services['codeBlockService']) => { - const codeConfig = ref(); + const codeConfig = ref & { content: string }>(); const codeId = ref(); const codeBlockEditorRef = useTemplateRef>('codeBlockEditor'); @@ -36,10 +36,14 @@ export const useCodeBlockEdit = (codeBlockService: Services['codeBlockService']) return; } - let codeContent = codeBlock.content; + let codeContent = ''; - if (typeof codeContent !== 'string') { - codeContent = codeContent.toString(); + if (codeBlock.content) { + if (typeof codeBlock.content !== 'string') { + codeContent = codeBlock.content.toString(); + } else { + codeContent = codeBlock.content; + } } codeConfig.value = { diff --git a/packages/schema/src/index.ts b/packages/schema/src/index.ts index 3f031278..efabcc68 100644 --- a/packages/schema/src/index.ts +++ b/packages/schema/src/index.ts @@ -186,7 +186,7 @@ export interface CodeBlockContent { /** 代码块名称 */ name: string; /** 代码块内容 */ - content: ((...args: any[]) => any) | string; + content: ((...args: any[]) => any) | Function; /** 参数定义 */ params: CodeParam[] | []; /** 注释 */