import { _ as __nuxt_component_0 } from './HeaderImage-92nFA80c.mjs'; import { _ as __nuxt_component_1 } from './TabsHeader-C0yMA2hS.mjs'; import { defineComponent, ref, withAsyncContext, computed, watchEffect, mergeProps, isRef, unref, useSSRContext } from 'vue'; import { ssrRenderAttrs, ssrRenderComponent, ssrInterpolate, ssrRenderList, ssrRenderClass, ssrRenderAttr } from 'vue/server-renderer'; import { u as useRequest } from './useRequest-pSRZvR3u.mjs'; import { b as useRouter } from './server.mjs'; import { u as useAsyncData } from './asyncData-D5wEK86T.mjs'; import './virtual_public-Ch4_18y6.mjs'; import '../routes/renderer.mjs'; import 'vue-bundle-renderer/runtime'; 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 '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 request = useRequest(); const activeTab = ref(""); const { data: tagsRes } = ([__temp, __restore] = withAsyncContext(async () => useAsyncData( "case-study-tags", async () => await request.get("/api/case_study_tags") )), __temp = await __temp, __restore(), __temp); const tabList = computed(() => { const res = tagsRes.value; if (!res || res.code !== 200 || !Array.isArray(res.data)) return []; return res.data.map((t) => ({ id: String(t.id), name: t.name })); }); watchEffect(() => { if (!activeTab.value && tabList.value.length > 0) { const first = tabList.value[0]; if (first) activeTab.value = first.id; } }); const { data: caseRes } = ([__temp, __restore] = withAsyncContext(async () => useAsyncData( () => `case-studies-${activeTab.value || "empty"}`, async () => { if (!activeTab.value) return null; return await request.get("/api/case_studies", { params: { t_ids: activeTab.value } }); }, { watch: [activeTab] } )), __temp = await __temp, __restore(), __temp); const currentTabInfoData = computed(() => { const headText = "我们深耕行业,已累计承接各类环境服务项目35+,与众多行业标杆客户建立起长期信赖的合作关系。以下是我们按业务领域分类的部分实践成果。"; const res = caseRes.value; const list = res?.code === 200 && Array.isArray(res.data) ? res.data : []; return { title: headText, list: list.map((item) => ({ id: String(item.id), title: item.title, keyWords: Array.isArray(item.tags) ? item.tags.map((t) => t.name) : [], desc: item.description, url: item.cover })) }; }); return (_ctx, _push, _parent, _attrs) => { const _component_HeaderImage = __nuxt_component_0; const _component_TabsHeader = __nuxt_component_1; _push(`
${ssrInterpolate(unref(currentTabInfoData).title)}
${ssrInterpolate(item.desc)}