Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
a655c6d
adjust the component's main file name
FU-design Jul 14, 2025
7caf1c9
split the source into service and dependency
FU-design Jul 14, 2025
4659c26
add set new address page for set source
FU-design Jul 15, 2025
e81d4a9
remove invalid code
FU-design Jul 15, 2025
68ab0e1
fix CI
FU-design Jul 15, 2025
2e4d3ca
add FormBuilder component
FU-design Jul 17, 2025
fa3aa22
replace auto-form with form-builder
FU-design Jul 18, 2025
199f478
fix ci
FU-design Jul 18, 2025
3376323
bug fix
FU-design Jul 21, 2025
f36b29b
set the default rows for the textarea
FU-design Jul 22, 2025
b6e09f3
merge code
FU-design Jul 22, 2025
519acfd
add unit test for FormBuilder
FU-design Jul 22, 2025
3b33772
add unit test for FormBuilder
FU-design Jul 22, 2025
ff23864
ensure stack is retrieved on page refresh
FU-design Jul 22, 2025
3125e45
bump vite from 5.4.0 to 5.4.19
FU-design Jul 22, 2025
9f032e1
bump vue-i18n from 11.1.5 to 11.1.10
FU-design Jul 22, 2025
e8bc5d5
bump vue-tsc from ^1.8.5 to ^3.0.3
FU-design Jul 22, 2025
75c2f82
bump typescript from ^5.0.2 to ^5.8.3
FU-design Jul 22, 2025
27dadbb
add secondary confirmation before executing commands
FU-design Jul 23, 2025
e0fc569
add secondary confirmation before executing commands
FU-design Jul 23, 2025
4ba231b
fix bug in filtering service configs
FU-design Jul 24, 2025
ba53b52
bugfix
FU-design Jul 28, 2025
5619918
fix test
FU-design Jul 28, 2025
274bc48
fix import
FU-design Jul 28, 2025
868ba2b
reduce payload when updating component config in service
FU-design Jul 29, 2025
8884932
simplify useSteps composable
FU-design Jul 29, 2025
7155559
reduce payload when updating component config in service
FU-design Jul 29, 2025
eee2025
bugfix
FU-design Jul 30, 2025
7b91ef3
merge code
FU-design Jul 31, 2025
20155c4
merge code
FU-design Aug 6, 2025
50ffe7e
add unplugin-image-manifest to manage .png file
FU-design Aug 6, 2025
ab26cc3
run image map generation before build and dev
FU-design Aug 7, 2025
26348f2
remove unused file
FU-design Aug 7, 2025
6782506
update README.md file
FU-design Aug 7, 2025
24ceab8
change vite config
FU-design Aug 7, 2025
12923ff
change vite config
FU-design Aug 7, 2025
ba57287
unit for composables
FU-design Aug 7, 2025
67f8546
unit for composables
FU-design Aug 7, 2025
8ccdbeb
unit for composables
FU-design Aug 7, 2025
3587428
merge code
FU-design Aug 15, 2025
fa7b532
remove cli
FU-design Aug 15, 2025
9469a13
upgrade ESLint from v8 to v9
FU-design Aug 15, 2025
6119199
remove ImageManifest vite plugin
FU-design Aug 15, 2025
83fcceb
remove unused file
FU-design Aug 15, 2025
1e2da88
resolve scss warn
FU-design Aug 15, 2025
0d161b9
add license header for use-chart.test
FU-design Aug 15, 2025
5dc4aee
update README.md
FU-design Aug 18, 2025
e14a7c7
bug fix
FU-design Aug 18, 2025
507b737
fix header select
FU-design Aug 25, 2025
68935c3
add retry for last job on job page
FU-design Aug 25, 2025
cdd3feb
bug fix
FU-design Aug 26, 2025
b9aff8b
Merge remote-tracking branch 'origin/main' into bigtop-ui-feature
FU-design Aug 26, 2025
1551ff5
bugfix
FU-design Aug 26, 2025
0f95150
bugfix
FU-design Aug 26, 2025
eaf8a66
Merge remote-tracking branch 'origin/main' into bigtop-ui-feature
FU-design Aug 27, 2025
bdf79ed
fix ts config
FU-design Aug 29, 2025
ea21c24
merge code
FU-design Aug 29, 2025
b3f0139
Merge remote-tracking branch 'origin/main' into bigtop-ui-feature
FU-design Sep 4, 2025
6254289
add 'remove service' operate for Service
FU-design Sep 4, 2025
3ef743e
fix tsconfig.json
FU-design Sep 9, 2025
e57a6e3
bugfix
FU-design Sep 10, 2025
654ae1e
bugfix
FU-design Sep 10, 2025
32af3d6
bugfix
FU-design Sep 11, 2025
b198c1c
remove unused png
FU-design Sep 11, 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
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
*/

import request from '@/api/request.ts'
import type { HostListParams, HostParams, HostVO, HostVOList, InstalledStatusVO } from '@/api/hosts/types.ts'
import type { HostListParams, HostParams, HostVO, HostVOList, InstalledStatusVO } from '@/api/host/types'
import type { ComponentVO } from '@/api/component/types.ts'

export const getHosts = (params?: HostListParams): Promise<HostVOList> => {
Expand Down
12 changes: 9 additions & 3 deletions bigtop-manager-ui/src/api/service/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,10 @@ export const getService = (pathParams: ServiceParams) => {
return get<ServiceVO>(`/clusters/${pathParams.clusterId}/services/${pathParams.id}`)
}

export const removeService = (pathParams: ServiceParams) => {
return del<boolean>(`/clusters/${pathParams.clusterId}/services/${pathParams.id}`)
}

export const getServiceConfigs = (pathParams: ServiceParams) => {
return get<ServiceConfig[]>(`/clusters/${pathParams.clusterId}/services/${pathParams.id}/configs`)
}
Expand All @@ -57,11 +61,13 @@ export const takeServiceConfigSnapshot = (pathParams: ServiceParams, data: Snaps
)
}

export const recoveryServiceConfigSnapshot = (pathParams: SnapshotRecovery): Promise<ServiceConfig[]> => {
export const recoveryServiceConfigSnapshot = (pathParams: SnapshotRecovery) => {
return post<ServiceConfig[]>(
`/clusters/${pathParams.clusterId}/services/${pathParams.id}/config-snapshots/${pathParams.snapshotId}`
)
}
export const deleteServiceConfigSnapshot = (pathParams: SnapshotRecovery): Promise<boolean> => {
return del(`/clusters/${pathParams.clusterId}/services/${pathParams.id}/config-snapshots/${pathParams.snapshotId}`)
export const deleteServiceConfigSnapshot = (pathParams: SnapshotRecovery) => {
return del<boolean>(
`/clusters/${pathParams.clusterId}/services/${pathParams.id}/config-snapshots/${pathParams.snapshotId}`
)
}
14 changes: 10 additions & 4 deletions bigtop-manager-ui/src/components/common/button-group/index.vue
Original file line number Diff line number Diff line change
Expand Up @@ -67,10 +67,16 @@
</span>
</a-button>
<template #overlay>
<a-menu v-if="!item.disabled" @click="item.dropdownMenuClickEvent">
<a-menu-item v-for="actionItem in item.dropdownMenu" v-bind="actionItem" :key="actionItem.action">
{{ actionItem.text }}
</a-menu-item>
<a-menu
v-if="!item.disabled && item.dropdownMenuClickEvent"
@click="item.dropdownMenuClickEvent($event, payload)"
>
<template v-for="actionItem in item.dropdownMenu" :key="actionItem.action">
<a-menu-divider v-if="actionItem.divider" />
<a-menu-item v-bind="{ key: actionItem.action, ...actionItem }">
{{ actionItem.text }}
</a-menu-item>
</template>
</a-menu>
</template>
</a-dropdown>
Expand Down
9 changes: 5 additions & 4 deletions bigtop-manager-ui/src/components/common/button-group/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,20 +25,21 @@ type ShapeType = 'default' | 'circle' | 'round'
export interface DropdownMenu extends MenuItemProps {
action: string
text: string
divider?: boolean
}
export interface GroupItem<T = any> {
export interface GroupItem<T = any, R = any> {
icon?: string
tip?: string
text?: string
action?: T
hidden?: boolean | ((item?: GroupItem<T>, ...payload: any[]) => boolean)
hidden?: boolean | ((item?: GroupItem<T>, ...payload: R[]) => boolean)
type?: BtnType
shape?: ShapeType
disabled?: boolean
danger?: boolean
dropdownMenu?: DropdownMenu[]
clickEvent?: (item?: GroupItem<T>, ...payload: any[]) => void
dropdownMenuClickEvent?: MenuProps['onClick']
clickEvent?: (item?: GroupItem<T>, ...payload: R[]) => void
dropdownMenuClickEvent?: (info: Parameters<NonNullable<MenuProps['onClick']>>[0], ...payload: R[]) => void
}

export interface Props {
Expand Down
29 changes: 18 additions & 11 deletions bigtop-manager-ui/src/components/common/form-filter/index.vue
Original file line number Diff line number Diff line change
Expand Up @@ -24,22 +24,20 @@

interface FilterFormPops {
filterItems: FilterFormItem[]
filterValue?: Record<string, any>
}

const { t } = useI18n()
const props = defineProps<FilterFormPops>()
const emits = defineEmits(['filter'])
const { filterItems } = toRefs(props)
const props = withDefaults(defineProps<FilterFormPops>(), {
filterValue: () => {
return {}
}
})
const emits = defineEmits(['filter', 'update:filterValue'])
const { filterItems, filterValue } = toRefs(props)

const tempFilterParams = shallowRef({})
const filterParams = ref(
filterItems.value.reduce(
(pre, value) => {
return Object.assign(pre, { [`${value.key}`]: undefined })
},
{} as Record<string, any>
)
)
const filterParams = ref<Record<string, any>>({})

const formatFilterFormItems = computed(() =>
filterItems.value.map((v) => {
Expand Down Expand Up @@ -67,15 +65,24 @@

const confirmFilterParams = () => {
emits('filter', filterParams.value)
emits('update:filterValue', filterParams.value)
}

const onSelect: MenuProps['onSelect'] = ({ item, key }) => {
filterParams.value[`${item.id}`] = key
emits('update:filterValue', filterParams.value)
}

const resetFilter = (item: any) => {
filterParams.value[item.key] = undefined
emits('update:filterValue', filterParams.value)
}

onMounted(() => {
filterItems.value.forEach((item) => {
filterParams.value[item.key] = filterValue.value[item.key] ?? undefined
})
})
</script>

<template>
Expand Down
4 changes: 2 additions & 2 deletions bigtop-manager-ui/src/features/create-cluster/index.vue
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
<script setup lang="ts">
import { useMenuStore } from '@/store/menu'
import { message, Modal } from 'ant-design-vue'
import { getInstalledStatus, installDependencies } from '@/api/hosts'
import { getInstalledStatus, installDependencies } from '@/api/host'
import { execCommand } from '@/api/command'

import SvgIcon from '@/components/base/svg-icon/index.vue'
Expand All @@ -30,7 +30,7 @@
import HostManage from './components/host-manage.vue'
import CheckWorkflow from './components/check-workflow.vue'

import { type InstalledStatusVO, Status } from '@/api/hosts/types'
import { type InstalledStatusVO, Status } from '@/api/host/types'
import type { ClusterCommandReq, CommandRequest, CommandVO, HostReq } from '@/api/command/types'

const { t } = useI18n()
Expand Down
4 changes: 2 additions & 2 deletions bigtop-manager-ui/src/features/create-host/index.vue
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,13 @@
import { UploadOutlined } from '@ant-design/icons-vue'
import { useClusterStore } from '@/store/cluster'
import { uploadFile } from '@/api/upload-file'
import { updateHost } from '@/api/hosts'
import { updateHost } from '@/api/host'

import ParsedPreview from './components/parsed-preview.vue'

import type { UploadProps } from 'ant-design-vue'
import type { HostReq } from '@/api/command/types'
import type { HostParams, HostVO } from '@/api/hosts/types'
import type { HostParams, HostVO } from '@/api/host/types'
import type { FormItem } from '@/components/common/form-builder/types'

type ModeType = 'EDIT' | 'ADD'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,14 @@

<script setup lang="ts">
import { message, TableColumnType } from 'ant-design-vue'
import { getInstalledStatus, installDependencies } from '@/api/hosts'
import { getInstalledStatus, installDependencies } from '@/api/host'
import { useClusterStore } from '@/store/cluster'
import { generateRandomId } from '@/utils/tools'
import { execCommand } from '@/api/command'

import HostCreate from './index.vue'

import { type InstalledStatusVO, Status } from '@/api/hosts/types'
import { type InstalledStatusVO, Status } from '@/api/host/types'
import type { FilterConfirmProps, FilterResetProps } from 'ant-design-vue/es/table/interface'
import type { GroupItem } from '@/components/common/button-group/types'
import type { CommandRequest, HostReq } from '@/api/command/types'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,14 @@

<script setup lang="ts">
import { TableColumnType, Empty } from 'ant-design-vue'
import { getHosts } from '@/api/hosts'
import { getHosts } from '@/api/host'

import { useCreateServiceStore } from '@/store/create-service'
import { useServiceStore } from '@/store/service'

import TreeSelector from './tree-selector.vue'

import type { HostVO } from '@/api/hosts/types'
import type { HostVO } from '@/api/host/types'
import type { FilterConfirmProps, FilterResetProps, TableRowSelection } from 'ant-design-vue/es/table/interface'
import type { Key } from 'ant-design-vue/es/_util/type'

Expand Down
Loading
Loading