3 Commits

Author SHA1 Message Date
Hayden
8877c1599b prepare release 2.5.1 2025-02-24 11:09:08 +08:00
Hayden
965905305e fix: find subfolder incorrect (#154) 2025-02-24 11:07:43 +08:00
Hayden
312138f981 fix: auto open root folder (#151) 2025-02-22 18:30:29 +08:00
4 changed files with 29 additions and 9 deletions

View File

@@ -1,7 +1,7 @@
[project]
name = "comfyui-model-manager"
description = "Manage models: browsing, download and delete."
version = "2.5.0"
version = "2.5.1"
license = { file = "LICENSE" }
dependencies = ["markdownify"]

View File

@@ -193,7 +193,10 @@ const sortOrderOptions = ref(
const currentDataList = computed(() => {
let renderedList = dataTreeList.value
for (const folderItem of folderPaths.value) {
const found = findFolder(renderedList, folderItem.name)
const found = findFolder(renderedList, {
basename: folderItem.name,
pathIndex: folderItem.pathIndex,
})
renderedList = found?.children || []
}

View File

@@ -1,10 +1,11 @@
import { genModelFullName, useModels } from 'hooks/model'
import { cloneDeep, filter, find } from 'lodash'
import { BaseModel, Model, SelectOptions } from 'types/typings'
import { computed, ref } from 'vue'
import { computed, ref, watch } from 'vue'
export interface FolderPathItem {
name: string
pathIndex: number
icon?: string
onClick: () => void
children: SelectOptions[]
@@ -26,7 +27,7 @@ export type TreeItemNode = ModelTreeNode & {
}
export const useModelExplorer = () => {
const { data, folders, ...modelRest } = useModels()
const { data, folders, initialized, ...modelRest } = useModels()
const folderPaths = ref<FolderPathItem[]>([])
@@ -91,10 +92,11 @@ export const useModelExplorer = () => {
return [root]
})
function findFolder(list: ModelTreeNode[], name: string) {
return find(list, { isFolder: true, basename: name }) as
| ModelFolder
| undefined
function findFolder(
list: ModelTreeNode[],
feature: { basename: string; pathIndex: number },
) {
return find(list, { ...feature, isFolder: true }) as ModelFolder | undefined
}
function findFolders(list: ModelTreeNode[]) {
@@ -118,7 +120,12 @@ export const useModelExplorer = () => {
let levelFolders = findFolders(dataTreeList.value)
for (const [index, part] of pathParts.entries()) {
const currentFolder = findFolder(levelFolders, part)
const pathIndex = index < 2 ? 0 : item.pathIndex
const currentFolder = findFolder(levelFolders, {
basename: part,
pathIndex: pathIndex,
})
if (!currentFolder) {
break
}
@@ -126,6 +133,7 @@ export const useModelExplorer = () => {
levelFolders = findFolders(currentFolder.children ?? [])
folderItems.push({
name: currentFolder.basename,
pathIndex: pathIndex,
icon: index === 0 ? 'pi pi-desktop' : '',
onClick: () => {
openFolder(currentFolder)
@@ -144,6 +152,12 @@ export const useModelExplorer = () => {
folderPaths.value = folderItems
}
watch(initialized, (val) => {
if (val) {
openFolder(dataTreeList.value[0])
}
})
return {
folders,
folderPaths,

View File

@@ -50,10 +50,12 @@ export const useModels = defineStore('models', (store) => {
const loading = useLoading()
const folders = ref<ModelFolder>({})
const initialized = ref(false)
const refreshFolders = async () => {
return request('/models').then((resData) => {
folders.value = resData
initialized.value = true
})
}
@@ -233,6 +235,7 @@ export const useModels = defineStore('models', (store) => {
}
return {
initialized: initialized,
folders: folders,
data: models,
refresh: refreshAllModels,