mirror of
https://gitee.com/mirrors/AllinSSL.git
synced 2026-03-14 02:20:53 +08:00
【初始化】前端工程项目
This commit is contained in:
51
frontend/apps/allin-ssl/src/api/access.ts
Normal file
51
frontend/apps/allin-ssl/src/api/access.ts
Normal file
@@ -0,0 +1,51 @@
|
||||
import { useApi } from './index'
|
||||
import type {
|
||||
AccessListParams,
|
||||
AccessListResponse,
|
||||
AddAccessParams,
|
||||
UpdateAccessParams,
|
||||
DeleteAccessParams,
|
||||
GetAccessAllListParams,
|
||||
GetAccessAllListResponse,
|
||||
} from '../types/access'
|
||||
import type { AxiosResponseData } from '../types/public'
|
||||
|
||||
/**
|
||||
* @description 获取授权列表
|
||||
* @param {AccessListParams} [params] 请求参数
|
||||
* @returns {Promise<AxiosResponse<AccessListResponse>>} 授权列表
|
||||
*/
|
||||
export const getAccessList = (params?: AccessListParams) =>
|
||||
useApi<AccessListResponse, AccessListParams>('/v1/access/get_list', params)
|
||||
|
||||
/**
|
||||
* @description 新增授权
|
||||
* @param {AddAccessParams<string>} [params] 请求参数
|
||||
* @returns {Promise<AxiosResponse<AxiosResponseData>>} 新增结果
|
||||
*/
|
||||
export const addAccess = (params?: AddAccessParams<string>) =>
|
||||
useApi<AxiosResponseData, AddAccessParams<string>>('/v1/access/add_access', params)
|
||||
|
||||
/**
|
||||
* @description 修改授权
|
||||
* @param {UpdateAccessParams<string>} [params] 请求参数
|
||||
* @returns {Promise<AxiosResponse<AxiosResponseData>>} 修改结果
|
||||
*/
|
||||
export const updateAccess = (params?: UpdateAccessParams<string>) =>
|
||||
useApi<AxiosResponseData, UpdateAccessParams<string>>('/v1/access/upd_access', params)
|
||||
|
||||
/**
|
||||
* @description 删除授权
|
||||
* @param {DeleteAccessParams} [params] 请求参数
|
||||
* @returns {Promise<AxiosResponse<AxiosResponseData>>} 删除结果
|
||||
*/
|
||||
export const deleteAccess = (params?: DeleteAccessParams) =>
|
||||
useApi<AxiosResponseData, DeleteAccessParams>('/v1/access/del_access', params)
|
||||
|
||||
/**
|
||||
* @description 获取DNS提供商列表
|
||||
* @param {GetAccessAllListParams} [params] 请求参数
|
||||
* @returns {Promise<AxiosResponse<GetAccessAllListResponse>>} 工作流 dns 配置
|
||||
*/
|
||||
export const getAccessAllList = (params?: GetAccessAllListParams) =>
|
||||
useApi<GetAccessAllListResponse, GetAccessAllListParams>('/v1/access/get_all', params)
|
||||
56
frontend/apps/allin-ssl/src/api/cert.ts
Normal file
56
frontend/apps/allin-ssl/src/api/cert.ts
Normal file
@@ -0,0 +1,56 @@
|
||||
import { useApi } from './index'
|
||||
import type {
|
||||
CertListParams,
|
||||
CertListResponse,
|
||||
ApplyCertParams,
|
||||
ApplyCertResponse,
|
||||
UploadCertParams,
|
||||
UploadCertResponse,
|
||||
DeleteCertParams,
|
||||
DeleteCertResponse,
|
||||
DownloadCertParams,
|
||||
} from '../types/cert'
|
||||
import axios from 'axios'
|
||||
|
||||
/**
|
||||
* @description 获取证书列表
|
||||
* @param {CertListParams} [params] 请求参数
|
||||
* @returns {Promise<AxiosResponse<CertListResponse>>} 证书列表
|
||||
*/
|
||||
export const getCertList = (params?: CertListParams) =>
|
||||
useApi<CertListResponse, CertListParams>('/v1/cert/get_list', params)
|
||||
|
||||
/**
|
||||
* @description 申请证书
|
||||
* @param {ApplyCertParams} [params] 请求参数
|
||||
* @returns {Promise<AxiosResponse<ApplyCertResponse>>} 申请结果
|
||||
*/
|
||||
export const applyCert = (params?: ApplyCertParams) =>
|
||||
useApi<ApplyCertResponse, ApplyCertParams>('/v1/cert/apply_cert', params)
|
||||
|
||||
/**
|
||||
* @description 上传证书
|
||||
* @param {UploadCertParams} [params] 请求参数
|
||||
* @returns {Promise<AxiosResponse<UploadCertResponse>>} 上传结果
|
||||
*/
|
||||
export const uploadCert = (params?: UploadCertParams) =>
|
||||
useApi<UploadCertResponse, UploadCertParams>('/v1/cert/upload_cert', params)
|
||||
|
||||
/**
|
||||
* @description 删除证书
|
||||
* @param {DeleteCertParams} [params] 请求参数
|
||||
* @returns {Promise<AxiosResponse<DeleteCertResponse>>} 删除结果
|
||||
*/
|
||||
export const deleteCert = (params?: DeleteCertParams) =>
|
||||
useApi<DeleteCertResponse, DeleteCertParams>('/v1/cert/del_cert', params)
|
||||
|
||||
/**
|
||||
* @description 下载证书
|
||||
* @param {DownloadCertParams} [params] 请求参数
|
||||
* @returns {Promise<AxiosResponse<DownloadCertResponse>>} 下载结果
|
||||
*/
|
||||
export const downloadCert = (params?: DownloadCertParams) => {
|
||||
return axios.get('/v1/cert/download', {
|
||||
params,
|
||||
})
|
||||
}
|
||||
86
frontend/apps/allin-ssl/src/api/index.ts
Normal file
86
frontend/apps/allin-ssl/src/api/index.ts
Normal file
@@ -0,0 +1,86 @@
|
||||
import { AxiosError } from 'axios'
|
||||
import MD5 from 'crypto-js/md5'
|
||||
import { isDev } from '@baota/utils/browser'
|
||||
import { HttpClient, useAxios, useAxiosReturn } from '@baota/hooks/axios'
|
||||
import { errorMiddleware } from '@baota/hooks/axios/model'
|
||||
import { router } from '@router/index'
|
||||
|
||||
import type { AxiosResponseData } from '@/types/public'
|
||||
|
||||
/**
|
||||
* @description 处理返回数据,如果状态码为 401
|
||||
* @param {AxiosResponseData<T>} response 返回数据
|
||||
* @returns {AxiosResponseData<T>} 返回数据
|
||||
*/
|
||||
export const responseHandleStatusCode = errorMiddleware((error: AxiosError) => {
|
||||
// 处理 401 状态码
|
||||
if (error.status === 401) {
|
||||
router.push(`/login`)
|
||||
}
|
||||
// 处理404状态码
|
||||
if (error.status === 404) {
|
||||
router.go(0) // 刷新页面
|
||||
}
|
||||
return error
|
||||
})
|
||||
|
||||
/**
|
||||
* @description 返回数据
|
||||
* @param {T} data 数据
|
||||
* @returns {AxiosResponseData<T>} 返回数据
|
||||
*/
|
||||
export const useApiReturn = <T>(data: T, message?: string): AxiosResponseData<T> => {
|
||||
return {
|
||||
code: 200,
|
||||
count: 0,
|
||||
data,
|
||||
message: message || '请求返回值错误,请检查',
|
||||
status: false,
|
||||
} as AxiosResponseData<T>
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 创建http客户端实例
|
||||
*/
|
||||
export const instance = new HttpClient({
|
||||
baseURL: isDev() ? '/api' : '/',
|
||||
timeout: 50000,
|
||||
headers: {
|
||||
'Content-Type': 'application/x-www-form-urlencoded',
|
||||
},
|
||||
middlewares: [responseHandleStatusCode],
|
||||
})
|
||||
|
||||
/**
|
||||
* @description 创建api token
|
||||
* @returns {string} api token
|
||||
*/
|
||||
export const createApiToken = () => {
|
||||
const now = new Date().getTime()
|
||||
const apiKey = '123456'
|
||||
const api_token = MD5(now + MD5(apiKey).toString()).toString()
|
||||
return { api_token, timestamp: now }
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* @description 创建axios请求
|
||||
* @param {string} url 请求地址
|
||||
* @param {Z} params 请求参数
|
||||
* @returns {useAxiosReturn<T, Z>} 返回结果
|
||||
*/
|
||||
export const useApi = <T, Z = Record<string, unknown>>(url: string, params?: Z) => {
|
||||
const { urlRef, paramsRef, ...other } = useAxios<T>(instance)
|
||||
const apiParams = createApiToken()
|
||||
urlRef.value = url
|
||||
paramsRef.value = isDev() ? { ...(params || {}), ...apiParams } : params || {}
|
||||
return { urlRef, paramsRef: paramsRef as Ref<Z>, ...other } as useAxiosReturn<T, Z>
|
||||
}
|
||||
|
||||
// 导出所有模块
|
||||
export * from './public'
|
||||
export * from './workflow'
|
||||
export * from './cert'
|
||||
export * from './access'
|
||||
export * from './monitor'
|
||||
export * from './setting'
|
||||
50
frontend/apps/allin-ssl/src/api/monitor.ts
Normal file
50
frontend/apps/allin-ssl/src/api/monitor.ts
Normal file
@@ -0,0 +1,50 @@
|
||||
import { useApi } from './index'
|
||||
import type { AxiosResponseData } from '@/types/public'
|
||||
import type {
|
||||
SiteMonitorListParams,
|
||||
SiteMonitorListResponse,
|
||||
AddSiteMonitorParams,
|
||||
UpdateSiteMonitorParams,
|
||||
DeleteSiteMonitorParams,
|
||||
SetSiteMonitorParams,
|
||||
} from '../types/monitor'
|
||||
|
||||
/**
|
||||
* @description 获取站点监控列表
|
||||
* @param {SiteMonitorListParams} [params] 请求参数
|
||||
* @returns {Promise<AxiosResponse<SiteMonitorListResponse>>} 站点监控列表
|
||||
*/
|
||||
export const getSiteMonitorList = (params?: SiteMonitorListParams) =>
|
||||
useApi<SiteMonitorListResponse, SiteMonitorListParams>('/v1/siteMonitor/get_list', params)
|
||||
|
||||
/**
|
||||
* @description 新增站点监控
|
||||
* @param {AddSiteMonitorParams} [params] 请求参数
|
||||
* @returns {Promise<AxiosResponse<AxiosResponseData>>} 新增结果
|
||||
*/
|
||||
export const addSiteMonitor = (params?: AddSiteMonitorParams) =>
|
||||
useApi<AxiosResponseData, AddSiteMonitorParams>('/v1/siteMonitor/add_site_monitor', params)
|
||||
|
||||
/**
|
||||
* @description 修改站点监控
|
||||
* @param {UpdateSiteMonitorParams} [params] 请求参数
|
||||
* @returns {Promise<AxiosResponse<AxiosResponseData>>} 修改结果
|
||||
*/
|
||||
export const updateSiteMonitor = (params?: UpdateSiteMonitorParams) =>
|
||||
useApi<AxiosResponseData, UpdateSiteMonitorParams>('/v1/siteMonitor/upd_site_monitor', params)
|
||||
|
||||
/**
|
||||
* @description 删除站点监控
|
||||
* @param {DeleteSiteMonitorParams} [params] 请求参数
|
||||
* @returns {Promise<AxiosResponse<AxiosResponseData>>} 删除结果
|
||||
*/
|
||||
export const deleteSiteMonitor = (params?: DeleteSiteMonitorParams) =>
|
||||
useApi<AxiosResponseData, DeleteSiteMonitorParams>('/v1/siteMonitor/del_site_monitor', params)
|
||||
|
||||
/**
|
||||
* @description 启用/禁用站点监控
|
||||
* @param {SetSiteMonitorParams} [params] 请求参数
|
||||
* @returns {Promise<AxiosResponse<AxiosResponseData>>} 操作结果
|
||||
*/
|
||||
export const setSiteMonitor = (params?: SetSiteMonitorParams) =>
|
||||
useApi<AxiosResponseData, SetSiteMonitorParams>('/v1/siteMonitor/set_site_monitor', params)
|
||||
38
frontend/apps/allin-ssl/src/api/public.ts
Normal file
38
frontend/apps/allin-ssl/src/api/public.ts
Normal file
@@ -0,0 +1,38 @@
|
||||
import axios from 'axios'
|
||||
import { useApi } from './index'
|
||||
import type {
|
||||
loginParams,
|
||||
loginResponse,
|
||||
GetOverviewsParams,
|
||||
GetOverviewsResponse,
|
||||
AxiosResponseData,
|
||||
} from '@/types/public'
|
||||
|
||||
/**
|
||||
* @description 登录
|
||||
* @param {loginParams} [params] 登录参数
|
||||
* @returns {Promise<AxiosResponse<loginResponse>>} 登录结果
|
||||
*/
|
||||
export const login = (params?: loginParams) => useApi<loginResponse, loginParams>('/v1/login/sign', params)
|
||||
|
||||
/**
|
||||
* @description 获取登录验证码
|
||||
* @returns {Promise<AxiosResponse<loginCodeResponse>>} 登录验证码
|
||||
*/
|
||||
export const getLoginCode = () => {
|
||||
return axios.get('/v1/login/get_code')
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 登出
|
||||
* @returns {Promise<AxiosResponse<AxiosResponseData>>} 登出结果
|
||||
*/
|
||||
export const signOut = () => useApi<AxiosResponseData>('/v1/login/sign-out')
|
||||
|
||||
/**
|
||||
* @description 获取首页概览
|
||||
* @param {GetOverviewsParams} [params] 请求参数
|
||||
* @returns {Promise<AxiosResponse<GetOverviewsResponse>>} 首页概览数据
|
||||
*/
|
||||
export const getOverviews = (params?: GetOverviewsParams) =>
|
||||
useApi<GetOverviewsResponse, GetOverviewsParams>('/v1/overview/get_overviews', params)
|
||||
69
frontend/apps/allin-ssl/src/api/setting.ts
Normal file
69
frontend/apps/allin-ssl/src/api/setting.ts
Normal file
@@ -0,0 +1,69 @@
|
||||
import { useApi } from './index'
|
||||
import type { AxiosResponseData } from '../types/public'
|
||||
import type {
|
||||
GetSettingParams,
|
||||
GetSettingResponse,
|
||||
SaveSettingParams,
|
||||
GetReportListParams,
|
||||
GetReportListResponse,
|
||||
AddReportParams,
|
||||
UpdateReportParams,
|
||||
DeleteReportParams,
|
||||
TestReportParams,
|
||||
} from '../types/setting'
|
||||
|
||||
/**
|
||||
* @description 获取系统设置
|
||||
* @param {GetSettingParams} [params] 请求参数
|
||||
* @returns {Promise<AxiosResponse<GetSettingResponse>>} 系统设置
|
||||
*/
|
||||
export const getSystemSetting = (params?: GetSettingParams) =>
|
||||
useApi<GetSettingResponse, GetSettingParams>('/v1/setting/get_setting', params)
|
||||
|
||||
/**
|
||||
* @description 保存系统设置
|
||||
* @param {SaveSettingParams} [params] 请求参数
|
||||
* @returns {Promise<AxiosResponse<AxiosResponseData>>} 保存结果
|
||||
*/
|
||||
export const saveSystemSetting = (params?: SaveSettingParams) =>
|
||||
useApi<AxiosResponseData, SaveSettingParams>('/v1/setting/save_setting', params)
|
||||
|
||||
/**
|
||||
* @description 添加告警
|
||||
* @param {AddReportParams} [params] 请求参数
|
||||
* @returns {Promise<AxiosResponse<AxiosResponseData>>} 配置结果
|
||||
*/
|
||||
export const addReport = (params?: AddReportParams) =>
|
||||
useApi<AxiosResponseData, AddReportParams>('/v1/report/add_report', params)
|
||||
|
||||
/**
|
||||
* @description 更新告警
|
||||
* @param {UpdateReportParams} [params] 请求参数
|
||||
* @returns {Promise<AxiosResponse<AxiosResponseData>>} 更新结果
|
||||
*/
|
||||
export const updateReport = (params?: UpdateReportParams) =>
|
||||
useApi<AxiosResponseData, UpdateReportParams>('/v1/report/upd_report', params)
|
||||
|
||||
/**
|
||||
* @description 删除告警
|
||||
* @param {DeleteReportParams} [params] 请求参数
|
||||
* @returns {Promise<AxiosResponse<AxiosResponseData>>} 删除结果
|
||||
*/
|
||||
export const deleteReport = (params?: DeleteReportParams) =>
|
||||
useApi<AxiosResponseData, DeleteReportParams>('/v1/report/del_report', params)
|
||||
|
||||
/**
|
||||
* @description 测试告警
|
||||
* @param {TestReportParams} [params] 请求参数
|
||||
* @returns {Promise<AxiosResponse<AxiosResponseData>>} 测试结果
|
||||
*/
|
||||
export const testReport = (params?: TestReportParams) =>
|
||||
useApi<AxiosResponseData, TestReportParams>('/v1/report/notify_test', params)
|
||||
|
||||
/**
|
||||
* @description 获取告警类型列表
|
||||
* @param {GetReportListParams} [params] 请求参数
|
||||
* @returns {Promise<AxiosResponse<GetReportListResponse>>} 告警类型列表
|
||||
*/
|
||||
export const getReportList = (params?: GetReportListParams) =>
|
||||
useApi<GetReportListResponse, GetReportListParams>('/v1/report/get_list', params)
|
||||
90
frontend/apps/allin-ssl/src/api/workflow.ts
Normal file
90
frontend/apps/allin-ssl/src/api/workflow.ts
Normal file
@@ -0,0 +1,90 @@
|
||||
import { useApi } from './index'
|
||||
import type {
|
||||
WorkflowListParams,
|
||||
WorkflowListResponse,
|
||||
AddWorkflowParams,
|
||||
UpdateWorkflowParams,
|
||||
DeleteWorkflowParams,
|
||||
WorkflowHistoryParams,
|
||||
WorkflowHistoryResponse,
|
||||
ExecuteWorkflowParams,
|
||||
UpdateWorkflowExecTypeParams,
|
||||
EnableWorkflowParams,
|
||||
WorkflowHistoryDetailParams,
|
||||
} from '../types/workflow'
|
||||
import { AxiosResponseData } from '@/types/public'
|
||||
|
||||
/**
|
||||
* @description 获取工作流列表
|
||||
* @param {WorkflowListParams} [params] 请求参数
|
||||
* @returns {Promise<AxiosResponse<WorkflowListResponse>>} 工作流列表
|
||||
*/
|
||||
export const getWorkflowList = (params?: WorkflowListParams) =>
|
||||
useApi<WorkflowListResponse, WorkflowListParams>('/v1/workflow/get_list', params)
|
||||
|
||||
/**
|
||||
* @description 新增工作流
|
||||
* @param {AddWorkflowParams} [params] 请求参数
|
||||
* @returns {Promise<AxiosResponse<AxiosResponseData>>} 新增结果
|
||||
*/
|
||||
export const addWorkflow = (params?: AddWorkflowParams) =>
|
||||
useApi<AxiosResponseData, AddWorkflowParams>('/v1/workflow/add_workflow', params)
|
||||
|
||||
/**
|
||||
* @description 修改工作流
|
||||
* @param {UpdateWorkflowParams} [params] 请求参数
|
||||
* @returns {Promise<AxiosResponse<AxiosResponseData>>} 修改结果
|
||||
*/
|
||||
export const updateWorkflow = (params?: UpdateWorkflowParams) =>
|
||||
useApi<AxiosResponseData, UpdateWorkflowParams>('/v1/workflow/upd_workflow', params)
|
||||
|
||||
/**
|
||||
* @description 删除工作流
|
||||
* @param {DeleteWorkflowParams} [params] 请求参数
|
||||
* @returns {Promise<AxiosResponse<AxiosResponseData>>} 删除结果
|
||||
*/
|
||||
export const deleteWorkflow = (params?: DeleteWorkflowParams) =>
|
||||
useApi<AxiosResponseData, DeleteWorkflowParams>('/v1/workflow/del_workflow', params)
|
||||
|
||||
/**
|
||||
* @description 获取工作流执行历史
|
||||
* @param {WorkflowHistoryParams} [params] 请求参数
|
||||
* @returns {Promise<AxiosResponse<WorkflowHistoryResponse>>} 工作流执行历史
|
||||
*/
|
||||
export const getWorkflowHistory = (params?: WorkflowHistoryParams) =>
|
||||
useApi<WorkflowHistoryResponse, WorkflowHistoryParams>('/v1/workflow/get_workflow_history', params)
|
||||
|
||||
/**
|
||||
* @description 获取工作流执行历史详情
|
||||
* @param {WorkflowHistoryDetailParams} [params] 请求参数
|
||||
* @returns {Promise<AxiosResponse<AxiosResponseData>>} 工作流执行历史详情
|
||||
*/
|
||||
export const getWorkflowHistoryDetail = (params?: WorkflowHistoryDetailParams) =>
|
||||
useApi<AxiosResponseData, WorkflowHistoryDetailParams>('/v1/workflow/get_exec_log', params)
|
||||
|
||||
/**
|
||||
* @description 手动执行工作流
|
||||
* @param {ExecuteWorkflowParams} [params] 请求参数
|
||||
* @returns {Promise<AxiosResponse<AxiosResponseData>>} 执行结果
|
||||
*/
|
||||
export const executeWorkflow = (params?: ExecuteWorkflowParams) =>
|
||||
useApi<AxiosResponseData, ExecuteWorkflowParams>('/v1/workflow/execute_workflow', params)
|
||||
|
||||
/**
|
||||
* @description 修改工作流执行方式
|
||||
* @param {UpdateWorkflowExecTypeParams} [params] 请求参数
|
||||
* @returns {Promise<AxiosResponse<AxiosResponseData>>} 修改结果
|
||||
*/
|
||||
export const updateWorkflowExecType = (params?: UpdateWorkflowExecTypeParams) =>
|
||||
useApi<AxiosResponseData, UpdateWorkflowExecTypeParams>('/v1/workflow/exec_type', params)
|
||||
|
||||
/**
|
||||
* @description 启用工作流或禁用工作流
|
||||
* @param {EnableWorkflowParams} [params] 请求参数
|
||||
* @returns {Promise<AxiosResponse<AxiosResponseData>>} 启用或禁用结果
|
||||
*/
|
||||
export const enableWorkflow = (params?: EnableWorkflowParams) =>
|
||||
useApi<AxiosResponseData, EnableWorkflowParams>('/v1/workflow/active', params)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user