🐛 处理不存在结构化数据

This commit is contained in:
BTMuli
2023-10-28 14:31:20 +08:00
parent ecb0f1a793
commit b390c7851e

View File

@@ -4,8 +4,8 @@
<div class="post-json"> <div class="post-json">
<div class="post-title">帖子返回内容 JSON</div> <div class="post-title">帖子返回内容 JSON</div>
<JsonViewer :value="jsonData" copyable boxed /> <JsonViewer :value="jsonData" copyable boxed />
<div class="post-title">结构化内容解析</div> <div class="post-title" v-show="!isEmpty">结构化内容解析</div>
<JsonViewer :value="parseData" copyable boxed /> <JsonViewer v-if="!isEmpty" :value="parseData" copyable boxed />
</div> </div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
@@ -26,26 +26,30 @@ const loadingEmpty = ref<boolean>(false);
// 数据 // 数据
const postId = Number(useRoute().params.post_id); const postId = Number(useRoute().params.post_id);
let jsonData = reactive<TGApp.Plugins.Mys.Post.FullData>(<TGApp.Plugins.Mys.Post.FullData>{}); let jsonData = reactive<TGApp.Plugins.Mys.Post.FullData>(<TGApp.Plugins.Mys.Post.FullData>{});
let parseData = reactive<TGApp.Plugins.Mys.Post.StructuredContent[]>([]); let parseData = reactive<TGApp.Plugins.Mys.SctPost.Base[]>([]);
const isEmpty = ref<boolean>(false);
onMounted(async () => { onMounted(async () => {
await appWindow.show(); await appWindow.show();
// 检查数据
if (!postId) { if (!postId) {
loadingEmpty.value = true; loadingEmpty.value = true;
loadingTitle.value = "未找到数据"; loadingTitle.value = "错误的 POST ID";
return; return;
} }
// 获取数据
loadingTitle.value = "正在获取数据..."; loadingTitle.value = "正在获取数据...";
try { try {
jsonData = await Mys.Post.get(postId); jsonData = await Mys.Post.get(postId);
parseData = JSON.parse(jsonData.post.structured_content);
loading.value = false;
} catch (e) { } catch (e) {
loadingTitle.value = "帖子不存在或解析失败"; loadingTitle.value = "获取数据失败";
loadingEmpty.value = true; loadingEmpty.value = true;
return;
} }
try {
parseData = JSON.parse(jsonData.post.structured_content);
} catch (e) {
isEmpty.value = true;
}
loading.value = false;
}); });
</script> </script>
<style lang="css" scoped> <style lang="css" scoped>