|
@@ -6,256 +6,13 @@ meta:
|
|
|
</route>
|
|
</route>
|
|
|
|
|
|
|
|
<script setup lang="ts">
|
|
<script setup lang="ts">
|
|
|
-const fantasticStartkitInfo = ref({
|
|
|
|
|
- feature: [
|
|
|
|
|
- '支持 TypeScript',
|
|
|
|
|
- '默认集成 vue-router 和 pinia',
|
|
|
|
|
- '支持基于文件系统的路由',
|
|
|
|
|
- '全局组件自动引入',
|
|
|
|
|
- '全局 SCSS 资源引入',
|
|
|
|
|
- '支持 Unocss',
|
|
|
|
|
- '支持 SVG 文件图标、Iconify 图标、UnoCSS 图标',
|
|
|
|
|
- '支持 mock 数据,可脱离后端束缚独立开发',
|
|
|
|
|
- '支持 gzip / brotli 优化项目体积,提高加载速度',
|
|
|
|
|
- '结合 IDE 插件、ESlint 、stylelint 、Git 钩子,轻松实现团队代码规范',
|
|
|
|
|
- ],
|
|
|
|
|
-})
|
|
|
|
|
|
|
|
|
|
-const fantasticAdminInfo = ref({
|
|
|
|
|
- imageVisible: false,
|
|
|
|
|
- index: 0,
|
|
|
|
|
- data: [
|
|
|
|
|
- 'https://fantastic-admin.hurui.me/preview1.png',
|
|
|
|
|
- 'https://fantastic-admin.hurui.me/preview2.png',
|
|
|
|
|
- 'https://fantastic-admin.hurui.me/preview3.png',
|
|
|
|
|
- 'https://fantastic-admin.hurui.me/preview4.png',
|
|
|
|
|
- 'https://fantastic-admin.hurui.me/preview5.png',
|
|
|
|
|
- 'https://fantastic-admin.hurui.me/preview6.png',
|
|
|
|
|
- ],
|
|
|
|
|
-})
|
|
|
|
|
-
|
|
|
|
|
-const oneStepAdminInfo = ref({
|
|
|
|
|
- imageVisible: false,
|
|
|
|
|
- index: 0,
|
|
|
|
|
- data: [
|
|
|
|
|
- 'https://one-step-admin.hurui.me/preview1.png',
|
|
|
|
|
- 'https://one-step-admin.hurui.me/preview2.png',
|
|
|
|
|
- 'https://one-step-admin.hurui.me/preview3.png',
|
|
|
|
|
- 'https://one-step-admin.hurui.me/preview4.png',
|
|
|
|
|
- 'https://one-step-admin.hurui.me/preview5.png',
|
|
|
|
|
- 'https://one-step-admin.hurui.me/preview6.png',
|
|
|
|
|
- ],
|
|
|
|
|
-})
|
|
|
|
|
-
|
|
|
|
|
-function open(url: string) {
|
|
|
|
|
- window.open(url, '_blank')
|
|
|
|
|
-}
|
|
|
|
|
-const activeIndex = ref(1);
|
|
|
|
|
-
|
|
|
|
|
-const onTabClick = (index: number) => {
|
|
|
|
|
- activeIndex.value = index;
|
|
|
|
|
-};
|
|
|
|
|
</script>
|
|
</script>
|
|
|
|
|
|
|
|
<template>
|
|
<template>
|
|
|
- <div>
|
|
|
|
|
- <PageHeader>
|
|
|
|
|
- <template #title>
|
|
|
|
|
- <div class="flex items-center gap-4">
|
|
|
|
|
- 欢迎使用 Fantastic-admin
|
|
|
|
|
- </div>
|
|
|
|
|
- </template>
|
|
|
|
|
- <template #content>
|
|
|
|
|
- <div class="text-sm/6">
|
|
|
|
|
- <div>
|
|
|
|
|
- 这是一款<b class="text-emphasis">开箱即用</b>的中后台框架,同时它也经历过数十个真实项目的技术沉淀,确保框架在开发中可落地、可使用、可维护
|
|
|
|
|
- </div>
|
|
|
|
|
- <div>
|
|
|
|
|
- 注:在作者就职过的公司,本框架已在电商、直播、OA、ERP等多个不同领域的中后台系统中应用并稳定运行
|
|
|
|
|
- </div>
|
|
|
|
|
- </div>
|
|
|
|
|
- </template>
|
|
|
|
|
- <HButton outline @click="open('https://fantastic-admin.hurui.me')">
|
|
|
|
|
- <SvgIcon name="i-ri:file-text-line" />
|
|
|
|
|
- 开发文档
|
|
|
|
|
- </HButton>
|
|
|
|
|
- <HDropdownMenu :items="[
|
|
|
|
|
- [
|
|
|
|
|
- { label: 'Gitee', handle: () => open('https://gitee.com/fantastic-admin/basic') },
|
|
|
|
|
- { label: 'Github', handle: () => open('https://github.com/fantastic-admin/basic') },
|
|
|
|
|
- ],
|
|
|
|
|
- ]">
|
|
|
|
|
- <HButton class="ml-2">
|
|
|
|
|
- <SvgIcon name="i-ri:code-s-slash-line" />
|
|
|
|
|
- 代码仓库
|
|
|
|
|
- <SvgIcon name="i-ep:arrow-down" />
|
|
|
|
|
- </HButton>
|
|
|
|
|
- </HDropdownMenu>
|
|
|
|
|
- </PageHeader>
|
|
|
|
|
- <div class="w-full flex flex-col gap-4 px-4 xl:flex-row">
|
|
|
|
|
- <PageMain class="ecology">
|
|
|
|
|
- <template #title>
|
|
|
|
|
- <div class="title-info">
|
|
|
|
|
- <img src="https://cn.vuejs.org/logo.svg">
|
|
|
|
|
- <div>
|
|
|
|
|
- <h1 class="c-[#41b883]">
|
|
|
|
|
- Fantastic-startkit
|
|
|
|
|
- </h1>
|
|
|
|
|
- <h2>一款简单好用的 Vue3 项目启动套件</h2>
|
|
|
|
|
- </div>
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="ml-auto">
|
|
|
|
|
- <HButton @click="open('https://hooray.github.io/fantastic-startkit')">
|
|
|
|
|
- 访问官网
|
|
|
|
|
- </HButton>
|
|
|
|
|
- </div>
|
|
|
|
|
- </template>
|
|
|
|
|
- <ul class="m-0 pr-8 text-size-sm leading-6">
|
|
|
|
|
- <li v-for="item in fantasticStartkitInfo.feature" :key="item">
|
|
|
|
|
- {{ item }}
|
|
|
|
|
- </li>
|
|
|
|
|
- </ul>
|
|
|
|
|
- </PageMain>
|
|
|
|
|
- <PageMain class="ecology">
|
|
|
|
|
- <template #title>
|
|
|
|
|
- <div class="title-info">
|
|
|
|
|
- <img src="https://fantastic-admin.hurui.me/logo.png">
|
|
|
|
|
- <div>
|
|
|
|
|
- <h1 class="c-[#e60000]">
|
|
|
|
|
- Fantastic-admin
|
|
|
|
|
- </h1>
|
|
|
|
|
- <h2>一款开箱即用的 Vue 中后台管理系统框架</h2>
|
|
|
|
|
- </div>
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="ml-auto">
|
|
|
|
|
- <HButton @click="open('https://fantastic-admin.hurui.me')">
|
|
|
|
|
- 访问官网
|
|
|
|
|
- </HButton>
|
|
|
|
|
- </div>
|
|
|
|
|
- </template>
|
|
|
|
|
- <ElCarousel trigger="click" indicator-position="none" :interval="5000" height="250px">
|
|
|
|
|
- <ElCarouselItem v-for="(item, index) in fantasticAdminInfo.data" :key="item">
|
|
|
|
|
- <ElImage :src="item" fit="cover" style="width: 100%; height: 250px; margin: auto; cursor: pointer;"
|
|
|
|
|
- @click="fantasticAdminInfo.imageVisible = true; fantasticAdminInfo.index = index" />
|
|
|
|
|
- </ElCarouselItem>
|
|
|
|
|
- </ElCarousel>
|
|
|
|
|
- <ElImageViewer v-if="fantasticAdminInfo.imageVisible" :url-list="fantasticAdminInfo.data"
|
|
|
|
|
- :initial-index="fantasticAdminInfo.index" @close="fantasticAdminInfo.imageVisible = false" />
|
|
|
|
|
- </PageMain>
|
|
|
|
|
- <PageMain class="ecology">
|
|
|
|
|
- <template #title>
|
|
|
|
|
- <div class="title-info">
|
|
|
|
|
- <img src="https://one-step-admin.hurui.me/logo.png">
|
|
|
|
|
- <div>
|
|
|
|
|
- <h1 class="c-[#67c23a]">
|
|
|
|
|
- One-step-admin
|
|
|
|
|
- </h1>
|
|
|
|
|
- <h2>一款干啥都快人一步的 Vue 中后台系统框架</h2>
|
|
|
|
|
- </div>
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="ml-auto">
|
|
|
|
|
- <HButton @click="open('https://one-step-admin.hurui.me')">
|
|
|
|
|
- 访问官网
|
|
|
|
|
- </HButton>
|
|
|
|
|
- </div>
|
|
|
|
|
- </template>
|
|
|
|
|
- <ElCarousel trigger="click" indicator-position="none" :interval="5000" height="250px">
|
|
|
|
|
- <ElCarouselItem v-for="(item, index) in oneStepAdminInfo.data" :key="item">
|
|
|
|
|
- <ElImage :src="item" fit="cover" style="width: 100%; height: 250px; margin: auto; cursor: pointer;"
|
|
|
|
|
- @click="oneStepAdminInfo.imageVisible = true; oneStepAdminInfo.index = index" />
|
|
|
|
|
- </ElCarouselItem>
|
|
|
|
|
- </ElCarousel>
|
|
|
|
|
- <ElImageViewer v-if="oneStepAdminInfo.imageVisible" :url-list="oneStepAdminInfo.data"
|
|
|
|
|
- :initial-index="oneStepAdminInfo.index" @close="oneStepAdminInfo.imageVisible = false" />
|
|
|
|
|
- </PageMain>
|
|
|
|
|
|
|
+ <PageMain class="vh100">
|
|
|
|
|
+ <div class="flex items-center justify-center h-100% text-22px">
|
|
|
|
|
+ 欢迎使用掌柜运营平台
|
|
|
</div>
|
|
</div>
|
|
|
- </div>
|
|
|
|
|
|
|
+ </PageMain>
|
|
|
</template>
|
|
</template>
|
|
|
-
|
|
|
|
|
-<style scoped>
|
|
|
|
|
-.wrap {
|
|
|
|
|
- padding: 10px;
|
|
|
|
|
- margin: 0 auto;
|
|
|
|
|
- background-color: #eee;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-.tabs {
|
|
|
|
|
- display: flex;
|
|
|
|
|
- width: 100%;
|
|
|
|
|
- overflow: hidden;
|
|
|
|
|
- background: linear-gradient(#cdd9fe, #e2e9fd);
|
|
|
|
|
- border-radius: 8px 8px 0 0;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-.tab {
|
|
|
|
|
- position: relative;
|
|
|
|
|
- width: 50%;
|
|
|
|
|
- line-height: 50px;
|
|
|
|
|
- text-align: center;
|
|
|
|
|
- cursor: pointer;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-.tab.active {
|
|
|
|
|
- color: #4185ef;
|
|
|
|
|
- background-color: #fff;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-.tab.active::before {
|
|
|
|
|
- position: absolute;
|
|
|
|
|
- top: 0;
|
|
|
|
|
- left: -49px;
|
|
|
|
|
- z-index: 2;
|
|
|
|
|
- width: 50px;
|
|
|
|
|
- height: 100%;
|
|
|
|
|
- clip-path: path("M 0,50 C 25,50 25,0 50,0 L 50, 50 Z");
|
|
|
|
|
- content: "";
|
|
|
|
|
- background-color: #fff;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-.tab.active::after {
|
|
|
|
|
- position: absolute;
|
|
|
|
|
- top: 0;
|
|
|
|
|
- right: -49px;
|
|
|
|
|
- z-index: 2;
|
|
|
|
|
- width: 50px;
|
|
|
|
|
- height: 100%;
|
|
|
|
|
- clip-path: path("M 0,0 C 25,0 25,50 50,50 L 0, 50 Z");
|
|
|
|
|
- content: "";
|
|
|
|
|
- background-color: #fff;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-.content-wrap {
|
|
|
|
|
- min-height: 200px;
|
|
|
|
|
- background-color: #fff;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-/* ============================================= */
|
|
|
|
|
-
|
|
|
|
|
-.text-emphasis {
|
|
|
|
|
- text-emphasis-style: "❤";
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-.ecology {
|
|
|
|
|
- --uno: flex-1 m-0;
|
|
|
|
|
-
|
|
|
|
|
- :deep(.title-container) {
|
|
|
|
|
- --uno: flex items-center justify-between flex-wrap gap-4;
|
|
|
|
|
-
|
|
|
|
|
- .title-info {
|
|
|
|
|
- --uno: flex items-center gap-4;
|
|
|
|
|
-
|
|
|
|
|
- img {
|
|
|
|
|
- --uno: block w-12 h-12;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- h1 {
|
|
|
|
|
- --uno: m-0 text-2xl;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- h2 {
|
|
|
|
|
- --uno: m-0 text-base text-stone-5 font-normal;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-}
|
|
|
|
|
-</style>
|
|
|