import { version, ref, watchEffect, watch, getCurrentInstance, defineComponent, createElementBlock, hasInjectionContext, unref, inject, useSSRContext, createApp, effectScope, reactive, provide, onUnmounted, nextTick, toRef, isRef, defineAsyncComponent, onErrorCaptured, onServerPrefetch, createVNode, resolveDynamicComponent, h, isReadonly, isShallow, isReactive, toRaw, withCtx, createTextVNode, toDisplayString, mergeProps } from 'vue';
import { d as useRuntimeConfig$1, $ as $fetch, w as withQuery, l as hasProtocol, p as parseURL, m as isScriptProtocol, j as joinURL, h as createError$1, n as sanitizeStatusCode, o as createHooks, q as isEqual, r as stringifyParsedURL, t as stringifyQuery, v as parseQuery } from '../nitro/node-server.mjs';
import { getActiveHead } from 'unhead';
import { defineHeadPlugin, composableNames } from '@unhead/shared';
import { ssrRenderSuspense, ssrRenderComponent, ssrRenderVNode, ssrInterpolate, ssrRenderAttr, ssrRenderList, ssrRenderClass, ssrRenderStyle, ssrIncludeBooleanAttr, ssrRenderAttrs } from 'vue/server-renderer';
import axios from 'axios';
import 'node:http';
import 'node:https';
import 'fs';
import 'path';
import 'node:fs';
import 'node:url';
function createContext$1(opts = {}) {
let currentInstance;
let isSingleton = false;
const checkConflict = (instance) => {
if (currentInstance && currentInstance !== instance) {
throw new Error("Context conflict");
}
};
let als;
if (opts.asyncContext) {
const _AsyncLocalStorage = opts.AsyncLocalStorage || globalThis.AsyncLocalStorage;
if (_AsyncLocalStorage) {
als = new _AsyncLocalStorage();
} else {
console.warn("[unctx] `AsyncLocalStorage` is not provided.");
}
}
const _getCurrentInstance = () => {
if (als && currentInstance === void 0) {
const instance = als.getStore();
if (instance !== void 0) {
return instance;
}
}
return currentInstance;
};
return {
use: () => {
const _instance = _getCurrentInstance();
if (_instance === void 0) {
throw new Error("Context is not available");
}
return _instance;
},
tryUse: () => {
return _getCurrentInstance();
},
set: (instance, replace) => {
if (!replace) {
checkConflict(instance);
}
currentInstance = instance;
isSingleton = true;
},
unset: () => {
currentInstance = void 0;
isSingleton = false;
},
call: (instance, callback) => {
checkConflict(instance);
currentInstance = instance;
try {
return als ? als.run(instance, callback) : callback();
} finally {
if (!isSingleton) {
currentInstance = void 0;
}
}
},
async callAsync(instance, callback) {
currentInstance = instance;
const onRestore = () => {
currentInstance = instance;
};
const onLeave = () => currentInstance === instance ? onRestore : void 0;
asyncHandlers$1.add(onLeave);
try {
const r = als ? als.run(instance, callback) : callback();
if (!isSingleton) {
currentInstance = void 0;
}
return await r;
} finally {
asyncHandlers$1.delete(onLeave);
}
}
};
}
function createNamespace$1(defaultOpts = {}) {
const contexts = {};
return {
get(key, opts = {}) {
if (!contexts[key]) {
contexts[key] = createContext$1({ ...defaultOpts, ...opts });
}
contexts[key];
return contexts[key];
}
};
}
const _globalThis$1 = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof global !== "undefined" ? global : {};
const globalKey$2 = "__unctx__";
const defaultNamespace = _globalThis$1[globalKey$2] || (_globalThis$1[globalKey$2] = createNamespace$1());
const getContext = (key, opts = {}) => defaultNamespace.get(key, opts);
const asyncHandlersKey$1 = "__unctx_async_handlers__";
const asyncHandlers$1 = _globalThis$1[asyncHandlersKey$1] || (_globalThis$1[asyncHandlersKey$1] = /* @__PURE__ */ new Set());
const appConfig = useRuntimeConfig$1().app;
const baseURL = () => appConfig.baseURL;
if (!globalThis.$fetch) {
globalThis.$fetch = $fetch.create({
baseURL: baseURL()
});
}
const nuxtAppCtx = /* @__PURE__ */ getContext("nuxt-app", {
asyncContext: false
});
const NuxtPluginIndicator = "__nuxt_plugin";
function createNuxtApp(options) {
let hydratingCount = 0;
const nuxtApp = {
_scope: effectScope(),
provide: void 0,
globalName: "nuxt",
versions: {
get nuxt() {
return "3.8.2";
},
get vue() {
return nuxtApp.vueApp.version;
}
},
payload: reactive({
data: {},
state: {},
_errors: {},
...{ serverRendered: true }
}),
static: {
data: {}
},
runWithContext: (fn) => nuxtApp._scope.run(() => callWithNuxt(nuxtApp, fn)),
isHydrating: false,
deferHydration() {
if (!nuxtApp.isHydrating) {
return () => {
};
}
hydratingCount++;
let called = false;
return () => {
if (called) {
return;
}
called = true;
hydratingCount--;
if (hydratingCount === 0) {
nuxtApp.isHydrating = false;
return nuxtApp.callHook("app:suspense:resolve");
}
};
},
_asyncDataPromises: {},
_asyncData: {},
_payloadRevivers: {},
...options
};
nuxtApp.hooks = createHooks();
nuxtApp.hook = nuxtApp.hooks.hook;
{
const contextCaller = async function(hooks, args) {
for (const hook of hooks) {
await nuxtApp.runWithContext(() => hook(...args));
}
};
nuxtApp.hooks.callHook = (name, ...args) => nuxtApp.hooks.callHookWith(contextCaller, name, ...args);
}
nuxtApp.callHook = nuxtApp.hooks.callHook;
nuxtApp.provide = (name, value) => {
const $name = "$" + name;
defineGetter(nuxtApp, $name, value);
defineGetter(nuxtApp.vueApp.config.globalProperties, $name, value);
};
defineGetter(nuxtApp.vueApp, "$nuxt", nuxtApp);
defineGetter(nuxtApp.vueApp.config.globalProperties, "$nuxt", nuxtApp);
{
if (nuxtApp.ssrContext) {
nuxtApp.ssrContext.nuxt = nuxtApp;
nuxtApp.ssrContext._payloadReducers = {};
nuxtApp.payload.path = nuxtApp.ssrContext.url;
}
nuxtApp.ssrContext = nuxtApp.ssrContext || {};
if (nuxtApp.ssrContext.payload) {
Object.assign(nuxtApp.payload, nuxtApp.ssrContext.payload);
}
nuxtApp.ssrContext.payload = nuxtApp.payload;
nuxtApp.ssrContext.config = {
public: options.ssrContext.runtimeConfig.public,
app: options.ssrContext.runtimeConfig.app
};
}
const runtimeConfig = options.ssrContext.runtimeConfig;
nuxtApp.provide("config", runtimeConfig);
return nuxtApp;
}
async function applyPlugin(nuxtApp, plugin) {
if (plugin.hooks) {
nuxtApp.hooks.addHooks(plugin.hooks);
}
if (typeof plugin === "function") {
const { provide: provide2 } = await nuxtApp.runWithContext(() => plugin(nuxtApp)) || {};
if (provide2 && typeof provide2 === "object") {
for (const key in provide2) {
nuxtApp.provide(key, provide2[key]);
}
}
}
}
async function applyPlugins(nuxtApp, plugins2) {
var _a, _b;
const parallels = [];
const errors = [];
for (const plugin of plugins2) {
if (((_a = nuxtApp.ssrContext) == null ? void 0 : _a.islandContext) && ((_b = plugin.env) == null ? void 0 : _b.islands) === false) {
continue;
}
const promise = applyPlugin(nuxtApp, plugin);
if (plugin.parallel) {
parallels.push(promise.catch((e) => errors.push(e)));
} else {
await promise;
}
}
await Promise.all(parallels);
if (errors.length) {
throw errors[0];
}
}
/*! @__NO_SIDE_EFFECTS__ */
// @__NO_SIDE_EFFECTS__
function defineNuxtPlugin(plugin) {
if (typeof plugin === "function") {
return plugin;
}
delete plugin.name;
return Object.assign(plugin.setup || (() => {
}), plugin, { [NuxtPluginIndicator]: true });
}
function callWithNuxt(nuxt, setup, args) {
const fn = () => args ? setup(...args) : setup();
{
return nuxt.vueApp.runWithContext(() => nuxtAppCtx.callAsync(nuxt, fn));
}
}
/*! @__NO_SIDE_EFFECTS__ */
// @__NO_SIDE_EFFECTS__
function useNuxtApp() {
var _a;
let nuxtAppInstance;
if (hasInjectionContext()) {
nuxtAppInstance = (_a = getCurrentInstance()) == null ? void 0 : _a.appContext.app.$nuxt;
}
nuxtAppInstance = nuxtAppInstance || nuxtAppCtx.tryUse();
if (!nuxtAppInstance) {
{
throw new Error("[nuxt] instance unavailable");
}
}
return nuxtAppInstance;
}
/*! @__NO_SIDE_EFFECTS__ */
// @__NO_SIDE_EFFECTS__
function useRuntimeConfig() {
return (/* @__PURE__ */ useNuxtApp()).$config;
}
function defineGetter(obj, key, val) {
Object.defineProperty(obj, key, { get: () => val });
}
version.startsWith("3");
function resolveUnref(r) {
return typeof r === "function" ? r() : unref(r);
}
function resolveUnrefHeadInput(ref2, lastKey = "") {
if (ref2 instanceof Promise)
return ref2;
const root = resolveUnref(ref2);
if (!ref2 || !root)
return root;
if (Array.isArray(root))
return root.map((r) => resolveUnrefHeadInput(r, lastKey));
if (typeof root === "object") {
return Object.fromEntries(
Object.entries(root).map(([k, v]) => {
if (k === "titleTemplate" || k.startsWith("on"))
return [k, unref(v)];
return [k, resolveUnrefHeadInput(v, k)];
})
);
}
return root;
}
defineHeadPlugin({
hooks: {
"entries:resolve": function(ctx) {
for (const entry2 of ctx.entries)
entry2.resolvedInput = resolveUnrefHeadInput(entry2.input);
}
}
});
const headSymbol = "usehead";
const _global = typeof globalThis !== "undefined" ? globalThis : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
const globalKey$1 = "__unhead_injection_handler__";
function setHeadInjectionHandler(handler) {
_global[globalKey$1] = handler;
}
function injectHead() {
if (globalKey$1 in _global) {
return _global[globalKey$1]();
}
const head = inject(headSymbol);
if (!head && "production" !== "production")
console.warn("Unhead is missing Vue context, falling back to shared context. This may have unexpected results.");
return head || getActiveHead();
}
function useHead(input, options = {}) {
const head = options.head || injectHead();
if (head) {
if (!head.ssr)
return clientUseHead(head, input, options);
return head.push(input, options);
}
}
function clientUseHead(head, input, options = {}) {
const deactivated = ref(false);
const resolvedInput = ref({});
watchEffect(() => {
resolvedInput.value = deactivated.value ? {} : resolveUnrefHeadInput(input);
});
const entry2 = head.push(resolvedInput.value, options);
watch(resolvedInput, (e) => {
entry2.patch(e);
});
getCurrentInstance();
return entry2;
}
const coreComposableNames = [
"injectHead"
];
({
"@unhead/vue": [...coreComposableNames, ...composableNames]
});
const unhead_KgADcZ0jPj = /* @__PURE__ */ defineNuxtPlugin({
name: "nuxt:head",
enforce: "pre",
setup(nuxtApp) {
const head = nuxtApp.ssrContext.head;
setHeadInjectionHandler(
// need a fresh instance of the nuxt app to avoid parallel requests interfering with each other
() => (/* @__PURE__ */ useNuxtApp()).vueApp._context.provides.usehead
);
nuxtApp.vueApp.use(head);
}
});
const PageRouteSymbol = Symbol("route");
const useRouter = () => {
var _a;
return (_a = /* @__PURE__ */ useNuxtApp()) == null ? void 0 : _a.$router;
};
const useRoute = () => {
if (hasInjectionContext()) {
return inject(PageRouteSymbol, (/* @__PURE__ */ useNuxtApp())._route);
}
return (/* @__PURE__ */ useNuxtApp())._route;
};
/*! @__NO_SIDE_EFFECTS__ */
// @__NO_SIDE_EFFECTS__
function defineNuxtRouteMiddleware(middleware) {
return middleware;
}
const isProcessingMiddleware = () => {
try {
if ((/* @__PURE__ */ useNuxtApp())._processingMiddleware) {
return true;
}
} catch {
return true;
}
return false;
};
const navigateTo = (to, options) => {
if (!to) {
to = "/";
}
const toPath = typeof to === "string" ? to : withQuery(to.path || "/", to.query || {}) + (to.hash || "");
if (options == null ? void 0 : options.open) {
return Promise.resolve();
}
const isExternal = (options == null ? void 0 : options.external) || hasProtocol(toPath, { acceptRelative: true });
if (isExternal) {
if (!(options == null ? void 0 : options.external)) {
throw new Error("Navigating to an external URL is not allowed by default. Use `navigateTo(url, { external: true })`.");
}
const protocol = parseURL(toPath).protocol;
if (protocol && isScriptProtocol(protocol)) {
throw new Error(`Cannot navigate to a URL with '${protocol}' protocol.`);
}
}
const inMiddleware = isProcessingMiddleware();
const router = useRouter();
const nuxtApp = /* @__PURE__ */ useNuxtApp();
{
if (nuxtApp.ssrContext) {
const fullPath = typeof to === "string" || isExternal ? toPath : router.resolve(to).fullPath || "/";
const location2 = isExternal ? toPath : joinURL((/* @__PURE__ */ useRuntimeConfig()).app.baseURL, fullPath);
const redirect = async function(response) {
await nuxtApp.callHook("app:redirected");
const encodedLoc = location2.replace(/"/g, "%22");
nuxtApp.ssrContext._renderResponse = {
statusCode: sanitizeStatusCode((options == null ? void 0 : options.redirectCode) || 302, 302),
body: `
`,
headers: { location: location2 }
};
return response;
};
if (!isExternal && inMiddleware) {
router.afterEach((final) => final.fullPath === fullPath ? redirect(false) : void 0);
return to;
}
return redirect(!inMiddleware ? void 0 : (
/* abort route navigation */
false
));
}
}
if (isExternal) {
nuxtApp._scope.stop();
if (options == null ? void 0 : options.replace) {
location.replace(toPath);
} else {
location.href = toPath;
}
if (inMiddleware) {
if (!nuxtApp.isHydrating) {
return false;
}
return new Promise(() => {
});
}
return Promise.resolve();
}
return (options == null ? void 0 : options.replace) ? router.replace(to) : router.push(to);
};
const useError = () => toRef((/* @__PURE__ */ useNuxtApp()).payload, "error");
const showError = (_err) => {
const err = createError(_err);
try {
const nuxtApp = /* @__PURE__ */ useNuxtApp();
const error = useError();
if (false)
;
error.value = error.value || err;
} catch {
throw err;
}
return err;
};
const isNuxtError = (err) => !!(err && typeof err === "object" && "__nuxt_error" in err);
const createError = (err) => {
const _err = createError$1(err);
_err.__nuxt_error = true;
return _err;
};
function createContext(opts = {}) {
let currentInstance;
let isSingleton = false;
const checkConflict = (instance) => {
if (currentInstance && currentInstance !== instance) {
throw new Error("Context conflict");
}
};
let als;
if (opts.asyncContext) {
const _AsyncLocalStorage = opts.AsyncLocalStorage || globalThis.AsyncLocalStorage;
if (_AsyncLocalStorage) {
als = new _AsyncLocalStorage();
} else {
console.warn("[unctx] `AsyncLocalStorage` is not provided.");
}
}
const _getCurrentInstance = () => {
if (als && currentInstance === void 0) {
const instance = als.getStore();
if (instance !== void 0) {
return instance;
}
}
return currentInstance;
};
return {
use: () => {
const _instance = _getCurrentInstance();
if (_instance === void 0) {
throw new Error("Context is not available");
}
return _instance;
},
tryUse: () => {
return _getCurrentInstance();
},
set: (instance, replace) => {
if (!replace) {
checkConflict(instance);
}
currentInstance = instance;
isSingleton = true;
},
unset: () => {
currentInstance = void 0;
isSingleton = false;
},
call: (instance, callback) => {
checkConflict(instance);
currentInstance = instance;
try {
return als ? als.run(instance, callback) : callback();
} finally {
if (!isSingleton) {
currentInstance = void 0;
}
}
},
async callAsync(instance, callback) {
currentInstance = instance;
const onRestore = () => {
currentInstance = instance;
};
const onLeave = () => currentInstance === instance ? onRestore : void 0;
asyncHandlers.add(onLeave);
try {
const r = als ? als.run(instance, callback) : callback();
if (!isSingleton) {
currentInstance = void 0;
}
return await r;
} finally {
asyncHandlers.delete(onLeave);
}
}
};
}
function createNamespace(defaultOpts = {}) {
const contexts = {};
return {
get(key, opts = {}) {
if (!contexts[key]) {
contexts[key] = createContext({ ...defaultOpts, ...opts });
}
contexts[key];
return contexts[key];
}
};
}
const _globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof global !== "undefined" ? global : {};
const globalKey = "__unctx__";
_globalThis[globalKey] || (_globalThis[globalKey] = createNamespace());
const asyncHandlersKey = "__unctx_async_handlers__";
const asyncHandlers = _globalThis[asyncHandlersKey] || (_globalThis[asyncHandlersKey] = /* @__PURE__ */ new Set());
const manifest_45route_45rule = /* @__PURE__ */ defineNuxtRouteMiddleware(async (to) => {
{
return;
}
});
const globalMiddleware = [
manifest_45route_45rule
];
function getRouteFromPath(fullPath) {
if (typeof fullPath === "object") {
fullPath = stringifyParsedURL({
pathname: fullPath.path || "",
search: stringifyQuery(fullPath.query || {}),
hash: fullPath.hash || ""
});
}
const url = parseURL(fullPath.toString());
return {
path: url.pathname,
fullPath,
query: parseQuery(url.search),
hash: url.hash,
// stub properties for compat with vue-router
params: {},
name: void 0,
matched: [],
redirectedFrom: void 0,
meta: {},
href: fullPath
};
}
const router_CaKIoANnI2 = /* @__PURE__ */ defineNuxtPlugin({
name: "nuxt:router",
enforce: "pre",
setup(nuxtApp) {
const initialURL = nuxtApp.ssrContext.url;
const routes = [];
const hooks = {
"navigate:before": [],
"resolve:before": [],
"navigate:after": [],
error: []
};
const registerHook = (hook, guard) => {
hooks[hook].push(guard);
return () => hooks[hook].splice(hooks[hook].indexOf(guard), 1);
};
(/* @__PURE__ */ useRuntimeConfig()).app.baseURL;
const route = reactive(getRouteFromPath(initialURL));
async function handleNavigation(url, replace) {
try {
const to = getRouteFromPath(url);
for (const middleware of hooks["navigate:before"]) {
const result = await middleware(to, route);
if (result === false || result instanceof Error) {
return;
}
if (typeof result === "string" && result.length) {
return handleNavigation(result, true);
}
}
for (const handler of hooks["resolve:before"]) {
await handler(to, route);
}
Object.assign(route, to);
if (false)
;
for (const middleware of hooks["navigate:after"]) {
await middleware(to, route);
}
} catch (err) {
for (const handler of hooks.error) {
await handler(err);
}
}
}
const router = {
currentRoute: route,
isReady: () => Promise.resolve(),
// These options provide a similar API to vue-router but have no effect
options: {},
install: () => Promise.resolve(),
// Navigation
push: (url) => handleNavigation(url),
replace: (url) => handleNavigation(url),
back: () => window.history.go(-1),
go: (delta) => window.history.go(delta),
forward: () => window.history.go(1),
// Guards
beforeResolve: (guard) => registerHook("resolve:before", guard),
beforeEach: (guard) => registerHook("navigate:before", guard),
afterEach: (guard) => registerHook("navigate:after", guard),
onError: (handler) => registerHook("error", handler),
// Routes
resolve: getRouteFromPath,
addRoute: (parentName, route2) => {
routes.push(route2);
},
getRoutes: () => routes,
hasRoute: (name) => routes.some((route2) => route2.name === name),
removeRoute: (name) => {
const index = routes.findIndex((route2) => route2.name === name);
if (index !== -1) {
routes.splice(index, 1);
}
}
};
nuxtApp.vueApp.component("RouterLink", {
functional: true,
props: {
to: String,
custom: Boolean,
replace: Boolean,
// Not implemented
activeClass: String,
exactActiveClass: String,
ariaCurrentValue: String
},
setup: (props, { slots }) => {
const navigate = () => handleNavigation(props.to, props.replace);
return () => {
var _a;
const route2 = router.resolve(props.to);
return props.custom ? (_a = slots.default) == null ? void 0 : _a.call(slots, { href: props.to, navigate, route: route2 }) : h("a", { href: props.to, onClick: (e) => {
e.preventDefault();
return navigate();
} }, slots);
};
}
});
nuxtApp._route = route;
nuxtApp._middleware = nuxtApp._middleware || {
global: [],
named: {}
};
const initialLayout = nuxtApp.payload.state._layout;
nuxtApp.hooks.hookOnce("app:created", async () => {
router.beforeEach(async (to, from) => {
var _a;
to.meta = reactive(to.meta || {});
if (nuxtApp.isHydrating && initialLayout && !isReadonly(to.meta.layout)) {
to.meta.layout = initialLayout;
}
nuxtApp._processingMiddleware = true;
if (!((_a = nuxtApp.ssrContext) == null ? void 0 : _a.islandContext)) {
const middlewareEntries = /* @__PURE__ */ new Set([...globalMiddleware, ...nuxtApp._middleware.global]);
for (const middleware of middlewareEntries) {
const result = await nuxtApp.runWithContext(() => middleware(to, from));
{
if (result === false || result instanceof Error) {
const error = result || createError$1({
statusCode: 404,
statusMessage: `Page Not Found: ${initialURL}`
});
delete nuxtApp._processingMiddleware;
return nuxtApp.runWithContext(() => showError(error));
}
}
if (result === true) {
continue;
}
if (result || result === false) {
return result;
}
}
}
});
router.afterEach(() => {
delete nuxtApp._processingMiddleware;
});
await router.replace(initialURL);
if (!isEqual(route.fullPath, initialURL)) {
await nuxtApp.runWithContext(() => navigateTo(route.fullPath));
}
});
return {
provide: {
route,
router
}
};
}
});
function definePayloadReducer(name, reduce) {
{
(/* @__PURE__ */ useNuxtApp()).ssrContext._payloadReducers[name] = reduce;
}
}
const reducers = {
NuxtError: (data) => isNuxtError(data) && data.toJSON(),
EmptyShallowRef: (data) => isRef(data) && isShallow(data) && !data.value && (typeof data.value === "bigint" ? "0n" : JSON.stringify(data.value) || "_"),
EmptyRef: (data) => isRef(data) && !data.value && (typeof data.value === "bigint" ? "0n" : JSON.stringify(data.value) || "_"),
ShallowRef: (data) => isRef(data) && isShallow(data) && data.value,
ShallowReactive: (data) => isReactive(data) && isShallow(data) && toRaw(data),
Ref: (data) => isRef(data) && data.value,
Reactive: (data) => isReactive(data) && toRaw(data)
};
const revive_payload_server_eJ33V7gbc6 = /* @__PURE__ */ defineNuxtPlugin({
name: "nuxt:revive-payload:server",
setup() {
for (const reducer in reducers) {
definePayloadReducer(reducer, reducers[reducer]);
}
}
});
const components_plugin_KR1HBZs4kY = /* @__PURE__ */ defineNuxtPlugin({
name: "nuxt:global-components"
});
const element_plus_teleports_plugin_h4Dmekbj62 = /* @__PURE__ */ defineNuxtPlugin((nuxtApp) => {
nuxtApp.hook("app:rendered", (ctx) => {
var _a;
if ((_a = ctx.ssrContext) == null ? void 0 : _a.teleports) {
ctx.ssrContext.teleports = renderTeleports(ctx.ssrContext.teleports);
}
});
});
function renderTeleports(teleports) {
const body = Object.entries(teleports).reduce((all, [key, value]) => {
if (key.startsWith("#el-popper-container-") || [].includes(key)) {
return `${all}${value}
`;
}
return all;
}, teleports.body || "");
return { ...teleports, body };
}
const ID_INJECTION_KEY = Symbol("elIdInjection");
ref(0);
const ZINDEX_INJECTION_KEY = Symbol("elZIndexContextKey");
const element_plus_injection_plugin_1RNPi6ogby = /* @__PURE__ */ defineNuxtPlugin((nuxtApp) => {
nuxtApp.vueApp.provide(ID_INJECTION_KEY, { "prefix": 1024, "current": 0 }).provide(ZINDEX_INJECTION_KEY, { "current": 0 });
});
const plugins = [
unhead_KgADcZ0jPj,
router_CaKIoANnI2,
revive_payload_server_eJ33V7gbc6,
components_plugin_KR1HBZs4kY,
element_plus_teleports_plugin_h4Dmekbj62,
element_plus_injection_plugin_1RNPi6ogby
];
const removeUndefinedProps = (props) => Object.fromEntries(Object.entries(props).filter(([, value]) => value !== void 0));
const setupForUseMeta = (metaFactory, renderChild) => (props, ctx) => {
useHead(() => metaFactory({ ...removeUndefinedProps(props), ...ctx.attrs }, ctx));
return () => {
var _a, _b;
return renderChild ? (_b = (_a = ctx.slots).default) == null ? void 0 : _b.call(_a) : null;
};
};
const globalProps = {
accesskey: String,
autocapitalize: String,
autofocus: {
type: Boolean,
default: void 0
},
class: [String, Object, Array],
contenteditable: {
type: Boolean,
default: void 0
},
contextmenu: String,
dir: String,
draggable: {
type: Boolean,
default: void 0
},
enterkeyhint: String,
exportparts: String,
hidden: {
type: Boolean,
default: void 0
},
id: String,
inputmode: String,
is: String,
itemid: String,
itemprop: String,
itemref: String,
itemscope: String,
itemtype: String,
lang: String,
nonce: String,
part: String,
slot: String,
spellcheck: {
type: Boolean,
default: void 0
},
style: String,
tabindex: String,
title: String,
translate: String
};
defineComponent({
name: "NoScript",
inheritAttrs: false,
props: {
...globalProps,
title: String,
body: Boolean,
renderPriority: [String, Number]
},
setup: setupForUseMeta((props, { slots }) => {
var _a;
const noscript = { ...props };
const textContent = (((_a = slots.default) == null ? void 0 : _a.call(slots)) || []).filter(({ children }) => children).map(({ children }) => children).join("");
if (textContent) {
noscript.children = textContent;
}
return {
noscript: [noscript]
};
})
});
defineComponent({
// eslint-disable-next-line vue/no-reserved-component-names
name: "Link",
inheritAttrs: false,
props: {
...globalProps,
as: String,
crossorigin: String,
disabled: Boolean,
fetchpriority: String,
href: String,
hreflang: String,
imagesizes: String,
imagesrcset: String,
integrity: String,
media: String,
prefetch: {
type: Boolean,
default: void 0
},
referrerpolicy: String,
rel: String,
sizes: String,
title: String,
type: String,
/** @deprecated **/
methods: String,
/** @deprecated **/
target: String,
body: Boolean,
renderPriority: [String, Number]
},
setup: setupForUseMeta((link) => ({
link: [link]
}))
});
defineComponent({
// eslint-disable-next-line vue/no-reserved-component-names
name: "Base",
inheritAttrs: false,
props: {
...globalProps,
href: String,
target: String
},
setup: setupForUseMeta((base) => ({
base
}))
});
const Title = defineComponent({
// eslint-disable-next-line vue/no-reserved-component-names
name: "Title",
inheritAttrs: false,
setup: setupForUseMeta((_, { slots }) => {
var _a, _b, _c;
return {
title: ((_c = (_b = (_a = slots.default) == null ? void 0 : _a.call(slots)) == null ? void 0 : _b[0]) == null ? void 0 : _c.children) || null
};
})
});
const Meta = defineComponent({
// eslint-disable-next-line vue/no-reserved-component-names
name: "Meta",
inheritAttrs: false,
props: {
...globalProps,
charset: String,
content: String,
httpEquiv: String,
name: String,
body: Boolean,
renderPriority: [String, Number]
},
setup: setupForUseMeta((props) => {
const meta = { ...props };
if (meta.httpEquiv) {
meta["http-equiv"] = meta.httpEquiv;
delete meta.httpEquiv;
}
return {
meta: [meta]
};
})
});
defineComponent({
// eslint-disable-next-line vue/no-reserved-component-names
name: "Style",
inheritAttrs: false,
props: {
...globalProps,
type: String,
media: String,
nonce: String,
title: String,
/** @deprecated **/
scoped: {
type: Boolean,
default: void 0
},
body: Boolean,
renderPriority: [String, Number]
},
setup: setupForUseMeta((props, { slots }) => {
var _a, _b, _c;
const style = { ...props };
const textContent = (_c = (_b = (_a = slots.default) == null ? void 0 : _a.call(slots)) == null ? void 0 : _b[0]) == null ? void 0 : _c.children;
if (textContent) {
style.children = textContent;
}
return {
style: [style]
};
})
});
const Head = defineComponent({
// eslint-disable-next-line vue/no-reserved-component-names
name: "Head",
inheritAttrs: false,
setup: (_props, ctx) => () => {
var _a, _b;
return (_b = (_a = ctx.slots).default) == null ? void 0 : _b.call(_a);
}
});
defineComponent({
// eslint-disable-next-line vue/no-reserved-component-names
name: "Html",
inheritAttrs: false,
props: {
...globalProps,
manifest: String,
version: String,
xmlns: String,
renderPriority: [String, Number]
},
setup: setupForUseMeta((htmlAttrs) => ({ htmlAttrs }), true)
});
defineComponent({
// eslint-disable-next-line vue/no-reserved-component-names
name: "Body",
inheritAttrs: false,
props: {
...globalProps,
renderPriority: [String, Number]
},
setup: setupForUseMeta((bodyAttrs) => ({ bodyAttrs }), true)
});
const __nuxt_component_3 = defineComponent({
name: "ClientOnly",
inheritAttrs: false,
// eslint-disable-next-line vue/require-prop-types
props: ["fallback", "placeholder", "placeholderTag", "fallbackTag"],
setup(_, { slots, attrs }) {
const mounted = ref(false);
return (props) => {
var _a;
if (mounted.value) {
return (_a = slots.default) == null ? void 0 : _a.call(slots);
}
const slot = slots.fallback || slots.placeholder;
if (slot) {
return slot();
}
const fallbackStr = props.fallback || props.placeholder || "";
const fallbackTag = props.fallbackTag || props.placeholderTag || "span";
return createElementBlock(fallbackTag, attrs, fallbackStr);
};
}
});
const _imports_0$1 = "data:image/png;base64,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";
const _imports_1$1 = "data:image/png;base64,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";
const _imports_2$1 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAADbN2wMAAAEMklEQVRoBdVYXVLbMBCOM4FnjpCeAB8hPUHbE+CcoGSGn0fcR+AhuQHmBMAJQk9AeoK2N2hfgSH9PlXrWcuycUKsGM0oK63k1fdJ2pWiqKfSxcXFV1QT5Fipu1Rc9Pv92dHR0bWAiliYTqd7T09PcxS7Clzwilzs7Ox8nEwmf/rUvDPwhBxbzL3o8vLycLlcTqllQvnb7u5uBna/jKIjP9glw8fHxySKojMFaRxh3z9AYbYOwZ+enqaqQ+eK5+fnqSKx4BbK9z1nvnOIHUAOxpgrsJQ+JycnxqmlLtITnUrRQPqGkBrzoG7AmugUv7y8ZDB0KNGgzk6bbSYKVQ3QIDrl0aDKRtv6SgKMThg89w84zgSz/YGZzq6AxViJRNWDFiu3EEAeCBKCPz4+nkkdMkU06KlowBM8U+3BipUrAAT57A8GgxI4NxoEQ+wMVEfA6drNaiUBbI8fAhknIP2hkHgqikL3FV0oWekDAJAhmysG9zqceomtdE1gz8/PB/CR/EhHWfsHuwRLlStAp9UzC5ApwupPZpYFIfvgAMykHlpWEiAQzPhIk3DBsY19XH3Iet0W6vG+DTAmzgMsb637BEfgKM+wShnr20y1BASY3SKZ1NuSOBBj2sZ4i6ZjNCLQ1Ni6/SzwG3w/pA3U7yEmTYjU+gCNtZ0s+DnGGaqxRijPZUWUvlTcKgEFfq+ErNej7lUSWyPgAX+HF4cvzAB+ZwkJicTWS2IrPuABP3bOklv0IegrZJK4Qp3OnaFcSMFXoAF4A9CCHSu0JMFbbyEFJdAUvCD0kJjBBlclT8EIrApeEHpIJNJGuZYP8I0GFzpzKuMq8d2e2NpuobwueDFCErDBamH2qVh5BWAowYXuAVeJW2Ze7qijMV+ybYzzEipdh/V9VtJ5VsL0WYkAwHAGmAUMjZgogev2GSs6WfC6/1rgxaaPRGMCFnwixlyJ1UhtH9OkwEvXN4EXI5aEVF/3Ac/b0F/cRlNYWNAKgB9CfGIZKQHwIdrvoJ/+V5nfjYBX9vJirRPTWbHHb9A7tl/8hvyMa7QBb3X3zmyPAH5k2yhaA0/jlVsIoPho9YA+Bjz/A+BNKMYSavC0ISekPnSMHt/wRpmZSks/XgJwyBHGmyPvcVyC5z+vunDpczCsxAG3IG20lUoEuB0wsAZ/jS0T14EXcB4S5umxTRIFAjYUMuyZhJkn+MRWG4nQJAoEMPOpQjleFbx8G5JEgYAAgHxz5AhFwiXAGP/RDq74rFcMQcIlMMK2uV8Prv+rtkkUCGCwUoz3w1pN2yaJAoE2w92mSPB2oKevz0NKFL5XaGnbhNwECfdVnCuQCTiQ4Sv0mctS2jchK0jwvlWbiInYiFE6IuzPIlbQsEBlXxreg+TO4Q3B+MBrr9BdI0Tw8ipuVkAA8h6ExvwVWvRdkQTObWO3oYH1D6b3GS95f85qAAAAAElFTkSuQmCC";
const _imports_13 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAEZ0lEQVR4nO2ZUU4bMRCGvUi8gcgNmp6giwCJN8wJmp6g9AQNJ0h6AsIJGk7Q9ARZ3pAAZTkBuUGD4A3B9rMW0kzWXhaSTRPiTxrNLHhizx/biZ1ALTleAGyp8QJgS00hAXZ3d6v39/d7QRBU1QKQJEl/dXX19OzsrK9eIMCc7OzshLzYEabVAsIbFmGH5+fnMY9WnAJQ/MHj4+NPwoVnZWXlGyK0lQWrAFtbWzXcL+w98eXy8rKDF2QE0FpXbm9vrwkr2HtisL6+/jGKogHxkIwA29vbddb8EeG7w+wHFxcXLcIhNgF6CBASjnPCWmqxlmLiuYW9K2TvqhN+xQQIECPAJuGQjACs/wQ3zhXrJ8QvDNQR4z5hAuoQNYsHA4k2AY5JrOMXBupo4b5jAuoQNYsHA4kZAZg6P5g6TbVAsJSbLOUGocAL4AXwAoiaxYPBC+AF8AIkOIEXwAvgBfACuASgfY3/f6czjY+xNifGY/7lRKd3DkeENWyARZzVD8fP6qPofzlapXcVEfd+h657v5kIQCeuuwPn4UmnhVwTVrBRrBcWBp3m9AirSjJAhE2bCIytfAFo+wdXwTJwd7DJTIgJBeS0leWs/sQJAzxQY1CMS2gztt+MrUYoIKdcAehA00GX0Ao5h+S0CAXk9cgLCTOQk7mwMJATkbNHaKNPUR/xAnKa5DQIBbQNcEPEg6GoAE83Lz1CK8wA600sA4sY2B5hBvo5pR+txiCnQ85nQhtXFJURlJwmOQ1CAW1FzeLBUFQAA237SqkP2Dg3rM3wNWvT4OoHsfOu6I8pqo4XuPqhrahZPBgoKsEJXAOjE00nHcINbIjr3X+GPmLcJ2yUKwYX4q3Ql20WXLFx6siycdK+SfsGoYA+RM3iwcDgEpzAJYDh6WezOm1COuzj27SN1AswwDpOq5SInBY+FzMT6KNGWME6eTm8fpO2DULB1AWYV7wAXgAvgBfAC+AF8AI0CAVeAC/AGwQA6zl9nkGADgKMnx0KCTDAbWCjDDjg7HPAiYnnHs4M5qjeJaxgo9wggPibTYC2st/YDLAOy6GvCkA70/50UtFMMbZ30gVtqyq9a6xg42RmckYApo7mRbqEUwEhWmtraz9sR9Y8NPeAd3d3vxiLVlOCseyzl0VqhIwABkTo0HFh1V+CjmNE2C8qgk6L7yaOq7O3wBh+U3yNUGAVQDMAbmEjlb20mIQ20+8bPhdN39MuHpwXJwFmRacDaTOQzzxOi1wRdNpnN5li8eadZ/YdRJbiDQGWC8tBM6ADlW4sG9ikWEXQ0y3+BjMbdptpH6kcAmzqmJ2bj6FIuQXLiIDQvZzib/gY1pN+otgIsFIoIgJFHeM3KLyJaWWntOINpQlgQIS86+wilFq8oVQBDBOIUHrxhtIFMLxBhJkUb5iJAIZXiDCz4g0zE8CACCGbXQvb49HGCT+pNW0/qZXFTAV4xvya9PDwoBGiqgAf802N7yr2Lytl8l8EmCe8ANhS4wXAlpq/sWppbrWv2fQAAAAASUVORK5CYII=";
const _imports_14 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAE40lEQVR4nO3ZjVHbSBiH8f9WEKeCiAoiKshSQZwKTq4gpgJMBZgKMBXEVwFSBSgVRK7gTAV7j27ZwQLklWTMx8Ez8xvPxF/xK61XgNE772MAeNd9DADvuqEDSPEdibyXrJL3N0r0yqBPVtIFEr3O6gEcI1fHDLqWyX/4t9AEC3XIoEuZ3s6HD02wUCSDWCP8QX0bWmEmf8rVXrL01hyfEFrjAPVtawaxpjhD6DesIi/8Ao2QS/qK0DHmaK3LAHJJ3xA6RInXWIprhApYbckglkNohUSvu0rSF4QMWtt6520OoQJWr7slviNk0NrWO2977gEk8ksu0V2V/HtXijfGL9SdY4rWDGI5hApY7acUJxijrVzSKXJtL721xBqtGcRyCBWwevpOMFP3FvL7/M4ZxHIIFbB62i6QqX8lDrFTBrEcQgWsfCnqtZaoe3McIzSTP/qbrVA/rkQl//oppviCzc5R//vgDGI5hApY+RaS/kLfDlEikb/C3OwSU6zxWDM9HNgRcg3MIJZDqICVb46f6NsBKj0c4CUyxZupOYRcfgiDMojlECpg5UvkhzBC15aYo+4fjFB3g0TtR/5+lZrL4QCVBmQQyyFUwGr3UlwjdI4pulY/9gyhCRYakEGsfQxgjF8I/cASXbOSrhA6xUwDMojlECpgtXuZ/PYXOkKu7qW4RugUMw3IIJZDqIDV7lk1j+AEC3XPqvn8U8w0IINYDqECVruXqLkFXiJT96Y4Q+gIuQZkEMshVMDKZ+XX8QhtVfL7/hr3qzTsm3yEP6hvQ5+xRu8MYjmEClj5Fmru421NsNDDZmru5yUOEesCme66RKaBGcRyCBWw8s3xE7F+YIn7jVCp+Xu8EvXjKz1shDNkanaASgMziNU2gPo/NEei9nL5I92WVfPLLLSQf24l/z7jWyNsdow5BmcQyyFUwOppy+RP675dItOOGcRyCBWwerqs/DIao2+5/PaXa4cMYu1jACOcYIpdW2KCNXpnEMshVMBqt1JcoL59rBUqNY+slZSouW1utsYRSvTKIJZDqIDV8FJcYYTNbrCQ/0Kr1F4iv+4zPT6MCRbqkUEsh1ABq2GluMIIm51jJn8UuzbCFCe43xFydcwglkOogFX/RrhCitANxsg1vBS5mtcSaxyiUocMYjmEClj1b46fCN3AasCafaREfghfEMrlz4RoBrEcQgWs+mXlj/5mR8j1dKXI1TwTJlgokkEsh1ABq35dwequU8z09GXyu0uokr9M3ppBLIdQAavuJfI/uYVWqI/WGvuoxFeEfmCJ1gxiOYQKWHVvijOEjjHHvsrUPAsukWlLBrEcQgWsupfL/6Ez9Blr7LP69T+hrlJkGRjEcggVsOperrsBlDjEvst19551Bq1tvfM2h1ABq+4t8R2hCRbaXymuEVoh0ZYMYu0ygEzNNfncnWKmLRnEcggVsOpXia947m6QyH8ntGYQa9cBjLDENzxXK4xRYmsGsRxCBayGlck/N9H+WmN5a41oBrGeagCvMoNYmwOoFNlX31oGsXI11+8hSvwv6jKAKc4QKnGENd58BrFGqHR3eVlXye+vv1HizdZlAHWZXvaCpksTLNQzg65lev1D6PN5/qvvE6z8lL/gtbVCop4ZDCnFGIm8l66S/z1DiV4ZvOs+BoB33ccA8K77F/DNI1Ad1eJHAAAAAElFTkSuQmCC";
const _imports_5$1 = "" + __buildAssetsURL("menu-icon-gray.d61f02b1.svg");
const _imports_7$1 = "" + __buildAssetsURL("comment-icon-gray.2c8779f9.svg");
const _imports_7 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAADbN2wMAAAFFklEQVRoBdWZW2icRRTHdze7MVsviblYRVEbr4iihnjpmnuCxEARtQYFxZc+ircHfUygUkXQPlnQKuibBEEkNRISkxDazUNDQLBREW0pPtikmsqa2N1ks/5OzLecmb0k+/ml+zkw7DlnZs78/zNn5puZDQZ2KI2MjFwVjUZfxf1+8q3ki+STmUzm/a6uri+RPUlBT7xYTsbHx+8Kh8NfA/ZGq8hRP0U40NnZueYY3P6G3DYs1G5ycrKmoqLiqyLgpekL5DcL+SjF7jkBOn+ZfLMF4i90e7RfGxsbKzRDVvPC6k4QeFp3FwwGjywuLtYRUtcgx1VZBJtRV5VtW/ScACBv070TSgf7+/tTra2tS+vr6+/qMuT7LL1k1VMCs7OzEQBHFIo0C/U3R2dtfO/I8gvZ27XuRvaUwPLy8g2CSwFZUnIAAr9qHbI3ad2N7CkBQuQWDYIRPqv1lpaWBLaUslUq2ZXoKQEQ9GoUjLARMlKGLUsAMhW6vhvZMwKDg4Pi60kLxJjWh4aGBPDljg0yq47s9tczAu3t7c8CYo8CcjGdTh9TeqChoeFqdL1GzupyN7InBEZHR2VUD1oAPu/p6fld21gjTVonhE5r3Y3sCYHKysqP6FyPfprweNsGFAqFHrVs31l6yWq45BaqASCDU1NThzA9o8wiHuXEecqyiWoQIMS+yVOnJJNrAsPDw7sA/wG9PWf1+FMkEnndsgUmJiYewnaPsieqq6tnlO5KLJmA7DZtbW1PEA7vMQP2YewCo7qfr2/CRkO8v2LZrkwkEilOr3LQ285uJPeJefJn5E+co7jeEbDnT3RyLSV3k9vJz5PzfUETEHqM0DlBuZHkiAHYPzFGjQL3yixN98kxRWK4lY6PYLi+gD9Z6NUFyjbMjO4v+Hgch3kXZTwej6ZSqfPU2VXMTyll9Dm3sLCwN4TTj2kooyt7dL5cDHwGRx+urq42FQIvoGKx2N/08xJ1/xDdi4S/pvr6+gNBwkPir9S1kKbNF+zrb3V3d89tF5CsH+oXG5CCrpLJ5HXcHw4DXO9kM24IvMhClY/UuYK97VABd+3dnGizx3O6SeR8yIjV3TCtdTKVZLSzidvV0XKAFwCAT2aB/CtEJHSMnaiurm6pubk5u60RYkabxsbGjGG4hApr6H5CSPd4OmcG2O6MGjQwCNrl2ttOy2B5xOrjRA4Bq4KvVGZgrwYEoRnZRo0RJsaNGdANyilv4nxYY2BNzPxvZmB6evpOSNQqAkuszx+3JMC0+WKG+ObEFHgR43xX1rckYDUqp2rEP0A2TrI5BObn5325BgBszACBEZfRzCEgxmKpHASJ9Rri/w6FS258J0UP2zGuKvlGBGwMnNnBRv62o6ND7hGlz0A5WAHYiH8IbYRPXgIDAwO+WwMQMOIfAtmraHZaioyssY1eaoLyGAbgBzU+CBWeAV3RDzKHy3vBcYXCco7L0xlH384MOHXL8svjgRH/gDiugQgBI0SYnqJrYKty7dwj2SaQjX/x7/sZAKOxgHX8+56AXCEBuUeAbqbkysqKcQf37QzwR/llXGsPOcg3f+f6+vqS2pbzGsE70c+6AluYVgN2uVHooUK/teQa7RL9mNZFziFApUa7kta3Ktd1PZZ/qKqqOmz7lBA6bxt9qJ/hKecpeSCzscmV8g2M8nDqu8SOs0B+B2AP8JQjD7s5aeMbIE/lpAbI/Oc/3XJ6cGlYW1u70Nvb69lTpEsYO9/sHwHIu0q4cL20AAAAAElFTkSuQmCC";
const _imports_17 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAQKADAAQAAAABAAAAQAAAAABGUUKwAAAD30lEQVR4AeVa7XXaMBSVDANkBDxB6QRxJmg6QVmANp2gZAOaDBCYoGwQugGZAGUD+F9Q7zPIxxAZy7ZkG0vn5Ejoy/fe954+7HDWgrRbf/8FGPeMySFyIRmf9MOneR3QeB0PufQMkJ+AOAlwlvgqYMEdD6ebswarPwOrs5WaTP7QD5PDPdu/6tvs1bZAAHaTTUcODx6S3aNqS6MhINcP0Z7tcq0csF6IUBBVyerGt8EDdLhO6iASFkg3qVEBEOORGS3+zaxf8V6NCmAOVw4RLhfWCvOZzns2KoBkMjoHdOH38EJb6abGBCCLYgW+NUW+Y7uBad8i/RoTACCjIkA544Mi/U37NiYALDoyBemyXyMCwP0HcP8vLomZzt2IANj+JqYAXferXQCyPi4/zvb1ooLVLgBi/6UoSOqPLVOUGZc3plYBYP17xH6UB0rX3mM9oauvWlebAOT6ONOXsv6R5KYqWd342gQ4un7p4yxugysdgap1/aoTmIzfrcdk+cikb0aft4z6ytXOPeDfejwCSvqrkLgT6xMgpwIQeSx6VeJeiSZUwXbuTACL5GGlYGmbuJoPBrKfbJIndL3w2QlOmtu6B9gmLxn7S0BdpRNl5Xp8a/ogHj5/AIa9/gZ7/RpzlN7uNM+fwUozTX3pqjT2WAA6oR0PKQWA81UvfPqcRnGc50+6rqVlgTfNX+lsEQA0PkDsCHQB8kQrfk8XUUkl3PKGqtzynE6lr+A+CHBCm7QcrCt4CNf9JEAMGMe9KyQNzvuJdoGCrt8gXOuPlpwEeLc+79VMiC/Q2GfF1eC1DlTiE7zHCVvhCosgF75qgHPAkjzASwEQ+vFJ1tsQgOcvyfOxCLp520qTtznhir0ifIGrt61tJn/EtqTcyxCg+McCuFECCCr4lFT8E+cASgifyMekWbBQnH0MgS2MHi+ABzEOUnh0H+CJ9RMBfLoPYPv7KICKBw/yLTgu0zzjNcCf+wBfqO1PiaAWQaEqupyfuz9xVQJ0mbfiRqv/SfwnAvhxH+AzpUQ6jz3Ah/sA3H+aJq7KvoTAW9aJVwkglCJdzHHO0VqfuMYCZKnTETG2/fB5lsVFeUBWewfqeab1iVxagE7eB7D4zS5ZMRGgm/cBPs8L70SASypda1vW1pfmkwjQtfvA8bXXKk1WV04EQKPQdbjWOhzuHkywJwJ06zjMHxH7udYngRIBoNgSv+m+fOWJz/GvOxNTEokAtFoibozcJjX5JlWGmoePDem6GstkvJ8gPyryzEQAGkQnJnwxvaMFJGeS+GHnbobfC8b475yxNpvfD1j5I3AP8P+E06KT/wdPOffX7me6UQAAAABJRU5ErkJggg==";
const _imports_12 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAgKADAAQAAAABAAAAgAAAAABIjgR3AAAGo0lEQVR4Ae2dTW8bVRSGEydOihDEUSW2ICQ2wBJERSLRDaJlwc8obBI5ShQkVl4SN5aVOEIgfgb9QioqCxcWXSLY0ILKjkWkuBVK4yQO5ygzMHbjyXzcO3PPue9Iluf73vu8z1zPxJnxxAQGEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABPQQmbTVlZWXl9cFg8GalUnk2MzPzYGNjo2erLI37rdfrtZOTk3epbbPE8Ld2u/2HjXYaF2B5efkNqvC3VNkPIhXuT05Ofj03N/d5o9F4FpmP0RECxOdCr9e7TuFfo0Uz4WKavkevT7e3t38P55l4NypAEP7PVLGLYyrXpd7g42az+XTMcq9nr6+vv9Tv928RhMUxIHbpQLpEvcHDMctTz66k3iJmg+DIHxc+b7lIDbzNDY3ZjZeLgvBvM6MYABepF/gmZnnqRcZ6AP7Mp8o9SliD+9QTXEVPcEorEv5CEn5TU1OvtVqtx0nWPW8dYz0An/CdV1hk+QJ6glMaacPnrQ4PD9+KsMw1akwAPttPWRPvJcgSPjPOwHpsNMYE4Es9KqU/tqSzF3grQdbwCeNBwPpsoinnGhOAr/P5Ui9l+by6dxLkCH+CzrO+MnnuZEwATpKv8+mty+MpB28kyBM+Me3Oz89/kZJt7OrGrgLCUtbW1l48Ojq6QdOXw3lJ36kH+Ym2vdrpdJ4k3UbSegGbm1Tn6B/JEjWB2VSr1Ssmj34u2LgAvFNIwBSGBxfD5xpaEYB3DAmYwungavhcO2sC8M4hwX8MnOr2OZtwsCoAF+KzBC4f+YUJ4KsEEsLnbKz3AKFpPvUEUsIvVAAuzAcJJIVfuADaJZAWfikCaJVAYvilCaBNAqnhlyqAFgkkh1+6ANIlkB6+EwJIlUBD+M4IIE0CLeE7JYAUCTSF75wArkugLXwnBXBVAo3hOyuAaxJoDd9pAVyRQHP4zgtQtgTawxchQFkS+BC+GAGKlsCX8EUJUJQEPoUvTgDbEvgWvkgBbEngY/hiBTAtga/hixbAlASzs7PHdDuas/+3z+20ORT2X8G2GpHzZsv7Qb0SPZljpA0qnnIiXgAOJejCM92QOhJqoklbN2omKtzwSioEYCZFSaApfOamRoAiJNAWvjoBbEqgMXyVAtiQQGv4agUwKYHm8FULYEIC7eEzI6MPieIdOjjkOtHd39/Ptb2DPIaqpLZxef68GyXEvYDmB1epFMBU+KEImiVQJ4Dp8LVLoEoAW+FrlkCNALbD1yqBCgGKCl+jBOIvA/nrYDpL/57CSf34VdqGvw4OvxIO8z33nR7Y/D79aMMtLvvclR1fQbQAfOTTD098R4xTf5/PZ/b8qyXT09Mf0fY/ZshpgX644c7S0tLLGbZ1ZhOxHwF5uv3Rv/AF+8r0/wTSLxFFCmAy/PBQ9FUCcQLYCN9nCUQJYDN8XyUQI0AR4fsogQgBigzfNwmcF6CM8H2SwGkBygzfFwmcFcCF8H2QwEkBXApfuwTOCeBi+JolcEoAl8PXKoEzAkgIX6METgggKXxtEpQugMTwNUlQqgCSw9ciQWkCaAhfgwSlCKApfOkSFC6AxvAlS1CoAJrDlypBYQL4EL5ECQoRwKfwpUlgXQAfw5ckgVUBfA5figTWBED4oQL5HmFn+74DKwIg/P/DD8cCJs7dfGJcAIQfRv78u4sSGL03sNFoXKAbNe9Q0zPdqFmtVq80m82nz6PTMWdzc/Mfuh/xE2pN1htSbzJjkzSMCtDr9a5T5RYzVFDFg5eTtJsF55tSad3UEjDbvb29L5OUk3QdYx8B9Xq9RoX+Ta+ZpIUH63kTfpRLjqecHxwfH7/S6XSeRPeXddxYD0Bnq+9QJRB+wiRy9ASz9GwCZm1kMCbAYDBI+9nk5ZEfTS2rBBlYR4sdGjcmAHVLvw7tOX7C+/BDPFkkoJPlNKzDos58NybAzs7On/TolHtnljI8E+EP85hIKcHdVqv1eGQXmSeNCcA1qFQq1+htN6Y2XT4D5gbHrOPloogE3RgAu9TTfhazPPUiowK02+2HdDJ4iV4/jNTkgHqHdq1W+xDhj5CJTDIbZkSztuh1EFnEo3cp/Pfo7P/RyPxck8YuA0drsbq6+ipV+G2av09H/QMEP0oofpofPhWc7b9AB88vW1tbf8VvgaUgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIg8C9yNG0zv/zA5QAAAABJRU5ErkJggg==";
const _imports_10$1 = "data:image/png;base64,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";
const _sfc_main$3 = {
__name: "commentList",
__ssrInlineRender: true,
props: {
token: String
},
setup(__props, { expose: __expose, emit: __emit }) {
const $ajax = inject("$ajax");
inject("$ajaxGET");
const detailsToken = inject("detailsToken");
const handleDate = inject("handleDate");
inject("isNeedLogin");
inject("handleMsg");
inject("uploadImg");
inject("handleAnswerText");
const emojiMaskState = inject("emojiMaskState");
const user = inject("user");
inject("goLogin");
inject("detailLoading");
const commentList = ref([]);
let commentCount = ref(0);
let commentTotalCount = ref(0);
let commentPage = ref(1);
let isgetCommentSate = false;
const getComment = () => {
if (commentPage.value == 0 || isgetCommentSate)
return;
isgetCommentSate = true;
$ajax("/api/comment/lists", {
token: detailsToken.value,
page: commentPage.value,
limit: 1500
}).then((res) => {
if (res.code != 200)
return;
let data = res.data;
data.data.forEach((element, index) => {
element["isReplyBoxShow"] = 0;
if (element.child.length > 0) {
element.child.forEach((el) => {
el["isReplyBoxShow"] = 0;
});
}
});
if (commentPage.value > 1) {
let alreadyCommentIdList = alreadyCommentIdList;
for (let index = 0; index < data.data.length; index++) {
if (alreadyCommentIdList.includes(data.data[index].id)) {
data.data.splice(index, 1);
index--;
}
}
}
commentList.value = commentList.value.concat(data.data);
commentCount.value = data.count;
commentTotalCount.value = data.comments;
commentPage.value = data.count > commentList.length ? commentPage.value + 1 : 0;
}).finally(() => {
isgetCommentSate = false;
});
};
let picture = ref({});
watch(
detailsToken,
(newValue, oldValue) => {
if (newValue !== oldValue) {
commentPage.value = 1;
commentList.value = [];
picture.value = {};
commentTotalCount.value = 0;
commentCount.value = 0;
getComment();
}
},
{ immediate: true }
);
let emojiState = ref(false);
const emojiData = ["😀", "😁", "😆", "😅", "😂", "😉", "😍", "🥰", "😋", "😜", "🤪", "😎", "🤩", "🥳", "😔", "🙁", "😭", "😡", "😳", "🤗", "🤔", "🤭", "🤫", "😯", "😵", "🙄", "🥴", "🤢", "🤑", "🤠", "👌", "✌️", "🤟", "🤘", "🤙", "👍", "👎", "✊", "👏", "🤝", "🙏", "💪", "❤️", "💔", "🌹", "🥀", "🎉", "🎁", "🧧", "🌙", "⭐", "🌍", "💌", "📬", "🚗", "🚕", "🚲", "🛵", "🚀", "🚁", "⛵", "🚢", "🍎", "🍐", "🍊", "🍉", "🍓", "🍑", "🍔", "🍟", "🍕", "🥪", "🍜", "🍡", "🍨", "🍦", "🎂", "🍰", "🍭", "🍿", "🍩", "🧃", "🍹"];
const closeEmoji = (index, i) => {
commentList.value.forEach((ele) => {
ele["emojiState"] = false;
if (ele["child"] && ele["child"].length != 0) {
ele["child"].forEach((el) => {
el["emojiState"] = false;
});
}
});
emojiState.value = false;
emojiMaskState.value = false;
};
__expose({
closeEmoji
});
let inputTextarea = ref("");
inject("handleMenuState");
return (_ctx, _push, _parent, _attrs) => {
_push(``);
};
}
};
const _sfc_setup$3 = _sfc_main$3.setup;
_sfc_main$3.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/commentList.vue");
return _sfc_setup$3 ? _sfc_setup$3(props, ctx) : void 0;
};
const __nuxt_component_4 = _sfc_main$3;
const useStateKeyPrefix = "$s";
function useState(...args) {
const autoKey = typeof args[args.length - 1] === "string" ? args.pop() : void 0;
if (typeof args[0] !== "string") {
args.unshift(autoKey);
}
const [_key, init] = args;
if (!_key || typeof _key !== "string") {
throw new TypeError("[nuxt] [useState] key must be a string: " + _key);
}
if (init !== void 0 && typeof init !== "function") {
throw new Error("[nuxt] [useState] init must be a function: " + init);
}
const key = useStateKeyPrefix + _key;
const nuxt = /* @__PURE__ */ useNuxtApp();
const state = toRef(nuxt.payload.state, key);
if (state.value === void 0 && init) {
const initialValue = init();
if (isRef(initialValue)) {
nuxt.payload.state[key] = initialValue;
return initialValue;
}
state.value = initialValue;
}
return state;
}
const _imports_0 = "" + __buildAssetsURL("logo.6622f82d.png");
const _imports_1 = "data:image/png;base64,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";
const _imports_2 = "data:image/png;base64,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";
const _imports_3 = "" + __buildAssetsURL("add-icon.0b0b5313.svg");
const _imports_4 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAIKADAAQAAAABAAAAIAAAAACshmLzAAAED0lEQVRYCe2Wu09UQRTGdwlYWWMAIzEhWhCJhRgVAbHzAWil1sT/gKcKLAqG159AYimVgIFSeVOglSYmRhPFEEiIlTQ2sP6+y5zr3OUuLFDqJLPnzHce883MmdmbSPzrLXmQDRgaGjqNfyO9Op1OFyFPuvjVZDK5Dja3tbU10dHR8d3h+4qcCDDxdZL3ku3yvhlxgMwS4nFLS8vMfv57Eujr6zuRn5//goQ3vESf0Sch9BW55vBifMrA6pFnPN9Jxk0Q2fCwiJqVwODg4Hk8J+inXMQYyVIk+xDJkDFgtyogkgK+60wrxDVki4sloMkJmifRcZJsoN/LZTvdhIEYGBioI26UQSF9E/1qHIldBLTtBQUFywRp5Z/y8vJuNjc3r6AfuA0PD5dub29PEVhOX4HERUhEjiMvM6vOHEyTbxxlcuUVcXLcUi56KTs6ItxvEQKqdlgGBYfz/cOu3J9AOcj5wGH1HG+tb48QYNI+Zxxra2ub9h2lc64XSFCVidtYNvnY2CTb/hZ9XGPIPDdcMiTgHplLAnFKSfqN86wEV20s4Nvp26Q7bEE+cSTAu+XHIq+oNqSrhQQw3NmBEl/iqpViOoY9KFp8n7LaLuefkC7MjZPo8o00l1NviEjoNQ1aSACGVx322smIaG1tXSSw1QN7WHU3q20D6zGcPF3t7e1LNvYl8boRatU7IroDwbtOgi9mzJTUxZBPAj2Ff7/5aXJW+szGMTLITVyJ2cIdAChy4JoZ42QmCfPJYfIEV3Ld+RdbnE8gLZCz3vU4mbMn/TiD4zCzBdLLHcwl0A+ylYfsItFuoDP3t918dByqCRvHSeKCXUbaXH8JGIgsiwsWpmrHHp45kK5jeCVFwr8divEbdsu9mwDGOTkzQXhF/GASq3LDakfv5Gb0qkv3fHv6+/vtRnlwoN7WL0cxa4bwCPQlI1As2coKczBJAf2WWWNIPnETB2bpwoIBPujyjTTlBD8DyBTp8KqHBPQZhcOSonBISfqNN/0dJCphX8VVsyc7dBEmm3y4Ke9Dg1PIGewecyzyTvwwe6TiYXkNx2kZkdfj/g8s8CCSvPqke+NiatixeYsPd0AAq5hBTEqH6aj/Zgs7TFMOJn/pYsf9yYVFCAhg4ibECr2QLZ06CgnFKody0b9xPA+RkbaLALugT7AGvDbp5SRY1tFEonIY8F7UKVY56L/QG6mjn5mhkRrwjapatk7VWiocUq+4KSkK6KPvl6lzBc+xUhWcfZR+0+TZ4rISUGJIFEJiBLVeY9f0l6rPbf2xBA8KE5Qw1iOje36Wbm1c2x63cnPYk4A58QjVouvqVRm2l4TMAsQfZRZcXExOBCzQVXQjyWuYpAhpf+Gr6Pqnm2U3Jvx7brH/ZbYd+APZxM/2zgvhdQAAAABJRU5ErkJggg==";
const _imports_5 = "" + __buildAssetsURL("dot.1026a040.svg");
const _imports_6 = "data:image/png;base64,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";
const _imports_8 = "" + __buildAssetsURL("dot-yellow.4b5e135b.svg");
const _imports_9 = "" + __buildAssetsURL("dot-gray.86cdd7b5.svg");
const _imports_10 = "" + __buildAssetsURL("empty-icon.24a01ae2.svg");
const _imports_11 = "" + __buildAssetsURL("close-icon.86743366.svg");
const _imports_15 = "" + __buildAssetsURL("view-icon.da7fef35.svg");
const _imports_16 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAQKADAAQAAAABAAAAQAAAAABGUUKwAAAE8ElEQVR4Ae1a24tPURQexjAxuZVcm1FESqHc80CDkhIpCsULcnlQ3kSUFy9480L+BeWdPGBGQiPEw8wowjAz7nLn+6bZ0/7t+fb5/Y5z5sw+J6vWnHO+vfY+a3177cvZv6mqGjwZgVfvhV6BvoR+h76AXoJuhg6FFlZWILJW6J8IvYWyGdDCyVpE9AUaFbwpY2bMKhID0xBMZ4XBGxJaYF9TFBLOxQzekLCnCARw0vssCHgPbD90AZSBdkNN4ObaBCz3shQRmIDs61Ynso0euzGOXe4eN3gCq3Mi4Xi3CTL3ix27VB6zXGs5BFz5BYDDwpYfeODs78qArAZZEsAVwJVPANjDrrS5AJ5zT8B0EdRzgRHqEvhYgSWGsswA1YPPPBG8FXi1wBJDWRHAiW6l8PaJwAh9FfgwgSWGsiJgHTytFd7yQ0jJaAEOiK8D0qhwfqfA+PV3TeCEFAEdHttEcBYE8MtvvfCSn70fBU5ogsCfCix4aAg8vA41mxn7usrjPfcLZnm07Rs99kHDR+CdHYS5vwuc5ChhoMbOvjYo45CxNXDupyeY1RGOnxJ1nkbYB1nEAPmVZ/egub9cxuN7ot6FMnWCKt4JbzjDm4DtK2fySRHeLvTU2xJRJ1FRmpuLqfDkNNT9vDUO8sNnO/SVAcT1sMAI8ZD0XydBHr/x/PEa9AE0dalHiyegXNLs3rbvf6NsFzRKSKAvc+y2ktzzoHVJlBOVlE2GEcf4ISh3cuzZKKdYfhBaTvbAIKqdtMo4Me+2neE+nWd17dDuMvoO5XEcYVbwhKcSOQCjOG0nsWVGbjJOnR+gF99Bu3PNSyq4ToTNG2iSwOLU7cS7RnMz8hqqtp6A/0nY6yehZ6FMtzgyE8aHoTOgvo1SnPZoy3MEHrhW88ERvqvqGzQOcz5bEnkUOg4amsyHQ+xx1/erdDQpARxC3PWluaTSr7TlGBp0Ceik0yrVLgLnkmELWdxnA733B3EliaFLu3BwJDG19u4Qxpw1XQb5rE57RfVBhzg8Xf+7fOcBNHRFZQptlK1bN4TnZcKJFhLgC0zYSygPBDBG/jLlSlOcDHAr5+l5DpwdLxz2EiBscw0tF94zc5t9GSDsEw8V1WZWmBr/T/DyzjgE+JzNwxygMuAmA0pjEvQREwrOnels4UwTMV8G5KFXRUwSYu+rla4vA2StAoFq/L9DfI8Zoy8D4sQferao8c/055lALAJUGsUhajBs+a2zSLy4Z/wT902CofeqiElC84DWiZKe8U88jSEg2g8GUunPM8rbxsM0CAg5W9QEeB/Bf0iTANNWiFeVAX3jnw7HyYC8TYJTEF+D6JWKCAg5rUVMElK9T8O+CZAPvlWAZZVKqGSp8d+BoNrswOIMAbteHu5VBtxwHS8qASMQKH8LcKVk/LPQR4BK6zxNgtz9kQRXSsY/C30EuBWjnhVZUfZZlKnx/w0v5r/mlAgJyFPPljgf8aAIYPD9/gGTBITYgxGxlS2qgYWaAPuNf7aUxhAo61GGBsPxrjNQ/tLsiiSA6a8ygOvlZ6eFUXhWDZesq06dLB8ZB4+/1PE3U78eyp/f+wkrFl2ZFV7hyUiRCXiI+NSZQA8hnANae+6K+acZYTVC+a+3XtmGEh4SFCkL+K94x6G10EgxewAeHZEpLiF5FZ7/cbPzCHql9x6X//KfgSgG/gK9mIkzqc2oKwAAAABJRU5ErkJggg==";
const _imports_20 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAADbN2wMAAADpUlEQVRoBe2ZO2gVQRSGTXxEo4UJYuEjGkHBoCjaKqIWViKIKFgJVkpANGlErGORSkUURBAFGy3FwkZFfKOJDxBBBG0EwfiM78f3x2wye+7c3b25s5uL5MB/d845M3P+M7MzO7u3blyyNCW7U72fqfE9tVa8wlRUtRuRTKFVJ+gBCvynSqiPE6AOpMlsKjwGinkJNIOKpIXaj0C1pH3t12Zg0m1iP0EXp0SpH/Rq5C+CJYm1R+5UUmnSbyq0od8AS43dq3Zg9Y1ctbZv9HsMZLmFplOv18OjD9sakCgP8Lpkr6FrBLSIq8Ek2lciSuIKcLmo/AVsAV7R6NgFu8hbsxjjZMKcBzaJX9jaLQWRbwR225qI7aetnJOu3UaLfCVYDLQbzQCtwCddGA8AJTggSsBmO2HQl9dFe/0OoFtVA2Xjp+mnaDMkRSYwjaj7wRuQRjLNvz7KoKgENhLwZQDiUWKbi0qggUDHU4g/x38S7AYbgNbDMnAQRITd623sQztcnjOgBXqzDAltHEfBCuCT7Rj1HHGJq6xjhm7FIckrgZlE8B1NtB1qRuQvJ/tw/AaW/Gls2iFjkkcCGqG7wBLQGlgVix5XtK13A9tO+iEgf4nkkcAFolgSt7Bpfy8n9TjOAttOM7anXCPZQyewiz4tCe332vuTZCtO2+4rtm1JjeQLmcAs+vsAXCI6FuuMkybtVHDbvUdfl9ZI/pAJnKE/l8Qn9DYFySBK8iFQ+xdgOcgkoRJYSDR7LOjMxGC40niKC0DJTjNcpbQUKgGd+93Rf1YpkVJq2SwhEtDT9i1wE9iZLXxFteZSWw+/I2BO1DJEApvozCX/Dl2vqaHlHh1Gce5EnYdI4LDTsQLEjrtRoCqvmmX36axygx4eIWS16eSy0UOoWuDuk1hl2areRjUI/SCaWl3ngdDiu1MaQ8yAFpN7vyuZV6HZl+svRALNpvPX6Lo/C5EQCWhqXfnoKnmXQyTwFJI6MkRyPSoUdfUtjkq/SuiMfw50Ab0L5CE+ngOz73NUmkAehG2fPp5BdiEbqFA9xBoolLANNpaAHZGi9bEZKHrEbbyxGbAjUrT+X8yAPh79MCPXYvRaUOcbEvpbTP+dDUgPv+4Lid6o8ngp+Ret8t9WmlwFLsf7bjcdxulWrNXyXjcBvVH5PoXXKvle+OrfzJjovo8+7dUqcfESeX0f8oqy0tToj2/fvyOjlZi46J4Xt9jIu58p8JVIU4lldAx95cL+BRfIP0NGsZjIAAAAAElFTkSuQmCC";
const _imports_21 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAADbN2wMAAACWUlEQVRoBe2Zyy4sURSGm7QBI2dESI4WyTFhxuQ8BPEQLhPEROI2FzPxHNIJOZwnOE9gSjsuESNDA9f/a7WS1a2LiC69S/ZK/uy1V7H3vy5VvatWofBaumSaE/4KF8Kd8JSCBdk/K6yRtj57w+FQmBU6hTdlSlcvhbQF6+1ZO1C/H85MeA/a3WRJ+q7Q52yhqf0iVBYWjVhbohB5yNscc0XYS8ZbDA3kn2xHDewfMY3oj3+n/AMlMyhMCiXB5FEKnOFXoOZ92TxoviIUhVCkQ0RWBbhZWZ1Lr94T3LBmZIR8qLImYp7rDER52pjxWHpIkYefFzJREYzvATcxNWiyL+XeJgGOPFardZ9wG8WBHkf0zOmhqv8dsV4c8CUTcvSNt+dYxIFcS3Sg1emLGWh1Bjj7VH/NEiLNONtk7dNbZ6es947rxwjECMQI1EWAx+i4sCx0110LfXojgls4wAtCScijVDhK8HaTV3kiA2MCJfQjZ15QQps54xzpxgjECHy7CPAYzf0LjX2mY2zG9/6ss1zTEIkv9VmH+731Ywbei1DW179FBmq+9mYdsSasX/M1nQxcu0V/Oj1UteSIXaHTRLbfghPptHFCFbidCsb3D0TpgJuBkW5gqLIhYp7rNERpVV64C7Qy6QaGlAm4rAu+zXqmeSdnIYT2fVnwT6VTzWn60blsZaN7SPvDb0AwodGNrVpCZlyU4j30qUrTOZd8Vlgjbf1GdjjO26Y+4tsy0r6nnEIVuvNEfscIegew0YP9JXBjHwiXgv+d0PRLhb3hQKlw7B9OdA0v8gypmLKP2lSLggAAAABJRU5ErkJggg==";
const _imports_22 = "" + __buildAssetsURL("QRCode-icon.a105d5fc.svg");
const _imports_23 = "" + __buildAssetsURL("delete-icon.4d386dce.svg");
const _imports_24 = "" + __buildAssetsURL("arrows-icon.271dd0d3.svg");
const _imports_25 = "" + __buildAssetsURL("tick-orange.233abc69.svg");
const _imports_26 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAADbN2wMAAAECklEQVRoBe1YS2tTQRTOowmND1wYEl26Cc2jWVhXBUvEqlDqMq2KCzdaf4ArcSEIWlB3LkTpqq0IAQVRd2pUbFwY+kif2bRQKDTGhViTJsbE76QzdW7M497k5uaCGbg9Z+bOPef7zpyZnozB0G7tCPzfETC2mr7f73fk8/mbhUJhw+Px3AmFQr+VYGopAQb+DQD7GOiQ3W6/EA6Hc3JJmOVOVHteGfDkwptKpdxYiedra2t5OT5NciapPcfn8zmRNu9gl0c+I/gIJpPJ8WAwKCu4siYJxhtWKfLId0obLzP2E3LAaDTGIM+wMR9IyFoJTQmUSRsCPzg/Px9OJBIRp9P5QyAhK500I1ANPIu6gUg4HI4t9E+zsZokNCEgB3y9JJpOQAn4ekg0lQCdNtiwdNrwDbtlMpkGYrHYBw6WSyLa19e3vbi4WKAxlk5ZqCfZHEqnDMY/sn5RNO0YJfDw8BaPhzksgp+bm5MAoHder/c8jtX15eXlMTaXiwgUIsGbgytcdnBFTakUPI7Qcfg341nnOGAjAP0VHisbm83lcreYvitULyXK5HwKaTS4sLBAqSRpADmEgUk8FMgxHKdXIPOwcRwr8hr6PjzUZrPZbH88Hk/udP/+VZWA1uCJhmoEWgFeNQKtAq8KgVaCb5hAq8E3REAP4OsmoBfwdRHQE3jFBPQGXhEBPYInAlR/1GxdXV0HUa+8x0ReVf5EfwD/+mlM0iqVByjYTmAilQd72QczqG36V1ZWvkkMKOzIKubMZvNt2OVVJUqbwlmA/6ckrgYehF/Cxh6Grwge1WdD4MmWnHLaBOfDzDEJdI1XA4GAhDzA+/HuCZ4OvH8MgpehFwsz9F9A5+CpMDulBnjYrE0AwOjq4wBNFtoQbg0mRRJYlRSAbkI+wA+WEcwtYN/IrioF24rUmsVcd3f3CEA9ZFZXIY8IHibcbvelcteBlPMg1JS0EfzXXgGA7+UfANAN6Nd4H/Li0tKSZCXoHUUec8W0mVEzbQT/tQlgskgggty+jzGRxDDSaYKnU5m0KW7Ycj9GRCD16lVTyOVy2a1WawLGad4mwB/ijrA1iMRd3od8itV6xCLPf0mpdtoIfiRq1VPIYrFQ9DnJKfFLkLmH/nVh7BzA05WhZuDJt+QoFMBwdTd9MEA3BMXW09NjSafTRxHxNEBvYpBuIKhxsk2P/I47BQQAdj9OllF82JvJZI7hfsfGjZRIzcCTXx6xEgwGA0UZQL/jRSWgkm9AMI6BZ52dnaPRaJS+06RVTCGkiKtKlNMA/AXvI7j++ISNHpmenv6qCeISJxUJ2Gy21e3t7Thy3IVnA99NEVjURZ+xuRHk6K8SW/rrUhrhP+1h/SFrI2pHoB2BdgT0EoE/XD0Yrfi3Ps4AAAAASUVORK5CYII=";
const _imports_27 = "" + __buildAssetsURL("tick-no.179037b3.svg");
const _imports_28 = "" + __buildAssetsURL("tick-option.e092d22f.svg");
const _export_sfc = (sfc, props) => {
const target = sfc.__vccOpts || sfc;
for (const [key, val] of props) {
target[key] = val;
}
return target;
};
const _sfc_main$2 = {
name: "#answer-app",
async setup() {
const $ajax = (url, data) => {
url = url.indexOf("//") > -1 ? url : baseURL2 + url;
return new Promise(function(resolve, reject) {
axios.post(url, data, {
emulateJSON: true,
withCredentials: true,
headers: {
authorization: "production" !== "production"
// 头部标记
}
}).then(function(res) {
var data2 = null;
try {
data2 = typeof res.data == "string" ? JSON.parse(res.data) : res.data;
if (data2["code"] == 401)
goLogin();
if (data2["code"] != 200)
handleMsg("error", data2["message"] || "报错了,请重试!!!");
} catch (error) {
}
resolve(data2);
}).catch((err) => {
if (err.response.status == 401)
;
resolve(err.response.data);
});
});
};
const $ajaxGET = (url, data) => {
url = url.indexOf("//") > -1 ? url : baseURL2 + url;
return new Promise(function(resolve, reject) {
axios.get(url, data, {
emulateJSON: true,
withCredentials: true,
headers: {
authorization: "production" !== "production"
// 头部标记
}
}).then(function(res) {
var data2 = null;
try {
data2 = typeof res.data == "string" ? JSON.parse(res.data) : res.data;
if (data2["code"] == 401) {
goLogin();
}
if (data2["code"] != 200)
handleMsg("error", data2["message"] || "报错了,请重试!!!");
} catch (error) {
}
resolve(data2);
}).catch((err) => {
if (err.response.status == 401)
;
resolve(err.response.data);
});
});
};
provide("$ajax", $ajax);
provide("$ajaxGET", $ajaxGET);
let isNeedLogin = ref(true);
provide("isNeedLogin", isNeedLogin);
let emojiMaskState = ref(false);
provide("emojiMaskState", emojiMaskState);
const goLogin = () => {
return;
};
provide("goLogin", goLogin);
const route = useRoute();
useState("detailsInfoData", () => {
});
const baseURL2 = "https://ask.gter.net";
let type = ref("list");
let user = ref({});
provide("user", user);
let originUrl = ref("");
onUnmounted(() => {
window.removeEventListener("keydown", handleKeydown);
window.removeEventListener("scroll", handleScroll);
});
const getCurrentUrl = () => {
return `${window.location["origin"]}?uniqid=${detailsInfo.value["uniqid"] || ""}`;
};
let myCount = ref({});
const getUserData = (key) => {
$ajax("/api/user").then((res) => {
if (res.code != 200)
return;
let data = res.data;
myCount.value = data.count;
handleMy(key);
});
};
let isSearchMode = ref(false);
const setHistoricalSearchList = () => {
if (!keyword.value)
return;
historicalSearchList.value.unshift(keyword.value);
historicalSearchList.value = [...new Set(historicalSearchList.value)];
historicalSearchList.value = historicalSearchList.value.slice(0, 10);
localStorage.setItem("historical-Search", JSON.stringify(historicalSearchList.value));
};
const searchClick = () => {
setHistoricalSearchList();
page = 1;
list.value = [];
backupsList = [];
listHeight.value = 0;
type.value = "list";
pitchIndex.value = null;
openBottom();
myModelState.value = false;
replaceState({
keyword: keyword.value
});
searchBlur();
getList();
};
const searchFocus = () => {
if (historicalSearchList.value.length == 0)
return;
historicalSearchState.value = true;
};
const searchBlur = () => {
setTimeout(() => historicalSearchState.value = false, 300);
};
const handleClickHistoricalItem = (value) => {
keyword.value = value;
searchClick();
};
const handleClickClear = () => {
keyword.value = "";
page = 1;
list.value = [];
backupsList = [];
listHeight.value = 0;
type.value = "list";
openBottom();
pitchIndex.value = null;
getList();
};
let historicalSearchState = ref(false);
let historicalSearchList = ref([]);
let tabListFixeState = ref(false);
const handleScroll = () => {
const scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
const scrollHeight = document.documentElement.scrollHeight;
const clientHeight = document.documentElement.clientHeight;
if (scrollTop + clientHeight >= scrollHeight - 40 && type.value == "list")
getList();
if (scrollTop > 115)
tabListFixeState.value = true;
else
tabListFixeState.value = false;
};
let keyword = ref("");
let keywordText = ref("");
let list = ref([]);
let backupsList = [];
let page = 1;
let total = ref(0);
let loading = ref(false);
let inTheEndState = ref(false);
let isListEmptyState = ref();
let zeroreply = ref(0);
const getList = () => {
if (page == 0 || loading.value)
return;
loading.value = true;
$ajax("/api/lists", {
page,
limit: 20,
keyword: keyword.value,
type: typePitch.value,
zeroreply: zeroreply.value
}).then((res) => {
if (res.code == 401)
;
if (res.code != 200)
return;
let data = res.data;
data.data.forEach((element) => {
element["content"] = element["content"].replace(/<[^>]*>/g, "");
element["content"] = element["content"].replace(/ /g, "");
});
list.value = list.value.concat(data.data || []);
backupsList = backupsList.concat(data.data || []);
total.value = data.count || 0;
keywordText.value = keyword.value || "";
if (list.value.length >= data["count"])
page = 0;
else
page++;
if (page == 0 && list.value.length != 0)
inTheEndState.value = true;
else
inTheEndState.value = false;
if (list.value.length == 0)
isListEmptyState.value = true;
else
isListEmptyState.value = false;
if (keyword.value)
isSearchMode.value = true;
else
isSearchMode.value = false;
if (type.value == "details")
handleInsertRelatedlist();
if (list.value.length == 0)
type.value = "list";
}).finally(() => loading.value = false);
};
let typeList = ref([]);
let typePitch = ref(null);
let pageHeaderHeight = ref(0);
let pageListHeight = ref(0);
let isCommentList = ref(false);
let detailsInfo = ref({});
let detailsIsanswered = ref(0);
let detailsIscollection = ref(0);
let detailsIsmyself = ref(0);
let detailsToken = "";
let detailsToken2 = ref("");
let detailShare = ref({});
let detailLoading = ref(false);
provide("detailLoading", detailLoading);
provide("detailsToken", detailsToken2);
const getDetails = (uniqid, index, isOpenAnswer) => {
if (detailLoading.value)
return;
detailLoading.value = true;
detailsInfo.value = {};
answerList.value = [];
answerPage.value = 0;
$ajax("/api/details", { uniqid }).then((res) => {
if (res.code != 200) {
type.value = "list";
openBottom();
pitchIndex.value = null;
return;
}
let data = res.data;
data["info"]["uniqid"] = uniqid;
detailsInfo.value = data["info"] || {};
detailsIsanswered.value = data["isanswered"] || 0;
detailsIscollection.value = data["iscollection"] || 0;
detailsIsmyself.value = data["ismyself"] || 0;
detailsToken = data["token"] || "";
detailsToken2.value = data["token"] || "";
detailShare.value = data["share"] || {};
islike.value = data["islike"] || 0;
type.value = "details";
if (index !== null && index !== void 0)
cut(index);
else
calculateListIndex(data.info, uniqid);
answerList.value = [];
answerPage.value = 1;
closeAllTransmitState();
if (isOpenAnswer)
openIAnswer();
seo.value = data.seo;
yourAnswer.value = {
text: "",
anonymous: 0
};
nextTick(() => detailsAreaScrollTop());
handleInsertRelatedlist(uniqid);
isCommentList.value = true;
}).finally(() => detailLoading.value = false);
};
const detailsAreaScrollTop = () => {
let detailsArea = document.querySelector(".details-area-box");
detailsArea.scrollTo({
top: 0,
behavior: "smooth"
});
};
const calculateListIndex = (info, uniqid) => {
var _a;
let targetList = [...list.value];
if (targetList.length == 0 && isSearchMode.value == false && myModelState.value == false) {
setTimeout(() => calculateListIndex(info, uniqid), 200);
return;
}
let valve = false;
list.value.forEach((element, index) => {
if (element["uniqid"] == uniqid) {
cut(index);
pitchIndex.value = index;
valve = true;
}
});
if (!valve) {
let content = "";
if (((_a = info == null ? void 0 : info["content"]) == null ? void 0 : _a.indexOf("
]*>/g, "");
content = content.replace(/ /g, "");
const obj = {
answers: info["answers"],
content,
publicationdate: info["publicationdate"],
title: info["title"],
typename: info["typename"],
uniqid
};
list.value.unshift(obj);
cut(0);
}
};
let answerList = ref([]);
let answerPage = ref(1);
const operateLike = () => {
if (isNeedLogin.value) {
return;
}
$ajax("/api/operate/like", { token: detailsToken }).then((res) => {
if (res.code != 200)
return;
let data = res.data;
islike.value = data.status || 0;
detailsInfo.value["likenum"] = data.count || 0;
handleMsg("success", res["message"] || "操作成功");
});
};
const operateCollect = (token = detailsToken, index) => {
if (isNeedLogin.value) {
return;
}
$ajax("/api/operate/collect", {
token
}).then((res) => {
if (res.code != 200)
return;
let data = res.data;
myCollectionPage = 1;
myCollectionList.value = [];
if (data["type"] == "askquestioncollection") {
detailsIscollection.value = data["status"];
detailsInfo.value["collectionnum"] = data["count"];
} else {
answerList.value[index]["iscollection"] = data["status"];
answerList.value[index]["collectionnum"] = data["count"];
}
handleMsg("success", res["message"] || "操作成功");
if (data["status"])
myCount.value["collect"]++;
else
myCount.value["collect"]--;
});
};
let IAnswerState = ref(false);
let IAnswerEditState = ref(false);
let IAnswerInfo = ref({});
const amendIAnswer = () => {
IAnswerInfo.value["anonymous"] = IAnswerInfo.value["anonymous"] == 0 ? 1 : 0;
};
const openCommentState = (index) => {
if (answerList.value[index]["commentState"])
answerList.value[index]["commentState"] = false;
else
answerList.value[index]["commentState"] = true;
if (answerList.value[index]["commentList"].length == 0 && answerList.value[index]["commentnum"] != 0)
getAnswerCommentList(index);
};
const getAnswerCommentList = (index) => {
getAnswerCommentPublic(index, 2).then((res) => {
let data = res.data;
answerList.value[index]["commentList"] = answerList.value[index]["commentList"].concat(data.data);
answerList.value[index]["commentCount"] = data["count"];
});
};
const handleAllComment = (index) => {
answerCommentLimit = 1e3;
getAnswerCommentPublic(index, 1e3).then((res) => {
if (res.code != 200)
return;
let data = res.data;
let slice3 = data.data.slice(1);
let merged1 = [...answerList.value[index]["commentList"], ...slice3.filter((item2) => !answerList.value[index]["commentList"].find((item1) => item1.id == item2.id))];
answerList.value[index]["commentList"] = merged1;
answerList.value[index]["showOneCommentState"] = false;
});
};
const getAnswerCommentPublic = (index, limit) => {
return new Promise((resolve, reject) => {
$ajax("/api/comment/lists", {
token: answerList.value[index]["token"],
limit,
childlimit: 1
}).then((res) => {
if (res.code != 200)
return;
resolve(res);
});
});
};
let myType = ref("");
const handleMy = (key) => {
if (isNeedLogin.value) {
return;
}
if (Object.keys(myCount.value).length === 0) {
getUserData(key);
return;
}
if (key == "collect") {
myCollectionList.value = [];
myCollectionPage = 1;
getMyCollection();
} else if (key == "answers") {
myAnswerList.value = [];
myAnswerPage = 1;
getMyAnswer();
} else if (key == "questions") {
myQuestionsList.value = [];
myQuestionsPage = 1;
getMyQuestions();
}
};
let myCollectionList = ref([]);
let myCollectionCount = ref(0);
let myCollectionPage = 1;
let myCollectionLading = false;
const getMyCollection = () => {
if (myCollectionPage == 0 || myCollectionLading)
return;
myCollectionLading = true;
$ajax("/api/user/collect", {
limit: 20,
page: myCollectionPage
}).then((res) => {
if (res.code != 200)
return;
let data = res.data;
myType.value = "collect";
data.data.forEach((element) => {
if (element["type"] == "askanswercollection") {
let content = element["data"]["content"];
element["data"]["content"] = processHtml(content);
}
});
myCollectionList.value = myCollectionList.value.concat(data.data);
myCollectionCount.value = data.count;
if (myCollectionList.value.length != data["count"])
myCollectionPage++;
else
myCollectionPage = 0;
}).finally(() => myCollectionLading = false);
};
const processHtml = (html) => {
var parser = new DOMParser();
var doc = parser.parseFromString(html, "text/html");
var img = doc.querySelector("img");
if (img)
return `
`;
else
return doc.body.textContent;
};
const cancelCollection = (token, index) => {
$ajax("/api/user/deleteCollect", { token }).then((res) => {
if (res.code == 200) {
myCollectionList.value.splice(index, 1);
myCollectionCount.value--;
myCount.value["collect"]--;
handleMsg("success", res["message"] || "操作成功");
}
});
};
const handleCollectionScroll = (e) => {
const el = e.target;
if (el.scrollHeight - el.scrollTop >= el.clientHeight + 10)
return;
getMyCollection();
};
let myAnswerList = ref([]);
let myAnswerCount = ref(0);
let myAnswerPage = 1;
let myAnswerloadimg = false;
const getMyAnswer = () => {
if (myAnswerPage == 0 || myAnswerloadimg)
return;
myAnswerloadimg = true;
$ajax("/api/user/answer", {
limit: 20,
page: myAnswerPage
}).then((res) => {
if (res.code != 200)
return;
let data = res.data;
data.data.forEach((element) => {
element["popupState"] = false;
});
data.data.forEach((element) => {
let content = element["content"];
element["content"] = processHtml(content);
});
myAnswerList.value = myAnswerList.value.concat(data.data);
myAnswerCount.value = data.count;
if (myAnswerList.value.length != data["count"])
myAnswerPage++;
else
myAnswerPage = 0;
myType.value = "answers";
}).finally(() => myAnswerloadimg = false);
};
const handleAnswersScroll = (e) => {
const el = e.target;
if (el.scrollHeight - el.scrollTop >= el.clientHeight + 10)
return;
getMyAnswer();
};
let answerIndexOld = null;
const cutAnswerPopupState = (index) => {
myAnswerList.value[index]["popupState"] = true;
if (answerIndexOld == index) {
myAnswerList.value[index]["popupState"] = false;
answerIndexOld = null;
} else {
myAnswerList.value[index]["popupState"] = true;
if (answerIndexOld != null)
myAnswerList.value[answerIndexOld]["popupState"] = false;
answerIndexOld = index;
}
};
const changeAnonymous = (token, anonymous, index) => {
$ajax("/api/publish/changeAnonymous", {
token,
anonymous
}).then((res) => {
if (res.code != 200)
return;
res.data;
myAnswerList.value[index]["anonymous"] = anonymous;
cutAnswerPopupState(index);
handleMsg("success", res["message"] || "操作成功");
});
};
let myQuestionsList = ref([]);
let myQuestionsCount = ref(0);
let myQuestionsPage = 0;
let myQuestionsloading = false;
const getMyQuestions = () => {
if (myQuestionsPage == 0 || myQuestionsloading)
return;
myQuestionsloading = true;
$ajax("/api/user/questions", {
limit: 20,
page: myQuestionsPage
}).then((res) => {
if (res.code != 200)
return;
let data = res.data;
myQuestionsList.value = myQuestionsList.value.concat(data.data);
myQuestionsCount.value = data.count;
myType.value = "questions";
if (myQuestionsList.value.length != data["count"])
myQuestionsPage++;
else
myQuestionsPage = 0;
}).finally(() => myQuestionsloading = false);
};
const handleQuestionsScroll = (e) => {
const el = e.target;
if (el.scrollHeight - el.scrollTop >= el.clientHeight + 10)
return;
getMyQuestions();
};
let questionsIndexOld = null;
const cutQuestionsPopupState = (index) => {
myQuestionsList.value[index]["popupState"] = true;
if (questionsIndexOld == index) {
myQuestionsList.value[index]["popupState"] = false;
questionsIndexOld = null;
} else {
myQuestionsList.value[index]["popupState"] = true;
if (questionsIndexOld != null)
myQuestionsList.value[questionsIndexOld]["popupState"] = false;
questionsIndexOld = index;
}
};
const changeAnonymousQuestions = (token, anonymous, index) => {
$ajax("/api/publish/changeAnonymous", {
token,
anonymous
}).then((res) => {
if (res.code != 200)
return;
myQuestionsList.value[index]["anonymous"] = anonymous;
cutQuestionsPopupState(index);
handleMsg("success", res["message"] || "操作成功");
});
};
let questionsSetp = ref(0);
const cutQuestionsSetp = (value) => questionsSetp.value = value;
let questionsTypeList = ref([]);
let questionsObj = ref({
// 提问的内容
token: "",
title: "",
content: "",
tags: "",
tid: "",
anonymous: 0
});
const questionsInit = () => {
if (isNeedLogin.value) {
return;
}
$ajax("/api/publish/questions").then((res) => {
if (res.code != 200)
return;
let data = res.data;
questionsObj.value["token"] = data["token"];
questionsTypeList.value = data["typeList"] || [];
cutQuestionsSetp(1);
});
};
const choosingTheme = (id) => {
questionsObj.value.tid = id;
cutQuestionsSetp(2);
};
const cutAnonymous = () => {
questionsObj.value.anonymous = questionsObj.value.anonymous == 0 ? 1 : 0;
};
const postingIssue = () => {
if (isNeedLogin.value) {
return;
}
$ajax("/api/publish/questionsSubmit", questionsObj.value).then((res) => {
if (res.code == 200) {
myCount.value["questions"]++;
questionsSetp.value = 0;
questionsObj.value = {
token: "",
title: "",
content: "",
tags: "",
tid: "",
anonymous: 0
};
handleMsg("success", res["message"] || "操作成功");
let data = res.data;
getDetails(data["uniqid"]);
return;
}
handleMsg("error", res["message"] || "刷新重试!!!");
});
};
let pitchIndex = ref(null);
const cut = (index) => {
pitchIndex.value = index;
setTimeout(() => scrollLeftInMiddle(), 350);
};
const scrollLeftInMiddle = () => {
{
return;
}
};
const listStyle = () => {
const newtype = type.value;
let width = "";
let margin = "";
let height = "";
if (newtype == "list") {
width = "1200px";
margin = "0 auto";
} else {
width = "calc((100vw - 1200px) / 2 + 512px)";
margin = "initial";
}
return {
width,
margin,
height
};
};
let listHeight = ref(0);
let itemHeightLeft = 0;
let itemHeightRight = 0;
const itemStyle = (index, content, typetype) => {
if (index == 0) {
itemHeightLeft = 0;
itemHeightRight = 0;
}
const newtype = type.value;
let obj = {};
if (newtype == "list") {
if (itemHeightLeft <= itemHeightRight) {
obj["top"] = itemHeightLeft + "px";
itemHeightLeft += content == "" ? 107 : 137;
obj["left"] = 0;
} else {
obj["top"] = itemHeightRight + "px";
itemHeightRight += content == "" ? 107 : 137;
obj["left"] = "649px";
}
} else {
obj["position"] = "relative";
if (!typetype) {
itemHeightLeft += content == "" ? 107 : 137;
obj["height"] = content == "" ? "107px" : "137px";
} else {
itemHeightLeft += typetype == "vote" ? 170 : 137;
obj["height"] = typetype == "vote" ? "170px" : "137px";
}
obj["width"] = "100%";
obj["paddingLeft"] = "calc((100vw - 1210px) / 2)";
}
if (index + 1 == list.value.length)
listHeight.value = Math.max(itemHeightLeft, itemHeightRight);
return obj;
};
const bottomTpsStyle = (index, content) => {
const newtype = type.value;
let obj = {};
if (newtype == "list")
;
else {
obj["width"] = "calc(50vw - 88px)";
obj["height"] = `calc(100vh - ${list.value.length * 128}px - 268px)`;
obj["paddingLeft"] = "calc((100vw - 1200px) / 2)";
obj["borderRight"] = "1px solid #ebebeb";
obj["background"] = "#fff";
}
return obj;
};
const listBoxStyle = () => {
const newtype = type.value;
let obj = {};
if (newtype == "list")
obj["overflow"] = "visible";
else
obj["height"] = pageListHeight.value + "px";
return obj;
};
const handleDate = (dateTimeStamp = /* @__PURE__ */ new Date(), ishour = true) => {
dateTimeStamp = dateTimeStamp ? dateTimeStamp : null;
var timestamp = new Date(dateTimeStamp);
timestamp = timestamp.getTime();
var minute = 1e3 * 60;
var hour = minute * 60;
var day = hour * 24;
var now = (/* @__PURE__ */ new Date()).getTime();
var diffValue = now - timestamp;
var result;
if (diffValue < 0)
return "刚刚";
var dayC = diffValue / day;
var hourC = diffValue / (hour + 1);
var minC = diffValue / minute;
if (dayC >= 7) {
let date = new Date(timestamp);
let Y = date.getFullYear() + "-";
let M = (date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1) + "-";
let D = (date.getDate() < 10 ? "0" + date.getDate() : date.getDate()) + " ";
let h2 = (date.getHours() < 10 ? "0" + date.getHours() : date.getHours()) + ":";
let m = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
if (ishour)
result = "" + Y + M + D + h2 + m;
else
result = "" + Y + M + D;
} else if (dayC >= 1)
result = "" + Math.round(dayC) + "天前";
else if (hourC >= 1)
result = "" + Math.round(hourC) + "小时前";
else if (minC >= 1)
result = "" + Math.round(minC) + "分钟前";
else
result = "刚刚";
return result;
};
provide("handleDate", handleDate);
let questionsTransmitState = ref(false);
let questionsTransmitMaskState = ref(false);
const closeTransmitState = () => {
questionsTransmitState.value = true;
questionsTransmitMaskState.value = true;
countForwardingTimes(detailsToken);
};
const closeAllTransmitState = () => {
answerList.value.forEach((element) => {
element["transmitState"] = false;
});
questionsTransmitState.value = false;
questionsTransmitMaskState.value = false;
};
const handleAnswerTransmitList = (Iindex, type2) => {
answerList.value[Iindex]["transmitState"] = true;
questionsTransmitMaskState.value = true;
countForwardingTimes(answerList.value[Iindex]["token"]);
};
const countForwardingTimes = (token) => {
$ajaxGET("/api/operate/share?token=" + token);
};
const closeDetailMode = () => {
if (myModelState.value) {
closeMyModel();
return;
}
type.value = "list";
openBottom();
pitchIndex.value = null;
seo.value = {};
list.value = JSON.parse(JSON.stringify(backupsList));
};
const handleListScroll = (e) => {
const el = e.target;
if (el.scrollHeight - el.scrollTop >= el.clientHeight + 40 || myModelState.value)
return;
getList();
};
const handlePaste = (event, type2) => {
const items = (event.clipboardData || event.originalEvent.clipboardData).items;
for (const item of items) {
if (item.type.indexOf("image") === 0) {
event.preventDefault();
handleMsg("warning", "上传图片中");
const file = item.getAsFile();
const reader = new FileReader();
reader.onload = (e) => {
const base64 = e.target.result;
uploadImg(base64).then((res) => {
let questionTextarea = null;
if (type2 == "you")
questionTextarea = document.querySelector(".your-answer-textarea");
else
questionTextarea = document.querySelector(".question-textarea");
let imgNode = document.createElement("img");
imgNode.setAttribute("src", res.url);
imgNode.setAttribute("data-aid", res.aid);
questionTextarea.appendChild(imgNode);
if (type2 == "you")
handleInputYou();
else
handleInput();
handleMsg("success", "上传成功");
});
};
reader.readAsDataURL(file);
}
}
};
const uploadImg = (base64) => {
return new Promise((resolve, reject) => {
detailLoading.value = true;
$ajax("/api/common/upload", {
data: base64
}).then((res) => {
if (res.code != 200) {
handleMsg("error", res.message || "上传失败");
return;
}
let data = res.data;
resolve(data);
}).finally(() => detailLoading.value = false);
});
};
provide("uploadImg", uploadImg);
let questionPlaceholderState = ref(false);
let yourAnswerPlaceholderState = ref(true);
const handleInput = () => {
const questionTextarea = document.querySelector(".question-textarea");
const html = questionTextarea.innerHTML;
if (html)
questionPlaceholderState.value = false;
else
questionPlaceholderState.value = true;
};
const handleInputYou = () => {
const questionTextarea = document.querySelector(".your-answer-textarea");
const html = questionTextarea.innerHTML;
if (html)
yourAnswerPlaceholderState.value = false;
else
yourAnswerPlaceholderState.value = true;
};
let msg = ref({});
const handleMsg = (type2, text) => {
msg.value["state"] = true;
msg.value["type"] = type2;
msg.value["text"] = text;
};
provide("handleMsg", handleMsg);
const boxClass = () => {
msgShowTimer();
return type ? `box-item-${msg.value["type"]}` : "";
};
let msgTimer = null;
const msgShowTimer = () => {
clearTimeout(msgTimer);
msgTimer = setTimeout(() => {
msg.value["state"] = false;
}, 1e3);
};
let copyText = (text) => {
if (navigator.clipboard) {
copyText = () => {
navigator.clipboard.writeText(text);
handleMsg("success", "复制成功");
};
} else {
copyText = () => {
var tempInput = document.createElement("input");
tempInput.value = text;
document.body.appendChild(tempInput);
tempInput.select();
document.execCommand("copy");
document.body.removeChild(tempInput);
handleMsg("success", "复制成功");
};
}
copyText();
};
const replaceState = (obj = {}) => {
return;
};
let myModelState = ref(false);
let myModelList = ref([]);
let temporaryData = {};
const myOpenDetails = (uniqid) => {
if (!uniqid) {
handleMsg("error", "没有找到相关提问");
return;
}
if (!myModelState.value) {
temporaryData = {
total: total.value,
keywordText: keywordText.value,
isSearchMode: isSearchMode.value,
inTheEndState: inTheEndState.value,
type: type.value,
pitchIndex: pitchIndex.value,
listlist: JSON.parse(JSON.stringify(list.value))
};
isSearchMode.value = false;
inTheEndState.value = false;
keyword.value = "";
list.value = JSON.parse(JSON.stringify(myModelList.value));
myModelState.value = true;
pitchIndex.value = null;
}
getDetails(uniqid);
myType.value = "";
};
const closeMyModel = () => {
myModelList.value = JSON.parse(JSON.stringify(list.value));
isSearchMode.value = temporaryData["isSearchMode"];
keywordText.value = temporaryData["keywordText"];
keyword.value = temporaryData["keywordText"];
total.value = temporaryData["total"];
type.value = temporaryData["type"];
pitchIndex.value = temporaryData["pitchIndex"];
inTheEndState.value = temporaryData["inTheEndState"];
list.value = JSON.parse(JSON.stringify(temporaryData.listlist));
myModelState.value = false;
if (pitchIndex.value !== null && pitchIndex.value !== void 0) {
let uniqid = list.value[pitchIndex.value]["uniqid"];
getDetails(uniqid);
}
};
const handleDetailsScroll = (e) => {
const el = e.target;
if (el.scrollHeight - el.scrollTop !== el.clientHeight)
return;
};
let dialogSrc = ref("");
const handleAnswerText = (e) => {
if (e.target.tagName === "IMG") {
var src = e.target.getAttribute("src");
dialogSrc.value = src;
window.addEventListener("keydown", handleKeydown);
}
};
provide("handleAnswerText", handleAnswerText);
const handleKeydown = (event) => {
if (event.key !== "Escape")
return;
dialogSrc.value = "";
window.removeEventListener("keydown", handleKeydown);
};
const cutType = (id) => {
typePitch.value = id;
page = 1;
list.value = [];
backupsList = [];
listHeight.value = 0;
myModelState.value = false;
type.value = "list";
openBottom();
pitchIndex.value = null;
getList();
listHeight.value = 0;
};
const handleMenuState = (token) => {
reportToken = token;
alertShow.value = true;
};
provide("handleMenuState", handleMenuState);
let reportToken = "";
const reasonList = ["广告", "辱骂", "重复发送", "不良信息", "其他"];
let checkList = ref([]);
let alertShow = ref(false);
let alertText = ref("");
const selectRadio = (value) => {
const index = checkList.value.indexOf(value);
if (index === -1)
checkList.value.push(value);
else
checkList.value.splice(index, 1);
};
const alertSubmit = () => {
checkList.value.push(alertText.value);
$ajax("/api/operate/report", {
message: checkList.value,
token: reportToken
}).then((res) => {
checkList.value = [];
reportToken = "";
alertShow.value = false;
handleMsg("success", "举报成功");
});
};
let recommendList = [];
let recommendPage = 1;
const getRecommend = (uniqid) => {
$ajax("/api/details/relatedlist", {
page: recommendPage,
limit: 20
}).then((res) => {
if (res.code != 200)
return;
let obj = {
offer: "Offer",
mj: "面经",
vote: "投票",
thread: "帖子"
};
let data = res.data;
data.forEach((element) => {
element["typename"] = obj[element["type"]];
element["isrecom"] = true;
});
recommendList = recommendList.concat(data);
recommendPage++;
handleInsertRelatedlist(uniqid);
});
};
const handleInsertRelatedlist = (uniqid) => {
if (myModelState.value)
return;
let insertCount = Math.ceil(backupsList.length / 5);
if (recommendList.length < insertCount) {
getRecommend(uniqid);
return;
}
let target = JSON.parse(JSON.stringify(backupsList));
let result = [];
let j = 0;
for (let i = 0; i < target.length; i++) {
result.push(target[i]);
if ((i + 1) % 4 === 0 && j < recommendList.length) {
result.push(recommendList[j]);
j++;
}
}
list.value = JSON.parse(JSON.stringify(result));
nextTick(() => {
if (uniqid) {
result.forEach((element, index) => {
if (element["uniqid"] == uniqid) {
pitchIndex.value = index;
}
});
}
});
};
const replaceNumberObj = ["①", "②", "③"];
let seo = ref({});
let initState = ref(0);
let islike = ref(0);
try {
const params = route.query;
if (params["keyword"])
keyword.value = params["keyword"];
if (params["tid"])
typePitch.value = params["tid"];
await $ajax("/api/lists", {
page,
limit: 20,
keyword: keyword.value,
type: typePitch.value
}).then((res) => {
if (res.code != 200)
return;
let data = res.data;
data.data.forEach((element) => {
element["content"] = element["content"].replace(/<[^>]*>/g, "");
element["content"] = element["content"].replace(/ /g, "");
});
list.value = data.data;
backupsList = data.data;
total.value = data.count || 0;
keywordText.value = keyword.value || "";
if (list.value.length != data["count"])
page++;
else
page = 0;
if (page == 0 && list.value.length != 0)
inTheEndState.value = true;
else
inTheEndState.value = false;
if (list.value.length == 0)
isListEmptyState.value = true;
else
isListEmptyState.value = false;
if (keyword.value)
isSearchMode.value = true;
else
isSearchMode.value = false;
nextTick(() => {
if (list.value.length == 0)
type.value = "list";
});
});
} catch (error) {
console.error(error);
}
watch(initState, (newValue, oldValue) => {
if (newValue === 2) {
route.query;
}
});
const setItemUrl = (uniqid) => {
let url = `./index.html?uniqid=${uniqid}`;
let query = route.query;
for (const key in query) {
if (key != "uniqid")
url += `&${key}=${query[key]}`;
}
return url;
};
const handleLogo = () => {
window.location.href = window.location.origin + window.location.pathname;
};
let yourAnswer = ref({
text: "",
anonymous: 0
});
const cutYourAnswerAnonymous = () => {
yourAnswer.value["anonymous"] = yourAnswer.value["anonymous"] ? 0 : 1;
};
const openListIAnswer = (index) => {
if (isNeedLogin.value) {
return;
}
let targetData = list.value[index];
IAnswerInfo.value = {
title: targetData["title"],
content: targetData["content"],
token: targetData["token"],
uniqid: targetData["uniqid"],
anonymous: 0,
index
};
IAnswerState.value = true;
nextTick(() => handleInput());
};
let avatarState = ref(false);
const openUserInfo = () => {
if (detailsInfo.value["uin"] > 0)
avatarState.value = !avatarState.value;
};
const sendMessage = (uin) => {
if (uin && typeof messagePrivateItem == "function") {
messagePrivateItem({ uin });
return;
} else
redirectToExternalWebsite(`https://bbs.gter.net/home.php?mod=space&showmsg=1&uid=${uin}`);
};
const TAHomePage = (uin) => {
redirectToExternalWebsite(`https://bbs.gter.net/home.php?mod=space&uid=${uin}`);
};
provide("TAHomePag", TAHomePage);
const redirectToExternalWebsite = (url) => {
const link = document.createElement("a");
link.href = url;
link.target = "_blank";
link.click();
};
const openBottom = () => {
const footer = document.querySelector("body .index-footer");
if (footer)
footer.style.display = "block";
else
setTimeout(() => openBottom(), 1e3);
};
const handleLookOnly = () => {
zeroreply.value = zeroreply.value == 0 ? 1 : 0;
page = 1;
list.value = [];
backupsList = [];
listHeight.value = 0;
getList();
};
const commentList = ref([]);
const commentListRef = ref(null);
const closeEmojiMask = () => {
if (commentListRef.value)
commentListRef.value.closeEmoji();
};
const handleUpdateAnswers = (value) => {
list.value.forEach((element) => {
if (element.uniqid == detailsInfo.value["uniqid"])
element["answers"] = value;
});
backupsList.forEach((element) => {
if (element.uniqid == detailsInfo.value["uniqid"])
element["answers"] = value;
});
};
return { handleUpdateAnswers, commentListRef, closeEmojiMask, emojiMaskState, isCommentList, commentList, islike, handleLookOnly, zeroreply, replaceNumberObj, closeMyModel, myModelList, myModelState, listHeight, bottomTpsStyle, TAHomePage, sendMessage, avatarState, openUserInfo, isNeedLogin, handleInputYou, openListIAnswer, isListEmptyState, cutYourAnswerAnonymous, yourAnswer, handleLogo, inTheEndState, setItemUrl, seo, originUrl, handleMenuState, reasonList, checkList, alertShow, alertText, selectRadio, alertSubmit, cutType, dialogSrc, answerPage, handleDetailsScroll, replaceState, copyText, boxClass, questionPlaceholderState, yourAnswerPlaceholderState, handleInput, handlePaste, itemStyle, listStyle, listBoxStyle, myType, type, pitchIndex, cut, list, keyword, keywordText, getList, total, typeList, typePitch, getDetails, detailsInfo, detailsIsanswered, detailsIscollection, detailsIsmyself, detailShare, detailLoading, answerList, operateLike, operateCollect, IAnswerState, IAnswerEditState, IAnswerInfo, amendIAnswer, openCommentState, handleAllComment, myCollectionList, myCollectionCount, myQuestionsList, myQuestionsCount, myAnswerList, myAnswerCount, cutAnswerPopupState, handleDate, handleCollectionScroll, handleAnswersScroll, handleQuestionsScroll, cancelCollection, getMyCollection, questionsSetp, questionsObj, cutAnonymous, cutQuestionsSetp, cutQuestionsPopupState, questionsTypeList, postingIssue, choosingTheme, handleMy, changeAnonymous, changeAnonymousQuestions, pageHeaderHeight, pageListHeight, questionsTransmitState, questionsTransmitMaskState, closeAllTransmitState, closeTransmitState, handleAnswerTransmitList, closeDetailMode, tabListFixeState, handleListScroll, historicalSearchState, historicalSearchList, searchFocus, searchBlur, searchClick, handleClickHistoricalItem, handleClickClear, isSearchMode, questionsInit, myCount, msg, myOpenDetails, handleAnswerText, getCurrentUrl, loading };
}
};
function _sfc_ssrRender(_ctx, _push, _parent, _attrs, $props, $setup, $data, $options) {
const _component_Head = Head;
const _component_Title = Title;
const _component_Meta = Meta;
const _component_ClientOnly = __nuxt_component_3;
const _component_commentList = __nuxt_component_4;
_push(``);
_push(ssrRenderComponent(_component_Head, null, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(ssrRenderComponent(_component_Title, null, {
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
if (_push3) {
_push3(`${ssrInterpolate(`${$setup.seo["title"] || "问答"} - 寄托天下出国留学网`)}`);
} else {
return [
createTextVNode(toDisplayString(`${$setup.seo["title"] || "问答"} - 寄托天下出国留学网`), 1)
];
}
}),
_: 1
}, _parent2, _scopeId));
_push2(ssrRenderComponent(_component_Meta, {
name: "keyword",
content: $setup.seo["keyword"]
}, null, _parent2, _scopeId));
_push2(ssrRenderComponent(_component_Meta, {
name: "description",
content: $setup.seo["description"]
}, null, _parent2, _scopeId));
} else {
return [
createVNode(_component_Title, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(`${$setup.seo["title"] || "问答"} - 寄托天下出国留学网`), 1)
]),
_: 1
}),
createVNode(_component_Meta, {
name: "keyword",
content: $setup.seo["keyword"]
}, null, 8, ["content"]),
createVNode(_component_Meta, {
name: "description",
content: $setup.seo["description"]
}, null, 8, ["content"])
];
}
}),
_: 1
}, _parent));
_push(`
`);
if ($setup.myModelState) {
_push(`
我的收藏/提问
![]()
`);
} else if ($setup.isSearchMode) {
_push(`
${ssrInterpolate($setup.keywordText)}
![]()
共 ${ssrInterpolate($setup.total)} 条搜索结果
`);
} else {
_push(`
共 ${ssrInterpolate($setup.total)} 条问答
`);
}
_push(`
`);
if ($setup.inTheEndState) {
_push(`
- 到底了 -
`);
} else {
_push(``);
}
if ($setup.myModelState) {
_push(`
`);
} else {
_push(``);
}
if ($setup.isListEmptyState && $setup.list.length == 0) {
_push(`
![]()
`);
if ($setup.isSearchMode) {
_push(`
没有找到相关结果,请更换搜索关键词
`);
} else {
_push(`
暂无数据
`);
}
_push(`
`);
} else {
_push(``);
}
_push(`
`);
if ($setup.type == "details") {
_push(`
`);
if ($setup.detailLoading) {
_push(`
`);
} else {
_push(``);
}
if ($setup.emojiMaskState) {
_push(`
`);
} else {
_push(``);
}
_push(`
`);
if ($setup.detailsInfo.typename) {
_push(`
${ssrInterpolate($setup.detailsInfo.typename)}
`);
} else {
_push(``);
}
_push(`
${ssrInterpolate($setup.detailsInfo["title"])}
`);
if ($setup.detailsInfo["content"]) {
_push(`
${$setup.detailsInfo["content"]}
`);
} else {
_push(``);
}
_push(`
`);
if ($setup.detailsInfo["avatar"]) {
_push(`
![]()
`);
} else {
_push(``);
}
_push(`
${ssrInterpolate($setup.detailsInfo["nickname"])}
`);
if ($setup.avatarState) {
_push(`
`);
} else {
_push(``);
}
_push(`
${ssrInterpolate($setup.handleDate($setup.detailsInfo["publicationdate"]))}
![]()
${ssrInterpolate($setup.detailsInfo["viewnum"] || 0)}
`);
if ($setup.islike == 0) {
_push(`
![]()
`);
} else {
_push(`
![]()
`);
}
_push(` ${ssrInterpolate($setup.detailsInfo.likenum || "赞")}
`);
_push(ssrRenderComponent(_component_ClientOnly, null, {}, _parent));
_push(`
![]()
转发 `);
if ($setup.questionsTransmitState) {
_push(`
![]()
转发网页版
${ssrInterpolate($setup.detailsInfo["title"])}
${ssrInterpolate($setup.getCurrentUrl())}
复制链接
转发小程序版
![]()
![]()
扫码转发该问答
`);
} else {
_push(``);
}
_push(`
`);
if ($setup.isCommentList) {
_push(ssrRenderComponent(_component_commentList, {
ref: "commentListRef",
onUpdateAnswers: $setup.handleUpdateAnswers
}, null, _parent));
} else {
_push(``);
}
_push(`
`);
} else {
_push(``);
}
_push(`
`);
if ($setup.myType) {
_push(`
![]()
我的收藏
${ssrInterpolate($setup.myCollectionCount || $setup.myCount["collect"] || 0)}
我的提问
${ssrInterpolate($setup.myQuestionsCount || $setup.myCount["questions"] || 0)}
`);
if ($setup.myType == "collect" && $setup.myCollectionList.length == 0 || $setup.myType == "answers" && $setup.myAnswerList.length == 0 || $setup.myType == "questions" && $setup.myQuestionsList.length == 0) {
_push(`
![]()
暂无内容
`);
} else {
_push(``);
}
if ($setup.myType == "collect" && $setup.myCollectionList.length != 0) {
_push(`
`);
ssrRenderList($setup.myCollectionList, (item, index) => {
_push(`
`);
if (item.type == "askanswercollection") {
_push(`
A
${item["data"]["content"]}
提问:${ssrInterpolate(item["data"]["title"])}
`);
} else {
_push(`
Q
${ssrInterpolate(item["data"]["title"])}
${ssrInterpolate(item["data"]["answers"] > 0 ? "共" + item["data"]["answers"] + "个回答&讨论" : "暂无回答&讨论")}
`);
}
_push(`
`);
});
_push(`
`);
} else {
_push(``);
}
if ($setup.myType == "answers" && $setup.myAnswerList.length != 0) {
_push(`
`);
ssrRenderList($setup.myAnswerList, (item, index) => {
_push(`
A
${ssrInterpolate(item["nickname"])}
${ssrInterpolate($setup.handleDate(item["publicationdate"]))}
${item["content"]}
提问:${ssrInterpolate(item["title"])}
${ssrInterpolate(item["anonymous"] == 0 ? "公开" : "匿名")}
![]()
`);
if (item["popupState"]) {
_push(``);
} else {
_push(``);
}
_push(`
![]()
`);
});
_push(`
`);
} else {
_push(``);
}
if ($setup.myType == "questions" && $setup.myQuestionsList.length != 0) {
_push(`
`);
ssrRenderList($setup.myQuestionsList, (item, index) => {
_push(`
Q
${ssrInterpolate(item["nickname"])}
${ssrInterpolate($setup.handleDate(item["publicationdate"]))}
${ssrInterpolate(item["title"])}
`);
if (item["authornewnum"] > 0) {
_push(`
有${ssrInterpolate(item["authornewnum"])}个新回答&讨论
`);
} else {
_push(``);
}
_push(` ${ssrInterpolate(item["answers"] == 0 ? "暂无回答&讨论" : "共" + item["answers"] + "个回答&讨论")}
${ssrInterpolate(item["anonymous"] == 0 ? "公开" : "匿名")}
![]()
`);
if (item["popupState"]) {
_push(``);
} else {
_push(``);
}
_push(`
`);
});
_push(`
`);
} else {
_push(``);
}
_push(`
`);
} else {
_push(``);
}
if ($setup.questionsSetp) {
_push(`
`);
if ($setup.questionsSetp == 1) {
_push(`
选择提问所属主题
`);
ssrRenderList($setup.questionsTypeList, (item, index) => {
_push(`
`);
ssrRenderList(item, (item2) => {
_push(`
${ssrInterpolate(item2.name)}
`);
});
_push(`
`);
});
_push(`
`);
} else {
_push(`
`);
}
_push(`
`);
} else {
_push(``);
}
_push(`
${ssrInterpolate($setup.msg["text"])}
`);
if ($setup.dialogSrc) {
_push(`
`);
} else {
_push(``);
}
_push(`
`);
}
const _sfc_setup$2 = _sfc_main$2.setup;
_sfc_main$2.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("app.vue");
return _sfc_setup$2 ? _sfc_setup$2(props, ctx) : void 0;
};
const AppComponent = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["ssrRender", _sfc_ssrRender]]);
const _sfc_main$1 = {
__name: "nuxt-error-page",
__ssrInlineRender: true,
props: {
error: Object
},
setup(__props) {
const props = __props;
const _error = props.error;
(_error.stack || "").split("\n").splice(1).map((line) => {
const text = line.replace("webpack:/", "").replace(".vue", ".js").trim();
return {
text,
internal: line.includes("node_modules") && !line.includes(".cache") || line.includes("internal") || line.includes("new Promise")
};
}).map((i) => `${i.text}`).join("\n");
const statusCode = Number(_error.statusCode || 500);
const is404 = statusCode === 404;
const statusMessage = _error.statusMessage ?? (is404 ? "Page Not Found" : "Internal Server Error");
const description = _error.message || _error.toString();
const stack = void 0;
const _Error404 = defineAsyncComponent(() => import('./static/error-404-e554c81e.mjs').then((r) => r.default || r));
const _Error = defineAsyncComponent(() => import('./static/error-500-87e865c4.mjs').then((r) => r.default || r));
const ErrorTemplate = is404 ? _Error404 : _Error;
return (_ctx, _push, _parent, _attrs) => {
_push(ssrRenderComponent(unref(ErrorTemplate), mergeProps({ statusCode: unref(statusCode), statusMessage: unref(statusMessage), description: unref(description), stack: unref(stack) }, _attrs), null, _parent));
};
}
};
const _sfc_setup$1 = _sfc_main$1.setup;
_sfc_main$1.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("node_modules/nuxt/dist/app/components/nuxt-error-page.vue");
return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0;
};
const ErrorComponent = _sfc_main$1;
const _sfc_main = {
__name: "nuxt-root",
__ssrInlineRender: true,
setup(__props) {
const IslandRenderer = defineAsyncComponent(() => import('./static/island-renderer-e75852ba.mjs').then((r) => r.default || r));
const nuxtApp = /* @__PURE__ */ useNuxtApp();
nuxtApp.deferHydration();
nuxtApp.ssrContext.url;
const SingleRenderer = false;
provide(PageRouteSymbol, useRoute());
nuxtApp.hooks.callHookWith((hooks) => hooks.map((hook) => hook()), "vue:setup");
const error = useError();
onErrorCaptured((err, target, info) => {
nuxtApp.hooks.callHook("vue:error", err, target, info).catch((hookError) => console.error("[nuxt] Error in `vue:error` hook", hookError));
{
const p = nuxtApp.runWithContext(() => showError(err));
onServerPrefetch(() => p);
return false;
}
});
const islandContext = nuxtApp.ssrContext.islandContext;
return (_ctx, _push, _parent, _attrs) => {
ssrRenderSuspense(_push, {
default: () => {
if (unref(error)) {
_push(ssrRenderComponent(unref(ErrorComponent), { error: unref(error) }, null, _parent));
} else if (unref(islandContext)) {
_push(ssrRenderComponent(unref(IslandRenderer), { context: unref(islandContext) }, null, _parent));
} else if (unref(SingleRenderer)) {
ssrRenderVNode(_push, createVNode(resolveDynamicComponent(unref(SingleRenderer)), null, null), _parent);
} else {
_push(ssrRenderComponent(unref(AppComponent), null, null, _parent));
}
},
_: 1
});
};
}
};
const _sfc_setup = _sfc_main.setup;
_sfc_main.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("node_modules/nuxt/dist/app/components/nuxt-root.vue");
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
};
const RootComponent = _sfc_main;
let entry;
{
entry = async function createNuxtAppServer(ssrContext) {
const vueApp = createApp(RootComponent);
const nuxt = createNuxtApp({ vueApp, ssrContext });
try {
await applyPlugins(nuxt, plugins);
await nuxt.hooks.callHook("app:created", vueApp);
} catch (err) {
await nuxt.hooks.callHook("app:error", err);
nuxt.payload.error = nuxt.payload.error || err;
}
if (ssrContext == null ? void 0 : ssrContext._renderResponse) {
throw new Error("skipping render");
}
return vueApp;
};
}
const entry$1 = (ctx) => entry(ctx);
export { _export_sfc as _, useRuntimeConfig as a, useHead as b, createError as c, entry$1 as default, navigateTo as n, useRouter as u };
//# sourceMappingURL=server.mjs.map