Skip to content

Commit 823ac6b

Browse files
feat: Tool store
1 parent fad4ce9 commit 823ac6b

File tree

3 files changed

+47
-23
lines changed

3 files changed

+47
-23
lines changed

ui/src/components/card-box/index.vue

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
</div>
2121

2222
<div class="status-tag">
23-
<slot name="tag"> <!-- 放标签 --> </slot>
23+
<slot name="tag" :hoverShow="show"> <!-- 放标签 --> </slot>
2424
</div>
2525
</div>
2626
</slot>
@@ -80,6 +80,7 @@ function cardLeave() {
8080
function subHoveredEnter() {
8181
subHovered.value = true
8282
}
83+
8384
</script>
8485
<style lang="scss" scoped>
8586
.card-box {

ui/src/styles/component.scss

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,13 @@
236236
}
237237
}
238238

239+
.dot-success {
240+
height: 8px;
241+
width: 8px;
242+
background-color: var(--el-color-success);
243+
border-radius: 50%;
244+
}
245+
239246
// checkbox 一行一个样式
240247
.checkbox-group-block {
241248
.el-checkbox {

ui/src/views/tool/component/ToolListContainer.vue

Lines changed: 38 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -189,16 +189,23 @@
189189
{{ $t('common.creator') }}: {{ item.nick_name }}
190190
</el-text>
191191
</template>
192-
<template #tag>
192+
<template #tag="{ hoverShow }">
193193
<el-tag v-if="isShared" type="info" class="info-tag">
194194
{{ t('views.shared.title') }}
195195
</el-tag>
196-
<el-button text @click.stop v-if="
197-
showUpdateStoreTool(item) && !isShared && permissionPrecise.edit(item.id)
198-
" @click="updateStoreTool(item)"
199-
>
200-
<el-icon><Refresh /></el-icon>
201-
</el-button>
196+
<el-tooltip effect="dark" content="更新版本">
197+
<el-button
198+
text
199+
@click.stop
200+
v-if="
201+
showUpdateStoreTool(item) && !isShared && permissionPrecise.edit(item.id)
202+
"
203+
@click="updateStoreTool(item)"
204+
>
205+
<el-icon v-if="hoverShow"><Refresh /></el-icon>
206+
<div v-else class="dot-success"></div>
207+
</el-button>
208+
</el-tooltip>
202209
</template>
203210

204211
<template #footer>
@@ -255,7 +262,11 @@
255262
{{ $t('common.edit') }}
256263
</el-dropdown-item>
257264
<el-dropdown-item
258-
v-if="!item.template_id && permissionPrecise.copy(item.id) && item.tool_type!== 'MCP'"
265+
v-if="
266+
!item.template_id &&
267+
permissionPrecise.copy(item.id) &&
268+
item.tool_type !== 'MCP'
269+
"
259270
@click.stop="copyTool(item)"
260271
>
261272
<AppIcon iconName="app-copy" class="color-secondary"></AppIcon>
@@ -295,7 +306,11 @@
295306
{{ $t('views.shared.authorized_workspace') }}</el-dropdown-item
296307
>
297308
<el-dropdown-item
298-
v-if="!item.template_id && permissionPrecise.export(item.id) && item.tool_type!== 'MCP'"
309+
v-if="
310+
!item.template_id &&
311+
permissionPrecise.export(item.id) &&
312+
item.tool_type !== 'MCP'
313+
"
299314
@click.stop="exportTool(item)"
300315
>
301316
<AppIcon iconName="app-export" class="color-secondary"></AppIcon>
@@ -359,15 +374,15 @@ import ToolStoreDialog from '@/views/tool/toolStore/ToolStoreDialog.vue'
359374
import AddInternalToolDialog from '@/views/tool/toolStore/AddInternalToolDialog.vue'
360375
import MoveToDialog from '@/components/folder-tree/MoveToDialog.vue'
361376
import ResourceAuthorizationDrawer from '@/components/resource-authorization-drawer/index.vue'
362-
import McpToolConfigDialog from "@/views/tool/component/McpToolConfigDialog.vue";
377+
import McpToolConfigDialog from '@/views/tool/component/McpToolConfigDialog.vue'
363378
import { resetUrl } from '@/utils/common'
364379
import { MsgSuccess, MsgConfirm, MsgError } from '@/utils/message'
365380
import { SourceTypeEnum } from '@/enums/common'
366381
import { loadSharedApi } from '@/utils/dynamics-api/shared-api'
367382
import permissionMap from '@/permission'
368383
import useStore from '@/stores'
369384
import { t } from '@/locales'
370-
import ToolStoreApi from "@/api/tool/store.ts";
385+
import ToolStoreApi from '@/api/tool/store.ts'
371386
const route = useRoute()
372387
const { folder, user, tool } = useStore()
373388
onBeforeRouteLeave((to, from) => {
@@ -643,10 +658,9 @@ function confirmAddInternalTool(data?: any, isEdit?: boolean) {
643658
644659
const storeTools = ref<any[]>([])
645660
function getStoreToolList() {
646-
ToolStoreApi.getStoreToolList({ name: '' }, loading)
647-
.then((res: any) => {
648-
storeTools.value = res.data.apps
649-
})
661+
ToolStoreApi.getStoreToolList({ name: '' }, loading).then((res: any) => {
662+
storeTools.value = res.data.apps
663+
})
650664
}
651665
652666
function showUpdateStoreTool(item: any) {
@@ -663,20 +677,23 @@ function showUpdateStoreTool(item: any) {
663677
}
664678
665679
function updateStoreTool(item: any) {
666-
MsgConfirm(t('views.tool.toolStore.confirmTip') + item.name,
667-
t('views.tool.toolStore.updateStoreToolMessage'), {
680+
MsgConfirm(
681+
t('views.tool.toolStore.confirmTip') + item.name,
682+
t('views.tool.toolStore.updateStoreToolMessage'),
683+
{
668684
cancelButtonText: t('common.cancel'),
669685
confirmButtonText: t('common.confirm'),
670-
})
686+
},
687+
)
671688
.then(() => {
672689
const obj = {
673690
download_url: item.downloadUrl,
674691
download_callback_url: item.downloadCallbackUrl,
675692
icon: item.icon,
676693
versions: item.versions,
677-
label: item.label
694+
label: item.label,
678695
}
679-
loadSharedApi({type: 'tool', systemType: apiType.value})
696+
loadSharedApi({ type: 'tool', systemType: apiType.value })
680697
.updateStoreTool(item.id, obj, loading)
681698
.then(async (res: any) => {
682699
if (res?.data) {
@@ -688,8 +705,7 @@ function updateStoreTool(item: any) {
688705
getList()
689706
})
690707
})
691-
.catch(() => {
692-
})
708+
.catch(() => {})
693709
}
694710
695711
const elUploadRef = ref()

0 commit comments

Comments
 (0)