refactor(biji-qianduan): 重构网络请求处理逻辑- 优化了多个组件中的 API 调用,使用 async/await 替代 Promise 链

- 改进了错误处理,统一使用 ElMessage 显示错误信息
- 简化了部分代码结构,提高了可读性和可维护性
This commit is contained in:
ikmkj
2025-08-01 19:47:30 +08:00
parent 9af5154973
commit ef22c0e4b6
3 changed files with 24 additions and 25 deletions

View File

@@ -377,27 +377,31 @@ const buildTree = (items) => {
const fetchGroupings = async () => {
try {
const response = await groupingAll("");
const allCategories = response.data || [];
categoryTree.value = buildTree(allCategories);
const allCategories = await groupingAll("");
categoryTree.value = buildTree(allCategories || []);
} catch (error) {
console.error('获取分组失败:', error);
ElMessage.error('获取分组失败: ' + (error.response?.data?.message || error.message));
ElMessage.error('获取分组失败: ' + error.message);
categoryTree.value = [];
}
};
const selectFile = async (data) => {
const promise = await markdownList(data.id);
groupMarkdownFiles.value = promise.data;
currentGroupName.value = data.grouping;
selectedFile.value = null;
try {
const files = await markdownList(data.id);
groupMarkdownFiles.value = files || [];
currentGroupName.value = data.grouping;
selectedFile.value = null;
} catch (error) {
ElMessage.error('获取笔记列表失败: ' + error.message);
groupMarkdownFiles.value = [];
}
};
const fetchMarkdownFiles = async () => {
try {
const response = await markdownAll()
markdownFiles.value = (response.data || []).map(file => ({
const files = await markdownAll();
markdownFiles.value = (files || []).map(file => ({
...file,
id: String(file.id)
}));
@@ -932,18 +936,13 @@ const resetToHomeView = async () => {
showEditor.value = false;
searchKeyword.value = '';
try {
const response = await getRecentFiles();
groupMarkdownFiles.value = response.data;
groupMarkdownFiles.value = await getRecentFiles() || [];
} catch (error) {
ElMessage.error('获取最近文件失败: ' + error.message);
groupMarkdownFiles.value = [];
}
};
onMounted(async () => {
await fetchGroupings();
await resetToHomeView();
});
watch(activeMenu, (newVal) => {
if (newVal === 'all') {
@@ -963,11 +962,11 @@ const handleToggleRegistration = async (value) => {
const handleGenerateCode = async () => {
try {
const response = await generateRegistrationCode();
generatedCode.value = response.data;
const code = await generateRegistrationCode();
generatedCode.value = code;
ElMessage.success('注册码生成成功');
} catch (error) {
ElMessage.error('生成注册码失败');
ElMessage.error('生成注册码失败: ' + error.message);
}
};
@@ -980,10 +979,10 @@ const copyToClipboard = (text) => {
};
onMounted(async () => {
// ... existing onMounted logic
await fetchGroupings();
await resetToHomeView();
try {
const response = await getRegistrationStatus();
isRegistrationEnabled.value = response.data;
isRegistrationEnabled.value = await getRegistrationStatus();
} catch (error) {
console.error("Failed to fetch registration status:", error);
}

View File

@@ -11,10 +11,10 @@ export const useUserStore = defineStore('user', {
async login(username, password) {
try {
const response = await loginApi({ username, password });
if (response.data && response.data.token) {
this.token = response.data.token;
if (response && response.token) {
this.token = response.token;
// 你可能还需要一个接口来获取用户信息
// this.userInfo = await getUserInfo();
// this.userInfo = await getUserInfo();
return true;
}
return false;

Binary file not shown.