- Spring Boot 后端服务 (hss-home-service) - delivery-miniapp 配送小程序 - website 官网 (Nuxt) - docs 架构设计文档 - Docker 容器化部署配置 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
67 lines
4.1 KiB
JavaScript
67 lines
4.1 KiB
JavaScript
import { defineComponent, mergeProps, ref, useSSRContext } from 'file:///home/akoo/%E5%B1%85%E5%AE%B6%E6%9C%8D%E5%8A%A1/hss-home-service/website/node_modules/vue/index.mjs';
|
|
import { ssrRenderAttrs, ssrRenderList, ssrInterpolate } from 'file:///home/akoo/%E5%B1%85%E5%AE%B6%E6%9C%8D%E5%8A%A1/hss-home-service/website/node_modules/vue/server-renderer/index.mjs';
|
|
import { a as _export_sfc } from './server.mjs';
|
|
|
|
function useScrollAnim(options = {}) {
|
|
const { delay = 0, threshold = 0.15 } = options;
|
|
const isVisible = ref(false);
|
|
let observer = null;
|
|
function observe(el, overrides = {}) {
|
|
var _a, _b;
|
|
const d = (_a = overrides.delay) != null ? _a : delay;
|
|
const cls = (_b = overrides.class) != null ? _b : "flow-visible";
|
|
observer = new IntersectionObserver(
|
|
(entries) => {
|
|
entries.forEach((entry) => {
|
|
if (entry.isIntersecting) {
|
|
setTimeout(() => {
|
|
entry.target.classList.add(cls);
|
|
}, d);
|
|
observer == null ? void 0 : observer.unobserve(entry.target);
|
|
}
|
|
});
|
|
},
|
|
{ threshold }
|
|
);
|
|
observer.observe(el);
|
|
}
|
|
function unobserveAll() {
|
|
observer == null ? void 0 : observer.disconnect();
|
|
}
|
|
return { isVisible, observe, unobserve: unobserveAll };
|
|
}
|
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
__name: "ServiceLoopFlow",
|
|
__ssrInlineRender: true,
|
|
setup(__props) {
|
|
const steps = [
|
|
{ num: "01", title: "\u9700\u6C42\u53D7\u7406", desc: "\u591A\u6E20\u9053\u7EDF\u4E00\u63A5\u5165\n\u81EA\u52A8\u6821\u9A8C\u4E0E\u5BA1\u6838" },
|
|
{ num: "02", title: "\u80FD\u529B\u8BC4\u4F30", desc: "\u4E0A\u95E8\u8BC4\u4F30\u5B9A\u7EA7\nGPS\u7B7E\u5230+\u62CD\u7167" },
|
|
{ num: "03", title: "\u65B9\u6848\u5236\u5B9A", desc: "\u4E2A\u6027\u5316\u670D\u52A1\u65B9\u6848\n\u8D39\u7528\u900F\u660E\u8BA1\u7B97" },
|
|
{ num: "04", title: "\u667A\u80FD\u6D3E\u5355", desc: "\u7B97\u6CD5\u5339\u914D\u63A8\u8350\n\u4EBA\u5DE5\u786E\u8BA4\u515C\u5E95" },
|
|
{ num: "05", title: "\u4E0A\u95E8\u6267\u884C", desc: "GPS\u7B7E\u5230\u6821\u9A8C\n\u9879\u76EE\u7EA7\u6267\u884C\u8BB0\u5F55" },
|
|
{ num: "06", title: "\u8FC7\u7A0B\u76D1\u7BA1", desc: "\u62BD\u67E5\u8FDD\u89C4\u6574\u6539\n\u5BA1\u8BA1\u65E5\u5FD7\u8FFD\u6EAF" },
|
|
{ num: "07", title: "\u9A8C\u6536\u8BC4\u4EF7", desc: "\u661F\u7EA7+\u6807\u7B7E\u8BC4\u4EF7\n\u8BC4\u5206\u5F71\u54CD\u540E\u7EED\u6D3E\u5355" },
|
|
{ num: "08", title: "\u7ED3\u7B97\u5F52\u6863", desc: "\u81EA\u52A8\u6C47\u603B\u7ED3\u7B97\n\u7535\u5B50\u53F0\u8D26\u5F52\u6863" }
|
|
];
|
|
useScrollAnim();
|
|
return (_ctx, _push, _parent, _attrs) => {
|
|
_push(`<div${ssrRenderAttrs(mergeProps({ class: "relative" }, _attrs))} data-v-f6f421ef><div class="hidden lg:block absolute top-1/2 left-[5%] right-[5%] h-0.5 bg-gray-200 -translate-y-1/2 z-0" data-v-f6f421ef></div><div class="grid grid-cols-2 lg:grid-cols-4 gap-4 md:gap-6 relative z-10" data-v-f6f421ef><!--[-->`);
|
|
ssrRenderList(steps, (s, i) => {
|
|
_push(`<div class="flow-step bg-white rounded-2xl p-5 md:p-6 text-center shadow-sm opacity-0 translate-y-8 transition-all duration-500 hover:shadow-lg group" data-v-f6f421ef><span class="w-12 h-12 mx-auto mb-4 rounded-full bg-gradient-to-br from-primary-50 to-accent-50 text-primary font-bold text-sm flex items-center justify-center group-hover:from-primary group-hover:to-accent group-hover:text-white transition-all" data-v-f6f421ef>${ssrInterpolate(s.num)}</span><h4 class="font-bold text-sm mb-1" data-v-f6f421ef>${ssrInterpolate(s.title)}</h4><p class="text-xs text-text-secondary whitespace-pre-line leading-relaxed" data-v-f6f421ef>${ssrInterpolate(s.desc)}</p></div>`);
|
|
});
|
|
_push(`<!--]--></div></div>`);
|
|
};
|
|
}
|
|
});
|
|
const _sfc_setup = _sfc_main.setup;
|
|
_sfc_main.setup = (props, ctx) => {
|
|
const ssrContext = useSSRContext();
|
|
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/ServiceLoopFlow.vue");
|
|
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
|
};
|
|
const __nuxt_component_0 = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-f6f421ef"]]);
|
|
|
|
export { __nuxt_component_0 as _ };
|
|
//# sourceMappingURL=ServiceLoopFlow-BcBowZhS.mjs.map
|