2025-02-14 17:05:11 +08:00

3024 lines
156 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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: `<!DOCTYPE html><html><head><meta http-equiv="refresh" content="0; url=${encodedLoc}"></head></html>`,
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}<div id="${key.slice(1)}">${value}</div>`;
}
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,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";
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(`<div${ssrRenderAttrs(mergeProps({ class: "answer-discuss" }, _attrs))}><div class="header flexacenter"> 回答&amp;讨论 <span class="num">${ssrInterpolate(unref(commentTotalCount) || "")}</span></div><div class="input-box"><div class="top flexflex">`);
if (unref(user).avatar) {
_push(`<img class="avatar"${ssrRenderAttr("src", unref(user).avatar)}>`);
} else {
_push(`<!---->`);
}
_push(`<textarea class="input-textarea flex1" maxlength="500" placeholder="说说你的看法…">${ssrInterpolate(unref(inputTextarea))}</textarea></div>`);
if (unref(picture).url) {
_push(`<div class="picture-box"><div class="picture"><img class="close"${ssrRenderAttr("src", _imports_0$1)}><img class="img"${ssrRenderAttr("src", unref(picture).base64 || unref(picture).url)}></div></div>`);
} else {
_push(`<!---->`);
}
_push(`<div class="bottom flexacenter"><div class="operate flexacenter"><div class="${ssrRenderClass([{ "pitch": unref(emojiState) }, "item"])}"><img class="icon"${ssrRenderAttr("src", _imports_1$1)} alt=""><div class="emoji-box"><!--[-->`);
ssrRenderList(emojiData, (item) => {
_push(`<div class="emoji-icon">${ssrInterpolate(item)}</div>`);
});
_push(`<!--]--></div></div><div class="item flexacenter"><input class="file" type="file" accept=".png, .jpg, .jpeg"><img class="icon" style="${ssrRenderStyle({ "border-radius": "0" })}"${ssrRenderAttr("src", _imports_2$1)} alt=""><span class="file-hint">最多可上传1张图片支持在输入框中直接粘贴图片。</span></div></div><div class="btn">发送</div></div></div><div class="comments-box"><!--[-->`);
ssrRenderList(unref(commentList), (item, index) => {
var _a, _b, _c, _d;
_push(`<div class="comments-item"><div class="comments-header flexacenter"><div class="comments-header-left flexacenter"><img class="comments-avatar"${ssrRenderAttr("src", item["avatar"])}><div class="comments-username">${ssrInterpolate(item["nickname"] || "匿名用户")}</div><div class="comments-time">${ssrInterpolate(unref(handleDate)(item["timestamp"]))}</div>`);
if (item["isauthor"] == 1) {
_push(`<div class="comments-identity">提问者</div>`);
} else {
_push(`<!---->`);
}
if (item["avatarState"]) {
_push(`<div class="avatar-box flexflex"><a class="avatar-item flexcenter" target="_blank"><img class="avatar-icon"${ssrRenderAttr("src", _imports_13)}> 发送信息 </a><a class="avatar-item flexcenter" target="_blank"><img class="avatar-icon"${ssrRenderAttr("src", _imports_14)}> TA的主页 </a><div class="avatar-mask"></div></div>`);
} else {
_push(`<!---->`);
}
_push(`</div><div class="comments-header-right flexacenter"><div class="menu-box flexacenter"><img class="menu-icon"${ssrRenderAttr("src", _imports_5$1)}><div class="report-box flexcenter">举报</div></div><img class="comment-icon"${ssrRenderAttr("src", _imports_7$1)}><div class="flexacenter like-box">`);
if (item["islike"] == 0) {
_push(`<img class="like-icon"${ssrRenderAttr("src", _imports_7)}>`);
} else {
_push(`<img class="like-icon"${ssrRenderAttr("src", _imports_17)}>`);
}
_push(`<div class="like-quantity">${ssrInterpolate(item["likenum"] || "")}</div></div></div></div><div class="comments-content"><div class="comments-text">${item["content"]}</div>`);
if ((_a = item.image) == null ? void 0 : _a.url) {
_push(`<img class="comments-img"${ssrRenderAttr("src", ((_b = item.image) == null ? void 0 : _b.base64) || ((_c = item.image) == null ? void 0 : _c.url))}>`);
} else {
_push(`<!---->`);
}
if (item["childState"]) {
_push(`<div class="input-box"><img class="cross"${ssrRenderAttr("src", _imports_12)}><div class="top flexflex"><textarea class="input-textarea flex1" maxlength="500" placeholder="说说你的看法…">${ssrInterpolate(item["commentInput"])}</textarea></div>`);
if ((_d = item.picture) == null ? void 0 : _d.url) {
_push(`<div class="picture-box"><div class="picture"><img class="close"${ssrRenderAttr("src", _imports_0$1)}><img class="img"${ssrRenderAttr("src", item.picture.base64 || item.picture.url)}></div></div>`);
} else {
_push(`<!---->`);
}
_push(`<div class="bottom flexacenter"><div class="operate flexacenter"><div class="${ssrRenderClass([{ "pitch": item.emojiState }, "item"])}"><img class="icon"${ssrRenderAttr("src", _imports_1$1)} alt=""><div class="emoji-box"><!--[-->`);
ssrRenderList(emojiData, (item2) => {
_push(`<div class="emoji-icon">${ssrInterpolate(item2)}</div>`);
});
_push(`<!--]--></div></div><div class="item flexacenter"><input class="file" type="file" accept=".png, .jpg, .jpeg"><img class="icon" style="${ssrRenderStyle({ "border-radius": "0" })}"${ssrRenderAttr("src", _imports_2$1)} alt=""><span class="file-hint">最多可上传1张图片支持在输入框中直接粘贴图片。</span></div></div><div class="btn">发送</div></div></div>`);
} else {
_push(`<!---->`);
}
_push(`</div>`);
if (item["child"].length != 0) {
_push(`<div class="child-comments"><!--[-->`);
ssrRenderList(item["child"], (ite, i) => {
var _a2, _b2, _c2, _d2, _e;
_push(`<div class="comments-item"><div class="comments-header flexacenter"><div class="comments-header-left flexacenter"><img class="comments-avatar"${ssrRenderAttr("src", ite["avatar"])}><div class="comments-username">${ssrInterpolate(ite["nickname"] || "匿名用户")}</div><div class="comments-time">${ssrInterpolate(unref(handleDate)(ite["timestamp"]))}</div>`);
if (ite["isauthor"] == 1) {
_push(`<div class="comments-identity">提问者</div>`);
} else {
_push(`<!---->`);
}
if (ite["avatarState"]) {
_push(`<div class="avatar-box flexflex"><a class="avatar-item flexcenter" target="_blank"><img class="avatar-icon"${ssrRenderAttr("src", _imports_13)}> 发送信息 </a><a class="avatar-item flexcenter" target="_blank"><img class="avatar-icon"${ssrRenderAttr("src", _imports_14)}> TA的主页 </a><div class="avatar-mask"></div></div>`);
} else {
_push(`<!---->`);
}
_push(`</div><div class="comments-header-right flexacenter"><div class="menu-box flexacenter"><img class="menu-icon"${ssrRenderAttr("src", _imports_5$1)}><div class="report-box flexcenter">举报</div></div><img class="comment-icon"${ssrRenderAttr("src", _imports_7$1)}><div class="flexacenter like-box">`);
if (ite["islike"] == 0) {
_push(`<img class="like-icon"${ssrRenderAttr("src", _imports_7)}>`);
} else {
_push(`<img class="like-icon"${ssrRenderAttr("src", _imports_17)}>`);
}
_push(`<div class="like-quantity">${ssrInterpolate(ite["likenum"] || "")}</div></div></div></div><div class="comments-content"><div class="comments-text">`);
if ((_a2 = ite == null ? void 0 : ite.reply) == null ? void 0 : _a2.nickname) {
_push(`<div class="comments-reply">@${ssrInterpolate(ite["reply"]["nickname"] || "匿名用户")}</div>`);
} else {
_push(`<!---->`);
}
_push(`<span>${ite["content"]}</span></div>`);
if ((_b2 = ite.image) == null ? void 0 : _b2.url) {
_push(`<img class="comments-img"${ssrRenderAttr("src", ((_c2 = ite.image) == null ? void 0 : _c2.base64) || ((_d2 = ite.image) == null ? void 0 : _d2.url))}>`);
} else {
_push(`<!---->`);
}
if (ite["childState"]) {
_push(`<div class="input-box"><img class="cross"${ssrRenderAttr("src", _imports_12)}><div class="top flexflex"><textarea class="input-textarea flex1" maxlength="500"${ssrRenderAttr("placeholder", "回复“" + (ite["nickname"] || "匿名用户") + "”:")}>${ssrInterpolate(ite["commentInput"])}</textarea></div>`);
if ((_e = ite.picture) == null ? void 0 : _e.url) {
_push(`<div class="picture-box"><div class="picture"><img class="close"${ssrRenderAttr("src", _imports_0$1)}><img class="img"${ssrRenderAttr("src", ite.picture.base64 || ite.picture.url)}></div></div>`);
} else {
_push(`<!---->`);
}
_push(`<div class="bottom flexacenter"><div class="operate flexacenter"><div class="${ssrRenderClass([{ "pitch": ite.emojiState }, "item"])}"><img class="icon"${ssrRenderAttr("src", _imports_1$1)} alt=""><div class="emoji-box"><!--[-->`);
ssrRenderList(emojiData, (item2) => {
_push(`<div class="emoji-icon">${ssrInterpolate(item2)}</div>`);
});
_push(`<!--]--></div></div><div class="item flexacenter"><input class="file" type="file" accept=".png, .jpg, .jpeg"><img class="icon" style="${ssrRenderStyle({ "border-radius": "0" })}"${ssrRenderAttr("src", _imports_2$1)} alt=""><span class="file-hint">最多可上传1张图片支持在输入框中直接粘贴图片。</span></div></div><div class="btn">发送</div></div></div>`);
} else {
_push(`<!---->`);
}
_push(`</div></div>`);
});
_push(`<!--]-->`);
if (item["childnum"] > item["child"].length) {
_push(`<div class="comments-also flexacenter"><div class>还有${ssrInterpolate(item["childnum"] - item.child.length)}条回复</div><img class="also-icon"${ssrRenderAttr("src", _imports_10$1)}></div>`);
} else {
_push(`<!---->`);
}
_push(`</div>`);
} else {
_push(`<!---->`);
}
_push(`</div>`);
});
_push(`<!--]--></div></div>`);
};
}
};
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(/&nbsp;/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("<img")) == -1)
content = info["content"];
content = content.replace(/<[^>]*>/g, "");
content = content.replace(/&nbsp;/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 `<img src="${img.src}">`;
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(/&nbsp;/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(`<!--[--><div id="append_parent"></div><div id="ajaxwaitid"></div><div>`);
_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(`<div class id="answer-app"><header class="flexacenter" id="pageHeader"><div class="flexacenter top"><a href="./index.html"><img class="logo" alt="寄托问答"${ssrRenderAttr("src", _imports_0)}></a><div class="right flexacenter flex1"><div class="searchInput flexacenter"><input class="input flex1" placeholder="输入搜索关键词"${ssrRenderAttr("value", $setup.keyword)}>`);
if ($setup.isSearchMode) {
_push(`<div class="clear-search flexacenter"><img class="cross-circle-black"${ssrRenderAttr("src", _imports_1)}><div class="halving-line"></div></div>`);
} else {
_push(`<!---->`);
}
_push(`<img class="input-icon"${ssrRenderAttr("src", _imports_2)}>`);
if ($setup.historicalSearchState) {
_push(`<div class="history-box"><div class="history-title">历史搜索</div><div class="history-list"><!--[-->`);
ssrRenderList($setup.historicalSearchList, (item, index) => {
_push(`<div class="history-item ellipsis">${ssrInterpolate(item)}</div>`);
});
_push(`<!--]--></div></div>`);
} else {
_push(`<!---->`);
}
_push(`</div><div class="btn-list flexacenter"><div class="item flex1">我的收藏</div><div class="item flex1">我的提问</div></div><div class="add-btn flexcenter"><img class="add-icon"${ssrRenderAttr("src", _imports_3)}> 我要提问 </div></div></div><div class="${ssrRenderClass([{ "tab-list-fixed": $setup.tabListFixeState }, "tab-box flexcenter"])}"><div class="tab-list flexacenter"><!--[-->`);
ssrRenderList($setup.typeList, (item, index) => {
_push(`<!--[-->`);
if (index !== 0) {
_push(`<div class="halving-line">|</div>`);
} else {
_push(`<!---->`);
}
_push(`<!--[-->`);
ssrRenderList(item, (it) => {
_push(`<div class="${ssrRenderClass([{ pitch: $setup.typePitch == it["id"] }, "item flexcenter"])}">${ssrInterpolate(it["name"])}</div>`);
});
_push(`<!--]--><!--]-->`);
});
_push(`<!--]--></div></div></header><div class="${ssrRenderClass([{ "mode-list": $setup.type == "list" }, "main flexflex"])}"><div class="list-box" style="${ssrRenderStyle({ paddingRight: $setup.type == "list" ? 0 : "15px" })}"><div class="main-header" style="${ssrRenderStyle({ paddingLeft: $setup.type == "list" ? 0 : "calc((100vw - 1210px) / 2)" })}"><div class="flexacenter">`);
if ($setup.myModelState) {
_push(`<div class="search-keyword flexacenter"><div class="ellipsis">我的收藏/提问</div><img class="search-keyword-cross"${ssrRenderAttr("src", _imports_4)}></div>`);
} else if ($setup.isSearchMode) {
_push(`<!--[--><div class="search-keyword flexacenter"><div class="ellipsis">${ssrInterpolate($setup.keywordText)}</div><img class="search-keyword-cross"${ssrRenderAttr("src", _imports_4)}></div><div class="total grid-item">共 ${ssrInterpolate($setup.total)} 条搜索结果</div><!--]-->`);
} else {
_push(`<div class="total grid-item">共 ${ssrInterpolate($setup.total)} 条问答</div>`);
}
_push(`</div></div><div class="list" id="list" style="${ssrRenderStyle([$setup.listStyle(), { height: $setup.listHeight + "px" }])}"><!--[-->`);
ssrRenderList($setup.list, (item, index) => {
_push(`<!--[-->`);
if (item["isrecom"] && $setup.type != "list") {
_push(`<a style="${ssrRenderStyle($setup.itemStyle(index, item["content"], item["type"]))}" class="${ssrRenderClass([{ pitch: index === $setup.pitchIndex, upLevel: index === $setup.pitchIndex - 1 }, "item grid-item flexflex"])}" target="_blank"${ssrRenderAttr("href", item["url"])}><img class="dot"${ssrRenderAttr("src", _imports_5)}><div class="content" style="${ssrRenderStyle({ width: $setup.type == "list" ? "531px" : "430px" })}"><div class="issue-title flexcenter"><div class="recommend flexcenter">推荐阅读</div><div class="issue ellipsis flex1">${ssrInterpolate(item["title"])}</div></div>`);
if (item["type"] == "thread") {
_push(`<!--[-->`);
if (item["message"]) {
_push(`<div class="answer ellipsis">${ssrInterpolate(item["message"])}</div>`);
} else {
_push(`<!---->`);
}
_push(`<!--]-->`);
} else if (item["type"] == "vote") {
_push(`<div class="answer" style="${ssrRenderStyle({ "height": "auto" })}"><!--[-->`);
ssrRenderList(item["option"].slice(0, 2), (ite, i) => {
_push(`<div>${ssrInterpolate($setup.replaceNumberObj[i] + ite)}</div>`);
});
_push(`<!--]--><div>${ssrInterpolate($setup.replaceNumberObj[2])} …</div></div>`);
} else {
_push(`<div class="answer ellipsis flexacenter">`);
if (item["profession"] || item["professional"]) {
_push(`<div class="value-value">${ssrInterpolate(item["profession"] || item["professional"])}</div>`);
} else {
_push(`<!---->`);
}
if (item["project"] || item["degree"]) {
_push(`<div class="value-value">${ssrInterpolate(item["project"] || item["degree"])}</div>`);
} else {
_push(`<!---->`);
}
if (item["interviewtime"] || item["semester"]) {
_push(`<div class="value-value">${ssrInterpolate(item["interviewtime"] || item["semester"])}</div>`);
} else {
_push(`<!---->`);
}
if (item["apply_results"]) {
_push(`<div class="value-value">${ssrInterpolate(item["apply_results"])}</div>`);
} else {
_push(`<!---->`);
}
_push(`</div>`);
}
_push(`<div class="bottom flexacenter"><div class="typename flexcenter">${ssrInterpolate(item["typename"])}</div></div></div></a>`);
} else {
_push(`<a style="${ssrRenderStyle($setup.itemStyle(index, item["content"]))}" class="${ssrRenderClass([[{ pitch: index === $setup.pitchIndex, upLevel: index === $setup.pitchIndex - 1 }, `item${index}`], "item grid-item flexflex"])}"${ssrRenderAttr("href", $setup.setItemUrl(item["uniqid"]))}><img class="dot"${ssrRenderAttr("src", _imports_5)}><div class="content" style="${ssrRenderStyle({ width: $setup.type == "list" ? "531px" : "430px" })}"><div class="issue-title flexcenter">`);
if (item["ishot"] == 1) {
_push(`<img class="hot-icon"${ssrRenderAttr("src", _imports_6)}>`);
} else {
_push(`<!---->`);
}
_push(`<div class="issue ellipsis flex1">${ssrInterpolate(item["title"])}</div></div>`);
if (item["content"]) {
_push(`<div class="answer ellipsis">${ssrInterpolate(item["content"])}</div>`);
} else {
_push(`<!---->`);
}
_push(`<div class="bottom flexacenter">`);
if (item["typename"]) {
_push(`<div class="typename flexcenter">${ssrInterpolate(item["typename"])}</div>`);
} else {
_push(`<div></div>`);
}
_push(`<div class="flexacenter"><div class="quantity">${ssrInterpolate($setup.handleDate(item.publicationdate, false))}提问</div><div class="amount flexacenter"><img class="amount-icon"${ssrRenderAttr("src", _imports_7$1)} alt=""> ${ssrInterpolate(item.answers)}</div></div></div></div></a>`);
}
_push(`<!--]-->`);
});
_push(`<!--]--></div>`);
if ($setup.inTheEndState) {
_push(`<div class="bottom-tps" style="${ssrRenderStyle($setup.bottomTpsStyle())}">- 到底了 -</div>`);
} else {
_push(`<!---->`);
}
if ($setup.myModelState) {
_push(`<div class="bottom-tps" style="${ssrRenderStyle($setup.bottomTpsStyle())}"></div>`);
} else {
_push(`<!---->`);
}
if ($setup.isListEmptyState && $setup.list.length == 0) {
_push(`<div class="empty-box flexcenter"><div class="dot-list flexacenter"><img class="item"${ssrRenderAttr("src", _imports_8)}><img class="item"${ssrRenderAttr("src", _imports_8)}><img class="item"${ssrRenderAttr("src", _imports_8)}><img class="item"${ssrRenderAttr("src", _imports_9)}><img class="item"${ssrRenderAttr("src", _imports_9)}><img class="item"${ssrRenderAttr("src", _imports_9)}></div><img class="empty-icon"${ssrRenderAttr("src", _imports_10)}>`);
if ($setup.isSearchMode) {
_push(`<div class="empty-hint">没有找到相关结果,请更换搜索关键词</div>`);
} else {
_push(`<div class="empty-hint">暂无数据</div>`);
}
_push(`</div>`);
} else {
_push(`<!---->`);
}
_push(`</div>`);
if ($setup.type == "details") {
_push(`<div class="details-area-box flexflex"><div class="details-box flexflex">`);
if ($setup.detailLoading) {
_push(`<div class="loading-bj flexcenter"><svg t="1642133548066" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2597" width="200" height="200"><path d="M512 249.5c-22.5 0-37.5-15-37.5-37.5V99.5c0-22.5 15-37.5 37.5-37.5s37.5 15 37.5 37.5V212c0 22.5-15 37.5-37.5 37.5z m0 712.5c-22.5 0-37.5-15-37.5-37.5V812c0-22.5 15-37.5 37.5-37.5s37.5 15 37.5 37.5v112.5c0 22.5-15 37.5-37.5 37.5zM212 549.5H99.5C77 549.5 62 534.5 62 512s15-37.5 37.5-37.5H212c22.5 0 37.5 15 37.5 37.5s-15 37.5-37.5 37.5z m712.5 0H812c-22.5 0-37.5-15-37.5-37.5s15-37.5 37.5-37.5h112.5c22.5 0 37.5 15 37.5 37.5s-15 37.5-37.5 37.5z m-153.75-150c-11.25 0-26.25-7.5-33.75-18.75-11.25-18.75-3.75-41.25 15-52.5L849.5 272c18.75-11.25 41.25-3.75 52.5 15s3.75 41.25-15 52.5l-97.5 56.25c-3.75 3.75-11.25 3.75-18.75 3.75z m-615 356.25c-11.25 0-26.25-7.5-33.75-18.75-11.25-18.75-3.75-41.25 15-52.5l97.5-56.25c18.75-11.25 41.25-3.75 52.5 15s3.75 41.25-15 52.5L174.5 752c-7.5 3.75-15 3.75-18.75 3.75z m506.25-465c-7.5 0-11.25 0-18.75-3.75-18.75-11.25-22.5-33.75-15-52.5L684.5 137c11.25-18.75 33.75-22.5 52.5-15 18.75 11.25 22.5 33.75 15 52.5L695.75 272c-7.5 11.25-22.5 18.75-33.75 18.75z m-356.25 615c-7.5 0-11.25 0-18.75-3.75-18.75-11.25-22.5-33.75-15-52.5l56.25-97.5c11.25-15 33.75-22.5 52.5-11.25s22.5 33.75 15 52.5L339.5 887c-7.5 11.25-22.5 18.75-33.75 18.75z m-52.5-506.25c-7.5 0-15 0-18.75-3.75L137 339.5c-18.75-11.25-26.25-33.75-15-52.5s33.75-22.5 52.5-15l97.5 56.25c18.75 11.25 22.5 33.75 11.25 52.5-3.75 11.25-18.75 18.75-30 18.75z m615 356.25c-7.5 0-11.25 0-18.75-3.75L752 695.75c-18.75-11.25-22.5-33.75-15-52.5 11.25-18.75 33.75-22.5 52.5-15L887 684.5c18.75 11.25 22.5 33.75 15 52.5-7.5 11.25-18.75 18.75-33.75 18.75zM362 290.75c-11.25 0-26.25-7.5-33.75-18.75L272 174.5c-7.5-18.75-3.75-41.25 15-52.5s41.25-3.75 52.5 15l56.25 97.5c7.5 18.75 3.75 41.25-15 48.75-7.5 3.75-11.25 7.5-18.75 7.5z m356.25 615c-11.25 0-26.25-7.5-33.75-18.75l-56.25-97.5c-11.25-18.75-3.75-41.25 15-52.5s41.25-3.75 52.5 15L752 849.5c11.25 18.75 3.75 41.25-15 52.5-7.5 3.75-11.25 3.75-18.75 3.75z" p-id="2598" fill="#26d79f"></path></svg></div>`);
} else {
_push(`<!---->`);
}
if ($setup.emojiMaskState) {
_push(`<div class="emoji-box-mask"></div>`);
} else {
_push(`<!---->`);
}
_push(`<div class="close-box"><div class="close-circle flexcenter"><img class="close-icon"${ssrRenderAttr("src", _imports_11)}><img class="details-cross-icon"${ssrRenderAttr("src", _imports_12)}></div></div><div class="details-issue">`);
if ($setup.detailsInfo.typename) {
_push(`<div class="label">${ssrInterpolate($setup.detailsInfo.typename)}</div>`);
} else {
_push(`<!---->`);
}
_push(`<div class="titletitle">${ssrInterpolate($setup.detailsInfo["title"])}</div>`);
if ($setup.detailsInfo["content"]) {
_push(`<div class="hint">${$setup.detailsInfo["content"]}</div>`);
} else {
_push(`<!---->`);
}
_push(`<div class="info-box flexacenter"><div class="user-info flexacenter">`);
if ($setup.detailsInfo["avatar"]) {
_push(`<img class="avatar"${ssrRenderAttr("src", $setup.detailsInfo["avatar"])}>`);
} else {
_push(`<!---->`);
}
_push(`<div class="user-name">${ssrInterpolate($setup.detailsInfo["nickname"])}</div>`);
if ($setup.avatarState) {
_push(`<div class="avatar-box flexflex"><a class="avatar-item flexcenter" target="_blank"><img class="avatar-icon"${ssrRenderAttr("src", _imports_13)}> 发送信息 </a><a class="avatar-item flexcenter" target="_blank"><img class="avatar-icon"${ssrRenderAttr("src", _imports_14)}> TA的主页 </a><div class="avatar-mask"></div></div>`);
} else {
_push(`<!---->`);
}
_push(`<div class="time">${ssrInterpolate($setup.handleDate($setup.detailsInfo["publicationdate"]))}</div></div><div class="operate-item flexacenter" style="${ssrRenderStyle({ "cursor": "auto" })}"><img class="operate-icon operate-collect-icon" style="${ssrRenderStyle({ "width": "13px", "height": "8px" })}"${ssrRenderAttr("src", _imports_15)}> ${ssrInterpolate($setup.detailsInfo["viewnum"] || 0)}</div></div><div class="operate-box flexacenter"><div class="operate-list flexacenter"><div class="operate-item flexacenter">`);
if ($setup.islike == 0) {
_push(`<img class="operate-icon operate-like-icon"${ssrRenderAttr("src", _imports_16)}>`);
} else {
_push(`<img class="operate-icon operate-like-icon"${ssrRenderAttr("src", _imports_17)}>`);
}
_push(` ${ssrInterpolate($setup.detailsInfo.likenum || "赞")}</div>`);
_push(ssrRenderComponent(_component_ClientOnly, null, {}, _parent));
_push(`<div class="operate-item flexacenter operate-transmit"><img class="operate-icon operate-transmit-icon"${ssrRenderAttr("src", _imports_20)}> 转发 `);
if ($setup.questionsTransmitState) {
_push(`<div class="transmit-box flexflex" style="${ssrRenderStyle({ "z-index": "10" })}"><img class="cross-icon"${ssrRenderAttr("src", _imports_12)}><div class="transmit-left transmit-web"><div class="transmit-title">转发网页版</div><div class="transmit-content"><div class="transmit-headline">${ssrInterpolate($setup.detailsInfo["title"])}</div><div class="transmit-url">${ssrInterpolate($setup.getCurrentUrl())}</div></div><div class="transmit-web-btn flexcenter">复制链接</div></div><div class="transmit-right transmit-mini"><div class="transmit-title">转发小程序版</div><div class="transmit-content flexcenter"><img class="transmit-mini-img"${ssrRenderAttr("src", $setup.detailShare["qrcode"])}><div class="flexcenter"><img class="give-sweep"${ssrRenderAttr("src", _imports_21)}> 扫码转发该问答 </div></div></div></div>`);
} else {
_push(`<!---->`);
}
_push(`</div></div></div></div>`);
if ($setup.isCommentList) {
_push(ssrRenderComponent(_component_commentList, {
ref: "commentListRef",
onUpdateAnswers: $setup.handleUpdateAnswers
}, null, _parent));
} else {
_push(`<!---->`);
}
_push(`<div class="mobile-phone-check flexcenter"><img class="QRCode-icon"${ssrRenderAttr("src", _imports_22)} alt> 手机查看该问答 <div class="QRCode-pop flexcenter"><img class="offer-mini-QRcode"${ssrRenderAttr("src", $setup.detailShare["qrcode"])}><div class="QRCode-hint flexacenter"><img class="QRCode-img"${ssrRenderAttr("src", _imports_21)}> 微信扫一扫 </div></div></div></div></div>`);
} else {
_push(`<!---->`);
}
_push(`</div>`);
if ($setup.myType) {
_push(`<div class="popover-mask my-popover flexcenter"><div class="popover-box flexflex"><img class="cross-icon"${ssrRenderAttr("src", _imports_12)}><div class="tab-list flexcenter"><div class="${ssrRenderClass([{ pitch: $setup.myType == "collect" }, "tab-item flexacenter"])}"> 我的收藏 <div class="quantity">${ssrInterpolate($setup.myCollectionCount || $setup.myCount["collect"] || 0)}</div></div><div class="long-string"></div><div class="${ssrRenderClass([{ pitch: $setup.myType == "questions" }, "tab-item flexacenter"])}"> 我的提问 <div class="quantity">${ssrInterpolate($setup.myQuestionsCount || $setup.myCount["questions"] || 0)}</div></div></div>`);
if ($setup.myType == "collect" && $setup.myCollectionList.length == 0 || $setup.myType == "answers" && $setup.myAnswerList.length == 0 || $setup.myType == "questions" && $setup.myQuestionsList.length == 0) {
_push(`<div class="empty-box flexcenter"><div class="dot-list flexacenter"><img class="item"${ssrRenderAttr("src", _imports_8)}><img class="item"${ssrRenderAttr("src", _imports_8)}><img class="item"${ssrRenderAttr("src", _imports_8)}><img class="item"${ssrRenderAttr("src", _imports_9)}><img class="item"${ssrRenderAttr("src", _imports_9)}><img class="item"${ssrRenderAttr("src", _imports_9)}></div><img class="empty-icon"${ssrRenderAttr("src", _imports_10)}><div class="empty-hint">暂无内容</div></div>`);
} else {
_push(`<!---->`);
}
if ($setup.myType == "collect" && $setup.myCollectionList.length != 0) {
_push(`<div class="content-box collect-list"><!--[-->`);
ssrRenderList($setup.myCollectionList, (item, index) => {
_push(`<div class="item flexflex">`);
if (item.type == "askanswercollection") {
_push(`<!--[--><div class="icon a flexcenter">A</div><div class="centre flexflex flex1"><div class="titletitle ellipsis">${item["data"]["content"]}</div><div class="text ellipsis">提问:${ssrInterpolate(item["data"]["title"])}</div></div><div class="delete-box flexacenter"><img class="delete-icon"${ssrRenderAttr("src", _imports_23)}></div><!--]-->`);
} else {
_push(`<!--[--><div class="icon q flexcenter">Q</div><div class="centre flexflex flex1"><div class="titletitle ellipsis">${ssrInterpolate(item["data"]["title"])}</div><div class="text ellipsis">${ssrInterpolate(item["data"]["answers"] > 0 ? "共" + item["data"]["answers"] + "个回答&讨论" : "暂无回答&讨论")}</div></div><div class="delete-box flexacenter"><img class="delete-icon"${ssrRenderAttr("src", _imports_23)}></div><!--]-->`);
}
_push(`</div>`);
});
_push(`<!--]--></div>`);
} else {
_push(`<!---->`);
}
if ($setup.myType == "answers" && $setup.myAnswerList.length != 0) {
_push(`<div class="content-box answers-list"><!--[-->`);
ssrRenderList($setup.myAnswerList, (item, index) => {
_push(`<div class="item flexflex"><div class="icon a flexcenter">A</div><div class="centre flexflex flex1"><div class="info flexacenter"><div class="name">${ssrInterpolate(item["nickname"])}</div><div class="time">${ssrInterpolate($setup.handleDate(item["publicationdate"]))}</div></div><div class="titletitle ellipsis">${item["content"]}</div><div class="text ellipsis">提问:${ssrInterpolate(item["title"])}</div></div><div class="operate-box flexacenter"><div class="state-box flexacenter"><div class="text">${ssrInterpolate(item["anonymous"] == 0 ? "公开" : "匿名")}</div><img class="arrows"${ssrRenderAttr("src", _imports_24)}>`);
if (item["popupState"]) {
_push(`<div class="state-popup flexflex"><div class="${ssrRenderClass([{ pitch: item["anonymous"] == 0 }, "state-popup-item flexacenter flex1"])}"><div class>公开发表</div><img class="state-popup-icon"${ssrRenderAttr("src", _imports_25)}></div><div class="${ssrRenderClass([{ pitch: item["anonymous"] == 1 }, "state-popup-item flexacenter flex1"])}"><div class>匿名发表</div><img class="state-popup-icon"${ssrRenderAttr("src", _imports_25)}></div></div>`);
} else {
_push(`<!---->`);
}
_push(`</div><img class="edit-icon"${ssrRenderAttr("src", _imports_26)}></div></div>`);
});
_push(`<!--]--></div>`);
} else {
_push(`<!---->`);
}
if ($setup.myType == "questions" && $setup.myQuestionsList.length != 0) {
_push(`<div class="content-box questions-list"><!--[-->`);
ssrRenderList($setup.myQuestionsList, (item, index) => {
_push(`<div class="item flexflex"><div class="icon q flexcenter">Q</div><div class="centre flexflex flex1"><div class="info flexacenter"><div class="name">${ssrInterpolate(item["nickname"])}</div><div class="time">${ssrInterpolate($setup.handleDate(item["publicationdate"]))}</div></div><div class="titletitle ellipsis">${ssrInterpolate(item["title"])}</div><div class="text flexacenter">`);
if (item["authornewnum"] > 0) {
_push(`<div class="new-answer flexacenter"> 有${ssrInterpolate(item["authornewnum"])}个新回答&amp;讨论 <div class="long-string"></div></div>`);
} else {
_push(`<!---->`);
}
_push(` ${ssrInterpolate(item["answers"] == 0 ? "暂无回答&讨论" : "共" + item["answers"] + "个回答&讨论")}</div></div><div class="operate-box flexacenter"><div class="state-box flexacenter"><div class="text">${ssrInterpolate(item["anonymous"] == 0 ? "公开" : "匿名")}</div><img class="arrows"${ssrRenderAttr("src", _imports_24)}>`);
if (item["popupState"]) {
_push(`<div class="state-popup flexflex"><div class="${ssrRenderClass([{ pitch: item["anonymous"] == 0 }, "state-popup-item flexacenter flex1"])}"><div class>公开发表</div><img class="state-popup-icon"${ssrRenderAttr("src", _imports_25)}></div><div class="${ssrRenderClass([{ pitch: item["anonymous"] == 1 }, "state-popup-item flexacenter flex1"])}"><div class>匿名发表</div><img class="state-popup-icon"${ssrRenderAttr("src", _imports_25)}></div></div>`);
} else {
_push(`<!---->`);
}
_push(`</div></div></div>`);
});
_push(`<!--]--></div>`);
} else {
_push(`<!---->`);
}
_push(`</div></div>`);
} else {
_push(`<!---->`);
}
if ($setup.questionsSetp) {
_push(`<div class="popover-mask flexcenter issue-box">`);
if ($setup.questionsSetp == 1) {
_push(`<div class="choosing-theme"><div class="titletitle">选择提问所属主题</div><div class="theme-list flexflex"><!--[-->`);
ssrRenderList($setup.questionsTypeList, (item, index) => {
_push(`<div class="theme-stair-box flexflex"><!--[-->`);
ssrRenderList(item, (item2) => {
_push(`<div class="theme-item flexcenter">${ssrInterpolate(item2.name)}</div>`);
});
_push(`<!--]--></div>`);
});
_push(`<!--]--></div></div>`);
} else {
_push(`<div class="issue-form"><div class="issue-bj"><svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="727px" height="526px" xmlns="http://www.w3.org/2000/svg"><defs><mask fill="white" id="clip598"><path d="M 1 510 L 0.999871317552845 19.7966825002877 C 3.4185524978235 21.8045610459778 6.54626184609054 23 10 23 C 17.84 23 24 16.8399999999999 24 9 C 24 5.54542319048073 22.8039804094246 2.41703354202741 20.7929431454809 0 L 711 0 C 716.6 0 721 4.40000000000009 721 10 L 721 510 C 721 515.6 716.6 520 711 520 L 11 520 C 5.39999999999998 520 1 515.6 1 510 Z " fill-rule="evenodd"></path></mask><filter x="1126px" y="8991px" width="727px" height="526px" filterUnits="userSpaceOnUse" id="filter599"><feOffset dx="0" dy="0" in="SourceAlpha" result="shadowOffsetInner"></feOffset><feGaussianBlur stdDeviation="1.5" in="shadowOffsetInner" result="shadowGaussian"></feGaussianBlur><feComposite in2="shadowGaussian" operator="atop" in="SourceAlpha" result="shadowComposite"></feComposite><feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.117647058823529 0 " in="shadowComposite"></feColorMatrix></filter><g id="widget600"><path d="M 1 510 L 0.999871317552845 19.7966825002877 C 3.4185524978235 21.8045610459778 6.54626184609054 23 10 23 C 17.84 23 24 16.8399999999999 24 9 C 24 5.54542319048073 22.8039804094246 2.41703354202741 20.7929431454809 0 L 711 0 C 716.6 0 721 4.40000000000009 721 10 L 721 510 C 721 515.6 716.6 520 711 520 L 11 520 C 5.39999999999998 520 1 515.6 1 510 Z " fill-rule="nonzero" fill="#ffffff" stroke="none" transform="matrix(1 0 0 1 1129 8994 )"></path><path d="M 1 510 L 0.999871317552845 19.7966825002877 C 3.4185524978235 21.8045610459778 6.54626184609054 23 10 23 C 17.84 23 24 16.8399999999999 24 9 C 24 5.54542319048073 22.8039804094246 2.41703354202741 20.7929431454809 0 L 711 0 C 716.6 0 721 4.40000000000009 721 10 L 721 510 C 721 515.6 716.6 520 711 520 L 11 520 C 5.39999999999998 520 1 515.6 1 510 Z " stroke-width="2" stroke="#ebebeb" fill="none" transform="matrix(1 0 0 1 1129 8994 )" mask="url(#clip598)"></path></g></defs><g transform="matrix(1 0 0 1 -1126 -8991 )"><use xlink:href="#widget600" filter="url(#filter599)"></use><use xlink:href="#widget600"></use></g></svg></div><div class="flexcenter q">Q</div><img class="cross-icon"${ssrRenderAttr("src", _imports_12)}><div class="issue-input"><textarea placeholder="一句话描述问题,以问号结尾">${ssrInterpolate($setup.questionsObj.title)}</textarea></div><textarea class="issue-replenish" placeholder="欢迎补充,清晰表达问题的关键点,可获得更有效的解答(非必填)">${ssrInterpolate($setup.questionsObj.content)}</textarea><div class="issue-bottom flexacenter"><div class="option-box flexacenter" style="${ssrRenderStyle({ "color": "#333" })}">`);
if ($setup.questionsObj.anonymous == 0) {
_push(`<img class="option-icon"${ssrRenderAttr("src", _imports_27)}>`);
} else {
_push(`<img class="option-icon"${ssrRenderAttr("src", _imports_28)}>`);
}
_push(` 匿名发表 <div class style="${ssrRenderStyle({ "color": "#aaa" })}">(发布后只能修改是否匿名)</div></div><div class="issue-btn flexcenter">发布问题</div></div></div>`);
}
_push(`</div>`);
} else {
_push(`<!---->`);
}
_push(`<template><div class="${ssrRenderClass([$setup.boxClass(), "box-item"])}" style="${ssrRenderStyle({ top: "20px" })}"><div class="msg-container">${ssrInterpolate($setup.msg["text"])}</div></div></template>`);
if ($setup.dialogSrc) {
_push(`<div class="detail-image-mask flexcenter"><div class="detail-image flexcenter"><img class="detail-img"${ssrRenderAttr("src", $setup.dialogSrc)}></div></div>`);
} else {
_push(`<!---->`);
}
_push(`<div class="alert-form" style="${ssrRenderStyle($setup.alertShow ? null : { display: "none" })}"><div class="comments reports"><div class="head"><span style="${ssrRenderStyle({ "display": "flex", "align-items": "center" })}"><img style="${ssrRenderStyle({ "width": "25px", "margin-right": "7px" })}" src="//app.gter.net/image/gter/offer/img/exclamationpoint.png?v=4.2.08_331040000"> 举报投诉 </span><div class="close icon-close iconfont"></div></div><div class="form"><div class="radio-area flexacenter"><!--[-->`);
ssrRenderList($setup.reasonList, (s, i) => {
_push(`<div class="${ssrRenderClass([{ pitch: $setup.checkList.includes(s) }, "radio-area-item flexacenter"])}"><div class="radio-area-frame"></div> ${ssrInterpolate(s)}</div>`);
});
_push(`<!--]--></div><div class="text-box"><textarea placeholder="请输入举报原因" maxlength="200">${ssrInterpolate($setup.alertText)}</textarea><div class="text-num">${ssrInterpolate(200 - $setup.alertText.length)}</div></div><div class="footer"><button type="button">取消</button><button type="submit"${ssrIncludeBooleanAttr($setup.checkList.length == 0) ? " disabled" : ""}>提交</button></div></div></div></div></div></div><!--]-->`);
}
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) => `<span class="stack${i.internal ? " internal" : ""}">${i.text}</span>`).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