mirror of
https://github.com/1Panel-dev/MaxKB.git
synced 2025-12-30 01:32:49 +00:00
feat: add functionality to add internal shared tools with API integration
This commit is contained in:
parent
32dd4b41b6
commit
5ab5ab71a5
|
|
@ -2,7 +2,7 @@ import { Result } from '@/request/Result'
|
|||
import { get, post, del, put, exportFile } from '@/request/index'
|
||||
import { type Ref } from 'vue'
|
||||
import type { pageRequest } from '@/api/type/common'
|
||||
import type { toolData } from '@/api/type/tool'
|
||||
import type { toolData, AddInternalToolParam } from '@/api/type/tool'
|
||||
|
||||
const prefix = '/system/shared/tool'
|
||||
|
||||
|
|
@ -121,6 +121,17 @@ const postPylint: (code: string, loading?: Ref<boolean>) => Promise<Result<any>>
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* 工具商店-添加系统内置
|
||||
*/
|
||||
const addInternalTool: (
|
||||
tool_id: string,
|
||||
param: AddInternalToolParam,
|
||||
loading?: Ref<boolean>,
|
||||
) => Promise<Result<any>> = (tool_id, param, loading) => {
|
||||
return post(`${prefix}/${tool_id}/add_internal_tool`, param, undefined, loading)
|
||||
}
|
||||
|
||||
|
||||
export default {
|
||||
getToolList,
|
||||
|
|
@ -134,4 +145,5 @@ export default {
|
|||
exportTool,
|
||||
putToolIcon,
|
||||
delTool,
|
||||
addInternalTool
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import { Result } from '@/request/Result'
|
|||
import { get, post, del, put, exportFile } from '@/request/index'
|
||||
import { type Ref } from 'vue'
|
||||
import type { pageRequest } from '@/api/type/common'
|
||||
import type { toolData } from '@/api/type/tool'
|
||||
import type {AddInternalToolParam, toolData} from '@/api/type/tool'
|
||||
|
||||
|
||||
import useStore from '@/stores'
|
||||
|
|
@ -128,6 +128,17 @@ const postPylint: (code: string, loading?: Ref<boolean>) => Promise<Result<any>>
|
|||
return post(`${prefix.value}/pylint`, { code }, {}, loading)
|
||||
}
|
||||
|
||||
/**
|
||||
* 工具商店-添加系统内置
|
||||
*/
|
||||
const addInternalTool: (
|
||||
tool_id: string,
|
||||
param: AddInternalToolParam,
|
||||
loading?: Ref<boolean>,
|
||||
) => Promise<Result<any>> = (tool_id, param, loading) => {
|
||||
return post(`${prefix.value}/${tool_id}/add_internal_tool`, param, undefined, loading)
|
||||
}
|
||||
|
||||
|
||||
export default {
|
||||
getToolList,
|
||||
|
|
@ -141,4 +152,5 @@ export default {
|
|||
exportTool,
|
||||
putToolIcon,
|
||||
delTool,
|
||||
addInternalTool
|
||||
}
|
||||
|
|
|
|||
|
|
@ -287,7 +287,7 @@
|
|||
<InitParamDrawer ref="InitParamDrawerRef" @refresh="refresh" />
|
||||
<ToolFormDrawer ref="ToolFormDrawerRef" @refresh="refresh" :title="ToolDrawertitle" />
|
||||
<CreateFolderDialog ref="CreateFolderDialogRef" v-if="!isShared" />
|
||||
<ToolStoreDialog ref="toolStoreDialogRef" @refresh="refresh" />
|
||||
<ToolStoreDialog ref="toolStoreDialogRef" :api-type="apiType" @refresh="refresh" />
|
||||
<AddInternalToolDialog ref="AddInternalToolDialogRef" @refresh="confirmAddInternalTool" />
|
||||
<AuthorizedWorkspace
|
||||
ref="AuthorizedWorkspaceDialogRef"
|
||||
|
|
@ -319,7 +319,6 @@ import { loadSharedApi } from '@/utils/dynamics-api/shared-api'
|
|||
import permissionMap from '@/permission'
|
||||
import useStore from '@/stores'
|
||||
import { t } from '@/locales'
|
||||
import {loadPermissionApi} from "@/utils/dynamics-api/permission-api.ts";
|
||||
const route = useRoute()
|
||||
const { folder, user, tool } = useStore()
|
||||
onBeforeRouteLeave((to, from) => {
|
||||
|
|
|
|||
|
|
@ -68,13 +68,19 @@ import ToolCard from './ToolCard.vue'
|
|||
import { MsgSuccess } from '@/utils/message'
|
||||
import InternalDescDrawer from './InternalDescDrawer.vue'
|
||||
import AddInternalToolDialog from './AddInternalToolDialog.vue'
|
||||
import {loadSharedApi} from "@/utils/dynamics-api/shared-api.ts";
|
||||
|
||||
interface ToolCategory {
|
||||
id: string
|
||||
title: string
|
||||
tools: any[]
|
||||
}
|
||||
|
||||
const props = defineProps({
|
||||
apiType: {
|
||||
type: String as () => 'workspace' | 'systemShare' | 'systemManage',
|
||||
default: 'workspace'
|
||||
},
|
||||
})
|
||||
const emit = defineEmits(['refresh'])
|
||||
|
||||
const dialogVisible = ref(false)
|
||||
|
|
@ -171,7 +177,9 @@ function handleOpenAdd(data?: any, isEdit?: boolean) {
|
|||
const addLoading = ref(false)
|
||||
async function handleAdd(tool: any) {
|
||||
try {
|
||||
await ToolStoreApi.addInternalTool(tool.id, { name: tool.name, folder_id: folderId.value }, addLoading)
|
||||
await loadSharedApi({ type: 'tool', systemType: props.apiType })
|
||||
.addInternalTool(tool.id, { name: tool.name, folder_id: folderId.value }, addLoading)
|
||||
// await ToolStoreApi.addInternalTool(tool.id, { name: tool.name, folder_id: folderId.value }, addLoading)
|
||||
emit('refresh')
|
||||
MsgSuccess(t('common.addSuccess'))
|
||||
dialogVisible.value = false
|
||||
|
|
|
|||
Loading…
Reference in New Issue