import { _ as __nuxt_component_0 } from './HeaderImage-92nFA80c.mjs'; import { defineComponent, computed, withAsyncContext, mergeProps, unref, useSSRContext } from 'vue'; import { ssrRenderAttrs, ssrRenderComponent, ssrRenderList, ssrRenderAttr, ssrInterpolate, ssrRenderClass } from 'vue/server-renderer'; import { u as useRequest } from './useRequest-pSRZvR3u.mjs'; import { b as useRouter, u as useRoute, n as navigateTo } from './server.mjs'; import { u as useAsyncData } from './asyncData-D5wEK86T.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 '../routes/renderer.mjs'; import 'vue-bundle-renderer/runtime'; import 'unhead/server'; import 'devalue'; import 'unhead/plugins'; import 'unhead/utils'; import 'vue-router'; import 'axios'; import 'perfect-debounce'; const _sfc_main = /* @__PURE__ */ defineComponent({ __name: "index", __ssrInlineRender: true, async setup(__props) { let __temp, __restore; useRouter(); const route = useRoute(); const request = useRequest(); const page = computed({ get: () => Number(route.query.page) || 1, set: (v) => navigateTo({ query: { ...route.query, page: v === 1 ? void 0 : v } }) }); const { data: newsRes } = ([__temp, __restore] = withAsyncContext(async () => useAsyncData( () => `news-page-${page.value}`, async () => await request.get("/api/news", { params: { page: page.value } }), { watch: [page] } )), __temp = await __temp, __restore(), __temp); const news = computed(() => { const res = newsRes.value; return res?.code === 200 && Array.isArray(res.data) ? res.data : []; }); const meta = computed(() => { const res = newsRes.value; return res?.meta ?? { current_page: 1, last_page: 1, per_page: 20, total: 0 }; }); const pageNumbers = computed(() => { const cur = meta.value.current_page; const last = meta.value.last_page; if (last <= 7) return Array.from({ length: last }, (_, i) => i + 1); const list = []; if (cur <= 3) { list.push(1, 2, 3, 4, -1, last); } else if (cur >= last - 2) { list.push(1, -1, last - 3, last - 2, last - 1, last); } else { list.push(1, -1, cur - 1, cur, cur + 1, -1, last); } return list; }); function formatDate(str) { if (!str) return ""; const d = str.split(" ")[0]; return d || str; } return (_ctx, _push, _parent, _attrs) => { const _component_HeaderImage = __nuxt_component_0; _push(``); _push(ssrRenderComponent(_component_HeaderImage, { title: "企业资讯", img: "/images/企业资讯/企业资讯.png" }, null, _parent)); _push(`
`); ssrRenderList(unref(news), (newInfo) => { _push(`
${ssrInterpolate(newInfo.title)}${ssrInterpolate(formatDate(newInfo.published_at))}

${ssrInterpolate(newInfo.description)}

`); }); _push(``); if (unref(meta).last_page > 1) { _push(``); } else { _push(``); } _push(`
`); }; } }); const _sfc_setup = _sfc_main.setup; _sfc_main.setup = (props, ctx) => { const ssrContext = useSSRContext(); (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/news/index.vue"); return _sfc_setup ? _sfc_setup(props, ctx) : void 0; }; export { _sfc_main as default }; //# sourceMappingURL=index-BIJrlrSw.mjs.map