Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
d7afe91
feat: add incremental validation
cn-xufei Mar 15, 2025
ea468c7
feat: enhance TaskInspect and DataValidationDialog components with im…
cn-xufei Mar 25, 2025
b5c311d
feat: replace right arrow icon with new ArrowToTopRightLinear icon an…
cn-xufei Mar 27, 2025
1bd388e
feat: add hover effect for table rows and improve InspectDetailDialog…
cn-xufei Mar 28, 2025
4944275
refactor: update inspect list style
cn-xufei Mar 28, 2025
56befee
refactor: enhance localization and improve UI text for inspection com…
cn-xufei Mar 28, 2025
39f3ca3
fix: correct class binding for target field in InspectDetailDialog to…
cn-xufei Mar 28, 2025
e5bdfd9
fix: update localization text for consistency in inspection details
cn-xufei Mar 28, 2025
6a7f440
refactor: enhance loading indicators and localization in InspectDetai…
cn-xufei Mar 28, 2025
1551bbd
feat: implement automatic data fetching loop in TaskInspect component
cn-xufei Mar 28, 2025
5ed10f9
feat: add data validation configuration prompt and enhance TaskInspec…
cn-xufei Mar 28, 2025
18a5097
refactor: simplify TaskInspect component by removing unused imports a…
cn-xufei Mar 28, 2025
21e9cbe
refactor: update InspectDetailDialog styling and localization for imp…
cn-xufei Mar 28, 2025
08078eb
refactor: conditionally render validation features in TopHeader and B…
cn-xufei Mar 31, 2025
a4da046
Merge develop
cn-xufei Apr 29, 2025
38296ec
refactor: restructure DataValidationDialog component and integrate in…
cn-xufei Apr 29, 2025
73f5c8e
refactor: enhance MigrationMonitor and DataValidationDialog components
cn-xufei May 7, 2025
601b89c
refactor: update imports and remove unused components in DAAS and Clo…
cn-xufei May 7, 2025
f9cb0da
refactor: optimize data handling and improve component logic in NodeL…
cn-xufei May 8, 2025
d201ee4
refactor: implement overflow detection in NodeLog component
cn-xufei May 8, 2025
9290c95
feat: add inspect record fetch
cn-xufei May 8, 2025
98eea34
feat: record list add ts sortable
cn-xufei May 8, 2025
a105477
style: update record table style
cn-xufei May 8, 2025
42d787a
refactor: comment out unused section in TaskInspect.vue for cleaner code
cn-xufei May 12, 2025
5c8fee1
refactor: migrate TaskInspect.vue to Composition API and enhance data…
cn-xufei May 12, 2025
33d4419
refactor: improve row click handling and update table display in Insp…
cn-xufei May 12, 2025
397b0b1
Merge branch 'develop' into feat/TAP-5855-incremental-verification
cn-xufei May 12, 2025
4bb2f17
style: set minimum width for TaskInspect component in BottomPanel.vue
cn-xufei May 12, 2025
5da4818
chore: update dependencies and enhance component styles
cn-xufei May 14, 2025
0949804
refactor: update TaskInspect component and localization strings for c…
cn-xufei May 14, 2025
089bd03
refactor: update AlarmNotification and AlarmSetting components for im…
cn-xufei May 14, 2025
5b46ca2
chore: update Vue dependency and enhance InspectDetailDialog component
cn-xufei May 15, 2025
1861674
style: update TaskInspect component to enhance visual consistency
cn-xufei May 15, 2025
35da1e6
style: update InspectDetailDialog component for visual consistency
cn-xufei May 15, 2025
2d43daa
refactor: update role management components for improved clarity and …
cn-xufei May 15, 2025
a9223dd
style: enhance button styles in element.scss for improved consistency
cn-xufei May 15, 2025
18d0203
feat: add ping timeout status to TaskInspect component and localizati…
cn-xufei May 15, 2025
db4278b
refactor: update color class logic in TaskInspect component for accur…
cn-xufei May 15, 2025
421edc1
refactor: enhance confirmation dialog styling and functionality acros…
cn-xufei May 16, 2025
2b46abf
refactor: update TaskInspect and SettingPanel components for improved…
cn-xufei May 16, 2025
8b49e7f
refactor: remove unused column definitions in TaskInspect component f…
cn-xufei May 17, 2025
010dcf3
refactor: update dependencies and improve code structure in daas and …
cn-xufei May 19, 2025
ad4233e
style: adjust button spacing in TablePage for improved layout
cn-xufei May 19, 2025
d5c69ab
refactor: enhance user interface and functionality in various components
cn-xufei May 20, 2025
31e1fe4
refactor: update pnpm-lock and enhance component functionality
cn-xufei May 20, 2025
5f1e11d
feat: add new Element Plus components to TypeScript definitions
cn-xufei May 20, 2025
29314b0
style: add new margin utility class and update component spacing
cn-xufei May 20, 2025
3577b6d
refactor: update FieldRenameProcessor for improved button functionali…
cn-xufei May 20, 2025
b986a0b
refactor: optimize tag selection logic and enhance drag-and-drop func…
cn-xufei May 20, 2025
8937c2e
style: update table selection styles and adjust column width
cn-xufei May 20, 2025
3dbe5e8
chore: update package.json and pnpm-lock.yaml to include new patched …
cn-xufei May 21, 2025
e7d02c0
feat: enhance TypeScript definitions and improve form layout
cn-xufei May 22, 2025
ea2df36
chore: update dependencies and improve code structure
cn-xufei May 22, 2025
2f871fb
chore: update dependencies and improve component structure
cn-xufei May 22, 2025
a6771f1
Merge pull request #405 from tapdata/feat/TAP-5855-incremental-verifi…
cn-xufei May 22, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions apps/daas/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,9 @@
"nodemon": "^2.0.7",
"rollup-plugin-visualizer": "^5.14.0",
"sass": "^1.86.2",
"unplugin-auto-import": "^0.17.6",
"unplugin-auto-import": "^19.2.0",
"unplugin-icons": "^0.19.0",
"unplugin-vue-components": "^0.27.0",
"unplugin-vue-components": "^28.5.0",
"vite": "^6.2.4",
"vue-tsc": "^2.0.21"
},
Expand Down
1 change: 1 addition & 0 deletions apps/daas/src/auto-imports.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
// @ts-nocheck
// noinspection JSUnusedGlobalSymbols
// Generated by unplugin-auto-import
// biome-ignore lint: disable
export {}
declare global {
const ElIcon: typeof import('element-plus/es')['ElIcon']
Expand Down
2 changes: 1 addition & 1 deletion apps/daas/src/components.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ declare module 'vue' {
ElDropdown: typeof import('element-plus/es')['ElDropdown']
ElDropdownItem: typeof import('element-plus/es')['ElDropdownItem']
ElDropdownMenu: typeof import('element-plus/es')['ElDropdownMenu']
ElEmpty: typeof import('element-plus/es')['ElEmpty']
ElForm: typeof import('element-plus/es')['ElForm']
ElFormItem: typeof import('element-plus/es')['ElFormItem']
ElHeader: typeof import('element-plus/es')['ElHeader']
Expand Down Expand Up @@ -65,6 +64,7 @@ declare module 'vue' {
ElRow: typeof import('element-plus/es')['ElRow']
ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
ElSelect: typeof import('element-plus/es')['ElSelect']
ElSelectLoading: typeof import('element-plus/es')['ElSelectLoading']
ElSelectV2: typeof import('element-plus/es')['ElSelectV2']
ElSkeleton: typeof import('element-plus/es')['ElSkeleton']
ElSkeletonItem: typeof import('element-plus/es')['ElSkeletonItem']
Expand Down
11 changes: 10 additions & 1 deletion apps/daas/src/layouts/Header.vue
Original file line number Diff line number Diff line change
Expand Up @@ -244,7 +244,11 @@ defineExpose({
</script>

<template>
<ElHeader v-if="!IS_IFRAME" class="flex align-center gap-4" height="64px">
<ElHeader
v-if="!IS_IFRAME"
class="flex align-center gap-4 layout-header"
height="64px"
>
<a
v-if="isOP"
class="logo w-auto text-white flex align-center gap-2"
Expand Down Expand Up @@ -379,6 +383,11 @@ defineExpose({
</template>

<style lang="scss" scoped>
.layout-header {
:deep(.el-button .el-icon:only-child) {
color: var(--icon-n1);
}
}
.divider {
height: 1.8em;
border-color: rgba(60, 60, 67, 0.12);
Expand Down
157 changes: 80 additions & 77 deletions apps/daas/src/views/user/List.vue
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { roleApi, roleMappingsApi, usersApi } from '@tap/api'
import { TablePage } from '@tap/business'

import PageContainer from '@tap/business/src/components/PageContainer.vue'
import { FilterBar } from '@tap/component'
import { DownBoldOutlined, FilterBar } from '@tap/component'
import dayjs from 'dayjs'
import { escapeRegExp } from 'lodash-es'

Expand All @@ -12,6 +12,7 @@ export default {
PageContainer,
TablePage,
FilterBar,
DownBoldOutlined,
},
data() {
return {
Expand Down Expand Up @@ -344,14 +345,18 @@ export default {

// 选择分类
handleSelectTag() {
const tagList = {}
const tagList = []
const tagMap = {}

this.multipleSelection.forEach((row) => {
if (row.listtags && row.listtags.length > 0) {
tagList[row.listtags[0].id] = {
value: row.listtags[0].value,
row.listtags.forEach((item) => {
if (!tagMap[item.id]) {
tagList.push(item)
tagMap[item.id] = true
}
}
})
})

return tagList
},
// 分类设置保存
Expand Down Expand Up @@ -655,40 +660,6 @@ export default {
<template>
<PageContainer>
<template #actions>
<el-button
v-show="multipleSelection.length > 0"
v-readonlybtn="'user_category_application'"
class="btn"
@click="$refs.table.showClassify(handleSelectTag())"
>
<span> {{ $t('public_button_bulk_tag') }}</span>
</el-button>
<el-dropdown
v-show="multipleSelection.length > 0"
v-readonlybtn="'user_edition'"
@command="handleCommand($event)"
>
<el-button class="btn btn-dropdowm">
<i class="iconfont icon-piliang back-btn-icon" />
<span> {{ $t('public_button_bulk_operation') }}</span>
</el-button>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item v-if="$has('user_edition')" command="activated">
{{ $t('user_list_bulk_activation') }}
</el-dropdown-item>
<el-dropdown-item v-if="$has('user_edition')" command="rejected">{{
$t('user_list_bulk_freeze')
}}</el-dropdown-item>
<el-dropdown-item
v-if="$has('user_edition')"
command="notActivated"
>
{{ $t('user_list_bulk_check') }}
</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
<el-button
v-readonlybtn="'new_model_creation'"
class="btn btn-create"
Expand All @@ -702,16 +673,35 @@ export default {
<TablePage
ref="table"
row-key="id"
class="user-list"
:classify="{ authority: 'user_category_management', types: ['user'] }"
class="user-table-page"
:classify="{
authority: 'user_category_management',
types: ['user'],
hideIcon: true,
}"
:remote-method="getData"
@selection-change="handleSelectionChange"
@classify-submit="handleOperationClassify"
@sort-change="handleSortTable"
>
<template #nav>
<div class="tapNav">
<ElTabs v-model="activePanel" @tab-change="handleTapClick">
<template #nav="{ openClassify }">
<div class="tapNav position-relative">
<el-button
class="position-absolute z-10 start-0"
text
style="top: 4px"
@click="openClassify"
>
<template #icon>
<VIcon>expand-list</VIcon>
</template>
</el-button>

<ElTabs
v-model="activePanel"
style="--el-tabs-padding-left: 36px; --el-tabs-header-height: 36px"
@tab-change="handleTapClick"
>
<ElTabPane
v-for="item in muneList"
:key="item.icon"
Expand Down Expand Up @@ -757,6 +747,45 @@ export default {
</div>
</template>

<template #multipleSelectionActions>
<el-button
v-readonlybtn="'user_category_application'"
class="btn"
@click="$refs.table.showClassify(handleSelectTag())"
>
<span> {{ $t('public_button_bulk_tag') }}</span>
</el-button>
<el-dropdown
v-readonlybtn="'user_edition'"
@command="handleCommand($event)"
>
<el-button class="btn btn-dropdowm">
<span> {{ $t('public_button_bulk_operation') }}</span>
<el-icon class="ml-1">
<DownBoldOutlined />
</el-icon>
</el-button>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item v-if="$has('user_edition')" command="activated">
{{ $t('user_list_bulk_activation') }}
</el-dropdown-item>
<el-dropdown-item
v-if="$has('user_edition')"
command="rejected"
>{{ $t('user_list_bulk_freeze') }}</el-dropdown-item
>
<el-dropdown-item
v-if="$has('user_edition')"
command="notActivated"
>
{{ $t('user_list_bulk_check') }}
</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
</template>

<el-table-column type="selection" width="45" :reserve-selection="true" />
<el-table-column
:label="$t('user_list_user_name')"
Expand Down Expand Up @@ -1039,6 +1068,12 @@ export default {
</template>

<style lang="scss" scoped>
.user-table-page {
:deep(.classification) {
margin-top: -6px !important;
}
}

.user-list-wrap {
.tapNav {
:deep(.el-tabs__header) {
Expand Down Expand Up @@ -1078,35 +1113,3 @@ export default {
}
}
</style>

<style lang="scss">
.user-list-wrap {
.table-page-container {
.table-page-body {
.table-page-topbar {
padding-inline: 16px;
background-color: map.get($bgColor, white);
}
.el-table,
.el-pagination {
padding-inline: 16px;
box-sizing: border-box;
overflow: hidden;
}
.table-page-pagination {
margin-top: 0;
//padding: 5px 20px;
background-color: map.get($bgColor, white);
box-sizing: border-box;
}
.status {
padding: 5px 10px;
border-radius: 4px;
}
}
}
.classification {
margin-left: 16px;
}
}
</style>
1 change: 0 additions & 1 deletion apps/daas/src/vuex/modules/feature.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import { licensesApi } from '@tap/api'
import { SettingList } from '@/router/menu'

const MENU_FEATURE_MAP = {
dataService: 'dataService',
Expand Down
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,8 @@
"vue-virtual-scroller": "2.0.0-beta.8"
},
"patchedDependencies": {
"@formily/element-plus@1.1.0": "patches/@formily__element-plus@1.1.0.patch"
"@formily/element-plus@1.1.0": "patches/@formily__element-plus@1.1.0.patch",
"@formily/vue@2.3.3": "patches/@formily__vue@2.3.3.patch"
}
},
"prettier": "@sxzz/prettier-config"
Expand Down
36 changes: 25 additions & 11 deletions packages/api/src/Connections.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import Http from './Http'
import { isPlainObj } from '@tap/shared'
import Http from './Http'

export default class Connections extends Http {
constructor() {
Expand All @@ -8,10 +8,10 @@ export default class Connections extends Http {
get(params = {}, filter) {
if (Array.isArray(params)) {
filter = typeof filter === 'object' ? JSON.stringify(filter) : filter
let qs = filter ? '?filter=' + encodeURIComponent(filter) : ''
return this.axios.get(this.url + '/' + params.join('/') + qs)
const qs = filter ? `?filter=${encodeURIComponent(filter)}` : ''
return this.axios.get(`${this.url}/${params.join('/')}${qs}`)
} else if (typeof params === 'string') {
return this.axios.get(this.url + '/' + params, { params: filter })
return this.axios.get(`${this.url}/${params}`, { params: filter })
}

const config = { params }
Expand All @@ -23,12 +23,12 @@ export default class Connections extends Http {
customQuery(id: string, params: { [key: string]: unknown }) {
let url = `${this.url}/${id}` + '/customQuery?'
for (const item in params) {
url += item + '=' + params[item] + '&'
url += `${item}=${params[item]}&`
}
return this.axios.get(url)
}
copy(id: string, params: unknown) {
return this.axios.post(this.url + '/' + id + '/copy', params)
return this.axios.post(`${this.url}/${id}/copy`, params)
}
batchUpdateListtags(params: unknown) {
return this.axios.patch(`${this.url}/batchUpdateListtags`, params)
Expand All @@ -50,17 +50,25 @@ export default class Connections extends Http {
return this.axios.patch(`${this.url}/${id}`, params)
}
findAll(filter: unknown) {
return this.axios.get(`${this.url}/findAll?filter=` + encodeURIComponent(JSON.stringify(filter)))
return this.axios.get(
`${this.url}/findAll?filter=${encodeURIComponent(
JSON.stringify(filter),
)}`,
)
}
listAll(filter: unknown) {
return this.axios.get(`${this.url}/listAll?filter=` + encodeURIComponent(JSON.stringify(filter)))
return this.axios.get(
`${this.url}/listAll?filter=${encodeURIComponent(
JSON.stringify(filter),
)}`,
)
}
checkConnectionTask(id: string) {
return this.axios.get(`${this.url}/task/` + id + '/10')
return this.axios.get(`${this.url}/task/${id}/10`)
}

getStats() {
return this.axios.get(this.url + '/stats')
return this.axios.get(`${this.url}/stats`)
}
create(params: unknown, urlParams: any) {
let url = this.url
Expand All @@ -73,7 +81,13 @@ export default class Connections extends Http {
return this.axios.get(`${this.url}/${connectionId}/heartbeat-task`)
}
usingDigginTaskByConnectionId(connectionId) {
return this.axios.get(`${this.url}/${connectionId}/usingDigginTaskByConnectionId`)
return this.axios.get(
`${this.url}/${connectionId}/usingDigginTaskByConnectionId`,
)
}

getDatabaseTypes() {
return this.axios.get(`${this.url}/databaseTypes`)
}
}

Expand Down
Loading
Loading