tijiao
This commit is contained in:
83
src/main.js
83
src/main.js
@@ -53,43 +53,60 @@ import 'quill/dist/quill.bubble.css'
|
||||
// 注册富文本编辑器组件为全局组件
|
||||
Vue.use(VueQuillEditor)
|
||||
|
||||
|
||||
|
||||
|
||||
async function loadJournalType() {
|
||||
const localData = localStorage.getItem('journalType'); // 尝试从 localStorage 获取数据
|
||||
|
||||
if (!localData) {
|
||||
try {
|
||||
await api
|
||||
.post('api/Articletype/getArticleType', {})
|
||||
.then((res) => {
|
||||
|
||||
if (res.status == 1) {
|
||||
localStorage.setItem('journalTypeData', JSON.stringify(res.data.base)); // 将数据存储到 localStorage
|
||||
localStorage.setItem('journalTypeDataAll', JSON.stringify([...res.data.base, ...res.data.supplement])); // 将数据存储到 localStorage
|
||||
|
||||
}
|
||||
})
|
||||
await api
|
||||
.post('api/Articletype/getMedicalType', {})
|
||||
.then((res) => {
|
||||
|
||||
if (res.status == 1) {
|
||||
localStorage.setItem('opMedicalListData', JSON.stringify(res.data)); // 将数据存储到 localStorage
|
||||
|
||||
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
} catch (error) {
|
||||
|
||||
}
|
||||
} else {
|
||||
// 1. 获取并尝试解析缓存数据
|
||||
const cachedString = localStorage.getItem('journalTypeData');
|
||||
let parsedData = null;
|
||||
|
||||
if (cachedString) {
|
||||
try {
|
||||
// 必须先解析 JSON 字符串
|
||||
parsedData = JSON.parse(cachedString);
|
||||
} catch (e) {
|
||||
console.error("缓存数据解析失败,将重新请求 API:", e);
|
||||
}
|
||||
}
|
||||
|
||||
// 2. 检查解析后的数据是否有效(是数组且长度大于 0)
|
||||
if (parsedData && Array.isArray(parsedData) && parsedData.length > 0) {
|
||||
// 缓存有效,直接返回缓存数据
|
||||
return parsedData;
|
||||
}
|
||||
|
||||
// 3. 如果缓存无效或不存在,执行 API 调用
|
||||
try {
|
||||
// 第一个 API 调用,使用 await 接收结果
|
||||
const journalRes = await api.post('api/Articletype/getArticleType', {});
|
||||
if (journalRes.status === 1) {
|
||||
// 存储 journal data
|
||||
localStorage.setItem('journalTypeData', JSON.stringify(journalRes.data.base));
|
||||
localStorage.setItem('journalTypeDataAll', JSON.stringify([...journalRes.data.base, ...journalRes.data.supplement]));
|
||||
}
|
||||
|
||||
// 第二个 API 调用,串行执行
|
||||
const medicalRes = await api.post('api/Articletype/getMedicalType', {});
|
||||
if (medicalRes.status === 1) {
|
||||
// 存储 medical data
|
||||
localStorage.setItem('opMedicalListData', JSON.stringify(medicalRes.data));
|
||||
}
|
||||
|
||||
// 4. 返回第一个 API 调用的主要数据
|
||||
if (journalRes.status === 1) {
|
||||
return journalRes.data.base;
|
||||
}
|
||||
|
||||
} catch (error) {
|
||||
// 集中处理 API 调用失败
|
||||
console.error('Error loading data:', error);
|
||||
return []; // 失败时返回一个默认的空数组,避免程序崩溃
|
||||
}
|
||||
|
||||
// 如果所有流程都没有返回,默认返回空数组
|
||||
return [];
|
||||
}
|
||||
|
||||
|
||||
|
||||
async function loadJournalList() {
|
||||
try {
|
||||
const localData = store.state.journalList;
|
||||
|
||||
Reference in New Issue
Block a user