【新增】部署类型七牛云oss、七牛云cdn、百度cdn、腾讯waf、腾讯edgeone、阿里云waf

【新增】解析类型godaddy
【新增】自定义CA授权管理
【调整】优化部署流程,减少代码冗余,提升类型添加效率
This commit is contained in:
chudong
2025-05-23 16:58:34 +08:00
parent 71de397e11
commit e5634d4992
263 changed files with 18348 additions and 14253 deletions

View File

@@ -1,42 +1,69 @@
import { getOverviews } from '@/api/public'
import { $t } from '@locales/index'
import { useError } from '@baota/hooks/error'
import type { OverviewData } from '@/types/public'
import { defineStore, storeToRefs } from 'pinia';
import { ref } from 'vue';
// Type Imports
import type { OverviewData } from '@/types/public';
// Absolute Internal Imports - API
import { getOverviews } from '@/api/public';
// Absolute Internal Imports - Hooks
import { useError } from '@baota/hooks/error';
// Absolute Internal Imports - Utilities
import { $t } from '@locales/index';
/**
* 首页数据存储
*
* 使用Pinia管理首页相关的状态和操作包括
* - 概览数据的获取和存储
* - 页面导航功能
* - 加载状态管理
* Home Store 暴露的类型接口
* @interface HomeStoreExposes
* @property {Ref<boolean>} loading - 数据加载状态。
* @property {Ref<OverviewData>} overviewData - 首页概览数据。
* @property {() => Promise<void>} fetchOverviewData - 获取首页概览数据的方法。
*/
export const useHomeStore = defineStore('home-store', () => {
export interface HomeStoreExposes {
loading: Ref<boolean>;
overviewData: Ref<OverviewData>;
fetchOverviewData: () => Promise<void>;
}
/**
* 首页数据存储 (Pinia Store)
*
* @description 使用Pinia管理首页相关的状态和操作包括
* - 概览数据的获取和存储
* - 加载状态管理
* @returns {HomeStoreExposes} 包含状态和方法的 Store 实例。
*/
export const useHomeStore = defineStore('home-store', (): HomeStoreExposes => {
// -------------------- 状态定义 --------------------
/**
* 数据加载状态
* 用于控制页面加载指示器的显示
* @type {Ref<boolean>}
* @description 用于控制页面加载指示器的显示。
*/
const loading = ref(false)
const loading = ref(false);
/**
* 首页概览数据
* 包含工作流、证书和监控的统计信息以及工作流历史记录
* @type {Ref<OverviewData>}
* @description 包含工作流、证书和监控的统计信息以及工作流历史记录。
*/
const overviewData = ref<OverviewData>({
workflow: { count: 0, active: 0, failure: 0 },
cert: { count: 0, will: 0, end: 0 },
site_monitor: { count: 0, exception: 0 },
workflow_history: [],
})
});
// 错误处理
const { handleError } = useError()
const { handleError } = useError();
// -------------------- 请求方法 --------------------
/**
* @description 获取首页概览数据
* @returns {Promise<void>} 返回Promise对象
* 获取首页概览数据
* @async
* @function fetchOverviewData
* @returns {Promise<void>} 返回Promise对象在数据获取完成后解析。
*/
const fetchOverviewData = async (): Promise<void> => {
try {
@@ -68,18 +95,24 @@ export const useHomeStore = defineStore('home-store', () => {
loading,
overviewData,
fetchOverviewData,
}
})
};
});
/**
* 首页状态管理钩子
* 首页状态管理钩子 (Composable Function)
*
* Store包装为组合式API风格便于在视图组件中使用
* 自动处理响应式引用,简化状态的访问和修改
* @description 将 Store 包装为组合式 API 风格,便于在视图组件中使用
* 自动处理响应式引用,简化状态的访问和修改
*
* @returns {object} 包含状态和方法的对象,支持解构使用
* @returns {HomeStoreExposes & ReturnType<typeof storeToRefs<HomeStoreExposes>>} 包含状态和方法的对象,所有状态都已转换为 Ref,支持解构使用
*/
export const useStore = () => {
const store = useHomeStore()
return { ...store, ...storeToRefs(store) }
}
const store = useHomeStore();
// 结合 storeToRefs 以便从 store 中提取 ref 同时保持响应性
// 注意:直接扩展 storeToRefs 的返回类型可能比较复杂,
// 实践中通常直接使用 store 和 storeToRefs 返回的对象。
// 这里为了更精确的类型提示,可以考虑更复杂的类型体操或接受一定的类型宽松。
// 一个简化的方式是让调用者自行处理类型,或者返回一个结构更清晰的对象。
// 为简化,此处返回展开后的 store 和 refs。
return { ...store, ...storeToRefs(store) };
};