feat: add tooltip for model card and folder path (#149)
This commit is contained in:
@@ -68,13 +68,21 @@
|
|||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
<ModelCard
|
<ModelCard
|
||||||
:model="rowItem"
|
|
||||||
v-for="rowItem in item.row"
|
v-for="rowItem in item.row"
|
||||||
|
:model="rowItem"
|
||||||
:key="genModelKey(rowItem)"
|
:key="genModelKey(rowItem)"
|
||||||
:style="{
|
:style="{
|
||||||
width: `${cardSize.width}px`,
|
width: `${cardSize.width}px`,
|
||||||
height: `${cardSize.height}px`,
|
height: `${cardSize.height}px`,
|
||||||
}"
|
}"
|
||||||
|
v-tooltip.top="{
|
||||||
|
value: getFullPath(rowItem),
|
||||||
|
disabled: folderPaths.length < 2,
|
||||||
|
autoHide: false,
|
||||||
|
showDelay: 800,
|
||||||
|
hideDelay: 300,
|
||||||
|
pt: { root: { style: { zIndex: 2100, maxWidth: '32rem' } } },
|
||||||
|
}"
|
||||||
@dblclick="openItem(rowItem, $event)"
|
@dblclick="openItem(rowItem, $event)"
|
||||||
@contextmenu.stop.prevent="openItemContext(rowItem, $event)"
|
@contextmenu.stop.prevent="openItemContext(rowItem, $event)"
|
||||||
></ModelCard>
|
></ModelCard>
|
||||||
@@ -137,8 +145,14 @@ const gutter = {
|
|||||||
y: 32,
|
y: 32,
|
||||||
}
|
}
|
||||||
|
|
||||||
const { dataTreeList, folderPaths, findFolder, openFolder, openModelDetail } =
|
const {
|
||||||
useModelExplorer()
|
dataTreeList,
|
||||||
|
folderPaths,
|
||||||
|
findFolder,
|
||||||
|
openFolder,
|
||||||
|
openModelDetail,
|
||||||
|
getFullPath,
|
||||||
|
} = useModelExplorer()
|
||||||
const { cardSize, cardSizeMap, cardSizeFlag, dialog: settings } = useConfig()
|
const { cardSize, cardSizeMap, cardSizeFlag, dialog: settings } = useConfig()
|
||||||
|
|
||||||
const showToolbar = ref(false)
|
const showToolbar = ref(false)
|
||||||
|
|||||||
@@ -55,7 +55,13 @@
|
|||||||
}"
|
}"
|
||||||
class="group/card cursor-pointer !p-0"
|
class="group/card cursor-pointer !p-0"
|
||||||
@click="openModelDetail(model)"
|
@click="openModelDetail(model)"
|
||||||
v-tooltip.top="{ value: model.basename, disabled: showModelName }"
|
v-tooltip.top="{
|
||||||
|
value: getFullPath(model),
|
||||||
|
autoHide: false,
|
||||||
|
showDelay: 800,
|
||||||
|
hideDelay: 300,
|
||||||
|
pt: { root: { style: { zIndex: 2100, maxWidth: '32rem' } } },
|
||||||
|
}"
|
||||||
>
|
>
|
||||||
<template #name>
|
<template #name>
|
||||||
<div
|
<div
|
||||||
@@ -139,7 +145,7 @@ const {
|
|||||||
dialog: settings,
|
dialog: settings,
|
||||||
} = useConfig()
|
} = useConfig()
|
||||||
|
|
||||||
const { data, folders, openModelDetail } = useModels()
|
const { data, folders, openModelDetail, getFullPath } = useModels()
|
||||||
const { t } = useI18n()
|
const { t } = useI18n()
|
||||||
|
|
||||||
const toolbarContainer = ref<HTMLElement | null>(null)
|
const toolbarContainer = ref<HTMLElement | null>(null)
|
||||||
|
|||||||
@@ -84,7 +84,17 @@
|
|||||||
<td class="border-r bg-gray-300 px-4 dark:bg-gray-800">
|
<td class="border-r bg-gray-300 px-4 dark:bg-gray-800">
|
||||||
{{ $t(`info.${item.key}`) }}
|
{{ $t(`info.${item.key}`) }}
|
||||||
</td>
|
</td>
|
||||||
<td class="overflow-hidden text-ellipsis break-all px-4">
|
<td
|
||||||
|
class="overflow-hidden text-ellipsis break-all px-4"
|
||||||
|
v-tooltip.top="{
|
||||||
|
value: item.display,
|
||||||
|
disabled: !['pathIndex', 'basename'].includes(item.key),
|
||||||
|
autoHide: false,
|
||||||
|
showDelay: 800,
|
||||||
|
hideDelay: 300,
|
||||||
|
pt: { root: { style: { zIndex: 2100, maxWidth: '32rem' } } },
|
||||||
|
}"
|
||||||
|
>
|
||||||
{{ item.display }}
|
{{ item.display }}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@@ -226,6 +226,12 @@ export const useModels = defineStore('models', (store) => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getFullPath(model: BaseModel) {
|
||||||
|
const fullname = genModelFullName(model)
|
||||||
|
const prefixPath = folders.value[model.type]?.[model.pathIndex]
|
||||||
|
return [prefixPath, fullname].filter(Boolean).join('/')
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
folders: folders,
|
folders: folders,
|
||||||
data: models,
|
data: models,
|
||||||
@@ -233,6 +239,7 @@ export const useModels = defineStore('models', (store) => {
|
|||||||
remove: deleteModel,
|
remove: deleteModel,
|
||||||
update: updateModel,
|
update: updateModel,
|
||||||
openModelDetail: openModelDetail,
|
openModelDetail: openModelDetail,
|
||||||
|
getFullPath: getFullPath,
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user