feat(api): 添加多路由代理处理实现
- 新增api目录下多个接口路径代理处理文件,支持动态拼接目标URL - 根据环境变量选择不同的后端服务地址(如dev和生产环境) - 统一添加TenantId和Authorization请求头传递租户及身份信息 - 实现请求参数及搜索参数的完整转发 - 引入better-sqlite3及node内建模块支持服务端功能 - 新增专家详情页面,实现文章、成果及预约咨询功能展示 - 页面实现加载骨架屏、标签页切换及空状态提示优化体验
This commit is contained in:
10
.output/server/chunks/_/error-500.mjs
Normal file
10
.output/server/chunks/_/error-500.mjs
Normal file
@@ -0,0 +1,10 @@
|
||||
import { escapeHtml } from '@vue/shared';
|
||||
|
||||
const _messages = { "appName": "Nuxt", "statusCode": 500, "statusMessage": "Internal server error", "description": "This page is temporarily unavailable.", "refresh": "Refresh this page" };
|
||||
const template = (messages) => {
|
||||
messages = { ..._messages, ...messages };
|
||||
return '<!DOCTYPE html><html lang="en"><head><title>' + escapeHtml(messages.statusCode) + " - " + escapeHtml(messages.statusMessage) + " | " + escapeHtml(messages.appName) + `</title><meta charset="utf-8"><meta content="width=device-width,initial-scale=1.0,minimum-scale=1.0" name="viewport"><script>!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)}).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();<\/script><style>*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1,h2{font-size:inherit;font-weight:inherit}h1,h2,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.grid{display:grid}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.max-w-520px{max-width:520px}.min-h-screen{min-height:100vh}.place-content-center{place-content:center}.overflow-hidden{overflow:hidden}.bg-white{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-2{padding-left:.5rem;padding-right:.5rem}.text-center{text-align:center}.text-\\[80px\\]{font-size:80px}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\\[\\#020420\\]{--un-text-opacity:1;color:rgb(2 4 32/var(--un-text-opacity))}.text-\\[\\#64748B\\]{--un-text-opacity:1;color:rgb(100 116 139/var(--un-text-opacity))}.font-semibold{font-weight:600}.leading-none{line-height:1}.tracking-wide{letter-spacing:.025em}.font-sans{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.tabular-nums{--un-numeric-spacing:tabular-nums;font-variant-numeric:var(--un-ordinal) var(--un-slashed-zero) var(--un-numeric-figure) var(--un-numeric-spacing) var(--un-numeric-fraction)}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(prefers-color-scheme:dark){.dark\\:bg-\\[\\#020420\\]{--un-bg-opacity:1;background-color:rgb(2 4 32/var(--un-bg-opacity))}.dark\\:text-white{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media(min-width:640px){.sm\\:text-\\[110px\\]{font-size:110px}.sm\\:text-3xl{font-size:1.875rem;line-height:2.25rem}}</style></head><body class="antialiased bg-white dark:bg-[#020420] dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-[#020420] tracking-wide"><div class="max-w-520px text-center"><h1 class="font-semibold leading-none mb-4 sm:text-[110px] tabular-nums text-[80px]">` + escapeHtml(messages.statusCode) + '</h1><h2 class="font-semibold mb-2 sm:text-3xl text-2xl">' + escapeHtml(messages.statusMessage) + '</h2><p class="mb-4 px-2 text-[#64748B] text-md">' + escapeHtml(messages.description) + "</p></div></body></html>";
|
||||
};
|
||||
|
||||
export { template };
|
||||
//# sourceMappingURL=error-500.mjs.map
|
||||
1
.output/server/chunks/_/error-500.mjs.map
Normal file
1
.output/server/chunks/_/error-500.mjs.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"error-500.mjs","sources":["../../../../node_modules/.pnpm/@nuxt+nitro-server@4.2.2_better-sqlite3@12.8.0_db0@0.3.4_better-sqlite3@12.8.0__ioredis_a0a2be7525d559e696e64db570f075d2/node_modules/@nuxt/nitro-server/dist/runtime/templates/error-500.js"],"names":[],"mappings":"","x_google_ignoreList":[0]}
|
||||
372
.output/server/chunks/build/ArticleListPage-Di4R26TI.mjs
Normal file
372
.output/server/chunks/build/ArticleListPage-Di4R26TI.mjs
Normal file
@@ -0,0 +1,372 @@
|
||||
import { defineComponent, ref, computed, watch, resolveComponent, mergeProps, withCtx, unref, createVNode, createBlock, toDisplayString, openBlock, Fragment, renderList, isRef, createCommentVNode, useSSRContext } from 'vue';
|
||||
import { ssrRenderAttrs, ssrRenderStyle, ssrInterpolate, ssrRenderComponent, ssrRenderList, ssrRenderClass, ssrRenderAttr } from 'vue/server-renderer';
|
||||
import { message } from 'ant-design-vue';
|
||||
import { a as _export_sfc, e as useRoute, d as useRouter } from './server.mjs';
|
||||
|
||||
const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
__name: "ArticleListPage",
|
||||
__ssrInlineRender: true,
|
||||
props: {
|
||||
config: {}
|
||||
},
|
||||
setup(__props) {
|
||||
const props = __props;
|
||||
const route = useRoute();
|
||||
const router = useRouter();
|
||||
const activeType = ref(route.query.type || "");
|
||||
const currentPage = ref(1);
|
||||
const pageSize = ref(12);
|
||||
const total = ref(0);
|
||||
const loading = ref(false);
|
||||
const articles = ref([]);
|
||||
const currentCategoryLabel = computed(() => {
|
||||
if (!activeType.value) return "全部文章";
|
||||
const found = props.config.categories.find((c) => c.type === activeType.value);
|
||||
return found?.label || "全部文章";
|
||||
});
|
||||
function getCategoryLabel(type) {
|
||||
const found = props.config.categories.find((c) => c.type === type);
|
||||
return found?.label || type;
|
||||
}
|
||||
function selectType(type) {
|
||||
activeType.value = type;
|
||||
currentPage.value = 1;
|
||||
router.replace({ query: type ? { type } : {} });
|
||||
loadArticles();
|
||||
}
|
||||
async function loadArticles() {
|
||||
loading.value = true;
|
||||
try {
|
||||
total.value = 35;
|
||||
articles.value = Array.from({ length: Math.min(pageSize.value, 35 - (currentPage.value - 1) * pageSize.value) }, (_, i) => ({
|
||||
id: (currentPage.value - 1) * pageSize.value + i + 1,
|
||||
title: `${currentCategoryLabel.value}文章标题 ${(currentPage.value - 1) * pageSize.value + i + 1}:广西政策研究成果发布`,
|
||||
overview: "摘要内容:本文就广西经济社会发展中的若干重大问题进行深入研究,提出了切实可行的政策建议和对策措施,为相关决策提供参考依据...",
|
||||
image: `https://picsum.photos/200/130?random=${(currentPage.value - 1) * pageSize.value + i + 1}`,
|
||||
source: "广西决策咨询中心",
|
||||
publishTime: `2024-12-${String(20 - i).padStart(2, "0")}`,
|
||||
views: Math.floor(Math.random() * 2e3) + 100,
|
||||
type: activeType.value || props.config.categories[i % props.config.categories.length]?.type
|
||||
}));
|
||||
} catch (e) {
|
||||
message.error("加载失败");
|
||||
} finally {
|
||||
loading.value = false;
|
||||
}
|
||||
}
|
||||
function handlePageChange(page) {
|
||||
currentPage.value = page;
|
||||
loadArticles();
|
||||
(void 0).scrollTo({ top: 0, behavior: "smooth" });
|
||||
}
|
||||
function handleView(article) {
|
||||
router.push(`/article/${article.id}`);
|
||||
}
|
||||
watch(() => route.query.type, (newType) => {
|
||||
activeType.value = newType || "";
|
||||
currentPage.value = 1;
|
||||
loadArticles();
|
||||
});
|
||||
return (_ctx, _push, _parent, _attrs) => {
|
||||
const _component_a_row = resolveComponent("a-row");
|
||||
const _component_a_col = resolveComponent("a-col");
|
||||
const _component_a_skeleton = resolveComponent("a-skeleton");
|
||||
const _component_a_empty = resolveComponent("a-empty");
|
||||
const _component_a_pagination = resolveComponent("a-pagination");
|
||||
_push(`<div${ssrRenderAttrs(mergeProps({ class: "list-page" }, _attrs))} data-v-adab0af3><div class="page-banner" style="${ssrRenderStyle({ background: __props.config.bannerGradient })}" data-v-adab0af3><div class="mx-auto max-w-screen-xl px-4" data-v-adab0af3><h1 class="banner-title" data-v-adab0af3>${ssrInterpolate(__props.config.title)}</h1><p class="banner-desc" data-v-adab0af3>${ssrInterpolate(__props.config.desc)}</p></div></div><div class="mx-auto max-w-screen-xl px-4 py-8" data-v-adab0af3>`);
|
||||
_push(ssrRenderComponent(_component_a_row, { gutter: [32, 0] }, {
|
||||
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
||||
if (_push2) {
|
||||
_push2(ssrRenderComponent(_component_a_col, {
|
||||
xs: 24,
|
||||
lg: 5,
|
||||
class: "mb-6 lg:mb-0"
|
||||
}, {
|
||||
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
|
||||
if (_push3) {
|
||||
_push3(`<div class="category-sidebar" data-v-adab0af3${_scopeId2}><div class="category-sidebar-title" data-v-adab0af3${_scopeId2}>${ssrInterpolate(__props.config.title)}</div><!--[-->`);
|
||||
ssrRenderList(__props.config.categories, (cat) => {
|
||||
_push3(`<div class="${ssrRenderClass([{ active: unref(activeType) === cat.type }, "category-item"])}" data-v-adab0af3${_scopeId2}>${ssrInterpolate(cat.label)}</div>`);
|
||||
});
|
||||
_push3(`<!--]--></div>`);
|
||||
} else {
|
||||
return [
|
||||
createVNode("div", { class: "category-sidebar" }, [
|
||||
createVNode("div", { class: "category-sidebar-title" }, toDisplayString(__props.config.title), 1),
|
||||
(openBlock(true), createBlock(Fragment, null, renderList(__props.config.categories, (cat) => {
|
||||
return openBlock(), createBlock("div", {
|
||||
key: cat.type,
|
||||
class: ["category-item", { active: unref(activeType) === cat.type }],
|
||||
onClick: ($event) => selectType(cat.type)
|
||||
}, toDisplayString(cat.label), 11, ["onClick"]);
|
||||
}), 128))
|
||||
])
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent2, _scopeId));
|
||||
_push2(ssrRenderComponent(_component_a_col, {
|
||||
xs: 24,
|
||||
lg: 19
|
||||
}, {
|
||||
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
|
||||
if (_push3) {
|
||||
_push3(`<div class="category-breadcrumb" data-v-adab0af3${_scopeId2}><span class="category-name" data-v-adab0af3${_scopeId2}>${ssrInterpolate(unref(currentCategoryLabel))}</span><span class="article-count" data-v-adab0af3${_scopeId2}>共 ${ssrInterpolate(unref(total))} 篇文章</span></div>`);
|
||||
if (unref(loading)) {
|
||||
_push3(`<div class="loading-state" data-v-adab0af3${_scopeId2}><!--[-->`);
|
||||
ssrRenderList(5, (i) => {
|
||||
_push3(ssrRenderComponent(_component_a_skeleton, {
|
||||
key: i,
|
||||
active: "",
|
||||
paragraph: { rows: 2 },
|
||||
style: { "margin-bottom": "16px" }
|
||||
}, null, _parent3, _scopeId2));
|
||||
});
|
||||
_push3(`<!--]--></div>`);
|
||||
} else {
|
||||
_push3(`<div data-v-adab0af3${_scopeId2}><div class="article-list" data-v-adab0af3${_scopeId2}><!--[-->`);
|
||||
ssrRenderList(unref(articles), (article) => {
|
||||
_push3(`<div class="article-item" data-v-adab0af3${_scopeId2}>`);
|
||||
if (article.image) {
|
||||
_push3(`<div class="article-thumb" data-v-adab0af3${_scopeId2}><img${ssrRenderAttr("src", article.image)}${ssrRenderAttr("alt", article.title)} data-v-adab0af3${_scopeId2}></div>`);
|
||||
} else {
|
||||
_push3(`<!---->`);
|
||||
}
|
||||
_push3(`<div class="article-main" data-v-adab0af3${_scopeId2}><h3 class="article-title" data-v-adab0af3${_scopeId2}>${ssrInterpolate(article.title)}</h3><p class="article-overview" data-v-adab0af3${_scopeId2}>${ssrInterpolate(article.overview)}</p><div class="article-meta" data-v-adab0af3${_scopeId2}>`);
|
||||
if (article.type) {
|
||||
_push3(`<span class="meta-tag" data-v-adab0af3${_scopeId2}>${ssrInterpolate(getCategoryLabel(article.type))}</span>`);
|
||||
} else {
|
||||
_push3(`<!---->`);
|
||||
}
|
||||
_push3(`<span class="meta-item" data-v-adab0af3${_scopeId2}>${ssrInterpolate(article.source)}</span><span class="meta-item" data-v-adab0af3${_scopeId2}>${ssrInterpolate(article.publishTime)}</span>`);
|
||||
if (article.views) {
|
||||
_push3(`<span class="meta-item" data-v-adab0af3${_scopeId2}>👁 ${ssrInterpolate(article.views)}</span>`);
|
||||
} else {
|
||||
_push3(`<!---->`);
|
||||
}
|
||||
_push3(`</div></div></div>`);
|
||||
});
|
||||
_push3(`<!--]--></div>`);
|
||||
if (unref(articles).length === 0) {
|
||||
_push3(`<div class="empty-state" data-v-adab0af3${_scopeId2}>`);
|
||||
_push3(ssrRenderComponent(_component_a_empty, { description: "暂无内容" }, null, _parent3, _scopeId2));
|
||||
_push3(`</div>`);
|
||||
} else {
|
||||
_push3(`<!---->`);
|
||||
}
|
||||
if (unref(total) > unref(pageSize)) {
|
||||
_push3(`<div class="pagination-wrap" data-v-adab0af3${_scopeId2}>`);
|
||||
_push3(ssrRenderComponent(_component_a_pagination, {
|
||||
current: unref(currentPage),
|
||||
"onUpdate:current": ($event) => isRef(currentPage) ? currentPage.value = $event : null,
|
||||
total: unref(total),
|
||||
"page-size": unref(pageSize),
|
||||
"show-quick-jumper": "",
|
||||
onChange: handlePageChange
|
||||
}, null, _parent3, _scopeId2));
|
||||
_push3(`</div>`);
|
||||
} else {
|
||||
_push3(`<!---->`);
|
||||
}
|
||||
_push3(`</div>`);
|
||||
}
|
||||
} else {
|
||||
return [
|
||||
createVNode("div", { class: "category-breadcrumb" }, [
|
||||
createVNode("span", { class: "category-name" }, toDisplayString(unref(currentCategoryLabel)), 1),
|
||||
createVNode("span", { class: "article-count" }, "共 " + toDisplayString(unref(total)) + " 篇文章", 1)
|
||||
]),
|
||||
unref(loading) ? (openBlock(), createBlock("div", {
|
||||
key: 0,
|
||||
class: "loading-state"
|
||||
}, [
|
||||
(openBlock(), createBlock(Fragment, null, renderList(5, (i) => {
|
||||
return createVNode(_component_a_skeleton, {
|
||||
key: i,
|
||||
active: "",
|
||||
paragraph: { rows: 2 },
|
||||
style: { "margin-bottom": "16px" }
|
||||
});
|
||||
}), 64))
|
||||
])) : (openBlock(), createBlock("div", { key: 1 }, [
|
||||
createVNode("div", { class: "article-list" }, [
|
||||
(openBlock(true), createBlock(Fragment, null, renderList(unref(articles), (article) => {
|
||||
return openBlock(), createBlock("div", {
|
||||
key: article.id,
|
||||
class: "article-item",
|
||||
onClick: ($event) => handleView(article)
|
||||
}, [
|
||||
article.image ? (openBlock(), createBlock("div", {
|
||||
key: 0,
|
||||
class: "article-thumb"
|
||||
}, [
|
||||
createVNode("img", {
|
||||
src: article.image,
|
||||
alt: article.title
|
||||
}, null, 8, ["src", "alt"])
|
||||
])) : createCommentVNode("", true),
|
||||
createVNode("div", { class: "article-main" }, [
|
||||
createVNode("h3", { class: "article-title" }, toDisplayString(article.title), 1),
|
||||
createVNode("p", { class: "article-overview" }, toDisplayString(article.overview), 1),
|
||||
createVNode("div", { class: "article-meta" }, [
|
||||
article.type ? (openBlock(), createBlock("span", {
|
||||
key: 0,
|
||||
class: "meta-tag"
|
||||
}, toDisplayString(getCategoryLabel(article.type)), 1)) : createCommentVNode("", true),
|
||||
createVNode("span", { class: "meta-item" }, toDisplayString(article.source), 1),
|
||||
createVNode("span", { class: "meta-item" }, toDisplayString(article.publishTime), 1),
|
||||
article.views ? (openBlock(), createBlock("span", {
|
||||
key: 1,
|
||||
class: "meta-item"
|
||||
}, "👁 " + toDisplayString(article.views), 1)) : createCommentVNode("", true)
|
||||
])
|
||||
])
|
||||
], 8, ["onClick"]);
|
||||
}), 128))
|
||||
]),
|
||||
unref(articles).length === 0 ? (openBlock(), createBlock("div", {
|
||||
key: 0,
|
||||
class: "empty-state"
|
||||
}, [
|
||||
createVNode(_component_a_empty, { description: "暂无内容" })
|
||||
])) : createCommentVNode("", true),
|
||||
unref(total) > unref(pageSize) ? (openBlock(), createBlock("div", {
|
||||
key: 1,
|
||||
class: "pagination-wrap"
|
||||
}, [
|
||||
createVNode(_component_a_pagination, {
|
||||
current: unref(currentPage),
|
||||
"onUpdate:current": ($event) => isRef(currentPage) ? currentPage.value = $event : null,
|
||||
total: unref(total),
|
||||
"page-size": unref(pageSize),
|
||||
"show-quick-jumper": "",
|
||||
onChange: handlePageChange
|
||||
}, null, 8, ["current", "onUpdate:current", "total", "page-size"])
|
||||
])) : createCommentVNode("", true)
|
||||
]))
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent2, _scopeId));
|
||||
} else {
|
||||
return [
|
||||
createVNode(_component_a_col, {
|
||||
xs: 24,
|
||||
lg: 5,
|
||||
class: "mb-6 lg:mb-0"
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createVNode("div", { class: "category-sidebar" }, [
|
||||
createVNode("div", { class: "category-sidebar-title" }, toDisplayString(__props.config.title), 1),
|
||||
(openBlock(true), createBlock(Fragment, null, renderList(__props.config.categories, (cat) => {
|
||||
return openBlock(), createBlock("div", {
|
||||
key: cat.type,
|
||||
class: ["category-item", { active: unref(activeType) === cat.type }],
|
||||
onClick: ($event) => selectType(cat.type)
|
||||
}, toDisplayString(cat.label), 11, ["onClick"]);
|
||||
}), 128))
|
||||
])
|
||||
]),
|
||||
_: 1
|
||||
}),
|
||||
createVNode(_component_a_col, {
|
||||
xs: 24,
|
||||
lg: 19
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createVNode("div", { class: "category-breadcrumb" }, [
|
||||
createVNode("span", { class: "category-name" }, toDisplayString(unref(currentCategoryLabel)), 1),
|
||||
createVNode("span", { class: "article-count" }, "共 " + toDisplayString(unref(total)) + " 篇文章", 1)
|
||||
]),
|
||||
unref(loading) ? (openBlock(), createBlock("div", {
|
||||
key: 0,
|
||||
class: "loading-state"
|
||||
}, [
|
||||
(openBlock(), createBlock(Fragment, null, renderList(5, (i) => {
|
||||
return createVNode(_component_a_skeleton, {
|
||||
key: i,
|
||||
active: "",
|
||||
paragraph: { rows: 2 },
|
||||
style: { "margin-bottom": "16px" }
|
||||
});
|
||||
}), 64))
|
||||
])) : (openBlock(), createBlock("div", { key: 1 }, [
|
||||
createVNode("div", { class: "article-list" }, [
|
||||
(openBlock(true), createBlock(Fragment, null, renderList(unref(articles), (article) => {
|
||||
return openBlock(), createBlock("div", {
|
||||
key: article.id,
|
||||
class: "article-item",
|
||||
onClick: ($event) => handleView(article)
|
||||
}, [
|
||||
article.image ? (openBlock(), createBlock("div", {
|
||||
key: 0,
|
||||
class: "article-thumb"
|
||||
}, [
|
||||
createVNode("img", {
|
||||
src: article.image,
|
||||
alt: article.title
|
||||
}, null, 8, ["src", "alt"])
|
||||
])) : createCommentVNode("", true),
|
||||
createVNode("div", { class: "article-main" }, [
|
||||
createVNode("h3", { class: "article-title" }, toDisplayString(article.title), 1),
|
||||
createVNode("p", { class: "article-overview" }, toDisplayString(article.overview), 1),
|
||||
createVNode("div", { class: "article-meta" }, [
|
||||
article.type ? (openBlock(), createBlock("span", {
|
||||
key: 0,
|
||||
class: "meta-tag"
|
||||
}, toDisplayString(getCategoryLabel(article.type)), 1)) : createCommentVNode("", true),
|
||||
createVNode("span", { class: "meta-item" }, toDisplayString(article.source), 1),
|
||||
createVNode("span", { class: "meta-item" }, toDisplayString(article.publishTime), 1),
|
||||
article.views ? (openBlock(), createBlock("span", {
|
||||
key: 1,
|
||||
class: "meta-item"
|
||||
}, "👁 " + toDisplayString(article.views), 1)) : createCommentVNode("", true)
|
||||
])
|
||||
])
|
||||
], 8, ["onClick"]);
|
||||
}), 128))
|
||||
]),
|
||||
unref(articles).length === 0 ? (openBlock(), createBlock("div", {
|
||||
key: 0,
|
||||
class: "empty-state"
|
||||
}, [
|
||||
createVNode(_component_a_empty, { description: "暂无内容" })
|
||||
])) : createCommentVNode("", true),
|
||||
unref(total) > unref(pageSize) ? (openBlock(), createBlock("div", {
|
||||
key: 1,
|
||||
class: "pagination-wrap"
|
||||
}, [
|
||||
createVNode(_component_a_pagination, {
|
||||
current: unref(currentPage),
|
||||
"onUpdate:current": ($event) => isRef(currentPage) ? currentPage.value = $event : null,
|
||||
total: unref(total),
|
||||
"page-size": unref(pageSize),
|
||||
"show-quick-jumper": "",
|
||||
onChange: handlePageChange
|
||||
}, null, 8, ["current", "onUpdate:current", "total", "page-size"])
|
||||
])) : createCommentVNode("", true)
|
||||
]))
|
||||
]),
|
||||
_: 1
|
||||
})
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent));
|
||||
_push(`</div></div>`);
|
||||
};
|
||||
}
|
||||
});
|
||||
const _sfc_setup = _sfc_main.setup;
|
||||
_sfc_main.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/ArticleListPage.vue");
|
||||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||||
};
|
||||
const __nuxt_component_0 = /* @__PURE__ */ Object.assign(_export_sfc(_sfc_main, [["__scopeId", "data-v-adab0af3"]]), { __name: "ArticleListPage" });
|
||||
|
||||
export { __nuxt_component_0 as _ };
|
||||
//# sourceMappingURL=ArticleListPage-Di4R26TI.mjs.map
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,8 @@
|
||||
const ArticleListPage_vue_vue_type_style_index_0_scoped_adab0af3_lang = ".list-page[data-v-adab0af3]{background:#f5f7fa;min-height:60vh}.page-banner[data-v-adab0af3]{overflow:hidden;padding:48px 0 32px;position:relative}.banner-title[data-v-adab0af3]{color:#fff;font-size:30px;font-weight:700;margin:0 0 8px}.banner-desc[data-v-adab0af3]{color:#ffffffbf;font-size:15px;margin:0}.category-sidebar[data-v-adab0af3]{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;overflow:hidden;position:sticky;top:80px}.category-sidebar-title[data-v-adab0af3]{background:#1e3a5f;color:#fff;font-size:14px;font-weight:600;padding:14px 18px}.category-item[data-v-adab0af3]{border-bottom:1px solid #f5f5f5;color:#374151;cursor:pointer;font-size:14px;padding:12px 18px;transition:all .2s}.category-item[data-v-adab0af3]:hover{background:#f0f7ff;color:#1e3a5f}.category-item.active[data-v-adab0af3]{background:#eff6ff;border-left:3px solid #1e3a5f;color:#1e3a5f;font-weight:600}.category-breadcrumb[data-v-adab0af3]{align-items:center;background:#fff;border-radius:8px;box-shadow:0 1px 4px #0000000a;display:flex;justify-content:space-between;margin-bottom:16px;padding:12px 16px}.category-name[data-v-adab0af3]{color:#1e3a5f;font-size:16px;font-weight:700}.article-count[data-v-adab0af3]{color:#9ca3af;font-size:13px}.article-list[data-v-adab0af3]{display:flex;flex-direction:column;gap:12px}.article-item[data-v-adab0af3]{background:#fff;border-radius:12px;box-shadow:0 2px 6px #0000000d;cursor:pointer;display:flex;gap:20px;padding:20px;transition:all .2s}.article-item[data-v-adab0af3]:hover{box-shadow:0 4px 16px #0000001a;transform:translateY(-2px)}.article-thumb[data-v-adab0af3]{border-radius:8px;flex-shrink:0;height:108px;overflow:hidden;width:160px}.article-thumb img[data-v-adab0af3]{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.article-main[data-v-adab0af3]{display:flex;flex:1;flex-direction:column}.article-title[data-v-adab0af3]{color:#1f2937;font-size:17px;font-weight:600;line-height:1.4;margin:0 0 8px}.article-overview[data-v-adab0af3],.article-title[data-v-adab0af3]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.article-overview[data-v-adab0af3]{color:#6b7280;font-size:13px;line-height:1.6;margin:0 0 auto}.article-meta[data-v-adab0af3]{align-items:center;display:flex;gap:12px;margin-top:12px}.meta-tag[data-v-adab0af3]{background:#eff6ff;border-radius:4px;color:#1e40af;font-size:11px;font-weight:500;padding:2px 8px}.meta-item[data-v-adab0af3]{color:#9ca3af;font-size:12px}.loading-state[data-v-adab0af3]{padding:20px}.empty-state[data-v-adab0af3],.loading-state[data-v-adab0af3]{background:#fff;border-radius:12px}.empty-state[data-v-adab0af3]{padding:60px;text-align:center}.pagination-wrap[data-v-adab0af3]{margin-top:32px;padding-bottom:20px;text-align:center}@media(max-width:768px){.article-item[data-v-adab0af3]{flex-direction:column}.article-thumb[data-v-adab0af3]{height:180px;width:100%}}";
|
||||
|
||||
const ArticleListPageStyles_5pGQ95SC = [
|
||||
ArticleListPage_vue_vue_type_style_index_0_scoped_adab0af3_lang
|
||||
];
|
||||
|
||||
export { ArticleListPageStyles_5pGQ95SC as default };
|
||||
//# sourceMappingURL=ArticleListPage-styles.5pGQ95SC.mjs.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"ArticleListPage-styles.5pGQ95SC.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/ArticleListPage-styles.5pGQ95SC.mjs"],"names":["style_0"],"mappings":"","x_google_ignoreList":[0]}
|
||||
@@ -0,0 +1,8 @@
|
||||
const MarkdownEditor_vue_vue_type_style_index_0_scoped_32212c95_lang = ".markdown-editor-wrapper[data-v-32212c95]{background:#fff;border:1px solid #d9d9d9;border-radius:8px;display:flex;flex-direction:column;overflow:hidden}.markdown-editor-wrapper.fullscreen[data-v-32212c95]{border-radius:0;inset:0;position:fixed;z-index:1000}.editor-toolbar[data-v-32212c95]{align-items:center;background:#fafafa;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;padding:8px 12px}.toolbar-left[data-v-32212c95]{flex:1}.toolbar-right[data-v-32212c95]{margin-left:12px}.toolbar-icon[data-v-32212c95]{font-family:Georgia,serif;font-size:12px;font-weight:700}.toolbar-icon.bold[data-v-32212c95]{font-weight:900}.toolbar-icon.italic[data-v-32212c95]{font-style:italic}.editor-body[data-v-32212c95]{display:flex;flex:1;min-height:var(--edb1d3d0);overflow:hidden}.editor-pane[data-v-32212c95]{display:flex;flex:1;flex-direction:column}.markdown-textarea[data-v-32212c95]{background:#fff;border:none;color:#24292e;flex:1;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:14px;line-height:1.7;outline:none;padding:16px;resize:none}.markdown-textarea[data-v-32212c95]::-moz-placeholder{color:#aaa}.markdown-textarea[data-v-32212c95]::placeholder{color:#aaa}.preview-pane[data-v-32212c95]{border-left:1px solid #f0f0f0;display:flex;flex:1;flex-direction:column;overflow:hidden}.preview-label[data-v-32212c95]{background:#fafafa;border-bottom:1px solid #f0f0f0;color:#999;font-size:12px;padding:8px 16px}.markdown-preview[data-v-32212c95]{color:#24292e;flex:1;font-size:14px;line-height:1.8;overflow-y:auto;padding:16px}.markdown-preview[data-v-32212c95] .error-hint,.markdown-preview[data-v-32212c95] .placeholder-hint{color:#aaa;font-style:italic}.markdown-preview[data-v-32212c95] h1{border-bottom:1px solid #eaecef;font-size:1.8em;font-weight:700;margin:.5em 0;padding-bottom:.3em}.markdown-preview[data-v-32212c95] h2{border-bottom:1px solid #eaecef;font-size:1.5em;font-weight:600;margin:.8em 0 .4em;padding-bottom:.25em}.markdown-preview[data-v-32212c95] h3{font-size:1.25em;font-weight:600;margin:.6em 0 .3em}.markdown-preview[data-v-32212c95] p{margin:.8em 0}.markdown-preview[data-v-32212c95] code{background:#f6f8fa;border-radius:4px;font-family:Monaco,Menlo,monospace;font-size:.9em;padding:.2em .4em}.markdown-preview[data-v-32212c95] pre{background:#f6f8fa;border-radius:8px;overflow-x:auto;padding:16px}.markdown-preview[data-v-32212c95] pre code{background:transparent;padding:0}.markdown-preview[data-v-32212c95] blockquote{background:#f6f8fa;border-left:4px solid #dfe2e5;color:#6a737d;margin:1em 0;padding:.5em 1em}.markdown-preview[data-v-32212c95] ol,.markdown-preview[data-v-32212c95] ul{margin:.8em 0;padding-left:2em}.markdown-preview[data-v-32212c95] li{margin:.3em 0}.markdown-preview[data-v-32212c95] a{color:#0366d6;text-decoration:none}.markdown-preview[data-v-32212c95] a:hover{text-decoration:underline}.markdown-preview[data-v-32212c95] img{border-radius:8px;max-width:100%}.markdown-preview[data-v-32212c95] hr{border:none;border-top:1px solid #dfe2e5;margin:1.5em 0}.markdown-preview[data-v-32212c95] table{border-collapse:collapse;margin:1em 0;width:100%}.markdown-preview[data-v-32212c95] td,.markdown-preview[data-v-32212c95] th{border:1px solid #dfe2e5;padding:8px 12px}.markdown-preview[data-v-32212c95] th{background:#f6f8fa;font-weight:600}.editor-footer[data-v-32212c95]{background:#fafafa;border-top:1px solid #f0f0f0;color:#999;display:flex;font-size:12px;gap:16px;padding:6px 12px}";
|
||||
|
||||
const MarkdownEditorStyles_kFav7KGy = [
|
||||
MarkdownEditor_vue_vue_type_style_index_0_scoped_32212c95_lang
|
||||
];
|
||||
|
||||
export { MarkdownEditorStyles_kFav7KGy as default };
|
||||
//# sourceMappingURL=MarkdownEditor-styles.kFav7KGy.mjs.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"MarkdownEditor-styles.kFav7KGy.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/MarkdownEditor-styles.kFav7KGy.mjs"],"names":["style_0"],"mappings":"","x_google_ignoreList":[0]}
|
||||
@@ -0,0 +1,8 @@
|
||||
const MarkdownRenderer_vue_vue_type_style_index_0_scoped_1fb533b6_lang = ".markdown-renderer[data-v-1fb533b6]{color:#000000d9;font-size:15px;line-height:1.8}.markdown-renderer[data-v-1fb533b6] h1{border-bottom:1px solid #eaecef;font-size:1.8em;font-weight:700;margin:.5em 0;padding-bottom:.3em}.markdown-renderer[data-v-1fb533b6] h2{border-bottom:1px solid #eaecef;font-size:1.5em;font-weight:600;margin:.8em 0 .4em;padding-bottom:.25em}.markdown-renderer[data-v-1fb533b6] h3{font-size:1.25em;font-weight:600;margin:.6em 0 .3em}.markdown-renderer[data-v-1fb533b6] h4,.markdown-renderer[data-v-1fb533b6] h5,.markdown-renderer[data-v-1fb533b6] h6{font-weight:600;margin:.5em 0}.markdown-renderer[data-v-1fb533b6] p{margin:.8em 0}.markdown-renderer[data-v-1fb533b6] code{background:#f6f8fa;border-radius:4px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.9em;padding:.2em .4em}.markdown-renderer[data-v-1fb533b6] pre{background:#f6f8fa;border-radius:8px;margin:1em 0;overflow-x:auto;padding:16px}.markdown-renderer[data-v-1fb533b6] pre code{background:transparent;font-size:.9em;padding:0}.markdown-renderer[data-v-1fb533b6] blockquote{background:#f6f8fa;border-left:4px solid #dfe2e5;border-radius:0 8px 8px 0;color:#6a737d;margin:1em 0;padding:.5em 1em}.markdown-renderer[data-v-1fb533b6] blockquote p{margin:.3em 0}.markdown-renderer[data-v-1fb533b6] ol,.markdown-renderer[data-v-1fb533b6] ul{margin:.8em 0;padding-left:2em}.markdown-renderer[data-v-1fb533b6] li{margin:.3em 0}.markdown-renderer[data-v-1fb533b6] a{color:#1890ff;text-decoration:none}.markdown-renderer[data-v-1fb533b6] a:hover{text-decoration:underline}.markdown-renderer[data-v-1fb533b6] img{border-radius:8px;box-shadow:0 2px 8px #0000001a;margin:1em 0;max-width:100%}.markdown-renderer[data-v-1fb533b6] hr{border:none;border-top:1px solid #dfe2e5;margin:1.5em 0}.markdown-renderer[data-v-1fb533b6] table{border-collapse:collapse;border-radius:8px;margin:1em 0;overflow:hidden;width:100%}.markdown-renderer[data-v-1fb533b6] td,.markdown-renderer[data-v-1fb533b6] th{border:1px solid #dfe2e5;padding:10px 14px}.markdown-renderer[data-v-1fb533b6] th{background:#f6f8fa;font-weight:600}.markdown-renderer[data-v-1fb533b6] tr:hover{background:#fafafa}.markdown-renderer[data-v-1fb533b6] input[type=checkbox]{margin-right:.5em}";
|
||||
|
||||
const MarkdownRendererStyles_CPVHrHTE = [
|
||||
MarkdownRenderer_vue_vue_type_style_index_0_scoped_1fb533b6_lang
|
||||
];
|
||||
|
||||
export { MarkdownRendererStyles_CPVHrHTE as default };
|
||||
//# sourceMappingURL=MarkdownRenderer-styles.CPVHrHTE.mjs.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"MarkdownRenderer-styles.CPVHrHTE.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/MarkdownRenderer-styles.CPVHrHTE.mjs"],"names":["style_0"],"mappings":"","x_google_ignoreList":[0]}
|
||||
@@ -0,0 +1,8 @@
|
||||
const github = "pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#fff;color:#24292e}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#005cc5}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-code,.hljs-comment,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{background-color:#f0fff4;color:#22863a}.hljs-deletion{background-color:#ffeef0;color:#b31d28}";
|
||||
|
||||
const MarkdownRendererStyles_DP2Xtouh = [
|
||||
github
|
||||
];
|
||||
|
||||
export { MarkdownRendererStyles_DP2Xtouh as default };
|
||||
//# sourceMappingURL=MarkdownRenderer-styles.DP2Xtouh.mjs.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"MarkdownRenderer-styles.DP2Xtouh.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/MarkdownRenderer-styles.DP2Xtouh.mjs"],"names":["style_0"],"mappings":"","x_google_ignoreList":[0]}
|
||||
70
.output/server/chunks/build/ProseA-DDsnum9F.mjs
Normal file
70
.output/server/chunks/build/ProseA-DDsnum9F.mjs
Normal file
@@ -0,0 +1,70 @@
|
||||
import { _ as __nuxt_component_0 } from './server.mjs';
|
||||
import { mergeProps, withCtx, renderSlot, useSSRContext } from 'vue';
|
||||
import { ssrRenderComponent, ssrRenderSlot } from 'vue/server-renderer';
|
||||
import '../nitro/nitro.mjs';
|
||||
import 'node:http';
|
||||
import 'node:https';
|
||||
import 'node:events';
|
||||
import 'node:buffer';
|
||||
import 'node:fs';
|
||||
import 'node:path';
|
||||
import 'node:crypto';
|
||||
import 'node:url';
|
||||
import 'better-sqlite3';
|
||||
import 'vue-router';
|
||||
import 'ant-design-vue';
|
||||
import '@babel/runtime/helpers/esm/extends';
|
||||
import 'stylis';
|
||||
import 'dayjs';
|
||||
import '../routes/renderer.mjs';
|
||||
import 'vue-bundle-renderer/runtime';
|
||||
import 'unhead/server';
|
||||
import 'devalue';
|
||||
import 'unhead/plugins';
|
||||
import 'unhead/utils';
|
||||
|
||||
const _sfc_main = {
|
||||
__name: "ProseA",
|
||||
__ssrInlineRender: true,
|
||||
props: {
|
||||
href: {
|
||||
type: String,
|
||||
default: ""
|
||||
},
|
||||
target: {
|
||||
type: String,
|
||||
default: void 0,
|
||||
required: false
|
||||
}
|
||||
},
|
||||
setup(__props) {
|
||||
const props = __props;
|
||||
return (_ctx, _push, _parent, _attrs) => {
|
||||
const _component_NuxtLink = __nuxt_component_0;
|
||||
_push(ssrRenderComponent(_component_NuxtLink, mergeProps({
|
||||
href: props.href,
|
||||
target: props.target
|
||||
}, _attrs), {
|
||||
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
||||
if (_push2) {
|
||||
ssrRenderSlot(_ctx.$slots, "default", {}, null, _push2, _parent2, _scopeId);
|
||||
} else {
|
||||
return [
|
||||
renderSlot(_ctx.$slots, "default")
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 3
|
||||
}, _parent));
|
||||
};
|
||||
}
|
||||
};
|
||||
const _sfc_setup = _sfc_main.setup;
|
||||
_sfc_main.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("../node_modules/.pnpm/@nuxtjs+mdc@0.20.2_magicast@0.5.1/node_modules/@nuxtjs/mdc/dist/runtime/components/prose/ProseA.vue");
|
||||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||||
};
|
||||
|
||||
export { _sfc_main as default };
|
||||
//# sourceMappingURL=ProseA-DDsnum9F.mjs.map
|
||||
1
.output/server/chunks/build/ProseA-DDsnum9F.mjs.map
Normal file
1
.output/server/chunks/build/ProseA-DDsnum9F.mjs.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"ProseA-DDsnum9F.mjs","sources":["../../../../node_modules/.pnpm/@nuxtjs+mdc@0.20.2_magicast@0.5.1/node_modules/@nuxtjs/mdc/dist/runtime/components/prose/ProseA.vue"],"names":["_push","_parent","_renderSlot"],"mappings":"","x_google_ignoreList":[0]}
|
||||
41
.output/server/chunks/build/ProseBlockquote-CayFHhs2.mjs
Normal file
41
.output/server/chunks/build/ProseBlockquote-CayFHhs2.mjs
Normal file
@@ -0,0 +1,41 @@
|
||||
import { ssrRenderAttrs, ssrRenderSlot } from 'vue/server-renderer';
|
||||
import { useSSRContext } from 'vue';
|
||||
import { a as _export_sfc } from './server.mjs';
|
||||
import '../nitro/nitro.mjs';
|
||||
import 'node:http';
|
||||
import 'node:https';
|
||||
import 'node:events';
|
||||
import 'node:buffer';
|
||||
import 'node:fs';
|
||||
import 'node:path';
|
||||
import 'node:crypto';
|
||||
import 'node:url';
|
||||
import 'better-sqlite3';
|
||||
import 'vue-router';
|
||||
import 'ant-design-vue';
|
||||
import '@babel/runtime/helpers/esm/extends';
|
||||
import 'stylis';
|
||||
import 'dayjs';
|
||||
import '../routes/renderer.mjs';
|
||||
import 'vue-bundle-renderer/runtime';
|
||||
import 'unhead/server';
|
||||
import 'devalue';
|
||||
import 'unhead/plugins';
|
||||
import 'unhead/utils';
|
||||
|
||||
const _sfc_main = {};
|
||||
function _sfc_ssrRender(_ctx, _push, _parent, _attrs) {
|
||||
_push(`<blockquote${ssrRenderAttrs(_attrs)}>`);
|
||||
ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent);
|
||||
_push(`</blockquote>`);
|
||||
}
|
||||
const _sfc_setup = _sfc_main.setup;
|
||||
_sfc_main.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("../node_modules/.pnpm/@nuxtjs+mdc@0.20.2_magicast@0.5.1/node_modules/@nuxtjs/mdc/dist/runtime/components/prose/ProseBlockquote.vue");
|
||||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||||
};
|
||||
const ProseBlockquote = /* @__PURE__ */ Object.assign(_export_sfc(_sfc_main, [["ssrRender", _sfc_ssrRender]]), { __name: "ProseBlockquote" });
|
||||
|
||||
export { ProseBlockquote as default };
|
||||
//# sourceMappingURL=ProseBlockquote-CayFHhs2.mjs.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"ProseBlockquote-CayFHhs2.mjs","sources":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
||||
41
.output/server/chunks/build/ProseCode-HLgL7sXg.mjs
Normal file
41
.output/server/chunks/build/ProseCode-HLgL7sXg.mjs
Normal file
@@ -0,0 +1,41 @@
|
||||
import { ssrRenderAttrs, ssrRenderSlot } from 'vue/server-renderer';
|
||||
import { useSSRContext } from 'vue';
|
||||
import { a as _export_sfc } from './server.mjs';
|
||||
import '../nitro/nitro.mjs';
|
||||
import 'node:http';
|
||||
import 'node:https';
|
||||
import 'node:events';
|
||||
import 'node:buffer';
|
||||
import 'node:fs';
|
||||
import 'node:path';
|
||||
import 'node:crypto';
|
||||
import 'node:url';
|
||||
import 'better-sqlite3';
|
||||
import 'vue-router';
|
||||
import 'ant-design-vue';
|
||||
import '@babel/runtime/helpers/esm/extends';
|
||||
import 'stylis';
|
||||
import 'dayjs';
|
||||
import '../routes/renderer.mjs';
|
||||
import 'vue-bundle-renderer/runtime';
|
||||
import 'unhead/server';
|
||||
import 'devalue';
|
||||
import 'unhead/plugins';
|
||||
import 'unhead/utils';
|
||||
|
||||
const _sfc_main = {};
|
||||
function _sfc_ssrRender(_ctx, _push, _parent, _attrs) {
|
||||
_push(`<code${ssrRenderAttrs(_attrs)}>`);
|
||||
ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent);
|
||||
_push(`</code>`);
|
||||
}
|
||||
const _sfc_setup = _sfc_main.setup;
|
||||
_sfc_main.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("../node_modules/.pnpm/@nuxtjs+mdc@0.20.2_magicast@0.5.1/node_modules/@nuxtjs/mdc/dist/runtime/components/prose/ProseCode.vue");
|
||||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||||
};
|
||||
const ProseCode = /* @__PURE__ */ Object.assign(_export_sfc(_sfc_main, [["ssrRender", _sfc_ssrRender]]), { __name: "ProseCode" });
|
||||
|
||||
export { ProseCode as default };
|
||||
//# sourceMappingURL=ProseCode-HLgL7sXg.mjs.map
|
||||
1
.output/server/chunks/build/ProseCode-HLgL7sXg.mjs.map
Normal file
1
.output/server/chunks/build/ProseCode-HLgL7sXg.mjs.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"ProseCode-HLgL7sXg.mjs","sources":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
||||
41
.output/server/chunks/build/ProseEm-kW4GpWSe.mjs
Normal file
41
.output/server/chunks/build/ProseEm-kW4GpWSe.mjs
Normal file
@@ -0,0 +1,41 @@
|
||||
import { ssrRenderAttrs, ssrRenderSlot } from 'vue/server-renderer';
|
||||
import { useSSRContext } from 'vue';
|
||||
import { a as _export_sfc } from './server.mjs';
|
||||
import '../nitro/nitro.mjs';
|
||||
import 'node:http';
|
||||
import 'node:https';
|
||||
import 'node:events';
|
||||
import 'node:buffer';
|
||||
import 'node:fs';
|
||||
import 'node:path';
|
||||
import 'node:crypto';
|
||||
import 'node:url';
|
||||
import 'better-sqlite3';
|
||||
import 'vue-router';
|
||||
import 'ant-design-vue';
|
||||
import '@babel/runtime/helpers/esm/extends';
|
||||
import 'stylis';
|
||||
import 'dayjs';
|
||||
import '../routes/renderer.mjs';
|
||||
import 'vue-bundle-renderer/runtime';
|
||||
import 'unhead/server';
|
||||
import 'devalue';
|
||||
import 'unhead/plugins';
|
||||
import 'unhead/utils';
|
||||
|
||||
const _sfc_main = {};
|
||||
function _sfc_ssrRender(_ctx, _push, _parent, _attrs) {
|
||||
_push(`<em${ssrRenderAttrs(_attrs)}>`);
|
||||
ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent);
|
||||
_push(`</em>`);
|
||||
}
|
||||
const _sfc_setup = _sfc_main.setup;
|
||||
_sfc_main.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("../node_modules/.pnpm/@nuxtjs+mdc@0.20.2_magicast@0.5.1/node_modules/@nuxtjs/mdc/dist/runtime/components/prose/ProseEm.vue");
|
||||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||||
};
|
||||
const ProseEm = /* @__PURE__ */ Object.assign(_export_sfc(_sfc_main, [["ssrRender", _sfc_ssrRender]]), { __name: "ProseEm" });
|
||||
|
||||
export { ProseEm as default };
|
||||
//# sourceMappingURL=ProseEm-kW4GpWSe.mjs.map
|
||||
1
.output/server/chunks/build/ProseEm-kW4GpWSe.mjs.map
Normal file
1
.output/server/chunks/build/ProseEm-kW4GpWSe.mjs.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"ProseEm-kW4GpWSe.mjs","sources":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
||||
59
.output/server/chunks/build/ProseH1-B8Gaqr9R.mjs
Normal file
59
.output/server/chunks/build/ProseH1-B8Gaqr9R.mjs
Normal file
@@ -0,0 +1,59 @@
|
||||
import { computed, mergeProps, unref, useSSRContext } from 'vue';
|
||||
import { ssrRenderAttrs, ssrRenderAttr, ssrRenderSlot } from 'vue/server-renderer';
|
||||
import { g as useRuntimeConfig } from './server.mjs';
|
||||
import '../nitro/nitro.mjs';
|
||||
import 'node:http';
|
||||
import 'node:https';
|
||||
import 'node:events';
|
||||
import 'node:buffer';
|
||||
import 'node:fs';
|
||||
import 'node:path';
|
||||
import 'node:crypto';
|
||||
import 'node:url';
|
||||
import 'better-sqlite3';
|
||||
import 'vue-router';
|
||||
import 'ant-design-vue';
|
||||
import '@babel/runtime/helpers/esm/extends';
|
||||
import 'stylis';
|
||||
import 'dayjs';
|
||||
import '../routes/renderer.mjs';
|
||||
import 'vue-bundle-renderer/runtime';
|
||||
import 'unhead/server';
|
||||
import 'devalue';
|
||||
import 'unhead/plugins';
|
||||
import 'unhead/utils';
|
||||
|
||||
const _sfc_main = {
|
||||
__name: "ProseH1",
|
||||
__ssrInlineRender: true,
|
||||
props: {
|
||||
id: { type: String, required: false }
|
||||
},
|
||||
setup(__props) {
|
||||
const props = __props;
|
||||
const { headings } = useRuntimeConfig().public.mdc;
|
||||
const generate = computed(() => props.id && (typeof headings?.anchorLinks === "boolean" && headings?.anchorLinks === true || typeof headings?.anchorLinks === "object" && headings?.anchorLinks?.h1));
|
||||
return (_ctx, _push, _parent, _attrs) => {
|
||||
_push(`<h1${ssrRenderAttrs(mergeProps({
|
||||
id: props.id
|
||||
}, _attrs))}>`);
|
||||
if (unref(generate)) {
|
||||
_push(`<a${ssrRenderAttr("href", `#${props.id}`)}>`);
|
||||
ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent);
|
||||
_push(`</a>`);
|
||||
} else {
|
||||
ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent);
|
||||
}
|
||||
_push(`</h1>`);
|
||||
};
|
||||
}
|
||||
};
|
||||
const _sfc_setup = _sfc_main.setup;
|
||||
_sfc_main.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("../node_modules/.pnpm/@nuxtjs+mdc@0.20.2_magicast@0.5.1/node_modules/@nuxtjs/mdc/dist/runtime/components/prose/ProseH1.vue");
|
||||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||||
};
|
||||
|
||||
export { _sfc_main as default };
|
||||
//# sourceMappingURL=ProseH1-B8Gaqr9R.mjs.map
|
||||
1
.output/server/chunks/build/ProseH1-B8Gaqr9R.mjs.map
Normal file
1
.output/server/chunks/build/ProseH1-B8Gaqr9R.mjs.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"ProseH1-B8Gaqr9R.mjs","sources":["../../../../node_modules/.pnpm/@nuxtjs+mdc@0.20.2_magicast@0.5.1/node_modules/@nuxtjs/mdc/dist/runtime/components/prose/ProseH1.vue"],"names":["_unref"],"mappings":"","x_google_ignoreList":[0]}
|
||||
59
.output/server/chunks/build/ProseH2-BrCjL_dH.mjs
Normal file
59
.output/server/chunks/build/ProseH2-BrCjL_dH.mjs
Normal file
@@ -0,0 +1,59 @@
|
||||
import { computed, mergeProps, unref, useSSRContext } from 'vue';
|
||||
import { ssrRenderAttrs, ssrRenderAttr, ssrRenderSlot } from 'vue/server-renderer';
|
||||
import { g as useRuntimeConfig } from './server.mjs';
|
||||
import '../nitro/nitro.mjs';
|
||||
import 'node:http';
|
||||
import 'node:https';
|
||||
import 'node:events';
|
||||
import 'node:buffer';
|
||||
import 'node:fs';
|
||||
import 'node:path';
|
||||
import 'node:crypto';
|
||||
import 'node:url';
|
||||
import 'better-sqlite3';
|
||||
import 'vue-router';
|
||||
import 'ant-design-vue';
|
||||
import '@babel/runtime/helpers/esm/extends';
|
||||
import 'stylis';
|
||||
import 'dayjs';
|
||||
import '../routes/renderer.mjs';
|
||||
import 'vue-bundle-renderer/runtime';
|
||||
import 'unhead/server';
|
||||
import 'devalue';
|
||||
import 'unhead/plugins';
|
||||
import 'unhead/utils';
|
||||
|
||||
const _sfc_main = {
|
||||
__name: "ProseH2",
|
||||
__ssrInlineRender: true,
|
||||
props: {
|
||||
id: { type: String, required: false }
|
||||
},
|
||||
setup(__props) {
|
||||
const props = __props;
|
||||
const { headings } = useRuntimeConfig().public.mdc;
|
||||
const generate = computed(() => props.id && (typeof headings?.anchorLinks === "boolean" && headings?.anchorLinks === true || typeof headings?.anchorLinks === "object" && headings?.anchorLinks?.h2));
|
||||
return (_ctx, _push, _parent, _attrs) => {
|
||||
_push(`<h2${ssrRenderAttrs(mergeProps({
|
||||
id: props.id
|
||||
}, _attrs))}>`);
|
||||
if (props.id && unref(generate)) {
|
||||
_push(`<a${ssrRenderAttr("href", `#${props.id}`)}>`);
|
||||
ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent);
|
||||
_push(`</a>`);
|
||||
} else {
|
||||
ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent);
|
||||
}
|
||||
_push(`</h2>`);
|
||||
};
|
||||
}
|
||||
};
|
||||
const _sfc_setup = _sfc_main.setup;
|
||||
_sfc_main.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("../node_modules/.pnpm/@nuxtjs+mdc@0.20.2_magicast@0.5.1/node_modules/@nuxtjs/mdc/dist/runtime/components/prose/ProseH2.vue");
|
||||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||||
};
|
||||
|
||||
export { _sfc_main as default };
|
||||
//# sourceMappingURL=ProseH2-BrCjL_dH.mjs.map
|
||||
1
.output/server/chunks/build/ProseH2-BrCjL_dH.mjs.map
Normal file
1
.output/server/chunks/build/ProseH2-BrCjL_dH.mjs.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"ProseH2-BrCjL_dH.mjs","sources":["../../../../node_modules/.pnpm/@nuxtjs+mdc@0.20.2_magicast@0.5.1/node_modules/@nuxtjs/mdc/dist/runtime/components/prose/ProseH2.vue"],"names":["_unref"],"mappings":"","x_google_ignoreList":[0]}
|
||||
59
.output/server/chunks/build/ProseH3-DvNJAiID.mjs
Normal file
59
.output/server/chunks/build/ProseH3-DvNJAiID.mjs
Normal file
@@ -0,0 +1,59 @@
|
||||
import { computed, mergeProps, unref, useSSRContext } from 'vue';
|
||||
import { ssrRenderAttrs, ssrRenderAttr, ssrRenderSlot } from 'vue/server-renderer';
|
||||
import { g as useRuntimeConfig } from './server.mjs';
|
||||
import '../nitro/nitro.mjs';
|
||||
import 'node:http';
|
||||
import 'node:https';
|
||||
import 'node:events';
|
||||
import 'node:buffer';
|
||||
import 'node:fs';
|
||||
import 'node:path';
|
||||
import 'node:crypto';
|
||||
import 'node:url';
|
||||
import 'better-sqlite3';
|
||||
import 'vue-router';
|
||||
import 'ant-design-vue';
|
||||
import '@babel/runtime/helpers/esm/extends';
|
||||
import 'stylis';
|
||||
import 'dayjs';
|
||||
import '../routes/renderer.mjs';
|
||||
import 'vue-bundle-renderer/runtime';
|
||||
import 'unhead/server';
|
||||
import 'devalue';
|
||||
import 'unhead/plugins';
|
||||
import 'unhead/utils';
|
||||
|
||||
const _sfc_main = {
|
||||
__name: "ProseH3",
|
||||
__ssrInlineRender: true,
|
||||
props: {
|
||||
id: { type: String, required: false }
|
||||
},
|
||||
setup(__props) {
|
||||
const props = __props;
|
||||
const { headings } = useRuntimeConfig().public.mdc;
|
||||
const generate = computed(() => props.id && (typeof headings?.anchorLinks === "boolean" && headings?.anchorLinks === true || typeof headings?.anchorLinks === "object" && headings?.anchorLinks?.h3));
|
||||
return (_ctx, _push, _parent, _attrs) => {
|
||||
_push(`<h3${ssrRenderAttrs(mergeProps({
|
||||
id: props.id
|
||||
}, _attrs))}>`);
|
||||
if (props.id && unref(generate)) {
|
||||
_push(`<a${ssrRenderAttr("href", `#${props.id}`)}>`);
|
||||
ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent);
|
||||
_push(`</a>`);
|
||||
} else {
|
||||
ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent);
|
||||
}
|
||||
_push(`</h3>`);
|
||||
};
|
||||
}
|
||||
};
|
||||
const _sfc_setup = _sfc_main.setup;
|
||||
_sfc_main.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("../node_modules/.pnpm/@nuxtjs+mdc@0.20.2_magicast@0.5.1/node_modules/@nuxtjs/mdc/dist/runtime/components/prose/ProseH3.vue");
|
||||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||||
};
|
||||
|
||||
export { _sfc_main as default };
|
||||
//# sourceMappingURL=ProseH3-DvNJAiID.mjs.map
|
||||
1
.output/server/chunks/build/ProseH3-DvNJAiID.mjs.map
Normal file
1
.output/server/chunks/build/ProseH3-DvNJAiID.mjs.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"ProseH3-DvNJAiID.mjs","sources":["../../../../node_modules/.pnpm/@nuxtjs+mdc@0.20.2_magicast@0.5.1/node_modules/@nuxtjs/mdc/dist/runtime/components/prose/ProseH3.vue"],"names":["_unref"],"mappings":"","x_google_ignoreList":[0]}
|
||||
59
.output/server/chunks/build/ProseH4-EhNmreYS.mjs
Normal file
59
.output/server/chunks/build/ProseH4-EhNmreYS.mjs
Normal file
@@ -0,0 +1,59 @@
|
||||
import { computed, mergeProps, unref, useSSRContext } from 'vue';
|
||||
import { ssrRenderAttrs, ssrRenderAttr, ssrRenderSlot } from 'vue/server-renderer';
|
||||
import { g as useRuntimeConfig } from './server.mjs';
|
||||
import '../nitro/nitro.mjs';
|
||||
import 'node:http';
|
||||
import 'node:https';
|
||||
import 'node:events';
|
||||
import 'node:buffer';
|
||||
import 'node:fs';
|
||||
import 'node:path';
|
||||
import 'node:crypto';
|
||||
import 'node:url';
|
||||
import 'better-sqlite3';
|
||||
import 'vue-router';
|
||||
import 'ant-design-vue';
|
||||
import '@babel/runtime/helpers/esm/extends';
|
||||
import 'stylis';
|
||||
import 'dayjs';
|
||||
import '../routes/renderer.mjs';
|
||||
import 'vue-bundle-renderer/runtime';
|
||||
import 'unhead/server';
|
||||
import 'devalue';
|
||||
import 'unhead/plugins';
|
||||
import 'unhead/utils';
|
||||
|
||||
const _sfc_main = {
|
||||
__name: "ProseH4",
|
||||
__ssrInlineRender: true,
|
||||
props: {
|
||||
id: { type: String, required: false }
|
||||
},
|
||||
setup(__props) {
|
||||
const props = __props;
|
||||
const { headings } = useRuntimeConfig().public.mdc;
|
||||
const generate = computed(() => props.id && (typeof headings?.anchorLinks === "boolean" && headings?.anchorLinks === true || typeof headings?.anchorLinks === "object" && headings?.anchorLinks?.h4));
|
||||
return (_ctx, _push, _parent, _attrs) => {
|
||||
_push(`<h4${ssrRenderAttrs(mergeProps({
|
||||
id: props.id
|
||||
}, _attrs))}>`);
|
||||
if (props.id && unref(generate)) {
|
||||
_push(`<a${ssrRenderAttr("href", `#${props.id}`)}>`);
|
||||
ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent);
|
||||
_push(`</a>`);
|
||||
} else {
|
||||
ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent);
|
||||
}
|
||||
_push(`</h4>`);
|
||||
};
|
||||
}
|
||||
};
|
||||
const _sfc_setup = _sfc_main.setup;
|
||||
_sfc_main.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("../node_modules/.pnpm/@nuxtjs+mdc@0.20.2_magicast@0.5.1/node_modules/@nuxtjs/mdc/dist/runtime/components/prose/ProseH4.vue");
|
||||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||||
};
|
||||
|
||||
export { _sfc_main as default };
|
||||
//# sourceMappingURL=ProseH4-EhNmreYS.mjs.map
|
||||
1
.output/server/chunks/build/ProseH4-EhNmreYS.mjs.map
Normal file
1
.output/server/chunks/build/ProseH4-EhNmreYS.mjs.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"ProseH4-EhNmreYS.mjs","sources":["../../../../node_modules/.pnpm/@nuxtjs+mdc@0.20.2_magicast@0.5.1/node_modules/@nuxtjs/mdc/dist/runtime/components/prose/ProseH4.vue"],"names":["_unref"],"mappings":"","x_google_ignoreList":[0]}
|
||||
59
.output/server/chunks/build/ProseH5-D-4PhYNE.mjs
Normal file
59
.output/server/chunks/build/ProseH5-D-4PhYNE.mjs
Normal file
@@ -0,0 +1,59 @@
|
||||
import { computed, mergeProps, unref, useSSRContext } from 'vue';
|
||||
import { ssrRenderAttrs, ssrRenderAttr, ssrRenderSlot } from 'vue/server-renderer';
|
||||
import { g as useRuntimeConfig } from './server.mjs';
|
||||
import '../nitro/nitro.mjs';
|
||||
import 'node:http';
|
||||
import 'node:https';
|
||||
import 'node:events';
|
||||
import 'node:buffer';
|
||||
import 'node:fs';
|
||||
import 'node:path';
|
||||
import 'node:crypto';
|
||||
import 'node:url';
|
||||
import 'better-sqlite3';
|
||||
import 'vue-router';
|
||||
import 'ant-design-vue';
|
||||
import '@babel/runtime/helpers/esm/extends';
|
||||
import 'stylis';
|
||||
import 'dayjs';
|
||||
import '../routes/renderer.mjs';
|
||||
import 'vue-bundle-renderer/runtime';
|
||||
import 'unhead/server';
|
||||
import 'devalue';
|
||||
import 'unhead/plugins';
|
||||
import 'unhead/utils';
|
||||
|
||||
const _sfc_main = {
|
||||
__name: "ProseH5",
|
||||
__ssrInlineRender: true,
|
||||
props: {
|
||||
id: { type: String, required: false }
|
||||
},
|
||||
setup(__props) {
|
||||
const props = __props;
|
||||
const { headings } = useRuntimeConfig().public.mdc;
|
||||
const generate = computed(() => props.id && (typeof headings?.anchorLinks === "boolean" && headings?.anchorLinks === true || typeof headings?.anchorLinks === "object" && headings?.anchorLinks?.h5));
|
||||
return (_ctx, _push, _parent, _attrs) => {
|
||||
_push(`<h5${ssrRenderAttrs(mergeProps({
|
||||
id: props.id
|
||||
}, _attrs))}>`);
|
||||
if (props.id && unref(generate)) {
|
||||
_push(`<a${ssrRenderAttr("href", `#${props.id}`)}>`);
|
||||
ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent);
|
||||
_push(`</a>`);
|
||||
} else {
|
||||
ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent);
|
||||
}
|
||||
_push(`</h5>`);
|
||||
};
|
||||
}
|
||||
};
|
||||
const _sfc_setup = _sfc_main.setup;
|
||||
_sfc_main.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("../node_modules/.pnpm/@nuxtjs+mdc@0.20.2_magicast@0.5.1/node_modules/@nuxtjs/mdc/dist/runtime/components/prose/ProseH5.vue");
|
||||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||||
};
|
||||
|
||||
export { _sfc_main as default };
|
||||
//# sourceMappingURL=ProseH5-D-4PhYNE.mjs.map
|
||||
1
.output/server/chunks/build/ProseH5-D-4PhYNE.mjs.map
Normal file
1
.output/server/chunks/build/ProseH5-D-4PhYNE.mjs.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"ProseH5-D-4PhYNE.mjs","sources":["../../../../node_modules/.pnpm/@nuxtjs+mdc@0.20.2_magicast@0.5.1/node_modules/@nuxtjs/mdc/dist/runtime/components/prose/ProseH5.vue"],"names":["_unref"],"mappings":"","x_google_ignoreList":[0]}
|
||||
59
.output/server/chunks/build/ProseH6-5ccgq34t.mjs
Normal file
59
.output/server/chunks/build/ProseH6-5ccgq34t.mjs
Normal file
@@ -0,0 +1,59 @@
|
||||
import { computed, mergeProps, unref, useSSRContext } from 'vue';
|
||||
import { ssrRenderAttrs, ssrRenderAttr, ssrRenderSlot } from 'vue/server-renderer';
|
||||
import { g as useRuntimeConfig } from './server.mjs';
|
||||
import '../nitro/nitro.mjs';
|
||||
import 'node:http';
|
||||
import 'node:https';
|
||||
import 'node:events';
|
||||
import 'node:buffer';
|
||||
import 'node:fs';
|
||||
import 'node:path';
|
||||
import 'node:crypto';
|
||||
import 'node:url';
|
||||
import 'better-sqlite3';
|
||||
import 'vue-router';
|
||||
import 'ant-design-vue';
|
||||
import '@babel/runtime/helpers/esm/extends';
|
||||
import 'stylis';
|
||||
import 'dayjs';
|
||||
import '../routes/renderer.mjs';
|
||||
import 'vue-bundle-renderer/runtime';
|
||||
import 'unhead/server';
|
||||
import 'devalue';
|
||||
import 'unhead/plugins';
|
||||
import 'unhead/utils';
|
||||
|
||||
const _sfc_main = {
|
||||
__name: "ProseH6",
|
||||
__ssrInlineRender: true,
|
||||
props: {
|
||||
id: { type: String, required: false }
|
||||
},
|
||||
setup(__props) {
|
||||
const props = __props;
|
||||
const { headings } = useRuntimeConfig().public.mdc;
|
||||
const generate = computed(() => props.id && (typeof headings?.anchorLinks === "boolean" && headings?.anchorLinks === true || typeof headings?.anchorLinks === "object" && headings?.anchorLinks?.h6));
|
||||
return (_ctx, _push, _parent, _attrs) => {
|
||||
_push(`<h6${ssrRenderAttrs(mergeProps({
|
||||
id: props.id
|
||||
}, _attrs))}>`);
|
||||
if (props.id && unref(generate)) {
|
||||
_push(`<a${ssrRenderAttr("href", `#${props.id}`)}>`);
|
||||
ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent);
|
||||
_push(`</a>`);
|
||||
} else {
|
||||
ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent);
|
||||
}
|
||||
_push(`</h6>`);
|
||||
};
|
||||
}
|
||||
};
|
||||
const _sfc_setup = _sfc_main.setup;
|
||||
_sfc_main.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("../node_modules/.pnpm/@nuxtjs+mdc@0.20.2_magicast@0.5.1/node_modules/@nuxtjs/mdc/dist/runtime/components/prose/ProseH6.vue");
|
||||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||||
};
|
||||
|
||||
export { _sfc_main as default };
|
||||
//# sourceMappingURL=ProseH6-5ccgq34t.mjs.map
|
||||
1
.output/server/chunks/build/ProseH6-5ccgq34t.mjs.map
Normal file
1
.output/server/chunks/build/ProseH6-5ccgq34t.mjs.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"ProseH6-5ccgq34t.mjs","sources":["../../../../node_modules/.pnpm/@nuxtjs+mdc@0.20.2_magicast@0.5.1/node_modules/@nuxtjs/mdc/dist/runtime/components/prose/ProseH6.vue"],"names":["_unref"],"mappings":"","x_google_ignoreList":[0]}
|
||||
39
.output/server/chunks/build/ProseHr-DJpbLfKw.mjs
Normal file
39
.output/server/chunks/build/ProseHr-DJpbLfKw.mjs
Normal file
@@ -0,0 +1,39 @@
|
||||
import { ssrRenderAttrs } from 'vue/server-renderer';
|
||||
import { useSSRContext } from 'vue';
|
||||
import { a as _export_sfc } from './server.mjs';
|
||||
import '../nitro/nitro.mjs';
|
||||
import 'node:http';
|
||||
import 'node:https';
|
||||
import 'node:events';
|
||||
import 'node:buffer';
|
||||
import 'node:fs';
|
||||
import 'node:path';
|
||||
import 'node:crypto';
|
||||
import 'node:url';
|
||||
import 'better-sqlite3';
|
||||
import 'vue-router';
|
||||
import 'ant-design-vue';
|
||||
import '@babel/runtime/helpers/esm/extends';
|
||||
import 'stylis';
|
||||
import 'dayjs';
|
||||
import '../routes/renderer.mjs';
|
||||
import 'vue-bundle-renderer/runtime';
|
||||
import 'unhead/server';
|
||||
import 'devalue';
|
||||
import 'unhead/plugins';
|
||||
import 'unhead/utils';
|
||||
|
||||
const _sfc_main = {};
|
||||
function _sfc_ssrRender(_ctx, _push, _parent, _attrs) {
|
||||
_push(`<hr${ssrRenderAttrs(_attrs)}>`);
|
||||
}
|
||||
const _sfc_setup = _sfc_main.setup;
|
||||
_sfc_main.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("../node_modules/.pnpm/@nuxtjs+mdc@0.20.2_magicast@0.5.1/node_modules/@nuxtjs/mdc/dist/runtime/components/prose/ProseHr.vue");
|
||||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||||
};
|
||||
const ProseHr = /* @__PURE__ */ Object.assign(_export_sfc(_sfc_main, [["ssrRender", _sfc_ssrRender]]), { __name: "ProseHr" });
|
||||
|
||||
export { ProseHr as default };
|
||||
//# sourceMappingURL=ProseHr-DJpbLfKw.mjs.map
|
||||
1
.output/server/chunks/build/ProseHr-DJpbLfKw.mjs.map
Normal file
1
.output/server/chunks/build/ProseHr-DJpbLfKw.mjs.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"ProseHr-DJpbLfKw.mjs","sources":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
||||
77
.output/server/chunks/build/ProseImg-CQldQXCh.mjs
Normal file
77
.output/server/chunks/build/ProseImg-CQldQXCh.mjs
Normal file
@@ -0,0 +1,77 @@
|
||||
import { computed, createVNode, resolveDynamicComponent, unref, mergeProps, useSSRContext } from 'vue';
|
||||
import { ssrRenderVNode } from 'vue/server-renderer';
|
||||
import { D as withLeadingSlash, E as withTrailingSlash, F as joinURL } from '../nitro/nitro.mjs';
|
||||
import { g as useRuntimeConfig } from './server.mjs';
|
||||
import 'node:http';
|
||||
import 'node:https';
|
||||
import 'node:events';
|
||||
import 'node:buffer';
|
||||
import 'node:fs';
|
||||
import 'node:path';
|
||||
import 'node:crypto';
|
||||
import 'node:url';
|
||||
import 'better-sqlite3';
|
||||
import 'vue-router';
|
||||
import 'ant-design-vue';
|
||||
import '@babel/runtime/helpers/esm/extends';
|
||||
import 'stylis';
|
||||
import 'dayjs';
|
||||
import '../routes/renderer.mjs';
|
||||
import 'vue-bundle-renderer/runtime';
|
||||
import 'unhead/server';
|
||||
import 'devalue';
|
||||
import 'unhead/plugins';
|
||||
import 'unhead/utils';
|
||||
|
||||
const ImageComponent = "img";
|
||||
const _sfc_main = {
|
||||
__name: "ProseImg",
|
||||
__ssrInlineRender: true,
|
||||
props: {
|
||||
src: {
|
||||
type: String,
|
||||
default: ""
|
||||
},
|
||||
alt: {
|
||||
type: String,
|
||||
default: ""
|
||||
},
|
||||
width: {
|
||||
type: [String, Number],
|
||||
default: void 0
|
||||
},
|
||||
height: {
|
||||
type: [String, Number],
|
||||
default: void 0
|
||||
}
|
||||
},
|
||||
setup(__props) {
|
||||
const props = __props;
|
||||
const refinedSrc = computed(() => {
|
||||
if (props.src?.startsWith("/") && !props.src.startsWith("//")) {
|
||||
const _base = withLeadingSlash(withTrailingSlash(useRuntimeConfig().app.baseURL));
|
||||
if (_base !== "/" && !props.src.startsWith(_base)) {
|
||||
return joinURL(_base, props.src);
|
||||
}
|
||||
}
|
||||
return props.src;
|
||||
});
|
||||
return (_ctx, _push, _parent, _attrs) => {
|
||||
ssrRenderVNode(_push, createVNode(resolveDynamicComponent(unref(ImageComponent)), mergeProps({
|
||||
src: unref(refinedSrc),
|
||||
alt: props.alt,
|
||||
width: props.width,
|
||||
height: props.height
|
||||
}, _attrs), null), _parent);
|
||||
};
|
||||
}
|
||||
};
|
||||
const _sfc_setup = _sfc_main.setup;
|
||||
_sfc_main.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("../node_modules/.pnpm/@nuxtjs+mdc@0.20.2_magicast@0.5.1/node_modules/@nuxtjs/mdc/dist/runtime/components/prose/ProseImg.vue");
|
||||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||||
};
|
||||
|
||||
export { _sfc_main as default };
|
||||
//# sourceMappingURL=ProseImg-CQldQXCh.mjs.map
|
||||
1
.output/server/chunks/build/ProseImg-CQldQXCh.mjs.map
Normal file
1
.output/server/chunks/build/ProseImg-CQldQXCh.mjs.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"ProseImg-CQldQXCh.mjs","sources":["../../../../virtual:nuxt:%2FUsers%2Fgxwebsoft%2FVUE%2Fjczxw-pc%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fmdc-image-component.mjs","../../../../node_modules/.pnpm/@nuxtjs+mdc@0.20.2_magicast@0.5.1/node_modules/@nuxtjs/mdc/dist/runtime/components/prose/ProseImg.vue"],"names":["_unref","_mergeProps"],"mappings":"","x_google_ignoreList":[0,1]}
|
||||
41
.output/server/chunks/build/ProseLi-BHcRglpP.mjs
Normal file
41
.output/server/chunks/build/ProseLi-BHcRglpP.mjs
Normal file
@@ -0,0 +1,41 @@
|
||||
import { ssrRenderAttrs, ssrRenderSlot } from 'vue/server-renderer';
|
||||
import { useSSRContext } from 'vue';
|
||||
import { a as _export_sfc } from './server.mjs';
|
||||
import '../nitro/nitro.mjs';
|
||||
import 'node:http';
|
||||
import 'node:https';
|
||||
import 'node:events';
|
||||
import 'node:buffer';
|
||||
import 'node:fs';
|
||||
import 'node:path';
|
||||
import 'node:crypto';
|
||||
import 'node:url';
|
||||
import 'better-sqlite3';
|
||||
import 'vue-router';
|
||||
import 'ant-design-vue';
|
||||
import '@babel/runtime/helpers/esm/extends';
|
||||
import 'stylis';
|
||||
import 'dayjs';
|
||||
import '../routes/renderer.mjs';
|
||||
import 'vue-bundle-renderer/runtime';
|
||||
import 'unhead/server';
|
||||
import 'devalue';
|
||||
import 'unhead/plugins';
|
||||
import 'unhead/utils';
|
||||
|
||||
const _sfc_main = {};
|
||||
function _sfc_ssrRender(_ctx, _push, _parent, _attrs) {
|
||||
_push(`<li${ssrRenderAttrs(_attrs)}>`);
|
||||
ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent);
|
||||
_push(`</li>`);
|
||||
}
|
||||
const _sfc_setup = _sfc_main.setup;
|
||||
_sfc_main.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("../node_modules/.pnpm/@nuxtjs+mdc@0.20.2_magicast@0.5.1/node_modules/@nuxtjs/mdc/dist/runtime/components/prose/ProseLi.vue");
|
||||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||||
};
|
||||
const ProseLi = /* @__PURE__ */ Object.assign(_export_sfc(_sfc_main, [["ssrRender", _sfc_ssrRender]]), { __name: "ProseLi" });
|
||||
|
||||
export { ProseLi as default };
|
||||
//# sourceMappingURL=ProseLi-BHcRglpP.mjs.map
|
||||
1
.output/server/chunks/build/ProseLi-BHcRglpP.mjs.map
Normal file
1
.output/server/chunks/build/ProseLi-BHcRglpP.mjs.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"ProseLi-BHcRglpP.mjs","sources":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
||||
41
.output/server/chunks/build/ProseOl-BzuM7e93.mjs
Normal file
41
.output/server/chunks/build/ProseOl-BzuM7e93.mjs
Normal file
@@ -0,0 +1,41 @@
|
||||
import { ssrRenderAttrs, ssrRenderSlot } from 'vue/server-renderer';
|
||||
import { useSSRContext } from 'vue';
|
||||
import { a as _export_sfc } from './server.mjs';
|
||||
import '../nitro/nitro.mjs';
|
||||
import 'node:http';
|
||||
import 'node:https';
|
||||
import 'node:events';
|
||||
import 'node:buffer';
|
||||
import 'node:fs';
|
||||
import 'node:path';
|
||||
import 'node:crypto';
|
||||
import 'node:url';
|
||||
import 'better-sqlite3';
|
||||
import 'vue-router';
|
||||
import 'ant-design-vue';
|
||||
import '@babel/runtime/helpers/esm/extends';
|
||||
import 'stylis';
|
||||
import 'dayjs';
|
||||
import '../routes/renderer.mjs';
|
||||
import 'vue-bundle-renderer/runtime';
|
||||
import 'unhead/server';
|
||||
import 'devalue';
|
||||
import 'unhead/plugins';
|
||||
import 'unhead/utils';
|
||||
|
||||
const _sfc_main = {};
|
||||
function _sfc_ssrRender(_ctx, _push, _parent, _attrs) {
|
||||
_push(`<ol${ssrRenderAttrs(_attrs)}>`);
|
||||
ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent);
|
||||
_push(`</ol>`);
|
||||
}
|
||||
const _sfc_setup = _sfc_main.setup;
|
||||
_sfc_main.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("../node_modules/.pnpm/@nuxtjs+mdc@0.20.2_magicast@0.5.1/node_modules/@nuxtjs/mdc/dist/runtime/components/prose/ProseOl.vue");
|
||||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||||
};
|
||||
const ProseOl = /* @__PURE__ */ Object.assign(_export_sfc(_sfc_main, [["ssrRender", _sfc_ssrRender]]), { __name: "ProseOl" });
|
||||
|
||||
export { ProseOl as default };
|
||||
//# sourceMappingURL=ProseOl-BzuM7e93.mjs.map
|
||||
1
.output/server/chunks/build/ProseOl-BzuM7e93.mjs.map
Normal file
1
.output/server/chunks/build/ProseOl-BzuM7e93.mjs.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"ProseOl-BzuM7e93.mjs","sources":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
||||
41
.output/server/chunks/build/ProseP-BJ_CC903.mjs
Normal file
41
.output/server/chunks/build/ProseP-BJ_CC903.mjs
Normal file
@@ -0,0 +1,41 @@
|
||||
import { ssrRenderAttrs, ssrRenderSlot } from 'vue/server-renderer';
|
||||
import { useSSRContext } from 'vue';
|
||||
import { a as _export_sfc } from './server.mjs';
|
||||
import '../nitro/nitro.mjs';
|
||||
import 'node:http';
|
||||
import 'node:https';
|
||||
import 'node:events';
|
||||
import 'node:buffer';
|
||||
import 'node:fs';
|
||||
import 'node:path';
|
||||
import 'node:crypto';
|
||||
import 'node:url';
|
||||
import 'better-sqlite3';
|
||||
import 'vue-router';
|
||||
import 'ant-design-vue';
|
||||
import '@babel/runtime/helpers/esm/extends';
|
||||
import 'stylis';
|
||||
import 'dayjs';
|
||||
import '../routes/renderer.mjs';
|
||||
import 'vue-bundle-renderer/runtime';
|
||||
import 'unhead/server';
|
||||
import 'devalue';
|
||||
import 'unhead/plugins';
|
||||
import 'unhead/utils';
|
||||
|
||||
const _sfc_main = {};
|
||||
function _sfc_ssrRender(_ctx, _push, _parent, _attrs) {
|
||||
_push(`<p${ssrRenderAttrs(_attrs)}>`);
|
||||
ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent);
|
||||
_push(`</p>`);
|
||||
}
|
||||
const _sfc_setup = _sfc_main.setup;
|
||||
_sfc_main.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("../node_modules/.pnpm/@nuxtjs+mdc@0.20.2_magicast@0.5.1/node_modules/@nuxtjs/mdc/dist/runtime/components/prose/ProseP.vue");
|
||||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||||
};
|
||||
const ProseP = /* @__PURE__ */ Object.assign(_export_sfc(_sfc_main, [["ssrRender", _sfc_ssrRender]]), { __name: "ProseP" });
|
||||
|
||||
export { ProseP as default };
|
||||
//# sourceMappingURL=ProseP-BJ_CC903.mjs.map
|
||||
1
.output/server/chunks/build/ProseP-BJ_CC903.mjs.map
Normal file
1
.output/server/chunks/build/ProseP-BJ_CC903.mjs.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"ProseP-BJ_CC903.mjs","sources":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
||||
51
.output/server/chunks/build/ProsePre-k3evsb7j.mjs
Normal file
51
.output/server/chunks/build/ProsePre-k3evsb7j.mjs
Normal file
@@ -0,0 +1,51 @@
|
||||
import { mergeProps, useSSRContext } from 'vue';
|
||||
import { ssrRenderAttrs, ssrRenderSlot } from 'vue/server-renderer';
|
||||
|
||||
const _sfc_main = {
|
||||
__name: "ProsePre",
|
||||
__ssrInlineRender: true,
|
||||
props: {
|
||||
code: {
|
||||
type: String,
|
||||
default: ""
|
||||
},
|
||||
language: {
|
||||
type: String,
|
||||
default: null
|
||||
},
|
||||
filename: {
|
||||
type: String,
|
||||
default: null
|
||||
},
|
||||
highlights: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
},
|
||||
meta: {
|
||||
type: String,
|
||||
default: null
|
||||
},
|
||||
class: {
|
||||
type: String,
|
||||
default: null
|
||||
}
|
||||
},
|
||||
setup(__props) {
|
||||
return (_ctx, _push, _parent, _attrs) => {
|
||||
_push(`<pre${ssrRenderAttrs(mergeProps({
|
||||
class: _ctx.$props.class
|
||||
}, _attrs))}>`);
|
||||
ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent);
|
||||
_push(`</pre>`);
|
||||
};
|
||||
}
|
||||
};
|
||||
const _sfc_setup = _sfc_main.setup;
|
||||
_sfc_main.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("../node_modules/.pnpm/@nuxtjs+mdc@0.20.2_magicast@0.5.1/node_modules/@nuxtjs/mdc/dist/runtime/components/prose/ProsePre.vue");
|
||||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||||
};
|
||||
|
||||
export { _sfc_main as default };
|
||||
//# sourceMappingURL=ProsePre-k3evsb7j.mjs.map
|
||||
1
.output/server/chunks/build/ProsePre-k3evsb7j.mjs.map
Normal file
1
.output/server/chunks/build/ProsePre-k3evsb7j.mjs.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"ProsePre-k3evsb7j.mjs","sources":["../../../../node_modules/.pnpm/@nuxtjs+mdc@0.20.2_magicast@0.5.1/node_modules/@nuxtjs/mdc/dist/runtime/components/prose/ProsePre.vue"],"names":["$props"],"mappings":"","x_google_ignoreList":[0]}
|
||||
8
.output/server/chunks/build/ProsePre-styles.CPQfztSD.mjs
Normal file
8
.output/server/chunks/build/ProsePre-styles.CPQfztSD.mjs
Normal file
@@ -0,0 +1,8 @@
|
||||
const ProsePre_vue_vue_type_style_index_0_lang = "pre code .line{display:block}";
|
||||
|
||||
const ProsePreStyles_CPQfztSD = [
|
||||
ProsePre_vue_vue_type_style_index_0_lang
|
||||
];
|
||||
|
||||
export { ProsePreStyles_CPQfztSD as default };
|
||||
//# sourceMappingURL=ProsePre-styles.CPQfztSD.mjs.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"ProsePre-styles.CPQfztSD.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/ProsePre-styles.CPQfztSD.mjs"],"names":["style_0"],"mappings":"","x_google_ignoreList":[0]}
|
||||
33
.output/server/chunks/build/ProseScript-DCuYMpw2.mjs
Normal file
33
.output/server/chunks/build/ProseScript-DCuYMpw2.mjs
Normal file
@@ -0,0 +1,33 @@
|
||||
import { unref, useSSRContext } from 'vue';
|
||||
import { ssrRenderAttrs } from 'vue/server-renderer';
|
||||
|
||||
const _sfc_main = {
|
||||
__name: "ProseScript",
|
||||
__ssrInlineRender: true,
|
||||
props: {
|
||||
src: {
|
||||
type: String,
|
||||
default: ""
|
||||
}
|
||||
},
|
||||
setup(__props) {
|
||||
const isDev = false;
|
||||
return (_ctx, _push, _parent, _attrs) => {
|
||||
if (unref(isDev)) {
|
||||
_push(`<div${ssrRenderAttrs(_attrs)}> Rendering the <code>script</code> element is dangerous and is disabled by default. Consider implementing your own <code>ProseScript</code> element to have control over script rendering. </div>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
};
|
||||
}
|
||||
};
|
||||
const _sfc_setup = _sfc_main.setup;
|
||||
_sfc_main.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("../node_modules/.pnpm/@nuxtjs+mdc@0.20.2_magicast@0.5.1/node_modules/@nuxtjs/mdc/dist/runtime/components/prose/ProseScript.vue");
|
||||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||||
};
|
||||
const ProseScript = Object.assign(_sfc_main, { __name: "ProseScript" });
|
||||
|
||||
export { ProseScript as default };
|
||||
//# sourceMappingURL=ProseScript-DCuYMpw2.mjs.map
|
||||
1
.output/server/chunks/build/ProseScript-DCuYMpw2.mjs.map
Normal file
1
.output/server/chunks/build/ProseScript-DCuYMpw2.mjs.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"ProseScript-DCuYMpw2.mjs","sources":["../../../../node_modules/.pnpm/@nuxtjs+mdc@0.20.2_magicast@0.5.1/node_modules/@nuxtjs/mdc/dist/runtime/components/prose/ProseScript.vue"],"names":["_unref"],"mappings":"","x_google_ignoreList":[0]}
|
||||
41
.output/server/chunks/build/ProseStrong-DEtiyBs6.mjs
Normal file
41
.output/server/chunks/build/ProseStrong-DEtiyBs6.mjs
Normal file
@@ -0,0 +1,41 @@
|
||||
import { ssrRenderAttrs, ssrRenderSlot } from 'vue/server-renderer';
|
||||
import { useSSRContext } from 'vue';
|
||||
import { a as _export_sfc } from './server.mjs';
|
||||
import '../nitro/nitro.mjs';
|
||||
import 'node:http';
|
||||
import 'node:https';
|
||||
import 'node:events';
|
||||
import 'node:buffer';
|
||||
import 'node:fs';
|
||||
import 'node:path';
|
||||
import 'node:crypto';
|
||||
import 'node:url';
|
||||
import 'better-sqlite3';
|
||||
import 'vue-router';
|
||||
import 'ant-design-vue';
|
||||
import '@babel/runtime/helpers/esm/extends';
|
||||
import 'stylis';
|
||||
import 'dayjs';
|
||||
import '../routes/renderer.mjs';
|
||||
import 'vue-bundle-renderer/runtime';
|
||||
import 'unhead/server';
|
||||
import 'devalue';
|
||||
import 'unhead/plugins';
|
||||
import 'unhead/utils';
|
||||
|
||||
const _sfc_main = {};
|
||||
function _sfc_ssrRender(_ctx, _push, _parent, _attrs) {
|
||||
_push(`<strong${ssrRenderAttrs(_attrs)}>`);
|
||||
ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent);
|
||||
_push(`</strong>`);
|
||||
}
|
||||
const _sfc_setup = _sfc_main.setup;
|
||||
_sfc_main.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("../node_modules/.pnpm/@nuxtjs+mdc@0.20.2_magicast@0.5.1/node_modules/@nuxtjs/mdc/dist/runtime/components/prose/ProseStrong.vue");
|
||||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||||
};
|
||||
const ProseStrong = /* @__PURE__ */ Object.assign(_export_sfc(_sfc_main, [["ssrRender", _sfc_ssrRender]]), { __name: "ProseStrong" });
|
||||
|
||||
export { ProseStrong as default };
|
||||
//# sourceMappingURL=ProseStrong-DEtiyBs6.mjs.map
|
||||
1
.output/server/chunks/build/ProseStrong-DEtiyBs6.mjs.map
Normal file
1
.output/server/chunks/build/ProseStrong-DEtiyBs6.mjs.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"ProseStrong-DEtiyBs6.mjs","sources":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
||||
41
.output/server/chunks/build/ProseTable-_BTkYJX5.mjs
Normal file
41
.output/server/chunks/build/ProseTable-_BTkYJX5.mjs
Normal file
@@ -0,0 +1,41 @@
|
||||
import { ssrRenderAttrs, ssrRenderSlot } from 'vue/server-renderer';
|
||||
import { useSSRContext } from 'vue';
|
||||
import { a as _export_sfc } from './server.mjs';
|
||||
import '../nitro/nitro.mjs';
|
||||
import 'node:http';
|
||||
import 'node:https';
|
||||
import 'node:events';
|
||||
import 'node:buffer';
|
||||
import 'node:fs';
|
||||
import 'node:path';
|
||||
import 'node:crypto';
|
||||
import 'node:url';
|
||||
import 'better-sqlite3';
|
||||
import 'vue-router';
|
||||
import 'ant-design-vue';
|
||||
import '@babel/runtime/helpers/esm/extends';
|
||||
import 'stylis';
|
||||
import 'dayjs';
|
||||
import '../routes/renderer.mjs';
|
||||
import 'vue-bundle-renderer/runtime';
|
||||
import 'unhead/server';
|
||||
import 'devalue';
|
||||
import 'unhead/plugins';
|
||||
import 'unhead/utils';
|
||||
|
||||
const _sfc_main = {};
|
||||
function _sfc_ssrRender(_ctx, _push, _parent, _attrs) {
|
||||
_push(`<table${ssrRenderAttrs(_attrs)}>`);
|
||||
ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent);
|
||||
_push(`</table>`);
|
||||
}
|
||||
const _sfc_setup = _sfc_main.setup;
|
||||
_sfc_main.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("../node_modules/.pnpm/@nuxtjs+mdc@0.20.2_magicast@0.5.1/node_modules/@nuxtjs/mdc/dist/runtime/components/prose/ProseTable.vue");
|
||||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||||
};
|
||||
const ProseTable = /* @__PURE__ */ Object.assign(_export_sfc(_sfc_main, [["ssrRender", _sfc_ssrRender]]), { __name: "ProseTable" });
|
||||
|
||||
export { ProseTable as default };
|
||||
//# sourceMappingURL=ProseTable-_BTkYJX5.mjs.map
|
||||
1
.output/server/chunks/build/ProseTable-_BTkYJX5.mjs.map
Normal file
1
.output/server/chunks/build/ProseTable-_BTkYJX5.mjs.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"ProseTable-_BTkYJX5.mjs","sources":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
||||
41
.output/server/chunks/build/ProseTbody-DAzESFO3.mjs
Normal file
41
.output/server/chunks/build/ProseTbody-DAzESFO3.mjs
Normal file
@@ -0,0 +1,41 @@
|
||||
import { ssrRenderAttrs, ssrRenderSlot } from 'vue/server-renderer';
|
||||
import { useSSRContext } from 'vue';
|
||||
import { a as _export_sfc } from './server.mjs';
|
||||
import '../nitro/nitro.mjs';
|
||||
import 'node:http';
|
||||
import 'node:https';
|
||||
import 'node:events';
|
||||
import 'node:buffer';
|
||||
import 'node:fs';
|
||||
import 'node:path';
|
||||
import 'node:crypto';
|
||||
import 'node:url';
|
||||
import 'better-sqlite3';
|
||||
import 'vue-router';
|
||||
import 'ant-design-vue';
|
||||
import '@babel/runtime/helpers/esm/extends';
|
||||
import 'stylis';
|
||||
import 'dayjs';
|
||||
import '../routes/renderer.mjs';
|
||||
import 'vue-bundle-renderer/runtime';
|
||||
import 'unhead/server';
|
||||
import 'devalue';
|
||||
import 'unhead/plugins';
|
||||
import 'unhead/utils';
|
||||
|
||||
const _sfc_main = {};
|
||||
function _sfc_ssrRender(_ctx, _push, _parent, _attrs) {
|
||||
_push(`<tbody${ssrRenderAttrs(_attrs)}>`);
|
||||
ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent);
|
||||
_push(`</tbody>`);
|
||||
}
|
||||
const _sfc_setup = _sfc_main.setup;
|
||||
_sfc_main.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("../node_modules/.pnpm/@nuxtjs+mdc@0.20.2_magicast@0.5.1/node_modules/@nuxtjs/mdc/dist/runtime/components/prose/ProseTbody.vue");
|
||||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||||
};
|
||||
const ProseTbody = /* @__PURE__ */ Object.assign(_export_sfc(_sfc_main, [["ssrRender", _sfc_ssrRender]]), { __name: "ProseTbody" });
|
||||
|
||||
export { ProseTbody as default };
|
||||
//# sourceMappingURL=ProseTbody-DAzESFO3.mjs.map
|
||||
1
.output/server/chunks/build/ProseTbody-DAzESFO3.mjs.map
Normal file
1
.output/server/chunks/build/ProseTbody-DAzESFO3.mjs.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"ProseTbody-DAzESFO3.mjs","sources":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
||||
41
.output/server/chunks/build/ProseTd-Cz-NZ1lK.mjs
Normal file
41
.output/server/chunks/build/ProseTd-Cz-NZ1lK.mjs
Normal file
@@ -0,0 +1,41 @@
|
||||
import { ssrRenderAttrs, ssrRenderSlot } from 'vue/server-renderer';
|
||||
import { useSSRContext } from 'vue';
|
||||
import { a as _export_sfc } from './server.mjs';
|
||||
import '../nitro/nitro.mjs';
|
||||
import 'node:http';
|
||||
import 'node:https';
|
||||
import 'node:events';
|
||||
import 'node:buffer';
|
||||
import 'node:fs';
|
||||
import 'node:path';
|
||||
import 'node:crypto';
|
||||
import 'node:url';
|
||||
import 'better-sqlite3';
|
||||
import 'vue-router';
|
||||
import 'ant-design-vue';
|
||||
import '@babel/runtime/helpers/esm/extends';
|
||||
import 'stylis';
|
||||
import 'dayjs';
|
||||
import '../routes/renderer.mjs';
|
||||
import 'vue-bundle-renderer/runtime';
|
||||
import 'unhead/server';
|
||||
import 'devalue';
|
||||
import 'unhead/plugins';
|
||||
import 'unhead/utils';
|
||||
|
||||
const _sfc_main = {};
|
||||
function _sfc_ssrRender(_ctx, _push, _parent, _attrs) {
|
||||
_push(`<td${ssrRenderAttrs(_attrs)}>`);
|
||||
ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent);
|
||||
_push(`</td>`);
|
||||
}
|
||||
const _sfc_setup = _sfc_main.setup;
|
||||
_sfc_main.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("../node_modules/.pnpm/@nuxtjs+mdc@0.20.2_magicast@0.5.1/node_modules/@nuxtjs/mdc/dist/runtime/components/prose/ProseTd.vue");
|
||||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||||
};
|
||||
const ProseTd = /* @__PURE__ */ Object.assign(_export_sfc(_sfc_main, [["ssrRender", _sfc_ssrRender]]), { __name: "ProseTd" });
|
||||
|
||||
export { ProseTd as default };
|
||||
//# sourceMappingURL=ProseTd-Cz-NZ1lK.mjs.map
|
||||
1
.output/server/chunks/build/ProseTd-Cz-NZ1lK.mjs.map
Normal file
1
.output/server/chunks/build/ProseTd-Cz-NZ1lK.mjs.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"ProseTd-Cz-NZ1lK.mjs","sources":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
||||
41
.output/server/chunks/build/ProseTh-CSqbMEKX.mjs
Normal file
41
.output/server/chunks/build/ProseTh-CSqbMEKX.mjs
Normal file
@@ -0,0 +1,41 @@
|
||||
import { ssrRenderAttrs, ssrRenderSlot } from 'vue/server-renderer';
|
||||
import { useSSRContext } from 'vue';
|
||||
import { a as _export_sfc } from './server.mjs';
|
||||
import '../nitro/nitro.mjs';
|
||||
import 'node:http';
|
||||
import 'node:https';
|
||||
import 'node:events';
|
||||
import 'node:buffer';
|
||||
import 'node:fs';
|
||||
import 'node:path';
|
||||
import 'node:crypto';
|
||||
import 'node:url';
|
||||
import 'better-sqlite3';
|
||||
import 'vue-router';
|
||||
import 'ant-design-vue';
|
||||
import '@babel/runtime/helpers/esm/extends';
|
||||
import 'stylis';
|
||||
import 'dayjs';
|
||||
import '../routes/renderer.mjs';
|
||||
import 'vue-bundle-renderer/runtime';
|
||||
import 'unhead/server';
|
||||
import 'devalue';
|
||||
import 'unhead/plugins';
|
||||
import 'unhead/utils';
|
||||
|
||||
const _sfc_main = {};
|
||||
function _sfc_ssrRender(_ctx, _push, _parent, _attrs) {
|
||||
_push(`<th${ssrRenderAttrs(_attrs)}>`);
|
||||
ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent);
|
||||
_push(`</th>`);
|
||||
}
|
||||
const _sfc_setup = _sfc_main.setup;
|
||||
_sfc_main.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("../node_modules/.pnpm/@nuxtjs+mdc@0.20.2_magicast@0.5.1/node_modules/@nuxtjs/mdc/dist/runtime/components/prose/ProseTh.vue");
|
||||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||||
};
|
||||
const ProseTh = /* @__PURE__ */ Object.assign(_export_sfc(_sfc_main, [["ssrRender", _sfc_ssrRender]]), { __name: "ProseTh" });
|
||||
|
||||
export { ProseTh as default };
|
||||
//# sourceMappingURL=ProseTh-CSqbMEKX.mjs.map
|
||||
1
.output/server/chunks/build/ProseTh-CSqbMEKX.mjs.map
Normal file
1
.output/server/chunks/build/ProseTh-CSqbMEKX.mjs.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"ProseTh-CSqbMEKX.mjs","sources":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
||||
41
.output/server/chunks/build/ProseThead-BUjOagnR.mjs
Normal file
41
.output/server/chunks/build/ProseThead-BUjOagnR.mjs
Normal file
@@ -0,0 +1,41 @@
|
||||
import { ssrRenderAttrs, ssrRenderSlot } from 'vue/server-renderer';
|
||||
import { useSSRContext } from 'vue';
|
||||
import { a as _export_sfc } from './server.mjs';
|
||||
import '../nitro/nitro.mjs';
|
||||
import 'node:http';
|
||||
import 'node:https';
|
||||
import 'node:events';
|
||||
import 'node:buffer';
|
||||
import 'node:fs';
|
||||
import 'node:path';
|
||||
import 'node:crypto';
|
||||
import 'node:url';
|
||||
import 'better-sqlite3';
|
||||
import 'vue-router';
|
||||
import 'ant-design-vue';
|
||||
import '@babel/runtime/helpers/esm/extends';
|
||||
import 'stylis';
|
||||
import 'dayjs';
|
||||
import '../routes/renderer.mjs';
|
||||
import 'vue-bundle-renderer/runtime';
|
||||
import 'unhead/server';
|
||||
import 'devalue';
|
||||
import 'unhead/plugins';
|
||||
import 'unhead/utils';
|
||||
|
||||
const _sfc_main = {};
|
||||
function _sfc_ssrRender(_ctx, _push, _parent, _attrs) {
|
||||
_push(`<thead${ssrRenderAttrs(_attrs)}>`);
|
||||
ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent);
|
||||
_push(`</thead>`);
|
||||
}
|
||||
const _sfc_setup = _sfc_main.setup;
|
||||
_sfc_main.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("../node_modules/.pnpm/@nuxtjs+mdc@0.20.2_magicast@0.5.1/node_modules/@nuxtjs/mdc/dist/runtime/components/prose/ProseThead.vue");
|
||||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||||
};
|
||||
const ProseThead = /* @__PURE__ */ Object.assign(_export_sfc(_sfc_main, [["ssrRender", _sfc_ssrRender]]), { __name: "ProseThead" });
|
||||
|
||||
export { ProseThead as default };
|
||||
//# sourceMappingURL=ProseThead-BUjOagnR.mjs.map
|
||||
1
.output/server/chunks/build/ProseThead-BUjOagnR.mjs.map
Normal file
1
.output/server/chunks/build/ProseThead-BUjOagnR.mjs.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"ProseThead-BUjOagnR.mjs","sources":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
||||
41
.output/server/chunks/build/ProseTr-DW-ktPU4.mjs
Normal file
41
.output/server/chunks/build/ProseTr-DW-ktPU4.mjs
Normal file
@@ -0,0 +1,41 @@
|
||||
import { ssrRenderAttrs, ssrRenderSlot } from 'vue/server-renderer';
|
||||
import { useSSRContext } from 'vue';
|
||||
import { a as _export_sfc } from './server.mjs';
|
||||
import '../nitro/nitro.mjs';
|
||||
import 'node:http';
|
||||
import 'node:https';
|
||||
import 'node:events';
|
||||
import 'node:buffer';
|
||||
import 'node:fs';
|
||||
import 'node:path';
|
||||
import 'node:crypto';
|
||||
import 'node:url';
|
||||
import 'better-sqlite3';
|
||||
import 'vue-router';
|
||||
import 'ant-design-vue';
|
||||
import '@babel/runtime/helpers/esm/extends';
|
||||
import 'stylis';
|
||||
import 'dayjs';
|
||||
import '../routes/renderer.mjs';
|
||||
import 'vue-bundle-renderer/runtime';
|
||||
import 'unhead/server';
|
||||
import 'devalue';
|
||||
import 'unhead/plugins';
|
||||
import 'unhead/utils';
|
||||
|
||||
const _sfc_main = {};
|
||||
function _sfc_ssrRender(_ctx, _push, _parent, _attrs) {
|
||||
_push(`<tr${ssrRenderAttrs(_attrs)}>`);
|
||||
ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent);
|
||||
_push(`</tr>`);
|
||||
}
|
||||
const _sfc_setup = _sfc_main.setup;
|
||||
_sfc_main.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("../node_modules/.pnpm/@nuxtjs+mdc@0.20.2_magicast@0.5.1/node_modules/@nuxtjs/mdc/dist/runtime/components/prose/ProseTr.vue");
|
||||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||||
};
|
||||
const ProseTr = /* @__PURE__ */ Object.assign(_export_sfc(_sfc_main, [["ssrRender", _sfc_ssrRender]]), { __name: "ProseTr" });
|
||||
|
||||
export { ProseTr as default };
|
||||
//# sourceMappingURL=ProseTr-DW-ktPU4.mjs.map
|
||||
1
.output/server/chunks/build/ProseTr-DW-ktPU4.mjs.map
Normal file
1
.output/server/chunks/build/ProseTr-DW-ktPU4.mjs.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"ProseTr-DW-ktPU4.mjs","sources":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
||||
41
.output/server/chunks/build/ProseUl-CIrluWCJ.mjs
Normal file
41
.output/server/chunks/build/ProseUl-CIrluWCJ.mjs
Normal file
@@ -0,0 +1,41 @@
|
||||
import { ssrRenderAttrs, ssrRenderSlot } from 'vue/server-renderer';
|
||||
import { useSSRContext } from 'vue';
|
||||
import { a as _export_sfc } from './server.mjs';
|
||||
import '../nitro/nitro.mjs';
|
||||
import 'node:http';
|
||||
import 'node:https';
|
||||
import 'node:events';
|
||||
import 'node:buffer';
|
||||
import 'node:fs';
|
||||
import 'node:path';
|
||||
import 'node:crypto';
|
||||
import 'node:url';
|
||||
import 'better-sqlite3';
|
||||
import 'vue-router';
|
||||
import 'ant-design-vue';
|
||||
import '@babel/runtime/helpers/esm/extends';
|
||||
import 'stylis';
|
||||
import 'dayjs';
|
||||
import '../routes/renderer.mjs';
|
||||
import 'vue-bundle-renderer/runtime';
|
||||
import 'unhead/server';
|
||||
import 'devalue';
|
||||
import 'unhead/plugins';
|
||||
import 'unhead/utils';
|
||||
|
||||
const _sfc_main = {};
|
||||
function _sfc_ssrRender(_ctx, _push, _parent, _attrs) {
|
||||
_push(`<ul${ssrRenderAttrs(_attrs)}>`);
|
||||
ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent);
|
||||
_push(`</ul>`);
|
||||
}
|
||||
const _sfc_setup = _sfc_main.setup;
|
||||
_sfc_main.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("../node_modules/.pnpm/@nuxtjs+mdc@0.20.2_magicast@0.5.1/node_modules/@nuxtjs/mdc/dist/runtime/components/prose/ProseUl.vue");
|
||||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||||
};
|
||||
const ProseUl = /* @__PURE__ */ Object.assign(_export_sfc(_sfc_main, [["ssrRender", _sfc_ssrRender]]), { __name: "ProseUl" });
|
||||
|
||||
export { ProseUl as default };
|
||||
//# sourceMappingURL=ProseUl-CIrluWCJ.mjs.map
|
||||
1
.output/server/chunks/build/ProseUl-CIrluWCJ.mjs.map
Normal file
1
.output/server/chunks/build/ProseUl-CIrluWCJ.mjs.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"ProseUl-CIrluWCJ.mjs","sources":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
||||
8
.output/server/chunks/build/QrLogin-styles.9gSu1x4c.mjs
Normal file
8
.output/server/chunks/build/QrLogin-styles.9gSu1x4c.mjs
Normal file
@@ -0,0 +1,8 @@
|
||||
const QrLogin_vue_vue_type_style_index_0_scoped_63bcae9c_lang = ".qr-login[data-v-63bcae9c]{flex-direction:column;padding:20px 0 12px}.qr-box[data-v-63bcae9c],.qr-login[data-v-63bcae9c]{align-items:center;display:flex}.qr-box[data-v-63bcae9c]{justify-content:center;min-height:260px;width:100%}.qr-state[data-v-63bcae9c]{align-items:center;display:flex;flex-direction:column;gap:12px;text-align:center}.qrcode-img[data-v-63bcae9c]{border-radius:8px;cursor:pointer;height:200px;transition:transform .2s;width:200px}.qrcode-img[data-v-63bcae9c]:hover{transform:scale(1.02)}.qrcode-placeholder[data-v-63bcae9c]{align-items:center;background:#f5f5f5;border-radius:8px;display:flex;height:200px;justify-content:center;width:200px}.tip[data-v-63bcae9c]{color:#111827;font-size:14px;margin:0}.muted[data-v-63bcae9c]{color:#6b7280;font-size:12px;margin:0}.actions[data-v-63bcae9c]{margin-top:10px}.icon[data-v-63bcae9c]{font-size:48px}.ok[data-v-63bcae9c]{color:#16a34a}.bad[data-v-63bcae9c]{color:#ef4444}.ok-text[data-v-63bcae9c]{color:#16a34a;margin:0}.bad-text[data-v-63bcae9c]{color:#ef4444;margin:0}";
|
||||
|
||||
const QrLoginStyles_9gSu1x4c = [
|
||||
QrLogin_vue_vue_type_style_index_0_scoped_63bcae9c_lang
|
||||
];
|
||||
|
||||
export { QrLoginStyles_9gSu1x4c as default };
|
||||
//# sourceMappingURL=QrLogin-styles.9gSu1x4c.mjs.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"QrLogin-styles.9gSu1x4c.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/QrLogin-styles.9gSu1x4c.mjs"],"names":["style_0"],"mappings":"","x_google_ignoreList":[0]}
|
||||
862
.output/server/chunks/build/_id_-BqOla5il.mjs
Normal file
862
.output/server/chunks/build/_id_-BqOla5il.mjs
Normal file
@@ -0,0 +1,862 @@
|
||||
import { a as _export_sfc, e as useRoute, d as useRouter, c as useHead, _ as __nuxt_component_0 } from './server.mjs';
|
||||
import { defineComponent, computed, ref, resolveComponent, mergeProps, withCtx, createTextVNode, createVNode, unref, createBlock, openBlock, toDisplayString, createCommentVNode, isRef, Fragment, renderList, useSSRContext } from 'vue';
|
||||
import { ssrRenderAttrs, ssrRenderComponent, ssrRenderAttr, ssrInterpolate, ssrRenderList } from 'vue/server-renderer';
|
||||
import { message } from 'ant-design-vue';
|
||||
import '../nitro/nitro.mjs';
|
||||
import 'node:http';
|
||||
import 'node:https';
|
||||
import 'node:events';
|
||||
import 'node:buffer';
|
||||
import 'node:fs';
|
||||
import 'node:path';
|
||||
import 'node:crypto';
|
||||
import 'node:url';
|
||||
import 'better-sqlite3';
|
||||
import 'vue-router';
|
||||
import '@babel/runtime/helpers/esm/extends';
|
||||
import 'stylis';
|
||||
import 'dayjs';
|
||||
import '../routes/renderer.mjs';
|
||||
import 'vue-bundle-renderer/runtime';
|
||||
import 'unhead/server';
|
||||
import 'devalue';
|
||||
import 'unhead/plugins';
|
||||
import 'unhead/utils';
|
||||
|
||||
const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
__name: "[id]",
|
||||
__ssrInlineRender: true,
|
||||
setup(__props) {
|
||||
const route = useRoute();
|
||||
const router = useRouter();
|
||||
computed(() => route.params.id);
|
||||
const loading = ref(true);
|
||||
const activeTab = ref("intro");
|
||||
const expert = ref({});
|
||||
const expertArticles = ref([]);
|
||||
useHead({
|
||||
title: computed(() => `${expert.value?.name || "专家详情"} - 决策咨询网`)
|
||||
});
|
||||
function handleConsult() {
|
||||
message.info("请先联系我们预约咨询服务");
|
||||
}
|
||||
function goArticle(item) {
|
||||
router.push(`/article/${item.id}`);
|
||||
}
|
||||
return (_ctx, _push, _parent, _attrs) => {
|
||||
const _component_a_breadcrumb = resolveComponent("a-breadcrumb");
|
||||
const _component_a_breadcrumb_item = resolveComponent("a-breadcrumb-item");
|
||||
const _component_NuxtLink = __nuxt_component_0;
|
||||
const _component_a_skeleton = resolveComponent("a-skeleton");
|
||||
const _component_a_row = resolveComponent("a-row");
|
||||
const _component_a_col = resolveComponent("a-col");
|
||||
const _component_a_button = resolveComponent("a-button");
|
||||
const _component_a_tabs = resolveComponent("a-tabs");
|
||||
const _component_a_tab_pane = resolveComponent("a-tab-pane");
|
||||
const _component_a_empty = resolveComponent("a-empty");
|
||||
_push(`<div${ssrRenderAttrs(mergeProps({ class: "expert-detail-page" }, _attrs))} data-v-b2657184><div class="mx-auto max-w-screen-xl px-4 py-8" data-v-b2657184>`);
|
||||
_push(ssrRenderComponent(_component_a_breadcrumb, { class: "mb-6" }, {
|
||||
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
||||
if (_push2) {
|
||||
_push2(ssrRenderComponent(_component_a_breadcrumb_item, null, {
|
||||
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
|
||||
if (_push3) {
|
||||
_push3(ssrRenderComponent(_component_NuxtLink, { to: "/" }, {
|
||||
default: withCtx((_3, _push4, _parent4, _scopeId3) => {
|
||||
if (_push4) {
|
||||
_push4(`首页`);
|
||||
} else {
|
||||
return [
|
||||
createTextVNode("首页")
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent3, _scopeId2));
|
||||
} else {
|
||||
return [
|
||||
createVNode(_component_NuxtLink, { to: "/" }, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode("首页")
|
||||
]),
|
||||
_: 1
|
||||
})
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent2, _scopeId));
|
||||
_push2(ssrRenderComponent(_component_a_breadcrumb_item, null, {
|
||||
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
|
||||
if (_push3) {
|
||||
_push3(ssrRenderComponent(_component_NuxtLink, { to: "/expert" }, {
|
||||
default: withCtx((_3, _push4, _parent4, _scopeId3) => {
|
||||
if (_push4) {
|
||||
_push4(`专家资讯`);
|
||||
} else {
|
||||
return [
|
||||
createTextVNode("专家资讯")
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent3, _scopeId2));
|
||||
} else {
|
||||
return [
|
||||
createVNode(_component_NuxtLink, { to: "/expert" }, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode("专家资讯")
|
||||
]),
|
||||
_: 1
|
||||
})
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent2, _scopeId));
|
||||
_push2(ssrRenderComponent(_component_a_breadcrumb_item, null, {
|
||||
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
|
||||
if (_push3) {
|
||||
_push3(`专家详情`);
|
||||
} else {
|
||||
return [
|
||||
createTextVNode("专家详情")
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent2, _scopeId));
|
||||
} else {
|
||||
return [
|
||||
createVNode(_component_a_breadcrumb_item, null, {
|
||||
default: withCtx(() => [
|
||||
createVNode(_component_NuxtLink, { to: "/" }, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode("首页")
|
||||
]),
|
||||
_: 1
|
||||
})
|
||||
]),
|
||||
_: 1
|
||||
}),
|
||||
createVNode(_component_a_breadcrumb_item, null, {
|
||||
default: withCtx(() => [
|
||||
createVNode(_component_NuxtLink, { to: "/expert" }, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode("专家资讯")
|
||||
]),
|
||||
_: 1
|
||||
})
|
||||
]),
|
||||
_: 1
|
||||
}),
|
||||
createVNode(_component_a_breadcrumb_item, null, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode("专家详情")
|
||||
]),
|
||||
_: 1
|
||||
})
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent));
|
||||
if (unref(loading)) {
|
||||
_push(`<div data-v-b2657184>`);
|
||||
_push(ssrRenderComponent(_component_a_skeleton, {
|
||||
active: "",
|
||||
avatar: "",
|
||||
paragraph: { rows: 6 }
|
||||
}, null, _parent));
|
||||
_push(`</div>`);
|
||||
} else {
|
||||
_push(`<div data-v-b2657184>`);
|
||||
_push(ssrRenderComponent(_component_a_row, { gutter: [32, 24] }, {
|
||||
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
||||
if (_push2) {
|
||||
_push2(ssrRenderComponent(_component_a_col, {
|
||||
xs: 24,
|
||||
lg: 7
|
||||
}, {
|
||||
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
|
||||
if (_push3) {
|
||||
_push3(`<div class="expert-card" data-v-b2657184${_scopeId2}><div class="expert-avatar-wrapper" data-v-b2657184${_scopeId2}>`);
|
||||
if (unref(expert).avatar) {
|
||||
_push3(`<img${ssrRenderAttr("src", unref(expert).avatar)}${ssrRenderAttr("alt", unref(expert).name)} class="expert-avatar" data-v-b2657184${_scopeId2}>`);
|
||||
} else {
|
||||
_push3(`<div class="expert-avatar-placeholder" data-v-b2657184${_scopeId2}>${ssrInterpolate(unref(expert).name?.charAt(0))}</div>`);
|
||||
}
|
||||
_push3(`</div><h2 class="expert-name" data-v-b2657184${_scopeId2}>${ssrInterpolate(unref(expert).name)}</h2><div class="expert-title-tag" data-v-b2657184${_scopeId2}>${ssrInterpolate(unref(expert).title)}</div><div class="expert-org" data-v-b2657184${_scopeId2}>${ssrInterpolate(unref(expert).organization)}</div><div class="expert-info-list" data-v-b2657184${_scopeId2}>`);
|
||||
if (unref(expert).researchArea) {
|
||||
_push3(`<div class="info-item" data-v-b2657184${_scopeId2}><span class="info-label" data-v-b2657184${_scopeId2}>研究领域</span><span class="info-value" data-v-b2657184${_scopeId2}>${ssrInterpolate(unref(expert).researchArea)}</span></div>`);
|
||||
} else {
|
||||
_push3(`<!---->`);
|
||||
}
|
||||
if (unref(expert).education) {
|
||||
_push3(`<div class="info-item" data-v-b2657184${_scopeId2}><span class="info-label" data-v-b2657184${_scopeId2}>学历</span><span class="info-value" data-v-b2657184${_scopeId2}>${ssrInterpolate(unref(expert).education)}</span></div>`);
|
||||
} else {
|
||||
_push3(`<!---->`);
|
||||
}
|
||||
if (unref(expert).joinTime) {
|
||||
_push3(`<div class="info-item" data-v-b2657184${_scopeId2}><span class="info-label" data-v-b2657184${_scopeId2}>入库时间</span><span class="info-value" data-v-b2657184${_scopeId2}>${ssrInterpolate(unref(expert).joinTime)}</span></div>`);
|
||||
} else {
|
||||
_push3(`<!---->`);
|
||||
}
|
||||
_push3(`</div>`);
|
||||
_push3(ssrRenderComponent(_component_a_button, {
|
||||
type: "primary",
|
||||
block: "",
|
||||
size: "large",
|
||||
class: "mt-4",
|
||||
onClick: handleConsult
|
||||
}, {
|
||||
default: withCtx((_3, _push4, _parent4, _scopeId3) => {
|
||||
if (_push4) {
|
||||
_push4(` 预约咨询 `);
|
||||
} else {
|
||||
return [
|
||||
createTextVNode(" 预约咨询 ")
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent3, _scopeId2));
|
||||
_push3(`</div>`);
|
||||
} else {
|
||||
return [
|
||||
createVNode("div", { class: "expert-card" }, [
|
||||
createVNode("div", { class: "expert-avatar-wrapper" }, [
|
||||
unref(expert).avatar ? (openBlock(), createBlock("img", {
|
||||
key: 0,
|
||||
src: unref(expert).avatar,
|
||||
alt: unref(expert).name,
|
||||
class: "expert-avatar"
|
||||
}, null, 8, ["src", "alt"])) : (openBlock(), createBlock("div", {
|
||||
key: 1,
|
||||
class: "expert-avatar-placeholder"
|
||||
}, toDisplayString(unref(expert).name?.charAt(0)), 1))
|
||||
]),
|
||||
createVNode("h2", { class: "expert-name" }, toDisplayString(unref(expert).name), 1),
|
||||
createVNode("div", { class: "expert-title-tag" }, toDisplayString(unref(expert).title), 1),
|
||||
createVNode("div", { class: "expert-org" }, toDisplayString(unref(expert).organization), 1),
|
||||
createVNode("div", { class: "expert-info-list" }, [
|
||||
unref(expert).researchArea ? (openBlock(), createBlock("div", {
|
||||
key: 0,
|
||||
class: "info-item"
|
||||
}, [
|
||||
createVNode("span", { class: "info-label" }, "研究领域"),
|
||||
createVNode("span", { class: "info-value" }, toDisplayString(unref(expert).researchArea), 1)
|
||||
])) : createCommentVNode("", true),
|
||||
unref(expert).education ? (openBlock(), createBlock("div", {
|
||||
key: 1,
|
||||
class: "info-item"
|
||||
}, [
|
||||
createVNode("span", { class: "info-label" }, "学历"),
|
||||
createVNode("span", { class: "info-value" }, toDisplayString(unref(expert).education), 1)
|
||||
])) : createCommentVNode("", true),
|
||||
unref(expert).joinTime ? (openBlock(), createBlock("div", {
|
||||
key: 2,
|
||||
class: "info-item"
|
||||
}, [
|
||||
createVNode("span", { class: "info-label" }, "入库时间"),
|
||||
createVNode("span", { class: "info-value" }, toDisplayString(unref(expert).joinTime), 1)
|
||||
])) : createCommentVNode("", true)
|
||||
]),
|
||||
createVNode(_component_a_button, {
|
||||
type: "primary",
|
||||
block: "",
|
||||
size: "large",
|
||||
class: "mt-4",
|
||||
onClick: handleConsult
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode(" 预约咨询 ")
|
||||
]),
|
||||
_: 1
|
||||
})
|
||||
])
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent2, _scopeId));
|
||||
_push2(ssrRenderComponent(_component_a_col, {
|
||||
xs: 24,
|
||||
lg: 17
|
||||
}, {
|
||||
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
|
||||
if (_push3) {
|
||||
_push3(`<div class="expert-content-card" data-v-b2657184${_scopeId2}>`);
|
||||
_push3(ssrRenderComponent(_component_a_tabs, {
|
||||
activeKey: unref(activeTab),
|
||||
"onUpdate:activeKey": ($event) => isRef(activeTab) ? activeTab.value = $event : null
|
||||
}, {
|
||||
default: withCtx((_3, _push4, _parent4, _scopeId3) => {
|
||||
if (_push4) {
|
||||
_push4(ssrRenderComponent(_component_a_tab_pane, {
|
||||
key: "intro",
|
||||
tab: "专家简介"
|
||||
}, {
|
||||
default: withCtx((_4, _push5, _parent5, _scopeId4) => {
|
||||
if (_push5) {
|
||||
_push5(`<div class="tab-content" data-v-b2657184${_scopeId4}><h3 class="section-title" data-v-b2657184${_scopeId4}>个人简介</h3><p class="intro-text" data-v-b2657184${_scopeId4}>${ssrInterpolate(unref(expert).introduction || "暂无简介")}</p><h3 class="section-title mt-6" data-v-b2657184${_scopeId4}>主要成就</h3><ul class="achievement-list" data-v-b2657184${_scopeId4}><!--[-->`);
|
||||
ssrRenderList(unref(expert).achievements, (item, idx) => {
|
||||
_push5(`<li data-v-b2657184${_scopeId4}>${ssrInterpolate(item)}</li>`);
|
||||
});
|
||||
_push5(`<!--]--></ul><h3 class="section-title mt-6" data-v-b2657184${_scopeId4}>荣誉奖项</h3><div class="honors-grid" data-v-b2657184${_scopeId4}><!--[-->`);
|
||||
ssrRenderList(unref(expert).honors, (honor, idx) => {
|
||||
_push5(`<div class="honor-item" data-v-b2657184${_scopeId4}><span class="honor-icon" data-v-b2657184${_scopeId4}>🏆</span><span data-v-b2657184${_scopeId4}>${ssrInterpolate(honor)}</span></div>`);
|
||||
});
|
||||
_push5(`<!--]--></div></div>`);
|
||||
} else {
|
||||
return [
|
||||
createVNode("div", { class: "tab-content" }, [
|
||||
createVNode("h3", { class: "section-title" }, "个人简介"),
|
||||
createVNode("p", { class: "intro-text" }, toDisplayString(unref(expert).introduction || "暂无简介"), 1),
|
||||
createVNode("h3", { class: "section-title mt-6" }, "主要成就"),
|
||||
createVNode("ul", { class: "achievement-list" }, [
|
||||
(openBlock(true), createBlock(Fragment, null, renderList(unref(expert).achievements, (item, idx) => {
|
||||
return openBlock(), createBlock("li", { key: idx }, toDisplayString(item), 1);
|
||||
}), 128))
|
||||
]),
|
||||
createVNode("h3", { class: "section-title mt-6" }, "荣誉奖项"),
|
||||
createVNode("div", { class: "honors-grid" }, [
|
||||
(openBlock(true), createBlock(Fragment, null, renderList(unref(expert).honors, (honor, idx) => {
|
||||
return openBlock(), createBlock("div", {
|
||||
key: idx,
|
||||
class: "honor-item"
|
||||
}, [
|
||||
createVNode("span", { class: "honor-icon" }, "🏆"),
|
||||
createVNode("span", null, toDisplayString(honor), 1)
|
||||
]);
|
||||
}), 128))
|
||||
])
|
||||
])
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent4, _scopeId3));
|
||||
_push4(ssrRenderComponent(_component_a_tab_pane, {
|
||||
key: "articles",
|
||||
tab: "专家文章"
|
||||
}, {
|
||||
default: withCtx((_4, _push5, _parent5, _scopeId4) => {
|
||||
if (_push5) {
|
||||
_push5(`<div class="tab-content" data-v-b2657184${_scopeId4}>`);
|
||||
if (unref(expertArticles).length === 0) {
|
||||
_push5(`<div class="empty-state" data-v-b2657184${_scopeId4}>`);
|
||||
_push5(ssrRenderComponent(_component_a_empty, { description: "暂无文章" }, null, _parent5, _scopeId4));
|
||||
_push5(`</div>`);
|
||||
} else {
|
||||
_push5(`<!---->`);
|
||||
}
|
||||
_push5(`<div class="article-list" data-v-b2657184${_scopeId4}><!--[-->`);
|
||||
ssrRenderList(unref(expertArticles), (item) => {
|
||||
_push5(`<div class="article-item" data-v-b2657184${_scopeId4}>`);
|
||||
if (item.image) {
|
||||
_push5(`<div class="article-thumb" data-v-b2657184${_scopeId4}><img${ssrRenderAttr("src", item.image)}${ssrRenderAttr("alt", item.title)} data-v-b2657184${_scopeId4}></div>`);
|
||||
} else {
|
||||
_push5(`<!---->`);
|
||||
}
|
||||
_push5(`<div class="article-info" data-v-b2657184${_scopeId4}><h4 class="article-title" data-v-b2657184${_scopeId4}>${ssrInterpolate(item.title)}</h4><p class="article-overview" data-v-b2657184${_scopeId4}>${ssrInterpolate(item.overview)}</p><span class="article-date" data-v-b2657184${_scopeId4}>${ssrInterpolate(item.date)}</span></div></div>`);
|
||||
});
|
||||
_push5(`<!--]--></div></div>`);
|
||||
} else {
|
||||
return [
|
||||
createVNode("div", { class: "tab-content" }, [
|
||||
unref(expertArticles).length === 0 ? (openBlock(), createBlock("div", {
|
||||
key: 0,
|
||||
class: "empty-state"
|
||||
}, [
|
||||
createVNode(_component_a_empty, { description: "暂无文章" })
|
||||
])) : createCommentVNode("", true),
|
||||
createVNode("div", { class: "article-list" }, [
|
||||
(openBlock(true), createBlock(Fragment, null, renderList(unref(expertArticles), (item) => {
|
||||
return openBlock(), createBlock("div", {
|
||||
key: item.id,
|
||||
class: "article-item",
|
||||
onClick: ($event) => goArticle(item)
|
||||
}, [
|
||||
item.image ? (openBlock(), createBlock("div", {
|
||||
key: 0,
|
||||
class: "article-thumb"
|
||||
}, [
|
||||
createVNode("img", {
|
||||
src: item.image,
|
||||
alt: item.title
|
||||
}, null, 8, ["src", "alt"])
|
||||
])) : createCommentVNode("", true),
|
||||
createVNode("div", { class: "article-info" }, [
|
||||
createVNode("h4", { class: "article-title" }, toDisplayString(item.title), 1),
|
||||
createVNode("p", { class: "article-overview" }, toDisplayString(item.overview), 1),
|
||||
createVNode("span", { class: "article-date" }, toDisplayString(item.date), 1)
|
||||
])
|
||||
], 8, ["onClick"]);
|
||||
}), 128))
|
||||
])
|
||||
])
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent4, _scopeId3));
|
||||
_push4(ssrRenderComponent(_component_a_tab_pane, {
|
||||
key: "research",
|
||||
tab: "研究成果"
|
||||
}, {
|
||||
default: withCtx((_4, _push5, _parent5, _scopeId4) => {
|
||||
if (_push5) {
|
||||
_push5(`<div class="tab-content" data-v-b2657184${_scopeId4}>`);
|
||||
if (unref(expert).researchResults && unref(expert).researchResults.length) {
|
||||
_push5(`<div data-v-b2657184${_scopeId4}><!--[-->`);
|
||||
ssrRenderList(unref(expert).researchResults, (result, idx) => {
|
||||
_push5(`<div class="research-item" data-v-b2657184${_scopeId4}><span class="research-year" data-v-b2657184${_scopeId4}>${ssrInterpolate(result.year)}</span><div class="research-content" data-v-b2657184${_scopeId4}><h4 data-v-b2657184${_scopeId4}>${ssrInterpolate(result.title)}</h4><p data-v-b2657184${_scopeId4}>${ssrInterpolate(result.description)}</p></div></div>`);
|
||||
});
|
||||
_push5(`<!--]--></div>`);
|
||||
} else {
|
||||
_push5(ssrRenderComponent(_component_a_empty, { description: "暂无研究成果" }, null, _parent5, _scopeId4));
|
||||
}
|
||||
_push5(`</div>`);
|
||||
} else {
|
||||
return [
|
||||
createVNode("div", { class: "tab-content" }, [
|
||||
unref(expert).researchResults && unref(expert).researchResults.length ? (openBlock(), createBlock("div", { key: 0 }, [
|
||||
(openBlock(true), createBlock(Fragment, null, renderList(unref(expert).researchResults, (result, idx) => {
|
||||
return openBlock(), createBlock("div", {
|
||||
key: idx,
|
||||
class: "research-item"
|
||||
}, [
|
||||
createVNode("span", { class: "research-year" }, toDisplayString(result.year), 1),
|
||||
createVNode("div", { class: "research-content" }, [
|
||||
createVNode("h4", null, toDisplayString(result.title), 1),
|
||||
createVNode("p", null, toDisplayString(result.description), 1)
|
||||
])
|
||||
]);
|
||||
}), 128))
|
||||
])) : (openBlock(), createBlock(_component_a_empty, {
|
||||
key: 1,
|
||||
description: "暂无研究成果"
|
||||
}))
|
||||
])
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent4, _scopeId3));
|
||||
} else {
|
||||
return [
|
||||
createVNode(_component_a_tab_pane, {
|
||||
key: "intro",
|
||||
tab: "专家简介"
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createVNode("div", { class: "tab-content" }, [
|
||||
createVNode("h3", { class: "section-title" }, "个人简介"),
|
||||
createVNode("p", { class: "intro-text" }, toDisplayString(unref(expert).introduction || "暂无简介"), 1),
|
||||
createVNode("h3", { class: "section-title mt-6" }, "主要成就"),
|
||||
createVNode("ul", { class: "achievement-list" }, [
|
||||
(openBlock(true), createBlock(Fragment, null, renderList(unref(expert).achievements, (item, idx) => {
|
||||
return openBlock(), createBlock("li", { key: idx }, toDisplayString(item), 1);
|
||||
}), 128))
|
||||
]),
|
||||
createVNode("h3", { class: "section-title mt-6" }, "荣誉奖项"),
|
||||
createVNode("div", { class: "honors-grid" }, [
|
||||
(openBlock(true), createBlock(Fragment, null, renderList(unref(expert).honors, (honor, idx) => {
|
||||
return openBlock(), createBlock("div", {
|
||||
key: idx,
|
||||
class: "honor-item"
|
||||
}, [
|
||||
createVNode("span", { class: "honor-icon" }, "🏆"),
|
||||
createVNode("span", null, toDisplayString(honor), 1)
|
||||
]);
|
||||
}), 128))
|
||||
])
|
||||
])
|
||||
]),
|
||||
_: 1
|
||||
}),
|
||||
createVNode(_component_a_tab_pane, {
|
||||
key: "articles",
|
||||
tab: "专家文章"
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createVNode("div", { class: "tab-content" }, [
|
||||
unref(expertArticles).length === 0 ? (openBlock(), createBlock("div", {
|
||||
key: 0,
|
||||
class: "empty-state"
|
||||
}, [
|
||||
createVNode(_component_a_empty, { description: "暂无文章" })
|
||||
])) : createCommentVNode("", true),
|
||||
createVNode("div", { class: "article-list" }, [
|
||||
(openBlock(true), createBlock(Fragment, null, renderList(unref(expertArticles), (item) => {
|
||||
return openBlock(), createBlock("div", {
|
||||
key: item.id,
|
||||
class: "article-item",
|
||||
onClick: ($event) => goArticle(item)
|
||||
}, [
|
||||
item.image ? (openBlock(), createBlock("div", {
|
||||
key: 0,
|
||||
class: "article-thumb"
|
||||
}, [
|
||||
createVNode("img", {
|
||||
src: item.image,
|
||||
alt: item.title
|
||||
}, null, 8, ["src", "alt"])
|
||||
])) : createCommentVNode("", true),
|
||||
createVNode("div", { class: "article-info" }, [
|
||||
createVNode("h4", { class: "article-title" }, toDisplayString(item.title), 1),
|
||||
createVNode("p", { class: "article-overview" }, toDisplayString(item.overview), 1),
|
||||
createVNode("span", { class: "article-date" }, toDisplayString(item.date), 1)
|
||||
])
|
||||
], 8, ["onClick"]);
|
||||
}), 128))
|
||||
])
|
||||
])
|
||||
]),
|
||||
_: 1
|
||||
}),
|
||||
createVNode(_component_a_tab_pane, {
|
||||
key: "research",
|
||||
tab: "研究成果"
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createVNode("div", { class: "tab-content" }, [
|
||||
unref(expert).researchResults && unref(expert).researchResults.length ? (openBlock(), createBlock("div", { key: 0 }, [
|
||||
(openBlock(true), createBlock(Fragment, null, renderList(unref(expert).researchResults, (result, idx) => {
|
||||
return openBlock(), createBlock("div", {
|
||||
key: idx,
|
||||
class: "research-item"
|
||||
}, [
|
||||
createVNode("span", { class: "research-year" }, toDisplayString(result.year), 1),
|
||||
createVNode("div", { class: "research-content" }, [
|
||||
createVNode("h4", null, toDisplayString(result.title), 1),
|
||||
createVNode("p", null, toDisplayString(result.description), 1)
|
||||
])
|
||||
]);
|
||||
}), 128))
|
||||
])) : (openBlock(), createBlock(_component_a_empty, {
|
||||
key: 1,
|
||||
description: "暂无研究成果"
|
||||
}))
|
||||
])
|
||||
]),
|
||||
_: 1
|
||||
})
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent3, _scopeId2));
|
||||
_push3(`</div>`);
|
||||
} else {
|
||||
return [
|
||||
createVNode("div", { class: "expert-content-card" }, [
|
||||
createVNode(_component_a_tabs, {
|
||||
activeKey: unref(activeTab),
|
||||
"onUpdate:activeKey": ($event) => isRef(activeTab) ? activeTab.value = $event : null
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createVNode(_component_a_tab_pane, {
|
||||
key: "intro",
|
||||
tab: "专家简介"
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createVNode("div", { class: "tab-content" }, [
|
||||
createVNode("h3", { class: "section-title" }, "个人简介"),
|
||||
createVNode("p", { class: "intro-text" }, toDisplayString(unref(expert).introduction || "暂无简介"), 1),
|
||||
createVNode("h3", { class: "section-title mt-6" }, "主要成就"),
|
||||
createVNode("ul", { class: "achievement-list" }, [
|
||||
(openBlock(true), createBlock(Fragment, null, renderList(unref(expert).achievements, (item, idx) => {
|
||||
return openBlock(), createBlock("li", { key: idx }, toDisplayString(item), 1);
|
||||
}), 128))
|
||||
]),
|
||||
createVNode("h3", { class: "section-title mt-6" }, "荣誉奖项"),
|
||||
createVNode("div", { class: "honors-grid" }, [
|
||||
(openBlock(true), createBlock(Fragment, null, renderList(unref(expert).honors, (honor, idx) => {
|
||||
return openBlock(), createBlock("div", {
|
||||
key: idx,
|
||||
class: "honor-item"
|
||||
}, [
|
||||
createVNode("span", { class: "honor-icon" }, "🏆"),
|
||||
createVNode("span", null, toDisplayString(honor), 1)
|
||||
]);
|
||||
}), 128))
|
||||
])
|
||||
])
|
||||
]),
|
||||
_: 1
|
||||
}),
|
||||
createVNode(_component_a_tab_pane, {
|
||||
key: "articles",
|
||||
tab: "专家文章"
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createVNode("div", { class: "tab-content" }, [
|
||||
unref(expertArticles).length === 0 ? (openBlock(), createBlock("div", {
|
||||
key: 0,
|
||||
class: "empty-state"
|
||||
}, [
|
||||
createVNode(_component_a_empty, { description: "暂无文章" })
|
||||
])) : createCommentVNode("", true),
|
||||
createVNode("div", { class: "article-list" }, [
|
||||
(openBlock(true), createBlock(Fragment, null, renderList(unref(expertArticles), (item) => {
|
||||
return openBlock(), createBlock("div", {
|
||||
key: item.id,
|
||||
class: "article-item",
|
||||
onClick: ($event) => goArticle(item)
|
||||
}, [
|
||||
item.image ? (openBlock(), createBlock("div", {
|
||||
key: 0,
|
||||
class: "article-thumb"
|
||||
}, [
|
||||
createVNode("img", {
|
||||
src: item.image,
|
||||
alt: item.title
|
||||
}, null, 8, ["src", "alt"])
|
||||
])) : createCommentVNode("", true),
|
||||
createVNode("div", { class: "article-info" }, [
|
||||
createVNode("h4", { class: "article-title" }, toDisplayString(item.title), 1),
|
||||
createVNode("p", { class: "article-overview" }, toDisplayString(item.overview), 1),
|
||||
createVNode("span", { class: "article-date" }, toDisplayString(item.date), 1)
|
||||
])
|
||||
], 8, ["onClick"]);
|
||||
}), 128))
|
||||
])
|
||||
])
|
||||
]),
|
||||
_: 1
|
||||
}),
|
||||
createVNode(_component_a_tab_pane, {
|
||||
key: "research",
|
||||
tab: "研究成果"
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createVNode("div", { class: "tab-content" }, [
|
||||
unref(expert).researchResults && unref(expert).researchResults.length ? (openBlock(), createBlock("div", { key: 0 }, [
|
||||
(openBlock(true), createBlock(Fragment, null, renderList(unref(expert).researchResults, (result, idx) => {
|
||||
return openBlock(), createBlock("div", {
|
||||
key: idx,
|
||||
class: "research-item"
|
||||
}, [
|
||||
createVNode("span", { class: "research-year" }, toDisplayString(result.year), 1),
|
||||
createVNode("div", { class: "research-content" }, [
|
||||
createVNode("h4", null, toDisplayString(result.title), 1),
|
||||
createVNode("p", null, toDisplayString(result.description), 1)
|
||||
])
|
||||
]);
|
||||
}), 128))
|
||||
])) : (openBlock(), createBlock(_component_a_empty, {
|
||||
key: 1,
|
||||
description: "暂无研究成果"
|
||||
}))
|
||||
])
|
||||
]),
|
||||
_: 1
|
||||
})
|
||||
]),
|
||||
_: 1
|
||||
}, 8, ["activeKey", "onUpdate:activeKey"])
|
||||
])
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent2, _scopeId));
|
||||
} else {
|
||||
return [
|
||||
createVNode(_component_a_col, {
|
||||
xs: 24,
|
||||
lg: 7
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createVNode("div", { class: "expert-card" }, [
|
||||
createVNode("div", { class: "expert-avatar-wrapper" }, [
|
||||
unref(expert).avatar ? (openBlock(), createBlock("img", {
|
||||
key: 0,
|
||||
src: unref(expert).avatar,
|
||||
alt: unref(expert).name,
|
||||
class: "expert-avatar"
|
||||
}, null, 8, ["src", "alt"])) : (openBlock(), createBlock("div", {
|
||||
key: 1,
|
||||
class: "expert-avatar-placeholder"
|
||||
}, toDisplayString(unref(expert).name?.charAt(0)), 1))
|
||||
]),
|
||||
createVNode("h2", { class: "expert-name" }, toDisplayString(unref(expert).name), 1),
|
||||
createVNode("div", { class: "expert-title-tag" }, toDisplayString(unref(expert).title), 1),
|
||||
createVNode("div", { class: "expert-org" }, toDisplayString(unref(expert).organization), 1),
|
||||
createVNode("div", { class: "expert-info-list" }, [
|
||||
unref(expert).researchArea ? (openBlock(), createBlock("div", {
|
||||
key: 0,
|
||||
class: "info-item"
|
||||
}, [
|
||||
createVNode("span", { class: "info-label" }, "研究领域"),
|
||||
createVNode("span", { class: "info-value" }, toDisplayString(unref(expert).researchArea), 1)
|
||||
])) : createCommentVNode("", true),
|
||||
unref(expert).education ? (openBlock(), createBlock("div", {
|
||||
key: 1,
|
||||
class: "info-item"
|
||||
}, [
|
||||
createVNode("span", { class: "info-label" }, "学历"),
|
||||
createVNode("span", { class: "info-value" }, toDisplayString(unref(expert).education), 1)
|
||||
])) : createCommentVNode("", true),
|
||||
unref(expert).joinTime ? (openBlock(), createBlock("div", {
|
||||
key: 2,
|
||||
class: "info-item"
|
||||
}, [
|
||||
createVNode("span", { class: "info-label" }, "入库时间"),
|
||||
createVNode("span", { class: "info-value" }, toDisplayString(unref(expert).joinTime), 1)
|
||||
])) : createCommentVNode("", true)
|
||||
]),
|
||||
createVNode(_component_a_button, {
|
||||
type: "primary",
|
||||
block: "",
|
||||
size: "large",
|
||||
class: "mt-4",
|
||||
onClick: handleConsult
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode(" 预约咨询 ")
|
||||
]),
|
||||
_: 1
|
||||
})
|
||||
])
|
||||
]),
|
||||
_: 1
|
||||
}),
|
||||
createVNode(_component_a_col, {
|
||||
xs: 24,
|
||||
lg: 17
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createVNode("div", { class: "expert-content-card" }, [
|
||||
createVNode(_component_a_tabs, {
|
||||
activeKey: unref(activeTab),
|
||||
"onUpdate:activeKey": ($event) => isRef(activeTab) ? activeTab.value = $event : null
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createVNode(_component_a_tab_pane, {
|
||||
key: "intro",
|
||||
tab: "专家简介"
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createVNode("div", { class: "tab-content" }, [
|
||||
createVNode("h3", { class: "section-title" }, "个人简介"),
|
||||
createVNode("p", { class: "intro-text" }, toDisplayString(unref(expert).introduction || "暂无简介"), 1),
|
||||
createVNode("h3", { class: "section-title mt-6" }, "主要成就"),
|
||||
createVNode("ul", { class: "achievement-list" }, [
|
||||
(openBlock(true), createBlock(Fragment, null, renderList(unref(expert).achievements, (item, idx) => {
|
||||
return openBlock(), createBlock("li", { key: idx }, toDisplayString(item), 1);
|
||||
}), 128))
|
||||
]),
|
||||
createVNode("h3", { class: "section-title mt-6" }, "荣誉奖项"),
|
||||
createVNode("div", { class: "honors-grid" }, [
|
||||
(openBlock(true), createBlock(Fragment, null, renderList(unref(expert).honors, (honor, idx) => {
|
||||
return openBlock(), createBlock("div", {
|
||||
key: idx,
|
||||
class: "honor-item"
|
||||
}, [
|
||||
createVNode("span", { class: "honor-icon" }, "🏆"),
|
||||
createVNode("span", null, toDisplayString(honor), 1)
|
||||
]);
|
||||
}), 128))
|
||||
])
|
||||
])
|
||||
]),
|
||||
_: 1
|
||||
}),
|
||||
createVNode(_component_a_tab_pane, {
|
||||
key: "articles",
|
||||
tab: "专家文章"
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createVNode("div", { class: "tab-content" }, [
|
||||
unref(expertArticles).length === 0 ? (openBlock(), createBlock("div", {
|
||||
key: 0,
|
||||
class: "empty-state"
|
||||
}, [
|
||||
createVNode(_component_a_empty, { description: "暂无文章" })
|
||||
])) : createCommentVNode("", true),
|
||||
createVNode("div", { class: "article-list" }, [
|
||||
(openBlock(true), createBlock(Fragment, null, renderList(unref(expertArticles), (item) => {
|
||||
return openBlock(), createBlock("div", {
|
||||
key: item.id,
|
||||
class: "article-item",
|
||||
onClick: ($event) => goArticle(item)
|
||||
}, [
|
||||
item.image ? (openBlock(), createBlock("div", {
|
||||
key: 0,
|
||||
class: "article-thumb"
|
||||
}, [
|
||||
createVNode("img", {
|
||||
src: item.image,
|
||||
alt: item.title
|
||||
}, null, 8, ["src", "alt"])
|
||||
])) : createCommentVNode("", true),
|
||||
createVNode("div", { class: "article-info" }, [
|
||||
createVNode("h4", { class: "article-title" }, toDisplayString(item.title), 1),
|
||||
createVNode("p", { class: "article-overview" }, toDisplayString(item.overview), 1),
|
||||
createVNode("span", { class: "article-date" }, toDisplayString(item.date), 1)
|
||||
])
|
||||
], 8, ["onClick"]);
|
||||
}), 128))
|
||||
])
|
||||
])
|
||||
]),
|
||||
_: 1
|
||||
}),
|
||||
createVNode(_component_a_tab_pane, {
|
||||
key: "research",
|
||||
tab: "研究成果"
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createVNode("div", { class: "tab-content" }, [
|
||||
unref(expert).researchResults && unref(expert).researchResults.length ? (openBlock(), createBlock("div", { key: 0 }, [
|
||||
(openBlock(true), createBlock(Fragment, null, renderList(unref(expert).researchResults, (result, idx) => {
|
||||
return openBlock(), createBlock("div", {
|
||||
key: idx,
|
||||
class: "research-item"
|
||||
}, [
|
||||
createVNode("span", { class: "research-year" }, toDisplayString(result.year), 1),
|
||||
createVNode("div", { class: "research-content" }, [
|
||||
createVNode("h4", null, toDisplayString(result.title), 1),
|
||||
createVNode("p", null, toDisplayString(result.description), 1)
|
||||
])
|
||||
]);
|
||||
}), 128))
|
||||
])) : (openBlock(), createBlock(_component_a_empty, {
|
||||
key: 1,
|
||||
description: "暂无研究成果"
|
||||
}))
|
||||
])
|
||||
]),
|
||||
_: 1
|
||||
})
|
||||
]),
|
||||
_: 1
|
||||
}, 8, ["activeKey", "onUpdate:activeKey"])
|
||||
])
|
||||
]),
|
||||
_: 1
|
||||
})
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent));
|
||||
_push(`</div>`);
|
||||
}
|
||||
_push(`</div></div>`);
|
||||
};
|
||||
}
|
||||
});
|
||||
const _sfc_setup = _sfc_main.setup;
|
||||
_sfc_main.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/expert/[id].vue");
|
||||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||||
};
|
||||
const _id_ = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-b2657184"]]);
|
||||
|
||||
export { _id_ as default };
|
||||
//# sourceMappingURL=_id_-BqOla5il.mjs.map
|
||||
1
.output/server/chunks/build/_id_-BqOla5il.mjs.map
Normal file
1
.output/server/chunks/build/_id_-BqOla5il.mjs.map
Normal file
File diff suppressed because one or more lines are too long
888
.output/server/chunks/build/_id_-BuB0HRsp.mjs
Normal file
888
.output/server/chunks/build/_id_-BuB0HRsp.mjs
Normal file
@@ -0,0 +1,888 @@
|
||||
import { a as _export_sfc, e as useRoute, d as useRouter, c as useHead, _ as __nuxt_component_0 } from './server.mjs';
|
||||
import { defineComponent, computed, ref, watch, resolveComponent, mergeProps, withCtx, createTextVNode, createVNode, unref, toDisplayString, createBlock, createCommentVNode, openBlock, Fragment, renderList, useSSRContext } from 'vue';
|
||||
import { ssrRenderAttrs, ssrRenderComponent, ssrInterpolate, ssrRenderAttr, ssrRenderList } from 'vue/server-renderer';
|
||||
import { message } from 'ant-design-vue';
|
||||
import '../nitro/nitro.mjs';
|
||||
import 'node:http';
|
||||
import 'node:https';
|
||||
import 'node:events';
|
||||
import 'node:buffer';
|
||||
import 'node:fs';
|
||||
import 'node:path';
|
||||
import 'node:crypto';
|
||||
import 'node:url';
|
||||
import 'better-sqlite3';
|
||||
import 'vue-router';
|
||||
import '@babel/runtime/helpers/esm/extends';
|
||||
import 'stylis';
|
||||
import 'dayjs';
|
||||
import '../routes/renderer.mjs';
|
||||
import 'vue-bundle-renderer/runtime';
|
||||
import 'unhead/server';
|
||||
import 'devalue';
|
||||
import 'unhead/plugins';
|
||||
import 'unhead/utils';
|
||||
|
||||
const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
__name: "[id]",
|
||||
__ssrInlineRender: true,
|
||||
setup(__props) {
|
||||
const route = useRoute();
|
||||
const router = useRouter();
|
||||
const articleId = computed(() => route.params.id);
|
||||
const loading = ref(true);
|
||||
const article = ref({});
|
||||
const prevArticle = ref(null);
|
||||
const nextArticle = ref(null);
|
||||
const relatedArticles = ref([]);
|
||||
const hotArticles = ref([
|
||||
{ id: 1, title: "广西数字经济发展报告(2024)", rank: 1 },
|
||||
{ id: 2, title: "自治区关于优化营商环境的实施意见", rank: 2 },
|
||||
{ id: 3, title: "面向东盟的产业合作政策解读", rank: 3 },
|
||||
{ id: 4, title: "广西乡村振兴战略实施进展报告", rank: 4 },
|
||||
{ id: 5, title: "北部湾经济区发展最新动态", rank: 5 }
|
||||
]);
|
||||
useHead({
|
||||
title: computed(() => `${article.value?.title || "文章详情"} - 决策咨询网`),
|
||||
meta: [
|
||||
{ name: "description", content: computed(() => article.value?.summary || "") }
|
||||
]
|
||||
});
|
||||
async function loadArticle() {
|
||||
loading.value = true;
|
||||
try {
|
||||
article.value = {
|
||||
id: articleId.value,
|
||||
title: "广西自治区党委政府关于加快数字经济发展的实施意见",
|
||||
cover: `https://picsum.photos/900/400?random=${articleId.value}`,
|
||||
categoryName: "政策要闻",
|
||||
categoryPath: "/news",
|
||||
source: "广西壮族自治区人民政府",
|
||||
author: "政策研究处",
|
||||
publishTime: "2024-12-20 09:30:00",
|
||||
views: 1286,
|
||||
summary: "本意见旨在深入贯彻党中央、国务院关于发展数字经济的战略部署,结合广西实际,加快推进数字产业化和产业数字化,培育壮大数字经济新动能。",
|
||||
content: `
|
||||
<h2>一、总体要求</h2>
|
||||
<p>以习近平新时代中国特色社会主义思想为指导,全面贯彻党的二十大精神,围绕建设数字中国战略部署,立足广西比较优势,坚持创新驱动、数据赋能、融合发展,加快推动数字经济与实体经济深度融合,着力打造面向东盟的数字经济发展高地。</p>
|
||||
|
||||
<h2>二、主要目标</h2>
|
||||
<p>到2026年,数字经济核心产业增加值占GDP比重达到12%,数字经济总量突破1万亿元,数字化转型企业数量超过5000家,建成5G基站15万座。</p>
|
||||
|
||||
<h2>三、重点任务</h2>
|
||||
<h3>(一)加快数字基础设施建设</h3>
|
||||
<p>系统推进新型基础设施建设,加快5G、大数据中心、工业互联网等数字基础设施部署,构建高速、泛在、天地一体、云网融合、智能敏捷、绿色低碳的新型数字基础设施体系。</p>
|
||||
|
||||
<h3>(二)深化数字技术与实体经济融合</h3>
|
||||
<p>推动制造业、农业、服务业数字化转型,加快工业互联网创新应用,推进数字农业农村建设,促进数字技术与传统产业深度融合。</p>
|
||||
|
||||
<h3>(三)培育壮大数字经济核心产业</h3>
|
||||
<p>重点发展软件和信息技术服务业、大数据、云计算、人工智能、区块链等核心产业,打造广西数字经济核心产业集群。</p>
|
||||
|
||||
<h2>四、保障措施</h2>
|
||||
<p>加强组织领导,完善工作机制,强化政策支持,健全评估体系,确保各项任务落到实处。</p>
|
||||
`,
|
||||
tags: ["数字经济", "政策解读", "广西"],
|
||||
attachments: [
|
||||
{ name: "广西数字经济发展实施意见(全文).pdf", url: "#", size: "2.4MB" },
|
||||
{ name: "附件:实施细则.docx", url: "#", size: "856KB" }
|
||||
]
|
||||
};
|
||||
} catch (e) {
|
||||
message.error("加载失败");
|
||||
} finally {
|
||||
loading.value = false;
|
||||
}
|
||||
}
|
||||
function goArticle(item) {
|
||||
router.push(`/article/${item.id}`);
|
||||
}
|
||||
watch(articleId, () => {
|
||||
loadArticle();
|
||||
});
|
||||
return (_ctx, _push, _parent, _attrs) => {
|
||||
const _component_a_row = resolveComponent("a-row");
|
||||
const _component_a_col = resolveComponent("a-col");
|
||||
const _component_a_breadcrumb = resolveComponent("a-breadcrumb");
|
||||
const _component_a_breadcrumb_item = resolveComponent("a-breadcrumb-item");
|
||||
const _component_NuxtLink = __nuxt_component_0;
|
||||
const _component_a_skeleton = resolveComponent("a-skeleton");
|
||||
const _component_a_result = resolveComponent("a-result");
|
||||
const _component_a_button = resolveComponent("a-button");
|
||||
const _component_a_tag = resolveComponent("a-tag");
|
||||
_push(`<div${ssrRenderAttrs(mergeProps({ class: "article-detail-page" }, _attrs))} data-v-5856018c><div class="mx-auto max-w-screen-xl px-4 py-8" data-v-5856018c>`);
|
||||
_push(ssrRenderComponent(_component_a_row, { gutter: [32, 0] }, {
|
||||
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
||||
if (_push2) {
|
||||
_push2(ssrRenderComponent(_component_a_col, {
|
||||
xs: 24,
|
||||
lg: 17
|
||||
}, {
|
||||
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
|
||||
if (_push3) {
|
||||
_push3(ssrRenderComponent(_component_a_breadcrumb, { class: "mb-6" }, {
|
||||
default: withCtx((_3, _push4, _parent4, _scopeId3) => {
|
||||
if (_push4) {
|
||||
_push4(ssrRenderComponent(_component_a_breadcrumb_item, null, {
|
||||
default: withCtx((_4, _push5, _parent5, _scopeId4) => {
|
||||
if (_push5) {
|
||||
_push5(ssrRenderComponent(_component_NuxtLink, { to: "/" }, {
|
||||
default: withCtx((_5, _push6, _parent6, _scopeId5) => {
|
||||
if (_push6) {
|
||||
_push6(`首页`);
|
||||
} else {
|
||||
return [
|
||||
createTextVNode("首页")
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent5, _scopeId4));
|
||||
} else {
|
||||
return [
|
||||
createVNode(_component_NuxtLink, { to: "/" }, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode("首页")
|
||||
]),
|
||||
_: 1
|
||||
})
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent4, _scopeId3));
|
||||
if (unref(article).categoryPath) {
|
||||
_push4(ssrRenderComponent(_component_a_breadcrumb_item, null, {
|
||||
default: withCtx((_4, _push5, _parent5, _scopeId4) => {
|
||||
if (_push5) {
|
||||
_push5(ssrRenderComponent(_component_NuxtLink, {
|
||||
to: unref(article).categoryPath
|
||||
}, {
|
||||
default: withCtx((_5, _push6, _parent6, _scopeId5) => {
|
||||
if (_push6) {
|
||||
_push6(`${ssrInterpolate(unref(article).categoryName)}`);
|
||||
} else {
|
||||
return [
|
||||
createTextVNode(toDisplayString(unref(article).categoryName), 1)
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent5, _scopeId4));
|
||||
} else {
|
||||
return [
|
||||
createVNode(_component_NuxtLink, {
|
||||
to: unref(article).categoryPath
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode(toDisplayString(unref(article).categoryName), 1)
|
||||
]),
|
||||
_: 1
|
||||
}, 8, ["to"])
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent4, _scopeId3));
|
||||
} else {
|
||||
_push4(`<!---->`);
|
||||
}
|
||||
_push4(ssrRenderComponent(_component_a_breadcrumb_item, null, {
|
||||
default: withCtx((_4, _push5, _parent5, _scopeId4) => {
|
||||
if (_push5) {
|
||||
_push5(`${ssrInterpolate(unref(article).title || "文章详情")}`);
|
||||
} else {
|
||||
return [
|
||||
createTextVNode(toDisplayString(unref(article).title || "文章详情"), 1)
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent4, _scopeId3));
|
||||
} else {
|
||||
return [
|
||||
createVNode(_component_a_breadcrumb_item, null, {
|
||||
default: withCtx(() => [
|
||||
createVNode(_component_NuxtLink, { to: "/" }, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode("首页")
|
||||
]),
|
||||
_: 1
|
||||
})
|
||||
]),
|
||||
_: 1
|
||||
}),
|
||||
unref(article).categoryPath ? (openBlock(), createBlock(_component_a_breadcrumb_item, { key: 0 }, {
|
||||
default: withCtx(() => [
|
||||
createVNode(_component_NuxtLink, {
|
||||
to: unref(article).categoryPath
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode(toDisplayString(unref(article).categoryName), 1)
|
||||
]),
|
||||
_: 1
|
||||
}, 8, ["to"])
|
||||
]),
|
||||
_: 1
|
||||
})) : createCommentVNode("", true),
|
||||
createVNode(_component_a_breadcrumb_item, null, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode(toDisplayString(unref(article).title || "文章详情"), 1)
|
||||
]),
|
||||
_: 1
|
||||
})
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent3, _scopeId2));
|
||||
if (unref(loading)) {
|
||||
_push3(`<div class="article-loading" data-v-5856018c${_scopeId2}>`);
|
||||
_push3(ssrRenderComponent(_component_a_skeleton, {
|
||||
active: "",
|
||||
paragraph: { rows: 12 }
|
||||
}, null, _parent3, _scopeId2));
|
||||
_push3(`</div>`);
|
||||
} else if (!unref(article).id) {
|
||||
_push3(`<div class="article-empty" data-v-5856018c${_scopeId2}>`);
|
||||
_push3(ssrRenderComponent(_component_a_result, {
|
||||
status: "404",
|
||||
title: "文章不存在",
|
||||
"sub-title": "您查找的文章不存在或已被删除"
|
||||
}, {
|
||||
extra: withCtx((_3, _push4, _parent4, _scopeId3) => {
|
||||
if (_push4) {
|
||||
_push4(ssrRenderComponent(_component_a_button, {
|
||||
type: "primary",
|
||||
onClick: ($event) => _ctx.$router.back()
|
||||
}, {
|
||||
default: withCtx((_4, _push5, _parent5, _scopeId4) => {
|
||||
if (_push5) {
|
||||
_push5(`返回上一页`);
|
||||
} else {
|
||||
return [
|
||||
createTextVNode("返回上一页")
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent4, _scopeId3));
|
||||
} else {
|
||||
return [
|
||||
createVNode(_component_a_button, {
|
||||
type: "primary",
|
||||
onClick: ($event) => _ctx.$router.back()
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode("返回上一页")
|
||||
]),
|
||||
_: 1
|
||||
}, 8, ["onClick"])
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent3, _scopeId2));
|
||||
_push3(`</div>`);
|
||||
} else {
|
||||
_push3(`<article class="article-container" data-v-5856018c${_scopeId2}>`);
|
||||
if (unref(article).cover) {
|
||||
_push3(`<div class="article-cover" data-v-5856018c${_scopeId2}><img${ssrRenderAttr("src", unref(article).cover)}${ssrRenderAttr("alt", unref(article).title)} data-v-5856018c${_scopeId2}></div>`);
|
||||
} else {
|
||||
_push3(`<!---->`);
|
||||
}
|
||||
_push3(`<div class="article-header" data-v-5856018c${_scopeId2}>`);
|
||||
if (unref(article).categoryName) {
|
||||
_push3(`<div class="article-category-tag" data-v-5856018c${_scopeId2}>${ssrInterpolate(unref(article).categoryName)}</div>`);
|
||||
} else {
|
||||
_push3(`<!---->`);
|
||||
}
|
||||
_push3(`<h1 class="article-title" data-v-5856018c${_scopeId2}>${ssrInterpolate(unref(article).title)}</h1><div class="article-meta" data-v-5856018c${_scopeId2}>`);
|
||||
if (unref(article).source) {
|
||||
_push3(`<span class="meta-item" data-v-5856018c${_scopeId2}><span class="meta-icon" data-v-5856018c${_scopeId2}>📰</span>来源:${ssrInterpolate(unref(article).source)}</span>`);
|
||||
} else {
|
||||
_push3(`<!---->`);
|
||||
}
|
||||
if (unref(article).author) {
|
||||
_push3(`<span class="meta-item" data-v-5856018c${_scopeId2}><span class="meta-icon" data-v-5856018c${_scopeId2}>✍️</span>${ssrInterpolate(unref(article).author)}</span>`);
|
||||
} else {
|
||||
_push3(`<!---->`);
|
||||
}
|
||||
if (unref(article).publishTime) {
|
||||
_push3(`<span class="meta-item" data-v-5856018c${_scopeId2}><span class="meta-icon" data-v-5856018c${_scopeId2}>🕐</span>${ssrInterpolate(unref(article).publishTime)}</span>`);
|
||||
} else {
|
||||
_push3(`<!---->`);
|
||||
}
|
||||
if (unref(article).views) {
|
||||
_push3(`<span class="meta-item" data-v-5856018c${_scopeId2}><span class="meta-icon" data-v-5856018c${_scopeId2}>👁</span>${ssrInterpolate(unref(article).views)} 次阅读 </span>`);
|
||||
} else {
|
||||
_push3(`<!---->`);
|
||||
}
|
||||
_push3(`</div></div>`);
|
||||
if (unref(article).summary) {
|
||||
_push3(`<div class="article-summary" data-v-5856018c${_scopeId2}><div class="summary-label" data-v-5856018c${_scopeId2}>摘要</div><p data-v-5856018c${_scopeId2}>${ssrInterpolate(unref(article).summary)}</p></div>`);
|
||||
} else {
|
||||
_push3(`<!---->`);
|
||||
}
|
||||
_push3(`<div class="article-body" data-v-5856018c${_scopeId2}>${unref(article).content ?? ""}</div>`);
|
||||
if (unref(article).attachments && unref(article).attachments.length) {
|
||||
_push3(`<div class="article-attachments" data-v-5856018c${_scopeId2}><div class="attachments-title" data-v-5856018c${_scopeId2}>📎 相关附件</div><div class="attachments-list" data-v-5856018c${_scopeId2}><!--[-->`);
|
||||
ssrRenderList(unref(article).attachments, (file) => {
|
||||
_push3(`<a${ssrRenderAttr("href", file.url)} target="_blank" class="attachment-item" data-v-5856018c${_scopeId2}><span class="attachment-icon" data-v-5856018c${_scopeId2}>📄</span><span class="attachment-name" data-v-5856018c${_scopeId2}>${ssrInterpolate(file.name)}</span><span class="attachment-size" data-v-5856018c${_scopeId2}>${ssrInterpolate(file.size)}</span></a>`);
|
||||
});
|
||||
_push3(`<!--]--></div></div>`);
|
||||
} else {
|
||||
_push3(`<!---->`);
|
||||
}
|
||||
if (unref(article).tags && unref(article).tags.length) {
|
||||
_push3(`<div class="article-tags" data-v-5856018c${_scopeId2}><span class="tags-label" data-v-5856018c${_scopeId2}>标签:</span><!--[-->`);
|
||||
ssrRenderList(unref(article).tags, (tag) => {
|
||||
_push3(ssrRenderComponent(_component_a_tag, {
|
||||
key: tag,
|
||||
color: "blue"
|
||||
}, {
|
||||
default: withCtx((_3, _push4, _parent4, _scopeId3) => {
|
||||
if (_push4) {
|
||||
_push4(`${ssrInterpolate(tag)}`);
|
||||
} else {
|
||||
return [
|
||||
createTextVNode(toDisplayString(tag), 1)
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 2
|
||||
}, _parent3, _scopeId2));
|
||||
});
|
||||
_push3(`<!--]--></div>`);
|
||||
} else {
|
||||
_push3(`<!---->`);
|
||||
}
|
||||
_push3(`<div class="article-disclaimer" data-v-5856018c${_scopeId2}><p data-v-5856018c${_scopeId2}>声明:本文内容仅代表作者本人观点,不代表本网站立场。如有侵权请联系我们删除。</p></div><div class="article-nav" data-v-5856018c${_scopeId2}>`);
|
||||
if (unref(prevArticle)) {
|
||||
_push3(`<div class="nav-prev" data-v-5856018c${_scopeId2}><span class="nav-dir" data-v-5856018c${_scopeId2}>« 上一篇</span><span class="nav-title" data-v-5856018c${_scopeId2}>${ssrInterpolate(unref(prevArticle).title)}</span></div>`);
|
||||
} else {
|
||||
_push3(`<!---->`);
|
||||
}
|
||||
if (unref(nextArticle)) {
|
||||
_push3(`<div class="nav-next" data-v-5856018c${_scopeId2}><span class="nav-title" data-v-5856018c${_scopeId2}>${ssrInterpolate(unref(nextArticle).title)}</span><span class="nav-dir" data-v-5856018c${_scopeId2}>下一篇 »</span></div>`);
|
||||
} else {
|
||||
_push3(`<!---->`);
|
||||
}
|
||||
_push3(`</div></article>`);
|
||||
}
|
||||
} else {
|
||||
return [
|
||||
createVNode(_component_a_breadcrumb, { class: "mb-6" }, {
|
||||
default: withCtx(() => [
|
||||
createVNode(_component_a_breadcrumb_item, null, {
|
||||
default: withCtx(() => [
|
||||
createVNode(_component_NuxtLink, { to: "/" }, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode("首页")
|
||||
]),
|
||||
_: 1
|
||||
})
|
||||
]),
|
||||
_: 1
|
||||
}),
|
||||
unref(article).categoryPath ? (openBlock(), createBlock(_component_a_breadcrumb_item, { key: 0 }, {
|
||||
default: withCtx(() => [
|
||||
createVNode(_component_NuxtLink, {
|
||||
to: unref(article).categoryPath
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode(toDisplayString(unref(article).categoryName), 1)
|
||||
]),
|
||||
_: 1
|
||||
}, 8, ["to"])
|
||||
]),
|
||||
_: 1
|
||||
})) : createCommentVNode("", true),
|
||||
createVNode(_component_a_breadcrumb_item, null, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode(toDisplayString(unref(article).title || "文章详情"), 1)
|
||||
]),
|
||||
_: 1
|
||||
})
|
||||
]),
|
||||
_: 1
|
||||
}),
|
||||
unref(loading) ? (openBlock(), createBlock("div", {
|
||||
key: 0,
|
||||
class: "article-loading"
|
||||
}, [
|
||||
createVNode(_component_a_skeleton, {
|
||||
active: "",
|
||||
paragraph: { rows: 12 }
|
||||
})
|
||||
])) : !unref(article).id ? (openBlock(), createBlock("div", {
|
||||
key: 1,
|
||||
class: "article-empty"
|
||||
}, [
|
||||
createVNode(_component_a_result, {
|
||||
status: "404",
|
||||
title: "文章不存在",
|
||||
"sub-title": "您查找的文章不存在或已被删除"
|
||||
}, {
|
||||
extra: withCtx(() => [
|
||||
createVNode(_component_a_button, {
|
||||
type: "primary",
|
||||
onClick: ($event) => _ctx.$router.back()
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode("返回上一页")
|
||||
]),
|
||||
_: 1
|
||||
}, 8, ["onClick"])
|
||||
]),
|
||||
_: 1
|
||||
})
|
||||
])) : (openBlock(), createBlock("article", {
|
||||
key: 2,
|
||||
class: "article-container"
|
||||
}, [
|
||||
unref(article).cover ? (openBlock(), createBlock("div", {
|
||||
key: 0,
|
||||
class: "article-cover"
|
||||
}, [
|
||||
createVNode("img", {
|
||||
src: unref(article).cover,
|
||||
alt: unref(article).title
|
||||
}, null, 8, ["src", "alt"])
|
||||
])) : createCommentVNode("", true),
|
||||
createVNode("div", { class: "article-header" }, [
|
||||
unref(article).categoryName ? (openBlock(), createBlock("div", {
|
||||
key: 0,
|
||||
class: "article-category-tag"
|
||||
}, toDisplayString(unref(article).categoryName), 1)) : createCommentVNode("", true),
|
||||
createVNode("h1", { class: "article-title" }, toDisplayString(unref(article).title), 1),
|
||||
createVNode("div", { class: "article-meta" }, [
|
||||
unref(article).source ? (openBlock(), createBlock("span", {
|
||||
key: 0,
|
||||
class: "meta-item"
|
||||
}, [
|
||||
createVNode("span", { class: "meta-icon" }, "📰"),
|
||||
createTextVNode("来源:" + toDisplayString(unref(article).source), 1)
|
||||
])) : createCommentVNode("", true),
|
||||
unref(article).author ? (openBlock(), createBlock("span", {
|
||||
key: 1,
|
||||
class: "meta-item"
|
||||
}, [
|
||||
createVNode("span", { class: "meta-icon" }, "✍️"),
|
||||
createTextVNode(toDisplayString(unref(article).author), 1)
|
||||
])) : createCommentVNode("", true),
|
||||
unref(article).publishTime ? (openBlock(), createBlock("span", {
|
||||
key: 2,
|
||||
class: "meta-item"
|
||||
}, [
|
||||
createVNode("span", { class: "meta-icon" }, "🕐"),
|
||||
createTextVNode(toDisplayString(unref(article).publishTime), 1)
|
||||
])) : createCommentVNode("", true),
|
||||
unref(article).views ? (openBlock(), createBlock("span", {
|
||||
key: 3,
|
||||
class: "meta-item"
|
||||
}, [
|
||||
createVNode("span", { class: "meta-icon" }, "👁"),
|
||||
createTextVNode(toDisplayString(unref(article).views) + " 次阅读 ", 1)
|
||||
])) : createCommentVNode("", true)
|
||||
])
|
||||
]),
|
||||
unref(article).summary ? (openBlock(), createBlock("div", {
|
||||
key: 1,
|
||||
class: "article-summary"
|
||||
}, [
|
||||
createVNode("div", { class: "summary-label" }, "摘要"),
|
||||
createVNode("p", null, toDisplayString(unref(article).summary), 1)
|
||||
])) : createCommentVNode("", true),
|
||||
createVNode("div", {
|
||||
class: "article-body",
|
||||
innerHTML: unref(article).content
|
||||
}, null, 8, ["innerHTML"]),
|
||||
unref(article).attachments && unref(article).attachments.length ? (openBlock(), createBlock("div", {
|
||||
key: 2,
|
||||
class: "article-attachments"
|
||||
}, [
|
||||
createVNode("div", { class: "attachments-title" }, "📎 相关附件"),
|
||||
createVNode("div", { class: "attachments-list" }, [
|
||||
(openBlock(true), createBlock(Fragment, null, renderList(unref(article).attachments, (file) => {
|
||||
return openBlock(), createBlock("a", {
|
||||
key: file.url,
|
||||
href: file.url,
|
||||
target: "_blank",
|
||||
class: "attachment-item"
|
||||
}, [
|
||||
createVNode("span", { class: "attachment-icon" }, "📄"),
|
||||
createVNode("span", { class: "attachment-name" }, toDisplayString(file.name), 1),
|
||||
createVNode("span", { class: "attachment-size" }, toDisplayString(file.size), 1)
|
||||
], 8, ["href"]);
|
||||
}), 128))
|
||||
])
|
||||
])) : createCommentVNode("", true),
|
||||
unref(article).tags && unref(article).tags.length ? (openBlock(), createBlock("div", {
|
||||
key: 3,
|
||||
class: "article-tags"
|
||||
}, [
|
||||
createVNode("span", { class: "tags-label" }, "标签:"),
|
||||
(openBlock(true), createBlock(Fragment, null, renderList(unref(article).tags, (tag) => {
|
||||
return openBlock(), createBlock(_component_a_tag, {
|
||||
key: tag,
|
||||
color: "blue"
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode(toDisplayString(tag), 1)
|
||||
]),
|
||||
_: 2
|
||||
}, 1024);
|
||||
}), 128))
|
||||
])) : createCommentVNode("", true),
|
||||
createVNode("div", { class: "article-disclaimer" }, [
|
||||
createVNode("p", null, "声明:本文内容仅代表作者本人观点,不代表本网站立场。如有侵权请联系我们删除。")
|
||||
]),
|
||||
createVNode("div", { class: "article-nav" }, [
|
||||
unref(prevArticle) ? (openBlock(), createBlock("div", {
|
||||
key: 0,
|
||||
class: "nav-prev",
|
||||
onClick: ($event) => goArticle(unref(prevArticle))
|
||||
}, [
|
||||
createVNode("span", { class: "nav-dir" }, "« 上一篇"),
|
||||
createVNode("span", { class: "nav-title" }, toDisplayString(unref(prevArticle).title), 1)
|
||||
], 8, ["onClick"])) : createCommentVNode("", true),
|
||||
unref(nextArticle) ? (openBlock(), createBlock("div", {
|
||||
key: 1,
|
||||
class: "nav-next",
|
||||
onClick: ($event) => goArticle(unref(nextArticle))
|
||||
}, [
|
||||
createVNode("span", { class: "nav-title" }, toDisplayString(unref(nextArticle).title), 1),
|
||||
createVNode("span", { class: "nav-dir" }, "下一篇 »")
|
||||
], 8, ["onClick"])) : createCommentVNode("", true)
|
||||
])
|
||||
]))
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent2, _scopeId));
|
||||
_push2(ssrRenderComponent(_component_a_col, {
|
||||
xs: 0,
|
||||
lg: 7,
|
||||
class: "hidden lg:block"
|
||||
}, {
|
||||
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
|
||||
if (_push3) {
|
||||
_push3(`<div class="sidebar" data-v-5856018c${_scopeId2}><div class="sidebar-card" data-v-5856018c${_scopeId2}><div class="sidebar-title" data-v-5856018c${_scopeId2}>相关文章</div><div class="related-list" data-v-5856018c${_scopeId2}><!--[-->`);
|
||||
ssrRenderList(unref(relatedArticles), (item) => {
|
||||
_push3(`<div class="related-item" data-v-5856018c${_scopeId2}><span class="related-dot" data-v-5856018c${_scopeId2}>›</span><span class="related-title" data-v-5856018c${_scopeId2}>${ssrInterpolate(item.title)}</span></div>`);
|
||||
});
|
||||
_push3(`<!--]-->`);
|
||||
if (!unref(relatedArticles).length) {
|
||||
_push3(`<div class="related-empty" data-v-5856018c${_scopeId2}>暂无相关文章</div>`);
|
||||
} else {
|
||||
_push3(`<!---->`);
|
||||
}
|
||||
_push3(`</div></div><div class="sidebar-card mt-6" data-v-5856018c${_scopeId2}><div class="sidebar-title" data-v-5856018c${_scopeId2}>热门推荐</div><div class="related-list" data-v-5856018c${_scopeId2}><!--[-->`);
|
||||
ssrRenderList(unref(hotArticles), (item) => {
|
||||
_push3(`<div class="related-item hot-item" data-v-5856018c${_scopeId2}><span class="hot-rank" data-v-5856018c${_scopeId2}>${ssrInterpolate(item.rank)}</span><span class="related-title" data-v-5856018c${_scopeId2}>${ssrInterpolate(item.title)}</span></div>`);
|
||||
});
|
||||
_push3(`<!--]--></div></div></div>`);
|
||||
} else {
|
||||
return [
|
||||
createVNode("div", { class: "sidebar" }, [
|
||||
createVNode("div", { class: "sidebar-card" }, [
|
||||
createVNode("div", { class: "sidebar-title" }, "相关文章"),
|
||||
createVNode("div", { class: "related-list" }, [
|
||||
(openBlock(true), createBlock(Fragment, null, renderList(unref(relatedArticles), (item) => {
|
||||
return openBlock(), createBlock("div", {
|
||||
key: item.id,
|
||||
class: "related-item",
|
||||
onClick: ($event) => goArticle(item)
|
||||
}, [
|
||||
createVNode("span", { class: "related-dot" }, "›"),
|
||||
createVNode("span", { class: "related-title" }, toDisplayString(item.title), 1)
|
||||
], 8, ["onClick"]);
|
||||
}), 128)),
|
||||
!unref(relatedArticles).length ? (openBlock(), createBlock("div", {
|
||||
key: 0,
|
||||
class: "related-empty"
|
||||
}, "暂无相关文章")) : createCommentVNode("", true)
|
||||
])
|
||||
]),
|
||||
createVNode("div", { class: "sidebar-card mt-6" }, [
|
||||
createVNode("div", { class: "sidebar-title" }, "热门推荐"),
|
||||
createVNode("div", { class: "related-list" }, [
|
||||
(openBlock(true), createBlock(Fragment, null, renderList(unref(hotArticles), (item) => {
|
||||
return openBlock(), createBlock("div", {
|
||||
key: item.id,
|
||||
class: "related-item hot-item",
|
||||
onClick: ($event) => goArticle(item)
|
||||
}, [
|
||||
createVNode("span", { class: "hot-rank" }, toDisplayString(item.rank), 1),
|
||||
createVNode("span", { class: "related-title" }, toDisplayString(item.title), 1)
|
||||
], 8, ["onClick"]);
|
||||
}), 128))
|
||||
])
|
||||
])
|
||||
])
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent2, _scopeId));
|
||||
} else {
|
||||
return [
|
||||
createVNode(_component_a_col, {
|
||||
xs: 24,
|
||||
lg: 17
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createVNode(_component_a_breadcrumb, { class: "mb-6" }, {
|
||||
default: withCtx(() => [
|
||||
createVNode(_component_a_breadcrumb_item, null, {
|
||||
default: withCtx(() => [
|
||||
createVNode(_component_NuxtLink, { to: "/" }, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode("首页")
|
||||
]),
|
||||
_: 1
|
||||
})
|
||||
]),
|
||||
_: 1
|
||||
}),
|
||||
unref(article).categoryPath ? (openBlock(), createBlock(_component_a_breadcrumb_item, { key: 0 }, {
|
||||
default: withCtx(() => [
|
||||
createVNode(_component_NuxtLink, {
|
||||
to: unref(article).categoryPath
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode(toDisplayString(unref(article).categoryName), 1)
|
||||
]),
|
||||
_: 1
|
||||
}, 8, ["to"])
|
||||
]),
|
||||
_: 1
|
||||
})) : createCommentVNode("", true),
|
||||
createVNode(_component_a_breadcrumb_item, null, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode(toDisplayString(unref(article).title || "文章详情"), 1)
|
||||
]),
|
||||
_: 1
|
||||
})
|
||||
]),
|
||||
_: 1
|
||||
}),
|
||||
unref(loading) ? (openBlock(), createBlock("div", {
|
||||
key: 0,
|
||||
class: "article-loading"
|
||||
}, [
|
||||
createVNode(_component_a_skeleton, {
|
||||
active: "",
|
||||
paragraph: { rows: 12 }
|
||||
})
|
||||
])) : !unref(article).id ? (openBlock(), createBlock("div", {
|
||||
key: 1,
|
||||
class: "article-empty"
|
||||
}, [
|
||||
createVNode(_component_a_result, {
|
||||
status: "404",
|
||||
title: "文章不存在",
|
||||
"sub-title": "您查找的文章不存在或已被删除"
|
||||
}, {
|
||||
extra: withCtx(() => [
|
||||
createVNode(_component_a_button, {
|
||||
type: "primary",
|
||||
onClick: ($event) => _ctx.$router.back()
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode("返回上一页")
|
||||
]),
|
||||
_: 1
|
||||
}, 8, ["onClick"])
|
||||
]),
|
||||
_: 1
|
||||
})
|
||||
])) : (openBlock(), createBlock("article", {
|
||||
key: 2,
|
||||
class: "article-container"
|
||||
}, [
|
||||
unref(article).cover ? (openBlock(), createBlock("div", {
|
||||
key: 0,
|
||||
class: "article-cover"
|
||||
}, [
|
||||
createVNode("img", {
|
||||
src: unref(article).cover,
|
||||
alt: unref(article).title
|
||||
}, null, 8, ["src", "alt"])
|
||||
])) : createCommentVNode("", true),
|
||||
createVNode("div", { class: "article-header" }, [
|
||||
unref(article).categoryName ? (openBlock(), createBlock("div", {
|
||||
key: 0,
|
||||
class: "article-category-tag"
|
||||
}, toDisplayString(unref(article).categoryName), 1)) : createCommentVNode("", true),
|
||||
createVNode("h1", { class: "article-title" }, toDisplayString(unref(article).title), 1),
|
||||
createVNode("div", { class: "article-meta" }, [
|
||||
unref(article).source ? (openBlock(), createBlock("span", {
|
||||
key: 0,
|
||||
class: "meta-item"
|
||||
}, [
|
||||
createVNode("span", { class: "meta-icon" }, "📰"),
|
||||
createTextVNode("来源:" + toDisplayString(unref(article).source), 1)
|
||||
])) : createCommentVNode("", true),
|
||||
unref(article).author ? (openBlock(), createBlock("span", {
|
||||
key: 1,
|
||||
class: "meta-item"
|
||||
}, [
|
||||
createVNode("span", { class: "meta-icon" }, "✍️"),
|
||||
createTextVNode(toDisplayString(unref(article).author), 1)
|
||||
])) : createCommentVNode("", true),
|
||||
unref(article).publishTime ? (openBlock(), createBlock("span", {
|
||||
key: 2,
|
||||
class: "meta-item"
|
||||
}, [
|
||||
createVNode("span", { class: "meta-icon" }, "🕐"),
|
||||
createTextVNode(toDisplayString(unref(article).publishTime), 1)
|
||||
])) : createCommentVNode("", true),
|
||||
unref(article).views ? (openBlock(), createBlock("span", {
|
||||
key: 3,
|
||||
class: "meta-item"
|
||||
}, [
|
||||
createVNode("span", { class: "meta-icon" }, "👁"),
|
||||
createTextVNode(toDisplayString(unref(article).views) + " 次阅读 ", 1)
|
||||
])) : createCommentVNode("", true)
|
||||
])
|
||||
]),
|
||||
unref(article).summary ? (openBlock(), createBlock("div", {
|
||||
key: 1,
|
||||
class: "article-summary"
|
||||
}, [
|
||||
createVNode("div", { class: "summary-label" }, "摘要"),
|
||||
createVNode("p", null, toDisplayString(unref(article).summary), 1)
|
||||
])) : createCommentVNode("", true),
|
||||
createVNode("div", {
|
||||
class: "article-body",
|
||||
innerHTML: unref(article).content
|
||||
}, null, 8, ["innerHTML"]),
|
||||
unref(article).attachments && unref(article).attachments.length ? (openBlock(), createBlock("div", {
|
||||
key: 2,
|
||||
class: "article-attachments"
|
||||
}, [
|
||||
createVNode("div", { class: "attachments-title" }, "📎 相关附件"),
|
||||
createVNode("div", { class: "attachments-list" }, [
|
||||
(openBlock(true), createBlock(Fragment, null, renderList(unref(article).attachments, (file) => {
|
||||
return openBlock(), createBlock("a", {
|
||||
key: file.url,
|
||||
href: file.url,
|
||||
target: "_blank",
|
||||
class: "attachment-item"
|
||||
}, [
|
||||
createVNode("span", { class: "attachment-icon" }, "📄"),
|
||||
createVNode("span", { class: "attachment-name" }, toDisplayString(file.name), 1),
|
||||
createVNode("span", { class: "attachment-size" }, toDisplayString(file.size), 1)
|
||||
], 8, ["href"]);
|
||||
}), 128))
|
||||
])
|
||||
])) : createCommentVNode("", true),
|
||||
unref(article).tags && unref(article).tags.length ? (openBlock(), createBlock("div", {
|
||||
key: 3,
|
||||
class: "article-tags"
|
||||
}, [
|
||||
createVNode("span", { class: "tags-label" }, "标签:"),
|
||||
(openBlock(true), createBlock(Fragment, null, renderList(unref(article).tags, (tag) => {
|
||||
return openBlock(), createBlock(_component_a_tag, {
|
||||
key: tag,
|
||||
color: "blue"
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode(toDisplayString(tag), 1)
|
||||
]),
|
||||
_: 2
|
||||
}, 1024);
|
||||
}), 128))
|
||||
])) : createCommentVNode("", true),
|
||||
createVNode("div", { class: "article-disclaimer" }, [
|
||||
createVNode("p", null, "声明:本文内容仅代表作者本人观点,不代表本网站立场。如有侵权请联系我们删除。")
|
||||
]),
|
||||
createVNode("div", { class: "article-nav" }, [
|
||||
unref(prevArticle) ? (openBlock(), createBlock("div", {
|
||||
key: 0,
|
||||
class: "nav-prev",
|
||||
onClick: ($event) => goArticle(unref(prevArticle))
|
||||
}, [
|
||||
createVNode("span", { class: "nav-dir" }, "« 上一篇"),
|
||||
createVNode("span", { class: "nav-title" }, toDisplayString(unref(prevArticle).title), 1)
|
||||
], 8, ["onClick"])) : createCommentVNode("", true),
|
||||
unref(nextArticle) ? (openBlock(), createBlock("div", {
|
||||
key: 1,
|
||||
class: "nav-next",
|
||||
onClick: ($event) => goArticle(unref(nextArticle))
|
||||
}, [
|
||||
createVNode("span", { class: "nav-title" }, toDisplayString(unref(nextArticle).title), 1),
|
||||
createVNode("span", { class: "nav-dir" }, "下一篇 »")
|
||||
], 8, ["onClick"])) : createCommentVNode("", true)
|
||||
])
|
||||
]))
|
||||
]),
|
||||
_: 1
|
||||
}),
|
||||
createVNode(_component_a_col, {
|
||||
xs: 0,
|
||||
lg: 7,
|
||||
class: "hidden lg:block"
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createVNode("div", { class: "sidebar" }, [
|
||||
createVNode("div", { class: "sidebar-card" }, [
|
||||
createVNode("div", { class: "sidebar-title" }, "相关文章"),
|
||||
createVNode("div", { class: "related-list" }, [
|
||||
(openBlock(true), createBlock(Fragment, null, renderList(unref(relatedArticles), (item) => {
|
||||
return openBlock(), createBlock("div", {
|
||||
key: item.id,
|
||||
class: "related-item",
|
||||
onClick: ($event) => goArticle(item)
|
||||
}, [
|
||||
createVNode("span", { class: "related-dot" }, "›"),
|
||||
createVNode("span", { class: "related-title" }, toDisplayString(item.title), 1)
|
||||
], 8, ["onClick"]);
|
||||
}), 128)),
|
||||
!unref(relatedArticles).length ? (openBlock(), createBlock("div", {
|
||||
key: 0,
|
||||
class: "related-empty"
|
||||
}, "暂无相关文章")) : createCommentVNode("", true)
|
||||
])
|
||||
]),
|
||||
createVNode("div", { class: "sidebar-card mt-6" }, [
|
||||
createVNode("div", { class: "sidebar-title" }, "热门推荐"),
|
||||
createVNode("div", { class: "related-list" }, [
|
||||
(openBlock(true), createBlock(Fragment, null, renderList(unref(hotArticles), (item) => {
|
||||
return openBlock(), createBlock("div", {
|
||||
key: item.id,
|
||||
class: "related-item hot-item",
|
||||
onClick: ($event) => goArticle(item)
|
||||
}, [
|
||||
createVNode("span", { class: "hot-rank" }, toDisplayString(item.rank), 1),
|
||||
createVNode("span", { class: "related-title" }, toDisplayString(item.title), 1)
|
||||
], 8, ["onClick"]);
|
||||
}), 128))
|
||||
])
|
||||
])
|
||||
])
|
||||
]),
|
||||
_: 1
|
||||
})
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent));
|
||||
_push(`</div></div>`);
|
||||
};
|
||||
}
|
||||
});
|
||||
const _sfc_setup = _sfc_main.setup;
|
||||
_sfc_main.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/article/[id].vue");
|
||||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||||
};
|
||||
const _id_ = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-5856018c"]]);
|
||||
|
||||
export { _id_ as default };
|
||||
//# sourceMappingURL=_id_-BuB0HRsp.mjs.map
|
||||
1
.output/server/chunks/build/_id_-BuB0HRsp.mjs.map
Normal file
1
.output/server/chunks/build/_id_-BuB0HRsp.mjs.map
Normal file
File diff suppressed because one or more lines are too long
8
.output/server/chunks/build/_id_-styles.CRJIT4nx.mjs
Normal file
8
.output/server/chunks/build/_id_-styles.CRJIT4nx.mjs
Normal file
File diff suppressed because one or more lines are too long
1
.output/server/chunks/build/_id_-styles.CRJIT4nx.mjs.map
Normal file
1
.output/server/chunks/build/_id_-styles.CRJIT4nx.mjs.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"_id_-styles.CRJIT4nx.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/_id_-styles.CRJIT4nx.mjs"],"names":["style_0"],"mappings":"","x_google_ignoreList":[0]}
|
||||
8
.output/server/chunks/build/_id_-styles.Dm3y3q5x.mjs
Normal file
8
.output/server/chunks/build/_id_-styles.Dm3y3q5x.mjs
Normal file
@@ -0,0 +1,8 @@
|
||||
const _id__vue_vue_type_style_index_0_scoped_b2657184_lang = ".expert-detail-page[data-v-b2657184]{background:#f5f7fa;min-height:60vh}.expert-card[data-v-b2657184]{background:#fff;border-radius:16px;box-shadow:0 2px 12px #0000000f;padding:32px 24px;position:sticky;text-align:center;top:80px}.expert-avatar-wrapper[data-v-b2657184]{height:100px;margin:0 auto 16px;width:100px}.expert-avatar[data-v-b2657184]{border:4px solid #e8f0fe;border-radius:50%;height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.expert-avatar-placeholder[data-v-b2657184]{align-items:center;background:linear-gradient(135deg,#1e3a5f,#3498db);border-radius:50%;color:#fff;display:flex;font-size:40px;font-weight:700;height:100%;justify-content:center;width:100%}.expert-name[data-v-b2657184]{color:#1f2937;font-size:24px;font-weight:700;margin:0 0 8px}.expert-title-tag[data-v-b2657184]{background:#eff6ff;border-radius:20px;color:#1e40af;display:inline-block;font-size:13px;margin-bottom:8px;padding:4px 16px}.expert-org[data-v-b2657184]{color:#6b7280;font-size:14px;margin-bottom:20px}.expert-info-list[data-v-b2657184]{border-top:1px solid #f0f0f0;padding-top:16px;text-align:left}.info-item[data-v-b2657184]{border-bottom:1px dashed #f0f0f0;display:flex;gap:8px;padding:8px 0}.info-item[data-v-b2657184]:last-child{border-bottom:none}.info-label[data-v-b2657184]{color:#9ca3af;flex-shrink:0;font-size:12px;width:65px}.info-value[data-v-b2657184]{color:#374151;flex:1;font-size:13px}.expert-content-card[data-v-b2657184]{background:#fff;border-radius:16px;box-shadow:0 2px 12px #0000000f;padding:24px}.tab-content[data-v-b2657184]{padding:8px 0}.section-title[data-v-b2657184]{border-left:3px solid #1e3a5f;color:#1e3a5f;font-size:16px;font-weight:700;margin:0 0 12px;padding-left:10px}.intro-text[data-v-b2657184]{color:#4b5563;font-size:15px;line-height:2;text-indent:2em}.achievement-list[data-v-b2657184]{padding-left:20px}.achievement-list li[data-v-b2657184]{color:#4b5563;font-size:14px;line-height:2;margin:4px 0}.honors-grid[data-v-b2657184]{display:flex;flex-wrap:wrap;gap:12px}.honor-item[data-v-b2657184]{align-items:center;background:#fffbeb;border:1px solid #fef3c7;border-radius:8px;color:#92400e;display:flex;font-size:13px;gap:6px;padding:8px 14px}.article-list[data-v-b2657184]{display:flex;flex-direction:column;gap:16px}.article-item[data-v-b2657184]{background:#f9fafb;border-radius:10px;cursor:pointer;display:flex;gap:16px;padding:16px;transition:all .2s}.article-item[data-v-b2657184]:hover{background:#eff6ff;transform:translate(4px)}.article-thumb[data-v-b2657184]{border-radius:6px;flex-shrink:0;height:68px;overflow:hidden;width:100px}.article-thumb img[data-v-b2657184]{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.article-info[data-v-b2657184]{flex:1}.article-title[data-v-b2657184]{color:#1f2937;font-size:15px;font-weight:600;line-height:1.4;margin:0 0 6px}.article-overview[data-v-b2657184]{color:#6b7280;display:-webkit-box;font-size:13px;-webkit-line-clamp:2;line-height:1.5;margin:0 0 8px;-webkit-box-orient:vertical;overflow:hidden}.article-date[data-v-b2657184]{color:#9ca3af;font-size:12px}.research-item[data-v-b2657184]{border-bottom:1px dashed #f0f0f0;display:flex;gap:16px;padding:16px 0}.research-item[data-v-b2657184]:last-child{border-bottom:none}.research-year[data-v-b2657184]{align-items:center;background:#1e3a5f;border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:14px;font-weight:700;height:52px;justify-content:center;width:52px}.research-content h4[data-v-b2657184]{color:#1f2937;font-size:15px;font-weight:600;margin:0 0 6px}.research-content p[data-v-b2657184]{color:#6b7280;font-size:13px;line-height:1.6;margin:0}.empty-state[data-v-b2657184]{padding:40px 0}.mt-4[data-v-b2657184]{margin-top:16px}.mt-6[data-v-b2657184]{margin-top:24px}";
|
||||
|
||||
const _id_Styles_Dm3y3q5x = [
|
||||
_id__vue_vue_type_style_index_0_scoped_b2657184_lang
|
||||
];
|
||||
|
||||
export { _id_Styles_Dm3y3q5x as default };
|
||||
//# sourceMappingURL=_id_-styles.Dm3y3q5x.mjs.map
|
||||
1
.output/server/chunks/build/_id_-styles.Dm3y3q5x.mjs.map
Normal file
1
.output/server/chunks/build/_id_-styles.Dm3y3q5x.mjs.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"_id_-styles.Dm3y3q5x.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/_id_-styles.Dm3y3q5x.mjs"],"names":["style_0"],"mappings":"","x_google_ignoreList":[0]}
|
||||
44
.output/server/chunks/build/agreement-BZqT3Txx.mjs
Normal file
44
.output/server/chunks/build/agreement-BZqT3Txx.mjs
Normal file
File diff suppressed because one or more lines are too long
1
.output/server/chunks/build/agreement-BZqT3Txx.mjs.map
Normal file
1
.output/server/chunks/build/agreement-BZqT3Txx.mjs.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"agreement-BZqT3Txx.mjs","sources":["../../../../app/pages/agreement.vue"],"names":["_ssrRenderAttrs","_mergeProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACO,MAAA,KAAA,CAAA,CAAA,IAAA,EAAAA,eAAAC,UAAAA,CAAA,EAAA,OAAM,gBAAA,EAAA,EAAgB,MAAA,CAAA,CAAA,CAAA,2tIAAA,CAAA,CAAA;AAAA,IAAA,CAAA;;;;;;;;;;;;;"}
|
||||
@@ -0,0 +1,8 @@
|
||||
const agreement_vue_vue_type_style_index_0_scoped_5b417fe9_lang = ".agreement-page[data-v-5b417fe9]{background:#f7f8fa;min-height:100vh;padding:40px 20px 80px}.agreement-container[data-v-5b417fe9]{background:#fff;border-radius:12px;box-shadow:0 2px 12px #0000000f;margin:0 auto;max-width:800px;padding:48px 56px}.page-title[data-v-5b417fe9]{color:#0d0d0d;font-size:28px;font-weight:700;margin:0 0 12px;text-align:center}.update-time[data-v-5b417fe9]{color:#8c8c8c;font-size:13px;margin-bottom:40px;text-align:center}.agreement-content[data-v-5b417fe9]{color:#333;font-size:15px;line-height:1.8}.agreement-content section[data-v-5b417fe9]{margin-bottom:32px}.agreement-content h2[data-v-5b417fe9]{border-bottom:1px solid #f0f0f0;color:#0d0d0d;font-size:18px;font-weight:600;margin:0 0 16px;padding-bottom:10px}.agreement-content p[data-v-5b417fe9]{margin:0 0 12px}.agreement-content ol[data-v-5b417fe9]{margin:0;padding-left:20px}.agreement-content li[data-v-5b417fe9]{margin-bottom:8px}.agreement-content strong[data-v-5b417fe9]{color:#0d0d0d}.contact-info[data-v-5b417fe9]{border-top:1px solid #f0f0f0;color:#666;margin-top:40px;padding-top:24px;text-align:center}@media(max-width:768px){.agreement-container[data-v-5b417fe9]{padding:32px 20px}.page-title[data-v-5b417fe9]{font-size:24px}.agreement-content[data-v-5b417fe9]{font-size:14px}}";
|
||||
|
||||
const agreementStyles_BISRq36A = [
|
||||
agreement_vue_vue_type_style_index_0_scoped_5b417fe9_lang
|
||||
];
|
||||
|
||||
export { agreementStyles_BISRq36A as default };
|
||||
//# sourceMappingURL=agreement-styles.BISRq36A.mjs.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"agreement-styles.BISRq36A.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/agreement-styles.BISRq36A.mjs"],"names":["style_0"],"mappings":"","x_google_ignoreList":[0]}
|
||||
1746
.output/server/chunks/build/announcements-BflH5AKP.mjs
Normal file
1746
.output/server/chunks/build/announcements-BflH5AKP.mjs
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -0,0 +1,8 @@
|
||||
const announcements_vue_vue_type_style_index_0_scoped_6454b5e2_lang = ".announcements-page[data-v-6454b5e2]{min-height:100%}.page-header[data-v-6454b5e2]{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.page-title[data-v-6454b5e2]{color:#1f2937;font-size:18px;font-weight:700;margin:0}.page-desc[data-v-6454b5e2]{color:#9ca3af;font-size:13px;margin:2px 0 0}.stat-card[data-v-6454b5e2]{align-items:center;border:2px solid transparent;border-radius:12px;display:flex;gap:12px;padding:16px;transition:all .2s}.stat-card[data-v-6454b5e2]:hover{box-shadow:0 4px 12px #00000014;transform:translateY(-2px)}.stat-card.blue[data-v-6454b5e2]{background:#eff6ff;border-color:#dbeafe}.stat-card.green[data-v-6454b5e2]{background:#f0fdf4;border-color:#bbf7d0}.stat-card.orange[data-v-6454b5e2]{background:#fff7ed;border-color:#fed7aa}.stat-icon[data-v-6454b5e2]{flex-shrink:0;font-size:28px}.stat-value[data-v-6454b5e2]{color:#000000d9;font-size:22px;font-weight:700;line-height:1.2}.stat-label[data-v-6454b5e2]{color:#00000073;font-size:12px;margin-top:2px}.panel[data-v-6454b5e2]{background:#fff;border:1px solid #f0f0f0;border-radius:12px;overflow:hidden}.panel-header[data-v-6454b5e2]{align-items:center;border-bottom:1px solid #f5f5f5;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;padding:14px 18px}.panel-title[data-v-6454b5e2]{color:#000000d9;font-size:14px;font-weight:600}.ann-info-cell[data-v-6454b5e2]{align-items:flex-start;display:flex;gap:12px}.ann-thumb[data-v-6454b5e2]{border:1px solid #f0f0f0;border-radius:8px;-o-object-fit:cover;object-fit:cover}.ann-thumb[data-v-6454b5e2],.ann-thumb-empty[data-v-6454b5e2]{flex-shrink:0;height:48px;width:72px}.ann-thumb-empty[data-v-6454b5e2]{align-items:center;background:#f3f4f6;border-radius:8px;display:flex;font-size:20px;justify-content:center}.ann-info-text[data-v-6454b5e2]{flex:1;min-width:0}.ann-title[data-v-6454b5e2]{color:#000000d9;font-size:14px;font-weight:500;line-height:1.6;margin-bottom:4px}.ann-overview[data-v-6454b5e2]{color:#00000073;font-size:12px;max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pin-badge[data-v-6454b5e2]{background:#fff7ed;border:1px solid #fed7aa;border-radius:4px;color:#f97316;font-size:11px;margin-right:6px;padding:1px 6px}.cover-upload-wrap[data-v-6454b5e2]{display:flex;flex-direction:column;gap:10px}.cover-preview-card[data-v-6454b5e2]{background:#fafafa;border:1px dashed #d9d9d9;border-radius:10px;padding:8px;width:240px}.cover-preview-image[data-v-6454b5e2]{border-radius:8px;display:block;height:132px;-o-object-fit:cover;object-fit:cover;width:100%}.cover-preview-actions[data-v-6454b5e2]{display:flex;gap:8px;margin-top:8px}.field-hint[data-v-6454b5e2],.switch-tip[data-v-6454b5e2]{color:#00000073;font-size:12px}.switch-tip[data-v-6454b5e2]{margin-left:8px}.preview-meta[data-v-6454b5e2]{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:4px}.preview-cover-wrap[data-v-6454b5e2]{margin:16px 0 12px}.preview-cover[data-v-6454b5e2]{border:1px solid #f0f0f0;border-radius:12px;max-height:320px;-o-object-fit:cover;object-fit:cover;width:100%}.preview-summary[data-v-6454b5e2]{background:#fafafa;border-radius:10px;color:#000000a6;line-height:1.7;margin-top:12px;padding:12px 14px}.preview-content[data-v-6454b5e2]{color:#000000d9;font-size:15px;line-height:1.8;white-space:pre-wrap;word-break:break-word}.image-preview-modal[data-v-6454b5e2]{border-radius:8px;max-height:70vh;-o-object-fit:contain;object-fit:contain;width:100%}.text-sm[data-v-6454b5e2]{font-size:12px}.text-gray[data-v-6454b5e2]{color:#00000073}.mb-6[data-v-6454b5e2]{margin-bottom:24px}";
|
||||
|
||||
const announcementsStyles_S9eFTivW = [
|
||||
announcements_vue_vue_type_style_index_0_scoped_6454b5e2_lang
|
||||
];
|
||||
|
||||
export { announcementsStyles_S9eFTivW as default };
|
||||
//# sourceMappingURL=announcements-styles.S9eFTivW.mjs.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"announcements-styles.S9eFTivW.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/announcements-styles.S9eFTivW.mjs"],"names":["style_0"],"mappings":"","x_google_ignoreList":[0]}
|
||||
1126
.output/server/chunks/build/apply-B2xHqrDp.mjs
Normal file
1126
.output/server/chunks/build/apply-B2xHqrDp.mjs
Normal file
File diff suppressed because it is too large
Load Diff
1
.output/server/chunks/build/apply-B2xHqrDp.mjs.map
Normal file
1
.output/server/chunks/build/apply-B2xHqrDp.mjs.map
Normal file
File diff suppressed because one or more lines are too long
8
.output/server/chunks/build/apply-styles.DxHb8vLu.mjs
Normal file
8
.output/server/chunks/build/apply-styles.DxHb8vLu.mjs
Normal file
@@ -0,0 +1,8 @@
|
||||
const apply_vue_vue_type_style_index_0_scoped_2075d442_lang = ".expert-apply-page[data-v-2075d442]{margin:0 auto;max-width:800px;padding:40px 20px}.page-header[data-v-2075d442]{margin-bottom:40px;text-align:center}.page-title[data-v-2075d442]{color:#1f2937;font-size:32px;font-weight:700;margin:0 0 12px}.page-desc[data-v-2075d442]{color:#6b7280;font-size:16px;margin:0}.apply-form-wrap[data-v-2075d442]{background:#fff;border-radius:16px;box-shadow:0 4px 16px #00000014;padding:40px}.steps-wrap[data-v-2075d442]{margin-bottom:40px}.section-title[data-v-2075d442]{color:#1f2937;font-size:18px;font-weight:600;margin:0 0 20px}.section-desc[data-v-2075d442]{color:#6b7280;font-size:14px;margin:-10px 0 20px}.upload-hint[data-v-2075d442]{color:#9ca3af;font-size:12px;margin-top:8px}.confirm-section[data-v-2075d442]{padding:40px 0}.step-actions[data-v-2075d442]{border-top:1px solid #f0f0f0;display:flex;gap:16px;justify-content:center;margin-top:32px;padding-top:24px}";
|
||||
|
||||
const applyStyles_DxHb8vLu = [
|
||||
apply_vue_vue_type_style_index_0_scoped_2075d442_lang
|
||||
];
|
||||
|
||||
export { applyStyles_DxHb8vLu as default };
|
||||
//# sourceMappingURL=apply-styles.DxHb8vLu.mjs.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"apply-styles.DxHb8vLu.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/apply-styles.DxHb8vLu.mjs"],"names":["style_0"],"mappings":"","x_google_ignoreList":[0]}
|
||||
2244
.output/server/chunks/build/article-categories-Cr84tAzn.mjs
Normal file
2244
.output/server/chunks/build/article-categories-Cr84tAzn.mjs
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -0,0 +1,8 @@
|
||||
const articleCategories_vue_vue_type_style_index_0_scoped_cf29e7bf_lang = ".article-categories-page[data-v-cf29e7bf]{min-height:100%}.page-header[data-v-cf29e7bf]{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.page-title[data-v-cf29e7bf]{color:#1f2937;font-size:18px;font-weight:700;margin:0}.page-desc[data-v-cf29e7bf]{color:#9ca3af;font-size:13px;margin:2px 0 0}.stat-card[data-v-cf29e7bf]{align-items:center;border:2px solid transparent;border-radius:12px;display:flex;gap:12px;padding:16px;transition:all .2s}.stat-card[data-v-cf29e7bf]:hover{box-shadow:0 4px 12px #00000014;transform:translateY(-2px)}.stat-card.blue[data-v-cf29e7bf]{background:#eff6ff;border-color:#dbeafe}.stat-card.green[data-v-cf29e7bf]{background:#f0fdf4;border-color:#bbf7d0}.stat-card.orange[data-v-cf29e7bf]{background:#fff7ed;border-color:#fed7aa}.stat-icon[data-v-cf29e7bf]{flex-shrink:0;font-size:28px}.stat-value[data-v-cf29e7bf]{color:#000000d9;font-size:22px;font-weight:700;line-height:1.2}.stat-label[data-v-cf29e7bf]{color:#00000073;font-size:12px;margin-top:2px}.panel[data-v-cf29e7bf]{background:#fff;border:1px solid #f0f0f0;border-radius:12px;overflow:hidden}.panel-header[data-v-cf29e7bf]{align-items:center;border-bottom:1px solid #f5f5f5;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;padding:14px 18px}.panel-title[data-v-cf29e7bf]{color:#000000d9;font-size:14px;font-weight:600}.category-info-cell[data-v-cf29e7bf]{display:flex;flex-direction:column;gap:6px}.category-title-row[data-v-cf29e7bf]{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.category-title[data-v-cf29e7bf]{color:#000000d9;font-size:14px;font-weight:600}.category-meta[data-v-cf29e7bf]{color:#00000073;font-size:12px}.meta-item[data-v-cf29e7bf]{margin-left:8px}.flag-list[data-v-cf29e7bf]{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.switch-tip[data-v-cf29e7bf]{color:#00000073;display:block;margin-top:6px}.switch-tip[data-v-cf29e7bf],.text-sm[data-v-cf29e7bf]{font-size:12px}.text-gray[data-v-cf29e7bf]{color:#00000073}.mb-6[data-v-cf29e7bf]{margin-bottom:24px}.w-full[data-v-cf29e7bf]{width:100%}";
|
||||
|
||||
const articleCategoriesStyles_CEIKUDxB = [
|
||||
articleCategories_vue_vue_type_style_index_0_scoped_cf29e7bf_lang
|
||||
];
|
||||
|
||||
export { articleCategoriesStyles_CEIKUDxB as default };
|
||||
//# sourceMappingURL=article-categories-styles.CEIKUDxB.mjs.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"article-categories-styles.CEIKUDxB.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/article-categories-styles.CEIKUDxB.mjs"],"names":["style_0"],"mappings":"","x_google_ignoreList":[0]}
|
||||
659
.output/server/chunks/build/articles-CkRo2zT3.mjs
Normal file
659
.output/server/chunks/build/articles-CkRo2zT3.mjs
Normal file
@@ -0,0 +1,659 @@
|
||||
import { defineComponent, computed, ref, resolveComponent, mergeProps, withCtx, unref, isRef, createTextVNode, createVNode, createBlock, createCommentVNode, toDisplayString, openBlock, toValue, getCurrentInstance, onServerPrefetch, shallowRef, toRef, nextTick, useSSRContext } from 'vue';
|
||||
import { ssrRenderAttrs, ssrRenderComponent, ssrInterpolate } from 'vue/server-renderer';
|
||||
import { p as pageAppArticle } from './index-DLTWNMRy.mjs';
|
||||
import { s as setToken } from './token-util-C_wOpB5F.mjs';
|
||||
import { g as useRuntimeConfig, h as useNuxtApp, i as asyncDataDefaults, j as createError } from './server.mjs';
|
||||
import { debounce } from 'perfect-debounce';
|
||||
import './request-BIxQh2im.mjs';
|
||||
import '../nitro/nitro.mjs';
|
||||
import 'node:http';
|
||||
import 'node:https';
|
||||
import 'node:events';
|
||||
import 'node:buffer';
|
||||
import 'node:fs';
|
||||
import 'node:path';
|
||||
import 'node:crypto';
|
||||
import 'node:url';
|
||||
import 'better-sqlite3';
|
||||
import 'vue-router';
|
||||
import 'ant-design-vue';
|
||||
import '@babel/runtime/helpers/esm/extends';
|
||||
import 'stylis';
|
||||
import 'dayjs';
|
||||
import '../routes/renderer.mjs';
|
||||
import 'vue-bundle-renderer/runtime';
|
||||
import 'unhead/server';
|
||||
import 'devalue';
|
||||
import 'unhead/plugins';
|
||||
import 'unhead/utils';
|
||||
|
||||
function useAsyncData(...args) {
|
||||
const autoKey = typeof args[args.length - 1] === "string" ? args.pop() : void 0;
|
||||
if (_isAutoKeyNeeded(args[0], args[1])) {
|
||||
args.unshift(autoKey);
|
||||
}
|
||||
let [_key, _handler, options = {}] = args;
|
||||
const key = computed(() => toValue(_key));
|
||||
if (typeof key.value !== "string") {
|
||||
throw new TypeError("[nuxt] [useAsyncData] key must be a string.");
|
||||
}
|
||||
if (typeof _handler !== "function") {
|
||||
throw new TypeError("[nuxt] [useAsyncData] handler must be a function.");
|
||||
}
|
||||
const nuxtApp = useNuxtApp();
|
||||
options.server ??= true;
|
||||
options.default ??= getDefault;
|
||||
options.getCachedData ??= getDefaultCachedData;
|
||||
options.lazy ??= false;
|
||||
options.immediate ??= true;
|
||||
options.deep ??= asyncDataDefaults.deep;
|
||||
options.dedupe ??= "cancel";
|
||||
options._functionName || "useAsyncData";
|
||||
nuxtApp._asyncData[key.value];
|
||||
function createInitialFetch() {
|
||||
const initialFetchOptions = { cause: "initial", dedupe: options.dedupe };
|
||||
if (!nuxtApp._asyncData[key.value]?._init) {
|
||||
initialFetchOptions.cachedData = options.getCachedData(key.value, nuxtApp, { cause: "initial" });
|
||||
nuxtApp._asyncData[key.value] = createAsyncData(nuxtApp, key.value, _handler, options, initialFetchOptions.cachedData);
|
||||
}
|
||||
return () => nuxtApp._asyncData[key.value].execute(initialFetchOptions);
|
||||
}
|
||||
const initialFetch = createInitialFetch();
|
||||
const asyncData = nuxtApp._asyncData[key.value];
|
||||
asyncData._deps++;
|
||||
const fetchOnServer = options.server !== false && nuxtApp.payload.serverRendered;
|
||||
if (fetchOnServer && options.immediate) {
|
||||
const promise = initialFetch();
|
||||
if (getCurrentInstance()) {
|
||||
onServerPrefetch(() => promise);
|
||||
} else {
|
||||
nuxtApp.hook("app:created", async () => {
|
||||
await promise;
|
||||
});
|
||||
}
|
||||
}
|
||||
const asyncReturn = {
|
||||
data: writableComputedRef(() => nuxtApp._asyncData[key.value]?.data),
|
||||
pending: writableComputedRef(() => nuxtApp._asyncData[key.value]?.pending),
|
||||
status: writableComputedRef(() => nuxtApp._asyncData[key.value]?.status),
|
||||
error: writableComputedRef(() => nuxtApp._asyncData[key.value]?.error),
|
||||
refresh: (...args2) => {
|
||||
if (!nuxtApp._asyncData[key.value]?._init) {
|
||||
const initialFetch2 = createInitialFetch();
|
||||
return initialFetch2();
|
||||
}
|
||||
return nuxtApp._asyncData[key.value].execute(...args2);
|
||||
},
|
||||
execute: (...args2) => asyncReturn.refresh(...args2),
|
||||
clear: () => {
|
||||
const entry = nuxtApp._asyncData[key.value];
|
||||
if (entry?._abortController) {
|
||||
try {
|
||||
entry._abortController.abort(new DOMException("AsyncData aborted by user.", "AbortError"));
|
||||
} finally {
|
||||
entry._abortController = void 0;
|
||||
}
|
||||
}
|
||||
clearNuxtDataByKey(nuxtApp, key.value);
|
||||
}
|
||||
};
|
||||
const asyncDataPromise = Promise.resolve(nuxtApp._asyncDataPromises[key.value]).then(() => asyncReturn);
|
||||
Object.assign(asyncDataPromise, asyncReturn);
|
||||
return asyncDataPromise;
|
||||
}
|
||||
function writableComputedRef(getter) {
|
||||
return computed({
|
||||
get() {
|
||||
return getter()?.value;
|
||||
},
|
||||
set(value) {
|
||||
const ref2 = getter();
|
||||
if (ref2) {
|
||||
ref2.value = value;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
function _isAutoKeyNeeded(keyOrFetcher, fetcher) {
|
||||
if (typeof keyOrFetcher === "string") {
|
||||
return false;
|
||||
}
|
||||
if (typeof keyOrFetcher === "object" && keyOrFetcher !== null) {
|
||||
return false;
|
||||
}
|
||||
if (typeof keyOrFetcher === "function" && typeof fetcher === "function") {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
function clearNuxtDataByKey(nuxtApp, key) {
|
||||
if (key in nuxtApp.payload.data) {
|
||||
nuxtApp.payload.data[key] = void 0;
|
||||
}
|
||||
if (key in nuxtApp.payload._errors) {
|
||||
nuxtApp.payload._errors[key] = void 0;
|
||||
}
|
||||
if (nuxtApp._asyncData[key]) {
|
||||
nuxtApp._asyncData[key].data.value = unref(nuxtApp._asyncData[key]._default());
|
||||
nuxtApp._asyncData[key].error.value = void 0;
|
||||
nuxtApp._asyncData[key].status.value = "idle";
|
||||
}
|
||||
if (key in nuxtApp._asyncDataPromises) {
|
||||
nuxtApp._asyncDataPromises[key] = void 0;
|
||||
}
|
||||
}
|
||||
function pick(obj, keys) {
|
||||
const newObj = {};
|
||||
for (const key of keys) {
|
||||
newObj[key] = obj[key];
|
||||
}
|
||||
return newObj;
|
||||
}
|
||||
function createAsyncData(nuxtApp, key, _handler, options, initialCachedData) {
|
||||
nuxtApp.payload._errors[key] ??= void 0;
|
||||
const hasCustomGetCachedData = options.getCachedData !== getDefaultCachedData;
|
||||
const handler = _handler ;
|
||||
const _ref = options.deep ? ref : shallowRef;
|
||||
const hasCachedData = initialCachedData !== void 0;
|
||||
const unsubRefreshAsyncData = nuxtApp.hook("app:data:refresh", async (keys) => {
|
||||
if (!keys || keys.includes(key)) {
|
||||
await asyncData.execute({ cause: "refresh:hook" });
|
||||
}
|
||||
});
|
||||
const asyncData = {
|
||||
data: _ref(hasCachedData ? initialCachedData : options.default()),
|
||||
pending: computed(() => asyncData.status.value === "pending"),
|
||||
error: toRef(nuxtApp.payload._errors, key),
|
||||
status: shallowRef("idle"),
|
||||
execute: (...args) => {
|
||||
const [_opts, newValue = void 0] = args;
|
||||
const opts = _opts && newValue === void 0 && typeof _opts === "object" ? _opts : {};
|
||||
if (nuxtApp._asyncDataPromises[key]) {
|
||||
if ((opts.dedupe ?? options.dedupe) === "defer") {
|
||||
return nuxtApp._asyncDataPromises[key];
|
||||
}
|
||||
}
|
||||
{
|
||||
const cachedData = "cachedData" in opts ? opts.cachedData : options.getCachedData(key, nuxtApp, { cause: opts.cause ?? "refresh:manual" });
|
||||
if (cachedData !== void 0) {
|
||||
nuxtApp.payload.data[key] = asyncData.data.value = cachedData;
|
||||
asyncData.error.value = void 0;
|
||||
asyncData.status.value = "success";
|
||||
return Promise.resolve(cachedData);
|
||||
}
|
||||
}
|
||||
if (asyncData._abortController) {
|
||||
asyncData._abortController.abort(new DOMException("AsyncData request cancelled by deduplication", "AbortError"));
|
||||
}
|
||||
asyncData._abortController = new AbortController();
|
||||
asyncData.status.value = "pending";
|
||||
const cleanupController = new AbortController();
|
||||
const promise = new Promise(
|
||||
(resolve, reject) => {
|
||||
try {
|
||||
const timeout = opts.timeout ?? options.timeout;
|
||||
const mergedSignal = mergeAbortSignals([asyncData._abortController?.signal, opts?.signal], cleanupController.signal, timeout);
|
||||
if (mergedSignal.aborted) {
|
||||
const reason = mergedSignal.reason;
|
||||
reject(reason instanceof Error ? reason : new DOMException(String(reason ?? "Aborted"), "AbortError"));
|
||||
return;
|
||||
}
|
||||
mergedSignal.addEventListener("abort", () => {
|
||||
const reason = mergedSignal.reason;
|
||||
reject(reason instanceof Error ? reason : new DOMException(String(reason ?? "Aborted"), "AbortError"));
|
||||
}, { once: true, signal: cleanupController.signal });
|
||||
return Promise.resolve(handler(nuxtApp, { signal: mergedSignal })).then(resolve, reject);
|
||||
} catch (err) {
|
||||
reject(err);
|
||||
}
|
||||
}
|
||||
).then(async (_result) => {
|
||||
let result = _result;
|
||||
if (options.transform) {
|
||||
result = await options.transform(_result);
|
||||
}
|
||||
if (options.pick) {
|
||||
result = pick(result, options.pick);
|
||||
}
|
||||
nuxtApp.payload.data[key] = result;
|
||||
asyncData.data.value = result;
|
||||
asyncData.error.value = void 0;
|
||||
asyncData.status.value = "success";
|
||||
}).catch((error) => {
|
||||
if (nuxtApp._asyncDataPromises[key] && nuxtApp._asyncDataPromises[key] !== promise) {
|
||||
return nuxtApp._asyncDataPromises[key];
|
||||
}
|
||||
if (asyncData._abortController?.signal.aborted) {
|
||||
return nuxtApp._asyncDataPromises[key];
|
||||
}
|
||||
if (typeof DOMException !== "undefined" && error instanceof DOMException && error.name === "AbortError") {
|
||||
asyncData.status.value = "idle";
|
||||
return nuxtApp._asyncDataPromises[key];
|
||||
}
|
||||
asyncData.error.value = createError(error);
|
||||
asyncData.data.value = unref(options.default());
|
||||
asyncData.status.value = "error";
|
||||
}).finally(() => {
|
||||
cleanupController.abort();
|
||||
delete nuxtApp._asyncDataPromises[key];
|
||||
});
|
||||
nuxtApp._asyncDataPromises[key] = promise;
|
||||
return nuxtApp._asyncDataPromises[key];
|
||||
},
|
||||
_execute: debounce((...args) => asyncData.execute(...args), 0, { leading: true }),
|
||||
_default: options.default,
|
||||
_deps: 0,
|
||||
_init: true,
|
||||
_hash: void 0,
|
||||
_off: () => {
|
||||
unsubRefreshAsyncData();
|
||||
if (nuxtApp._asyncData[key]?._init) {
|
||||
nuxtApp._asyncData[key]._init = false;
|
||||
}
|
||||
if (!hasCustomGetCachedData) {
|
||||
nextTick(() => {
|
||||
if (!nuxtApp._asyncData[key]?._init) {
|
||||
clearNuxtDataByKey(nuxtApp, key);
|
||||
asyncData.execute = () => Promise.resolve();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
return asyncData;
|
||||
}
|
||||
const getDefault = () => void 0;
|
||||
const getDefaultCachedData = (key, nuxtApp, ctx) => {
|
||||
if (nuxtApp.isHydrating) {
|
||||
return nuxtApp.payload.data[key];
|
||||
}
|
||||
if (ctx.cause !== "refresh:manual" && ctx.cause !== "refresh:hook") {
|
||||
return nuxtApp.static.data[key];
|
||||
}
|
||||
};
|
||||
function mergeAbortSignals(signals, cleanupSignal, timeout) {
|
||||
const list = signals.filter((s) => !!s);
|
||||
if (typeof timeout === "number" && timeout >= 0) {
|
||||
const timeoutSignal = AbortSignal.timeout?.(timeout);
|
||||
if (timeoutSignal) {
|
||||
list.push(timeoutSignal);
|
||||
}
|
||||
}
|
||||
if (AbortSignal.any) {
|
||||
return AbortSignal.any(list);
|
||||
}
|
||||
const controller = new AbortController();
|
||||
for (const sig of list) {
|
||||
if (sig.aborted) {
|
||||
const reason = sig.reason ?? new DOMException("Aborted", "AbortError");
|
||||
try {
|
||||
controller.abort(reason);
|
||||
} catch {
|
||||
controller.abort();
|
||||
}
|
||||
return controller.signal;
|
||||
}
|
||||
}
|
||||
const onAbort = () => {
|
||||
const abortedSignal = list.find((s) => s.aborted);
|
||||
const reason = abortedSignal?.reason ?? new DOMException("Aborted", "AbortError");
|
||||
try {
|
||||
controller.abort(reason);
|
||||
} catch {
|
||||
controller.abort();
|
||||
}
|
||||
};
|
||||
for (const sig of list) {
|
||||
sig.addEventListener?.("abort", onAbort, { once: true, signal: cleanupSignal });
|
||||
}
|
||||
return controller.signal;
|
||||
}
|
||||
const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
__name: "articles",
|
||||
__ssrInlineRender: true,
|
||||
setup(__props) {
|
||||
const config = useRuntimeConfig();
|
||||
const tenantId = computed(() => String(config.public.tenantId));
|
||||
const page = ref(1);
|
||||
const limit = ref(10);
|
||||
const keywords = ref("");
|
||||
const token = ref("");
|
||||
const { data, pending, error, refresh } = useAsyncData(
|
||||
"app-article-page",
|
||||
() => pageAppArticle({
|
||||
page: page.value,
|
||||
limit: limit.value,
|
||||
keywords: keywords.value || void 0
|
||||
}),
|
||||
{ server: false }
|
||||
);
|
||||
const list = computed(() => data.value?.list ?? []);
|
||||
const total = computed(() => data.value?.count ?? 0);
|
||||
function applyToken() {
|
||||
setToken(token.value);
|
||||
refresh();
|
||||
}
|
||||
function clearToken() {
|
||||
token.value = "";
|
||||
refresh();
|
||||
}
|
||||
function doSearch() {
|
||||
page.value = 1;
|
||||
refresh();
|
||||
}
|
||||
function onPageChange(nextPage) {
|
||||
page.value = nextPage;
|
||||
refresh();
|
||||
}
|
||||
function onPageSizeChange(_current, nextSize) {
|
||||
limit.value = nextSize;
|
||||
page.value = 1;
|
||||
refresh();
|
||||
}
|
||||
return (_ctx, _push, _parent, _attrs) => {
|
||||
const _component_a_card = resolveComponent("a-card");
|
||||
const _component_a_input_password = resolveComponent("a-input-password");
|
||||
const _component_a_button = resolveComponent("a-button");
|
||||
const _component_a_input = resolveComponent("a-input");
|
||||
const _component_a_alert = resolveComponent("a-alert");
|
||||
const _component_a_table = resolveComponent("a-table");
|
||||
const _component_a_table_column = resolveComponent("a-table-column");
|
||||
const _component_a_pagination = resolveComponent("a-pagination");
|
||||
_push(`<main${ssrRenderAttrs(mergeProps({ class: "min-h-screen bg-gray-50 p-8" }, _attrs))}><div class="mx-auto max-w-5xl space-y-6">`);
|
||||
_push(ssrRenderComponent(_component_a_card, {
|
||||
title: "文章列表 (pageAppArticle)",
|
||||
class: "shadow-sm"
|
||||
}, {
|
||||
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
||||
if (_push2) {
|
||||
_push2(`<div class="flex flex-wrap items-center gap-3"${_scopeId}>`);
|
||||
_push2(ssrRenderComponent(_component_a_input_password, {
|
||||
value: unref(token),
|
||||
"onUpdate:value": ($event) => isRef(token) ? token.value = $event : null,
|
||||
placeholder: "Authorization (AccessToken)",
|
||||
class: "w-96"
|
||||
}, null, _parent2, _scopeId));
|
||||
_push2(ssrRenderComponent(_component_a_button, {
|
||||
disabled: unref(pending),
|
||||
onClick: applyToken
|
||||
}, {
|
||||
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
|
||||
if (_push3) {
|
||||
_push3(`设置Token`);
|
||||
} else {
|
||||
return [
|
||||
createTextVNode("设置Token")
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent2, _scopeId));
|
||||
_push2(ssrRenderComponent(_component_a_button, {
|
||||
disabled: unref(pending),
|
||||
danger: "",
|
||||
onClick: clearToken
|
||||
}, {
|
||||
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
|
||||
if (_push3) {
|
||||
_push3(`清除Token`);
|
||||
} else {
|
||||
return [
|
||||
createTextVNode("清除Token")
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent2, _scopeId));
|
||||
_push2(ssrRenderComponent(_component_a_input, {
|
||||
value: unref(keywords),
|
||||
"onUpdate:value": ($event) => isRef(keywords) ? keywords.value = $event : null,
|
||||
placeholder: "关键词 keywords",
|
||||
class: "w-72",
|
||||
onPressEnter: doSearch
|
||||
}, null, _parent2, _scopeId));
|
||||
_push2(ssrRenderComponent(_component_a_button, {
|
||||
type: "primary",
|
||||
loading: unref(pending),
|
||||
onClick: doSearch
|
||||
}, {
|
||||
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
|
||||
if (_push3) {
|
||||
_push3(`查询`);
|
||||
} else {
|
||||
return [
|
||||
createTextVNode("查询")
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent2, _scopeId));
|
||||
_push2(ssrRenderComponent(_component_a_button, {
|
||||
disabled: unref(pending),
|
||||
onClick: unref(refresh)
|
||||
}, {
|
||||
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
|
||||
if (_push3) {
|
||||
_push3(`刷新`);
|
||||
} else {
|
||||
return [
|
||||
createTextVNode("刷新")
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent2, _scopeId));
|
||||
_push2(`<div class="text-sm text-gray-500"${_scopeId}> TenantId: ${ssrInterpolate(unref(tenantId))}</div></div>`);
|
||||
if (unref(error)) {
|
||||
_push2(ssrRenderComponent(_component_a_alert, {
|
||||
class: "mt-4",
|
||||
"show-icon": "",
|
||||
type: "error",
|
||||
message: String(unref(error))
|
||||
}, null, _parent2, _scopeId));
|
||||
} else {
|
||||
_push2(`<!---->`);
|
||||
}
|
||||
_push2(ssrRenderComponent(_component_a_table, {
|
||||
class: "mt-4",
|
||||
"data-source": unref(list),
|
||||
loading: unref(pending),
|
||||
pagination: false,
|
||||
"row-key": "articleId",
|
||||
size: "middle"
|
||||
}, {
|
||||
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
|
||||
if (_push3) {
|
||||
_push3(ssrRenderComponent(_component_a_table_column, {
|
||||
title: "ID",
|
||||
"data-index": "articleId",
|
||||
width: "90"
|
||||
}, null, _parent3, _scopeId2));
|
||||
_push3(ssrRenderComponent(_component_a_table_column, {
|
||||
title: "标题",
|
||||
"data-index": "title"
|
||||
}, null, _parent3, _scopeId2));
|
||||
_push3(ssrRenderComponent(_component_a_table_column, {
|
||||
title: "编号",
|
||||
"data-index": "code",
|
||||
width: "220"
|
||||
}, null, _parent3, _scopeId2));
|
||||
_push3(ssrRenderComponent(_component_a_table_column, {
|
||||
title: "栏目",
|
||||
"data-index": "categoryName",
|
||||
width: "160"
|
||||
}, null, _parent3, _scopeId2));
|
||||
_push3(ssrRenderComponent(_component_a_table_column, {
|
||||
title: "创建时间",
|
||||
"data-index": "createTime",
|
||||
width: "180"
|
||||
}, null, _parent3, _scopeId2));
|
||||
} else {
|
||||
return [
|
||||
createVNode(_component_a_table_column, {
|
||||
title: "ID",
|
||||
"data-index": "articleId",
|
||||
width: "90"
|
||||
}),
|
||||
createVNode(_component_a_table_column, {
|
||||
title: "标题",
|
||||
"data-index": "title"
|
||||
}),
|
||||
createVNode(_component_a_table_column, {
|
||||
title: "编号",
|
||||
"data-index": "code",
|
||||
width: "220"
|
||||
}),
|
||||
createVNode(_component_a_table_column, {
|
||||
title: "栏目",
|
||||
"data-index": "categoryName",
|
||||
width: "160"
|
||||
}),
|
||||
createVNode(_component_a_table_column, {
|
||||
title: "创建时间",
|
||||
"data-index": "createTime",
|
||||
width: "180"
|
||||
})
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent2, _scopeId));
|
||||
_push2(`<div class="mt-4 flex items-center justify-end"${_scopeId}>`);
|
||||
_push2(ssrRenderComponent(_component_a_pagination, {
|
||||
current: unref(page),
|
||||
"page-size": unref(limit),
|
||||
total: unref(total),
|
||||
"show-size-changer": "",
|
||||
"page-size-options": ["10", "20", "50", "100"],
|
||||
onChange: onPageChange,
|
||||
onShowSizeChange: onPageSizeChange
|
||||
}, null, _parent2, _scopeId));
|
||||
_push2(`</div>`);
|
||||
} else {
|
||||
return [
|
||||
createVNode("div", { class: "flex flex-wrap items-center gap-3" }, [
|
||||
createVNode(_component_a_input_password, {
|
||||
value: unref(token),
|
||||
"onUpdate:value": ($event) => isRef(token) ? token.value = $event : null,
|
||||
placeholder: "Authorization (AccessToken)",
|
||||
class: "w-96"
|
||||
}, null, 8, ["value", "onUpdate:value"]),
|
||||
createVNode(_component_a_button, {
|
||||
disabled: unref(pending),
|
||||
onClick: applyToken
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode("设置Token")
|
||||
]),
|
||||
_: 1
|
||||
}, 8, ["disabled"]),
|
||||
createVNode(_component_a_button, {
|
||||
disabled: unref(pending),
|
||||
danger: "",
|
||||
onClick: clearToken
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode("清除Token")
|
||||
]),
|
||||
_: 1
|
||||
}, 8, ["disabled"]),
|
||||
createVNode(_component_a_input, {
|
||||
value: unref(keywords),
|
||||
"onUpdate:value": ($event) => isRef(keywords) ? keywords.value = $event : null,
|
||||
placeholder: "关键词 keywords",
|
||||
class: "w-72",
|
||||
onPressEnter: doSearch
|
||||
}, null, 8, ["value", "onUpdate:value"]),
|
||||
createVNode(_component_a_button, {
|
||||
type: "primary",
|
||||
loading: unref(pending),
|
||||
onClick: doSearch
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode("查询")
|
||||
]),
|
||||
_: 1
|
||||
}, 8, ["loading"]),
|
||||
createVNode(_component_a_button, {
|
||||
disabled: unref(pending),
|
||||
onClick: unref(refresh)
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode("刷新")
|
||||
]),
|
||||
_: 1
|
||||
}, 8, ["disabled", "onClick"]),
|
||||
createVNode("div", { class: "text-sm text-gray-500" }, " TenantId: " + toDisplayString(unref(tenantId)), 1)
|
||||
]),
|
||||
unref(error) ? (openBlock(), createBlock(_component_a_alert, {
|
||||
key: 0,
|
||||
class: "mt-4",
|
||||
"show-icon": "",
|
||||
type: "error",
|
||||
message: String(unref(error))
|
||||
}, null, 8, ["message"])) : createCommentVNode("", true),
|
||||
createVNode(_component_a_table, {
|
||||
class: "mt-4",
|
||||
"data-source": unref(list),
|
||||
loading: unref(pending),
|
||||
pagination: false,
|
||||
"row-key": "articleId",
|
||||
size: "middle"
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createVNode(_component_a_table_column, {
|
||||
title: "ID",
|
||||
"data-index": "articleId",
|
||||
width: "90"
|
||||
}),
|
||||
createVNode(_component_a_table_column, {
|
||||
title: "标题",
|
||||
"data-index": "title"
|
||||
}),
|
||||
createVNode(_component_a_table_column, {
|
||||
title: "编号",
|
||||
"data-index": "code",
|
||||
width: "220"
|
||||
}),
|
||||
createVNode(_component_a_table_column, {
|
||||
title: "栏目",
|
||||
"data-index": "categoryName",
|
||||
width: "160"
|
||||
}),
|
||||
createVNode(_component_a_table_column, {
|
||||
title: "创建时间",
|
||||
"data-index": "createTime",
|
||||
width: "180"
|
||||
})
|
||||
]),
|
||||
_: 1
|
||||
}, 8, ["data-source", "loading"]),
|
||||
createVNode("div", { class: "mt-4 flex items-center justify-end" }, [
|
||||
createVNode(_component_a_pagination, {
|
||||
current: unref(page),
|
||||
"page-size": unref(limit),
|
||||
total: unref(total),
|
||||
"show-size-changer": "",
|
||||
"page-size-options": ["10", "20", "50", "100"],
|
||||
onChange: onPageChange,
|
||||
onShowSizeChange: onPageSizeChange
|
||||
}, null, 8, ["current", "page-size", "total"])
|
||||
])
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent));
|
||||
_push(`</div></main>`);
|
||||
};
|
||||
}
|
||||
});
|
||||
const _sfc_setup = _sfc_main.setup;
|
||||
_sfc_main.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/articles.vue");
|
||||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||||
};
|
||||
|
||||
export { _sfc_main as default };
|
||||
//# sourceMappingURL=articles-CkRo2zT3.mjs.map
|
||||
1
.output/server/chunks/build/articles-CkRo2zT3.mjs.map
Normal file
1
.output/server/chunks/build/articles-CkRo2zT3.mjs.map
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"articles-CkRo2zT3.mjs","sources":["../../../../node_modules/.pnpm/nuxt@4.2.2_@parcel+watcher@2.5.1_@types+node@25.0.3_@vue+compiler-sfc@3.5.26_better-sql_ac6a4d57fe59bc83c2ad1951937f70f6/node_modules/nuxt/dist/app/composables/asyncData.js","../../../../app/pages/articles.vue"],"names":["pageCmsArticle","_ssrRenderAttrs","_mergeProps","_push","_parent","_unref","_","_scopeId","_createVNode","_createBlock"],"mappings":"","x_google_ignoreList":[0]}
|
||||
3588
.output/server/chunks/build/articles-DR9-Jw1_.mjs
Normal file
3588
.output/server/chunks/build/articles-DR9-Jw1_.mjs
Normal file
File diff suppressed because it is too large
Load Diff
1
.output/server/chunks/build/articles-DR9-Jw1_.mjs.map
Normal file
1
.output/server/chunks/build/articles-DR9-Jw1_.mjs.map
Normal file
File diff suppressed because one or more lines are too long
8
.output/server/chunks/build/articles-styles.CWz2MzuZ.mjs
Normal file
8
.output/server/chunks/build/articles-styles.CWz2MzuZ.mjs
Normal file
@@ -0,0 +1,8 @@
|
||||
const articles_vue_vue_type_style_index_0_scoped_fea264b4_lang = ".articles-page[data-v-fea264b4]{min-height:100%}.page-header[data-v-fea264b4]{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.page-title[data-v-fea264b4]{color:#1f2937;font-size:18px;font-weight:700;margin:0}.page-desc[data-v-fea264b4]{color:#9ca3af;font-size:13px;margin:2px 0 0}.stat-card[data-v-fea264b4]{align-items:center;border:2px solid transparent;border-radius:12px;cursor:pointer;display:flex;gap:12px;padding:16px;transition:all .2s}.stat-card[data-v-fea264b4]:hover{box-shadow:0 4px 12px #00000014;transform:translateY(-2px)}.stat-card.active[data-v-fea264b4]{box-shadow:0 4px 12px #0000001f}.stat-card.blue[data-v-fea264b4]{background:#eff6ff;border-color:#dbeafe}.stat-card.green[data-v-fea264b4]{background:#f0fdf4;border-color:#bbf7d0}.stat-card.orange[data-v-fea264b4]{background:#fff7ed;border-color:#fed7aa}.stat-card.red[data-v-fea264b4]{background:#fff1f2;border-color:#fecdd3}.stat-card.active.blue[data-v-fea264b4]{border-color:#3b82f6}.stat-card.active.green[data-v-fea264b4]{border-color:#22c55e}.stat-card.active.orange[data-v-fea264b4]{border-color:#f97316}.stat-card.active.red[data-v-fea264b4]{border-color:#ef4444}.stat-icon[data-v-fea264b4]{flex-shrink:0;font-size:28px}.stat-value[data-v-fea264b4]{color:#000000d9;font-size:22px;font-weight:700;line-height:1.2}.stat-label[data-v-fea264b4]{color:#00000073;font-size:12px;margin-top:2px}.panel[data-v-fea264b4]{background:#fff;border:1px solid #f0f0f0;border-radius:12px;overflow:hidden}.panel-header[data-v-fea264b4]{align-items:center;border-bottom:1px solid #f5f5f5;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;padding:14px 18px}.panel-title[data-v-fea264b4]{color:#000000d9;font-size:14px;font-weight:600}.article-info-cell[data-v-fea264b4]{align-items:flex-start;display:flex;gap:12px}.article-thumb[data-v-fea264b4]{border:1px solid #f0f0f0;border-radius:8px;-o-object-fit:cover;object-fit:cover}.article-thumb[data-v-fea264b4],.article-thumb-empty[data-v-fea264b4]{flex-shrink:0;height:48px;width:72px}.article-thumb-empty[data-v-fea264b4]{align-items:center;background:#f3f4f6;border-radius:8px;display:flex;font-size:20px;justify-content:center}.article-info-text[data-v-fea264b4]{flex:1;min-width:0}.article-title[data-v-fea264b4]{color:#000000d9;font-size:14px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.article-meta[data-v-fea264b4]{color:#00000073;font-size:12px;margin-top:4px}.meta-item[data-v-fea264b4]{margin-left:8px}.article-overview[data-v-fea264b4]{display:-webkit-box;-webkit-line-clamp:2;line-height:1.5;margin-top:4px;-webkit-box-orient:vertical;overflow:hidden}.article-overview[data-v-fea264b4],.metrics-cell[data-v-fea264b4]{color:#00000073;font-size:12px}.metrics-cell[data-v-fea264b4]{line-height:1.7}.cover-upload-wrap[data-v-fea264b4]{display:flex;flex-direction:column;gap:10px}.cover-preview-card[data-v-fea264b4]{background:#fafafa;border:1px dashed #d9d9d9;border-radius:10px;padding:8px;width:220px}.cover-preview-image[data-v-fea264b4]{border-radius:8px;display:block;height:124px;-o-object-fit:cover;object-fit:cover;width:100%}.cover-preview-actions[data-v-fea264b4]{display:flex;gap:8px;margin-top:8px}.field-hint[data-v-fea264b4],.switch-tip[data-v-fea264b4]{color:#00000073;font-size:12px}.switch-tip[data-v-fea264b4]{margin-left:8px}.content-editor-wrap[data-v-fea264b4]{border:1px solid #d9d9d9;border-radius:8px;overflow:hidden}.editor-tabs[data-v-fea264b4]{background:#fafafa;border-bottom:1px solid #f0f0f0;padding:8px 12px}.preview-only-mode[data-v-fea264b4]{background:#fff;min-height:320px;padding:16px}.empty-preview[data-v-fea264b4]{color:#00000040;font-style:italic;padding:60px 0;text-align:center}.format-hint[data-v-fea264b4]{color:#00000073;font-size:12px;margin-left:8px}.preview-meta[data-v-fea264b4]{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.preview-meta-text[data-v-fea264b4]{color:#00000073;font-size:12px}.preview-cover-wrap[data-v-fea264b4]{margin:16px 0 12px}.preview-cover[data-v-fea264b4]{border:1px solid #f0f0f0;border-radius:12px;max-height:320px;-o-object-fit:cover;object-fit:cover;width:100%}.preview-summary[data-v-fea264b4]{background:#fafafa;border-radius:10px;color:#000000a6;line-height:1.7;margin-top:12px;padding:12px 14px}.preview-content[data-v-fea264b4]{color:#000000d9;font-size:15px;line-height:1.8}.image-preview-modal[data-v-fea264b4]{border-radius:8px;max-height:70vh;-o-object-fit:contain;object-fit:contain;width:100%}.text-sm[data-v-fea264b4]{font-size:12px}.text-gray[data-v-fea264b4]{color:#00000073}.mb-6[data-v-fea264b4]{margin-bottom:24px}";
|
||||
|
||||
const articlesStyles_CWz2MzuZ = [
|
||||
articles_vue_vue_type_style_index_0_scoped_fea264b4_lang
|
||||
];
|
||||
|
||||
export { articlesStyles_CWz2MzuZ as default };
|
||||
//# sourceMappingURL=articles-styles.CWz2MzuZ.mjs.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"articles-styles.CWz2MzuZ.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/articles-styles.CWz2MzuZ.mjs"],"names":["style_0"],"mappings":"","x_google_ignoreList":[0]}
|
||||
350
.output/server/chunks/build/bind-phone-CjPFbjTp.mjs
Normal file
350
.output/server/chunks/build/bind-phone-CjPFbjTp.mjs
Normal file
@@ -0,0 +1,350 @@
|
||||
import { defineComponent, computed, ref, reactive, resolveComponent, mergeProps, unref, withCtx, createTextVNode, createVNode, toDisplayString, useSSRContext } from 'vue';
|
||||
import { ssrRenderAttrs, ssrRenderComponent, ssrInterpolate } from 'vue/server-renderer';
|
||||
import { message } from 'ant-design-vue';
|
||||
import { CloseCircleOutlined } from '@ant-design/icons-vue';
|
||||
import { r as requestClient } from './request-BIxQh2im.mjs';
|
||||
import { a as _export_sfc, e as useRoute, d as useRouter, S as SERVER_API_URL } from './server.mjs';
|
||||
import { s as sendSmsCaptcha, a as setInterval } from './index-CEJdy8RB.mjs';
|
||||
import '../nitro/nitro.mjs';
|
||||
import 'node:http';
|
||||
import 'node:https';
|
||||
import 'node:events';
|
||||
import 'node:buffer';
|
||||
import 'node:fs';
|
||||
import 'node:path';
|
||||
import 'node:crypto';
|
||||
import 'node:url';
|
||||
import 'better-sqlite3';
|
||||
import 'vue-router';
|
||||
import '@babel/runtime/helpers/esm/extends';
|
||||
import 'stylis';
|
||||
import 'dayjs';
|
||||
import '../routes/renderer.mjs';
|
||||
import 'vue-bundle-renderer/runtime';
|
||||
import 'unhead/server';
|
||||
import 'devalue';
|
||||
import 'unhead/plugins';
|
||||
import 'unhead/utils';
|
||||
import './token-util-C_wOpB5F.mjs';
|
||||
|
||||
function isSuccess(code) {
|
||||
return code === 0 || code === 200;
|
||||
}
|
||||
async function bindQrLoginPhone(requestData) {
|
||||
const res = await requestClient.post(
|
||||
SERVER_API_URL + "/qr-login/bind-phone",
|
||||
requestData
|
||||
);
|
||||
if (isSuccess(res.data.code) && res.data.data) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message || "绑定手机号失败"));
|
||||
}
|
||||
const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
__name: "bind-phone",
|
||||
__ssrInlineRender: true,
|
||||
setup(__props) {
|
||||
const route = useRoute();
|
||||
const router = useRouter();
|
||||
const token = computed(() => String(route.query.token || ""));
|
||||
const formRef = ref();
|
||||
const submitting = ref(false);
|
||||
const sendingSms = ref(false);
|
||||
const countdown = ref(0);
|
||||
const pageState = ref("loading");
|
||||
const pageMessage = ref("");
|
||||
let countdownTimer = null;
|
||||
const form = reactive({
|
||||
phone: "",
|
||||
smsCode: ""
|
||||
});
|
||||
const phoneReg = /^1[3-9]\d{9}$/;
|
||||
const rules = reactive({
|
||||
phone: [
|
||||
{ required: true, message: "请输入手机号", type: "string" },
|
||||
{ pattern: phoneReg, message: "手机号格式不正确", trigger: "blur" }
|
||||
],
|
||||
smsCode: [{ required: true, message: "请输入短信验证码", type: "string" }]
|
||||
});
|
||||
function stopCountdown() {
|
||||
if (countdownTimer) {
|
||||
clearInterval(countdownTimer);
|
||||
countdownTimer = null;
|
||||
}
|
||||
countdown.value = 0;
|
||||
}
|
||||
function persistUserInfo(result) {
|
||||
result.accessToken || result.access_token;
|
||||
}
|
||||
async function applyLoginResult(result, successText = "登录成功") {
|
||||
persistUserInfo(result);
|
||||
message.success(successText);
|
||||
await router.replace("/");
|
||||
}
|
||||
async function sendSmsCode() {
|
||||
if (!phoneReg.test(form.phone)) {
|
||||
return message.warning("请先输入正确的手机号");
|
||||
}
|
||||
sendingSms.value = true;
|
||||
try {
|
||||
await sendSmsCaptcha({ phone: form.phone });
|
||||
message.success("验证码已发送");
|
||||
stopCountdown();
|
||||
countdown.value = 60;
|
||||
countdownTimer = setInterval(() => {
|
||||
countdown.value -= 1;
|
||||
if (countdown.value <= 0) {
|
||||
stopCountdown();
|
||||
}
|
||||
}, 1e3);
|
||||
} catch (error) {
|
||||
message.error(error instanceof Error ? error.message : "发送验证码失败");
|
||||
} finally {
|
||||
sendingSms.value = false;
|
||||
}
|
||||
}
|
||||
async function submit() {
|
||||
if (!formRef.value || !token.value) return;
|
||||
submitting.value = true;
|
||||
try {
|
||||
await formRef.value.validate();
|
||||
const result = await bindQrLoginPhone({
|
||||
token: token.value,
|
||||
phone: form.phone,
|
||||
code: form.smsCode
|
||||
});
|
||||
await applyLoginResult(result, "手机号绑定成功,已完成登录");
|
||||
} catch (error) {
|
||||
message.error(error instanceof Error ? error.message : "绑定手机号失败");
|
||||
} finally {
|
||||
submitting.value = false;
|
||||
}
|
||||
}
|
||||
function goToLogin() {
|
||||
router.replace("/login");
|
||||
}
|
||||
return (_ctx, _push, _parent, _attrs) => {
|
||||
const _component_a_spin = resolveComponent("a-spin");
|
||||
const _component_a_button = resolveComponent("a-button");
|
||||
const _component_a_alert = resolveComponent("a-alert");
|
||||
const _component_a_form = resolveComponent("a-form");
|
||||
const _component_a_form_item = resolveComponent("a-form-item");
|
||||
const _component_a_input = resolveComponent("a-input");
|
||||
_push(`<div${ssrRenderAttrs(mergeProps({ class: "bind-phone-page" }, _attrs))} data-v-aeff4e43><div class="bind-card" data-v-aeff4e43><div class="bind-header" data-v-aeff4e43><h1 data-v-aeff4e43>绑定手机号</h1><p data-v-aeff4e43>首次通过公众号登录,请先完成手机号绑定</p></div>`);
|
||||
if (pageState.value === "loading") {
|
||||
_push(`<div class="bind-state" data-v-aeff4e43>`);
|
||||
_push(ssrRenderComponent(_component_a_spin, { size: "large" }, null, _parent));
|
||||
_push(`<span data-v-aeff4e43>正在校验登录状态...</span></div>`);
|
||||
} else if (pageState.value === "error") {
|
||||
_push(`<div class="bind-state error" data-v-aeff4e43>`);
|
||||
_push(ssrRenderComponent(unref(CloseCircleOutlined), { class: "state-icon" }, null, _parent));
|
||||
_push(`<p data-v-aeff4e43>${ssrInterpolate(pageMessage.value)}</p>`);
|
||||
_push(ssrRenderComponent(_component_a_button, {
|
||||
type: "primary",
|
||||
onClick: goToLogin
|
||||
}, {
|
||||
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
||||
if (_push2) {
|
||||
_push2(`返回登录`);
|
||||
} else {
|
||||
return [
|
||||
createTextVNode("返回登录")
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent));
|
||||
_push(`</div>`);
|
||||
} else {
|
||||
_push(`<div class="bind-form-wrap" data-v-aeff4e43>`);
|
||||
_push(ssrRenderComponent(_component_a_alert, {
|
||||
type: "warning",
|
||||
"show-icon": "",
|
||||
message: pageMessage.value || "绑定成功后将自动完成当前扫码登录",
|
||||
class: "bind-alert"
|
||||
}, null, _parent));
|
||||
_push(ssrRenderComponent(_component_a_form, {
|
||||
ref_key: "formRef",
|
||||
ref: formRef,
|
||||
model: form,
|
||||
rules,
|
||||
layout: "vertical"
|
||||
}, {
|
||||
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
||||
if (_push2) {
|
||||
_push2(ssrRenderComponent(_component_a_form_item, {
|
||||
label: "手机号",
|
||||
name: "phone"
|
||||
}, {
|
||||
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
|
||||
if (_push3) {
|
||||
_push3(ssrRenderComponent(_component_a_input, {
|
||||
value: form.phone,
|
||||
"onUpdate:value": ($event) => form.phone = $event,
|
||||
size: "large",
|
||||
placeholder: "请输入手机号"
|
||||
}, null, _parent3, _scopeId2));
|
||||
} else {
|
||||
return [
|
||||
createVNode(_component_a_input, {
|
||||
value: form.phone,
|
||||
"onUpdate:value": ($event) => form.phone = $event,
|
||||
size: "large",
|
||||
placeholder: "请输入手机号"
|
||||
}, null, 8, ["value", "onUpdate:value"])
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent2, _scopeId));
|
||||
_push2(ssrRenderComponent(_component_a_form_item, {
|
||||
label: "短信验证码",
|
||||
name: "smsCode"
|
||||
}, {
|
||||
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
|
||||
if (_push3) {
|
||||
_push3(`<div class="sms-row" data-v-aeff4e43${_scopeId2}>`);
|
||||
_push3(ssrRenderComponent(_component_a_input, {
|
||||
value: form.smsCode,
|
||||
"onUpdate:value": ($event) => form.smsCode = $event,
|
||||
size: "large",
|
||||
placeholder: "请输入短信验证码"
|
||||
}, null, _parent3, _scopeId2));
|
||||
_push3(ssrRenderComponent(_component_a_button, {
|
||||
disabled: countdown.value > 0,
|
||||
loading: sendingSms.value,
|
||||
size: "large",
|
||||
onClick: sendSmsCode
|
||||
}, {
|
||||
default: withCtx((_3, _push4, _parent4, _scopeId3) => {
|
||||
if (_push4) {
|
||||
_push4(`${ssrInterpolate(countdown.value > 0 ? `${countdown.value}s 后重试` : "发送验证码")}`);
|
||||
} else {
|
||||
return [
|
||||
createTextVNode(toDisplayString(countdown.value > 0 ? `${countdown.value}s 后重试` : "发送验证码"), 1)
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent3, _scopeId2));
|
||||
_push3(`</div>`);
|
||||
} else {
|
||||
return [
|
||||
createVNode("div", { class: "sms-row" }, [
|
||||
createVNode(_component_a_input, {
|
||||
value: form.smsCode,
|
||||
"onUpdate:value": ($event) => form.smsCode = $event,
|
||||
size: "large",
|
||||
placeholder: "请输入短信验证码"
|
||||
}, null, 8, ["value", "onUpdate:value"]),
|
||||
createVNode(_component_a_button, {
|
||||
disabled: countdown.value > 0,
|
||||
loading: sendingSms.value,
|
||||
size: "large",
|
||||
onClick: sendSmsCode
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode(toDisplayString(countdown.value > 0 ? `${countdown.value}s 后重试` : "发送验证码"), 1)
|
||||
]),
|
||||
_: 1
|
||||
}, 8, ["disabled", "loading"])
|
||||
])
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent2, _scopeId));
|
||||
_push2(ssrRenderComponent(_component_a_button, {
|
||||
type: "primary",
|
||||
block: "",
|
||||
size: "large",
|
||||
loading: submitting.value,
|
||||
onClick: submit
|
||||
}, {
|
||||
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
|
||||
if (_push3) {
|
||||
_push3(` 绑定手机号并登录 `);
|
||||
} else {
|
||||
return [
|
||||
createTextVNode(" 绑定手机号并登录 ")
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent2, _scopeId));
|
||||
} else {
|
||||
return [
|
||||
createVNode(_component_a_form_item, {
|
||||
label: "手机号",
|
||||
name: "phone"
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createVNode(_component_a_input, {
|
||||
value: form.phone,
|
||||
"onUpdate:value": ($event) => form.phone = $event,
|
||||
size: "large",
|
||||
placeholder: "请输入手机号"
|
||||
}, null, 8, ["value", "onUpdate:value"])
|
||||
]),
|
||||
_: 1
|
||||
}),
|
||||
createVNode(_component_a_form_item, {
|
||||
label: "短信验证码",
|
||||
name: "smsCode"
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createVNode("div", { class: "sms-row" }, [
|
||||
createVNode(_component_a_input, {
|
||||
value: form.smsCode,
|
||||
"onUpdate:value": ($event) => form.smsCode = $event,
|
||||
size: "large",
|
||||
placeholder: "请输入短信验证码"
|
||||
}, null, 8, ["value", "onUpdate:value"]),
|
||||
createVNode(_component_a_button, {
|
||||
disabled: countdown.value > 0,
|
||||
loading: sendingSms.value,
|
||||
size: "large",
|
||||
onClick: sendSmsCode
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode(toDisplayString(countdown.value > 0 ? `${countdown.value}s 后重试` : "发送验证码"), 1)
|
||||
]),
|
||||
_: 1
|
||||
}, 8, ["disabled", "loading"])
|
||||
])
|
||||
]),
|
||||
_: 1
|
||||
}),
|
||||
createVNode(_component_a_button, {
|
||||
type: "primary",
|
||||
block: "",
|
||||
size: "large",
|
||||
loading: submitting.value,
|
||||
onClick: submit
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createTextVNode(" 绑定手机号并登录 ")
|
||||
]),
|
||||
_: 1
|
||||
}, 8, ["loading"])
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent));
|
||||
_push(`</div>`);
|
||||
}
|
||||
_push(`</div></div>`);
|
||||
};
|
||||
}
|
||||
});
|
||||
const _sfc_setup = _sfc_main.setup;
|
||||
_sfc_main.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/bind-phone.vue");
|
||||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||||
};
|
||||
const bindPhone = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-aeff4e43"]]);
|
||||
|
||||
export { bindPhone as default };
|
||||
//# sourceMappingURL=bind-phone-CjPFbjTp.mjs.map
|
||||
1
.output/server/chunks/build/bind-phone-CjPFbjTp.mjs.map
Normal file
1
.output/server/chunks/build/bind-phone-CjPFbjTp.mjs.map
Normal file
File diff suppressed because one or more lines are too long
@@ -0,0 +1,8 @@
|
||||
const bindPhone_vue_vue_type_style_index_0_scoped_aeff4e43_lang = ".bind-phone-page[data-v-aeff4e43]{align-items:center;background:linear-gradient(135deg,#eff6ff,#f5f3ff);display:flex;justify-content:center;min-height:100vh;padding:24px 16px}.bind-card[data-v-aeff4e43]{background:#fff;border-radius:20px;box-shadow:0 24px 60px #0f172a14;max-width:100%;padding:32px;width:460px}.bind-header[data-v-aeff4e43]{margin-bottom:24px;text-align:center}.bind-header h1[data-v-aeff4e43]{color:#111827;font-size:28px;font-weight:600;margin:0 0 8px}.bind-header p[data-v-aeff4e43]{color:#6b7280;font-size:14px;margin:0}.bind-state[data-v-aeff4e43]{align-items:center;color:#6b7280;display:flex;flex-direction:column;gap:16px;justify-content:center;min-height:240px;text-align:center}.bind-state.error[data-v-aeff4e43]{color:#ef4444}.state-icon[data-v-aeff4e43]{font-size:52px}.bind-form-wrap[data-v-aeff4e43]{display:flex;flex-direction:column;gap:20px}.bind-alert[data-v-aeff4e43]{margin-bottom:4px}.sms-row[data-v-aeff4e43]{display:grid;gap:12px;grid-template-columns:1fr 132px}@media(max-width:640px){.bind-card[data-v-aeff4e43]{padding:24px 20px}.sms-row[data-v-aeff4e43]{grid-template-columns:1fr}}";
|
||||
|
||||
const bindPhoneStyles_D2tDqmem = [
|
||||
bindPhone_vue_vue_type_style_index_0_scoped_aeff4e43_lang
|
||||
];
|
||||
|
||||
export { bindPhoneStyles_D2tDqmem as default };
|
||||
//# sourceMappingURL=bind-phone-styles.D2tDqmem.mjs.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"bind-phone-styles.D2tDqmem.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/bind-phone-styles.D2tDqmem.mjs"],"names":["style_0"],"mappings":"","x_google_ignoreList":[0]}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user