- 新增api目录下多个接口路径代理处理文件,支持动态拼接目标URL - 根据环境变量选择不同的后端服务地址(如dev和生产环境) - 统一添加TenantId和Authorization请求头传递租户及身份信息 - 实现请求参数及搜索参数的完整转发 - 引入better-sqlite3及node内建模块支持服务端功能 - 新增专家详情页面,实现文章、成果及预约咨询功能展示 - 页面实现加载骨架屏、标签页切换及空状态提示优化体验
319 lines
12 KiB
JavaScript
319 lines
12 KiB
JavaScript
import { a as _export_sfc, c as useHead, e as useRoute, n as navigateTo } from './server.mjs';
|
||
import { defineComponent, ref, resolveComponent, mergeProps, unref, isRef, withCtx, createTextVNode, createVNode, toDisplayString, useSSRContext } from 'vue';
|
||
import { ssrRenderAttrs, ssrRenderComponent, ssrRenderList, ssrInterpolate, ssrRenderStyle } from 'vue/server-renderer';
|
||
import { message } from 'ant-design-vue';
|
||
import '../nitro/nitro.mjs';
|
||
import 'node:http';
|
||
import 'node:https';
|
||
import 'node:events';
|
||
import 'node:buffer';
|
||
import 'node:fs';
|
||
import 'node:path';
|
||
import 'node:crypto';
|
||
import 'node:url';
|
||
import 'better-sqlite3';
|
||
import 'vue-router';
|
||
import '@babel/runtime/helpers/esm/extends';
|
||
import 'stylis';
|
||
import 'dayjs';
|
||
import '../routes/renderer.mjs';
|
||
import 'vue-bundle-renderer/runtime';
|
||
import 'unhead/server';
|
||
import 'devalue';
|
||
import 'unhead/plugins';
|
||
import 'unhead/utils';
|
||
|
||
const _sfc_main = /* @__PURE__ */ defineComponent({
|
||
__name: "index",
|
||
__ssrInlineRender: true,
|
||
setup(__props) {
|
||
useHead({ title: "会员服务 - 决策咨询网" });
|
||
const activeType = ref(useRoute().query.type || "");
|
||
const loading = ref(false);
|
||
const services = ref([]);
|
||
const mockServices = [
|
||
{
|
||
id: 1,
|
||
type: "consult",
|
||
icon: "🏢",
|
||
title: "企业决策咨询",
|
||
description: "为企业提供战略规划、政策解读、市场分析等专业决策咨询服务,助力企业把握发展机遇。",
|
||
tags: ["企业咨询", "战略规划"]
|
||
},
|
||
{
|
||
id: 2,
|
||
type: "service",
|
||
icon: "📊",
|
||
title: "专题研究报告",
|
||
description: "提供行业专题研究、政策分析报告、区域发展研究等专业研究成果。",
|
||
tags: ["研究报告", "深度分析"]
|
||
},
|
||
{
|
||
id: 3,
|
||
type: "consult",
|
||
icon: "🎯",
|
||
title: "政策合规指导",
|
||
description: "协助企业理解最新政策法规,确保企业运营符合政策要求,规避合规风险。",
|
||
tags: ["政策合规", "风险规避"]
|
||
},
|
||
{
|
||
id: 4,
|
||
type: "service",
|
||
icon: "📋",
|
||
title: "专家论证会",
|
||
description: "组织相关领域专家为企业重大决策提供专业论证和咨询建议。",
|
||
tags: ["专家论证", "专业咨询"]
|
||
},
|
||
{
|
||
id: 5,
|
||
type: "service",
|
||
icon: "🌐",
|
||
title: "数据服务",
|
||
description: "提供决策所需的经济数据、行业数据、区域数据等专业数据服务(仅限会员)。",
|
||
tags: ["数据服务", "会员专享"]
|
||
},
|
||
{
|
||
id: 6,
|
||
type: "consult",
|
||
icon: "💼",
|
||
title: "培训与讲座",
|
||
description: "为企业及个人提供政策解读、决策方法等专题培训和讲座服务。",
|
||
tags: ["培训讲座", "能力提升"]
|
||
}
|
||
];
|
||
async function loadServices() {
|
||
loading.value = true;
|
||
try {
|
||
await new Promise((resolve) => setTimeout(resolve, 300));
|
||
const type = activeType.value;
|
||
services.value = type ? mockServices.filter((s) => s.type === type) : mockServices;
|
||
} catch (e) {
|
||
message.error("加载失败");
|
||
} finally {
|
||
loading.value = false;
|
||
}
|
||
}
|
||
function handleTypeChange() {
|
||
loadServices();
|
||
}
|
||
return (_ctx, _push, _parent, _attrs) => {
|
||
const _component_a_radio_group = resolveComponent("a-radio-group");
|
||
const _component_a_radio_button = resolveComponent("a-radio-button");
|
||
const _component_a_tag = resolveComponent("a-tag");
|
||
const _component_a_spin = resolveComponent("a-spin");
|
||
const _component_a_empty = resolveComponent("a-empty");
|
||
const _component_a_space = resolveComponent("a-space");
|
||
const _component_a_button = resolveComponent("a-button");
|
||
_push(`<div${ssrRenderAttrs(mergeProps({ class: "membership-page" }, _attrs))} data-v-548bc52a><div class="page-header" data-v-548bc52a><h1 class="page-title" data-v-548bc52a>会员服务</h1><p class="page-desc" data-v-548bc52a>为企业会员和个人会员提供专业、高效的咨询服务</p></div><div class="category-tabs" data-v-548bc52a>`);
|
||
_push(ssrRenderComponent(_component_a_radio_group, {
|
||
value: unref(activeType),
|
||
"onUpdate:value": ($event) => isRef(activeType) ? activeType.value = $event : null,
|
||
"button-style": "solid",
|
||
onChange: handleTypeChange
|
||
}, {
|
||
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
||
if (_push2) {
|
||
_push2(ssrRenderComponent(_component_a_radio_button, { value: "" }, {
|
||
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
|
||
if (_push3) {
|
||
_push3(`全部`);
|
||
} else {
|
||
return [
|
||
createTextVNode("全部")
|
||
];
|
||
}
|
||
}),
|
||
_: 1
|
||
}, _parent2, _scopeId));
|
||
_push2(ssrRenderComponent(_component_a_radio_button, { value: "consult" }, {
|
||
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
|
||
if (_push3) {
|
||
_push3(`企业咨询`);
|
||
} else {
|
||
return [
|
||
createTextVNode("企业咨询")
|
||
];
|
||
}
|
||
}),
|
||
_: 1
|
||
}, _parent2, _scopeId));
|
||
_push2(ssrRenderComponent(_component_a_radio_button, { value: "service" }, {
|
||
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
|
||
if (_push3) {
|
||
_push3(`专项服务`);
|
||
} else {
|
||
return [
|
||
createTextVNode("专项服务")
|
||
];
|
||
}
|
||
}),
|
||
_: 1
|
||
}, _parent2, _scopeId));
|
||
} else {
|
||
return [
|
||
createVNode(_component_a_radio_button, { value: "" }, {
|
||
default: withCtx(() => [
|
||
createTextVNode("全部")
|
||
]),
|
||
_: 1
|
||
}),
|
||
createVNode(_component_a_radio_button, { value: "consult" }, {
|
||
default: withCtx(() => [
|
||
createTextVNode("企业咨询")
|
||
]),
|
||
_: 1
|
||
}),
|
||
createVNode(_component_a_radio_button, { value: "service" }, {
|
||
default: withCtx(() => [
|
||
createTextVNode("专项服务")
|
||
]),
|
||
_: 1
|
||
})
|
||
];
|
||
}
|
||
}),
|
||
_: 1
|
||
}, _parent));
|
||
_push(`</div><div class="service-grid" data-v-548bc52a><!--[-->`);
|
||
ssrRenderList(unref(services), (service) => {
|
||
_push(`<div class="service-card" data-v-548bc52a><div class="service-icon" data-v-548bc52a>${ssrInterpolate(service.icon)}</div><h3 class="service-title" data-v-548bc52a>${ssrInterpolate(service.title)}</h3><p class="service-desc" data-v-548bc52a>${ssrInterpolate(service.description)}</p><div class="service-tags" data-v-548bc52a><!--[-->`);
|
||
ssrRenderList(service.tags, (tag) => {
|
||
_push(ssrRenderComponent(_component_a_tag, {
|
||
key: tag,
|
||
color: "blue"
|
||
}, {
|
||
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
||
if (_push2) {
|
||
_push2(`${ssrInterpolate(tag)}`);
|
||
} else {
|
||
return [
|
||
createTextVNode(toDisplayString(tag), 1)
|
||
];
|
||
}
|
||
}),
|
||
_: 2
|
||
}, _parent));
|
||
});
|
||
_push(`<!--]--></div></div>`);
|
||
});
|
||
_push(`<!--]-->`);
|
||
if (unref(loading)) {
|
||
_push(`<div class="loading-placeholder" data-v-548bc52a>`);
|
||
_push(ssrRenderComponent(_component_a_spin, { size: "large" }, null, _parent));
|
||
_push(`</div>`);
|
||
} else {
|
||
_push(`<!---->`);
|
||
}
|
||
if (!unref(loading) && unref(services).length === 0) {
|
||
_push(`<div class="empty-placeholder" data-v-548bc52a>`);
|
||
_push(ssrRenderComponent(_component_a_empty, { description: "暂无服务" }, null, _parent));
|
||
_push(`</div>`);
|
||
} else {
|
||
_push(`<!---->`);
|
||
}
|
||
_push(`</div><div class="contact-section" data-v-548bc52a><h2 data-v-548bc52a>联系我们</h2><p data-v-548bc52a>如有疑问或需要帮助,请随时与我们联系</p>`);
|
||
_push(ssrRenderComponent(_component_a_space, {
|
||
size: "large",
|
||
direction: "vertical"
|
||
}, {
|
||
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
||
if (_push2) {
|
||
_push2(ssrRenderComponent(_component_a_space, { size: "large" }, {
|
||
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
|
||
if (_push3) {
|
||
_push3(`<span data-v-548bc52a${_scopeId2}>📞</span><span data-v-548bc52a${_scopeId2}>联系电话:0771-5386339</span>`);
|
||
} else {
|
||
return [
|
||
createVNode("span", null, "📞"),
|
||
createVNode("span", null, "联系电话:0771-5386339")
|
||
];
|
||
}
|
||
}),
|
||
_: 1
|
||
}, _parent2, _scopeId));
|
||
_push2(ssrRenderComponent(_component_a_space, { size: "large" }, {
|
||
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
|
||
if (_push3) {
|
||
_push3(`<span data-v-548bc52a${_scopeId2}>📧</span><span data-v-548bc52a${_scopeId2}>咨询邮箱:gxjzxzx@126.com</span>`);
|
||
} else {
|
||
return [
|
||
createVNode("span", null, "📧"),
|
||
createVNode("span", null, "咨询邮箱:gxjzxzx@126.com")
|
||
];
|
||
}
|
||
}),
|
||
_: 1
|
||
}, _parent2, _scopeId));
|
||
_push2(ssrRenderComponent(_component_a_space, { size: "large" }, {
|
||
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
|
||
if (_push3) {
|
||
_push3(`<span data-v-548bc52a${_scopeId2}>⏰</span><span data-v-548bc52a${_scopeId2}>服务时间:周一至周五 9:00-17:00</span>`);
|
||
} else {
|
||
return [
|
||
createVNode("span", null, "⏰"),
|
||
createVNode("span", null, "服务时间:周一至周五 9:00-17:00")
|
||
];
|
||
}
|
||
}),
|
||
_: 1
|
||
}, _parent2, _scopeId));
|
||
} else {
|
||
return [
|
||
createVNode(_component_a_space, { size: "large" }, {
|
||
default: withCtx(() => [
|
||
createVNode("span", null, "📞"),
|
||
createVNode("span", null, "联系电话:0771-5386339")
|
||
]),
|
||
_: 1
|
||
}),
|
||
createVNode(_component_a_space, { size: "large" }, {
|
||
default: withCtx(() => [
|
||
createVNode("span", null, "📧"),
|
||
createVNode("span", null, "咨询邮箱:gxjzxzx@126.com")
|
||
]),
|
||
_: 1
|
||
}),
|
||
createVNode(_component_a_space, { size: "large" }, {
|
||
default: withCtx(() => [
|
||
createVNode("span", null, "⏰"),
|
||
createVNode("span", null, "服务时间:周一至周五 9:00-17:00")
|
||
]),
|
||
_: 1
|
||
})
|
||
];
|
||
}
|
||
}),
|
||
_: 1
|
||
}, _parent));
|
||
_push(`<div style="${ssrRenderStyle({ "margin-top": "20px" })}" data-v-548bc52a>`);
|
||
_push(ssrRenderComponent(_component_a_button, {
|
||
type: "primary",
|
||
size: "large",
|
||
onClick: ($event) => ("navigateTo" in _ctx ? _ctx.navigateTo : unref(navigateTo))("/about/consultation")
|
||
}, {
|
||
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
||
if (_push2) {
|
||
_push2(` 了解咨询服务详情 → `);
|
||
} else {
|
||
return [
|
||
createTextVNode(" 了解咨询服务详情 → ")
|
||
];
|
||
}
|
||
}),
|
||
_: 1
|
||
}, _parent));
|
||
_push(`</div></div></div>`);
|
||
};
|
||
}
|
||
});
|
||
const _sfc_setup = _sfc_main.setup;
|
||
_sfc_main.setup = (props, ctx) => {
|
||
const ssrContext = useSSRContext();
|
||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/membership/index.vue");
|
||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||
};
|
||
const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-548bc52a"]]);
|
||
|
||
export { index as default };
|
||
//# sourceMappingURL=index-B8o-rKOg.mjs.map
|