// 导入 API 函数,用于从服务器获取带有选项列表的数据 import { getListWithOptionList } from '@/views/basicmanage/caseTemplatesStatistics/api'; // 导入 Vue 3 的组合式 API:onMounted(组件挂载后执行)和 ref(响应式数据) import { onMounted, ref } from 'vue'; // 创建响应式数据:统计选项列表,初始为空数组 const statisticsOptionList = ref([]); /** * 初始化统计选项列表数据 * 异步函数,通过 API 获取数据并更新到响应式变量中 */ const initStatic = async () => { try { // 调用 API 获取数据 const res = await getListWithOptionList(); // 将获取到的数据赋值给响应式变量 statisticsOptionList.value = res.data; } catch (error) { // 错误处理:打印错误信息到控制台 console.log(error); } }; /** * Vue 3 组合式函数:用于获取和管理统计选项列表 * @returns {Object} 返回包含响应式数据和方法的对象 */ export default function useOptionsList() { // 组件挂载后自动初始化数据 onMounted(() => { initStatic(); }); /** * 根据代码获取对应的选项列表 * @param {string} code - 统计类型代码 * @returns {Array} 返回匹配的选项列表,如果没有匹配则返回空数组 */ const getStatisticsOptionList = (code) => { // 在统计选项列表中查找匹配代码的项,然后返回其 optionList 属性,如果没有找到则返回空数组 return statisticsOptionList.value.find((item) => item.code === code)?.optionList || []; }; // 返回响应式数据和方法供组件使用 return { statisticsOptionList, // 完整的统计选项列表 getStatisticsOptionList, // 根据代码获取选项列表的方法 }; }