From 7e7c236c2ad7814cbc62a2191b1841a3db5c25c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=AD=90=E9=BB=98?= <925456043@qq.com> Date: Sun, 5 Apr 2026 21:39:13 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E7=AB=AF=E5=89=8D=E7=AB=AF=20lint=20=E4=B8=8E=E6=9E=84?= =?UTF-8?q?=E5=BB=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 收敛 easyflow-ui-admin 的 lint、格式和类型问题 - 修正 demo 页面与管理端前端构建失败点 - 验证 pnpm lint 与 pnpm build 均已通过 --- easyflow-ui-admin/app/index.html | 8 +- easyflow-ui-admin/app/package.json | 4 +- .../app/src/adapter/component/index.ts | 6 +- easyflow-ui-admin/app/src/adapter/form.ts | 8 +- .../app/src/adapter/vxe-table.ts | 5 +- easyflow-ui-admin/app/src/api/ai/knowledge.ts | 1 + .../app/src/components/cardPage/CardPage.vue | 291 ++++++------ .../categoryPanel/CategoryCrudPanel.vue | 12 +- .../categoryPanel/CategoryPanel.vue | 98 ++-- .../chat-history/ChatHistoryDetailDrawer.vue | 113 +++-- .../app/src/components/chat/chat.vue | 33 +- .../components/collapse/CustomCoolapse.vue | 314 ++++++------- .../components/headerSearch/HeaderSearch.vue | 32 +- .../app/src/components/json/ShowJson.vue | 3 +- .../app/src/components/page/CardList.vue | 29 +- .../app/src/components/page/ListPageShell.vue | 55 ++- .../app/src/components/page/PageData.vue | 2 +- .../app/src/components/page/PageSide.vue | 2 + .../page/__tests__/CardList.test.ts | 7 +- .../app/src/components/tree/Tree.vue | 18 +- .../src/components/upload/DragFileUpload.vue | 5 +- .../app/src/components/upload/Upload.vue | 5 +- .../src/components/upload/UploadAvatar.vue | 35 +- easyflow-ui-admin/app/src/locales/index.ts | 5 +- .../src/locales/langs/en-US/aiResource.json | 36 +- .../langs/en-US/aiWorkflowCategory.json | 18 +- .../langs/en-US/aiWorkflowExecRecord.json | 46 +- .../langs/en-US/aiWorkflowRecordStep.json | 40 +- .../locales/langs/en-US/datacenterTable.json | 62 +-- .../langs/en-US/datacenterTableFields.json | 22 +- .../en-US/sysApiKeyResourcePermission.json | 8 +- .../app/src/locales/langs/en-US/sysDept.json | 30 +- .../app/src/locales/langs/en-US/sysDict.json | 20 +- .../app/src/locales/langs/en-US/sysJob.json | 42 +- .../app/src/locales/langs/en-US/sysLog.json | 24 +- .../app/src/locales/langs/en-US/sysMenu.json | 36 +- .../app/src/locales/langs/en-US/sysRole.json | 40 +- .../src/locales/langs/zh-CN/aiResource.json | 36 +- .../langs/zh-CN/aiWorkflowCategory.json | 18 +- .../langs/zh-CN/aiWorkflowExecRecord.json | 46 +- .../langs/zh-CN/aiWorkflowRecordStep.json | 40 +- .../locales/langs/zh-CN/datacenterTable.json | 62 +-- .../langs/zh-CN/datacenterTableFields.json | 22 +- .../app/src/locales/langs/zh-CN/sysDept.json | 30 +- .../app/src/locales/langs/zh-CN/sysDict.json | 20 +- .../app/src/locales/langs/zh-CN/sysJob.json | 42 +- .../app/src/locales/langs/zh-CN/sysLog.json | 24 +- .../app/src/locales/langs/zh-CN/sysMenu.json | 36 +- .../app/src/locales/langs/zh-CN/sysRole.json | 40 +- easyflow-ui-admin/app/src/main.ts | 6 +- easyflow-ui-admin/app/src/router/guard.ts | 15 +- .../app/src/router/routes/core.ts | 8 +- .../app/src/router/routes/modules/demos.ts | 2 + easyflow-ui-admin/app/src/store/auth.ts | 3 +- .../app/src/types/tinyflow-ai-vue.d.ts | 6 +- .../app/src/types/vue-element-plus-x.d.ts | 6 +- .../app/src/types/wangeditor.d.ts | 2 +- .../app/src/utils/password-reset.ts | 5 +- .../src/views/_core/authentication/login.vue | 18 +- .../app/src/views/_core/profile/index.vue | 10 +- .../views/_core/profile/password-setting.vue | 8 +- .../app/src/views/ai/bots/modal.vue | 30 +- .../app/src/views/ai/bots/pages/Run.vue | 2 +- .../views/ai/bots/pages/setting/config.vue | 2 + .../src/views/ai/bots/pages/setting/index.vue | 20 +- .../app/src/views/ai/chatHistory/index.vue | 56 +-- .../views/ai/documentCollection/Document.vue | 92 ++-- .../documentCollection/DocumentCollection.vue | 46 +- .../ai/documentCollection/DocumentTable.vue | 10 +- .../ai/documentCollection/FaqEditDialog.vue | 20 +- .../ai/documentCollection/FaqImportDialog.vue | 36 +- .../views/ai/documentCollection/FaqTable.vue | 56 +-- .../ImportKnowledgeDocFile.vue | 6 +- .../ai/documentCollection/SegmenterDoc.vue | 10 +- .../documentCollection/SplitterDocPreview.vue | 22 +- .../app/src/views/ai/mcp/McpModal.vue | 49 +- .../app/src/views/ai/model/AddModelModal.vue | 12 +- .../views/ai/model/AddModelProviderModal.vue | 27 +- .../src/views/ai/model/ModelVerifyConfig.vue | 18 +- .../views/ai/model/ModelViewItemOperation.vue | 9 +- .../ai/model/UnifiedGatewayWorkspace.vue | 16 +- .../__tests__/providerDraft.test.ts | 2 +- .../ai/model/modelUtils/providerDraft.ts | 2 +- .../src/views/ai/plugin/AddPluginModal.vue | 39 +- .../views/ai/plugin/PluginRunTestModal.vue | 23 +- .../views/ai/plugin/PluginToolCollapse.vue | 4 +- .../src/views/ai/workflow/WorkflowDesign.vue | 75 +-- .../src/views/ai/workflow/WorkflowList.vue | 118 ++--- .../src/views/ai/workflow/WorkflowModal.vue | 2 +- .../ai/workflow/components/ConfirmItem.vue | 42 +- .../workflow/components/ConfirmItemMulti.vue | 42 +- .../ai/workflow/components/SingleRun.vue | 4 +- .../customNode/datasetNodeRenderer.ts | 34 +- .../ai/workflow/customNode/datasetOptions.ts | 55 ++- .../app/src/views/config/apikey/SysApiKey.vue | 2 +- .../SysApiKeyResourcePermissionList.vue | 6 +- .../src/views/config/settings/Settings.vue | 6 +- .../views/datacenter/DatacenterWorkspace.vue | 14 +- .../datacenter/components/ConnectionTree.vue | 88 ++-- .../components/ExcelActionDrawer.vue | 72 ++- .../components/SourceFormDrawer.vue | 30 +- .../datacenter/components/TableDetailView.vue | 47 +- .../datacenter/components/TableListView.vue | 23 +- .../datacenter/composables/use-source-form.ts | 6 +- .../app/src/views/demos/cardTest/index.vue | 105 +---- .../src/views/demos/categoryPanel/index.vue | 47 +- .../app/src/views/publicChat/index.vue | 47 +- .../sysAccount/SysAccountImportModal.vue | 48 +- .../system/sysAccount/SysAccountList.vue | 24 +- .../system/sysAccount/SysAccountModal.vue | 5 +- .../src/views/system/sysDept/SysDeptList.vue | 2 +- .../src/views/system/sysRole/SysRoleModal.vue | 71 ++- easyflow-ui-admin/app/vite.config.mts | 2 +- easyflow-ui-admin/eslint.config.mjs | 2 +- .../internal/vite-config/package.json | 2 +- .../vite-config/src/config/application.ts | 20 +- .../default-loading-progress.html | 56 ++- .../vite-config/src/plugins/vxe-table.ts | 4 +- easyflow-ui-admin/package.json | 4 +- .../@core/base/design/src/css/global.css | 37 +- .../base/design/src/design-tokens/dark.css | 9 +- .../base/design/src/design-tokens/default.css | 15 +- .../@core/base/shared/src/constants/index.ts | 2 +- .../@core/base/shared/src/utils/util.ts | 1 - .../form-ui/src/components/form-actions.vue | 6 +- .../@core/ui-kit/form-ui/src/config.ts | 2 +- .../ui-kit/form-ui/src/easyflow-use-form.vue | 2 +- .../@core/ui-kit/form-ui/src/form-api.ts | 6 +- .../form-ui/src/form-render/form-field.vue | 7 +- .../form-ui/src/form-render/form-label.vue | 2 +- .../@core/ui-kit/form-ui/src/index.ts | 2 +- .../@core/ui-kit/form-ui/src/types.ts | 2 +- .../ui-kit/form-ui/src/use-easyflow-form.ts | 4 +- .../ui-kit/form-ui/src/use-form-context.ts | 8 +- .../src/components/layout-content.vue | 11 +- .../src/components/layout-header.vue | 5 +- .../src/components/layout-sidebar.vue | 32 +- .../src/components/layout-tabbar.vue | 5 +- .../widgets/sidebar-collapse-button.vue | 2 +- .../widgets/sidebar-fixed-button.vue | 8 +- .../ui-kit/layout-ui/src/easyflow-layout.vue | 54 +-- .../ui-kit/menu-ui/src/components/menu.vue | 95 ++-- .../ui-kit/popup-ui/src/alert/AlertBuilder.ts | 2 +- .../@core/ui-kit/popup-ui/src/alert/alert.vue | 5 +- .../ui-kit/popup-ui/src/drawer/drawer.vue | 27 +- .../ui-kit/popup-ui/src/drawer/use-drawer.ts | 6 +- .../ui-kit/popup-ui/src/modal/use-modal.ts | 6 +- .../src/components/breadcrumb/breadcrumb.vue | 42 +- .../components/button/check-button-group.vue | 2 +- .../src/components/spine-text/spine-text.vue | 5 +- .../src/components/tabs-chrome/tabs.vue | 16 +- .../tabs-ui/src/components/tabs/tabs.vue | 6 +- .../src/components/widgets/tool-more.vue | 2 +- .../src/components/widgets/tool-screen.vue | 2 +- .../@core/ui-kit/tabs-ui/src/tabs-view.vue | 20 +- .../tabs-ui/src/use-tabs-view-scroll.ts | 6 +- .../api-component/api-component.vue | 7 +- .../chat-thinking/ChatThinkingBlock.vue | 61 ++- .../src/components/chat-thinking/index.ts | 5 +- .../components/icon-picker/icon-picker.vue | 2 +- .../common-ui/src/components/tree/tree.vue | 2 +- .../ui/authentication/__tests__/login.test.ts | 12 +- .../src/ui/authentication/auth-title.vue | 4 +- .../src/ui/authentication/code-login.vue | 15 +- .../src/ui/authentication/forget-password.vue | 13 +- .../ui/authentication/login-expired-modal.vue | 2 +- .../common-ui/src/ui/authentication/login.vue | 55 +-- .../src/ui/authentication/qrcode-login.vue | 30 +- .../src/ui/authentication/register.vue | 17 +- .../analysis/analysis-chart-card.vue | 7 +- .../analysis/analysis-charts-tabs.vue | 7 +- .../src/authentication/authentication.vue | 186 +++++--- .../layouts/src/authentication/form.vue | 95 ++-- .../layouts/src/authentication/toolbar.vue | 18 +- .../layouts/src/basic/content/content.vue | 13 +- .../layouts/src/basic/header/header.vue | 38 +- .../layouts/src/basic/menu/use-mixed-menu.ts | 14 +- .../widgets/global-search/search-panel.vue | 5 +- .../layouts/src/widgets/language-toggle.vue | 5 +- .../layouts/src/widgets/layout-toggle.vue | 5 +- .../preferences/blocks/checkbox-item.vue | 5 +- .../widgets/preferences/blocks/input-item.vue | 2 +- .../preferences/blocks/number-field-item.vue | 2 +- .../preferences/blocks/select-item.vue | 2 +- .../preferences/blocks/switch-item.vue | 2 +- .../src/widgets/theme-toggle/theme-toggle.vue | 2 +- .../src/widgets/timezone/timezone-button.vue | 2 +- .../effects/plugins/src/vxe-table/types.ts | 5 +- .../packages/icons/src/svg/load.ts | 1 + .../packages/locales/package.json | 2 +- .../packages/styles/src/ele/index.css | 14 +- .../packages/tinyflow-ui/.eslintrc.cjs | 6 +- .../packages/tinyflow-ui/src/Tinyflow.ts | 292 ++++++------ .../tinyflow-ui/src/components/base/index.ts | 26 +- .../src/components/nodes/LoopNode.svelte | 5 +- .../tinyflow-ui/src/components/nodes/index.ts | 24 +- .../tinyflow-ui/src/components/utils/IdGen.ts | 18 +- .../src/components/utils/NodeUtils.ts | 28 +- .../components/utils/codeCompletion.test.ts | 162 ++++--- .../src/components/utils/codeCompletion.ts | 374 ++++++++------- .../src/components/utils/createFloating.ts | 380 +++++++-------- .../src/components/utils/deepClone.ts | 2 +- .../src/components/utils/deepEqual.ts | 69 +-- .../components/utils/isInEditableElement.ts | 18 +- .../src/components/utils/nodePalette.ts | 243 +++++----- .../src/components/utils/paramToken.test.ts | 330 ++++++------- .../src/components/utils/paramToken.ts | 436 +++++++++--------- .../utils/useAddParameter.svelte.ts | 104 ++--- .../components/utils/useCopyNode.svelte.ts | 46 +- .../utils/useCopyPasteHandler.svelte.ts | 427 +++++++++-------- .../components/utils/useDeleteEdge.svelte.ts | 14 +- .../components/utils/useDeleteNode.svelte.ts | 18 +- .../useEnsureParentInNodesBefore.svelte.ts | 74 +-- .../utils/useGetEdgesBySource.svelte.ts | 16 +- .../utils/useGetEdgesByTarget.svelte.ts | 16 +- .../src/components/utils/useGetNode.svelte.ts | 14 +- .../useGetNodeRelativePosition.svelte.ts | 36 +- .../utils/useGetNodesFromSource.svelte.ts | 50 +- .../components/utils/useRefOptions.svelte.ts | 294 ++++++------ .../utils/useUpdateEdgeData.svelte.ts | 47 +- .../packages/tinyflow-ui/src/consts.ts | 131 +++--- .../tinyflow-ui/src/store/stores.svelte.ts | 136 +++--- .../packages/tinyflow-ui/src/styles/base.less | 128 +++-- .../tinyflow-ui/src/styles/tinyflow.less | 192 ++++---- .../tinyflow-ui/src/styles/variable.less | 60 +-- .../tinyflow-ui/src/tinyflow-theme.test.ts | 102 ++-- .../packages/tinyflow-ui/src/types.ts | 218 ++++----- .../packages/tinyflow-ui/svelte.config.js | 24 +- .../packages/tinyflow-ui/tsconfig.app.json | 36 +- .../packages/tinyflow-ui/tsconfig.json | 7 +- .../packages/tinyflow-ui/tsconfig.node.json | 40 +- .../packages/tinyflow-ui/vite.config.ts | 74 +-- .../packages/tinyflow-vue/.eslintrc.cjs | 6 +- .../packages/tinyflow-vue/src/Tinyflow.vue | 114 ++--- .../packages/tinyflow-vue/src/main.ts | 6 +- .../packages/tinyflow-vue/tsconfig.app.json | 40 +- .../packages/tinyflow-vue/tsconfig.json | 7 +- .../packages/tinyflow-vue/tsconfig.node.json | 40 +- .../packages/tinyflow-vue/vite.config.ts | 64 +-- easyflow-ui-admin/readme.md | 3 + 240 files changed, 5151 insertions(+), 4701 deletions(-) diff --git a/easyflow-ui-admin/app/index.html b/easyflow-ui-admin/app/index.html index e622043..b642016 100644 --- a/easyflow-ui-admin/app/index.html +++ b/easyflow-ui-admin/app/index.html @@ -15,10 +15,10 @@ diff --git a/easyflow-ui-admin/app/package.json b/easyflow-ui-admin/app/package.json index 7fa4cb8..200d647 100644 --- a/easyflow-ui-admin/app/package.json +++ b/easyflow-ui-admin/app/package.json @@ -29,10 +29,10 @@ "@easyflow/types": "workspace:*", "@easyflow/utils": "workspace:*", "@element-plus/icons-vue": "^2.3.2", - "@wangeditor/editor": "^5.1.23", - "@wangeditor/editor-for-vue": "^5.1.12", "@tinyflow-ai/vue": "workspace:*", "@vueuse/core": "catalog:", + "@wangeditor/editor": "^5.1.23", + "@wangeditor/editor-for-vue": "^5.1.12", "dayjs": "catalog:", "dompurify": "^3.3.1", "element-plus": "catalog:", diff --git a/easyflow-ui-admin/app/src/adapter/component/index.ts b/easyflow-ui-admin/app/src/adapter/component/index.ts index d8d83aa..31ed4ec 100644 --- a/easyflow-ui-admin/app/src/adapter/component/index.ts +++ b/easyflow-ui-admin/app/src/adapter/component/index.ts @@ -10,7 +10,11 @@ import type { Recordable } from '@easyflow/types'; import { defineAsyncComponent, defineComponent, h, ref } from 'vue'; -import { ApiComponent, globalShareState, IconPicker } from '@easyflow/common-ui'; +import { + ApiComponent, + globalShareState, + IconPicker, +} from '@easyflow/common-ui'; import { $t } from '@easyflow/locales'; import { ElNotification } from 'element-plus'; diff --git a/easyflow-ui-admin/app/src/adapter/form.ts b/easyflow-ui-admin/app/src/adapter/form.ts index f4068ce..dbe04d0 100644 --- a/easyflow-ui-admin/app/src/adapter/form.ts +++ b/easyflow-ui-admin/app/src/adapter/form.ts @@ -1,11 +1,15 @@ import type { - EasyFlowFormSchema as FormSchema, EasyFlowFormProps, + EasyFlowFormSchema as FormSchema, } from '@easyflow/common-ui'; import type { ComponentType } from './component'; -import { setupEasyFlowForm, useEasyFlowForm as useForm, z } from '@easyflow/common-ui'; +import { + setupEasyFlowForm, + useEasyFlowForm as useForm, + z, +} from '@easyflow/common-ui'; import { $t } from '@easyflow/locales'; async function initSetupEasyFlowForm() { diff --git a/easyflow-ui-admin/app/src/adapter/vxe-table.ts b/easyflow-ui-admin/app/src/adapter/vxe-table.ts index 1b73c06..3b98df3 100644 --- a/easyflow-ui-admin/app/src/adapter/vxe-table.ts +++ b/easyflow-ui-admin/app/src/adapter/vxe-table.ts @@ -2,7 +2,10 @@ import type { VxeTableGridOptions } from '@easyflow/plugins/vxe-table'; import { h } from 'vue'; -import { setupEasyFlowVxeTable, useEasyFlowVxeGrid } from '@easyflow/plugins/vxe-table'; +import { + setupEasyFlowVxeTable, + useEasyFlowVxeGrid, +} from '@easyflow/plugins/vxe-table'; import { ElButton, ElImage } from 'element-plus'; diff --git a/easyflow-ui-admin/app/src/api/ai/knowledge.ts b/easyflow-ui-admin/app/src/api/ai/knowledge.ts index e69de29..cb0ff5c 100644 --- a/easyflow-ui-admin/app/src/api/ai/knowledge.ts +++ b/easyflow-ui-admin/app/src/api/ai/knowledge.ts @@ -0,0 +1 @@ +export {}; diff --git a/easyflow-ui-admin/app/src/components/cardPage/CardPage.vue b/easyflow-ui-admin/app/src/components/cardPage/CardPage.vue index b16053d..d377b5a 100644 --- a/easyflow-ui-admin/app/src/components/cardPage/CardPage.vue +++ b/easyflow-ui-admin/app/src/components/cardPage/CardPage.vue @@ -144,143 +144,8 @@ const filteredActions = computed(() => { diff --git a/easyflow-ui-admin/app/src/components/categoryPanel/CategoryCrudPanel.vue b/easyflow-ui-admin/app/src/components/categoryPanel/CategoryCrudPanel.vue index 39465c9..6f9017e 100644 --- a/easyflow-ui-admin/app/src/components/categoryPanel/CategoryCrudPanel.vue +++ b/easyflow-ui-admin/app/src/components/categoryPanel/CategoryCrudPanel.vue @@ -283,28 +283,28 @@ const handleDeleteClick = (event: any, item: any) => { diff --git a/easyflow-ui-admin/app/src/components/chat-history/ChatHistoryDetailDrawer.vue b/easyflow-ui-admin/app/src/components/chat-history/ChatHistoryDetailDrawer.vue index 30186f5..bfe94e4 100644 --- a/easyflow-ui-admin/app/src/components/chat-history/ChatHistoryDetailDrawer.vue +++ b/easyflow-ui-admin/app/src/components/chat-history/ChatHistoryDetailDrawer.vue @@ -1,7 +1,7 @@ - + diff --git a/easyflow-ui-admin/app/src/views/ai/workflow/WorkflowDesign.vue b/easyflow-ui-admin/app/src/views/ai/workflow/WorkflowDesign.vue index ff8a75a..fe3932c 100644 --- a/easyflow-ui-admin/app/src/views/ai/workflow/WorkflowDesign.vue +++ b/easyflow-ui-admin/app/src/views/ai/workflow/WorkflowDesign.vue @@ -4,7 +4,6 @@ import { useRoute } from 'vue-router'; import { usePreferences } from '@easyflow/preferences'; import { getOptions, sortNodes } from '@easyflow/utils'; -import { getIconByValue } from '#/views/ai/model/modelUtils/defaultIcon'; import { ArrowLeft, CircleCheck, Close } from '@element-plus/icons-vue'; import { Tinyflow } from '@tinyflow-ai/vue'; @@ -14,6 +13,7 @@ import { api } from '#/api/request'; import CommonSelectDataModal from '#/components/commonSelectModal/CommonSelectDataModal.vue'; import { $t } from '#/locales'; import { router } from '#/router'; +import { getIconByValue } from '#/views/ai/model/modelUtils/defaultIcon'; import ExecResult from '#/views/ai/workflow/components/ExecResult.vue'; import SingleRun from '#/views/ai/workflow/components/SingleRun.vue'; import WorkflowForm from '#/views/ai/workflow/components/WorkflowForm.vue'; @@ -143,7 +143,7 @@ const issueFocusActive = ref(false); const focusedIssueKey = ref(''); let focusPulseTimer: ReturnType | undefined; -type WorkflowCheckStage = 'SAVE' | 'PRE_EXECUTE'; +type WorkflowCheckStage = 'PRE_EXECUTE' | 'SAVE'; const builtInNodeIconMap: Record = { startNode: '', @@ -395,6 +395,15 @@ function checkStageText(stage?: string) { } return '-'; } + +function checkStageSummaryText(stage?: string) { + return `${$t('aiWorkflow.checkStageLabel')}:${checkStageText(stage)}`; +} + +function checkIssueCountText(count?: number) { + return `${$t('aiWorkflow.issueCount')}:${count || 0}`; +} + function issueKey(issue: any, index: number) { return `${issue.code || '-'}-${issue.nodeId || '-'}-${issue.edgeId || '-'}-${index}`; } @@ -616,16 +625,8 @@ function onAsyncExecute(info: any) { />
- {{ $t('aiWorkflow.checkStageLabel') }}:{{ - checkStageText(checkResult?.stage) - }} - {{ $t('aiWorkflow.issueCount') }}:{{ - checkResult?.issueCount || 0 - }} + +