- Spring Boot 后端服务 (hss-home-service) - delivery-miniapp 配送小程序 - website 官网 (Nuxt) - docs 架构设计文档 - Docker 容器化部署配置 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1 line
145 KiB
JSON
1 line
145 KiB
JSON
{"file":"server.mjs","mappings":"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","names":["$fetch","plugin","provide","plugins","toArray","createH3Error","indexUeLLu7Nv6B_45N_7ye_q8pS_452MTl27VgdFOx8xKC8RfsEMeta","loginu9nXs2OpSL52sgS3SWK1wthlVzP9gVuvXNuzSoXMr54Meta","__executeAsync","routes","entry","router_GNCWhvtYfLTYRZZ135CdFAEjxdMexN0ixiUYCAN_tpw","_ssrRenderAttrs","_mergeProps","_push","_parent","_unref","_createVNode","_createTextVNode","_ssrRenderList","_ssrInterpolate","_toDisplayString","_ssrRenderAttr","_ssrRenderComponent","ErrorComponent","RootComponent"],"sources":["../../../virtual:nuxt:%2Fhome%2Fakoo%2F%E5%B1%85%E5%AE%B6%E6%9C%8D%E5%8A%A1%2Fhss-home-service%2Fwebsite%2F.nuxt%2Ffetch.mjs","../../../virtual:nuxt:%2Fhome%2Fakoo%2F%E5%B1%85%E5%AE%B6%E6%9C%8D%E5%8A%A1%2Fhss-home-service%2Fwebsite%2F.nuxt%2Fglobal-polyfills.mjs","../../../virtual:nuxt:%2Fhome%2Fakoo%2F%E5%B1%85%E5%AE%B6%E6%9C%8D%E5%8A%A1%2Fhss-home-service%2Fwebsite%2F.nuxt%2Fnuxt.config.mjs","../../../node_modules/nuxt/dist/app/nuxt.js","../../../node_modules/nuxt/dist/app/components/injections.js","../../../node_modules/nuxt/dist/app/utils.js","../../../node_modules/nuxt/dist/app/composables/router.js","../../../node_modules/nuxt/dist/app/composables/error.js","../../../node_modules/nuxt/dist/head/runtime/island-head.js","../../../node_modules/nuxt/dist/head/runtime/plugins/unhead.js","../../../node_modules/nuxt/dist/pages/runtime/utils.js","../../../virtual:nuxt:%2Fhome%2Fakoo%2F%E5%B1%85%E5%AE%B6%E6%9C%8D%E5%8A%A1%2Fhss-home-service%2Fwebsite%2F.nuxt%2Froute-rules.mjs","../../../node_modules/nuxt/dist/app/composables/manifest.js","../../../virtual:nuxt:%2Fhome%2Fakoo%2F%E5%B1%85%E5%AE%B6%E6%9C%8D%E5%8A%A1%2Fhss-home-service%2Fwebsite%2F.nuxt%2Froutes.mjs","../../../node_modules/nuxt/dist/app/components/utils.js","../../../node_modules/nuxt/dist/pages/runtime/router.options.js","../../../virtual:nuxt:%2Fhome%2Fakoo%2F%E5%B1%85%E5%AE%B6%E6%9C%8D%E5%8A%A1%2Fhss-home-service%2Fwebsite%2F.nuxt%2Frouter.options.mjs","../../../node_modules/nuxt/dist/pages/runtime/validate.js","../../../node_modules/nuxt/dist/app/middleware/route-rules.js","../../../virtual:nuxt:%2Fhome%2Fakoo%2F%E5%B1%85%E5%AE%B6%E6%9C%8D%E5%8A%A1%2Fhss-home-service%2Fwebsite%2F.nuxt%2Fmiddleware.mjs","../../../node_modules/nuxt/dist/pages/runtime/plugins/router.js","../../../node_modules/nuxt/dist/app/composables/payload.js","../../../node_modules/nuxt/dist/app/plugins/revive-payload.server.js","../../../virtual:nuxt:%2Fhome%2Fakoo%2F%E5%B1%85%E5%AE%B6%E6%9C%8D%E5%8A%A1%2Fhss-home-service%2Fwebsite%2F.nuxt%2Fcomponents.plugin.mjs","../../../node_modules/nuxt/dist/app/composables/ssr.js","../../../node_modules/nuxt/dist/pages/runtime/plugins/prerender.server.js","../../../virtual:nuxt:%2Fhome%2Fakoo%2F%E5%B1%85%E5%AE%B6%E6%9C%8D%E5%8A%A1%2Fhss-home-service%2Fwebsite%2F.nuxt%2Fplugins.server.mjs","../../../node_modules/nuxt/dist/app/components/nuxt-link.js","../../../data/siteContent.ts","../../../components/AppHeader.vue","../../../node_modules/nuxt/dist/app/components/route-provider.js","../../../node_modules/nuxt/dist/pages/runtime/page.js","../../../components/AppFooter.vue","../../../app.vue","../../../node_modules/nuxt/dist/app/components/nuxt-error-page.vue","../../../node_modules/nuxt/dist/app/components/nuxt-root.vue","../../../node_modules/nuxt/dist/app/entry.js"],"sourcesContent":["import { $fetch } from 'ofetch'\nimport { baseURL } from '#internal/nuxt/paths'\nif (!globalThis.$fetch) {\n globalThis.$fetch = $fetch.create({\n baseURL: baseURL()\n })\n}","\nif (!(\"global\" in globalThis)) {\n globalThis.global = globalThis;\n}","export const appHead = {\"meta\":[{\"charset\":\"utf-8\"},{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"},{\"name\":\"description\",\"content\":\"面向政府、医院与养老机构的智慧医养居家上门服务闭环管理平台\"},{\"name\":\"keywords\",\"content\":\"智慧医养平台,居家养老上门服务系统,长护险服务管理,居家照护管理系统,养老服务监管平台\"}],\"link\":[{\"rel\":\"icon\",\"type\":\"image/svg+xml\",\"href\":\"/favicon.svg\"}],\"style\":[],\"script\":[],\"noscript\":[],\"titleTemplate\":\"%s | 智慧医养居家上门服务平台\",\"htmlAttrs\":{\"lang\":\"zh-CN\"}}\n\nexport const appBaseURL = \"/\"\n\nexport const appBuildAssetsDir = \"/_nuxt/\"\n\nexport const appCdnURL = \"\"\n\nexport const appLayoutTransition = false\n\nexport const appPageTransition = false\n\nexport const appViewTransition = false\n\nexport const appKeepalive = false\n\nexport const appRootId = \"__nuxt\"\n\nexport const appRootTag = \"div\"\n\nexport const appRootAttrs = {\"id\":\"__nuxt\"}\n\nexport const appTeleportTag = \"div\"\n\nexport const appTeleportId = \"teleports\"\n\nexport const appTeleportAttrs = {\"id\":\"teleports\"}\n\nexport const appSpaLoaderTag = \"div\"\n\nexport const appSpaLoaderAttrs = {\"id\":\"__nuxt-loader\"}\n\nexport const renderJsonPayloads = true\n\nexport const componentIslands = false\n\nexport const payloadExtraction = true\n\nexport const cookieStore = true\n\nexport const appManifest = true\n\nexport const remoteComponentIslands = false\n\nexport const selectiveClient = false\n\nexport const devPagesDir = null\n\nexport const devRootDir = null\n\nexport const devLogs = false\n\nexport const nuxtLinkDefaults = {\"componentName\":\"NuxtLink\",\"prefetch\":true,\"prefetchOn\":{\"visibility\":true}}\n\nexport const asyncDataDefaults = {\"value\":null,\"errorValue\":null,\"deep\":true}\n\nexport const resetAsyncDataToUndefined = true\n\nexport const nuxtDefaultErrorValue = null\n\nexport const fetchDefaults = {}\n\nexport const vueAppRootContainer = '#__nuxt'\n\nexport const viewTransition = false\n\nexport const appId = \"nuxt-app\"\n\nexport const outdatedBuildInterval = 3600000\n\nexport const multiApp = false\n\nexport const chunkErrorEvent = \"vite:preloadError\"\n\nexport const crawlLinks = true\n\nexport const spaLoadingTemplateOutside = false\n\nexport const purgeCachedData = true\n\nexport const granularCachedData = false\n\nexport const pendingWhenIdle = true\n\nexport const alwaysRunFetchOnKeyChange = true","import { effectScope, getCurrentInstance, getCurrentScope, hasInjectionContext, reactive, shallowReactive } from \"vue\";\nimport { createHooks } from \"hookable\";\nimport { getContext } from \"unctx\";\nimport { appId, chunkErrorEvent, multiApp } from \"#build/nuxt.config.mjs\";\nexport function getNuxtAppCtx(id = appId || \"nuxt-app\") {\n return getContext(id, {\n asyncContext: !!__NUXT_ASYNC_CONTEXT__ && import.meta.server\n });\n}\nexport const NuxtPluginIndicator = \"__nuxt_plugin\";\nexport function createNuxtApp(options) {\n let hydratingCount = 0;\n const nuxtApp = {\n _id: options.id || appId || \"nuxt-app\",\n _scope: effectScope(),\n provide: void 0,\n globalName: \"nuxt\",\n versions: {\n get nuxt() {\n return __NUXT_VERSION__;\n },\n get vue() {\n return nuxtApp.vueApp.version;\n }\n },\n payload: shallowReactive({\n ...options.ssrContext?.payload || {},\n data: shallowReactive({}),\n state: reactive({}),\n once: /* @__PURE__ */ new Set(),\n _errors: shallowReactive({})\n }),\n static: {\n data: {}\n },\n runWithContext(fn) {\n if (nuxtApp._scope.active && !getCurrentScope()) {\n return nuxtApp._scope.run(() => callWithNuxt(nuxtApp, fn));\n }\n return callWithNuxt(nuxtApp, fn);\n },\n isHydrating: import.meta.client,\n deferHydration() {\n if (!nuxtApp.isHydrating) {\n return () => {\n };\n }\n hydratingCount++;\n let called = false;\n return () => {\n if (called) {\n return;\n }\n called = true;\n hydratingCount--;\n if (hydratingCount === 0) {\n nuxtApp.isHydrating = false;\n return nuxtApp.callHook(\"app:suspense:resolve\");\n }\n };\n },\n _asyncDataPromises: {},\n _asyncData: shallowReactive({}),\n _payloadRevivers: {},\n ...options\n };\n if (import.meta.server) {\n nuxtApp.payload.serverRendered = true;\n }\n if (import.meta.server && nuxtApp.ssrContext) {\n nuxtApp.payload.path = nuxtApp.ssrContext.url;\n nuxtApp.ssrContext.nuxt = nuxtApp;\n nuxtApp.ssrContext.payload = nuxtApp.payload;\n nuxtApp.ssrContext.config = {\n public: nuxtApp.ssrContext.runtimeConfig.public,\n app: nuxtApp.ssrContext.runtimeConfig.app\n };\n }\n if (import.meta.client) {\n const __NUXT__ = multiApp ? window.__NUXT__?.[nuxtApp._id] : window.__NUXT__;\n if (__NUXT__) {\n for (const key in __NUXT__) {\n switch (key) {\n case \"data\":\n case \"state\":\n case \"_errors\":\n Object.assign(nuxtApp.payload[key], __NUXT__[key]);\n break;\n default:\n nuxtApp.payload[key] = __NUXT__[key];\n }\n }\n }\n }\n nuxtApp.hooks = createHooks();\n nuxtApp.hook = nuxtApp.hooks.hook;\n if (import.meta.server) {\n const contextCaller = async function(hooks, args) {\n for (const hook of hooks) {\n await nuxtApp.runWithContext(() => hook(...args));\n }\n };\n nuxtApp.hooks.callHook = (name, ...args) => nuxtApp.hooks.callHookWith(contextCaller, name, ...args);\n }\n nuxtApp.callHook = nuxtApp.hooks.callHook;\n nuxtApp.provide = (name, value) => {\n const $name = \"$\" + name;\n defineGetter(nuxtApp, $name, value);\n defineGetter(nuxtApp.vueApp.config.globalProperties, $name, value);\n };\n defineGetter(nuxtApp.vueApp, \"$nuxt\", nuxtApp);\n defineGetter(nuxtApp.vueApp.config.globalProperties, \"$nuxt\", nuxtApp);\n if (import.meta.client) {\n if (chunkErrorEvent) {\n window.addEventListener(chunkErrorEvent, (event) => {\n nuxtApp.callHook(\"app:chunkError\", { error: event.payload });\n if (event.payload.message.includes(\"Unable to preload CSS\")) {\n event.preventDefault();\n }\n });\n }\n window.useNuxtApp ||= useNuxtApp;\n const unreg = nuxtApp.hook(\"app:error\", (...args) => {\n console.error(\"[nuxt] error caught during app initialization\", ...args);\n });\n nuxtApp.hook(\"app:mounted\", unreg);\n }\n const runtimeConfig = import.meta.server ? options.ssrContext.runtimeConfig : nuxtApp.payload.config;\n nuxtApp.provide(\"config\", import.meta.client && import.meta.dev ? wrappedConfig(runtimeConfig) : runtimeConfig);\n return nuxtApp;\n}\nexport function registerPluginHooks(nuxtApp, plugin) {\n if (plugin.hooks) {\n nuxtApp.hooks.addHooks(plugin.hooks);\n }\n}\nexport async function applyPlugin(nuxtApp, plugin) {\n if (typeof plugin === \"function\") {\n const { provide } = await nuxtApp.runWithContext(() => plugin(nuxtApp)) || {};\n if (provide && typeof provide === \"object\") {\n for (const key in provide) {\n nuxtApp.provide(key, provide[key]);\n }\n }\n }\n}\nexport async function applyPlugins(nuxtApp, plugins) {\n const resolvedPlugins = /* @__PURE__ */ new Set();\n const unresolvedPlugins = [];\n const parallels = [];\n let error = void 0;\n let promiseDepth = 0;\n async function executePlugin(plugin) {\n const unresolvedPluginsForThisPlugin = plugin.dependsOn?.filter((name) => plugins.some((p) => p._name === name) && !resolvedPlugins.has(name)) ?? [];\n if (unresolvedPluginsForThisPlugin.length > 0) {\n unresolvedPlugins.push([new Set(unresolvedPluginsForThisPlugin), plugin]);\n } else {\n const promise = applyPlugin(nuxtApp, plugin).then(async () => {\n if (plugin._name) {\n resolvedPlugins.add(plugin._name);\n await Promise.all(unresolvedPlugins.map(async ([dependsOn, unexecutedPlugin]) => {\n if (dependsOn.has(plugin._name)) {\n dependsOn.delete(plugin._name);\n if (dependsOn.size === 0) {\n promiseDepth++;\n await executePlugin(unexecutedPlugin);\n }\n }\n }));\n }\n }).catch((e) => {\n if (!plugin.parallel && !nuxtApp.payload.error) {\n throw e;\n }\n error ||= e;\n });\n if (plugin.parallel) {\n parallels.push(promise);\n } else {\n await promise;\n }\n }\n }\n for (const plugin of plugins) {\n if (import.meta.server && nuxtApp.ssrContext?.islandContext && plugin.env?.islands === false) {\n continue;\n }\n registerPluginHooks(nuxtApp, plugin);\n }\n for (const plugin of plugins) {\n if (import.meta.server && nuxtApp.ssrContext?.islandContext && plugin.env?.islands === false) {\n continue;\n }\n await executePlugin(plugin);\n }\n await Promise.all(parallels);\n if (promiseDepth) {\n for (let i = 0; i < promiseDepth; i++) {\n await Promise.all(parallels);\n }\n }\n if (error) {\n throw nuxtApp.payload.error || error;\n }\n}\n// @__NO_SIDE_EFFECTS__\nexport function defineNuxtPlugin(plugin) {\n if (typeof plugin === \"function\") {\n return plugin;\n }\n const _name = plugin._name || plugin.name;\n delete plugin.name;\n return Object.assign(plugin.setup || (() => {\n }), plugin, { [NuxtPluginIndicator]: true, _name });\n}\nexport const definePayloadPlugin = defineNuxtPlugin;\nexport function isNuxtPlugin(plugin) {\n return typeof plugin === \"function\" && NuxtPluginIndicator in plugin;\n}\nexport function callWithNuxt(nuxt, setup, args) {\n const fn = () => args ? setup(...args) : setup();\n const nuxtAppCtx = getNuxtAppCtx(nuxt._id);\n if (import.meta.server) {\n return nuxt.vueApp.runWithContext(() => nuxtAppCtx.callAsync(nuxt, fn));\n } else {\n nuxtAppCtx.set(nuxt);\n return nuxt.vueApp.runWithContext(fn);\n }\n}\nexport function tryUseNuxtApp(id) {\n let nuxtAppInstance;\n if (hasInjectionContext()) {\n nuxtAppInstance = getCurrentInstance()?.appContext.app.$nuxt;\n }\n nuxtAppInstance ||= getNuxtAppCtx(id).tryUse();\n return nuxtAppInstance || null;\n}\nexport function useNuxtApp(id) {\n const nuxtAppInstance = tryUseNuxtApp(id);\n if (!nuxtAppInstance) {\n if (import.meta.dev) {\n throw new Error(\"[nuxt] A composable that requires access to the Nuxt instance was called outside of a plugin, Nuxt hook, Nuxt middleware, or Vue setup function. This is probably not a Nuxt bug. Find out more at `https://nuxt.com/docs/guide/concepts/auto-imports#vue-and-nuxt-composables`.\");\n } else {\n throw new Error(\"[nuxt] instance unavailable\");\n }\n }\n return nuxtAppInstance;\n}\n// @__NO_SIDE_EFFECTS__\nexport function useRuntimeConfig(_event) {\n return useNuxtApp().$config;\n}\nfunction defineGetter(obj, key, val) {\n Object.defineProperty(obj, key, { get: () => val });\n}\nexport function defineAppConfig(config) {\n return config;\n}\nconst loggedKeys = /* @__PURE__ */ new Set();\nfunction wrappedConfig(runtimeConfig) {\n if (!import.meta.dev || import.meta.server) {\n return runtimeConfig;\n }\n const keys = [];\n for (const key in runtimeConfig) {\n keys.push(`\\`${key}\\``);\n }\n const lastKey = keys.pop();\n return new Proxy(runtimeConfig, {\n get(target, p, receiver) {\n if (typeof p === \"string\" && p !== \"public\" && !(p in target) && !p.startsWith(\"__v\")) {\n if (!loggedKeys.has(p)) {\n loggedKeys.add(p);\n console.warn(`[nuxt] Could not access \\`${p}\\`. The only available runtime config keys on the client side are ${keys.join(\", \")} and ${lastKey}. See https://nuxt.com/docs/guide/going-further/runtime-config for more information.`);\n }\n }\n return Reflect.get(target, p, receiver);\n }\n });\n}\n","export const LayoutMetaSymbol = Symbol(\"layout-meta\");\nexport const PageRouteSymbol = Symbol(\"route\");\n","import { captureStackTrace } from \"errx\";\nexport function toArray(value) {\n return Array.isArray(value) ? value : [value];\n}\nconst distURL = import.meta.url.replace(/\\/app\\/.*$/, \"/\");\nexport function getUserTrace() {\n if (!import.meta.dev) {\n return [];\n }\n const trace = captureStackTrace();\n const start = trace.findIndex((entry) => !entry.source.startsWith(distURL));\n const end = [...trace].reverse().findIndex((entry) => !entry.source.includes(\"node_modules\") && !entry.source.startsWith(distURL));\n if (start === -1 || end === -1) {\n return [];\n }\n return trace.slice(start, end > 0 ? -end : void 0).map((i) => ({\n ...i,\n source: i.source.replace(/^file:\\/\\//, \"\")\n }));\n}\nexport function getUserCaller() {\n if (!import.meta.dev) {\n return null;\n }\n const { source, line, column } = captureStackTrace().find((entry) => !entry.source.startsWith(distURL)) ?? {};\n if (!source) {\n return null;\n }\n return {\n source: source.replace(/^file:\\/\\//, \"\"),\n line,\n column\n };\n}\n","import { getCurrentInstance, hasInjectionContext, inject, onScopeDispose } from \"vue\";\nimport { sanitizeStatusCode } from \"h3\";\nimport { decodePath, encodePath, hasProtocol, isScriptProtocol, joinURL, parseQuery, parseURL, withQuery } from \"ufo\";\nimport { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { PageRouteSymbol } from \"../components/injections.js\";\nimport { createError, showError } from \"./error.js\";\nimport { getUserTrace } from \"../utils.js\";\nexport const useRouter = () => {\n return useNuxtApp()?.$router;\n};\nexport const useRoute = () => {\n if (import.meta.dev && !getCurrentInstance() && isProcessingMiddleware()) {\n const middleware = useNuxtApp()._processingMiddleware;\n const trace = getUserTrace().map(({ source, line, column }) => `at ${source}:${line}:${column}`).join(\"\\n\");\n console.warn(`[nuxt] \\`useRoute\\` was called within middleware${typeof middleware === \"string\" ? ` (\\`${middleware}\\`)` : \"\"}. This may lead to misleading results. Instead, use the (to, from) arguments passed to the middleware to access the new and old routes. Learn more: https://nuxt.com/docs/3.x/directory-structure/middleware#accessing-route-in-middleware` + (\"\\n\" + trace));\n }\n if (hasInjectionContext()) {\n return inject(PageRouteSymbol, useNuxtApp()._route);\n }\n return useNuxtApp()._route;\n};\nexport const onBeforeRouteLeave = (guard) => {\n const unsubscribe = useRouter().beforeEach((to, from, next) => {\n if (to === from) {\n return;\n }\n return guard(to, from, next);\n });\n onScopeDispose(unsubscribe);\n};\nexport const onBeforeRouteUpdate = (guard) => {\n const unsubscribe = useRouter().beforeEach(guard);\n onScopeDispose(unsubscribe);\n};\n// @__NO_SIDE_EFFECTS__\nexport function defineNuxtRouteMiddleware(middleware) {\n return middleware;\n}\nexport const addRouteMiddleware = (name, middleware, options = {}) => {\n const nuxtApp = useNuxtApp();\n const global = options.global || typeof name !== \"string\";\n const mw = typeof name !== \"string\" ? name : middleware;\n if (!mw) {\n console.warn(\"[nuxt] No route middleware passed to `addRouteMiddleware`.\", name);\n return;\n }\n if (global) {\n nuxtApp._middleware.global.push(mw);\n } else {\n nuxtApp._middleware.named[name] = mw;\n }\n};\nconst isProcessingMiddleware = () => {\n try {\n if (useNuxtApp()._processingMiddleware) {\n return true;\n }\n } catch {\n return false;\n }\n return false;\n};\nconst URL_QUOTE_RE = /\"/g;\nexport const navigateTo = (to, options) => {\n to ||= \"/\";\n const toPath = typeof to === \"string\" ? to : \"path\" in to ? resolveRouteObject(to) : useRouter().resolve(to).href;\n if (import.meta.client && options?.open) {\n const { target = \"_blank\", windowFeatures = {} } = options.open;\n const features = [];\n for (const [feature, value] of Object.entries(windowFeatures)) {\n if (value !== void 0) {\n features.push(`${feature.toLowerCase()}=${value}`);\n }\n }\n open(toPath, target, features.join(\", \"));\n return Promise.resolve();\n }\n const isExternalHost = hasProtocol(toPath, { acceptRelative: true });\n const isExternal = options?.external || isExternalHost;\n if (isExternal) {\n if (!options?.external) {\n throw new Error(\"Navigating to an external URL is not allowed by default. Use `navigateTo(url, { external: true })`.\");\n }\n const { protocol } = new URL(toPath, import.meta.client ? window.location.href : \"http://localhost\");\n if (protocol && isScriptProtocol(protocol)) {\n throw new Error(`Cannot navigate to a URL with '${protocol}' protocol.`);\n }\n }\n const inMiddleware = isProcessingMiddleware();\n if (import.meta.client && !isExternal && inMiddleware) {\n if (options?.replace) {\n if (typeof to === \"string\") {\n const { pathname, search, hash } = parseURL(to);\n return {\n path: pathname,\n ...search && { query: parseQuery(search) },\n ...hash && { hash },\n replace: true\n };\n }\n return { ...to, replace: true };\n }\n return to;\n }\n const router = useRouter();\n const nuxtApp = useNuxtApp();\n if (import.meta.server) {\n if (nuxtApp.ssrContext) {\n const fullPath = typeof to === \"string\" || isExternal ? toPath : router.resolve(to).fullPath || \"/\";\n const location2 = isExternal ? toPath : joinURL(useRuntimeConfig().app.baseURL, fullPath);\n const redirect = async function(response) {\n await nuxtApp.callHook(\"app:redirected\");\n const encodedLoc = location2.replace(URL_QUOTE_RE, \"%22\");\n const encodedHeader = encodeURL(location2, isExternalHost);\n nuxtApp.ssrContext[\"~renderResponse\"] = {\n statusCode: sanitizeStatusCode(options?.redirectCode || 302, 302),\n body: `<!DOCTYPE html><html><head><meta http-equiv=\"refresh\" content=\"0; url=${encodedLoc}\"></head></html>`,\n headers: { location: encodedHeader }\n };\n return response;\n };\n if (!isExternal && inMiddleware) {\n router.afterEach((final) => final.fullPath === fullPath ? redirect(false) : void 0);\n return to;\n }\n return redirect(!inMiddleware ? void 0 : (\n /* abort route navigation */\n false\n ));\n }\n }\n if (isExternal) {\n nuxtApp._scope.stop();\n if (options?.replace) {\n location.replace(toPath);\n } else {\n location.href = toPath;\n }\n if (inMiddleware) {\n if (!nuxtApp.isHydrating) {\n return false;\n }\n return new Promise(() => {\n });\n }\n return Promise.resolve();\n }\n const encodedTo = typeof to === \"string\" ? encodeRoutePath(to) : to;\n return options?.replace ? router.replace(encodedTo) : router.push(encodedTo);\n};\nexport const abortNavigation = (err) => {\n if (import.meta.dev && !isProcessingMiddleware()) {\n throw new Error(\"abortNavigation() is only usable inside a route middleware handler.\");\n }\n if (!err) {\n return false;\n }\n err = createError(err);\n if (err.fatal) {\n useNuxtApp().runWithContext(() => showError(err));\n }\n throw err;\n};\nexport const setPageLayout = (layout, props) => {\n const nuxtApp = useNuxtApp();\n if (import.meta.server) {\n if (import.meta.dev && getCurrentInstance() && nuxtApp.payload.state._layout !== layout) {\n console.warn(\"[nuxt] `setPageLayout` should not be called to change the layout on the server within a component as this will cause hydration errors.\");\n }\n nuxtApp.payload.state._layout = layout;\n nuxtApp.payload.state._layoutProps = props;\n }\n if (import.meta.dev && nuxtApp.isHydrating && nuxtApp.payload.serverRendered && nuxtApp.payload.state._layout !== layout) {\n console.warn(\"[nuxt] `setPageLayout` should not be called to change the layout during hydration as this will cause hydration errors.\");\n }\n const inMiddleware = isProcessingMiddleware();\n if (inMiddleware || import.meta.server || nuxtApp.isHydrating) {\n const unsubscribe = useRouter().beforeResolve((to) => {\n to.meta.layout = layout;\n to.meta.layoutProps = props;\n unsubscribe();\n });\n }\n if (!inMiddleware) {\n const route = useRoute();\n route.meta.layout = layout;\n route.meta.layoutProps = props;\n }\n};\nexport function resolveRouteObject(to) {\n return withQuery(to.path || \"\", to.query || {}) + (to.hash || \"\");\n}\nexport function encodeURL(location2, isExternalHost = false) {\n const url = new URL(location2, \"http://localhost\");\n if (!isExternalHost) {\n return url.pathname + url.search + url.hash;\n }\n if (location2.startsWith(\"//\")) {\n return url.toString().replace(url.protocol, \"\");\n }\n return url.toString();\n}\nexport function encodeRoutePath(url) {\n const parsed = parseURL(url);\n return encodePath(decodePath(parsed.pathname)) + parsed.search + parsed.hash;\n}\n","import { createError as createH3Error } from \"h3\";\nimport { toRef } from \"vue\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { useRouter } from \"./router.js\";\nimport { nuxtDefaultErrorValue } from \"#build/nuxt.config.mjs\";\nexport const NUXT_ERROR_SIGNATURE = \"__nuxt_error\";\nexport const useError = /* @__NO_SIDE_EFFECTS__ */ () => toRef(useNuxtApp().payload, \"error\");\nexport const showError = (error) => {\n const nuxtError = createError(error);\n try {\n const error2 = /* @__PURE__ */ useError();\n if (import.meta.client) {\n const nuxtApp = useNuxtApp();\n nuxtApp.hooks.callHook(\"app:error\", nuxtError);\n }\n error2.value ||= nuxtError;\n } catch {\n throw nuxtError;\n }\n return nuxtError;\n};\nexport const clearError = async (options = {}) => {\n const nuxtApp = useNuxtApp();\n const error = /* @__PURE__ */ useError();\n nuxtApp.callHook(\"app:error:cleared\", options);\n if (options.redirect) {\n await useRouter().replace(options.redirect);\n }\n error.value = nuxtDefaultErrorValue;\n};\nexport const isNuxtError = (error) => !!error && typeof error === \"object\" && NUXT_ERROR_SIGNATURE in error;\nexport const createError = (error) => {\n if (typeof error !== \"string\" && error.statusText) {\n error.message ??= error.statusText;\n }\n const nuxtError = createH3Error(error);\n Object.defineProperty(nuxtError, NUXT_ERROR_SIGNATURE, {\n value: true,\n configurable: false,\n writable: false\n });\n Object.defineProperty(nuxtError, \"status\", {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n get: () => nuxtError.statusCode,\n configurable: true\n });\n Object.defineProperty(nuxtError, \"statusText\", {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n get: () => nuxtError.statusMessage,\n configurable: true\n });\n return nuxtError;\n};\n","export function freezeHead(head) {\n const realPush = head.push;\n head.push = () => ({ dispose: () => {\n }, patch: () => {\n }, _poll: () => {\n } });\n return () => {\n head.push = realPush;\n };\n}\n","import { createHead as createClientHead, renderDOMHead } from \"@unhead/vue/client\";\nimport { defineNuxtPlugin } from \"#app/nuxt\";\nimport { freezeHead } from \"../island-head.js\";\nimport unheadOptions from \"#build/unhead-options.mjs\";\nexport default defineNuxtPlugin({\n name: \"nuxt:head\",\n enforce: \"pre\",\n setup(nuxtApp) {\n const head = import.meta.server ? nuxtApp.ssrContext.head : createClientHead(unheadOptions);\n if (import.meta.server && nuxtApp.ssrContext.islandContext) {\n const unfreeze = freezeHead(head);\n nuxtApp.hooks.hookOnce(\"app:created\", unfreeze);\n }\n nuxtApp.vueApp.use(head);\n if (import.meta.client) {\n let pauseDOMUpdates = true;\n const syncHead = async () => {\n pauseDOMUpdates = false;\n await renderDOMHead(head);\n };\n head.hooks.hook(\"dom:beforeRender\", (context) => {\n context.shouldRender = !pauseDOMUpdates;\n });\n nuxtApp.hooks.hook(\"page:start\", () => {\n pauseDOMUpdates = true;\n });\n nuxtApp.hooks.hook(\"page:finish\", () => {\n if (!nuxtApp.isHydrating) {\n syncHead();\n }\n });\n nuxtApp.hooks.hook(\"app:error\", syncHead);\n nuxtApp.hooks.hook(\"app:suspense:resolve\", syncHead);\n const originalPush = head.push.bind(head);\n head.push = ((input, options) => {\n const entry = originalPush(input, options);\n const originalDispose = entry.dispose.bind(entry);\n entry.dispose = () => {\n const transitionPromise = nuxtApp[\"~transitionPromise\"];\n if (transitionPromise) {\n transitionPromise.then(originalDispose);\n } else {\n originalDispose();\n }\n };\n return entry;\n });\n }\n }\n});\n","import { KeepAlive, h } from \"vue\";\nconst ROUTE_KEY_PARENTHESES_RE = /(:\\w+)\\([^)]+\\)/g;\nconst ROUTE_KEY_SYMBOLS_RE = /(:\\w+)[?+*]/g;\nconst ROUTE_KEY_NORMAL_RE = /:\\w+/g;\nconst interpolatePath = (route, match) => {\n return match.path.replace(ROUTE_KEY_PARENTHESES_RE, \"$1\").replace(ROUTE_KEY_SYMBOLS_RE, \"$1\").replace(ROUTE_KEY_NORMAL_RE, (r) => route.params[r.slice(1)]?.toString() || \"\");\n};\nexport const generateRouteKey = (routeProps, override) => {\n const matchedRoute = routeProps.route.matched.find((m) => m.components?.default === routeProps.Component.type);\n const source = override ?? matchedRoute?.meta.key ?? (matchedRoute && interpolatePath(routeProps.route, matchedRoute));\n return typeof source === \"function\" ? source(routeProps.route) : source;\n};\nexport const wrapInKeepAlive = (props, children) => {\n return { default: () => import.meta.client && props ? h(KeepAlive, props === true ? {} : props, children) : children };\n};\nexport function toArray(value) {\n return Array.isArray(value) ? value : [value];\n}\n","\n import { defu } from 'defu'\n const matcher = (m,p)=>{return [];}\n export default (path) => defu({}, ...matcher('', path).map(r => r.data).reverse())\n ","import { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { appManifest as isAppManifestEnabled } from \"#build/nuxt.config.mjs\";\nimport { buildAssetsURL } from \"#internal/nuxt/paths\";\nimport _routeRulesMatcher from \"#build/route-rules.mjs\";\nconst routeRulesMatcher = _routeRulesMatcher;\nlet manifest;\nfunction fetchManifest() {\n if (!isAppManifestEnabled) {\n throw new Error(\"[nuxt] app manifest should be enabled with `experimental.appManifest`\");\n }\n let _manifest;\n if (import.meta.server) {\n _manifest = import(\n /* webpackIgnore: true */\n /* @vite-ignore */\n \"#app-manifest\"\n );\n } else {\n _manifest = $fetch(buildAssetsURL(`builds/meta/${useRuntimeConfig().app.buildId}.json`), {\n responseType: \"json\"\n });\n }\n manifest = _manifest;\n _manifest.catch((e) => {\n if (manifest === _manifest) {\n manifest = void 0;\n }\n console.error(\"[nuxt] Error fetching app manifest.\", e);\n });\n return _manifest;\n}\nexport function getAppManifest() {\n if (!isAppManifestEnabled) {\n throw new Error(\"[nuxt] app manifest should be enabled with `experimental.appManifest`\");\n }\n if (import.meta.server) {\n useNuxtApp().ssrContext[\"~preloadManifest\"] = true;\n }\n return manifest || fetchManifest();\n}\nexport function getRouteRules(arg) {\n const path = typeof arg === \"string\" ? arg : arg.path;\n try {\n return routeRulesMatcher(path);\n } catch (e) {\n console.error(\"[nuxt] Error matching route rules.\", e);\n return {};\n }\n}\n","\nif (import.meta.hot) {\n import.meta.hot.accept((mod) => {\n const router = import.meta.hot.data.router\n const generateRoutes = import.meta.hot.data.generateRoutes\n if (!router || !generateRoutes) {\n import.meta.hot.invalidate('[nuxt] Cannot replace routes because there is no active router. Reloading.')\n return\n }\n const addedRoutes = router.getRoutes().filter(r => !r._initial)\n router.clearRoutes()\n const routes = generateRoutes(mod.default || mod)\n function addRoutes (routes) {\n for (const route of routes) {\n router.addRoute(route)\n }\n for (const route of router.getRoutes()) {\n route._initial = true\n }\n for (const route of addedRoutes) {\n router.addRoute(route)\n }\n router.isReady().then(() => {\n // Resolve the current path against the new routes to get updated meta\n const newRoute = router.resolve(router.currentRoute.value.fullPath)\n // Clear old meta values and assign new ones\n for (const key of Object.keys(router.currentRoute.value.meta)) {\n delete router.currentRoute.value.meta[key]\n }\n Object.assign(router.currentRoute.value.meta, newRoute.meta)\n })\n }\n if (routes && 'then' in routes) {\n routes.then(addRoutes)\n } else {\n addRoutes(routes)\n }\n })\n}\n\nexport function handleHotUpdate(_router, _generateRoutes) {\n if (import.meta.hot) {\n import.meta.hot.data ||= {}\n import.meta.hot.data.router = _router\n import.meta.hot.data.generateRoutes = _generateRoutes\n for (const route of _router.getRoutes()) {\n route._initial = true\n }\n }\n}\nimport { default as demo6lqDrKX8CG3Lw6FKFH5STmBIXARHqfIE5KSSohBXDA8Meta } from \"/home/akoo/居家服务/hss-home-service/website/pages/demo.vue?macro=true\";\nimport { default as aboutq60cdpk5CzTLXfGXnI_45KqYXCwrfMucOrPzUHjhqCQKAMeta } from \"/home/akoo/居家服务/hss-home-service/website/pages/about.vue?macro=true\";\nimport { default as indexdHBfQOyRMaCVQVpgFkesmiffrhVu5TgY76VCpWT8aZkMeta } from \"/home/akoo/居家服务/hss-home-service/website/pages/index.vue?macro=true\";\nimport { default as contacthM91g_45qy1WSYLnZTpbe6auppbZiJJIGrQtaVl7x4khsMeta } from \"/home/akoo/居家服务/hss-home-service/website/pages/contact.vue?macro=true\";\nimport { default as securityb_tGZG_CKfaHdn3OuTVfRruoFN3WTQLuqA4_45xZDZoCAMeta } from \"/home/akoo/居家服务/hss-home-service/website/pages/security.vue?macro=true\";\nimport { default as solutionqenTQgYYUhjX_xjKzpbsLtMQ_yt7N3UQY1qv4zLlauEMeta } from \"/home/akoo/居家服务/hss-home-service/website/pages/solution.vue?macro=true\";\nimport { default as resourcesRTy9ZAUWt4x4QxjXIvOASRmW2NfX_XK39V1SW_4515M9EMeta } from \"/home/akoo/居家服务/hss-home-service/website/pages/resources.vue?macro=true\";\nimport { default as scenariosaNHeQu1pDleVOpXrb5v5SHTRfR6onWQj42XrsWNYGtMMeta } from \"/home/akoo/居家服务/hss-home-service/website/pages/scenarios.vue?macro=true\";\nimport { default as capabilitiesZIt7lEf_45L5OW5MYxzmvr7gRch0Jt005gNKRqP9O5XFYMeta } from \"/home/akoo/居家服务/hss-home-service/website/pages/capabilities.vue?macro=true\";\nimport { default as service_45loopvdfozms6HRYPkq640n6xHi5UMMmFUmLBIWJTISaQ5oUMeta } from \"/home/akoo/居家服务/hss-home-service/website/pages/service-loop.vue?macro=true\";\nimport { default as indexUeLLu7Nv6B_45N_7ye_q8pS_452MTl27VgdFOx8xKC8RfsEMeta } from \"/home/akoo/居家服务/hss-home-service/website/pages/platform/index.vue?macro=true\";\nimport { default as loginu9nXs2OpSL52sgS3SWK1wthlVzP9gVuvXNuzSoXMr54Meta } from \"/home/akoo/居家服务/hss-home-service/website/pages/platform/login.vue?macro=true\";\nimport { default as work_45ordersNKBUitmcU_2BbDBrUDpa8hFt1XF7_455EACXm13dCeT64Meta } from \"/home/akoo/居家服务/hss-home-service/website/pages/platform/work-orders.vue?macro=true\";\nimport { default as applicationsM_mvulF86O6dVw0bmQlZ8oijzsOuXzRKwYZBwlhmvEsMeta } from \"/home/akoo/居家服务/hss-home-service/website/pages/platform/applications.vue?macro=true\";\nexport default [\n {\n name: \"demo\",\n path: \"/demo\",\n component: () => import(\"/home/akoo/居家服务/hss-home-service/website/pages/demo.vue\")\n },\n {\n name: \"about\",\n path: \"/about\",\n component: () => import(\"/home/akoo/居家服务/hss-home-service/website/pages/about.vue\")\n },\n {\n name: \"index\",\n path: \"/\",\n component: () => import(\"/home/akoo/居家服务/hss-home-service/website/pages/index.vue\")\n },\n {\n name: \"contact\",\n path: \"/contact\",\n component: () => import(\"/home/akoo/居家服务/hss-home-service/website/pages/contact.vue\")\n },\n {\n name: \"security\",\n path: \"/security\",\n component: () => import(\"/home/akoo/居家服务/hss-home-service/website/pages/security.vue\")\n },\n {\n name: \"solution\",\n path: \"/solution\",\n component: () => import(\"/home/akoo/居家服务/hss-home-service/website/pages/solution.vue\")\n },\n {\n name: \"resources\",\n path: \"/resources\",\n component: () => import(\"/home/akoo/居家服务/hss-home-service/website/pages/resources.vue\")\n },\n {\n name: \"scenarios\",\n path: \"/scenarios\",\n component: () => import(\"/home/akoo/居家服务/hss-home-service/website/pages/scenarios.vue\")\n },\n {\n name: \"capabilities\",\n path: \"/capabilities\",\n component: () => import(\"/home/akoo/居家服务/hss-home-service/website/pages/capabilities.vue\")\n },\n {\n name: \"service-loop\",\n path: \"/service-loop\",\n component: () => import(\"/home/akoo/居家服务/hss-home-service/website/pages/service-loop.vue\")\n },\n {\n name: \"platform\",\n path: \"/platform\",\n meta: indexUeLLu7Nv6B_45N_7ye_q8pS_452MTl27VgdFOx8xKC8RfsEMeta || {},\n component: () => import(\"/home/akoo/居家服务/hss-home-service/website/pages/platform/index.vue\")\n },\n {\n name: \"platform-login\",\n path: \"/platform/login\",\n meta: loginu9nXs2OpSL52sgS3SWK1wthlVzP9gVuvXNuzSoXMr54Meta || {},\n component: () => import(\"/home/akoo/居家服务/hss-home-service/website/pages/platform/login.vue\")\n },\n {\n name: \"platform-work-orders\",\n path: \"/platform/work-orders\",\n component: () => import(\"/home/akoo/居家服务/hss-home-service/website/pages/platform/work-orders.vue\")\n },\n {\n name: \"platform-applications\",\n path: \"/platform/applications\",\n component: () => import(\"/home/akoo/居家服务/hss-home-service/website/pages/platform/applications.vue\")\n }\n]","import { Transition, createStaticVNode, h } from \"vue\";\nimport { defu } from \"defu\";\nimport { isString, isPromise, isArray, isObject } from \"@vue/shared\";\nimport { START_LOCATION } from \"#build/pages\";\nexport const _wrapInTransition = (props, children) => {\n return { default: () => import.meta.client && props ? h(Transition, props === true ? {} : props, children) : children.default?.() };\n};\nconst ROUTE_KEY_PARENTHESES_RE = /(:\\w+)\\([^)]+\\)/g;\nconst ROUTE_KEY_SYMBOLS_RE = /(:\\w+)[?+*]/g;\nconst ROUTE_KEY_NORMAL_RE = /:\\w+/g;\nfunction generateRouteKey(route) {\n const source = route?.meta.key ?? route.path.replace(ROUTE_KEY_PARENTHESES_RE, \"$1\").replace(ROUTE_KEY_SYMBOLS_RE, \"$1\").replace(ROUTE_KEY_NORMAL_RE, (r) => route.params[r.slice(1)]?.toString() || \"\");\n return typeof source === \"function\" ? source(route) : source;\n}\nexport function isChangingPage(to, from) {\n if (to === from || from === START_LOCATION) {\n return false;\n }\n if (generateRouteKey(to) !== generateRouteKey(from)) {\n return true;\n }\n const areComponentsSame = to.matched.every(\n (comp, index) => comp.components && comp.components.default === from.matched[index]?.components?.default\n );\n if (areComponentsSame) {\n return false;\n }\n return true;\n}\nexport function createBuffer() {\n let appendable = false;\n const buffer = [];\n return {\n getBuffer() {\n return buffer;\n },\n push(item) {\n const isStringItem = isString(item);\n if (appendable && isStringItem) {\n buffer[buffer.length - 1] += item;\n } else {\n buffer.push(item);\n }\n appendable = isStringItem;\n if (isPromise(item) || isArray(item) && item.hasAsync) {\n buffer.hasAsync = true;\n }\n }\n };\n}\nexport function vforToArray(source) {\n if (isArray(source)) {\n return source;\n } else if (isString(source)) {\n return source.split(\"\");\n } else if (typeof source === \"number\") {\n if (import.meta.dev && !Number.isInteger(source)) {\n console.warn(`The v-for range expect an integer value but got ${source}.`);\n }\n const array = [];\n for (let i = 0; i < source; i++) {\n array[i] = i;\n }\n return array;\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n return Array.from(\n source,\n (item) => item\n );\n } else {\n const keys = Object.keys(source);\n const array = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n array[i] = source[key];\n }\n return array;\n }\n }\n return [];\n}\nexport function getFragmentHTML(element, withoutSlots = false) {\n if (element) {\n if (element.nodeName === \"#comment\" && element.nodeValue === \"[\") {\n return getFragmentChildren(element, [], withoutSlots);\n }\n if (withoutSlots) {\n const clone = element.cloneNode(true);\n clone.querySelectorAll(\"[data-island-slot]\").forEach((n) => {\n n.innerHTML = \"\";\n });\n return [clone.outerHTML];\n }\n return [element.outerHTML];\n }\n}\nfunction getFragmentChildren(element, blocks = [], withoutSlots = false) {\n if (element && element.nodeName) {\n if (isEndFragment(element)) {\n return blocks;\n } else if (!isStartFragment(element)) {\n const clone = element.cloneNode(true);\n if (withoutSlots) {\n clone.querySelectorAll?.(\"[data-island-slot]\").forEach((n) => {\n n.innerHTML = \"\";\n });\n }\n blocks.push(clone.outerHTML);\n }\n getFragmentChildren(element.nextSibling, blocks, withoutSlots);\n }\n return blocks;\n}\nexport function elToStaticVNode(el, staticNodeFallback) {\n const fragment = el ? getFragmentHTML(el) : staticNodeFallback ? [staticNodeFallback] : void 0;\n if (fragment) {\n return createStaticVNode(fragment.join(\"\"), fragment.length);\n }\n return h(\"div\");\n}\nexport function isStartFragment(element) {\n return element.nodeName === \"#comment\" && element.nodeValue === \"[\";\n}\nexport function isEndFragment(element) {\n return element.nodeName === \"#comment\" && element.nodeValue === \"]\";\n}\nexport function toArray(value) {\n return Array.isArray(value) ? value : [value];\n}\nexport function _mergeTransitionProps(routeProps) {\n const _props = [];\n for (const prop of routeProps) {\n if (!prop) {\n continue;\n }\n _props.push({\n ...prop,\n onAfterLeave: prop.onAfterLeave ? toArray(prop.onAfterLeave) : void 0,\n onBeforeLeave: prop.onBeforeLeave ? toArray(prop.onBeforeLeave) : void 0\n });\n }\n return defu(..._props);\n}\n","import { START_LOCATION } from \"vue-router\";\nimport { useNuxtApp } from \"#app/nuxt\";\nimport { isChangingPage } from \"#app/components/utils\";\nimport { useRouter } from \"#app/composables/router\";\nexport default {\n scrollBehavior(to, from, savedPosition) {\n const nuxtApp = useNuxtApp();\n const hashScrollBehaviour = useRouter().options?.scrollBehaviorType ?? \"auto\";\n if (to.path.replace(/\\/$/, \"\") === from.path.replace(/\\/$/, \"\")) {\n if (from.hash && !to.hash) {\n return { left: 0, top: 0 };\n }\n if (to.hash) {\n return { el: to.hash, top: _getHashElementScrollMarginTop(to.hash), behavior: hashScrollBehaviour };\n }\n return false;\n }\n const routeAllowsScrollToTop = typeof to.meta.scrollToTop === \"function\" ? to.meta.scrollToTop(to, from) : to.meta.scrollToTop;\n if (routeAllowsScrollToTop === false) {\n return false;\n }\n if (from === START_LOCATION) {\n return _calculatePosition(to, from, savedPosition, hashScrollBehaviour);\n }\n return new Promise((resolve) => {\n const doScroll = () => {\n requestAnimationFrame(() => resolve(_calculatePosition(to, from, savedPosition, hashScrollBehaviour)));\n };\n nuxtApp.hooks.hookOnce(\"page:loading:end\", () => {\n const transitionPromise = nuxtApp[\"~transitionPromise\"];\n if (transitionPromise) {\n transitionPromise.then(doScroll);\n } else {\n doScroll();\n }\n });\n });\n }\n};\nfunction _getHashElementScrollMarginTop(selector) {\n try {\n const elem = document.querySelector(selector);\n if (elem) {\n return (Number.parseFloat(getComputedStyle(elem).scrollMarginTop) || 0) + (Number.parseFloat(getComputedStyle(document.documentElement).scrollPaddingTop) || 0);\n }\n } catch {\n }\n return 0;\n}\nfunction _calculatePosition(to, from, savedPosition, defaultHashScrollBehaviour) {\n if (savedPosition) {\n return savedPosition;\n }\n if (to.hash) {\n return {\n el: to.hash,\n top: _getHashElementScrollMarginTop(to.hash),\n behavior: isChangingPage(to, from) ? defaultHashScrollBehaviour : \"instant\"\n };\n }\n return {\n left: 0,\n top: 0\n };\n}\n","import routerOptions0 from \"/home/akoo/居家服务/hss-home-service/website/node_modules/nuxt/dist/pages/runtime/router.options.js\";\nconst configRouterOptions = {\n hashMode: false,\n scrollBehaviorType: \"auto\"\n}\nexport const hashMode = false\nexport default {\n...configRouterOptions,\n...routerOptions0,\n}","import { createError } from \"#app/composables/error\";\nimport { defineNuxtRouteMiddleware } from \"#app/composables/router\";\nexport default defineNuxtRouteMiddleware(async (to, from) => {\n if (!to.meta?.validate) {\n return;\n }\n const result = await Promise.resolve(to.meta.validate(to));\n if (result === true) {\n return;\n }\n const error = createError({\n fatal: import.meta.client,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n status: result && (result.status || result.statusCode) || 404,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n statusText: result && (result.statusText || result.statusMessage) || `Page Not Found: ${to.fullPath}`,\n data: {\n path: to.fullPath\n }\n });\n if (typeof window !== \"undefined\") {\n window.history.pushState({}, \"\", from.fullPath);\n }\n return error;\n});\n","import { hasProtocol } from \"ufo\";\nimport { defineNuxtRouteMiddleware } from \"../composables/router.js\";\nimport { getRouteRules } from \"../composables/manifest.js\";\nexport default defineNuxtRouteMiddleware((to) => {\n if (import.meta.server || import.meta.test) {\n return;\n }\n const rules = getRouteRules({ path: to.path });\n if (rules.redirect) {\n const path = rules.redirect.includes(\"#\") ? rules.redirect : rules.redirect + to.hash;\n if (hasProtocol(path, { acceptRelative: true })) {\n window.location.href = path;\n return false;\n }\n return path;\n }\n});\n","import validate from \"/home/akoo/居家服务/hss-home-service/website/node_modules/nuxt/dist/pages/runtime/validate.js\";\nimport manifest_45route_45rule from \"/home/akoo/居家服务/hss-home-service/website/node_modules/nuxt/dist/app/middleware/route-rules.js\";\nexport const globalMiddleware = [\n validate,\n manifest_45route_45rule\n]\nexport const namedMiddleware = {}","import { isReadonly, reactive, shallowReactive, shallowRef } from \"vue\";\nimport { START_LOCATION, createMemoryHistory, createRouter, createWebHashHistory, createWebHistory } from \"vue-router\";\nimport { isSamePath, withoutBase } from \"ufo\";\nimport { toArray } from \"../utils.js\";\nimport { getRouteRules } from \"#app/composables/manifest\";\nimport { defineNuxtPlugin, useRuntimeConfig } from \"#app/nuxt\";\nimport { clearError, createError, isNuxtError, showError, useError } from \"#app/composables/error\";\nimport { navigateTo } from \"#app/composables/router\";\nimport _routes, { handleHotUpdate } from \"#build/routes\";\nimport routerOptions, { hashMode } from \"#build/router.options.mjs\";\nimport { globalMiddleware, namedMiddleware } from \"#build/middleware\";\nfunction createCurrentLocation(base, location, renderedPath) {\n const { pathname, search, hash } = location;\n const hashPos = base.indexOf(\"#\");\n if (hashPos > -1) {\n const slicePos = hash.includes(base.slice(hashPos)) ? base.slice(hashPos).length : 1;\n let pathFromHash = hash.slice(slicePos);\n if (pathFromHash[0] !== \"/\") {\n pathFromHash = \"/\" + pathFromHash;\n }\n return withoutBase(pathFromHash, \"\");\n }\n const displayedPath = withoutBase(pathname, base);\n const path = !renderedPath || isSamePath(displayedPath, renderedPath) ? displayedPath : renderedPath;\n return path + (path.includes(\"?\") ? \"\" : search) + hash;\n}\nconst plugin = defineNuxtPlugin({\n name: \"nuxt:router\",\n enforce: \"pre\",\n async setup(nuxtApp) {\n let routerBase = useRuntimeConfig().app.baseURL;\n if (hashMode && !routerBase.includes(\"#\")) {\n routerBase += \"#\";\n }\n const history = routerOptions.history?.(routerBase) ?? (import.meta.client ? hashMode ? createWebHashHistory(routerBase) : createWebHistory(routerBase) : createMemoryHistory(routerBase));\n const routes = routerOptions.routes ? await routerOptions.routes(_routes) ?? _routes : _routes;\n let startPosition;\n const router = createRouter({\n ...routerOptions,\n scrollBehavior: (to, from, savedPosition) => {\n if (from === START_LOCATION) {\n startPosition = savedPosition;\n return;\n }\n if (routerOptions.scrollBehavior) {\n router.options.scrollBehavior = routerOptions.scrollBehavior;\n if (\"scrollRestoration\" in window.history) {\n const unsub = router.beforeEach(() => {\n unsub();\n window.history.scrollRestoration = \"manual\";\n });\n }\n return routerOptions.scrollBehavior(to, START_LOCATION, startPosition || savedPosition);\n }\n },\n history,\n routes\n });\n if (import.meta.hot) {\n handleHotUpdate(router, routerOptions.routes ? routerOptions.routes : (routes2) => routes2);\n }\n if (import.meta.client && \"scrollRestoration\" in window.history) {\n window.history.scrollRestoration = \"auto\";\n }\n nuxtApp.vueApp.use(router);\n const previousRoute = shallowRef(router.currentRoute.value);\n router.afterEach((_to, from) => {\n previousRoute.value = from;\n });\n Object.defineProperty(nuxtApp.vueApp.config.globalProperties, \"previousRoute\", {\n get: () => previousRoute.value\n });\n const initialURL = import.meta.server ? nuxtApp.ssrContext.url : createCurrentLocation(routerBase, window.location, nuxtApp.payload.path);\n const _route = shallowRef(router.currentRoute.value);\n const syncCurrentRoute = () => {\n _route.value = router.currentRoute.value;\n };\n router.afterEach((to, from) => {\n const lastTo = to.matched.at(-1)?.components?.default;\n const lastFrom = from.matched.at(-1)?.components?.default;\n if (lastTo === lastFrom) {\n syncCurrentRoute();\n return;\n }\n if (to.matched.length < from.matched.length && to.matched.every((m, i) => m.components?.default === from.matched[i]?.components?.default)) {\n syncCurrentRoute();\n }\n });\n const route = { sync: syncCurrentRoute };\n for (const key in _route.value) {\n Object.defineProperty(route, key, {\n get: () => _route.value[key],\n enumerable: true\n });\n }\n nuxtApp._route = shallowReactive(route);\n nuxtApp._middleware ||= {\n global: [],\n named: {}\n };\n const error = useError();\n if (import.meta.client || !nuxtApp.ssrContext?.islandContext) {\n router.afterEach(async (to, _from, failure) => {\n delete nuxtApp._processingMiddleware;\n if (import.meta.client && !nuxtApp.isHydrating && error.value) {\n await nuxtApp.runWithContext(clearError);\n }\n if (failure) {\n await nuxtApp.callHook(\"page:loading:end\");\n }\n if (import.meta.server && failure?.type === 4) {\n return;\n }\n if (import.meta.server && to.redirectedFrom && to.fullPath !== initialURL) {\n await nuxtApp.runWithContext(() => navigateTo(to.fullPath || \"/\"));\n }\n });\n }\n try {\n if (import.meta.server) {\n await router.push(initialURL);\n }\n await router.isReady();\n } catch (error2) {\n await nuxtApp.runWithContext(() => showError(error2));\n }\n const resolvedInitialRoute = import.meta.client && initialURL !== router.currentRoute.value.fullPath ? router.resolve(initialURL) : router.currentRoute.value;\n const hasDeferredRoute = import.meta.client && nuxtApp.isHydrating && nuxtApp.payload.prerenderedAt && nuxtApp.payload.path && initialURL !== nuxtApp.payload.path && isSamePath(router.currentRoute.value.path, nuxtApp.payload.path);\n syncCurrentRoute();\n if (import.meta.server && nuxtApp.ssrContext?.islandContext) {\n return { provide: { router } };\n }\n const initialLayout = nuxtApp.payload.state._layout;\n router.beforeEach(async (to, from) => {\n await nuxtApp.callHook(\"page:loading:start\");\n to.meta = reactive(to.meta);\n if (nuxtApp.isHydrating && initialLayout && !isReadonly(to.meta.layout)) {\n to.meta.layout = initialLayout;\n }\n nuxtApp._processingMiddleware = true;\n if (import.meta.client || !nuxtApp.ssrContext?.islandContext) {\n const middlewareEntries = /* @__PURE__ */ new Set([...globalMiddleware, ...nuxtApp._middleware.global]);\n for (const component of to.matched) {\n const componentMiddleware = component.meta.middleware;\n if (!componentMiddleware) {\n continue;\n }\n for (const entry of toArray(componentMiddleware)) {\n middlewareEntries.add(entry);\n }\n }\n const routeRules = getRouteRules({ path: to.path });\n if (routeRules.appMiddleware) {\n for (const key in routeRules.appMiddleware) {\n if (routeRules.appMiddleware[key]) {\n middlewareEntries.add(key);\n } else {\n middlewareEntries.delete(key);\n }\n }\n }\n for (const entry of middlewareEntries) {\n const middleware = typeof entry === \"string\" ? nuxtApp._middleware.named[entry] || await namedMiddleware[entry]?.().then((r) => r.default || r) : entry;\n if (!middleware) {\n if (import.meta.dev) {\n throw new Error(`Unknown route middleware: '${entry}'. Valid middleware: ${Object.keys(namedMiddleware).map((mw) => `'${mw}'`).join(\", \")}.`);\n }\n throw new Error(`Unknown route middleware: '${entry}'.`);\n }\n try {\n if (import.meta.dev) {\n nuxtApp._processingMiddleware = middleware._path || (typeof entry === \"string\" ? entry : true);\n }\n const result = await nuxtApp.runWithContext(() => middleware(to, from));\n if (import.meta.server || !nuxtApp.payload.serverRendered && nuxtApp.isHydrating) {\n if (result === false || result instanceof Error) {\n const error2 = result || createError({\n status: 404,\n statusText: `Page Not Found: ${initialURL}`\n });\n await nuxtApp.runWithContext(() => showError(error2));\n return false;\n }\n }\n if (result === true) {\n continue;\n }\n if (result === false) {\n return result;\n }\n if (result) {\n if (isNuxtError(result) && result.fatal) {\n await nuxtApp.runWithContext(() => showError(result));\n }\n return result;\n }\n } catch (err) {\n const error2 = createError(err);\n if (error2.fatal) {\n await nuxtApp.runWithContext(() => showError(error2));\n }\n return error2;\n }\n }\n }\n });\n router.onError(async () => {\n delete nuxtApp._processingMiddleware;\n await nuxtApp.callHook(\"page:loading:end\");\n });\n router.afterEach((to) => {\n if (to.matched.length === 0 && !error.value) {\n return nuxtApp.runWithContext(() => showError(createError({\n status: 404,\n fatal: false,\n statusText: `Page not found: ${to.fullPath}`,\n data: {\n path: to.fullPath\n }\n })));\n }\n });\n nuxtApp.hooks.hookOnce(\"app:created\", async () => {\n try {\n if (\"name\" in resolvedInitialRoute) {\n resolvedInitialRoute.name = void 0;\n }\n if (hasDeferredRoute) {\n const payloadRoute = router.resolve(nuxtApp.payload.path);\n if (\"name\" in payloadRoute) {\n payloadRoute.name = void 0;\n }\n await router.replace({ ...payloadRoute, force: true });\n nuxtApp.hooks.hookOnce(\"app:suspense:resolve\", async () => {\n await router.replace({ ...resolvedInitialRoute, force: true });\n });\n } else {\n await router.replace({\n ...resolvedInitialRoute,\n force: true\n });\n }\n router.options.scrollBehavior = routerOptions.scrollBehavior;\n } catch (error2) {\n await nuxtApp.runWithContext(() => showError(error2));\n }\n });\n return { provide: { router } };\n }\n});\nexport default plugin;\n","import { hasProtocol, joinURL } from \"ufo\";\nimport { parse } from \"devalue\";\nimport { getCurrentInstance, onServerPrefetch, reactive } from \"vue\";\nimport { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { useHead } from \"./head.js\";\nimport { useRoute } from \"./router.js\";\nimport { getAppManifest, getRouteRules } from \"./manifest.js\";\nimport { appId, appManifest, multiApp, payloadExtraction, renderJsonPayloads } from \"#build/nuxt.config.mjs\";\nexport async function loadPayload(url, opts = {}) {\n if (import.meta.server || !payloadExtraction) {\n return null;\n }\n if (await shouldLoadPayload(url)) {\n const payloadURL = await _getPayloadURL(url, opts);\n return await _importPayload(payloadURL) || null;\n }\n return null;\n}\nlet linkRelType;\nfunction detectLinkRelType() {\n if (import.meta.server) {\n return \"preload\";\n }\n if (linkRelType) {\n return linkRelType;\n }\n const relList = document.createElement(\"link\").relList;\n linkRelType = relList && relList.supports && relList.supports(\"prefetch\") ? \"prefetch\" : \"preload\";\n return linkRelType;\n}\nexport function preloadPayload(url, opts = {}) {\n const nuxtApp = useNuxtApp();\n const promise = shouldLoadPayload(url).then(async (shouldPreload) => {\n if (!shouldPreload) {\n return;\n }\n const payloadURL = await _getPayloadURL(url, opts);\n const link = renderJsonPayloads ? { rel: detectLinkRelType(), as: \"fetch\", crossorigin: \"anonymous\", href: payloadURL } : { rel: \"modulepreload\", crossorigin: \"\", href: payloadURL };\n if (import.meta.server) {\n nuxtApp.runWithContext(() => useHead({ link: [link] }));\n } else {\n const linkEl = document.createElement(\"link\");\n for (const key of Object.keys(link)) {\n linkEl[key === \"crossorigin\" ? \"crossOrigin\" : key] = link[key];\n }\n document.head.appendChild(linkEl);\n return new Promise((resolve, reject) => {\n linkEl.addEventListener(\"load\", () => resolve());\n linkEl.addEventListener(\"error\", () => reject());\n });\n }\n });\n if (import.meta.server) {\n onServerPrefetch(() => promise);\n }\n return promise;\n}\nconst filename = renderJsonPayloads ? \"_payload.json\" : \"_payload.js\";\nasync function _getPayloadURL(url, opts = {}) {\n const u = new URL(url, \"http://localhost\");\n if (u.host !== \"localhost\" || hasProtocol(u.pathname, { acceptRelative: true })) {\n throw new Error(\"Payload URL must not include hostname: \" + url);\n }\n const config = useRuntimeConfig();\n const hash = opts.hash || (opts.fresh || import.meta.dev ? Date.now() : config.app.buildId);\n const cdnURL = config.app.cdnURL;\n const baseOrCdnURL = cdnURL && await isPrerendered(url) ? cdnURL : config.app.baseURL;\n return joinURL(baseOrCdnURL, u.pathname, filename + (hash ? `?${hash}` : \"\"));\n}\nasync function _importPayload(payloadURL) {\n if (import.meta.server || !payloadExtraction) {\n return null;\n }\n try {\n if (renderJsonPayloads) {\n const res = await fetch(payloadURL, import.meta.dev ? {} : { cache: \"force-cache\" });\n if (!res.ok) {\n if (import.meta.dev) {\n console.warn(`[nuxt] Cannot load payload ${payloadURL}: ${res.status} ${res.statusText}`);\n }\n return null;\n }\n return await parsePayload(await res.text());\n } else {\n return await import(\n /* webpackIgnore: true */\n /* @vite-ignore */\n payloadURL\n ).then((r) => r.default || r);\n }\n } catch (err) {\n console.warn(\"[nuxt] Cannot load payload \", payloadURL, err);\n }\n return null;\n}\nfunction _shouldLoadPrerenderedPayload(rules) {\n if (rules.redirect) {\n return false;\n }\n if (rules.prerender) {\n return true;\n }\n}\nasync function _isPrerenderedInManifest(url) {\n if (!appManifest) {\n return false;\n }\n url = url === \"/\" ? url : url.replace(/\\/$/, \"\");\n const manifest = await getAppManifest();\n return manifest.prerendered.includes(url);\n}\nexport async function shouldLoadPayload(url = useRoute().path) {\n const rules = getRouteRules({ path: url });\n if (rules.ssr === false) {\n return false;\n }\n const res = _shouldLoadPrerenderedPayload(rules);\n if (res !== void 0) {\n return res;\n }\n if (rules.payload) {\n return true;\n }\n const prerendered = await _isPrerenderedInManifest(url);\n return prerendered;\n}\nexport async function isPrerendered(url = useRoute().path) {\n const res = _shouldLoadPrerenderedPayload(getRouteRules({ path: url }));\n if (res !== void 0) {\n return res;\n }\n const prerendered = await _isPrerenderedInManifest(url);\n return prerendered;\n}\nlet payloadCache = null;\nexport async function getNuxtClientPayload() {\n if (import.meta.server) {\n return null;\n }\n if (payloadCache) {\n return payloadCache;\n }\n const el = multiApp ? document.querySelector(`[data-nuxt-data=\"${appId}\"]`) : document.getElementById(\"__NUXT_DATA__\");\n if (!el) {\n return {};\n }\n const inlineData = await parsePayload(el.textContent || \"\");\n const externalData = el.dataset.src ? await _importPayload(el.dataset.src) : void 0;\n payloadCache = {\n ...inlineData,\n ...externalData,\n ...multiApp ? window.__NUXT__?.[appId] : window.__NUXT__\n };\n if (payloadCache.config?.public) {\n payloadCache.config.public = reactive(payloadCache.config.public);\n }\n return payloadCache;\n}\nexport async function parsePayload(payload) {\n return await parse(payload, useNuxtApp()._payloadRevivers);\n}\nexport function definePayloadReducer(name, reduce) {\n if (import.meta.server) {\n useNuxtApp().ssrContext[\"~payloadReducers\"][name] = reduce;\n }\n}\nexport function definePayloadReviver(name, revive) {\n if (import.meta.dev && getCurrentInstance()) {\n console.warn(\"[nuxt] [definePayloadReviver] This function must be called in a Nuxt plugin that is `unshift`ed to the beginning of the Nuxt plugins array.\");\n }\n if (import.meta.client) {\n useNuxtApp()._payloadRevivers[name] = revive;\n }\n}\n","import { isReactive, isRef, isShallow, toRaw } from \"vue\";\nimport { definePayloadReducer } from \"../composables/payload.js\";\nimport { isNuxtError } from \"../composables/error.js\";\nimport { defineNuxtPlugin } from \"../nuxt.js\";\nimport { componentIslands } from \"#build/nuxt.config.mjs\";\nimport { isValidIslandKey } from \"./utils.js\";\nconst reducers = [\n [\"NuxtError\", (data) => isNuxtError(data) && data.toJSON()],\n [\"EmptyShallowRef\", (data) => isRef(data) && isShallow(data) && !data.value && (typeof data.value === \"bigint\" ? \"0n\" : JSON.stringify(data.value) || \"_\")],\n [\"EmptyRef\", (data) => isRef(data) && !data.value && (typeof data.value === \"bigint\" ? \"0n\" : JSON.stringify(data.value) || \"_\")],\n [\"ShallowRef\", (data) => isRef(data) && isShallow(data) && data.value],\n [\"ShallowReactive\", (data) => isReactive(data) && isShallow(data) && toRaw(data)],\n [\"Ref\", (data) => isRef(data) && data.value],\n [\"Reactive\", (data) => isReactive(data) && toRaw(data)]\n];\nif (componentIslands) {\n reducers.push([\"Island\", (data) => data && data?.__nuxt_island && isValidIslandKey(data.__nuxt_island.key) && data.__nuxt_island]);\n}\nexport default defineNuxtPlugin({\n name: \"nuxt:revive-payload:server\",\n setup() {\n for (const [reducer, fn] of reducers) {\n definePayloadReducer(reducer, fn);\n }\n }\n});\n","\nimport { defineNuxtPlugin } from '#app/nuxt'\nexport default defineNuxtPlugin({\n name: 'nuxt:global-components',\n})\n","import { setResponseStatus as _setResponseStatus, appendHeader, getRequestHeader, getRequestHeaders, getResponseHeader, removeResponseHeader, setResponseHeader } from \"h3\";\nimport { computed, getCurrentInstance, ref } from \"vue\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { toArray } from \"../utils.js\";\nimport { useHead } from \"./head.js\";\nexport function useRequestEvent(nuxtApp) {\n if (import.meta.client) {\n return;\n }\n nuxtApp ||= useNuxtApp();\n return nuxtApp.ssrContext?.event;\n}\nexport function useRequestHeaders(include) {\n if (import.meta.client) {\n return {};\n }\n const event = useRequestEvent();\n const _headers = event ? getRequestHeaders(event) : {};\n if (!include || !event) {\n return _headers;\n }\n const headers = /* @__PURE__ */ Object.create(null);\n for (const _key of include) {\n const key = _key.toLowerCase();\n const header = _headers[key];\n if (header) {\n headers[key] = header;\n }\n }\n return headers;\n}\nexport function useRequestHeader(header) {\n if (import.meta.client) {\n return void 0;\n }\n const event = useRequestEvent();\n return event ? getRequestHeader(event, header) : void 0;\n}\nexport function useRequestFetch() {\n if (import.meta.client) {\n return globalThis.$fetch;\n }\n return useRequestEvent()?.$fetch || globalThis.$fetch;\n}\nexport function setResponseStatus(arg1, arg2, arg3) {\n if (import.meta.client) {\n return;\n }\n if (arg1 && typeof arg1 !== \"number\") {\n return _setResponseStatus(arg1, arg2, arg3);\n }\n const event = useRequestEvent();\n if (event) {\n return _setResponseStatus(event, arg1, arg2);\n }\n}\nexport function useResponseHeader(header) {\n if (import.meta.client) {\n if (import.meta.dev) {\n return computed({\n get: () => void 0,\n set: () => console.warn(\"[nuxt] Setting response headers is not supported in the browser.\")\n });\n }\n return ref();\n }\n const event = useRequestEvent();\n return computed({\n get() {\n return getResponseHeader(event, header);\n },\n set(newValue) {\n if (!newValue) {\n return removeResponseHeader(event, header);\n }\n return setResponseHeader(event, header, newValue);\n }\n });\n}\nexport function prerenderRoutes(path) {\n if (!import.meta.server || !import.meta.prerender) {\n return;\n }\n const paths = toArray(path);\n appendHeader(useRequestEvent(), \"x-nitro-prerender\", paths.map((p) => encodeURIComponent(p)).join(\", \"));\n}\nconst PREHYDRATE_ATTR_KEY = \"data-prehydrate-id\";\nexport function onPrehydrate(callback, key) {\n if (import.meta.client) {\n return;\n }\n if (typeof callback !== \"string\") {\n throw new TypeError(\"[nuxt] To transform a callback into a string, `onPrehydrate` must be processed by the Nuxt build pipeline. If it is called in a third-party library, make sure to add the library to `build.transpile`.\");\n }\n const vm = getCurrentInstance();\n if (vm && key) {\n vm.attrs[PREHYDRATE_ATTR_KEY] ||= \"\";\n key = \":\" + key + \":\";\n if (!vm.attrs[PREHYDRATE_ATTR_KEY].includes(key)) {\n vm.attrs[PREHYDRATE_ATTR_KEY] += key;\n }\n }\n const code = vm && key ? `document.querySelectorAll('[${PREHYDRATE_ATTR_KEY}*=${JSON.stringify(key)}]').forEach` + callback : callback + \"()\";\n useHead({\n script: [{\n key: vm && key ? key : void 0,\n tagPosition: \"bodyClose\",\n tagPriority: \"critical\",\n innerHTML: code\n }]\n });\n return vm && key ? vm.attrs[PREHYDRATE_ATTR_KEY] : void 0;\n}\n","import { joinURL } from \"ufo\";\nimport { defineNuxtPlugin } from \"#app/nuxt\";\nimport { prerenderRoutes } from \"#app/composables/ssr\";\nimport _routes from \"#build/routes\";\nimport routerOptions, { hashMode } from \"#build/router.options.mjs\";\nimport { crawlLinks } from \"#build/nuxt.config.mjs\";\nimport _routeRulesMatcher from \"#build/route-rules.mjs\";\nconst routeRulesMatcher = _routeRulesMatcher;\nlet routes;\nexport default defineNuxtPlugin(async () => {\n if (!import.meta.server || !import.meta.prerender || hashMode) {\n return;\n }\n if (routes && !routes.length) {\n return;\n }\n routes ||= Array.from(processRoutes(await routerOptions.routes?.(_routes) ?? _routes));\n const batch = routes.splice(0, 10);\n prerenderRoutes(batch);\n});\nconst OPTIONAL_PARAM_RE = /^\\/?:.*(?:\\?|\\(\\.\\*\\)\\*)$/;\nfunction shouldPrerender(path) {\n return crawlLinks || !!routeRulesMatcher(path).prerender;\n}\nfunction processRoutes(routes2, currentPath = \"/\", routesToPrerender = /* @__PURE__ */ new Set()) {\n for (const route of routes2) {\n if (OPTIONAL_PARAM_RE.test(route.path) && !route.children?.length && shouldPrerender(currentPath)) {\n routesToPrerender.add(currentPath);\n }\n if (route.path.includes(\":\")) {\n continue;\n }\n const fullPath = joinURL(currentPath, route.path);\n if (shouldPrerender(fullPath)) {\n routesToPrerender.add(fullPath);\n }\n if (route.children) {\n processRoutes(route.children, fullPath, routesToPrerender);\n }\n }\n return routesToPrerender;\n}\n","import unhead_k2P3m_ZDyjlr2mMYnoDPwavjsDN8hBlk9cFai0bbopU from \"/home/akoo/居家服务/hss-home-service/website/node_modules/nuxt/dist/head/runtime/plugins/unhead.js\";\nimport router_GNCWhvtYfLTYRZZ135CdFAEjxdMexN0ixiUYCAN_tpw from \"/home/akoo/居家服务/hss-home-service/website/node_modules/nuxt/dist/pages/runtime/plugins/router.js\";\nimport revive_payload_server_MVtmlZaQpj6ApFmshWfUWl5PehCebzaBf2NuRMiIbms from \"/home/akoo/居家服务/hss-home-service/website/node_modules/nuxt/dist/app/plugins/revive-payload.server.js\";\nimport components_plugin_z4hgvsiddfKkfXTP6M8M4zG5Cb7sGnDhcryKVM45Di4 from \"/home/akoo/居家服务/hss-home-service/website/.nuxt/components.plugin.mjs\";\nimport prerender_server_sqIxOBipVr4FbVMA9kqWL0wT8FPop6sKAXLVfifsJzk from \"/home/akoo/居家服务/hss-home-service/website/node_modules/nuxt/dist/pages/runtime/plugins/prerender.server.js\";\nexport default [\n unhead_k2P3m_ZDyjlr2mMYnoDPwavjsDN8hBlk9cFai0bbopU,\n router_GNCWhvtYfLTYRZZ135CdFAEjxdMexN0ixiUYCAN_tpw,\n revive_payload_server_MVtmlZaQpj6ApFmshWfUWl5PehCebzaBf2NuRMiIbms,\n components_plugin_z4hgvsiddfKkfXTP6M8M4zG5Cb7sGnDhcryKVM45Di4,\n prerender_server_sqIxOBipVr4FbVMA9kqWL0wT8FPop6sKAXLVfifsJzk\n]","import { computed, defineComponent, h, inject, onBeforeUnmount, onMounted, provide, ref, resolveComponent, shallowRef, unref } from \"vue\";\nimport { hasProtocol, joinURL, parseQuery, withTrailingSlash, withoutTrailingSlash } from \"ufo\";\nimport { preloadRouteComponents } from \"../composables/preload.js\";\nimport { onNuxtReady } from \"../composables/ready.js\";\nimport { encodeRoutePath, navigateTo, resolveRouteObject, useRouter } from \"../composables/router.js\";\nimport { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { cancelIdleCallback, requestIdleCallback } from \"../compat/idle-callback.js\";\nimport { nuxtLinkDefaults } from \"#build/nuxt.config.mjs\";\nimport { hashMode } from \"#build/router.options.mjs\";\nconst firstNonUndefined = (...args) => args.find((arg) => arg !== void 0);\nconst NuxtLinkDevKeySymbol = Symbol(\"nuxt-link-dev-key\");\n// @__NO_SIDE_EFFECTS__\nexport function defineNuxtLink(options) {\n const componentName = options.componentName || \"NuxtLink\";\n function checkPropConflicts(props, main, sub) {\n if (import.meta.dev && props[main] !== void 0 && props[sub] !== void 0) {\n console.warn(`[${componentName}] \\`${main}\\` and \\`${sub}\\` cannot be used together. \\`${sub}\\` will be ignored.`);\n }\n }\n function isHashLinkWithoutHashMode(link) {\n return !hashMode && typeof link === \"string\" && link.startsWith(\"#\");\n }\n function resolveTrailingSlashBehavior(to, resolve, trailingSlash) {\n const effectiveTrailingSlash = trailingSlash ?? options.trailingSlash;\n if (!to || effectiveTrailingSlash !== \"append\" && effectiveTrailingSlash !== \"remove\") {\n return to;\n }\n if (typeof to === \"string\") {\n return applyTrailingSlashBehavior(to, effectiveTrailingSlash);\n }\n const path = \"path\" in to && to.path !== void 0 ? to.path : resolve(to).path;\n const resolvedPath = {\n ...to,\n name: void 0,\n // named routes would otherwise always override trailing slash behavior\n path: applyTrailingSlashBehavior(path, effectiveTrailingSlash)\n };\n return resolvedPath;\n }\n function useNuxtLink(props) {\n const router = useRouter();\n const config = useRuntimeConfig();\n const hasTarget = computed(() => !!unref(props.target) && unref(props.target) !== \"_self\");\n const isAbsoluteUrl = computed(() => {\n const path = unref(props.to) || unref(props.href) || \"\";\n return typeof path === \"string\" && hasProtocol(path, { acceptRelative: true });\n });\n const builtinRouterLink = resolveComponent(\"RouterLink\");\n const useBuiltinLink = builtinRouterLink && typeof builtinRouterLink !== \"string\" ? builtinRouterLink.useLink : void 0;\n const isExternal = computed(() => {\n if (unref(props.external)) {\n return true;\n }\n const path = unref(props.to) || unref(props.href) || \"\";\n if (typeof path === \"object\") {\n return false;\n }\n return path === \"\" || isAbsoluteUrl.value;\n });\n const to = computed(() => {\n checkPropConflicts(props, \"to\", \"href\");\n const path = unref(props.to) || unref(props.href) || \"\";\n if (isExternal.value) {\n return path;\n }\n return resolveTrailingSlashBehavior(path, router.resolve, unref(props.trailingSlash));\n });\n const link = isExternal.value ? void 0 : useBuiltinLink?.({ ...props, to, viewTransition: unref(props.viewTransition) });\n const href = computed(() => {\n const effectiveTrailingSlash = unref(props.trailingSlash) ?? options.trailingSlash;\n if (!to.value || isAbsoluteUrl.value || isHashLinkWithoutHashMode(to.value)) {\n return to.value;\n }\n if (isExternal.value) {\n const path = typeof to.value === \"object\" && \"path\" in to.value ? resolveRouteObject(to.value) : to.value;\n const href2 = typeof path === \"object\" ? router.resolve(path).href : path;\n return applyTrailingSlashBehavior(href2, effectiveTrailingSlash);\n }\n if (typeof to.value === \"object\") {\n return router.resolve(to.value)?.href ?? null;\n }\n return applyTrailingSlashBehavior(joinURL(config.app.baseURL, to.value), effectiveTrailingSlash);\n });\n return {\n to,\n hasTarget,\n isAbsoluteUrl,\n isExternal,\n //\n href,\n isActive: link?.isActive ?? computed(() => to.value === router.currentRoute.value.path),\n isExactActive: link?.isExactActive ?? computed(() => to.value === router.currentRoute.value.path),\n route: link?.route ?? computed(() => router.resolve(to.value)),\n async navigate(_e) {\n await navigateTo(href.value, { replace: unref(props.replace), external: isExternal.value || hasTarget.value });\n }\n };\n }\n return defineComponent({\n name: componentName,\n props: {\n // Routing\n to: {\n type: [String, Object],\n default: void 0,\n required: false\n },\n href: {\n type: [String, Object],\n default: void 0,\n required: false\n },\n // Attributes\n target: {\n type: String,\n default: void 0,\n required: false\n },\n rel: {\n type: String,\n default: void 0,\n required: false\n },\n noRel: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Prefetching\n prefetch: {\n type: Boolean,\n default: void 0,\n required: false\n },\n prefetchOn: {\n type: [String, Object],\n default: void 0,\n required: false\n },\n noPrefetch: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Styling\n activeClass: {\n type: String,\n default: void 0,\n required: false\n },\n exactActiveClass: {\n type: String,\n default: void 0,\n required: false\n },\n prefetchedClass: {\n type: String,\n default: void 0,\n required: false\n },\n // Vue Router's `<RouterLink>` additional props\n replace: {\n type: Boolean,\n default: void 0,\n required: false\n },\n ariaCurrentValue: {\n type: String,\n default: void 0,\n required: false\n },\n // Edge cases handling\n external: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Slot API\n custom: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Behavior\n trailingSlash: {\n type: String,\n default: void 0,\n required: false\n }\n },\n useLink: useNuxtLink,\n setup(props, { slots }) {\n const router = useRouter();\n const { to, href, navigate, isExternal, hasTarget, isAbsoluteUrl } = useNuxtLink(props);\n const prefetched = shallowRef(false);\n const el = import.meta.server ? void 0 : ref(null);\n const elRef = import.meta.server ? void 0 : (ref2) => {\n el.value = props.custom ? ref2?.$el?.nextElementSibling : ref2?.$el;\n };\n function shouldPrefetch(mode) {\n if (import.meta.server) {\n return;\n }\n return !prefetched.value && (typeof props.prefetchOn === \"string\" ? props.prefetchOn === mode : props.prefetchOn?.[mode] ?? options.prefetchOn?.[mode]) && (props.prefetch ?? options.prefetch) !== false && props.noPrefetch !== true && props.target !== \"_blank\" && !isSlowConnection();\n }\n async function prefetch(nuxtApp = useNuxtApp()) {\n if (import.meta.server) {\n return;\n }\n if (prefetched.value) {\n return;\n }\n prefetched.value = true;\n const path = typeof to.value === \"string\" ? to.value : isExternal.value ? resolveRouteObject(to.value) : router.resolve(to.value).fullPath;\n const normalizedPath = isExternal.value ? new URL(path, window.location.href).href : path;\n await Promise.all([\n nuxtApp.hooks.callHook(\"link:prefetch\", normalizedPath).catch(() => {\n }),\n !import.meta.dev && !isExternal.value && !hasTarget.value && preloadRouteComponents(to.value, router).catch(() => {\n })\n ]);\n }\n if (import.meta.client) {\n checkPropConflicts(props, \"noPrefetch\", \"prefetch\");\n if (shouldPrefetch(\"visibility\")) {\n const nuxtApp = useNuxtApp();\n let idleId;\n let unobserve = null;\n onMounted(() => {\n const observer = useObserver();\n onNuxtReady(() => {\n idleId = requestIdleCallback(() => {\n if (el?.value?.tagName) {\n unobserve = observer.observe(el.value, async () => {\n unobserve?.();\n unobserve = null;\n await prefetch(nuxtApp);\n });\n }\n });\n });\n });\n onBeforeUnmount(() => {\n if (idleId) {\n cancelIdleCallback(idleId);\n }\n unobserve?.();\n unobserve = null;\n });\n }\n }\n if (import.meta.dev && import.meta.server && !props.custom) {\n const isNuxtLinkChild = inject(NuxtLinkDevKeySymbol, false);\n if (isNuxtLinkChild) {\n console.log(\"[nuxt] [NuxtLink] You can't nest one <a> inside another <a>. This will cause a hydration error on client-side. You can pass the `custom` prop to take full control of the markup.\");\n } else {\n provide(NuxtLinkDevKeySymbol, true);\n }\n }\n return () => {\n if (!isExternal.value && !hasTarget.value && !isHashLinkWithoutHashMode(to.value)) {\n const routerLinkProps = {\n ref: elRef,\n to: to.value,\n activeClass: props.activeClass || options.activeClass,\n exactActiveClass: props.exactActiveClass || options.exactActiveClass,\n replace: props.replace,\n ariaCurrentValue: props.ariaCurrentValue,\n custom: props.custom\n };\n if (!props.custom) {\n if (import.meta.client) {\n if (shouldPrefetch(\"interaction\")) {\n routerLinkProps.onPointerenter = prefetch.bind(null, void 0);\n routerLinkProps.onFocus = prefetch.bind(null, void 0);\n }\n if (prefetched.value) {\n routerLinkProps.class = props.prefetchedClass || options.prefetchedClass;\n }\n }\n routerLinkProps.rel = props.rel || void 0;\n }\n return h(\n resolveComponent(\"RouterLink\"),\n routerLinkProps,\n slots.default\n );\n }\n const target = props.target || null;\n checkPropConflicts(props, \"noRel\", \"rel\");\n const rel = firstNonUndefined(\n // converts `\"\"` to `null` to prevent the attribute from being added as empty (`rel=\"\"`)\n props.noRel ? \"\" : props.rel,\n options.externalRelAttribute,\n /*\n * A fallback rel of `noopener noreferrer` is applied for external links or links that open in a new tab.\n * This solves a reverse tabnapping security flaw in browsers pre-2021 as well as improving privacy.\n */\n isAbsoluteUrl.value || hasTarget.value ? \"noopener noreferrer\" : \"\"\n ) || null;\n if (props.custom) {\n if (!slots.default) {\n return null;\n }\n return slots.default({\n href: href.value,\n navigate,\n prefetch,\n get route() {\n if (!href.value) {\n return void 0;\n }\n const url = new URL(href.value, import.meta.client ? window.location.href : \"http://localhost\");\n return {\n path: url.pathname,\n fullPath: url.pathname,\n get query() {\n return parseQuery(url.search);\n },\n hash: url.hash,\n params: {},\n name: void 0,\n matched: [],\n redirectedFrom: void 0,\n meta: {},\n href: href.value\n };\n },\n rel,\n target,\n isExternal: isExternal.value || hasTarget.value,\n isActive: false,\n isExactActive: false\n });\n }\n return h(\"a\", {\n ref: el,\n href: href.value || null,\n // converts `\"\"` to `null` to prevent the attribute from being added as empty (`href=\"\"`)\n rel,\n target,\n onClick: async (event) => {\n if (isExternal.value || hasTarget.value) {\n return;\n }\n event.preventDefault();\n try {\n const encodedHref = encodeRoutePath(href.value);\n return await (props.replace ? router.replace(encodedHref) : router.push(encodedHref));\n } finally {\n if (import.meta.client && isHashLinkWithoutHashMode(to.value)) {\n const rawHash = to.value.slice(1);\n let hash = rawHash;\n try {\n hash = decodeURIComponent(rawHash);\n } catch {\n }\n const el2 = document.getElementById(hash);\n el2?.focus();\n }\n }\n }\n }, slots.default?.());\n };\n }\n });\n}\nexport default /* @__PURE__ */ defineNuxtLink(nuxtLinkDefaults);\nfunction applyTrailingSlashBehavior(to, trailingSlash) {\n const normalizeFn = trailingSlash === \"append\" ? withTrailingSlash : withoutTrailingSlash;\n const hasProtocolDifferentFromHttp = hasProtocol(to) && !to.startsWith(\"http\");\n if (hasProtocolDifferentFromHttp) {\n return to;\n }\n return normalizeFn(to, true);\n}\nfunction useObserver() {\n if (import.meta.server) {\n return;\n }\n const nuxtApp = useNuxtApp();\n if (nuxtApp._observer) {\n return nuxtApp._observer;\n }\n let observer = null;\n const callbacks = /* @__PURE__ */ new Map();\n const observe = (element, callback) => {\n observer ||= new IntersectionObserver((entries) => {\n for (const entry of entries) {\n const callback2 = callbacks.get(entry.target);\n const isVisible = entry.isIntersecting || entry.intersectionRatio > 0;\n if (isVisible && callback2) {\n callback2();\n }\n }\n });\n callbacks.set(element, callback);\n observer.observe(element);\n return () => {\n callbacks.delete(element);\n observer?.unobserve(element);\n if (callbacks.size === 0) {\n observer?.disconnect();\n observer = null;\n }\n };\n };\n const _observer = nuxtApp._observer = {\n observe\n };\n return _observer;\n}\nconst IS_2G_RE = /2g/;\nfunction isSlowConnection() {\n if (import.meta.server) {\n return;\n }\n const cn = navigator.connection;\n if (cn && (cn.saveData || IS_2G_RE.test(cn.effectiveType))) {\n return true;\n }\n return false;\n}\n","export const siteName = '智慧医养居家上门服务平台'\nexport const siteTagline = '面向政府、医院与养老机构的智慧医养居家上门服务闭环管理平台'\nexport const siteDescription = '覆盖申请受理、能力评估、方案制定、智能派单、上门执行、过程监管、验收评价、结算归档全流程,帮助机构实现服务可监管、过程可追溯、质量可评价、费用可结算。'\n\nexport const navMenus = [\n { label: '首页', to: '/' },\n { label: '平台演示', to: '/demo' },\n { label: '解决方案', to: '/solution' },\n { label: '核心能力', to: '/capabilities' },\n { label: '应用场景', to: '/scenarios' },\n { label: '服务闭环', to: '/service-loop' },\n { label: '安全合规', to: '/security' },\n { label: '资源中心', to: '/resources' },\n { label: '关于我们', to: '/about' },\n { label: '联系我们', to: '/contact' },\n]\n\nexport const painPoints = [\n { title: '申请受理难', desc: '多渠道申请分散,材料收集靠纸质,资格校验靠人工,效率低且容易遗漏。' },\n { title: '派单调度难', desc: '依赖人工经验派单,不考虑资质、区域、负载匹配,冲突和超时频发。' },\n { title: '过程监管难', desc: '服务过程不可见,GPS签到、执行记录、证据链缺失,质量无法保证。' },\n]\n\nexport const capabilities = [\n { icon: 'clipboard', title: '需求受理', desc: '多渠道统一接入,自动校验材料、资格与重复申请' },\n { icon: 'health', title: '能力评估', desc: '上门评估定级,GPS签到+现场拍照,护理等级与风险评估' },\n { icon: 'document', title: '方案制定', desc: '评估驱动、费用透明计算、长护险抵扣、签署版本化管理' },\n { icon: 'rocket', title: '智能派单', desc: '硬约束过滤+软约束评分,推荐Top5并附带匹配解释' },\n { icon: 'check', title: '上门执行', desc: 'GPS签到校验、项目级执行记录、图文音视频证据链留存' },\n { icon: 'eye', title: '过程监管', desc: '抽查计划、违规记录、整改跟踪、审计日志全流程可追溯' },\n { icon: 'star', title: '验收评价', desc: '星级评分、标签评价、语音评价,评分影响后续派单优先级' },\n { icon: 'money', title: '结算归档', desc: '方案价→执行记录→验收→支付→归档,全链路金额可追溯' },\n]\n\nexport const scenarios = [\n { title: '政府监管', desc: '为民政/卫健部门提供居家养老服务全流程监管能力', icon: 'government' },\n { title: '医院延续护理', desc: '院后居家照护服务延伸,提升连续照护能力', icon: 'hospital' },\n { title: '养老机构', desc: '规范化派单、服务执行、质量评价和人员管理', icon: 'home' },\n { title: '社区服务中心', desc: '社区居家照护派单、上门服务和数据上报', icon: 'community' },\n { title: '长护险管理', desc: '长护险服务过程监管、费用结算和合规审计', icon: 'shield' },\n]\n\nexport const securityItems = [\n { title: 'RBAC权限体系', desc: '功能权限+数据范围+字段权限+操作审计,四级控制' },\n { title: '数据分类分级', desc: '个人身份、敏感健康、行踪轨迹、财务数据分级管控' },\n { title: '授权同意管理', desc: 'GPS定位、照片、录音录像、健康信息采集前必须记录授权' },\n { title: '审计日志追溯', desc: '所有状态流转、敏感数据访问、高风险操作只追加不删除' },\n { title: '脱敏展示', desc: '姓名、手机号、身份证、地址按角色分级脱敏' },\n { title: '合规留痕', desc: '评估报告、方案快照、签署记录、支付凭证版本化管理' },\n]\n\nexport const metrics = [\n { label: '服务完成率', value: '≥90%', desc: '正常完成工单占比' },\n { label: '签到合规率', value: '≥95%', desc: 'GPS签到合格率' },\n { label: '异常工单率', value: '≤5%', desc: '异常上报占比' },\n { label: '满意度评分', value: '≥4.5', desc: '服务对象平均评分' },\n]\n\nexport const footerLinks = {\n solutions: [\n { label: '解决方案', to: '/solution' },\n { label: '核心能力', to: '/capabilities' },\n { label: '服务闭环', to: '/service-loop' },\n ],\n scenarios: [\n { label: '应用场景', to: '/scenarios' },\n { label: '安全合规', to: '/security' },\n { label: '资源中心', to: '/resources' },\n ],\n company: [\n { label: '关于我们', to: '/about' },\n { label: '联系我们', to: '/contact' },\n ],\n}\n","<script setup lang=\"ts\">\nimport { ref } from 'vue'\nimport { navMenus, siteName } from '~/data/siteContent'\nconst mobileOpen = ref(false)\nconst config = useRuntimeConfig()\nconst loginUrl = config.public.platformLoginUrl as string\n</script>\n\n<template>\n <header class=\"sticky top-0 z-50 bg-white/95 backdrop-blur border-b border-gray-100\">\n <div class=\"section-container flex items-center justify-between h-16\">\n <NuxtLink to=\"/\" class=\"flex items-center gap-2 text-primary-700 font-bold text-lg shrink-0\">\n <span class=\"w-8 h-8 rounded-lg bg-primary flex items-center justify-center text-white text-sm font-mono\">H</span>\n {{ siteName }}\n </NuxtLink>\n\n <nav class=\"hidden lg:flex items-center gap-1\">\n <NuxtLink v-for=\"m in navMenus\" :key=\"m.to\" :to=\"m.to\"\n class=\"px-3 py-2 rounded-lg text-sm text-text-secondary hover:text-primary hover:bg-primary-50 transition-colors\">\n {{ m.label }}\n </NuxtLink>\n </nav>\n\n <div class=\"hidden lg:flex items-center gap-3\">\n <a :href=\"loginUrl\" class=\"text-sm text-text-secondary hover:text-primary transition-colors\">平台登录</a>\n <NuxtLink to=\"/contact\"\n class=\"px-4 py-2 bg-cta text-white rounded-lg text-sm font-medium hover:bg-cta-700 transition-colors\">\n 预约演示\n </NuxtLink>\n </div>\n\n <button @click=\"mobileOpen = !mobileOpen\" class=\"lg:hidden p-2\" aria-label=\"菜单\">\n <svg class=\"w-6 h-6\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"\n :d=\"mobileOpen ? 'M6 18L18 6M6 6l12 12' : 'M4 6h16M4 12h16M4 18h16'\" />\n </svg>\n </button>\n </div>\n\n <div v-if=\"mobileOpen\" class=\"lg:hidden border-t bg-white\">\n <div class=\"section-container py-4 space-y-1\">\n <NuxtLink v-for=\"m in navMenus\" :key=\"m.to\" :to=\"m.to\" @click=\"mobileOpen = false\"\n class=\"block px-3 py-2 rounded-lg text-text-secondary hover:text-primary hover:bg-primary-50\">\n {{ m.label }}\n </NuxtLink>\n <div class=\"pt-3 border-t\">\n <NuxtLink to=\"/contact\" @click=\"mobileOpen = false\"\n class=\"block w-full text-center px-4 py-3 bg-cta text-white rounded-lg font-medium\">\n 预约演示\n </NuxtLink>\n </div>\n </div>\n </div>\n </header>\n</template>\n","import { defineComponent, h, nextTick, onMounted, provide, shallowReactive } from \"vue\";\nimport { PageRouteSymbol } from \"./injections.js\";\nexport const defineRouteProvider = (name = \"RouteProvider\") => defineComponent({\n name,\n props: {\n route: {\n type: Object,\n required: true\n },\n vnode: Object,\n vnodeRef: Object,\n renderKey: String,\n trackRootNodes: Boolean\n },\n setup(props) {\n const previousKey = props.renderKey;\n const previousRoute = props.route;\n const route = {};\n for (const key in props.route) {\n Object.defineProperty(route, key, {\n get: () => previousKey === props.renderKey ? props.route[key] : previousRoute[key],\n enumerable: true\n });\n }\n provide(PageRouteSymbol, shallowReactive(route));\n let vnode;\n if (import.meta.dev && import.meta.client && props.trackRootNodes) {\n onMounted(() => {\n nextTick(() => {\n if ([\"#comment\", \"#text\"].includes(vnode?.el?.nodeName)) {\n const filename = vnode?.type?.__file;\n console.warn(`[nuxt] \\`${filename}\\` does not have a single root node and will cause errors when navigating between routes.`);\n }\n });\n });\n }\n return () => {\n if (!props.vnode) {\n return props.vnode;\n }\n if (import.meta.dev && import.meta.client) {\n vnode = h(props.vnode, { ref: props.vnodeRef });\n return vnode;\n }\n return h(props.vnode, { ref: props.vnodeRef });\n };\n }\n});\nexport const RouteProvider = defineRouteProvider();\n","import { Fragment, Suspense, defineComponent, h, inject, nextTick, onBeforeUnmount, ref, watch } from \"vue\";\nimport { RouterView } from \"vue-router\";\nimport { generateRouteKey, wrapInKeepAlive } from \"./utils.js\";\nimport { RouteProvider, defineRouteProvider } from \"#app/components/route-provider\";\nimport { useNuxtApp } from \"#app/nuxt\";\nimport { useRouter } from \"#app/composables/router\";\nimport { _mergeTransitionProps, _wrapInTransition } from \"#app/components/utils\";\nimport { LayoutMetaSymbol, PageRouteSymbol } from \"#app/components/injections\";\nimport { appKeepalive as defaultKeepaliveConfig, appPageTransition as defaultPageTransition } from \"#build/nuxt.config.mjs\";\nconst _routeProviders = import.meta.dev ? /* @__PURE__ */ new Map() : /* @__PURE__ */ new WeakMap();\nexport default defineComponent({\n name: \"NuxtPage\",\n inheritAttrs: false,\n props: {\n name: {\n type: String\n },\n transition: {\n type: [Boolean, Object],\n default: void 0\n },\n keepalive: {\n type: [Boolean, Object],\n default: void 0\n },\n route: {\n type: Object\n },\n pageKey: {\n type: [Function, String],\n default: null\n }\n },\n setup(props, { attrs, slots, expose }) {\n const nuxtApp = useNuxtApp();\n const pageRef = ref();\n const forkRoute = inject(PageRouteSymbol, null);\n let previousPageKey;\n expose({ pageRef });\n const _layoutMeta = inject(LayoutMetaSymbol, null);\n let vnode;\n const done = nuxtApp.deferHydration();\n let isSuspensePending = false;\n let hasResolvedOnce = false;\n let suspenseKey = 0;\n if (import.meta.client && nuxtApp.isHydrating) {\n const removeErrorHook = nuxtApp.hooks.hookOnce(\"app:error\", done);\n const removeGuard = useRouter().beforeEach(() => {\n removeErrorHook();\n removeGuard();\n });\n }\n if (import.meta.client && props.pageKey) {\n watch(() => props.pageKey, (next, prev) => {\n if (next !== prev) {\n nuxtApp.callHook(\"page:loading:start\");\n }\n });\n }\n if (import.meta.dev) {\n nuxtApp._isNuxtPageUsed = true;\n }\n let pageLoadingEndHookAlreadyCalled = false;\n if (import.meta.client) {\n const unsub = useRouter().beforeResolve(() => {\n pageLoadingEndHookAlreadyCalled = false;\n });\n onBeforeUnmount(() => {\n unsub();\n done();\n });\n }\n return () => {\n return h(RouterView, { name: props.name, route: props.route, ...attrs }, {\n default: import.meta.server ? (routeProps) => {\n return h(Suspense, { suspensible: true }, {\n default() {\n return h(RouteProvider, {\n vnode: slots.default ? normalizeSlot(slots.default, routeProps) : routeProps.Component,\n route: routeProps.route,\n vnodeRef: pageRef\n });\n }\n });\n } : (routeProps) => {\n const isRenderingNewRouteInOldFork = haveParentRoutesRendered(forkRoute, routeProps.route, routeProps.Component);\n const hasSameChildren = forkRoute && forkRoute.matched.length === routeProps.route.matched.length;\n if (!routeProps.Component) {\n if (vnode && !hasSameChildren && !isStaleVNode(vnode)) {\n return vnode;\n }\n done();\n return;\n }\n if (vnode && _layoutMeta && !isStaleVNode(vnode) && !_layoutMeta.isCurrent(routeProps.route)) {\n return vnode;\n }\n if (isRenderingNewRouteInOldFork && forkRoute && (!_layoutMeta || _layoutMeta?.isCurrent(forkRoute))) {\n if ((hasSameChildren || vnode) && !isStaleVNode(vnode)) {\n return vnode;\n }\n return null;\n }\n const key = generateRouteKey(routeProps, props.pageKey);\n const willRenderAnotherChild = hasChildrenRoutes(forkRoute, routeProps.route, routeProps.Component);\n if (!nuxtApp.isHydrating && previousPageKey === key && !willRenderAnotherChild) {\n nextTick(() => {\n if (!pageLoadingEndHookAlreadyCalled) {\n pageLoadingEndHookAlreadyCalled = true;\n nuxtApp.callHook(\"page:loading:end\");\n }\n });\n }\n if (isSuspensePending && previousPageKey !== key && hasResolvedOnce) {\n suspenseKey++;\n }\n previousPageKey = key;\n const hasTransition = !!(props.transition ?? routeProps.route.meta.pageTransition ?? defaultPageTransition);\n const transitionProps = hasTransition && _mergeTransitionProps([\n props.transition,\n routeProps.route.meta.pageTransition,\n defaultPageTransition,\n {\n onAfterLeave() {\n nuxtApp[\"~transitionFinish\"]?.();\n delete nuxtApp[\"~transitionFinish\"];\n delete nuxtApp[\"~transitionPromise\"];\n nuxtApp.callHook(\"page:transition:finish\", routeProps.Component);\n }\n }\n ]);\n const keepaliveConfig = props.keepalive ?? routeProps.route.meta.keepalive ?? defaultKeepaliveConfig;\n vnode = _wrapInTransition(\n hasTransition && transitionProps,\n wrapInKeepAlive(\n keepaliveConfig,\n h(Suspense, {\n key: suspenseKey,\n suspensible: true,\n onPending: () => {\n isSuspensePending = true;\n if (hasTransition && !nuxtApp[\"~transitionPromise\"]) {\n nuxtApp[\"~transitionPromise\"] = new Promise((resolve) => {\n nuxtApp[\"~transitionFinish\"] = resolve;\n });\n }\n nuxtApp.callHook(\"page:start\", routeProps.Component);\n },\n onResolve: async () => {\n isSuspensePending = false;\n hasResolvedOnce = true;\n try {\n await nextTick();\n nuxtApp._route.sync?.();\n await nuxtApp.callHook(\"page:finish\", routeProps.Component);\n if (!pageLoadingEndHookAlreadyCalled && !willRenderAnotherChild) {\n pageLoadingEndHookAlreadyCalled = true;\n await nuxtApp.callHook(\"page:loading:end\");\n }\n } finally {\n done();\n }\n }\n }, {\n default: () => {\n const routeProviderProps = {\n key: key || void 0,\n vnode: slots.default ? normalizeSlot(slots.default, routeProps) : routeProps.Component,\n route: routeProps.route,\n renderKey: key || void 0,\n trackRootNodes: hasTransition,\n vnodeRef: pageRef\n };\n if (!keepaliveConfig) {\n return h(RouteProvider, routeProviderProps);\n }\n const routerComponentType = routeProps.Component.type;\n const routeProviderKey = import.meta.dev ? routerComponentType.name || routerComponentType.__name : routerComponentType;\n let PageRouteProvider = _routeProviders.get(routeProviderKey);\n if (!PageRouteProvider) {\n PageRouteProvider = defineRouteProvider(routerComponentType.name || routerComponentType.__name);\n _routeProviders.set(routeProviderKey, PageRouteProvider);\n }\n return h(PageRouteProvider, routeProviderProps);\n }\n })\n )\n ).default();\n return vnode;\n }\n });\n };\n }\n});\nfunction haveParentRoutesRendered(fork, newRoute, Component) {\n if (!fork) {\n return false;\n }\n const index = newRoute.matched.findIndex((m) => m.components?.default === Component?.type);\n if (!index || index === -1) {\n return false;\n }\n return newRoute.matched.slice(0, index).some(\n (c, i) => c.components?.default !== fork.matched[i]?.components?.default\n ) || Component && generateRouteKey({ route: newRoute, Component }) !== generateRouteKey({ route: fork, Component });\n}\nfunction hasChildrenRoutes(fork, newRoute, Component) {\n if (!fork) {\n return false;\n }\n const index = newRoute.matched.findIndex((m) => m.components?.default === Component?.type);\n return index < newRoute.matched.length - 1;\n}\nfunction normalizeSlot(slot, data) {\n const slotContent = slot(data);\n return slotContent.length === 1 ? h(slotContent[0]) : h(Fragment, void 0, slotContent);\n}\nfunction isStaleVNode(vnode) {\n return !!vnode && (!!vnode.suspense?.isUnmounted || !!vnode.component?.isUnmounted);\n}\n","<script setup lang=\"ts\">\nimport { siteName, footerLinks } from '~/data/siteContent'\n</script>\n\n<template>\n <footer class=\"bg-gray-900 text-gray-300 pt-16 pb-8\">\n <div class=\"section-container\">\n <div class=\"grid grid-cols-2 md:grid-cols-4 gap-8 mb-12\">\n <div>\n <h4 class=\"text-white font-bold mb-4\">{{ siteName }}</h4>\n <p class=\"text-sm text-gray-400\">智慧医养居家上门服务闭环管理平台</p>\n </div>\n <div>\n <h5 class=\"text-white font-semibold mb-3\">解决方案</h5>\n <ul class=\"space-y-2\">\n <li v-for=\"l in footerLinks.solutions\" :key=\"l.to\">\n <NuxtLink :to=\"l.to\" class=\"text-sm text-gray-400 hover:text-white transition-colors\">{{ l.label }}</NuxtLink>\n </li>\n </ul>\n </div>\n <div>\n <h5 class=\"text-white font-semibold mb-3\">应用场景</h5>\n <ul class=\"space-y-2\">\n <li v-for=\"l in footerLinks.scenarios\" :key=\"l.to\">\n <NuxtLink :to=\"l.to\" class=\"text-sm text-gray-400 hover:text-white transition-colors\">{{ l.label }}</NuxtLink>\n </li>\n </ul>\n </div>\n <div>\n <h5 class=\"text-white font-semibold mb-3\">关于</h5>\n <ul class=\"space-y-2\">\n <li v-for=\"l in footerLinks.company\" :key=\"l.to\">\n <NuxtLink :to=\"l.to\" class=\"text-sm text-gray-400 hover:text-white transition-colors\">{{ l.label }}</NuxtLink>\n </li>\n </ul>\n </div>\n </div>\n <div class=\"border-t border-gray-700 pt-8 text-center text-sm text-gray-500\">\n <p>© {{ new Date().getFullYear() }} {{ siteName }}. All rights reserved.</p>\n <p class=\"mt-1 text-xs\">ICP备案号:上线前补充 | 公安备案号:上线前补充</p>\n <p class=\"mt-2 text-xs text-gray-600\">本网站中系统界面图片为功能示意图(示意素材,待替换为真实系统截图)。</p>\n </div>\n </div>\n </footer>\n</template>\n","<template>\n <div class=\"min-h-screen bg-surface-white text-text-primary\">\n <AppHeader />\n <main>\n <NuxtPage />\n </main>\n <AppFooter />\n </div>\n</template>\n","<template>\n <ErrorTemplate v-bind=\"{ status, statusText, statusCode: status, statusMessage: statusText, description, stack }\" />\n</template>\n\n<script setup>\nimport { defineAsyncComponent } from \"vue\";\nimport { escapeHtml } from \"@vue/shared\";\nconst props = defineProps({\n error: Object\n});\nconst _error = props.error;\nconst stacktrace = import.meta.dev && _error.stack ? _error.stack.split(\"\\n\").splice(1).map((line) => {\n const text = line.replace(\"webpack:/\", \"\").replace(\".vue\", \".js\").trim();\n return {\n text,\n internal: line.includes(\"node_modules\") && !line.includes(\".cache\") || line.includes(\"internal\") || line.includes(\"new Promise\")\n };\n}).map((i) => `<span class=\"stack${i.internal ? \" internal\" : \"\"}\">${escapeHtml(i.text)}</span>`).join(\"\\n\") : \"\";\nconst status = Number(_error.statusCode || 500);\nconst is404 = status === 404;\nconst statusText = _error.statusMessage ?? (is404 ? \"Page Not Found\" : \"Internal Server Error\");\nconst description = _error.message || _error.toString();\nconst stack = import.meta.dev && !is404 ? _error.description || `<pre>${stacktrace}</pre>` : void 0;\nconst _Error404 = defineAsyncComponent(() => import(\"./error-404.vue\"));\nconst _Error = defineAsyncComponent(() => import(\"./error-500.vue\"));\nconst ErrorTemplate = is404 ? _Error404 : _Error;\n</script>\n","<template>\n <Suspense @resolve=\"onResolve\">\n <div v-if=\"abortRender\" />\n <ErrorComponent\n v-else-if=\"error\"\n :error=\"error\"\n />\n <IslandRenderer\n v-else-if=\"islandContext\"\n :context=\"islandContext\"\n />\n <component\n :is=\"SingleRenderer\"\n v-else-if=\"SingleRenderer\"\n />\n <AppComponent v-else />\n </Suspense>\n</template>\n\n<script setup>\nimport { defineAsyncComponent, onErrorCaptured, onServerPrefetch, provide } from \"vue\";\nimport { useNuxtApp } from \"../nuxt\";\nimport { isNuxtError, showError, useError } from \"../composables/error\";\nimport { useRoute, useRouter } from \"../composables/router\";\nimport { PageRouteSymbol } from \"../components/injections\";\nimport AppComponent from \"#build/app-component.mjs\";\nimport ErrorComponent from \"#build/error-component.mjs\";\nimport { componentIslands } from \"#build/nuxt.config.mjs\";\nconst IslandRenderer = import.meta.server && componentIslands ? defineAsyncComponent(() => import(\"./island-renderer\").then((r) => r.default || r)) : () => null;\nconst nuxtApp = useNuxtApp();\nconst onResolve = nuxtApp.deferHydration();\nif (import.meta.client && nuxtApp.isHydrating) {\n const removeErrorHook = nuxtApp.hooks.hookOnce(\"app:error\", onResolve);\n const removeGuard = useRouter().beforeEach(() => {\n removeErrorHook();\n removeGuard();\n });\n}\nconst url = import.meta.server ? nuxtApp.ssrContext.url : window.location.pathname;\nconst SingleRenderer = import.meta.test && import.meta.dev && import.meta.server && url.startsWith(\"/__nuxt_component_test__/\") && defineAsyncComponent(() => import(\"#build/test-component-wrapper.mjs\").then((r) => r.default(import.meta.server ? url : window.location.href)));\nprovide(PageRouteSymbol, useRoute());\nconst results = nuxtApp.hooks.callHookWith((hooks) => hooks.map((hook) => hook()), \"vue:setup\", []);\nif (import.meta.dev && results && results.some((i) => i && \"then\" in i)) {\n console.error(\"[nuxt] Error in `vue:setup`. Callbacks must be synchronous.\");\n}\nconst error = useError();\nconst abortRender = import.meta.server && error.value && !nuxtApp.ssrContext.error;\nconst BOT_RE = /bot\\b|chrome-lighthouse|facebookexternalhit|google\\b/i;\nfunction invokeAppErrorHandler(err, target, info) {\n const errorHandler = nuxtApp.vueApp.config.errorHandler;\n if (errorHandler && !errorHandler.__nuxt_default) {\n try {\n errorHandler(err, target, info);\n } catch (handlerError) {\n console.error(\"[nuxt] Error in `app.config.errorHandler`\", handlerError);\n }\n }\n}\nonErrorCaptured((err, target, info) => {\n nuxtApp.hooks.callHook(\"vue:error\", err, target, info).catch((hookError) => console.error(\"[nuxt] Error in `vue:error` hook\", hookError));\n if (import.meta.client && BOT_RE.test(navigator.userAgent)) {\n nuxtApp.hooks.callHook(\"app:error\", err);\n console.error(`[nuxt] Not rendering error page for bot with user agent \\`${navigator.userAgent}\\`:`, err);\n return false;\n }\n if (import.meta.server || isNuxtError(err) && (err.fatal || err.unhandled)) {\n const p = nuxtApp.runWithContext(() => showError(err));\n onServerPrefetch(() => p);\n invokeAppErrorHandler(err, target, info);\n return false;\n }\n});\nconst islandContext = import.meta.server && nuxtApp.ssrContext.islandContext;\n</script>\n","import { createApp, createSSRApp, nextTick } from \"vue\";\nimport \"#build/fetch.mjs\";\nimport \"#build/global-polyfills.mjs\";\nimport { applyPlugins, createNuxtApp } from \"./nuxt.js\";\nimport { createError } from \"./composables/error.js\";\nimport \"#build/css\";\nimport plugins from \"#build/plugins\";\nimport RootComponent from \"#build/root-component.mjs\";\nimport { appId, appSpaLoaderAttrs, multiApp, spaLoadingTemplateOutside, vueAppRootContainer } from \"#build/nuxt.config.mjs\";\nlet entry;\nif (import.meta.server) {\n entry = async function createNuxtAppServer(ssrContext) {\n const vueApp = createApp(RootComponent);\n const nuxt = createNuxtApp({ vueApp, ssrContext });\n try {\n await applyPlugins(nuxt, plugins);\n await nuxt.hooks.callHook(\"app:created\", vueApp);\n } catch (error) {\n await nuxt.hooks.callHook(\"app:error\", error);\n nuxt.payload.error ||= createError(error);\n }\n if (ssrContext && (ssrContext[\"~renderResponse\"] || ssrContext._renderResponse)) {\n throw new Error(\"skipping render\");\n }\n return vueApp;\n };\n}\nif (import.meta.client) {\n if (import.meta.dev && import.meta.webpackHot) {\n import.meta.webpackHot.accept();\n }\n let vueAppPromise;\n entry = async function initApp() {\n if (vueAppPromise) {\n return vueAppPromise;\n }\n const isSSR = Boolean(\n (multiApp ? window.__NUXT__?.[appId] : window.__NUXT__)?.serverRendered ?? (multiApp ? document.querySelector(`[data-nuxt-data=\"${appId}\"]`) : document.getElementById(\"__NUXT_DATA__\"))?.dataset.ssr === \"true\"\n );\n const vueApp = isSSR ? createSSRApp(RootComponent) : createApp(RootComponent);\n const nuxt = createNuxtApp({ vueApp });\n async function handleVueError(error) {\n await nuxt.callHook(\"app:error\", error);\n nuxt.payload.error ||= createError(error);\n }\n ;\n handleVueError.__nuxt_default = true;\n vueApp.config.errorHandler = handleVueError;\n nuxt.hook(\"app:suspense:resolve\", () => {\n if (vueApp.config.errorHandler === handleVueError) {\n vueApp.config.errorHandler = void 0;\n }\n });\n if (spaLoadingTemplateOutside && !isSSR && appSpaLoaderAttrs.id) {\n nuxt.hook(\"app:suspense:resolve\", () => {\n document.getElementById(appSpaLoaderAttrs.id)?.remove();\n });\n }\n try {\n await applyPlugins(nuxt, plugins);\n } catch (err) {\n handleVueError(err);\n }\n try {\n await nuxt.hooks.callHook(\"app:created\", vueApp);\n await nuxt.hooks.callHook(\"app:beforeMount\", vueApp);\n vueApp.mount(vueAppRootContainer);\n await nuxt.hooks.callHook(\"app:mounted\", vueApp);\n await nextTick();\n } catch (err) {\n handleVueError(err);\n }\n return vueApp;\n };\n vueAppPromise = entry().catch((error) => {\n console.error(\"Error while mounting app:\", error);\n throw error;\n });\n}\nexport default ((ssrContext) => entry(ssrContext));\n"],"version":3} |