This commit is contained in:
xiaozhiyong
2026-06-11 17:54:40 +08:00
parent 082b766349
commit 3b3253652f
55 changed files with 39 additions and 13666 deletions

View File

@@ -13,15 +13,10 @@
:class="isMobile ? '' : 'min-w-48'"
@click="router.push({ path: '/' })"
>
<Logo />
<div
v-if="!isMobile"
class="inline-flex font-bold text-2xl ml-2"
:class="
(config.side_mode === 'head' ||
config.side_mode === 'combination') &&
'min-w-fit'
"
:class="(config.side_mode === 'head' || config.side_mode === 'combination') && 'min-w-fit'"
>
{{ $GIN_VUE_ADMIN.appName }}
</div>
@@ -32,35 +27,21 @@
v-if="config.side_mode !== 'head' && config.side_mode !== 'combination'"
class="ml-4"
>
<el-breadcrumb-item
v-for="item in matched.slice(1, matched.length)"
:key="item.path"
>
<el-breadcrumb-item v-for="item in matched.slice(1, matched.length)" :key="item.path">
{{ fmtTitle(item.meta.title, route) }}
</el-breadcrumb-item>
</el-breadcrumb>
<gva-aside
v-if="config.side_mode === 'head' && !isMobile"
class="flex-1"
/>
<gva-aside
v-if="config.side_mode === 'combination' && !isMobile"
mode="head"
class="flex-1"
/>
<gva-aside v-if="config.side_mode === 'head' && !isMobile" class="flex-1" />
<gva-aside v-if="config.side_mode === 'combination' && !isMobile" mode="head" class="flex-1" />
</div>
<div class="ml-2 flex items-center">
<tools />
<el-dropdown>
<div class="flex justify-center items-center h-full w-full">
<span
class="cursor-pointer flex justify-center items-center text-black dark:text-gray-100"
>
<span class="cursor-pointer flex justify-center items-center text-black dark:text-gray-100">
<CustomPic />
<span v-show="!isMobile" class="w-16">{{
userStore.userInfo.nickName
}}</span>
<span v-show="!isMobile" class="w-16">{{ userStore.userInfo.nickName }}</span>
<el-icon>
<arrow-down />
</el-icon>
@@ -69,9 +50,7 @@
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item>
<span class="font-bold">
当前角色{{ userStore.userInfo.authority.authorityName }}
</span>
<span class="font-bold"> 当前角色{{ userStore.userInfo.authority.authorityName }} </span>
</el-dropdown-item>
<template v-if="userStore.userInfo.authorities">
<el-dropdown-item
@@ -84,12 +63,8 @@
<span> 切换为:{{ item.authorityName }} </span>
</el-dropdown-item>
</template>
<el-dropdown-item icon="avatar" @click="toPerson">
个人信息
</el-dropdown-item>
<el-dropdown-item icon="reading-lamp" @click="userStore.LoginOut">
登 出
</el-dropdown-item>
<el-dropdown-item icon="avatar" @click="toPerson"> 个人信息 </el-dropdown-item>
<el-dropdown-item icon="reading-lamp" @click="userStore.LoginOut"> 登 出 </el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
@@ -108,7 +83,6 @@
import { setUserAuthority } from '@/api/user'
import { fmtTitle } from '@/utils/fmtRouterTitle'
import gvaAside from '@/view/layout/aside/index.vue'
import Logo from '@/components/logo/index.vue'
const userStore = useUserStore()
const router = useRouter()

View File

@@ -5,80 +5,46 @@
<template>
<div class="flex items-center mx-4 gap-4">
<el-tooltip class="" effect="dark" content="视频教程" placement="bottom">
<el-dropdown @command="toDoc">
<span class="w-8 h-8 p-2 rounded-full flex items-center justify-center shadow border border-gray-200 dark:border-gray-600 cursor-pointer border-solid">
<el-icon>
<Film />
</el-icon>
</span>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item
v-for="item in videoList"
:key="item.link"
:command="item.link"
>{{ item.title }}</el-dropdown-item
>
</el-dropdown-menu>
</template>
</el-dropdown>
</el-tooltip>
<el-tooltip class="" effect="dark" content="搜索" placement="bottom">
<span class="w-8 h-8 p-2 rounded-full flex items-center justify-center shadow border border-gray-200 dark:border-gray-600 cursor-pointer border-solid">
<el-icon
@click="handleCommand"
>
<Search />
</el-icon>
</span>
<span
class="w-8 h-8 p-2 rounded-full flex items-center justify-center shadow border border-gray-200 dark:border-gray-600 cursor-pointer border-solid"
>
<el-icon @click="handleCommand">
<Search />
</el-icon>
</span>
</el-tooltip>
<el-tooltip class="" effect="dark" content="系统设置" placement="bottom">
<span class="w-8 h-8 p-2 rounded-full flex items-center justify-center shadow border border-gray-200 dark:border-gray-600 cursor-pointer border-solid">
<el-icon
@click="toggleSetting"
>
<Setting />
</el-icon>
</span>
<span
class="w-8 h-8 p-2 rounded-full flex items-center justify-center shadow border border-gray-200 dark:border-gray-600 cursor-pointer border-solid"
>
<el-icon @click="toggleSetting">
<Setting />
</el-icon>
</span>
</el-tooltip>
<el-tooltip class="" effect="dark" content="刷新" placement="bottom">
<span class="w-8 h-8 p-2 rounded-full flex items-center justify-center shadow border border-gray-200 dark:border-gray-600 cursor-pointer border-solid">
<el-icon
:class="showRefreshAnmite ? 'animate-spin' : ''"
@click="toggleRefresh"
<span
class="w-8 h-8 p-2 rounded-full flex items-center justify-center shadow border border-gray-200 dark:border-gray-600 cursor-pointer border-solid"
>
<Refresh />
</el-icon>
<el-icon :class="showRefreshAnmite ? 'animate-spin' : ''" @click="toggleRefresh">
<Refresh />
</el-icon>
</span>
</el-tooltip>
<el-tooltip
class=""
effect="dark"
content="切换主题"
placement="bottom"
>
<span class="w-8 h-8 p-2 rounded-full flex items-center justify-center shadow border border-gray-200 dark:border-gray-600 cursor-pointer border-solid">
<el-icon
v-if="appStore.isDark"
@click="appStore.toggleTheme(false)"
>
<Sunny />
</el-icon>
<el-icon
v-else
@click="appStore.toggleTheme(true)"
<el-tooltip class="" effect="dark" content="切换主题" placement="bottom">
<span
class="w-8 h-8 p-2 rounded-full flex items-center justify-center shadow border border-gray-200 dark:border-gray-600 cursor-pointer border-solid"
>
<Moon />
</el-icon>
<el-icon v-if="appStore.isDark" @click="appStore.toggleTheme(false)">
<Sunny />
</el-icon>
<el-icon v-else @click="appStore.toggleTheme(true)">
<Moon />
</el-icon>
</span>
</el-tooltip>
<gva-setting v-model:drawer="showSettingDrawer"></gva-setting>
@@ -92,7 +58,6 @@
import { ref } from 'vue'
import { emitter } from '@/utils/bus.js'
import CommandMenu from '@/components/commandMenu/index.vue'
import { toDoc } from '@/utils/doc'
const appStore = useAppStore()
const showSettingDrawer = ref(false)
@@ -134,65 +99,6 @@
}
initPage()
const videoList = [
{
title: '1.clone项目和安装依赖',
link: 'https://www.bilibili.com/video/BV1jx4y1s7xx'
},
{
title: '2.初始化项目',
link: 'https://www.bilibili.com/video/BV1sr421K7sv'
},
{
title: '3.开启调试工具+创建初始化包',
link: 'https://www.bilibili.com/video/BV1iH4y1c7Na'
},
{
title: '4.手动使用自动化创建功能',
link: 'https://www.bilibili.com/video/BV1UZ421T7fV'
},
{
title: '5.使用已有表格创建业务',
link: 'https://www.bilibili.com/video/BV1NE4m1977s'
},
{
title: '6.使用AI创建业务和创建数据源模式的可选项',
link: 'https://www.bilibili.com/video/BV17i421a7DE'
},
{
title: '7.创建自己的后端方法',
link: 'https://www.bilibili.com/video/BV1Yw4m1k7fg'
},
{
title: '8.新增一个前端页面',
link: 'https://www.bilibili.com/video/BV12y411i7oE'
},
{
title: '9.配置一个前端二级页面',
link: 'https://www.bilibili.com/video/BV1ZM4m1y7i3'
},
{
title: '10.配置一个前端菜单参数',
link: 'https://www.bilibili.com/video/BV1WS42197DZ'
},
{
title: '11.菜单参数实战+动态菜单标题+菜单高亮配置',
link: 'https://www.bilibili.com/video/BV1NE4m1979c'
},
{
title: '12.增加菜单可控按钮',
link: 'https://www.bilibili.com/video/BV1Sw4m1k746'
},
{
title: '14.新增客户角色和其相关配置教学',
link: 'https://www.bilibili.com/video/BV1Ki421a7X2'
},
{
title: '15.发布项目上线',
link: 'https://www.bilibili.com/video/BV1Lx4y1s77D'
}
]
</script>
<style scoped lang="scss"></style>

View File

@@ -31,7 +31,6 @@
</transition>
</div>
</router-view>
<BottomInfo />
</div>
</div>
</div>
@@ -43,7 +42,6 @@
import GvaHeader from '@/view/layout/header/index.vue'
import useResponsive from '@/hooks/responsive'
import GvaTabs from './tabs/index.vue'
import BottomInfo from '@/components/bottomInfo/bottomInfo.vue'
import { emitter } from '@/utils/bus.js'
import { ref, onMounted, nextTick, reactive, watchEffect } from 'vue'
import { useRouter, useRoute } from 'vue-router'
@@ -78,12 +76,6 @@
if (userStore.loadingInstance) {
userStore.loadingInstance.close()
}
nextTick(() => {
document.getElementsByClassName(
'flex flex-col md:flex-row gap-2 items-center text-sm text-slate-700 dark:text-slate-500 justify-center py-2'
)[0].style.display = 'none'
// opacity = 0
})
})
const userStore = useUserStore()

View File

@@ -123,10 +123,6 @@
<div class="section-content">
<div class="bg-gray-50 dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-xl p-6 shadow-sm">
<div class="flex items-start gap-5">
<div
class="w-16 h-16 bg-white dark:bg-gray-700 border border-gray-200 dark:border-gray-600 rounded-xl flex items-center justify-center flex-shrink-0 shadow-sm">
<Logo />
</div>
<div class="flex-1">
<h4 class="text-xl font-semibold text-gray-900 dark:text-white mb-3">Gin-Vue-Admin</h4>
<p class="text-sm text-gray-600 dark:text-gray-400 mb-5 leading-relaxed">
@@ -158,7 +154,6 @@ import { ref, onMounted } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
import { storeToRefs } from 'pinia'
import { useAppStore } from '@/pinia'
import Logo from '@/components/logo/index.vue'
defineOptions({
name: 'GeneralSettings'