mirror of
https://github.com/1Panel-dev/MaxKB.git
synced 2025-12-28 05:32:45 +00:00
145 lines
3.2 KiB
TypeScript
145 lines
3.2 KiB
TypeScript
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 useStore from '@/stores'
|
|
const prefix: any = { _value: '/workspace/' }
|
|
Object.defineProperty(prefix, 'value', {
|
|
get: function () {
|
|
const { user } = useStore()
|
|
return this._value + user.getWorkspaceId() + '/tool'
|
|
},
|
|
})
|
|
|
|
/**
|
|
* 工具列表带分页(无分页)
|
|
* @params 参数 {folder_id: string}
|
|
*/
|
|
const getToolList: (data?: any, loading?: Ref<boolean>) => Promise<Result<Array<any>>> = (
|
|
data,
|
|
loading,
|
|
) => {
|
|
return get(`${prefix.value}`, data, loading)
|
|
}
|
|
|
|
/**
|
|
* 工具列表带分页
|
|
* @param 参数
|
|
* param {
|
|
"folder_id": "string",
|
|
"name": "string",
|
|
"tool_type": "string",
|
|
}
|
|
*/
|
|
const getToolListPage: (
|
|
page: pageRequest,
|
|
param?: any,
|
|
loading?: Ref<boolean>,
|
|
) => Promise<Result<any>> = (page, param, loading) => {
|
|
return get(`${prefix.value}/${page.current_page}/${page.page_size}`, param, loading)
|
|
}
|
|
|
|
/**
|
|
* 创建工具
|
|
* @param 参数
|
|
*/
|
|
const postTool: (data: toolData, loading?: Ref<boolean>) => Promise<Result<any>> = (
|
|
data,
|
|
loading,
|
|
) => {
|
|
return post(`${prefix.value}`, data, undefined, loading)
|
|
}
|
|
|
|
/**
|
|
* 修改工具
|
|
* @param 参数
|
|
|
|
*/
|
|
const putTool: (tool_id: string, data: toolData, loading?: Ref<boolean>) => Promise<Result<any>> = (
|
|
tool_id,
|
|
data,
|
|
loading,
|
|
) => {
|
|
return put(`${prefix.value}/${tool_id}`, data, undefined, loading)
|
|
}
|
|
|
|
/**
|
|
* 获取工具详情
|
|
* @param tool_id 工具id
|
|
* @param loading 加载器
|
|
* @returns 函数详情
|
|
*/
|
|
const getToolById: (tool_id: string, loading?: Ref<boolean>) => Promise<Result<any>> = (
|
|
tool_id,
|
|
loading,
|
|
) => {
|
|
return get(`${prefix.value}/${tool_id}`, undefined, loading)
|
|
}
|
|
|
|
/**
|
|
* 删除工具
|
|
* @param 参数 tool_id
|
|
*/
|
|
const delTool: (
|
|
tool_id: string,
|
|
loading?: Ref<boolean>
|
|
) => Promise<Result<boolean>> = (tool_id, loading) => {
|
|
return del(`${prefix.value}/${tool_id}`, undefined, {}, loading)
|
|
}
|
|
|
|
const putToolIcon: (
|
|
id: string,
|
|
data: any,
|
|
loading?: Ref<boolean>
|
|
) => Promise<Result<any>> = (id, data, loading) => {
|
|
return put(`${prefix.value}/${id}/edit_icon`, data, undefined, loading)
|
|
}
|
|
|
|
const exportTool = (id: string, name: string, loading?: Ref<boolean>) => {
|
|
return exportFile(name + '.tool', `${prefix.value}/${id}/export`, undefined, loading)
|
|
}
|
|
|
|
/**
|
|
* 调试工具
|
|
* @param 参数
|
|
|
|
*/
|
|
const postToolDebug: (data: any, loading?: Ref<boolean>) => Promise<Result<any>> = (
|
|
data: any,
|
|
loading,
|
|
) => {
|
|
return post(`${prefix.value}/debug`, data, undefined, loading)
|
|
}
|
|
|
|
const postImportTool: (data: any, loading?: Ref<boolean>) => Promise<Result<any>> = (
|
|
data,
|
|
loading,
|
|
) => {
|
|
return post(`${prefix.value}/import`, data, undefined, loading)
|
|
}
|
|
|
|
const postPylint: (code: string, loading?: Ref<boolean>) => Promise<Result<any>> = (
|
|
code,
|
|
loading,
|
|
) => {
|
|
return post(`${prefix.value}/pylint`, { code }, {}, loading)
|
|
}
|
|
|
|
|
|
export default {
|
|
getToolList,
|
|
getToolListPage,
|
|
putTool,
|
|
getToolById,
|
|
postTool,
|
|
postToolDebug,
|
|
postImportTool,
|
|
postPylint,
|
|
exportTool,
|
|
putToolIcon,
|
|
delTool,
|
|
}
|