新版本官网优化完成
This commit is contained in:
20
components/AppFooter/AppFooter.vue
Normal file
20
components/AppFooter/AppFooter.vue
Normal file
@@ -0,0 +1,20 @@
|
||||
<template>
|
||||
|
||||
|
||||
<!-- 底部菜单 -->
|
||||
<SubMenu />
|
||||
<!-- 版权信息 -->
|
||||
<Copyright />
|
||||
<!-- 侧边工具栏 -->
|
||||
<ToolBar />
|
||||
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import SubMenu from "~/components/AppFooter/SubMenu/SubMenu.vue";
|
||||
import Copyright from "~/components/AppFooter/Copyright/Copyright.vue";
|
||||
import ToolBar from "~/components/AppFooter/ToolBar/ToolBar.vue";
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
</style>
|
||||
28
components/AppFooter/Copyright/Copyright.vue
Normal file
28
components/AppFooter/Copyright/Copyright.vue
Normal file
@@ -0,0 +1,28 @@
|
||||
<script setup lang="ts">
|
||||
import {useConfigInfo} from "~/composables/configState";
|
||||
import Link from "~/components/AppFooter/Link/Link.vue";
|
||||
const config = useConfigInfo();
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="w-full bg-black">
|
||||
<div class="xl:w-screen-xl flex flex-col justify-between m-auto">
|
||||
<!-- 友情链接 -->
|
||||
<Link />
|
||||
<!-- 版权信息 -->
|
||||
<div class="w-full xl:w-screen-xl xl:px-0 px-4 w-full m-auto flex sm:flex-row flex-col-reverse sm:justify-between justify-center items-center sm:py-3 text-center text-sm">
|
||||
<div class="text-gray-400 sm:gap-xs leading-7 flex flex-col sm:flex-row">
|
||||
<span>Copyright © {{ new Date().getFullYear() }} {{ config?.copyright }}</span>
|
||||
<nuxt-link to="https://beian.miit.gov.cn/" class="visited:text-gray-400 hover:text-gray-200" target="_blank"> <span>备案号:{{ config?.icpNo }}</span></nuxt-link>
|
||||
</div>
|
||||
<div class="tools flex items-center opacity-80 hover:opacity-90 text-gray-400 text-xs">
|
||||
Powered by <a rel="nofollow" href="https://site.websoft.top" target="_blank" class="visited:text-gray-400 hover:text-gray-200 ml-1">云·企业官网</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped lang="scss">
|
||||
|
||||
</style>
|
||||
25
components/AppFooter/Link/Link.vue
Normal file
25
components/AppFooter/Link/Link.vue
Normal file
@@ -0,0 +1,25 @@
|
||||
<script setup lang="ts">
|
||||
import {listCmsLink} from "~/api/cms/cmsLink";
|
||||
import type {CmsLink} from "~/api/cms/cmsLink/model";
|
||||
|
||||
const list = ref<CmsLink[]>([])
|
||||
listCmsLink({}).then(res => {
|
||||
console.log(res);
|
||||
list.value = res;
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<el-space class="text-gray-400 text-sm">
|
||||
<span>友情链接:</span>
|
||||
<template v-for="(item,index) in list" :key="index">
|
||||
<nuxt-link :to="item.url" target="_blank" class="link:text-gray-400 visited:text-gray-400 hover:text-gray-200">{{ item.name }}</nuxt-link>
|
||||
<el-divider v-if="list.length-1 != index" direction="vertical" style="border-color: #9ca3af;" />
|
||||
</template>
|
||||
</el-space>
|
||||
<div class="border-b-solid bg-gray-700 border-1 mt-4 opacity-40"></div>
|
||||
</template>
|
||||
|
||||
<style scoped lang="scss">
|
||||
|
||||
</style>
|
||||
30
components/AppFooter/SubMenu/SubMenu.vue
Normal file
30
components/AppFooter/SubMenu/SubMenu.vue
Normal file
@@ -0,0 +1,30 @@
|
||||
<script setup lang="ts">
|
||||
import {useConfigInfo, useSubMenu} from "~/composables/configState";
|
||||
const subMenu = useSubMenu();
|
||||
const config = useConfigInfo();
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="w-full bg-black h-[300px] py-5">
|
||||
<div class="xl:w-screen-xl flex justify-between m-auto">
|
||||
<template v-for="(item,index) in subMenu">
|
||||
<div class="item">
|
||||
<div class="text-base text-gray-400 hover:text-gray-200 py-3 font-bold">{{ item.title }}</div>
|
||||
<div class="sub-menu flex flex-col">
|
||||
<template v-for="(sub,subIndex) in item.children">
|
||||
<nuxt-link :to="navTo(sub)" :target="sub.target" class="py-1 text-sm"><span class="text-gray-400 hover:text-gray-200">{{ sub.title }}</span></nuxt-link>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<div class="flex flex-col text-base">
|
||||
<p class="text-base text-gray-400 py-2 font-bold">关注我们</p>
|
||||
<el-avatar :src="config.wxQrcode" shape="square" :size="120" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped lang="scss">
|
||||
|
||||
</style>
|
||||
32
components/AppFooter/ToolBar/ToolBar.vue
Normal file
32
components/AppFooter/ToolBar/ToolBar.vue
Normal file
@@ -0,0 +1,32 @@
|
||||
<script setup lang="ts">
|
||||
import {useConfigInfo} from "~/composables/configState";
|
||||
const config = useConfigInfo();
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div id="toolbar" v-if="config">
|
||||
<ul>
|
||||
<li><a :href="`http://wpa.qq.com/msgrd?v=3&uin=${config.qqCode}&site=qq&menu=yes`" target="_blank">
|
||||
<span class="icon-font icon-qq"></span>
|
||||
<span class="wz">腾讯QQ</span>
|
||||
</a></li>
|
||||
<li><a href="javascript:;">
|
||||
<span class="icon-font icon-phone">config.callPhone</span>
|
||||
<span class="wz">{{ config.callPhone }}</span>
|
||||
</a></li>
|
||||
<li class="ewm">
|
||||
<span class="icon-font icon-ewm"></span>
|
||||
<div class="ewm-box"><img :src="config.wxMpQrcode" alt="微信二维码" /></div>
|
||||
</li>
|
||||
<li><a href="/order/1003.html">
|
||||
<span class="icon-font icon-message"></span>
|
||||
<span class="wz">在线留言</span>
|
||||
</a></li>
|
||||
<el-backtop :bottom="50" :right="25"><li class="backtop"><span class="icon-font icon-top"></span></li></el-backtop>
|
||||
</ul>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped lang="scss">
|
||||
|
||||
</style>
|
||||
Reference in New Issue
Block a user