2025-04-01 09:03:51 +08:00

203 lines
4.3 KiB
JavaScript

// 静态数据
const staticData = [{
name: '区域',
type: 'hierarchy',
submenu: []
},
{
name: '类型',
type: 'radio',
submenu: [{
name: "",
submenu: [{
name: "形势政策类",
value: "形势政策类"
}, {
name: "文化艺术类",
value: "文化艺术类"
},
{
name: "职业发展类",
value: "职业发展类"
},
{
name: "社会融入类",
value: "社会融入类"
}
]
}]
},
{
name: '热门',
type: 'filter',
submenu: [{
name: "",
submenu: []
}]
},
{
name: '标签',
type: 'filter',
submenu: [{
name: "",
submenu: []
}]
},
// {
// name: '更多',
// icon: 'settings',
// type: 'filter',
// submenu: [{
// name: "类型",
// submenu: []
// },
// {
// name: "热门",
// submenu: []
// },
// {
// name: "场地",
// submenu: [{
// name: "室内",
// value: "室内"
// }, {
// name: "室外",
// value: "室外"
// }]
// }
// ]
// }
];
// 通用请求函数
const fetchDataFromApi = async (url, params) => {
try {
const res = await uni.$u.http.get(url, {
params
});
if (res.code === 1) {
return res.data;
} else {
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
});
throw new Error(res.msg);
}
} catch (error) {
uni.showToast({
title: '请求失败,请稍后再试',
icon: 'none',
duration: 2000
});
throw error;
}
};
// 获取分类数据
export const fetchData = async () => {
return await fetchDataFromApi('/api/school/classes/cate_list', {});
};
// 获取区县数据
export const fetchArea = async () => {
return await fetchDataFromApi('/api/index/get_area', {
city:410300
});
};
// 获取分类数据
export const fetchtype= async () => {
return await fetchDataFromApi('/api/school/classes/type_list', {});
};
// 获取标签数据
export const fetchDate = async () => {
return await fetchDataFromApi('/api/school/classes/label_list', {});
};
// 更新静态数据
export const updateStaticData = async () => {
try {
// 获取分类数据
const categories = await fetchData();
// 获取标签数据
const labels = await fetchDate();
// 获取类型数据
const types = await fetchtype();
const areas = await fetchArea()
console.log(labels, 'labels')
console.log(categories, 'categories')
console.log(areas,'areas')
// 更新标签数据
const LabelIndex = staticData.findIndex(item => item.name === '标签');
if (LabelIndex !== -1) {
staticData[LabelIndex].submenu[0].submenu = categories.list.map(category => ({
name: category.name,
value: category.id
}));
}
// 更新区县数据
const areaIndex = staticData.findIndex(item => item.name === '区域');
if (areaIndex !== -1) {
staticData[areaIndex].submenu = areas.map(category => ({
name: category.label,
value: category.value
}));
}
// 更新类型数据
const typeIndex = staticData.findIndex(item => item.name === '类型');
if (typeIndex !== -1) {
staticData[typeIndex].submenu[0].submenu = types.list.map(category => ({
name: category.name,
value: category.id
}));
}
// 更新热门数据
const hotIndex = staticData.findIndex(item => item.name === '热门');
if (hotIndex !== -1) {
staticData[hotIndex].submenu[0].submenu = labels.list.map(label => ({
name: label.name,
value: label.id
}));
}
// 更新更多里面的类型和热门数据
const moreIndex = staticData.findIndex(item => item.name === '更多');
if (moreIndex !== -1) {
const typeMoreIndex = staticData[moreIndex].submenu.findIndex(item => item.name === '标签');
if (typeMoreIndex !== -1) {
staticData[moreIndex].submenu[typeMoreIndex].submenu = categories.map(category => ({
name: category.name,
value: category.id
}));
}
const hotMoreIndex = staticData[moreIndex].submenu.findIndex(item => item.name === '热门');
if (hotMoreIndex !== -1) {
staticData[moreIndex].submenu[hotMoreIndex].submenu = labels.map(label => ({
name: label.name,
value: label.id
}));
}
}
// 返回更新后的静态数据
return staticData;
} catch (error) {
console.error('更新静态数据失败:', error);
throw error;
}
};
// 导出静态数据
export default staticData;