From f3d6a563159bbe99e255db947e1249468a79d0bd Mon Sep 17 00:00:00 2001 From: Marvin Zhang Date: Thu, 15 May 2025 18:04:27 +0800 Subject: [PATCH] refactor: update AutoProbe components and enhance structure - Removed obsolete AutoProbeFieldDetail, AutoProbeListDetail, AutoProbePagePatternDetail, and AutoProbePaginationDetail components to streamline the codebase. - Introduced new components: AutoProbeItemDetail and AutoProbePagePatternsSidebar for improved data management and user interaction. - Updated index.ts to reflect new component structure and exports. - Enhanced internationalization support with new translations for preview and extraction types. - Refactored AutoProbeDetailTabPatterns to utilize new components and improve data handling. --- .../core/autoprobe/AutoProbeFieldDetail.vue | 270 --------- .../core/autoprobe/AutoProbeItemDetail.vue | 181 ++++++ .../core/autoprobe/AutoProbeListDetail.vue | 359 ------------ .../autoprobe/AutoProbePagePatternDetail.vue | 236 -------- .../AutoProbePagePatternsSidebar.vue | 315 +++++++++++ .../autoprobe/AutoProbePaginationDetail.vue | 138 ----- .../autoprobe/AutoProbeResultsContainer.vue | 208 +++++++ .../core/autoprobe/AutoProbeSelector.vue | 115 ++-- .../core/database/DatabaseSidebar.vue | 19 +- .../src/components/core/spider/SpiderStat.vue | 8 + frontend/crawlab-ui/src/components/index.ts | 14 +- frontend/crawlab-ui/src/constants/tab.ts | 1 + .../crawlab-ui/src/i18n/lang/en/common.ts | 1 + .../src/i18n/lang/en/components/autoprobe.ts | 7 + .../crawlab-ui/src/i18n/lang/zh/common.ts | 1 + .../src/i18n/lang/zh/components/autoprobe.ts | 7 + .../src/interfaces/i18n/common.d.ts | 1 + .../interfaces/i18n/components/autoprobe.d.ts | 7 + .../src/interfaces/models/autoprobe.d.ts | 30 +- frontend/crawlab-ui/src/utils/autoprobe.ts | 38 ++ frontend/crawlab-ui/src/utils/icon.ts | 4 +- frontend/crawlab-ui/src/utils/index.ts | 1 + .../tabs/AutoProbeDetailTabPatterns.vue | 529 +++++------------- 23 files changed, 1015 insertions(+), 1475 deletions(-) delete mode 100644 frontend/crawlab-ui/src/components/core/autoprobe/AutoProbeFieldDetail.vue create mode 100644 frontend/crawlab-ui/src/components/core/autoprobe/AutoProbeItemDetail.vue delete mode 100644 frontend/crawlab-ui/src/components/core/autoprobe/AutoProbeListDetail.vue delete mode 100644 frontend/crawlab-ui/src/components/core/autoprobe/AutoProbePagePatternDetail.vue create mode 100644 frontend/crawlab-ui/src/components/core/autoprobe/AutoProbePagePatternsSidebar.vue delete mode 100644 frontend/crawlab-ui/src/components/core/autoprobe/AutoProbePaginationDetail.vue create mode 100644 frontend/crawlab-ui/src/components/core/autoprobe/AutoProbeResultsContainer.vue create mode 100644 frontend/crawlab-ui/src/utils/autoprobe.ts diff --git a/frontend/crawlab-ui/src/components/core/autoprobe/AutoProbeFieldDetail.vue b/frontend/crawlab-ui/src/components/core/autoprobe/AutoProbeFieldDetail.vue deleted file mode 100644 index 28762548..00000000 --- a/frontend/crawlab-ui/src/components/core/autoprobe/AutoProbeFieldDetail.vue +++ /dev/null @@ -1,270 +0,0 @@ - - - - - \ No newline at end of file diff --git a/frontend/crawlab-ui/src/components/core/autoprobe/AutoProbeItemDetail.vue b/frontend/crawlab-ui/src/components/core/autoprobe/AutoProbeItemDetail.vue new file mode 100644 index 00000000..c9d68b7b --- /dev/null +++ b/frontend/crawlab-ui/src/components/core/autoprobe/AutoProbeItemDetail.vue @@ -0,0 +1,181 @@ + + + diff --git a/frontend/crawlab-ui/src/components/core/autoprobe/AutoProbeListDetail.vue b/frontend/crawlab-ui/src/components/core/autoprobe/AutoProbeListDetail.vue deleted file mode 100644 index 8f1cadca..00000000 --- a/frontend/crawlab-ui/src/components/core/autoprobe/AutoProbeListDetail.vue +++ /dev/null @@ -1,359 +0,0 @@ - - - - - \ No newline at end of file diff --git a/frontend/crawlab-ui/src/components/core/autoprobe/AutoProbePagePatternDetail.vue b/frontend/crawlab-ui/src/components/core/autoprobe/AutoProbePagePatternDetail.vue deleted file mode 100644 index d417b043..00000000 --- a/frontend/crawlab-ui/src/components/core/autoprobe/AutoProbePagePatternDetail.vue +++ /dev/null @@ -1,236 +0,0 @@ - - - - - diff --git a/frontend/crawlab-ui/src/components/core/autoprobe/AutoProbePagePatternsSidebar.vue b/frontend/crawlab-ui/src/components/core/autoprobe/AutoProbePagePatternsSidebar.vue new file mode 100644 index 00000000..aea13115 --- /dev/null +++ b/frontend/crawlab-ui/src/components/core/autoprobe/AutoProbePagePatternsSidebar.vue @@ -0,0 +1,315 @@ + + + + + diff --git a/frontend/crawlab-ui/src/components/core/autoprobe/AutoProbePaginationDetail.vue b/frontend/crawlab-ui/src/components/core/autoprobe/AutoProbePaginationDetail.vue deleted file mode 100644 index 2a62ac04..00000000 --- a/frontend/crawlab-ui/src/components/core/autoprobe/AutoProbePaginationDetail.vue +++ /dev/null @@ -1,138 +0,0 @@ - - - - - \ No newline at end of file diff --git a/frontend/crawlab-ui/src/components/core/autoprobe/AutoProbeResultsContainer.vue b/frontend/crawlab-ui/src/components/core/autoprobe/AutoProbeResultsContainer.vue new file mode 100644 index 00000000..47b92732 --- /dev/null +++ b/frontend/crawlab-ui/src/components/core/autoprobe/AutoProbeResultsContainer.vue @@ -0,0 +1,208 @@ + + + + + diff --git a/frontend/crawlab-ui/src/components/core/autoprobe/AutoProbeSelector.vue b/frontend/crawlab-ui/src/components/core/autoprobe/AutoProbeSelector.vue index a89fa729..cf422856 100644 --- a/frontend/crawlab-ui/src/components/core/autoprobe/AutoProbeSelector.vue +++ b/frontend/crawlab-ui/src/components/core/autoprobe/AutoProbeSelector.vue @@ -1,53 +1,32 @@ @@ -373,108 +209,15 @@ defineOptions({ name: 'ClAutoProbeDetailTabPatterns' }); height: 100%; display: flex; - .sidebar { - flex: 0 0 240px; - height: 100%; - overflow: hidden; - border-right: 1px solid var(--el-border-color); - display: flex; - flex-direction: column; - position: relative; - - .sidebar-actions { - height: 41px; - flex: 0 0 41px; - padding: 5px; - display: flex; - align-items: center; - gap: 5px; - color: var(--cl-primary-color); - border-bottom: 1px solid var(--el-border-color); - - & > * { - display: flex; - align-items: center; - } - - &:deep(.icon) { - cursor: pointer; - padding: 6px; - font-size: 14px; - width: 14px; - height: 14px; - border-radius: 50%; - } - - &:deep(.icon.selected), - &:deep(.icon:hover) { - background-color: var(--cl-primary-plain-color); - } - } - - .sidebar-search { - height: 38px; - flex: 0 0 38px; - border-bottom: 1px solid var(--el-border-color); - - &:deep(.el-input .el-input__wrapper) { - box-shadow: none; - border: none; - } - } - - .el-tree { - min-width: fit-content; - - &:deep(.el-tree-node__content:hover .actions .icon) { - display: flex !important; - } - - &:deep(.el-tree-node__content) { - width: 100%; - position: relative; - - .node-wrapper { - display: flex; - align-items: center; - position: relative; - width: 100%; - - .icon-wrapper { - width: 20px; - display: flex; - } - - .label { - flex: 0 0 auto; - } - } - - .actions { - display: flex; - gap: 5px; - position: absolute; - top: 0; - right: 5px; - height: 100%; - align-items: center; - - &:deep(.icon.more) { - display: none; - } - } - } - } - } - .content { flex: 1; - overflow: auto; + display: flex; + flex-direction: column; + overflow: hidden; - .detail-panel { - border: 1px solid var(--el-border-color); - border-radius: 4px; - padding: 16px; + .detail-container { + flex: 1; + overflow: auto; } .placeholder {