This commit is contained in:
2025-12-10 10:03:13 +08:00
parent c36145b848
commit 4c7b191311
13 changed files with 629 additions and 138 deletions

View File

@@ -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;