-
@@ -73,6 +130,68 @@
diff --git a/src/assets/icons/close.svg b/src/assets/icons/close.svg
new file mode 100644
index 0000000..fe18fcc
--- /dev/null
+++ b/src/assets/icons/close.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/icons/icon-home.svg b/src/assets/icons/icon-home.svg
new file mode 100644
index 0000000..ce022bf
--- /dev/null
+++ b/src/assets/icons/icon-home.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/images/home.png b/src/assets/images/home.png
new file mode 100644
index 0000000..08c451d
--- /dev/null
+++ b/src/assets/images/home.png
Binary files differ
diff --git a/src/components/Echart/BarChartHorizontal.vue b/src/components/Echart/BarChartHorizontal.vue
index ff88935..eac1b25 100644
--- a/src/components/Echart/BarChartHorizontal.vue
+++ b/src/components/Echart/BarChartHorizontal.vue
@@ -160,7 +160,7 @@
},
color: {
type: String,
- default: '#3e29ce',
+ default: '#0d76d4',
},
/**
* 柱子背景颜色
@@ -299,7 +299,7 @@
splitLine: {
show: props.showAxis,
lineStyle: {
- color: ['#bfbfbf'],
+ color: ['#ccc'],
type: 'dashed',
},
},
@@ -365,23 +365,24 @@
type: 'bar',
colorBy: props.colorBy,
label: {
- normal: {
- show: props.showLabel,
- color: props.labelColor,
- // position: 'right',
- fontSize: 15,
- formatter: props.labelFormatter,
- // align: 'left',
- // verticalAlign: 'middle',
- },
+ show: true,
+ // normal: {
+ // show: true,
+ color: props.labelColor,
+ position: 'right',
+ fontSize: 15,
+ // formatter: props.labelFormatter,
+ // align: 'left',
+ verticalAlign: 'middle',
},
+ // },
showBackground: true,
backgroundStyle: {
color: props.backgroundColor,
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
itemStyle: {
- color: props.color,
+ color: '#2D8CF0',
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
data: item.data,
@@ -399,7 +400,7 @@
else {
chartWidth = chartWidth - 80
}
- series.label.normal!.position = [chartWidth, '50%']
+ // series.label.normal!.position = [chartWidth, '50%']
}
// 如果开启渐变
if (props.gradient && props.colors.length > 0) {
@@ -435,6 +436,7 @@
console.log(newSeries)
option.series = newSeries
}
+ console.log(option, 'option')
return option
}
// 初始化图表
diff --git a/src/components/NormalTable/index.vue b/src/components/NormalTable/index.vue
index 7ee9d06..4c33d8b 100644
--- a/src/components/NormalTable/index.vue
+++ b/src/components/NormalTable/index.vue
@@ -463,7 +463,7 @@
}
.follow-link {
- color: #3d7eff;
+ color: #0d76d4;
cursor: pointer;
&:hover {
diff --git a/src/components/map/index.vue b/src/components/map/index.vue
index 70a8abe..55943a0 100644
--- a/src/components/map/index.vue
+++ b/src/components/map/index.vue
@@ -566,7 +566,7 @@
})
// 聚合点小于11时不聚合
- cluster.value.setMinClusterSize(11)
+ cluster.value.setMinClusterSize(40)
}
const removeCluster = () => {
if (cluster.value) {
diff --git a/src/layouts/components/Header/index.vue b/src/layouts/components/Header/index.vue
index 88abc48..b159b77 100644
--- a/src/layouts/components/Header/index.vue
+++ b/src/layouts/components/Header/index.vue
@@ -65,7 +65,7 @@
height: var(--g-header-height);
color: var(--g-header-color);
background-color: var(--g-header-bg);
- background-image: linear-gradient(90deg, #71b5ff 30%, #3d7eff);
+ background-image: linear-gradient(90deg, #0d76d4 30%, #0d76d4);
transition: background-color 0.3s, var(--el-transition-color);
.header-container {
diff --git a/src/layouts/components/SidebarItem/index.vue b/src/layouts/components/SidebarItem/index.vue
index 8f0cd16..30038a2 100644
--- a/src/layouts/components/SidebarItem/index.vue
+++ b/src/layouts/components/SidebarItem/index.vue
@@ -146,8 +146,10 @@
background-color: var(--g-sub-sidebar-menu-bg) !important;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #4878ca !important;
}
}
}
@@ -157,22 +159,25 @@
color: var(--g-sub-sidebar-menu-color) !important;
background: transparent !important;
height: 40px;
- // line-height: 40px;
line-height: 20px;
margin: 4px 0;
border-radius: 7px;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
}
}
.el-menu-item.is-active,
.el-menu--collapse .el-sub-menu.is-active > .el-sub-menu__title,
.el-sub-menu .el-menu--inline .el-menu-item.is-active {
- color: var(--g-sub-sidebar-menu-active-color) !important;
- background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ // color: var(--g-sub-sidebar-menu-active-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
.icon,
.el-sub-menu__icon-arrow {
diff --git a/src/layouts/components/SubSidebar/index.vue b/src/layouts/components/SubSidebar/index.vue
index 20ef219..a7b717a 100644
--- a/src/layouts/components/SubSidebar/index.vue
+++ b/src/layouts/components/SubSidebar/index.vue
@@ -56,8 +56,8 @@
left: 0;
top: 0;
bottom: 0;
- background-color: var(--g-sub-sidebar-bg);
- background-image: linear-gradient(180deg, #71b5ff, #4384ff);
+ background-color: #0d76d4;
+ background-image: linear-gradient(180deg, #0d76d4, #0d76d4);
box-shadow: 10px 0 10px -10px var(--g-box-shadow-color);
transition: background-color 0.3s, var(--el-transition-box-shadow), left 0.3s, width 0.3s;
diff --git a/src/layouts/components/Topbar/index.vue b/src/layouts/components/Topbar/index.vue
index 4e3120e..e5dfb95 100644
--- a/src/layouts/components/Topbar/index.vue
+++ b/src/layouts/components/Topbar/index.vue
@@ -2,32 +2,52 @@
import { compile } from 'path-to-regexp'
import Tools from '../Tools/index.vue'
import useSettingsStore from '@/store/modules/settings'
-
+import useMenuStore from '@/store/modules/menu'
const route = useRoute()
-
+const router = useRouter()
+const menuStore = useMenuStore()
const settingsStore = useSettingsStore()
-
+const { proxy } = getCurrentInstance() as any
const enableSubMenuCollapseButton = computed(() => {
return settingsStore.mode === 'mobile' || (
['side', 'head', 'single'].includes(settingsStore.menu.menuMode)
- && settingsStore.menu.enableSubMenuCollapseButton
+ && settingsStore.menu.enableSubMenuCollapseButton
)
})
-const breadcrumbList = computed(() => {
- const breadcrumbList = []
- if (settingsStore.dashboard.enable) {
- breadcrumbList.push({
- path: '/dashboard',
- title: settingsStore.dashboard.title,
- })
+// const breadcrumbList = computed(() => {
+// const breadcrumbList = []
+// if (settingsStore.dashboard.enable) {
+// breadcrumbList.push({
+// path: '/dashboard',
+// title: settingsStore.dashboard.title,
+// })
+// }
+// if (route.meta.breadcrumbNeste) {
+// breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
+// }
+// return breadcrumbList
+// })
+const publicPath = window.location.href.split('#')[0]
+const breadcrumbList = ref
(menuStore.breadcrumbList)
+const routeInfo = ref(route)
+watch(() => menuStore.breadcrumbList, (newVal) => {
+ if (newVal.length) {
+ breadcrumbList.value = menuStore.breadcrumbList
+ console.log(breadcrumbList.value, 'breadcrumbList.value')
}
- if (route.meta.breadcrumbNeste) {
- breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
- }
- return breadcrumbList
+}, {
+ deep: true,
+ immediate: true,
})
-
+watch(() => route.path, (newVal) => {
+ // console.log(route, '当前路由信息')
+ routeInfo.value = route
+},
+{
+ deep: true,
+ // immediate: true,
+})
const scrollTop = ref(0)
onMounted(() => {
window.addEventListener('scroll', onScroll)
@@ -43,6 +63,21 @@
const toPath = compile(path)
return toPath(route.params)
}
+// 面包屑跳转
+const breadcrumbTo = (path: any) => {
+ router.push(path.path)
+}
+// 关闭面包屑
+const closePage = (path: any) => {
+ menuStore.removeBreadcrumb(path)
+ if (routeInfo.value.path === path.path) {
+ router.push({
+ path: breadcrumbList.value.length ? breadcrumbList.value[0].path : '/home/index',
+ // proxy.hasPerm('/dashboard') ? '/home/index' : '/'
+ //
+ })
+ }
+}
@@ -54,16 +89,38 @@
>
-
@@ -73,6 +130,68 @@
diff --git a/src/assets/icons/close.svg b/src/assets/icons/close.svg
new file mode 100644
index 0000000..fe18fcc
--- /dev/null
+++ b/src/assets/icons/close.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/icons/icon-home.svg b/src/assets/icons/icon-home.svg
new file mode 100644
index 0000000..ce022bf
--- /dev/null
+++ b/src/assets/icons/icon-home.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/images/home.png b/src/assets/images/home.png
new file mode 100644
index 0000000..08c451d
--- /dev/null
+++ b/src/assets/images/home.png
Binary files differ
diff --git a/src/components/Echart/BarChartHorizontal.vue b/src/components/Echart/BarChartHorizontal.vue
index ff88935..eac1b25 100644
--- a/src/components/Echart/BarChartHorizontal.vue
+++ b/src/components/Echart/BarChartHorizontal.vue
@@ -160,7 +160,7 @@
},
color: {
type: String,
- default: '#3e29ce',
+ default: '#0d76d4',
},
/**
* 柱子背景颜色
@@ -299,7 +299,7 @@
splitLine: {
show: props.showAxis,
lineStyle: {
- color: ['#bfbfbf'],
+ color: ['#ccc'],
type: 'dashed',
},
},
@@ -365,23 +365,24 @@
type: 'bar',
colorBy: props.colorBy,
label: {
- normal: {
- show: props.showLabel,
- color: props.labelColor,
- // position: 'right',
- fontSize: 15,
- formatter: props.labelFormatter,
- // align: 'left',
- // verticalAlign: 'middle',
- },
+ show: true,
+ // normal: {
+ // show: true,
+ color: props.labelColor,
+ position: 'right',
+ fontSize: 15,
+ // formatter: props.labelFormatter,
+ // align: 'left',
+ verticalAlign: 'middle',
},
+ // },
showBackground: true,
backgroundStyle: {
color: props.backgroundColor,
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
itemStyle: {
- color: props.color,
+ color: '#2D8CF0',
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
data: item.data,
@@ -399,7 +400,7 @@
else {
chartWidth = chartWidth - 80
}
- series.label.normal!.position = [chartWidth, '50%']
+ // series.label.normal!.position = [chartWidth, '50%']
}
// 如果开启渐变
if (props.gradient && props.colors.length > 0) {
@@ -435,6 +436,7 @@
console.log(newSeries)
option.series = newSeries
}
+ console.log(option, 'option')
return option
}
// 初始化图表
diff --git a/src/components/NormalTable/index.vue b/src/components/NormalTable/index.vue
index 7ee9d06..4c33d8b 100644
--- a/src/components/NormalTable/index.vue
+++ b/src/components/NormalTable/index.vue
@@ -463,7 +463,7 @@
}
.follow-link {
- color: #3d7eff;
+ color: #0d76d4;
cursor: pointer;
&:hover {
diff --git a/src/components/map/index.vue b/src/components/map/index.vue
index 70a8abe..55943a0 100644
--- a/src/components/map/index.vue
+++ b/src/components/map/index.vue
@@ -566,7 +566,7 @@
})
// 聚合点小于11时不聚合
- cluster.value.setMinClusterSize(11)
+ cluster.value.setMinClusterSize(40)
}
const removeCluster = () => {
if (cluster.value) {
diff --git a/src/layouts/components/Header/index.vue b/src/layouts/components/Header/index.vue
index 88abc48..b159b77 100644
--- a/src/layouts/components/Header/index.vue
+++ b/src/layouts/components/Header/index.vue
@@ -65,7 +65,7 @@
height: var(--g-header-height);
color: var(--g-header-color);
background-color: var(--g-header-bg);
- background-image: linear-gradient(90deg, #71b5ff 30%, #3d7eff);
+ background-image: linear-gradient(90deg, #0d76d4 30%, #0d76d4);
transition: background-color 0.3s, var(--el-transition-color);
.header-container {
diff --git a/src/layouts/components/SidebarItem/index.vue b/src/layouts/components/SidebarItem/index.vue
index 8f0cd16..30038a2 100644
--- a/src/layouts/components/SidebarItem/index.vue
+++ b/src/layouts/components/SidebarItem/index.vue
@@ -146,8 +146,10 @@
background-color: var(--g-sub-sidebar-menu-bg) !important;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #4878ca !important;
}
}
}
@@ -157,22 +159,25 @@
color: var(--g-sub-sidebar-menu-color) !important;
background: transparent !important;
height: 40px;
- // line-height: 40px;
line-height: 20px;
margin: 4px 0;
border-radius: 7px;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
}
}
.el-menu-item.is-active,
.el-menu--collapse .el-sub-menu.is-active > .el-sub-menu__title,
.el-sub-menu .el-menu--inline .el-menu-item.is-active {
- color: var(--g-sub-sidebar-menu-active-color) !important;
- background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ // color: var(--g-sub-sidebar-menu-active-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
.icon,
.el-sub-menu__icon-arrow {
diff --git a/src/layouts/components/SubSidebar/index.vue b/src/layouts/components/SubSidebar/index.vue
index 20ef219..a7b717a 100644
--- a/src/layouts/components/SubSidebar/index.vue
+++ b/src/layouts/components/SubSidebar/index.vue
@@ -56,8 +56,8 @@
left: 0;
top: 0;
bottom: 0;
- background-color: var(--g-sub-sidebar-bg);
- background-image: linear-gradient(180deg, #71b5ff, #4384ff);
+ background-color: #0d76d4;
+ background-image: linear-gradient(180deg, #0d76d4, #0d76d4);
box-shadow: 10px 0 10px -10px var(--g-box-shadow-color);
transition: background-color 0.3s, var(--el-transition-box-shadow), left 0.3s, width 0.3s;
diff --git a/src/layouts/components/Topbar/index.vue b/src/layouts/components/Topbar/index.vue
index 4e3120e..e5dfb95 100644
--- a/src/layouts/components/Topbar/index.vue
+++ b/src/layouts/components/Topbar/index.vue
@@ -2,32 +2,52 @@
import { compile } from 'path-to-regexp'
import Tools from '../Tools/index.vue'
import useSettingsStore from '@/store/modules/settings'
-
+import useMenuStore from '@/store/modules/menu'
const route = useRoute()
-
+const router = useRouter()
+const menuStore = useMenuStore()
const settingsStore = useSettingsStore()
-
+const { proxy } = getCurrentInstance() as any
const enableSubMenuCollapseButton = computed(() => {
return settingsStore.mode === 'mobile' || (
['side', 'head', 'single'].includes(settingsStore.menu.menuMode)
- && settingsStore.menu.enableSubMenuCollapseButton
+ && settingsStore.menu.enableSubMenuCollapseButton
)
})
-const breadcrumbList = computed(() => {
- const breadcrumbList = []
- if (settingsStore.dashboard.enable) {
- breadcrumbList.push({
- path: '/dashboard',
- title: settingsStore.dashboard.title,
- })
+// const breadcrumbList = computed(() => {
+// const breadcrumbList = []
+// if (settingsStore.dashboard.enable) {
+// breadcrumbList.push({
+// path: '/dashboard',
+// title: settingsStore.dashboard.title,
+// })
+// }
+// if (route.meta.breadcrumbNeste) {
+// breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
+// }
+// return breadcrumbList
+// })
+const publicPath = window.location.href.split('#')[0]
+const breadcrumbList = ref
(menuStore.breadcrumbList)
+const routeInfo = ref(route)
+watch(() => menuStore.breadcrumbList, (newVal) => {
+ if (newVal.length) {
+ breadcrumbList.value = menuStore.breadcrumbList
+ console.log(breadcrumbList.value, 'breadcrumbList.value')
}
- if (route.meta.breadcrumbNeste) {
- breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
- }
- return breadcrumbList
+}, {
+ deep: true,
+ immediate: true,
})
-
+watch(() => route.path, (newVal) => {
+ // console.log(route, '当前路由信息')
+ routeInfo.value = route
+},
+{
+ deep: true,
+ // immediate: true,
+})
const scrollTop = ref(0)
onMounted(() => {
window.addEventListener('scroll', onScroll)
@@ -43,6 +63,21 @@
const toPath = compile(path)
return toPath(route.params)
}
+// 面包屑跳转
+const breadcrumbTo = (path: any) => {
+ router.push(path.path)
+}
+// 关闭面包屑
+const closePage = (path: any) => {
+ menuStore.removeBreadcrumb(path)
+ if (routeInfo.value.path === path.path) {
+ router.push({
+ path: breadcrumbList.value.length ? breadcrumbList.value[0].path : '/home/index',
+ // proxy.hasPerm('/dashboard') ? '/home/index' : '/'
+ //
+ })
+ }
+}
@@ -54,16 +89,38 @@
>
-
@@ -73,6 +130,68 @@
diff --git a/src/assets/icons/close.svg b/src/assets/icons/close.svg
new file mode 100644
index 0000000..fe18fcc
--- /dev/null
+++ b/src/assets/icons/close.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/icons/icon-home.svg b/src/assets/icons/icon-home.svg
new file mode 100644
index 0000000..ce022bf
--- /dev/null
+++ b/src/assets/icons/icon-home.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/images/home.png b/src/assets/images/home.png
new file mode 100644
index 0000000..08c451d
--- /dev/null
+++ b/src/assets/images/home.png
Binary files differ
diff --git a/src/components/Echart/BarChartHorizontal.vue b/src/components/Echart/BarChartHorizontal.vue
index ff88935..eac1b25 100644
--- a/src/components/Echart/BarChartHorizontal.vue
+++ b/src/components/Echart/BarChartHorizontal.vue
@@ -160,7 +160,7 @@
},
color: {
type: String,
- default: '#3e29ce',
+ default: '#0d76d4',
},
/**
* 柱子背景颜色
@@ -299,7 +299,7 @@
splitLine: {
show: props.showAxis,
lineStyle: {
- color: ['#bfbfbf'],
+ color: ['#ccc'],
type: 'dashed',
},
},
@@ -365,23 +365,24 @@
type: 'bar',
colorBy: props.colorBy,
label: {
- normal: {
- show: props.showLabel,
- color: props.labelColor,
- // position: 'right',
- fontSize: 15,
- formatter: props.labelFormatter,
- // align: 'left',
- // verticalAlign: 'middle',
- },
+ show: true,
+ // normal: {
+ // show: true,
+ color: props.labelColor,
+ position: 'right',
+ fontSize: 15,
+ // formatter: props.labelFormatter,
+ // align: 'left',
+ verticalAlign: 'middle',
},
+ // },
showBackground: true,
backgroundStyle: {
color: props.backgroundColor,
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
itemStyle: {
- color: props.color,
+ color: '#2D8CF0',
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
data: item.data,
@@ -399,7 +400,7 @@
else {
chartWidth = chartWidth - 80
}
- series.label.normal!.position = [chartWidth, '50%']
+ // series.label.normal!.position = [chartWidth, '50%']
}
// 如果开启渐变
if (props.gradient && props.colors.length > 0) {
@@ -435,6 +436,7 @@
console.log(newSeries)
option.series = newSeries
}
+ console.log(option, 'option')
return option
}
// 初始化图表
diff --git a/src/components/NormalTable/index.vue b/src/components/NormalTable/index.vue
index 7ee9d06..4c33d8b 100644
--- a/src/components/NormalTable/index.vue
+++ b/src/components/NormalTable/index.vue
@@ -463,7 +463,7 @@
}
.follow-link {
- color: #3d7eff;
+ color: #0d76d4;
cursor: pointer;
&:hover {
diff --git a/src/components/map/index.vue b/src/components/map/index.vue
index 70a8abe..55943a0 100644
--- a/src/components/map/index.vue
+++ b/src/components/map/index.vue
@@ -566,7 +566,7 @@
})
// 聚合点小于11时不聚合
- cluster.value.setMinClusterSize(11)
+ cluster.value.setMinClusterSize(40)
}
const removeCluster = () => {
if (cluster.value) {
diff --git a/src/layouts/components/Header/index.vue b/src/layouts/components/Header/index.vue
index 88abc48..b159b77 100644
--- a/src/layouts/components/Header/index.vue
+++ b/src/layouts/components/Header/index.vue
@@ -65,7 +65,7 @@
height: var(--g-header-height);
color: var(--g-header-color);
background-color: var(--g-header-bg);
- background-image: linear-gradient(90deg, #71b5ff 30%, #3d7eff);
+ background-image: linear-gradient(90deg, #0d76d4 30%, #0d76d4);
transition: background-color 0.3s, var(--el-transition-color);
.header-container {
diff --git a/src/layouts/components/SidebarItem/index.vue b/src/layouts/components/SidebarItem/index.vue
index 8f0cd16..30038a2 100644
--- a/src/layouts/components/SidebarItem/index.vue
+++ b/src/layouts/components/SidebarItem/index.vue
@@ -146,8 +146,10 @@
background-color: var(--g-sub-sidebar-menu-bg) !important;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #4878ca !important;
}
}
}
@@ -157,22 +159,25 @@
color: var(--g-sub-sidebar-menu-color) !important;
background: transparent !important;
height: 40px;
- // line-height: 40px;
line-height: 20px;
margin: 4px 0;
border-radius: 7px;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
}
}
.el-menu-item.is-active,
.el-menu--collapse .el-sub-menu.is-active > .el-sub-menu__title,
.el-sub-menu .el-menu--inline .el-menu-item.is-active {
- color: var(--g-sub-sidebar-menu-active-color) !important;
- background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ // color: var(--g-sub-sidebar-menu-active-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
.icon,
.el-sub-menu__icon-arrow {
diff --git a/src/layouts/components/SubSidebar/index.vue b/src/layouts/components/SubSidebar/index.vue
index 20ef219..a7b717a 100644
--- a/src/layouts/components/SubSidebar/index.vue
+++ b/src/layouts/components/SubSidebar/index.vue
@@ -56,8 +56,8 @@
left: 0;
top: 0;
bottom: 0;
- background-color: var(--g-sub-sidebar-bg);
- background-image: linear-gradient(180deg, #71b5ff, #4384ff);
+ background-color: #0d76d4;
+ background-image: linear-gradient(180deg, #0d76d4, #0d76d4);
box-shadow: 10px 0 10px -10px var(--g-box-shadow-color);
transition: background-color 0.3s, var(--el-transition-box-shadow), left 0.3s, width 0.3s;
diff --git a/src/layouts/components/Topbar/index.vue b/src/layouts/components/Topbar/index.vue
index 4e3120e..e5dfb95 100644
--- a/src/layouts/components/Topbar/index.vue
+++ b/src/layouts/components/Topbar/index.vue
@@ -2,32 +2,52 @@
import { compile } from 'path-to-regexp'
import Tools from '../Tools/index.vue'
import useSettingsStore from '@/store/modules/settings'
-
+import useMenuStore from '@/store/modules/menu'
const route = useRoute()
-
+const router = useRouter()
+const menuStore = useMenuStore()
const settingsStore = useSettingsStore()
-
+const { proxy } = getCurrentInstance() as any
const enableSubMenuCollapseButton = computed(() => {
return settingsStore.mode === 'mobile' || (
['side', 'head', 'single'].includes(settingsStore.menu.menuMode)
- && settingsStore.menu.enableSubMenuCollapseButton
+ && settingsStore.menu.enableSubMenuCollapseButton
)
})
-const breadcrumbList = computed(() => {
- const breadcrumbList = []
- if (settingsStore.dashboard.enable) {
- breadcrumbList.push({
- path: '/dashboard',
- title: settingsStore.dashboard.title,
- })
+// const breadcrumbList = computed(() => {
+// const breadcrumbList = []
+// if (settingsStore.dashboard.enable) {
+// breadcrumbList.push({
+// path: '/dashboard',
+// title: settingsStore.dashboard.title,
+// })
+// }
+// if (route.meta.breadcrumbNeste) {
+// breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
+// }
+// return breadcrumbList
+// })
+const publicPath = window.location.href.split('#')[0]
+const breadcrumbList = ref
(menuStore.breadcrumbList)
+const routeInfo = ref(route)
+watch(() => menuStore.breadcrumbList, (newVal) => {
+ if (newVal.length) {
+ breadcrumbList.value = menuStore.breadcrumbList
+ console.log(breadcrumbList.value, 'breadcrumbList.value')
}
- if (route.meta.breadcrumbNeste) {
- breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
- }
- return breadcrumbList
+}, {
+ deep: true,
+ immediate: true,
})
-
+watch(() => route.path, (newVal) => {
+ // console.log(route, '当前路由信息')
+ routeInfo.value = route
+},
+{
+ deep: true,
+ // immediate: true,
+})
const scrollTop = ref(0)
onMounted(() => {
window.addEventListener('scroll', onScroll)
@@ -43,6 +63,21 @@
const toPath = compile(path)
return toPath(route.params)
}
+// 面包屑跳转
+const breadcrumbTo = (path: any) => {
+ router.push(path.path)
+}
+// 关闭面包屑
+const closePage = (path: any) => {
+ menuStore.removeBreadcrumb(path)
+ if (routeInfo.value.path === path.path) {
+ router.push({
+ path: breadcrumbList.value.length ? breadcrumbList.value[0].path : '/home/index',
+ // proxy.hasPerm('/dashboard') ? '/home/index' : '/'
+ //
+ })
+ }
+}
@@ -54,16 +89,38 @@
>
-
@@ -73,6 +130,68 @@
diff --git a/src/assets/icons/close.svg b/src/assets/icons/close.svg
new file mode 100644
index 0000000..fe18fcc
--- /dev/null
+++ b/src/assets/icons/close.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/icons/icon-home.svg b/src/assets/icons/icon-home.svg
new file mode 100644
index 0000000..ce022bf
--- /dev/null
+++ b/src/assets/icons/icon-home.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/images/home.png b/src/assets/images/home.png
new file mode 100644
index 0000000..08c451d
--- /dev/null
+++ b/src/assets/images/home.png
Binary files differ
diff --git a/src/components/Echart/BarChartHorizontal.vue b/src/components/Echart/BarChartHorizontal.vue
index ff88935..eac1b25 100644
--- a/src/components/Echart/BarChartHorizontal.vue
+++ b/src/components/Echart/BarChartHorizontal.vue
@@ -160,7 +160,7 @@
},
color: {
type: String,
- default: '#3e29ce',
+ default: '#0d76d4',
},
/**
* 柱子背景颜色
@@ -299,7 +299,7 @@
splitLine: {
show: props.showAxis,
lineStyle: {
- color: ['#bfbfbf'],
+ color: ['#ccc'],
type: 'dashed',
},
},
@@ -365,23 +365,24 @@
type: 'bar',
colorBy: props.colorBy,
label: {
- normal: {
- show: props.showLabel,
- color: props.labelColor,
- // position: 'right',
- fontSize: 15,
- formatter: props.labelFormatter,
- // align: 'left',
- // verticalAlign: 'middle',
- },
+ show: true,
+ // normal: {
+ // show: true,
+ color: props.labelColor,
+ position: 'right',
+ fontSize: 15,
+ // formatter: props.labelFormatter,
+ // align: 'left',
+ verticalAlign: 'middle',
},
+ // },
showBackground: true,
backgroundStyle: {
color: props.backgroundColor,
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
itemStyle: {
- color: props.color,
+ color: '#2D8CF0',
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
data: item.data,
@@ -399,7 +400,7 @@
else {
chartWidth = chartWidth - 80
}
- series.label.normal!.position = [chartWidth, '50%']
+ // series.label.normal!.position = [chartWidth, '50%']
}
// 如果开启渐变
if (props.gradient && props.colors.length > 0) {
@@ -435,6 +436,7 @@
console.log(newSeries)
option.series = newSeries
}
+ console.log(option, 'option')
return option
}
// 初始化图表
diff --git a/src/components/NormalTable/index.vue b/src/components/NormalTable/index.vue
index 7ee9d06..4c33d8b 100644
--- a/src/components/NormalTable/index.vue
+++ b/src/components/NormalTable/index.vue
@@ -463,7 +463,7 @@
}
.follow-link {
- color: #3d7eff;
+ color: #0d76d4;
cursor: pointer;
&:hover {
diff --git a/src/components/map/index.vue b/src/components/map/index.vue
index 70a8abe..55943a0 100644
--- a/src/components/map/index.vue
+++ b/src/components/map/index.vue
@@ -566,7 +566,7 @@
})
// 聚合点小于11时不聚合
- cluster.value.setMinClusterSize(11)
+ cluster.value.setMinClusterSize(40)
}
const removeCluster = () => {
if (cluster.value) {
diff --git a/src/layouts/components/Header/index.vue b/src/layouts/components/Header/index.vue
index 88abc48..b159b77 100644
--- a/src/layouts/components/Header/index.vue
+++ b/src/layouts/components/Header/index.vue
@@ -65,7 +65,7 @@
height: var(--g-header-height);
color: var(--g-header-color);
background-color: var(--g-header-bg);
- background-image: linear-gradient(90deg, #71b5ff 30%, #3d7eff);
+ background-image: linear-gradient(90deg, #0d76d4 30%, #0d76d4);
transition: background-color 0.3s, var(--el-transition-color);
.header-container {
diff --git a/src/layouts/components/SidebarItem/index.vue b/src/layouts/components/SidebarItem/index.vue
index 8f0cd16..30038a2 100644
--- a/src/layouts/components/SidebarItem/index.vue
+++ b/src/layouts/components/SidebarItem/index.vue
@@ -146,8 +146,10 @@
background-color: var(--g-sub-sidebar-menu-bg) !important;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #4878ca !important;
}
}
}
@@ -157,22 +159,25 @@
color: var(--g-sub-sidebar-menu-color) !important;
background: transparent !important;
height: 40px;
- // line-height: 40px;
line-height: 20px;
margin: 4px 0;
border-radius: 7px;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
}
}
.el-menu-item.is-active,
.el-menu--collapse .el-sub-menu.is-active > .el-sub-menu__title,
.el-sub-menu .el-menu--inline .el-menu-item.is-active {
- color: var(--g-sub-sidebar-menu-active-color) !important;
- background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ // color: var(--g-sub-sidebar-menu-active-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
.icon,
.el-sub-menu__icon-arrow {
diff --git a/src/layouts/components/SubSidebar/index.vue b/src/layouts/components/SubSidebar/index.vue
index 20ef219..a7b717a 100644
--- a/src/layouts/components/SubSidebar/index.vue
+++ b/src/layouts/components/SubSidebar/index.vue
@@ -56,8 +56,8 @@
left: 0;
top: 0;
bottom: 0;
- background-color: var(--g-sub-sidebar-bg);
- background-image: linear-gradient(180deg, #71b5ff, #4384ff);
+ background-color: #0d76d4;
+ background-image: linear-gradient(180deg, #0d76d4, #0d76d4);
box-shadow: 10px 0 10px -10px var(--g-box-shadow-color);
transition: background-color 0.3s, var(--el-transition-box-shadow), left 0.3s, width 0.3s;
diff --git a/src/layouts/components/Topbar/index.vue b/src/layouts/components/Topbar/index.vue
index 4e3120e..e5dfb95 100644
--- a/src/layouts/components/Topbar/index.vue
+++ b/src/layouts/components/Topbar/index.vue
@@ -2,32 +2,52 @@
import { compile } from 'path-to-regexp'
import Tools from '../Tools/index.vue'
import useSettingsStore from '@/store/modules/settings'
-
+import useMenuStore from '@/store/modules/menu'
const route = useRoute()
-
+const router = useRouter()
+const menuStore = useMenuStore()
const settingsStore = useSettingsStore()
-
+const { proxy } = getCurrentInstance() as any
const enableSubMenuCollapseButton = computed(() => {
return settingsStore.mode === 'mobile' || (
['side', 'head', 'single'].includes(settingsStore.menu.menuMode)
- && settingsStore.menu.enableSubMenuCollapseButton
+ && settingsStore.menu.enableSubMenuCollapseButton
)
})
-const breadcrumbList = computed(() => {
- const breadcrumbList = []
- if (settingsStore.dashboard.enable) {
- breadcrumbList.push({
- path: '/dashboard',
- title: settingsStore.dashboard.title,
- })
+// const breadcrumbList = computed(() => {
+// const breadcrumbList = []
+// if (settingsStore.dashboard.enable) {
+// breadcrumbList.push({
+// path: '/dashboard',
+// title: settingsStore.dashboard.title,
+// })
+// }
+// if (route.meta.breadcrumbNeste) {
+// breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
+// }
+// return breadcrumbList
+// })
+const publicPath = window.location.href.split('#')[0]
+const breadcrumbList = ref
(menuStore.breadcrumbList)
+const routeInfo = ref(route)
+watch(() => menuStore.breadcrumbList, (newVal) => {
+ if (newVal.length) {
+ breadcrumbList.value = menuStore.breadcrumbList
+ console.log(breadcrumbList.value, 'breadcrumbList.value')
}
- if (route.meta.breadcrumbNeste) {
- breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
- }
- return breadcrumbList
+}, {
+ deep: true,
+ immediate: true,
})
-
+watch(() => route.path, (newVal) => {
+ // console.log(route, '当前路由信息')
+ routeInfo.value = route
+},
+{
+ deep: true,
+ // immediate: true,
+})
const scrollTop = ref(0)
onMounted(() => {
window.addEventListener('scroll', onScroll)
@@ -43,6 +63,21 @@
const toPath = compile(path)
return toPath(route.params)
}
+// 面包屑跳转
+const breadcrumbTo = (path: any) => {
+ router.push(path.path)
+}
+// 关闭面包屑
+const closePage = (path: any) => {
+ menuStore.removeBreadcrumb(path)
+ if (routeInfo.value.path === path.path) {
+ router.push({
+ path: breadcrumbList.value.length ? breadcrumbList.value[0].path : '/home/index',
+ // proxy.hasPerm('/dashboard') ? '/home/index' : '/'
+ //
+ })
+ }
+}
@@ -54,16 +89,38 @@
>
-
@@ -73,6 +130,68 @@
diff --git a/src/assets/icons/close.svg b/src/assets/icons/close.svg
new file mode 100644
index 0000000..fe18fcc
--- /dev/null
+++ b/src/assets/icons/close.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/icons/icon-home.svg b/src/assets/icons/icon-home.svg
new file mode 100644
index 0000000..ce022bf
--- /dev/null
+++ b/src/assets/icons/icon-home.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/images/home.png b/src/assets/images/home.png
new file mode 100644
index 0000000..08c451d
--- /dev/null
+++ b/src/assets/images/home.png
Binary files differ
diff --git a/src/components/Echart/BarChartHorizontal.vue b/src/components/Echart/BarChartHorizontal.vue
index ff88935..eac1b25 100644
--- a/src/components/Echart/BarChartHorizontal.vue
+++ b/src/components/Echart/BarChartHorizontal.vue
@@ -160,7 +160,7 @@
},
color: {
type: String,
- default: '#3e29ce',
+ default: '#0d76d4',
},
/**
* 柱子背景颜色
@@ -299,7 +299,7 @@
splitLine: {
show: props.showAxis,
lineStyle: {
- color: ['#bfbfbf'],
+ color: ['#ccc'],
type: 'dashed',
},
},
@@ -365,23 +365,24 @@
type: 'bar',
colorBy: props.colorBy,
label: {
- normal: {
- show: props.showLabel,
- color: props.labelColor,
- // position: 'right',
- fontSize: 15,
- formatter: props.labelFormatter,
- // align: 'left',
- // verticalAlign: 'middle',
- },
+ show: true,
+ // normal: {
+ // show: true,
+ color: props.labelColor,
+ position: 'right',
+ fontSize: 15,
+ // formatter: props.labelFormatter,
+ // align: 'left',
+ verticalAlign: 'middle',
},
+ // },
showBackground: true,
backgroundStyle: {
color: props.backgroundColor,
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
itemStyle: {
- color: props.color,
+ color: '#2D8CF0',
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
data: item.data,
@@ -399,7 +400,7 @@
else {
chartWidth = chartWidth - 80
}
- series.label.normal!.position = [chartWidth, '50%']
+ // series.label.normal!.position = [chartWidth, '50%']
}
// 如果开启渐变
if (props.gradient && props.colors.length > 0) {
@@ -435,6 +436,7 @@
console.log(newSeries)
option.series = newSeries
}
+ console.log(option, 'option')
return option
}
// 初始化图表
diff --git a/src/components/NormalTable/index.vue b/src/components/NormalTable/index.vue
index 7ee9d06..4c33d8b 100644
--- a/src/components/NormalTable/index.vue
+++ b/src/components/NormalTable/index.vue
@@ -463,7 +463,7 @@
}
.follow-link {
- color: #3d7eff;
+ color: #0d76d4;
cursor: pointer;
&:hover {
diff --git a/src/components/map/index.vue b/src/components/map/index.vue
index 70a8abe..55943a0 100644
--- a/src/components/map/index.vue
+++ b/src/components/map/index.vue
@@ -566,7 +566,7 @@
})
// 聚合点小于11时不聚合
- cluster.value.setMinClusterSize(11)
+ cluster.value.setMinClusterSize(40)
}
const removeCluster = () => {
if (cluster.value) {
diff --git a/src/layouts/components/Header/index.vue b/src/layouts/components/Header/index.vue
index 88abc48..b159b77 100644
--- a/src/layouts/components/Header/index.vue
+++ b/src/layouts/components/Header/index.vue
@@ -65,7 +65,7 @@
height: var(--g-header-height);
color: var(--g-header-color);
background-color: var(--g-header-bg);
- background-image: linear-gradient(90deg, #71b5ff 30%, #3d7eff);
+ background-image: linear-gradient(90deg, #0d76d4 30%, #0d76d4);
transition: background-color 0.3s, var(--el-transition-color);
.header-container {
diff --git a/src/layouts/components/SidebarItem/index.vue b/src/layouts/components/SidebarItem/index.vue
index 8f0cd16..30038a2 100644
--- a/src/layouts/components/SidebarItem/index.vue
+++ b/src/layouts/components/SidebarItem/index.vue
@@ -146,8 +146,10 @@
background-color: var(--g-sub-sidebar-menu-bg) !important;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #4878ca !important;
}
}
}
@@ -157,22 +159,25 @@
color: var(--g-sub-sidebar-menu-color) !important;
background: transparent !important;
height: 40px;
- // line-height: 40px;
line-height: 20px;
margin: 4px 0;
border-radius: 7px;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
}
}
.el-menu-item.is-active,
.el-menu--collapse .el-sub-menu.is-active > .el-sub-menu__title,
.el-sub-menu .el-menu--inline .el-menu-item.is-active {
- color: var(--g-sub-sidebar-menu-active-color) !important;
- background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ // color: var(--g-sub-sidebar-menu-active-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
.icon,
.el-sub-menu__icon-arrow {
diff --git a/src/layouts/components/SubSidebar/index.vue b/src/layouts/components/SubSidebar/index.vue
index 20ef219..a7b717a 100644
--- a/src/layouts/components/SubSidebar/index.vue
+++ b/src/layouts/components/SubSidebar/index.vue
@@ -56,8 +56,8 @@
left: 0;
top: 0;
bottom: 0;
- background-color: var(--g-sub-sidebar-bg);
- background-image: linear-gradient(180deg, #71b5ff, #4384ff);
+ background-color: #0d76d4;
+ background-image: linear-gradient(180deg, #0d76d4, #0d76d4);
box-shadow: 10px 0 10px -10px var(--g-box-shadow-color);
transition: background-color 0.3s, var(--el-transition-box-shadow), left 0.3s, width 0.3s;
diff --git a/src/layouts/components/Topbar/index.vue b/src/layouts/components/Topbar/index.vue
index 4e3120e..e5dfb95 100644
--- a/src/layouts/components/Topbar/index.vue
+++ b/src/layouts/components/Topbar/index.vue
@@ -2,32 +2,52 @@
import { compile } from 'path-to-regexp'
import Tools from '../Tools/index.vue'
import useSettingsStore from '@/store/modules/settings'
-
+import useMenuStore from '@/store/modules/menu'
const route = useRoute()
-
+const router = useRouter()
+const menuStore = useMenuStore()
const settingsStore = useSettingsStore()
-
+const { proxy } = getCurrentInstance() as any
const enableSubMenuCollapseButton = computed(() => {
return settingsStore.mode === 'mobile' || (
['side', 'head', 'single'].includes(settingsStore.menu.menuMode)
- && settingsStore.menu.enableSubMenuCollapseButton
+ && settingsStore.menu.enableSubMenuCollapseButton
)
})
-const breadcrumbList = computed(() => {
- const breadcrumbList = []
- if (settingsStore.dashboard.enable) {
- breadcrumbList.push({
- path: '/dashboard',
- title: settingsStore.dashboard.title,
- })
+// const breadcrumbList = computed(() => {
+// const breadcrumbList = []
+// if (settingsStore.dashboard.enable) {
+// breadcrumbList.push({
+// path: '/dashboard',
+// title: settingsStore.dashboard.title,
+// })
+// }
+// if (route.meta.breadcrumbNeste) {
+// breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
+// }
+// return breadcrumbList
+// })
+const publicPath = window.location.href.split('#')[0]
+const breadcrumbList = ref
(menuStore.breadcrumbList)
+const routeInfo = ref(route)
+watch(() => menuStore.breadcrumbList, (newVal) => {
+ if (newVal.length) {
+ breadcrumbList.value = menuStore.breadcrumbList
+ console.log(breadcrumbList.value, 'breadcrumbList.value')
}
- if (route.meta.breadcrumbNeste) {
- breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
- }
- return breadcrumbList
+}, {
+ deep: true,
+ immediate: true,
})
-
+watch(() => route.path, (newVal) => {
+ // console.log(route, '当前路由信息')
+ routeInfo.value = route
+},
+{
+ deep: true,
+ // immediate: true,
+})
const scrollTop = ref(0)
onMounted(() => {
window.addEventListener('scroll', onScroll)
@@ -43,6 +63,21 @@
const toPath = compile(path)
return toPath(route.params)
}
+// 面包屑跳转
+const breadcrumbTo = (path: any) => {
+ router.push(path.path)
+}
+// 关闭面包屑
+const closePage = (path: any) => {
+ menuStore.removeBreadcrumb(path)
+ if (routeInfo.value.path === path.path) {
+ router.push({
+ path: breadcrumbList.value.length ? breadcrumbList.value[0].path : '/home/index',
+ // proxy.hasPerm('/dashboard') ? '/home/index' : '/'
+ //
+ })
+ }
+}
@@ -54,16 +89,38 @@
>
-
@@ -73,6 +130,68 @@
diff --git a/src/assets/icons/close.svg b/src/assets/icons/close.svg
new file mode 100644
index 0000000..fe18fcc
--- /dev/null
+++ b/src/assets/icons/close.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/icons/icon-home.svg b/src/assets/icons/icon-home.svg
new file mode 100644
index 0000000..ce022bf
--- /dev/null
+++ b/src/assets/icons/icon-home.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/images/home.png b/src/assets/images/home.png
new file mode 100644
index 0000000..08c451d
--- /dev/null
+++ b/src/assets/images/home.png
Binary files differ
diff --git a/src/components/Echart/BarChartHorizontal.vue b/src/components/Echart/BarChartHorizontal.vue
index ff88935..eac1b25 100644
--- a/src/components/Echart/BarChartHorizontal.vue
+++ b/src/components/Echart/BarChartHorizontal.vue
@@ -160,7 +160,7 @@
},
color: {
type: String,
- default: '#3e29ce',
+ default: '#0d76d4',
},
/**
* 柱子背景颜色
@@ -299,7 +299,7 @@
splitLine: {
show: props.showAxis,
lineStyle: {
- color: ['#bfbfbf'],
+ color: ['#ccc'],
type: 'dashed',
},
},
@@ -365,23 +365,24 @@
type: 'bar',
colorBy: props.colorBy,
label: {
- normal: {
- show: props.showLabel,
- color: props.labelColor,
- // position: 'right',
- fontSize: 15,
- formatter: props.labelFormatter,
- // align: 'left',
- // verticalAlign: 'middle',
- },
+ show: true,
+ // normal: {
+ // show: true,
+ color: props.labelColor,
+ position: 'right',
+ fontSize: 15,
+ // formatter: props.labelFormatter,
+ // align: 'left',
+ verticalAlign: 'middle',
},
+ // },
showBackground: true,
backgroundStyle: {
color: props.backgroundColor,
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
itemStyle: {
- color: props.color,
+ color: '#2D8CF0',
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
data: item.data,
@@ -399,7 +400,7 @@
else {
chartWidth = chartWidth - 80
}
- series.label.normal!.position = [chartWidth, '50%']
+ // series.label.normal!.position = [chartWidth, '50%']
}
// 如果开启渐变
if (props.gradient && props.colors.length > 0) {
@@ -435,6 +436,7 @@
console.log(newSeries)
option.series = newSeries
}
+ console.log(option, 'option')
return option
}
// 初始化图表
diff --git a/src/components/NormalTable/index.vue b/src/components/NormalTable/index.vue
index 7ee9d06..4c33d8b 100644
--- a/src/components/NormalTable/index.vue
+++ b/src/components/NormalTable/index.vue
@@ -463,7 +463,7 @@
}
.follow-link {
- color: #3d7eff;
+ color: #0d76d4;
cursor: pointer;
&:hover {
diff --git a/src/components/map/index.vue b/src/components/map/index.vue
index 70a8abe..55943a0 100644
--- a/src/components/map/index.vue
+++ b/src/components/map/index.vue
@@ -566,7 +566,7 @@
})
// 聚合点小于11时不聚合
- cluster.value.setMinClusterSize(11)
+ cluster.value.setMinClusterSize(40)
}
const removeCluster = () => {
if (cluster.value) {
diff --git a/src/layouts/components/Header/index.vue b/src/layouts/components/Header/index.vue
index 88abc48..b159b77 100644
--- a/src/layouts/components/Header/index.vue
+++ b/src/layouts/components/Header/index.vue
@@ -65,7 +65,7 @@
height: var(--g-header-height);
color: var(--g-header-color);
background-color: var(--g-header-bg);
- background-image: linear-gradient(90deg, #71b5ff 30%, #3d7eff);
+ background-image: linear-gradient(90deg, #0d76d4 30%, #0d76d4);
transition: background-color 0.3s, var(--el-transition-color);
.header-container {
diff --git a/src/layouts/components/SidebarItem/index.vue b/src/layouts/components/SidebarItem/index.vue
index 8f0cd16..30038a2 100644
--- a/src/layouts/components/SidebarItem/index.vue
+++ b/src/layouts/components/SidebarItem/index.vue
@@ -146,8 +146,10 @@
background-color: var(--g-sub-sidebar-menu-bg) !important;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #4878ca !important;
}
}
}
@@ -157,22 +159,25 @@
color: var(--g-sub-sidebar-menu-color) !important;
background: transparent !important;
height: 40px;
- // line-height: 40px;
line-height: 20px;
margin: 4px 0;
border-radius: 7px;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
}
}
.el-menu-item.is-active,
.el-menu--collapse .el-sub-menu.is-active > .el-sub-menu__title,
.el-sub-menu .el-menu--inline .el-menu-item.is-active {
- color: var(--g-sub-sidebar-menu-active-color) !important;
- background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ // color: var(--g-sub-sidebar-menu-active-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
.icon,
.el-sub-menu__icon-arrow {
diff --git a/src/layouts/components/SubSidebar/index.vue b/src/layouts/components/SubSidebar/index.vue
index 20ef219..a7b717a 100644
--- a/src/layouts/components/SubSidebar/index.vue
+++ b/src/layouts/components/SubSidebar/index.vue
@@ -56,8 +56,8 @@
left: 0;
top: 0;
bottom: 0;
- background-color: var(--g-sub-sidebar-bg);
- background-image: linear-gradient(180deg, #71b5ff, #4384ff);
+ background-color: #0d76d4;
+ background-image: linear-gradient(180deg, #0d76d4, #0d76d4);
box-shadow: 10px 0 10px -10px var(--g-box-shadow-color);
transition: background-color 0.3s, var(--el-transition-box-shadow), left 0.3s, width 0.3s;
diff --git a/src/layouts/components/Topbar/index.vue b/src/layouts/components/Topbar/index.vue
index 4e3120e..e5dfb95 100644
--- a/src/layouts/components/Topbar/index.vue
+++ b/src/layouts/components/Topbar/index.vue
@@ -2,32 +2,52 @@
import { compile } from 'path-to-regexp'
import Tools from '../Tools/index.vue'
import useSettingsStore from '@/store/modules/settings'
-
+import useMenuStore from '@/store/modules/menu'
const route = useRoute()
-
+const router = useRouter()
+const menuStore = useMenuStore()
const settingsStore = useSettingsStore()
-
+const { proxy } = getCurrentInstance() as any
const enableSubMenuCollapseButton = computed(() => {
return settingsStore.mode === 'mobile' || (
['side', 'head', 'single'].includes(settingsStore.menu.menuMode)
- && settingsStore.menu.enableSubMenuCollapseButton
+ && settingsStore.menu.enableSubMenuCollapseButton
)
})
-const breadcrumbList = computed(() => {
- const breadcrumbList = []
- if (settingsStore.dashboard.enable) {
- breadcrumbList.push({
- path: '/dashboard',
- title: settingsStore.dashboard.title,
- })
+// const breadcrumbList = computed(() => {
+// const breadcrumbList = []
+// if (settingsStore.dashboard.enable) {
+// breadcrumbList.push({
+// path: '/dashboard',
+// title: settingsStore.dashboard.title,
+// })
+// }
+// if (route.meta.breadcrumbNeste) {
+// breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
+// }
+// return breadcrumbList
+// })
+const publicPath = window.location.href.split('#')[0]
+const breadcrumbList = ref
(menuStore.breadcrumbList)
+const routeInfo = ref(route)
+watch(() => menuStore.breadcrumbList, (newVal) => {
+ if (newVal.length) {
+ breadcrumbList.value = menuStore.breadcrumbList
+ console.log(breadcrumbList.value, 'breadcrumbList.value')
}
- if (route.meta.breadcrumbNeste) {
- breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
- }
- return breadcrumbList
+}, {
+ deep: true,
+ immediate: true,
})
-
+watch(() => route.path, (newVal) => {
+ // console.log(route, '当前路由信息')
+ routeInfo.value = route
+},
+{
+ deep: true,
+ // immediate: true,
+})
const scrollTop = ref(0)
onMounted(() => {
window.addEventListener('scroll', onScroll)
@@ -43,6 +63,21 @@
const toPath = compile(path)
return toPath(route.params)
}
+// 面包屑跳转
+const breadcrumbTo = (path: any) => {
+ router.push(path.path)
+}
+// 关闭面包屑
+const closePage = (path: any) => {
+ menuStore.removeBreadcrumb(path)
+ if (routeInfo.value.path === path.path) {
+ router.push({
+ path: breadcrumbList.value.length ? breadcrumbList.value[0].path : '/home/index',
+ // proxy.hasPerm('/dashboard') ? '/home/index' : '/'
+ //
+ })
+ }
+}
@@ -54,16 +89,38 @@
>
-
@@ -73,6 +130,68 @@
diff --git a/src/assets/icons/close.svg b/src/assets/icons/close.svg
new file mode 100644
index 0000000..fe18fcc
--- /dev/null
+++ b/src/assets/icons/close.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/icons/icon-home.svg b/src/assets/icons/icon-home.svg
new file mode 100644
index 0000000..ce022bf
--- /dev/null
+++ b/src/assets/icons/icon-home.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/images/home.png b/src/assets/images/home.png
new file mode 100644
index 0000000..08c451d
--- /dev/null
+++ b/src/assets/images/home.png
Binary files differ
diff --git a/src/components/Echart/BarChartHorizontal.vue b/src/components/Echart/BarChartHorizontal.vue
index ff88935..eac1b25 100644
--- a/src/components/Echart/BarChartHorizontal.vue
+++ b/src/components/Echart/BarChartHorizontal.vue
@@ -160,7 +160,7 @@
},
color: {
type: String,
- default: '#3e29ce',
+ default: '#0d76d4',
},
/**
* 柱子背景颜色
@@ -299,7 +299,7 @@
splitLine: {
show: props.showAxis,
lineStyle: {
- color: ['#bfbfbf'],
+ color: ['#ccc'],
type: 'dashed',
},
},
@@ -365,23 +365,24 @@
type: 'bar',
colorBy: props.colorBy,
label: {
- normal: {
- show: props.showLabel,
- color: props.labelColor,
- // position: 'right',
- fontSize: 15,
- formatter: props.labelFormatter,
- // align: 'left',
- // verticalAlign: 'middle',
- },
+ show: true,
+ // normal: {
+ // show: true,
+ color: props.labelColor,
+ position: 'right',
+ fontSize: 15,
+ // formatter: props.labelFormatter,
+ // align: 'left',
+ verticalAlign: 'middle',
},
+ // },
showBackground: true,
backgroundStyle: {
color: props.backgroundColor,
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
itemStyle: {
- color: props.color,
+ color: '#2D8CF0',
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
data: item.data,
@@ -399,7 +400,7 @@
else {
chartWidth = chartWidth - 80
}
- series.label.normal!.position = [chartWidth, '50%']
+ // series.label.normal!.position = [chartWidth, '50%']
}
// 如果开启渐变
if (props.gradient && props.colors.length > 0) {
@@ -435,6 +436,7 @@
console.log(newSeries)
option.series = newSeries
}
+ console.log(option, 'option')
return option
}
// 初始化图表
diff --git a/src/components/NormalTable/index.vue b/src/components/NormalTable/index.vue
index 7ee9d06..4c33d8b 100644
--- a/src/components/NormalTable/index.vue
+++ b/src/components/NormalTable/index.vue
@@ -463,7 +463,7 @@
}
.follow-link {
- color: #3d7eff;
+ color: #0d76d4;
cursor: pointer;
&:hover {
diff --git a/src/components/map/index.vue b/src/components/map/index.vue
index 70a8abe..55943a0 100644
--- a/src/components/map/index.vue
+++ b/src/components/map/index.vue
@@ -566,7 +566,7 @@
})
// 聚合点小于11时不聚合
- cluster.value.setMinClusterSize(11)
+ cluster.value.setMinClusterSize(40)
}
const removeCluster = () => {
if (cluster.value) {
diff --git a/src/layouts/components/Header/index.vue b/src/layouts/components/Header/index.vue
index 88abc48..b159b77 100644
--- a/src/layouts/components/Header/index.vue
+++ b/src/layouts/components/Header/index.vue
@@ -65,7 +65,7 @@
height: var(--g-header-height);
color: var(--g-header-color);
background-color: var(--g-header-bg);
- background-image: linear-gradient(90deg, #71b5ff 30%, #3d7eff);
+ background-image: linear-gradient(90deg, #0d76d4 30%, #0d76d4);
transition: background-color 0.3s, var(--el-transition-color);
.header-container {
diff --git a/src/layouts/components/SidebarItem/index.vue b/src/layouts/components/SidebarItem/index.vue
index 8f0cd16..30038a2 100644
--- a/src/layouts/components/SidebarItem/index.vue
+++ b/src/layouts/components/SidebarItem/index.vue
@@ -146,8 +146,10 @@
background-color: var(--g-sub-sidebar-menu-bg) !important;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #4878ca !important;
}
}
}
@@ -157,22 +159,25 @@
color: var(--g-sub-sidebar-menu-color) !important;
background: transparent !important;
height: 40px;
- // line-height: 40px;
line-height: 20px;
margin: 4px 0;
border-radius: 7px;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
}
}
.el-menu-item.is-active,
.el-menu--collapse .el-sub-menu.is-active > .el-sub-menu__title,
.el-sub-menu .el-menu--inline .el-menu-item.is-active {
- color: var(--g-sub-sidebar-menu-active-color) !important;
- background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ // color: var(--g-sub-sidebar-menu-active-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
.icon,
.el-sub-menu__icon-arrow {
diff --git a/src/layouts/components/SubSidebar/index.vue b/src/layouts/components/SubSidebar/index.vue
index 20ef219..a7b717a 100644
--- a/src/layouts/components/SubSidebar/index.vue
+++ b/src/layouts/components/SubSidebar/index.vue
@@ -56,8 +56,8 @@
left: 0;
top: 0;
bottom: 0;
- background-color: var(--g-sub-sidebar-bg);
- background-image: linear-gradient(180deg, #71b5ff, #4384ff);
+ background-color: #0d76d4;
+ background-image: linear-gradient(180deg, #0d76d4, #0d76d4);
box-shadow: 10px 0 10px -10px var(--g-box-shadow-color);
transition: background-color 0.3s, var(--el-transition-box-shadow), left 0.3s, width 0.3s;
diff --git a/src/layouts/components/Topbar/index.vue b/src/layouts/components/Topbar/index.vue
index 4e3120e..e5dfb95 100644
--- a/src/layouts/components/Topbar/index.vue
+++ b/src/layouts/components/Topbar/index.vue
@@ -2,32 +2,52 @@
import { compile } from 'path-to-regexp'
import Tools from '../Tools/index.vue'
import useSettingsStore from '@/store/modules/settings'
-
+import useMenuStore from '@/store/modules/menu'
const route = useRoute()
-
+const router = useRouter()
+const menuStore = useMenuStore()
const settingsStore = useSettingsStore()
-
+const { proxy } = getCurrentInstance() as any
const enableSubMenuCollapseButton = computed(() => {
return settingsStore.mode === 'mobile' || (
['side', 'head', 'single'].includes(settingsStore.menu.menuMode)
- && settingsStore.menu.enableSubMenuCollapseButton
+ && settingsStore.menu.enableSubMenuCollapseButton
)
})
-const breadcrumbList = computed(() => {
- const breadcrumbList = []
- if (settingsStore.dashboard.enable) {
- breadcrumbList.push({
- path: '/dashboard',
- title: settingsStore.dashboard.title,
- })
+// const breadcrumbList = computed(() => {
+// const breadcrumbList = []
+// if (settingsStore.dashboard.enable) {
+// breadcrumbList.push({
+// path: '/dashboard',
+// title: settingsStore.dashboard.title,
+// })
+// }
+// if (route.meta.breadcrumbNeste) {
+// breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
+// }
+// return breadcrumbList
+// })
+const publicPath = window.location.href.split('#')[0]
+const breadcrumbList = ref
(menuStore.breadcrumbList)
+const routeInfo = ref(route)
+watch(() => menuStore.breadcrumbList, (newVal) => {
+ if (newVal.length) {
+ breadcrumbList.value = menuStore.breadcrumbList
+ console.log(breadcrumbList.value, 'breadcrumbList.value')
}
- if (route.meta.breadcrumbNeste) {
- breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
- }
- return breadcrumbList
+}, {
+ deep: true,
+ immediate: true,
})
-
+watch(() => route.path, (newVal) => {
+ // console.log(route, '当前路由信息')
+ routeInfo.value = route
+},
+{
+ deep: true,
+ // immediate: true,
+})
const scrollTop = ref(0)
onMounted(() => {
window.addEventListener('scroll', onScroll)
@@ -43,6 +63,21 @@
const toPath = compile(path)
return toPath(route.params)
}
+// 面包屑跳转
+const breadcrumbTo = (path: any) => {
+ router.push(path.path)
+}
+// 关闭面包屑
+const closePage = (path: any) => {
+ menuStore.removeBreadcrumb(path)
+ if (routeInfo.value.path === path.path) {
+ router.push({
+ path: breadcrumbList.value.length ? breadcrumbList.value[0].path : '/home/index',
+ // proxy.hasPerm('/dashboard') ? '/home/index' : '/'
+ //
+ })
+ }
+}
@@ -54,16 +89,38 @@
>
-
@@ -73,6 +130,68 @@
diff --git a/src/assets/icons/close.svg b/src/assets/icons/close.svg
new file mode 100644
index 0000000..fe18fcc
--- /dev/null
+++ b/src/assets/icons/close.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/icons/icon-home.svg b/src/assets/icons/icon-home.svg
new file mode 100644
index 0000000..ce022bf
--- /dev/null
+++ b/src/assets/icons/icon-home.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/images/home.png b/src/assets/images/home.png
new file mode 100644
index 0000000..08c451d
--- /dev/null
+++ b/src/assets/images/home.png
Binary files differ
diff --git a/src/components/Echart/BarChartHorizontal.vue b/src/components/Echart/BarChartHorizontal.vue
index ff88935..eac1b25 100644
--- a/src/components/Echart/BarChartHorizontal.vue
+++ b/src/components/Echart/BarChartHorizontal.vue
@@ -160,7 +160,7 @@
},
color: {
type: String,
- default: '#3e29ce',
+ default: '#0d76d4',
},
/**
* 柱子背景颜色
@@ -299,7 +299,7 @@
splitLine: {
show: props.showAxis,
lineStyle: {
- color: ['#bfbfbf'],
+ color: ['#ccc'],
type: 'dashed',
},
},
@@ -365,23 +365,24 @@
type: 'bar',
colorBy: props.colorBy,
label: {
- normal: {
- show: props.showLabel,
- color: props.labelColor,
- // position: 'right',
- fontSize: 15,
- formatter: props.labelFormatter,
- // align: 'left',
- // verticalAlign: 'middle',
- },
+ show: true,
+ // normal: {
+ // show: true,
+ color: props.labelColor,
+ position: 'right',
+ fontSize: 15,
+ // formatter: props.labelFormatter,
+ // align: 'left',
+ verticalAlign: 'middle',
},
+ // },
showBackground: true,
backgroundStyle: {
color: props.backgroundColor,
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
itemStyle: {
- color: props.color,
+ color: '#2D8CF0',
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
data: item.data,
@@ -399,7 +400,7 @@
else {
chartWidth = chartWidth - 80
}
- series.label.normal!.position = [chartWidth, '50%']
+ // series.label.normal!.position = [chartWidth, '50%']
}
// 如果开启渐变
if (props.gradient && props.colors.length > 0) {
@@ -435,6 +436,7 @@
console.log(newSeries)
option.series = newSeries
}
+ console.log(option, 'option')
return option
}
// 初始化图表
diff --git a/src/components/NormalTable/index.vue b/src/components/NormalTable/index.vue
index 7ee9d06..4c33d8b 100644
--- a/src/components/NormalTable/index.vue
+++ b/src/components/NormalTable/index.vue
@@ -463,7 +463,7 @@
}
.follow-link {
- color: #3d7eff;
+ color: #0d76d4;
cursor: pointer;
&:hover {
diff --git a/src/components/map/index.vue b/src/components/map/index.vue
index 70a8abe..55943a0 100644
--- a/src/components/map/index.vue
+++ b/src/components/map/index.vue
@@ -566,7 +566,7 @@
})
// 聚合点小于11时不聚合
- cluster.value.setMinClusterSize(11)
+ cluster.value.setMinClusterSize(40)
}
const removeCluster = () => {
if (cluster.value) {
diff --git a/src/layouts/components/Header/index.vue b/src/layouts/components/Header/index.vue
index 88abc48..b159b77 100644
--- a/src/layouts/components/Header/index.vue
+++ b/src/layouts/components/Header/index.vue
@@ -65,7 +65,7 @@
height: var(--g-header-height);
color: var(--g-header-color);
background-color: var(--g-header-bg);
- background-image: linear-gradient(90deg, #71b5ff 30%, #3d7eff);
+ background-image: linear-gradient(90deg, #0d76d4 30%, #0d76d4);
transition: background-color 0.3s, var(--el-transition-color);
.header-container {
diff --git a/src/layouts/components/SidebarItem/index.vue b/src/layouts/components/SidebarItem/index.vue
index 8f0cd16..30038a2 100644
--- a/src/layouts/components/SidebarItem/index.vue
+++ b/src/layouts/components/SidebarItem/index.vue
@@ -146,8 +146,10 @@
background-color: var(--g-sub-sidebar-menu-bg) !important;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #4878ca !important;
}
}
}
@@ -157,22 +159,25 @@
color: var(--g-sub-sidebar-menu-color) !important;
background: transparent !important;
height: 40px;
- // line-height: 40px;
line-height: 20px;
margin: 4px 0;
border-radius: 7px;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
}
}
.el-menu-item.is-active,
.el-menu--collapse .el-sub-menu.is-active > .el-sub-menu__title,
.el-sub-menu .el-menu--inline .el-menu-item.is-active {
- color: var(--g-sub-sidebar-menu-active-color) !important;
- background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ // color: var(--g-sub-sidebar-menu-active-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
.icon,
.el-sub-menu__icon-arrow {
diff --git a/src/layouts/components/SubSidebar/index.vue b/src/layouts/components/SubSidebar/index.vue
index 20ef219..a7b717a 100644
--- a/src/layouts/components/SubSidebar/index.vue
+++ b/src/layouts/components/SubSidebar/index.vue
@@ -56,8 +56,8 @@
left: 0;
top: 0;
bottom: 0;
- background-color: var(--g-sub-sidebar-bg);
- background-image: linear-gradient(180deg, #71b5ff, #4384ff);
+ background-color: #0d76d4;
+ background-image: linear-gradient(180deg, #0d76d4, #0d76d4);
box-shadow: 10px 0 10px -10px var(--g-box-shadow-color);
transition: background-color 0.3s, var(--el-transition-box-shadow), left 0.3s, width 0.3s;
diff --git a/src/layouts/components/Topbar/index.vue b/src/layouts/components/Topbar/index.vue
index 4e3120e..e5dfb95 100644
--- a/src/layouts/components/Topbar/index.vue
+++ b/src/layouts/components/Topbar/index.vue
@@ -2,32 +2,52 @@
import { compile } from 'path-to-regexp'
import Tools from '../Tools/index.vue'
import useSettingsStore from '@/store/modules/settings'
-
+import useMenuStore from '@/store/modules/menu'
const route = useRoute()
-
+const router = useRouter()
+const menuStore = useMenuStore()
const settingsStore = useSettingsStore()
-
+const { proxy } = getCurrentInstance() as any
const enableSubMenuCollapseButton = computed(() => {
return settingsStore.mode === 'mobile' || (
['side', 'head', 'single'].includes(settingsStore.menu.menuMode)
- && settingsStore.menu.enableSubMenuCollapseButton
+ && settingsStore.menu.enableSubMenuCollapseButton
)
})
-const breadcrumbList = computed(() => {
- const breadcrumbList = []
- if (settingsStore.dashboard.enable) {
- breadcrumbList.push({
- path: '/dashboard',
- title: settingsStore.dashboard.title,
- })
+// const breadcrumbList = computed(() => {
+// const breadcrumbList = []
+// if (settingsStore.dashboard.enable) {
+// breadcrumbList.push({
+// path: '/dashboard',
+// title: settingsStore.dashboard.title,
+// })
+// }
+// if (route.meta.breadcrumbNeste) {
+// breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
+// }
+// return breadcrumbList
+// })
+const publicPath = window.location.href.split('#')[0]
+const breadcrumbList = ref
(menuStore.breadcrumbList)
+const routeInfo = ref(route)
+watch(() => menuStore.breadcrumbList, (newVal) => {
+ if (newVal.length) {
+ breadcrumbList.value = menuStore.breadcrumbList
+ console.log(breadcrumbList.value, 'breadcrumbList.value')
}
- if (route.meta.breadcrumbNeste) {
- breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
- }
- return breadcrumbList
+}, {
+ deep: true,
+ immediate: true,
})
-
+watch(() => route.path, (newVal) => {
+ // console.log(route, '当前路由信息')
+ routeInfo.value = route
+},
+{
+ deep: true,
+ // immediate: true,
+})
const scrollTop = ref(0)
onMounted(() => {
window.addEventListener('scroll', onScroll)
@@ -43,6 +63,21 @@
const toPath = compile(path)
return toPath(route.params)
}
+// 面包屑跳转
+const breadcrumbTo = (path: any) => {
+ router.push(path.path)
+}
+// 关闭面包屑
+const closePage = (path: any) => {
+ menuStore.removeBreadcrumb(path)
+ if (routeInfo.value.path === path.path) {
+ router.push({
+ path: breadcrumbList.value.length ? breadcrumbList.value[0].path : '/home/index',
+ // proxy.hasPerm('/dashboard') ? '/home/index' : '/'
+ //
+ })
+ }
+}
@@ -54,16 +89,38 @@
>
-
@@ -73,6 +130,68 @@
diff --git a/src/assets/icons/close.svg b/src/assets/icons/close.svg
new file mode 100644
index 0000000..fe18fcc
--- /dev/null
+++ b/src/assets/icons/close.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/icons/icon-home.svg b/src/assets/icons/icon-home.svg
new file mode 100644
index 0000000..ce022bf
--- /dev/null
+++ b/src/assets/icons/icon-home.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/images/home.png b/src/assets/images/home.png
new file mode 100644
index 0000000..08c451d
--- /dev/null
+++ b/src/assets/images/home.png
Binary files differ
diff --git a/src/components/Echart/BarChartHorizontal.vue b/src/components/Echart/BarChartHorizontal.vue
index ff88935..eac1b25 100644
--- a/src/components/Echart/BarChartHorizontal.vue
+++ b/src/components/Echart/BarChartHorizontal.vue
@@ -160,7 +160,7 @@
},
color: {
type: String,
- default: '#3e29ce',
+ default: '#0d76d4',
},
/**
* 柱子背景颜色
@@ -299,7 +299,7 @@
splitLine: {
show: props.showAxis,
lineStyle: {
- color: ['#bfbfbf'],
+ color: ['#ccc'],
type: 'dashed',
},
},
@@ -365,23 +365,24 @@
type: 'bar',
colorBy: props.colorBy,
label: {
- normal: {
- show: props.showLabel,
- color: props.labelColor,
- // position: 'right',
- fontSize: 15,
- formatter: props.labelFormatter,
- // align: 'left',
- // verticalAlign: 'middle',
- },
+ show: true,
+ // normal: {
+ // show: true,
+ color: props.labelColor,
+ position: 'right',
+ fontSize: 15,
+ // formatter: props.labelFormatter,
+ // align: 'left',
+ verticalAlign: 'middle',
},
+ // },
showBackground: true,
backgroundStyle: {
color: props.backgroundColor,
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
itemStyle: {
- color: props.color,
+ color: '#2D8CF0',
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
data: item.data,
@@ -399,7 +400,7 @@
else {
chartWidth = chartWidth - 80
}
- series.label.normal!.position = [chartWidth, '50%']
+ // series.label.normal!.position = [chartWidth, '50%']
}
// 如果开启渐变
if (props.gradient && props.colors.length > 0) {
@@ -435,6 +436,7 @@
console.log(newSeries)
option.series = newSeries
}
+ console.log(option, 'option')
return option
}
// 初始化图表
diff --git a/src/components/NormalTable/index.vue b/src/components/NormalTable/index.vue
index 7ee9d06..4c33d8b 100644
--- a/src/components/NormalTable/index.vue
+++ b/src/components/NormalTable/index.vue
@@ -463,7 +463,7 @@
}
.follow-link {
- color: #3d7eff;
+ color: #0d76d4;
cursor: pointer;
&:hover {
diff --git a/src/components/map/index.vue b/src/components/map/index.vue
index 70a8abe..55943a0 100644
--- a/src/components/map/index.vue
+++ b/src/components/map/index.vue
@@ -566,7 +566,7 @@
})
// 聚合点小于11时不聚合
- cluster.value.setMinClusterSize(11)
+ cluster.value.setMinClusterSize(40)
}
const removeCluster = () => {
if (cluster.value) {
diff --git a/src/layouts/components/Header/index.vue b/src/layouts/components/Header/index.vue
index 88abc48..b159b77 100644
--- a/src/layouts/components/Header/index.vue
+++ b/src/layouts/components/Header/index.vue
@@ -65,7 +65,7 @@
height: var(--g-header-height);
color: var(--g-header-color);
background-color: var(--g-header-bg);
- background-image: linear-gradient(90deg, #71b5ff 30%, #3d7eff);
+ background-image: linear-gradient(90deg, #0d76d4 30%, #0d76d4);
transition: background-color 0.3s, var(--el-transition-color);
.header-container {
diff --git a/src/layouts/components/SidebarItem/index.vue b/src/layouts/components/SidebarItem/index.vue
index 8f0cd16..30038a2 100644
--- a/src/layouts/components/SidebarItem/index.vue
+++ b/src/layouts/components/SidebarItem/index.vue
@@ -146,8 +146,10 @@
background-color: var(--g-sub-sidebar-menu-bg) !important;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #4878ca !important;
}
}
}
@@ -157,22 +159,25 @@
color: var(--g-sub-sidebar-menu-color) !important;
background: transparent !important;
height: 40px;
- // line-height: 40px;
line-height: 20px;
margin: 4px 0;
border-radius: 7px;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
}
}
.el-menu-item.is-active,
.el-menu--collapse .el-sub-menu.is-active > .el-sub-menu__title,
.el-sub-menu .el-menu--inline .el-menu-item.is-active {
- color: var(--g-sub-sidebar-menu-active-color) !important;
- background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ // color: var(--g-sub-sidebar-menu-active-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
.icon,
.el-sub-menu__icon-arrow {
diff --git a/src/layouts/components/SubSidebar/index.vue b/src/layouts/components/SubSidebar/index.vue
index 20ef219..a7b717a 100644
--- a/src/layouts/components/SubSidebar/index.vue
+++ b/src/layouts/components/SubSidebar/index.vue
@@ -56,8 +56,8 @@
left: 0;
top: 0;
bottom: 0;
- background-color: var(--g-sub-sidebar-bg);
- background-image: linear-gradient(180deg, #71b5ff, #4384ff);
+ background-color: #0d76d4;
+ background-image: linear-gradient(180deg, #0d76d4, #0d76d4);
box-shadow: 10px 0 10px -10px var(--g-box-shadow-color);
transition: background-color 0.3s, var(--el-transition-box-shadow), left 0.3s, width 0.3s;
diff --git a/src/layouts/components/Topbar/index.vue b/src/layouts/components/Topbar/index.vue
index 4e3120e..e5dfb95 100644
--- a/src/layouts/components/Topbar/index.vue
+++ b/src/layouts/components/Topbar/index.vue
@@ -2,32 +2,52 @@
import { compile } from 'path-to-regexp'
import Tools from '../Tools/index.vue'
import useSettingsStore from '@/store/modules/settings'
-
+import useMenuStore from '@/store/modules/menu'
const route = useRoute()
-
+const router = useRouter()
+const menuStore = useMenuStore()
const settingsStore = useSettingsStore()
-
+const { proxy } = getCurrentInstance() as any
const enableSubMenuCollapseButton = computed(() => {
return settingsStore.mode === 'mobile' || (
['side', 'head', 'single'].includes(settingsStore.menu.menuMode)
- && settingsStore.menu.enableSubMenuCollapseButton
+ && settingsStore.menu.enableSubMenuCollapseButton
)
})
-const breadcrumbList = computed(() => {
- const breadcrumbList = []
- if (settingsStore.dashboard.enable) {
- breadcrumbList.push({
- path: '/dashboard',
- title: settingsStore.dashboard.title,
- })
+// const breadcrumbList = computed(() => {
+// const breadcrumbList = []
+// if (settingsStore.dashboard.enable) {
+// breadcrumbList.push({
+// path: '/dashboard',
+// title: settingsStore.dashboard.title,
+// })
+// }
+// if (route.meta.breadcrumbNeste) {
+// breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
+// }
+// return breadcrumbList
+// })
+const publicPath = window.location.href.split('#')[0]
+const breadcrumbList = ref
(menuStore.breadcrumbList)
+const routeInfo = ref(route)
+watch(() => menuStore.breadcrumbList, (newVal) => {
+ if (newVal.length) {
+ breadcrumbList.value = menuStore.breadcrumbList
+ console.log(breadcrumbList.value, 'breadcrumbList.value')
}
- if (route.meta.breadcrumbNeste) {
- breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
- }
- return breadcrumbList
+}, {
+ deep: true,
+ immediate: true,
})
-
+watch(() => route.path, (newVal) => {
+ // console.log(route, '当前路由信息')
+ routeInfo.value = route
+},
+{
+ deep: true,
+ // immediate: true,
+})
const scrollTop = ref(0)
onMounted(() => {
window.addEventListener('scroll', onScroll)
@@ -43,6 +63,21 @@
const toPath = compile(path)
return toPath(route.params)
}
+// 面包屑跳转
+const breadcrumbTo = (path: any) => {
+ router.push(path.path)
+}
+// 关闭面包屑
+const closePage = (path: any) => {
+ menuStore.removeBreadcrumb(path)
+ if (routeInfo.value.path === path.path) {
+ router.push({
+ path: breadcrumbList.value.length ? breadcrumbList.value[0].path : '/home/index',
+ // proxy.hasPerm('/dashboard') ? '/home/index' : '/'
+ //
+ })
+ }
+}
@@ -54,16 +89,38 @@
>
-
@@ -73,6 +130,68 @@
diff --git a/src/assets/icons/close.svg b/src/assets/icons/close.svg
new file mode 100644
index 0000000..fe18fcc
--- /dev/null
+++ b/src/assets/icons/close.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/icons/icon-home.svg b/src/assets/icons/icon-home.svg
new file mode 100644
index 0000000..ce022bf
--- /dev/null
+++ b/src/assets/icons/icon-home.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/images/home.png b/src/assets/images/home.png
new file mode 100644
index 0000000..08c451d
--- /dev/null
+++ b/src/assets/images/home.png
Binary files differ
diff --git a/src/components/Echart/BarChartHorizontal.vue b/src/components/Echart/BarChartHorizontal.vue
index ff88935..eac1b25 100644
--- a/src/components/Echart/BarChartHorizontal.vue
+++ b/src/components/Echart/BarChartHorizontal.vue
@@ -160,7 +160,7 @@
},
color: {
type: String,
- default: '#3e29ce',
+ default: '#0d76d4',
},
/**
* 柱子背景颜色
@@ -299,7 +299,7 @@
splitLine: {
show: props.showAxis,
lineStyle: {
- color: ['#bfbfbf'],
+ color: ['#ccc'],
type: 'dashed',
},
},
@@ -365,23 +365,24 @@
type: 'bar',
colorBy: props.colorBy,
label: {
- normal: {
- show: props.showLabel,
- color: props.labelColor,
- // position: 'right',
- fontSize: 15,
- formatter: props.labelFormatter,
- // align: 'left',
- // verticalAlign: 'middle',
- },
+ show: true,
+ // normal: {
+ // show: true,
+ color: props.labelColor,
+ position: 'right',
+ fontSize: 15,
+ // formatter: props.labelFormatter,
+ // align: 'left',
+ verticalAlign: 'middle',
},
+ // },
showBackground: true,
backgroundStyle: {
color: props.backgroundColor,
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
itemStyle: {
- color: props.color,
+ color: '#2D8CF0',
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
data: item.data,
@@ -399,7 +400,7 @@
else {
chartWidth = chartWidth - 80
}
- series.label.normal!.position = [chartWidth, '50%']
+ // series.label.normal!.position = [chartWidth, '50%']
}
// 如果开启渐变
if (props.gradient && props.colors.length > 0) {
@@ -435,6 +436,7 @@
console.log(newSeries)
option.series = newSeries
}
+ console.log(option, 'option')
return option
}
// 初始化图表
diff --git a/src/components/NormalTable/index.vue b/src/components/NormalTable/index.vue
index 7ee9d06..4c33d8b 100644
--- a/src/components/NormalTable/index.vue
+++ b/src/components/NormalTable/index.vue
@@ -463,7 +463,7 @@
}
.follow-link {
- color: #3d7eff;
+ color: #0d76d4;
cursor: pointer;
&:hover {
diff --git a/src/components/map/index.vue b/src/components/map/index.vue
index 70a8abe..55943a0 100644
--- a/src/components/map/index.vue
+++ b/src/components/map/index.vue
@@ -566,7 +566,7 @@
})
// 聚合点小于11时不聚合
- cluster.value.setMinClusterSize(11)
+ cluster.value.setMinClusterSize(40)
}
const removeCluster = () => {
if (cluster.value) {
diff --git a/src/layouts/components/Header/index.vue b/src/layouts/components/Header/index.vue
index 88abc48..b159b77 100644
--- a/src/layouts/components/Header/index.vue
+++ b/src/layouts/components/Header/index.vue
@@ -65,7 +65,7 @@
height: var(--g-header-height);
color: var(--g-header-color);
background-color: var(--g-header-bg);
- background-image: linear-gradient(90deg, #71b5ff 30%, #3d7eff);
+ background-image: linear-gradient(90deg, #0d76d4 30%, #0d76d4);
transition: background-color 0.3s, var(--el-transition-color);
.header-container {
diff --git a/src/layouts/components/SidebarItem/index.vue b/src/layouts/components/SidebarItem/index.vue
index 8f0cd16..30038a2 100644
--- a/src/layouts/components/SidebarItem/index.vue
+++ b/src/layouts/components/SidebarItem/index.vue
@@ -146,8 +146,10 @@
background-color: var(--g-sub-sidebar-menu-bg) !important;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #4878ca !important;
}
}
}
@@ -157,22 +159,25 @@
color: var(--g-sub-sidebar-menu-color) !important;
background: transparent !important;
height: 40px;
- // line-height: 40px;
line-height: 20px;
margin: 4px 0;
border-radius: 7px;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
}
}
.el-menu-item.is-active,
.el-menu--collapse .el-sub-menu.is-active > .el-sub-menu__title,
.el-sub-menu .el-menu--inline .el-menu-item.is-active {
- color: var(--g-sub-sidebar-menu-active-color) !important;
- background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ // color: var(--g-sub-sidebar-menu-active-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
.icon,
.el-sub-menu__icon-arrow {
diff --git a/src/layouts/components/SubSidebar/index.vue b/src/layouts/components/SubSidebar/index.vue
index 20ef219..a7b717a 100644
--- a/src/layouts/components/SubSidebar/index.vue
+++ b/src/layouts/components/SubSidebar/index.vue
@@ -56,8 +56,8 @@
left: 0;
top: 0;
bottom: 0;
- background-color: var(--g-sub-sidebar-bg);
- background-image: linear-gradient(180deg, #71b5ff, #4384ff);
+ background-color: #0d76d4;
+ background-image: linear-gradient(180deg, #0d76d4, #0d76d4);
box-shadow: 10px 0 10px -10px var(--g-box-shadow-color);
transition: background-color 0.3s, var(--el-transition-box-shadow), left 0.3s, width 0.3s;
diff --git a/src/layouts/components/Topbar/index.vue b/src/layouts/components/Topbar/index.vue
index 4e3120e..e5dfb95 100644
--- a/src/layouts/components/Topbar/index.vue
+++ b/src/layouts/components/Topbar/index.vue
@@ -2,32 +2,52 @@
import { compile } from 'path-to-regexp'
import Tools from '../Tools/index.vue'
import useSettingsStore from '@/store/modules/settings'
-
+import useMenuStore from '@/store/modules/menu'
const route = useRoute()
-
+const router = useRouter()
+const menuStore = useMenuStore()
const settingsStore = useSettingsStore()
-
+const { proxy } = getCurrentInstance() as any
const enableSubMenuCollapseButton = computed(() => {
return settingsStore.mode === 'mobile' || (
['side', 'head', 'single'].includes(settingsStore.menu.menuMode)
- && settingsStore.menu.enableSubMenuCollapseButton
+ && settingsStore.menu.enableSubMenuCollapseButton
)
})
-const breadcrumbList = computed(() => {
- const breadcrumbList = []
- if (settingsStore.dashboard.enable) {
- breadcrumbList.push({
- path: '/dashboard',
- title: settingsStore.dashboard.title,
- })
+// const breadcrumbList = computed(() => {
+// const breadcrumbList = []
+// if (settingsStore.dashboard.enable) {
+// breadcrumbList.push({
+// path: '/dashboard',
+// title: settingsStore.dashboard.title,
+// })
+// }
+// if (route.meta.breadcrumbNeste) {
+// breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
+// }
+// return breadcrumbList
+// })
+const publicPath = window.location.href.split('#')[0]
+const breadcrumbList = ref
(menuStore.breadcrumbList)
+const routeInfo = ref(route)
+watch(() => menuStore.breadcrumbList, (newVal) => {
+ if (newVal.length) {
+ breadcrumbList.value = menuStore.breadcrumbList
+ console.log(breadcrumbList.value, 'breadcrumbList.value')
}
- if (route.meta.breadcrumbNeste) {
- breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
- }
- return breadcrumbList
+}, {
+ deep: true,
+ immediate: true,
})
-
+watch(() => route.path, (newVal) => {
+ // console.log(route, '当前路由信息')
+ routeInfo.value = route
+},
+{
+ deep: true,
+ // immediate: true,
+})
const scrollTop = ref(0)
onMounted(() => {
window.addEventListener('scroll', onScroll)
@@ -43,6 +63,21 @@
const toPath = compile(path)
return toPath(route.params)
}
+// 面包屑跳转
+const breadcrumbTo = (path: any) => {
+ router.push(path.path)
+}
+// 关闭面包屑
+const closePage = (path: any) => {
+ menuStore.removeBreadcrumb(path)
+ if (routeInfo.value.path === path.path) {
+ router.push({
+ path: breadcrumbList.value.length ? breadcrumbList.value[0].path : '/home/index',
+ // proxy.hasPerm('/dashboard') ? '/home/index' : '/'
+ //
+ })
+ }
+}
@@ -54,16 +89,38 @@
>
-
@@ -73,6 +130,68 @@
diff --git a/src/assets/icons/close.svg b/src/assets/icons/close.svg
new file mode 100644
index 0000000..fe18fcc
--- /dev/null
+++ b/src/assets/icons/close.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/icons/icon-home.svg b/src/assets/icons/icon-home.svg
new file mode 100644
index 0000000..ce022bf
--- /dev/null
+++ b/src/assets/icons/icon-home.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/images/home.png b/src/assets/images/home.png
new file mode 100644
index 0000000..08c451d
--- /dev/null
+++ b/src/assets/images/home.png
Binary files differ
diff --git a/src/components/Echart/BarChartHorizontal.vue b/src/components/Echart/BarChartHorizontal.vue
index ff88935..eac1b25 100644
--- a/src/components/Echart/BarChartHorizontal.vue
+++ b/src/components/Echart/BarChartHorizontal.vue
@@ -160,7 +160,7 @@
},
color: {
type: String,
- default: '#3e29ce',
+ default: '#0d76d4',
},
/**
* 柱子背景颜色
@@ -299,7 +299,7 @@
splitLine: {
show: props.showAxis,
lineStyle: {
- color: ['#bfbfbf'],
+ color: ['#ccc'],
type: 'dashed',
},
},
@@ -365,23 +365,24 @@
type: 'bar',
colorBy: props.colorBy,
label: {
- normal: {
- show: props.showLabel,
- color: props.labelColor,
- // position: 'right',
- fontSize: 15,
- formatter: props.labelFormatter,
- // align: 'left',
- // verticalAlign: 'middle',
- },
+ show: true,
+ // normal: {
+ // show: true,
+ color: props.labelColor,
+ position: 'right',
+ fontSize: 15,
+ // formatter: props.labelFormatter,
+ // align: 'left',
+ verticalAlign: 'middle',
},
+ // },
showBackground: true,
backgroundStyle: {
color: props.backgroundColor,
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
itemStyle: {
- color: props.color,
+ color: '#2D8CF0',
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
data: item.data,
@@ -399,7 +400,7 @@
else {
chartWidth = chartWidth - 80
}
- series.label.normal!.position = [chartWidth, '50%']
+ // series.label.normal!.position = [chartWidth, '50%']
}
// 如果开启渐变
if (props.gradient && props.colors.length > 0) {
@@ -435,6 +436,7 @@
console.log(newSeries)
option.series = newSeries
}
+ console.log(option, 'option')
return option
}
// 初始化图表
diff --git a/src/components/NormalTable/index.vue b/src/components/NormalTable/index.vue
index 7ee9d06..4c33d8b 100644
--- a/src/components/NormalTable/index.vue
+++ b/src/components/NormalTable/index.vue
@@ -463,7 +463,7 @@
}
.follow-link {
- color: #3d7eff;
+ color: #0d76d4;
cursor: pointer;
&:hover {
diff --git a/src/components/map/index.vue b/src/components/map/index.vue
index 70a8abe..55943a0 100644
--- a/src/components/map/index.vue
+++ b/src/components/map/index.vue
@@ -566,7 +566,7 @@
})
// 聚合点小于11时不聚合
- cluster.value.setMinClusterSize(11)
+ cluster.value.setMinClusterSize(40)
}
const removeCluster = () => {
if (cluster.value) {
diff --git a/src/layouts/components/Header/index.vue b/src/layouts/components/Header/index.vue
index 88abc48..b159b77 100644
--- a/src/layouts/components/Header/index.vue
+++ b/src/layouts/components/Header/index.vue
@@ -65,7 +65,7 @@
height: var(--g-header-height);
color: var(--g-header-color);
background-color: var(--g-header-bg);
- background-image: linear-gradient(90deg, #71b5ff 30%, #3d7eff);
+ background-image: linear-gradient(90deg, #0d76d4 30%, #0d76d4);
transition: background-color 0.3s, var(--el-transition-color);
.header-container {
diff --git a/src/layouts/components/SidebarItem/index.vue b/src/layouts/components/SidebarItem/index.vue
index 8f0cd16..30038a2 100644
--- a/src/layouts/components/SidebarItem/index.vue
+++ b/src/layouts/components/SidebarItem/index.vue
@@ -146,8 +146,10 @@
background-color: var(--g-sub-sidebar-menu-bg) !important;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #4878ca !important;
}
}
}
@@ -157,22 +159,25 @@
color: var(--g-sub-sidebar-menu-color) !important;
background: transparent !important;
height: 40px;
- // line-height: 40px;
line-height: 20px;
margin: 4px 0;
border-radius: 7px;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
}
}
.el-menu-item.is-active,
.el-menu--collapse .el-sub-menu.is-active > .el-sub-menu__title,
.el-sub-menu .el-menu--inline .el-menu-item.is-active {
- color: var(--g-sub-sidebar-menu-active-color) !important;
- background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ // color: var(--g-sub-sidebar-menu-active-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
.icon,
.el-sub-menu__icon-arrow {
diff --git a/src/layouts/components/SubSidebar/index.vue b/src/layouts/components/SubSidebar/index.vue
index 20ef219..a7b717a 100644
--- a/src/layouts/components/SubSidebar/index.vue
+++ b/src/layouts/components/SubSidebar/index.vue
@@ -56,8 +56,8 @@
left: 0;
top: 0;
bottom: 0;
- background-color: var(--g-sub-sidebar-bg);
- background-image: linear-gradient(180deg, #71b5ff, #4384ff);
+ background-color: #0d76d4;
+ background-image: linear-gradient(180deg, #0d76d4, #0d76d4);
box-shadow: 10px 0 10px -10px var(--g-box-shadow-color);
transition: background-color 0.3s, var(--el-transition-box-shadow), left 0.3s, width 0.3s;
diff --git a/src/layouts/components/Topbar/index.vue b/src/layouts/components/Topbar/index.vue
index 4e3120e..e5dfb95 100644
--- a/src/layouts/components/Topbar/index.vue
+++ b/src/layouts/components/Topbar/index.vue
@@ -2,32 +2,52 @@
import { compile } from 'path-to-regexp'
import Tools from '../Tools/index.vue'
import useSettingsStore from '@/store/modules/settings'
-
+import useMenuStore from '@/store/modules/menu'
const route = useRoute()
-
+const router = useRouter()
+const menuStore = useMenuStore()
const settingsStore = useSettingsStore()
-
+const { proxy } = getCurrentInstance() as any
const enableSubMenuCollapseButton = computed(() => {
return settingsStore.mode === 'mobile' || (
['side', 'head', 'single'].includes(settingsStore.menu.menuMode)
- && settingsStore.menu.enableSubMenuCollapseButton
+ && settingsStore.menu.enableSubMenuCollapseButton
)
})
-const breadcrumbList = computed(() => {
- const breadcrumbList = []
- if (settingsStore.dashboard.enable) {
- breadcrumbList.push({
- path: '/dashboard',
- title: settingsStore.dashboard.title,
- })
+// const breadcrumbList = computed(() => {
+// const breadcrumbList = []
+// if (settingsStore.dashboard.enable) {
+// breadcrumbList.push({
+// path: '/dashboard',
+// title: settingsStore.dashboard.title,
+// })
+// }
+// if (route.meta.breadcrumbNeste) {
+// breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
+// }
+// return breadcrumbList
+// })
+const publicPath = window.location.href.split('#')[0]
+const breadcrumbList = ref
(menuStore.breadcrumbList)
+const routeInfo = ref(route)
+watch(() => menuStore.breadcrumbList, (newVal) => {
+ if (newVal.length) {
+ breadcrumbList.value = menuStore.breadcrumbList
+ console.log(breadcrumbList.value, 'breadcrumbList.value')
}
- if (route.meta.breadcrumbNeste) {
- breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
- }
- return breadcrumbList
+}, {
+ deep: true,
+ immediate: true,
})
-
+watch(() => route.path, (newVal) => {
+ // console.log(route, '当前路由信息')
+ routeInfo.value = route
+},
+{
+ deep: true,
+ // immediate: true,
+})
const scrollTop = ref(0)
onMounted(() => {
window.addEventListener('scroll', onScroll)
@@ -43,6 +63,21 @@
const toPath = compile(path)
return toPath(route.params)
}
+// 面包屑跳转
+const breadcrumbTo = (path: any) => {
+ router.push(path.path)
+}
+// 关闭面包屑
+const closePage = (path: any) => {
+ menuStore.removeBreadcrumb(path)
+ if (routeInfo.value.path === path.path) {
+ router.push({
+ path: breadcrumbList.value.length ? breadcrumbList.value[0].path : '/home/index',
+ // proxy.hasPerm('/dashboard') ? '/home/index' : '/'
+ //
+ })
+ }
+}
@@ -54,16 +89,38 @@
>
-
@@ -73,6 +130,68 @@
diff --git a/src/assets/icons/close.svg b/src/assets/icons/close.svg
new file mode 100644
index 0000000..fe18fcc
--- /dev/null
+++ b/src/assets/icons/close.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/icons/icon-home.svg b/src/assets/icons/icon-home.svg
new file mode 100644
index 0000000..ce022bf
--- /dev/null
+++ b/src/assets/icons/icon-home.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/images/home.png b/src/assets/images/home.png
new file mode 100644
index 0000000..08c451d
--- /dev/null
+++ b/src/assets/images/home.png
Binary files differ
diff --git a/src/components/Echart/BarChartHorizontal.vue b/src/components/Echart/BarChartHorizontal.vue
index ff88935..eac1b25 100644
--- a/src/components/Echart/BarChartHorizontal.vue
+++ b/src/components/Echart/BarChartHorizontal.vue
@@ -160,7 +160,7 @@
},
color: {
type: String,
- default: '#3e29ce',
+ default: '#0d76d4',
},
/**
* 柱子背景颜色
@@ -299,7 +299,7 @@
splitLine: {
show: props.showAxis,
lineStyle: {
- color: ['#bfbfbf'],
+ color: ['#ccc'],
type: 'dashed',
},
},
@@ -365,23 +365,24 @@
type: 'bar',
colorBy: props.colorBy,
label: {
- normal: {
- show: props.showLabel,
- color: props.labelColor,
- // position: 'right',
- fontSize: 15,
- formatter: props.labelFormatter,
- // align: 'left',
- // verticalAlign: 'middle',
- },
+ show: true,
+ // normal: {
+ // show: true,
+ color: props.labelColor,
+ position: 'right',
+ fontSize: 15,
+ // formatter: props.labelFormatter,
+ // align: 'left',
+ verticalAlign: 'middle',
},
+ // },
showBackground: true,
backgroundStyle: {
color: props.backgroundColor,
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
itemStyle: {
- color: props.color,
+ color: '#2D8CF0',
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
data: item.data,
@@ -399,7 +400,7 @@
else {
chartWidth = chartWidth - 80
}
- series.label.normal!.position = [chartWidth, '50%']
+ // series.label.normal!.position = [chartWidth, '50%']
}
// 如果开启渐变
if (props.gradient && props.colors.length > 0) {
@@ -435,6 +436,7 @@
console.log(newSeries)
option.series = newSeries
}
+ console.log(option, 'option')
return option
}
// 初始化图表
diff --git a/src/components/NormalTable/index.vue b/src/components/NormalTable/index.vue
index 7ee9d06..4c33d8b 100644
--- a/src/components/NormalTable/index.vue
+++ b/src/components/NormalTable/index.vue
@@ -463,7 +463,7 @@
}
.follow-link {
- color: #3d7eff;
+ color: #0d76d4;
cursor: pointer;
&:hover {
diff --git a/src/components/map/index.vue b/src/components/map/index.vue
index 70a8abe..55943a0 100644
--- a/src/components/map/index.vue
+++ b/src/components/map/index.vue
@@ -566,7 +566,7 @@
})
// 聚合点小于11时不聚合
- cluster.value.setMinClusterSize(11)
+ cluster.value.setMinClusterSize(40)
}
const removeCluster = () => {
if (cluster.value) {
diff --git a/src/layouts/components/Header/index.vue b/src/layouts/components/Header/index.vue
index 88abc48..b159b77 100644
--- a/src/layouts/components/Header/index.vue
+++ b/src/layouts/components/Header/index.vue
@@ -65,7 +65,7 @@
height: var(--g-header-height);
color: var(--g-header-color);
background-color: var(--g-header-bg);
- background-image: linear-gradient(90deg, #71b5ff 30%, #3d7eff);
+ background-image: linear-gradient(90deg, #0d76d4 30%, #0d76d4);
transition: background-color 0.3s, var(--el-transition-color);
.header-container {
diff --git a/src/layouts/components/SidebarItem/index.vue b/src/layouts/components/SidebarItem/index.vue
index 8f0cd16..30038a2 100644
--- a/src/layouts/components/SidebarItem/index.vue
+++ b/src/layouts/components/SidebarItem/index.vue
@@ -146,8 +146,10 @@
background-color: var(--g-sub-sidebar-menu-bg) !important;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #4878ca !important;
}
}
}
@@ -157,22 +159,25 @@
color: var(--g-sub-sidebar-menu-color) !important;
background: transparent !important;
height: 40px;
- // line-height: 40px;
line-height: 20px;
margin: 4px 0;
border-radius: 7px;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
}
}
.el-menu-item.is-active,
.el-menu--collapse .el-sub-menu.is-active > .el-sub-menu__title,
.el-sub-menu .el-menu--inline .el-menu-item.is-active {
- color: var(--g-sub-sidebar-menu-active-color) !important;
- background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ // color: var(--g-sub-sidebar-menu-active-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
.icon,
.el-sub-menu__icon-arrow {
diff --git a/src/layouts/components/SubSidebar/index.vue b/src/layouts/components/SubSidebar/index.vue
index 20ef219..a7b717a 100644
--- a/src/layouts/components/SubSidebar/index.vue
+++ b/src/layouts/components/SubSidebar/index.vue
@@ -56,8 +56,8 @@
left: 0;
top: 0;
bottom: 0;
- background-color: var(--g-sub-sidebar-bg);
- background-image: linear-gradient(180deg, #71b5ff, #4384ff);
+ background-color: #0d76d4;
+ background-image: linear-gradient(180deg, #0d76d4, #0d76d4);
box-shadow: 10px 0 10px -10px var(--g-box-shadow-color);
transition: background-color 0.3s, var(--el-transition-box-shadow), left 0.3s, width 0.3s;
diff --git a/src/layouts/components/Topbar/index.vue b/src/layouts/components/Topbar/index.vue
index 4e3120e..e5dfb95 100644
--- a/src/layouts/components/Topbar/index.vue
+++ b/src/layouts/components/Topbar/index.vue
@@ -2,32 +2,52 @@
import { compile } from 'path-to-regexp'
import Tools from '../Tools/index.vue'
import useSettingsStore from '@/store/modules/settings'
-
+import useMenuStore from '@/store/modules/menu'
const route = useRoute()
-
+const router = useRouter()
+const menuStore = useMenuStore()
const settingsStore = useSettingsStore()
-
+const { proxy } = getCurrentInstance() as any
const enableSubMenuCollapseButton = computed(() => {
return settingsStore.mode === 'mobile' || (
['side', 'head', 'single'].includes(settingsStore.menu.menuMode)
- && settingsStore.menu.enableSubMenuCollapseButton
+ && settingsStore.menu.enableSubMenuCollapseButton
)
})
-const breadcrumbList = computed(() => {
- const breadcrumbList = []
- if (settingsStore.dashboard.enable) {
- breadcrumbList.push({
- path: '/dashboard',
- title: settingsStore.dashboard.title,
- })
+// const breadcrumbList = computed(() => {
+// const breadcrumbList = []
+// if (settingsStore.dashboard.enable) {
+// breadcrumbList.push({
+// path: '/dashboard',
+// title: settingsStore.dashboard.title,
+// })
+// }
+// if (route.meta.breadcrumbNeste) {
+// breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
+// }
+// return breadcrumbList
+// })
+const publicPath = window.location.href.split('#')[0]
+const breadcrumbList = ref
(menuStore.breadcrumbList)
+const routeInfo = ref(route)
+watch(() => menuStore.breadcrumbList, (newVal) => {
+ if (newVal.length) {
+ breadcrumbList.value = menuStore.breadcrumbList
+ console.log(breadcrumbList.value, 'breadcrumbList.value')
}
- if (route.meta.breadcrumbNeste) {
- breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
- }
- return breadcrumbList
+}, {
+ deep: true,
+ immediate: true,
})
-
+watch(() => route.path, (newVal) => {
+ // console.log(route, '当前路由信息')
+ routeInfo.value = route
+},
+{
+ deep: true,
+ // immediate: true,
+})
const scrollTop = ref(0)
onMounted(() => {
window.addEventListener('scroll', onScroll)
@@ -43,6 +63,21 @@
const toPath = compile(path)
return toPath(route.params)
}
+// 面包屑跳转
+const breadcrumbTo = (path: any) => {
+ router.push(path.path)
+}
+// 关闭面包屑
+const closePage = (path: any) => {
+ menuStore.removeBreadcrumb(path)
+ if (routeInfo.value.path === path.path) {
+ router.push({
+ path: breadcrumbList.value.length ? breadcrumbList.value[0].path : '/home/index',
+ // proxy.hasPerm('/dashboard') ? '/home/index' : '/'
+ //
+ })
+ }
+}
@@ -54,16 +89,38 @@
>
-
@@ -73,6 +130,68 @@
diff --git a/src/assets/icons/close.svg b/src/assets/icons/close.svg
new file mode 100644
index 0000000..fe18fcc
--- /dev/null
+++ b/src/assets/icons/close.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/icons/icon-home.svg b/src/assets/icons/icon-home.svg
new file mode 100644
index 0000000..ce022bf
--- /dev/null
+++ b/src/assets/icons/icon-home.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/images/home.png b/src/assets/images/home.png
new file mode 100644
index 0000000..08c451d
--- /dev/null
+++ b/src/assets/images/home.png
Binary files differ
diff --git a/src/components/Echart/BarChartHorizontal.vue b/src/components/Echart/BarChartHorizontal.vue
index ff88935..eac1b25 100644
--- a/src/components/Echart/BarChartHorizontal.vue
+++ b/src/components/Echart/BarChartHorizontal.vue
@@ -160,7 +160,7 @@
},
color: {
type: String,
- default: '#3e29ce',
+ default: '#0d76d4',
},
/**
* 柱子背景颜色
@@ -299,7 +299,7 @@
splitLine: {
show: props.showAxis,
lineStyle: {
- color: ['#bfbfbf'],
+ color: ['#ccc'],
type: 'dashed',
},
},
@@ -365,23 +365,24 @@
type: 'bar',
colorBy: props.colorBy,
label: {
- normal: {
- show: props.showLabel,
- color: props.labelColor,
- // position: 'right',
- fontSize: 15,
- formatter: props.labelFormatter,
- // align: 'left',
- // verticalAlign: 'middle',
- },
+ show: true,
+ // normal: {
+ // show: true,
+ color: props.labelColor,
+ position: 'right',
+ fontSize: 15,
+ // formatter: props.labelFormatter,
+ // align: 'left',
+ verticalAlign: 'middle',
},
+ // },
showBackground: true,
backgroundStyle: {
color: props.backgroundColor,
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
itemStyle: {
- color: props.color,
+ color: '#2D8CF0',
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
data: item.data,
@@ -399,7 +400,7 @@
else {
chartWidth = chartWidth - 80
}
- series.label.normal!.position = [chartWidth, '50%']
+ // series.label.normal!.position = [chartWidth, '50%']
}
// 如果开启渐变
if (props.gradient && props.colors.length > 0) {
@@ -435,6 +436,7 @@
console.log(newSeries)
option.series = newSeries
}
+ console.log(option, 'option')
return option
}
// 初始化图表
diff --git a/src/components/NormalTable/index.vue b/src/components/NormalTable/index.vue
index 7ee9d06..4c33d8b 100644
--- a/src/components/NormalTable/index.vue
+++ b/src/components/NormalTable/index.vue
@@ -463,7 +463,7 @@
}
.follow-link {
- color: #3d7eff;
+ color: #0d76d4;
cursor: pointer;
&:hover {
diff --git a/src/components/map/index.vue b/src/components/map/index.vue
index 70a8abe..55943a0 100644
--- a/src/components/map/index.vue
+++ b/src/components/map/index.vue
@@ -566,7 +566,7 @@
})
// 聚合点小于11时不聚合
- cluster.value.setMinClusterSize(11)
+ cluster.value.setMinClusterSize(40)
}
const removeCluster = () => {
if (cluster.value) {
diff --git a/src/layouts/components/Header/index.vue b/src/layouts/components/Header/index.vue
index 88abc48..b159b77 100644
--- a/src/layouts/components/Header/index.vue
+++ b/src/layouts/components/Header/index.vue
@@ -65,7 +65,7 @@
height: var(--g-header-height);
color: var(--g-header-color);
background-color: var(--g-header-bg);
- background-image: linear-gradient(90deg, #71b5ff 30%, #3d7eff);
+ background-image: linear-gradient(90deg, #0d76d4 30%, #0d76d4);
transition: background-color 0.3s, var(--el-transition-color);
.header-container {
diff --git a/src/layouts/components/SidebarItem/index.vue b/src/layouts/components/SidebarItem/index.vue
index 8f0cd16..30038a2 100644
--- a/src/layouts/components/SidebarItem/index.vue
+++ b/src/layouts/components/SidebarItem/index.vue
@@ -146,8 +146,10 @@
background-color: var(--g-sub-sidebar-menu-bg) !important;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #4878ca !important;
}
}
}
@@ -157,22 +159,25 @@
color: var(--g-sub-sidebar-menu-color) !important;
background: transparent !important;
height: 40px;
- // line-height: 40px;
line-height: 20px;
margin: 4px 0;
border-radius: 7px;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
}
}
.el-menu-item.is-active,
.el-menu--collapse .el-sub-menu.is-active > .el-sub-menu__title,
.el-sub-menu .el-menu--inline .el-menu-item.is-active {
- color: var(--g-sub-sidebar-menu-active-color) !important;
- background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ // color: var(--g-sub-sidebar-menu-active-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
.icon,
.el-sub-menu__icon-arrow {
diff --git a/src/layouts/components/SubSidebar/index.vue b/src/layouts/components/SubSidebar/index.vue
index 20ef219..a7b717a 100644
--- a/src/layouts/components/SubSidebar/index.vue
+++ b/src/layouts/components/SubSidebar/index.vue
@@ -56,8 +56,8 @@
left: 0;
top: 0;
bottom: 0;
- background-color: var(--g-sub-sidebar-bg);
- background-image: linear-gradient(180deg, #71b5ff, #4384ff);
+ background-color: #0d76d4;
+ background-image: linear-gradient(180deg, #0d76d4, #0d76d4);
box-shadow: 10px 0 10px -10px var(--g-box-shadow-color);
transition: background-color 0.3s, var(--el-transition-box-shadow), left 0.3s, width 0.3s;
diff --git a/src/layouts/components/Topbar/index.vue b/src/layouts/components/Topbar/index.vue
index 4e3120e..e5dfb95 100644
--- a/src/layouts/components/Topbar/index.vue
+++ b/src/layouts/components/Topbar/index.vue
@@ -2,32 +2,52 @@
import { compile } from 'path-to-regexp'
import Tools from '../Tools/index.vue'
import useSettingsStore from '@/store/modules/settings'
-
+import useMenuStore from '@/store/modules/menu'
const route = useRoute()
-
+const router = useRouter()
+const menuStore = useMenuStore()
const settingsStore = useSettingsStore()
-
+const { proxy } = getCurrentInstance() as any
const enableSubMenuCollapseButton = computed(() => {
return settingsStore.mode === 'mobile' || (
['side', 'head', 'single'].includes(settingsStore.menu.menuMode)
- && settingsStore.menu.enableSubMenuCollapseButton
+ && settingsStore.menu.enableSubMenuCollapseButton
)
})
-const breadcrumbList = computed(() => {
- const breadcrumbList = []
- if (settingsStore.dashboard.enable) {
- breadcrumbList.push({
- path: '/dashboard',
- title: settingsStore.dashboard.title,
- })
+// const breadcrumbList = computed(() => {
+// const breadcrumbList = []
+// if (settingsStore.dashboard.enable) {
+// breadcrumbList.push({
+// path: '/dashboard',
+// title: settingsStore.dashboard.title,
+// })
+// }
+// if (route.meta.breadcrumbNeste) {
+// breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
+// }
+// return breadcrumbList
+// })
+const publicPath = window.location.href.split('#')[0]
+const breadcrumbList = ref
(menuStore.breadcrumbList)
+const routeInfo = ref(route)
+watch(() => menuStore.breadcrumbList, (newVal) => {
+ if (newVal.length) {
+ breadcrumbList.value = menuStore.breadcrumbList
+ console.log(breadcrumbList.value, 'breadcrumbList.value')
}
- if (route.meta.breadcrumbNeste) {
- breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
- }
- return breadcrumbList
+}, {
+ deep: true,
+ immediate: true,
})
-
+watch(() => route.path, (newVal) => {
+ // console.log(route, '当前路由信息')
+ routeInfo.value = route
+},
+{
+ deep: true,
+ // immediate: true,
+})
const scrollTop = ref(0)
onMounted(() => {
window.addEventListener('scroll', onScroll)
@@ -43,6 +63,21 @@
const toPath = compile(path)
return toPath(route.params)
}
+// 面包屑跳转
+const breadcrumbTo = (path: any) => {
+ router.push(path.path)
+}
+// 关闭面包屑
+const closePage = (path: any) => {
+ menuStore.removeBreadcrumb(path)
+ if (routeInfo.value.path === path.path) {
+ router.push({
+ path: breadcrumbList.value.length ? breadcrumbList.value[0].path : '/home/index',
+ // proxy.hasPerm('/dashboard') ? '/home/index' : '/'
+ //
+ })
+ }
+}
@@ -54,16 +89,38 @@
>
-
@@ -73,6 +130,68 @@
diff --git a/src/assets/icons/close.svg b/src/assets/icons/close.svg
new file mode 100644
index 0000000..fe18fcc
--- /dev/null
+++ b/src/assets/icons/close.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/icons/icon-home.svg b/src/assets/icons/icon-home.svg
new file mode 100644
index 0000000..ce022bf
--- /dev/null
+++ b/src/assets/icons/icon-home.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/images/home.png b/src/assets/images/home.png
new file mode 100644
index 0000000..08c451d
--- /dev/null
+++ b/src/assets/images/home.png
Binary files differ
diff --git a/src/components/Echart/BarChartHorizontal.vue b/src/components/Echart/BarChartHorizontal.vue
index ff88935..eac1b25 100644
--- a/src/components/Echart/BarChartHorizontal.vue
+++ b/src/components/Echart/BarChartHorizontal.vue
@@ -160,7 +160,7 @@
},
color: {
type: String,
- default: '#3e29ce',
+ default: '#0d76d4',
},
/**
* 柱子背景颜色
@@ -299,7 +299,7 @@
splitLine: {
show: props.showAxis,
lineStyle: {
- color: ['#bfbfbf'],
+ color: ['#ccc'],
type: 'dashed',
},
},
@@ -365,23 +365,24 @@
type: 'bar',
colorBy: props.colorBy,
label: {
- normal: {
- show: props.showLabel,
- color: props.labelColor,
- // position: 'right',
- fontSize: 15,
- formatter: props.labelFormatter,
- // align: 'left',
- // verticalAlign: 'middle',
- },
+ show: true,
+ // normal: {
+ // show: true,
+ color: props.labelColor,
+ position: 'right',
+ fontSize: 15,
+ // formatter: props.labelFormatter,
+ // align: 'left',
+ verticalAlign: 'middle',
},
+ // },
showBackground: true,
backgroundStyle: {
color: props.backgroundColor,
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
itemStyle: {
- color: props.color,
+ color: '#2D8CF0',
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
data: item.data,
@@ -399,7 +400,7 @@
else {
chartWidth = chartWidth - 80
}
- series.label.normal!.position = [chartWidth, '50%']
+ // series.label.normal!.position = [chartWidth, '50%']
}
// 如果开启渐变
if (props.gradient && props.colors.length > 0) {
@@ -435,6 +436,7 @@
console.log(newSeries)
option.series = newSeries
}
+ console.log(option, 'option')
return option
}
// 初始化图表
diff --git a/src/components/NormalTable/index.vue b/src/components/NormalTable/index.vue
index 7ee9d06..4c33d8b 100644
--- a/src/components/NormalTable/index.vue
+++ b/src/components/NormalTable/index.vue
@@ -463,7 +463,7 @@
}
.follow-link {
- color: #3d7eff;
+ color: #0d76d4;
cursor: pointer;
&:hover {
diff --git a/src/components/map/index.vue b/src/components/map/index.vue
index 70a8abe..55943a0 100644
--- a/src/components/map/index.vue
+++ b/src/components/map/index.vue
@@ -566,7 +566,7 @@
})
// 聚合点小于11时不聚合
- cluster.value.setMinClusterSize(11)
+ cluster.value.setMinClusterSize(40)
}
const removeCluster = () => {
if (cluster.value) {
diff --git a/src/layouts/components/Header/index.vue b/src/layouts/components/Header/index.vue
index 88abc48..b159b77 100644
--- a/src/layouts/components/Header/index.vue
+++ b/src/layouts/components/Header/index.vue
@@ -65,7 +65,7 @@
height: var(--g-header-height);
color: var(--g-header-color);
background-color: var(--g-header-bg);
- background-image: linear-gradient(90deg, #71b5ff 30%, #3d7eff);
+ background-image: linear-gradient(90deg, #0d76d4 30%, #0d76d4);
transition: background-color 0.3s, var(--el-transition-color);
.header-container {
diff --git a/src/layouts/components/SidebarItem/index.vue b/src/layouts/components/SidebarItem/index.vue
index 8f0cd16..30038a2 100644
--- a/src/layouts/components/SidebarItem/index.vue
+++ b/src/layouts/components/SidebarItem/index.vue
@@ -146,8 +146,10 @@
background-color: var(--g-sub-sidebar-menu-bg) !important;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #4878ca !important;
}
}
}
@@ -157,22 +159,25 @@
color: var(--g-sub-sidebar-menu-color) !important;
background: transparent !important;
height: 40px;
- // line-height: 40px;
line-height: 20px;
margin: 4px 0;
border-radius: 7px;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
}
}
.el-menu-item.is-active,
.el-menu--collapse .el-sub-menu.is-active > .el-sub-menu__title,
.el-sub-menu .el-menu--inline .el-menu-item.is-active {
- color: var(--g-sub-sidebar-menu-active-color) !important;
- background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ // color: var(--g-sub-sidebar-menu-active-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
.icon,
.el-sub-menu__icon-arrow {
diff --git a/src/layouts/components/SubSidebar/index.vue b/src/layouts/components/SubSidebar/index.vue
index 20ef219..a7b717a 100644
--- a/src/layouts/components/SubSidebar/index.vue
+++ b/src/layouts/components/SubSidebar/index.vue
@@ -56,8 +56,8 @@
left: 0;
top: 0;
bottom: 0;
- background-color: var(--g-sub-sidebar-bg);
- background-image: linear-gradient(180deg, #71b5ff, #4384ff);
+ background-color: #0d76d4;
+ background-image: linear-gradient(180deg, #0d76d4, #0d76d4);
box-shadow: 10px 0 10px -10px var(--g-box-shadow-color);
transition: background-color 0.3s, var(--el-transition-box-shadow), left 0.3s, width 0.3s;
diff --git a/src/layouts/components/Topbar/index.vue b/src/layouts/components/Topbar/index.vue
index 4e3120e..e5dfb95 100644
--- a/src/layouts/components/Topbar/index.vue
+++ b/src/layouts/components/Topbar/index.vue
@@ -2,32 +2,52 @@
import { compile } from 'path-to-regexp'
import Tools from '../Tools/index.vue'
import useSettingsStore from '@/store/modules/settings'
-
+import useMenuStore from '@/store/modules/menu'
const route = useRoute()
-
+const router = useRouter()
+const menuStore = useMenuStore()
const settingsStore = useSettingsStore()
-
+const { proxy } = getCurrentInstance() as any
const enableSubMenuCollapseButton = computed(() => {
return settingsStore.mode === 'mobile' || (
['side', 'head', 'single'].includes(settingsStore.menu.menuMode)
- && settingsStore.menu.enableSubMenuCollapseButton
+ && settingsStore.menu.enableSubMenuCollapseButton
)
})
-const breadcrumbList = computed(() => {
- const breadcrumbList = []
- if (settingsStore.dashboard.enable) {
- breadcrumbList.push({
- path: '/dashboard',
- title: settingsStore.dashboard.title,
- })
+// const breadcrumbList = computed(() => {
+// const breadcrumbList = []
+// if (settingsStore.dashboard.enable) {
+// breadcrumbList.push({
+// path: '/dashboard',
+// title: settingsStore.dashboard.title,
+// })
+// }
+// if (route.meta.breadcrumbNeste) {
+// breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
+// }
+// return breadcrumbList
+// })
+const publicPath = window.location.href.split('#')[0]
+const breadcrumbList = ref
(menuStore.breadcrumbList)
+const routeInfo = ref(route)
+watch(() => menuStore.breadcrumbList, (newVal) => {
+ if (newVal.length) {
+ breadcrumbList.value = menuStore.breadcrumbList
+ console.log(breadcrumbList.value, 'breadcrumbList.value')
}
- if (route.meta.breadcrumbNeste) {
- breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
- }
- return breadcrumbList
+}, {
+ deep: true,
+ immediate: true,
})
-
+watch(() => route.path, (newVal) => {
+ // console.log(route, '当前路由信息')
+ routeInfo.value = route
+},
+{
+ deep: true,
+ // immediate: true,
+})
const scrollTop = ref(0)
onMounted(() => {
window.addEventListener('scroll', onScroll)
@@ -43,6 +63,21 @@
const toPath = compile(path)
return toPath(route.params)
}
+// 面包屑跳转
+const breadcrumbTo = (path: any) => {
+ router.push(path.path)
+}
+// 关闭面包屑
+const closePage = (path: any) => {
+ menuStore.removeBreadcrumb(path)
+ if (routeInfo.value.path === path.path) {
+ router.push({
+ path: breadcrumbList.value.length ? breadcrumbList.value[0].path : '/home/index',
+ // proxy.hasPerm('/dashboard') ? '/home/index' : '/'
+ //
+ })
+ }
+}
@@ -54,16 +89,38 @@
>
-
@@ -73,6 +130,68 @@
diff --git a/src/assets/icons/close.svg b/src/assets/icons/close.svg
new file mode 100644
index 0000000..fe18fcc
--- /dev/null
+++ b/src/assets/icons/close.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/icons/icon-home.svg b/src/assets/icons/icon-home.svg
new file mode 100644
index 0000000..ce022bf
--- /dev/null
+++ b/src/assets/icons/icon-home.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/images/home.png b/src/assets/images/home.png
new file mode 100644
index 0000000..08c451d
--- /dev/null
+++ b/src/assets/images/home.png
Binary files differ
diff --git a/src/components/Echart/BarChartHorizontal.vue b/src/components/Echart/BarChartHorizontal.vue
index ff88935..eac1b25 100644
--- a/src/components/Echart/BarChartHorizontal.vue
+++ b/src/components/Echart/BarChartHorizontal.vue
@@ -160,7 +160,7 @@
},
color: {
type: String,
- default: '#3e29ce',
+ default: '#0d76d4',
},
/**
* 柱子背景颜色
@@ -299,7 +299,7 @@
splitLine: {
show: props.showAxis,
lineStyle: {
- color: ['#bfbfbf'],
+ color: ['#ccc'],
type: 'dashed',
},
},
@@ -365,23 +365,24 @@
type: 'bar',
colorBy: props.colorBy,
label: {
- normal: {
- show: props.showLabel,
- color: props.labelColor,
- // position: 'right',
- fontSize: 15,
- formatter: props.labelFormatter,
- // align: 'left',
- // verticalAlign: 'middle',
- },
+ show: true,
+ // normal: {
+ // show: true,
+ color: props.labelColor,
+ position: 'right',
+ fontSize: 15,
+ // formatter: props.labelFormatter,
+ // align: 'left',
+ verticalAlign: 'middle',
},
+ // },
showBackground: true,
backgroundStyle: {
color: props.backgroundColor,
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
itemStyle: {
- color: props.color,
+ color: '#2D8CF0',
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
data: item.data,
@@ -399,7 +400,7 @@
else {
chartWidth = chartWidth - 80
}
- series.label.normal!.position = [chartWidth, '50%']
+ // series.label.normal!.position = [chartWidth, '50%']
}
// 如果开启渐变
if (props.gradient && props.colors.length > 0) {
@@ -435,6 +436,7 @@
console.log(newSeries)
option.series = newSeries
}
+ console.log(option, 'option')
return option
}
// 初始化图表
diff --git a/src/components/NormalTable/index.vue b/src/components/NormalTable/index.vue
index 7ee9d06..4c33d8b 100644
--- a/src/components/NormalTable/index.vue
+++ b/src/components/NormalTable/index.vue
@@ -463,7 +463,7 @@
}
.follow-link {
- color: #3d7eff;
+ color: #0d76d4;
cursor: pointer;
&:hover {
diff --git a/src/components/map/index.vue b/src/components/map/index.vue
index 70a8abe..55943a0 100644
--- a/src/components/map/index.vue
+++ b/src/components/map/index.vue
@@ -566,7 +566,7 @@
})
// 聚合点小于11时不聚合
- cluster.value.setMinClusterSize(11)
+ cluster.value.setMinClusterSize(40)
}
const removeCluster = () => {
if (cluster.value) {
diff --git a/src/layouts/components/Header/index.vue b/src/layouts/components/Header/index.vue
index 88abc48..b159b77 100644
--- a/src/layouts/components/Header/index.vue
+++ b/src/layouts/components/Header/index.vue
@@ -65,7 +65,7 @@
height: var(--g-header-height);
color: var(--g-header-color);
background-color: var(--g-header-bg);
- background-image: linear-gradient(90deg, #71b5ff 30%, #3d7eff);
+ background-image: linear-gradient(90deg, #0d76d4 30%, #0d76d4);
transition: background-color 0.3s, var(--el-transition-color);
.header-container {
diff --git a/src/layouts/components/SidebarItem/index.vue b/src/layouts/components/SidebarItem/index.vue
index 8f0cd16..30038a2 100644
--- a/src/layouts/components/SidebarItem/index.vue
+++ b/src/layouts/components/SidebarItem/index.vue
@@ -146,8 +146,10 @@
background-color: var(--g-sub-sidebar-menu-bg) !important;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #4878ca !important;
}
}
}
@@ -157,22 +159,25 @@
color: var(--g-sub-sidebar-menu-color) !important;
background: transparent !important;
height: 40px;
- // line-height: 40px;
line-height: 20px;
margin: 4px 0;
border-radius: 7px;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
}
}
.el-menu-item.is-active,
.el-menu--collapse .el-sub-menu.is-active > .el-sub-menu__title,
.el-sub-menu .el-menu--inline .el-menu-item.is-active {
- color: var(--g-sub-sidebar-menu-active-color) !important;
- background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ // color: var(--g-sub-sidebar-menu-active-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
.icon,
.el-sub-menu__icon-arrow {
diff --git a/src/layouts/components/SubSidebar/index.vue b/src/layouts/components/SubSidebar/index.vue
index 20ef219..a7b717a 100644
--- a/src/layouts/components/SubSidebar/index.vue
+++ b/src/layouts/components/SubSidebar/index.vue
@@ -56,8 +56,8 @@
left: 0;
top: 0;
bottom: 0;
- background-color: var(--g-sub-sidebar-bg);
- background-image: linear-gradient(180deg, #71b5ff, #4384ff);
+ background-color: #0d76d4;
+ background-image: linear-gradient(180deg, #0d76d4, #0d76d4);
box-shadow: 10px 0 10px -10px var(--g-box-shadow-color);
transition: background-color 0.3s, var(--el-transition-box-shadow), left 0.3s, width 0.3s;
diff --git a/src/layouts/components/Topbar/index.vue b/src/layouts/components/Topbar/index.vue
index 4e3120e..e5dfb95 100644
--- a/src/layouts/components/Topbar/index.vue
+++ b/src/layouts/components/Topbar/index.vue
@@ -2,32 +2,52 @@
import { compile } from 'path-to-regexp'
import Tools from '../Tools/index.vue'
import useSettingsStore from '@/store/modules/settings'
-
+import useMenuStore from '@/store/modules/menu'
const route = useRoute()
-
+const router = useRouter()
+const menuStore = useMenuStore()
const settingsStore = useSettingsStore()
-
+const { proxy } = getCurrentInstance() as any
const enableSubMenuCollapseButton = computed(() => {
return settingsStore.mode === 'mobile' || (
['side', 'head', 'single'].includes(settingsStore.menu.menuMode)
- && settingsStore.menu.enableSubMenuCollapseButton
+ && settingsStore.menu.enableSubMenuCollapseButton
)
})
-const breadcrumbList = computed(() => {
- const breadcrumbList = []
- if (settingsStore.dashboard.enable) {
- breadcrumbList.push({
- path: '/dashboard',
- title: settingsStore.dashboard.title,
- })
+// const breadcrumbList = computed(() => {
+// const breadcrumbList = []
+// if (settingsStore.dashboard.enable) {
+// breadcrumbList.push({
+// path: '/dashboard',
+// title: settingsStore.dashboard.title,
+// })
+// }
+// if (route.meta.breadcrumbNeste) {
+// breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
+// }
+// return breadcrumbList
+// })
+const publicPath = window.location.href.split('#')[0]
+const breadcrumbList = ref
(menuStore.breadcrumbList)
+const routeInfo = ref(route)
+watch(() => menuStore.breadcrumbList, (newVal) => {
+ if (newVal.length) {
+ breadcrumbList.value = menuStore.breadcrumbList
+ console.log(breadcrumbList.value, 'breadcrumbList.value')
}
- if (route.meta.breadcrumbNeste) {
- breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
- }
- return breadcrumbList
+}, {
+ deep: true,
+ immediate: true,
})
-
+watch(() => route.path, (newVal) => {
+ // console.log(route, '当前路由信息')
+ routeInfo.value = route
+},
+{
+ deep: true,
+ // immediate: true,
+})
const scrollTop = ref(0)
onMounted(() => {
window.addEventListener('scroll', onScroll)
@@ -43,6 +63,21 @@
const toPath = compile(path)
return toPath(route.params)
}
+// 面包屑跳转
+const breadcrumbTo = (path: any) => {
+ router.push(path.path)
+}
+// 关闭面包屑
+const closePage = (path: any) => {
+ menuStore.removeBreadcrumb(path)
+ if (routeInfo.value.path === path.path) {
+ router.push({
+ path: breadcrumbList.value.length ? breadcrumbList.value[0].path : '/home/index',
+ // proxy.hasPerm('/dashboard') ? '/home/index' : '/'
+ //
+ })
+ }
+}
@@ -54,16 +89,38 @@
>
-
@@ -73,6 +130,68 @@
diff --git a/src/assets/icons/close.svg b/src/assets/icons/close.svg
new file mode 100644
index 0000000..fe18fcc
--- /dev/null
+++ b/src/assets/icons/close.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/icons/icon-home.svg b/src/assets/icons/icon-home.svg
new file mode 100644
index 0000000..ce022bf
--- /dev/null
+++ b/src/assets/icons/icon-home.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/images/home.png b/src/assets/images/home.png
new file mode 100644
index 0000000..08c451d
--- /dev/null
+++ b/src/assets/images/home.png
Binary files differ
diff --git a/src/components/Echart/BarChartHorizontal.vue b/src/components/Echart/BarChartHorizontal.vue
index ff88935..eac1b25 100644
--- a/src/components/Echart/BarChartHorizontal.vue
+++ b/src/components/Echart/BarChartHorizontal.vue
@@ -160,7 +160,7 @@
},
color: {
type: String,
- default: '#3e29ce',
+ default: '#0d76d4',
},
/**
* 柱子背景颜色
@@ -299,7 +299,7 @@
splitLine: {
show: props.showAxis,
lineStyle: {
- color: ['#bfbfbf'],
+ color: ['#ccc'],
type: 'dashed',
},
},
@@ -365,23 +365,24 @@
type: 'bar',
colorBy: props.colorBy,
label: {
- normal: {
- show: props.showLabel,
- color: props.labelColor,
- // position: 'right',
- fontSize: 15,
- formatter: props.labelFormatter,
- // align: 'left',
- // verticalAlign: 'middle',
- },
+ show: true,
+ // normal: {
+ // show: true,
+ color: props.labelColor,
+ position: 'right',
+ fontSize: 15,
+ // formatter: props.labelFormatter,
+ // align: 'left',
+ verticalAlign: 'middle',
},
+ // },
showBackground: true,
backgroundStyle: {
color: props.backgroundColor,
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
itemStyle: {
- color: props.color,
+ color: '#2D8CF0',
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
data: item.data,
@@ -399,7 +400,7 @@
else {
chartWidth = chartWidth - 80
}
- series.label.normal!.position = [chartWidth, '50%']
+ // series.label.normal!.position = [chartWidth, '50%']
}
// 如果开启渐变
if (props.gradient && props.colors.length > 0) {
@@ -435,6 +436,7 @@
console.log(newSeries)
option.series = newSeries
}
+ console.log(option, 'option')
return option
}
// 初始化图表
diff --git a/src/components/NormalTable/index.vue b/src/components/NormalTable/index.vue
index 7ee9d06..4c33d8b 100644
--- a/src/components/NormalTable/index.vue
+++ b/src/components/NormalTable/index.vue
@@ -463,7 +463,7 @@
}
.follow-link {
- color: #3d7eff;
+ color: #0d76d4;
cursor: pointer;
&:hover {
diff --git a/src/components/map/index.vue b/src/components/map/index.vue
index 70a8abe..55943a0 100644
--- a/src/components/map/index.vue
+++ b/src/components/map/index.vue
@@ -566,7 +566,7 @@
})
// 聚合点小于11时不聚合
- cluster.value.setMinClusterSize(11)
+ cluster.value.setMinClusterSize(40)
}
const removeCluster = () => {
if (cluster.value) {
diff --git a/src/layouts/components/Header/index.vue b/src/layouts/components/Header/index.vue
index 88abc48..b159b77 100644
--- a/src/layouts/components/Header/index.vue
+++ b/src/layouts/components/Header/index.vue
@@ -65,7 +65,7 @@
height: var(--g-header-height);
color: var(--g-header-color);
background-color: var(--g-header-bg);
- background-image: linear-gradient(90deg, #71b5ff 30%, #3d7eff);
+ background-image: linear-gradient(90deg, #0d76d4 30%, #0d76d4);
transition: background-color 0.3s, var(--el-transition-color);
.header-container {
diff --git a/src/layouts/components/SidebarItem/index.vue b/src/layouts/components/SidebarItem/index.vue
index 8f0cd16..30038a2 100644
--- a/src/layouts/components/SidebarItem/index.vue
+++ b/src/layouts/components/SidebarItem/index.vue
@@ -146,8 +146,10 @@
background-color: var(--g-sub-sidebar-menu-bg) !important;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #4878ca !important;
}
}
}
@@ -157,22 +159,25 @@
color: var(--g-sub-sidebar-menu-color) !important;
background: transparent !important;
height: 40px;
- // line-height: 40px;
line-height: 20px;
margin: 4px 0;
border-radius: 7px;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
}
}
.el-menu-item.is-active,
.el-menu--collapse .el-sub-menu.is-active > .el-sub-menu__title,
.el-sub-menu .el-menu--inline .el-menu-item.is-active {
- color: var(--g-sub-sidebar-menu-active-color) !important;
- background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ // color: var(--g-sub-sidebar-menu-active-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
.icon,
.el-sub-menu__icon-arrow {
diff --git a/src/layouts/components/SubSidebar/index.vue b/src/layouts/components/SubSidebar/index.vue
index 20ef219..a7b717a 100644
--- a/src/layouts/components/SubSidebar/index.vue
+++ b/src/layouts/components/SubSidebar/index.vue
@@ -56,8 +56,8 @@
left: 0;
top: 0;
bottom: 0;
- background-color: var(--g-sub-sidebar-bg);
- background-image: linear-gradient(180deg, #71b5ff, #4384ff);
+ background-color: #0d76d4;
+ background-image: linear-gradient(180deg, #0d76d4, #0d76d4);
box-shadow: 10px 0 10px -10px var(--g-box-shadow-color);
transition: background-color 0.3s, var(--el-transition-box-shadow), left 0.3s, width 0.3s;
diff --git a/src/layouts/components/Topbar/index.vue b/src/layouts/components/Topbar/index.vue
index 4e3120e..e5dfb95 100644
--- a/src/layouts/components/Topbar/index.vue
+++ b/src/layouts/components/Topbar/index.vue
@@ -2,32 +2,52 @@
import { compile } from 'path-to-regexp'
import Tools from '../Tools/index.vue'
import useSettingsStore from '@/store/modules/settings'
-
+import useMenuStore from '@/store/modules/menu'
const route = useRoute()
-
+const router = useRouter()
+const menuStore = useMenuStore()
const settingsStore = useSettingsStore()
-
+const { proxy } = getCurrentInstance() as any
const enableSubMenuCollapseButton = computed(() => {
return settingsStore.mode === 'mobile' || (
['side', 'head', 'single'].includes(settingsStore.menu.menuMode)
- && settingsStore.menu.enableSubMenuCollapseButton
+ && settingsStore.menu.enableSubMenuCollapseButton
)
})
-const breadcrumbList = computed(() => {
- const breadcrumbList = []
- if (settingsStore.dashboard.enable) {
- breadcrumbList.push({
- path: '/dashboard',
- title: settingsStore.dashboard.title,
- })
+// const breadcrumbList = computed(() => {
+// const breadcrumbList = []
+// if (settingsStore.dashboard.enable) {
+// breadcrumbList.push({
+// path: '/dashboard',
+// title: settingsStore.dashboard.title,
+// })
+// }
+// if (route.meta.breadcrumbNeste) {
+// breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
+// }
+// return breadcrumbList
+// })
+const publicPath = window.location.href.split('#')[0]
+const breadcrumbList = ref
(menuStore.breadcrumbList)
+const routeInfo = ref(route)
+watch(() => menuStore.breadcrumbList, (newVal) => {
+ if (newVal.length) {
+ breadcrumbList.value = menuStore.breadcrumbList
+ console.log(breadcrumbList.value, 'breadcrumbList.value')
}
- if (route.meta.breadcrumbNeste) {
- breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
- }
- return breadcrumbList
+}, {
+ deep: true,
+ immediate: true,
})
-
+watch(() => route.path, (newVal) => {
+ // console.log(route, '当前路由信息')
+ routeInfo.value = route
+},
+{
+ deep: true,
+ // immediate: true,
+})
const scrollTop = ref(0)
onMounted(() => {
window.addEventListener('scroll', onScroll)
@@ -43,6 +63,21 @@
const toPath = compile(path)
return toPath(route.params)
}
+// 面包屑跳转
+const breadcrumbTo = (path: any) => {
+ router.push(path.path)
+}
+// 关闭面包屑
+const closePage = (path: any) => {
+ menuStore.removeBreadcrumb(path)
+ if (routeInfo.value.path === path.path) {
+ router.push({
+ path: breadcrumbList.value.length ? breadcrumbList.value[0].path : '/home/index',
+ // proxy.hasPerm('/dashboard') ? '/home/index' : '/'
+ //
+ })
+ }
+}
@@ -54,16 +89,38 @@
>
-
@@ -73,6 +130,68 @@
diff --git a/src/assets/icons/close.svg b/src/assets/icons/close.svg
new file mode 100644
index 0000000..fe18fcc
--- /dev/null
+++ b/src/assets/icons/close.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/icons/icon-home.svg b/src/assets/icons/icon-home.svg
new file mode 100644
index 0000000..ce022bf
--- /dev/null
+++ b/src/assets/icons/icon-home.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/images/home.png b/src/assets/images/home.png
new file mode 100644
index 0000000..08c451d
--- /dev/null
+++ b/src/assets/images/home.png
Binary files differ
diff --git a/src/components/Echart/BarChartHorizontal.vue b/src/components/Echart/BarChartHorizontal.vue
index ff88935..eac1b25 100644
--- a/src/components/Echart/BarChartHorizontal.vue
+++ b/src/components/Echart/BarChartHorizontal.vue
@@ -160,7 +160,7 @@
},
color: {
type: String,
- default: '#3e29ce',
+ default: '#0d76d4',
},
/**
* 柱子背景颜色
@@ -299,7 +299,7 @@
splitLine: {
show: props.showAxis,
lineStyle: {
- color: ['#bfbfbf'],
+ color: ['#ccc'],
type: 'dashed',
},
},
@@ -365,23 +365,24 @@
type: 'bar',
colorBy: props.colorBy,
label: {
- normal: {
- show: props.showLabel,
- color: props.labelColor,
- // position: 'right',
- fontSize: 15,
- formatter: props.labelFormatter,
- // align: 'left',
- // verticalAlign: 'middle',
- },
+ show: true,
+ // normal: {
+ // show: true,
+ color: props.labelColor,
+ position: 'right',
+ fontSize: 15,
+ // formatter: props.labelFormatter,
+ // align: 'left',
+ verticalAlign: 'middle',
},
+ // },
showBackground: true,
backgroundStyle: {
color: props.backgroundColor,
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
itemStyle: {
- color: props.color,
+ color: '#2D8CF0',
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
data: item.data,
@@ -399,7 +400,7 @@
else {
chartWidth = chartWidth - 80
}
- series.label.normal!.position = [chartWidth, '50%']
+ // series.label.normal!.position = [chartWidth, '50%']
}
// 如果开启渐变
if (props.gradient && props.colors.length > 0) {
@@ -435,6 +436,7 @@
console.log(newSeries)
option.series = newSeries
}
+ console.log(option, 'option')
return option
}
// 初始化图表
diff --git a/src/components/NormalTable/index.vue b/src/components/NormalTable/index.vue
index 7ee9d06..4c33d8b 100644
--- a/src/components/NormalTable/index.vue
+++ b/src/components/NormalTable/index.vue
@@ -463,7 +463,7 @@
}
.follow-link {
- color: #3d7eff;
+ color: #0d76d4;
cursor: pointer;
&:hover {
diff --git a/src/components/map/index.vue b/src/components/map/index.vue
index 70a8abe..55943a0 100644
--- a/src/components/map/index.vue
+++ b/src/components/map/index.vue
@@ -566,7 +566,7 @@
})
// 聚合点小于11时不聚合
- cluster.value.setMinClusterSize(11)
+ cluster.value.setMinClusterSize(40)
}
const removeCluster = () => {
if (cluster.value) {
diff --git a/src/layouts/components/Header/index.vue b/src/layouts/components/Header/index.vue
index 88abc48..b159b77 100644
--- a/src/layouts/components/Header/index.vue
+++ b/src/layouts/components/Header/index.vue
@@ -65,7 +65,7 @@
height: var(--g-header-height);
color: var(--g-header-color);
background-color: var(--g-header-bg);
- background-image: linear-gradient(90deg, #71b5ff 30%, #3d7eff);
+ background-image: linear-gradient(90deg, #0d76d4 30%, #0d76d4);
transition: background-color 0.3s, var(--el-transition-color);
.header-container {
diff --git a/src/layouts/components/SidebarItem/index.vue b/src/layouts/components/SidebarItem/index.vue
index 8f0cd16..30038a2 100644
--- a/src/layouts/components/SidebarItem/index.vue
+++ b/src/layouts/components/SidebarItem/index.vue
@@ -146,8 +146,10 @@
background-color: var(--g-sub-sidebar-menu-bg) !important;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #4878ca !important;
}
}
}
@@ -157,22 +159,25 @@
color: var(--g-sub-sidebar-menu-color) !important;
background: transparent !important;
height: 40px;
- // line-height: 40px;
line-height: 20px;
margin: 4px 0;
border-radius: 7px;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
}
}
.el-menu-item.is-active,
.el-menu--collapse .el-sub-menu.is-active > .el-sub-menu__title,
.el-sub-menu .el-menu--inline .el-menu-item.is-active {
- color: var(--g-sub-sidebar-menu-active-color) !important;
- background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ // color: var(--g-sub-sidebar-menu-active-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
.icon,
.el-sub-menu__icon-arrow {
diff --git a/src/layouts/components/SubSidebar/index.vue b/src/layouts/components/SubSidebar/index.vue
index 20ef219..a7b717a 100644
--- a/src/layouts/components/SubSidebar/index.vue
+++ b/src/layouts/components/SubSidebar/index.vue
@@ -56,8 +56,8 @@
left: 0;
top: 0;
bottom: 0;
- background-color: var(--g-sub-sidebar-bg);
- background-image: linear-gradient(180deg, #71b5ff, #4384ff);
+ background-color: #0d76d4;
+ background-image: linear-gradient(180deg, #0d76d4, #0d76d4);
box-shadow: 10px 0 10px -10px var(--g-box-shadow-color);
transition: background-color 0.3s, var(--el-transition-box-shadow), left 0.3s, width 0.3s;
diff --git a/src/layouts/components/Topbar/index.vue b/src/layouts/components/Topbar/index.vue
index 4e3120e..e5dfb95 100644
--- a/src/layouts/components/Topbar/index.vue
+++ b/src/layouts/components/Topbar/index.vue
@@ -2,32 +2,52 @@
import { compile } from 'path-to-regexp'
import Tools from '../Tools/index.vue'
import useSettingsStore from '@/store/modules/settings'
-
+import useMenuStore from '@/store/modules/menu'
const route = useRoute()
-
+const router = useRouter()
+const menuStore = useMenuStore()
const settingsStore = useSettingsStore()
-
+const { proxy } = getCurrentInstance() as any
const enableSubMenuCollapseButton = computed(() => {
return settingsStore.mode === 'mobile' || (
['side', 'head', 'single'].includes(settingsStore.menu.menuMode)
- && settingsStore.menu.enableSubMenuCollapseButton
+ && settingsStore.menu.enableSubMenuCollapseButton
)
})
-const breadcrumbList = computed(() => {
- const breadcrumbList = []
- if (settingsStore.dashboard.enable) {
- breadcrumbList.push({
- path: '/dashboard',
- title: settingsStore.dashboard.title,
- })
+// const breadcrumbList = computed(() => {
+// const breadcrumbList = []
+// if (settingsStore.dashboard.enable) {
+// breadcrumbList.push({
+// path: '/dashboard',
+// title: settingsStore.dashboard.title,
+// })
+// }
+// if (route.meta.breadcrumbNeste) {
+// breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
+// }
+// return breadcrumbList
+// })
+const publicPath = window.location.href.split('#')[0]
+const breadcrumbList = ref
(menuStore.breadcrumbList)
+const routeInfo = ref(route)
+watch(() => menuStore.breadcrumbList, (newVal) => {
+ if (newVal.length) {
+ breadcrumbList.value = menuStore.breadcrumbList
+ console.log(breadcrumbList.value, 'breadcrumbList.value')
}
- if (route.meta.breadcrumbNeste) {
- breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
- }
- return breadcrumbList
+}, {
+ deep: true,
+ immediate: true,
})
-
+watch(() => route.path, (newVal) => {
+ // console.log(route, '当前路由信息')
+ routeInfo.value = route
+},
+{
+ deep: true,
+ // immediate: true,
+})
const scrollTop = ref(0)
onMounted(() => {
window.addEventListener('scroll', onScroll)
@@ -43,6 +63,21 @@
const toPath = compile(path)
return toPath(route.params)
}
+// 面包屑跳转
+const breadcrumbTo = (path: any) => {
+ router.push(path.path)
+}
+// 关闭面包屑
+const closePage = (path: any) => {
+ menuStore.removeBreadcrumb(path)
+ if (routeInfo.value.path === path.path) {
+ router.push({
+ path: breadcrumbList.value.length ? breadcrumbList.value[0].path : '/home/index',
+ // proxy.hasPerm('/dashboard') ? '/home/index' : '/'
+ //
+ })
+ }
+}
@@ -54,16 +89,38 @@
>
-
@@ -73,6 +130,68 @@
diff --git a/src/assets/icons/close.svg b/src/assets/icons/close.svg
new file mode 100644
index 0000000..fe18fcc
--- /dev/null
+++ b/src/assets/icons/close.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/icons/icon-home.svg b/src/assets/icons/icon-home.svg
new file mode 100644
index 0000000..ce022bf
--- /dev/null
+++ b/src/assets/icons/icon-home.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/images/home.png b/src/assets/images/home.png
new file mode 100644
index 0000000..08c451d
--- /dev/null
+++ b/src/assets/images/home.png
Binary files differ
diff --git a/src/components/Echart/BarChartHorizontal.vue b/src/components/Echart/BarChartHorizontal.vue
index ff88935..eac1b25 100644
--- a/src/components/Echart/BarChartHorizontal.vue
+++ b/src/components/Echart/BarChartHorizontal.vue
@@ -160,7 +160,7 @@
},
color: {
type: String,
- default: '#3e29ce',
+ default: '#0d76d4',
},
/**
* 柱子背景颜色
@@ -299,7 +299,7 @@
splitLine: {
show: props.showAxis,
lineStyle: {
- color: ['#bfbfbf'],
+ color: ['#ccc'],
type: 'dashed',
},
},
@@ -365,23 +365,24 @@
type: 'bar',
colorBy: props.colorBy,
label: {
- normal: {
- show: props.showLabel,
- color: props.labelColor,
- // position: 'right',
- fontSize: 15,
- formatter: props.labelFormatter,
- // align: 'left',
- // verticalAlign: 'middle',
- },
+ show: true,
+ // normal: {
+ // show: true,
+ color: props.labelColor,
+ position: 'right',
+ fontSize: 15,
+ // formatter: props.labelFormatter,
+ // align: 'left',
+ verticalAlign: 'middle',
},
+ // },
showBackground: true,
backgroundStyle: {
color: props.backgroundColor,
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
itemStyle: {
- color: props.color,
+ color: '#2D8CF0',
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
data: item.data,
@@ -399,7 +400,7 @@
else {
chartWidth = chartWidth - 80
}
- series.label.normal!.position = [chartWidth, '50%']
+ // series.label.normal!.position = [chartWidth, '50%']
}
// 如果开启渐变
if (props.gradient && props.colors.length > 0) {
@@ -435,6 +436,7 @@
console.log(newSeries)
option.series = newSeries
}
+ console.log(option, 'option')
return option
}
// 初始化图表
diff --git a/src/components/NormalTable/index.vue b/src/components/NormalTable/index.vue
index 7ee9d06..4c33d8b 100644
--- a/src/components/NormalTable/index.vue
+++ b/src/components/NormalTable/index.vue
@@ -463,7 +463,7 @@
}
.follow-link {
- color: #3d7eff;
+ color: #0d76d4;
cursor: pointer;
&:hover {
diff --git a/src/components/map/index.vue b/src/components/map/index.vue
index 70a8abe..55943a0 100644
--- a/src/components/map/index.vue
+++ b/src/components/map/index.vue
@@ -566,7 +566,7 @@
})
// 聚合点小于11时不聚合
- cluster.value.setMinClusterSize(11)
+ cluster.value.setMinClusterSize(40)
}
const removeCluster = () => {
if (cluster.value) {
diff --git a/src/layouts/components/Header/index.vue b/src/layouts/components/Header/index.vue
index 88abc48..b159b77 100644
--- a/src/layouts/components/Header/index.vue
+++ b/src/layouts/components/Header/index.vue
@@ -65,7 +65,7 @@
height: var(--g-header-height);
color: var(--g-header-color);
background-color: var(--g-header-bg);
- background-image: linear-gradient(90deg, #71b5ff 30%, #3d7eff);
+ background-image: linear-gradient(90deg, #0d76d4 30%, #0d76d4);
transition: background-color 0.3s, var(--el-transition-color);
.header-container {
diff --git a/src/layouts/components/SidebarItem/index.vue b/src/layouts/components/SidebarItem/index.vue
index 8f0cd16..30038a2 100644
--- a/src/layouts/components/SidebarItem/index.vue
+++ b/src/layouts/components/SidebarItem/index.vue
@@ -146,8 +146,10 @@
background-color: var(--g-sub-sidebar-menu-bg) !important;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #4878ca !important;
}
}
}
@@ -157,22 +159,25 @@
color: var(--g-sub-sidebar-menu-color) !important;
background: transparent !important;
height: 40px;
- // line-height: 40px;
line-height: 20px;
margin: 4px 0;
border-radius: 7px;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
}
}
.el-menu-item.is-active,
.el-menu--collapse .el-sub-menu.is-active > .el-sub-menu__title,
.el-sub-menu .el-menu--inline .el-menu-item.is-active {
- color: var(--g-sub-sidebar-menu-active-color) !important;
- background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ // color: var(--g-sub-sidebar-menu-active-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
.icon,
.el-sub-menu__icon-arrow {
diff --git a/src/layouts/components/SubSidebar/index.vue b/src/layouts/components/SubSidebar/index.vue
index 20ef219..a7b717a 100644
--- a/src/layouts/components/SubSidebar/index.vue
+++ b/src/layouts/components/SubSidebar/index.vue
@@ -56,8 +56,8 @@
left: 0;
top: 0;
bottom: 0;
- background-color: var(--g-sub-sidebar-bg);
- background-image: linear-gradient(180deg, #71b5ff, #4384ff);
+ background-color: #0d76d4;
+ background-image: linear-gradient(180deg, #0d76d4, #0d76d4);
box-shadow: 10px 0 10px -10px var(--g-box-shadow-color);
transition: background-color 0.3s, var(--el-transition-box-shadow), left 0.3s, width 0.3s;
diff --git a/src/layouts/components/Topbar/index.vue b/src/layouts/components/Topbar/index.vue
index 4e3120e..e5dfb95 100644
--- a/src/layouts/components/Topbar/index.vue
+++ b/src/layouts/components/Topbar/index.vue
@@ -2,32 +2,52 @@
import { compile } from 'path-to-regexp'
import Tools from '../Tools/index.vue'
import useSettingsStore from '@/store/modules/settings'
-
+import useMenuStore from '@/store/modules/menu'
const route = useRoute()
-
+const router = useRouter()
+const menuStore = useMenuStore()
const settingsStore = useSettingsStore()
-
+const { proxy } = getCurrentInstance() as any
const enableSubMenuCollapseButton = computed(() => {
return settingsStore.mode === 'mobile' || (
['side', 'head', 'single'].includes(settingsStore.menu.menuMode)
- && settingsStore.menu.enableSubMenuCollapseButton
+ && settingsStore.menu.enableSubMenuCollapseButton
)
})
-const breadcrumbList = computed(() => {
- const breadcrumbList = []
- if (settingsStore.dashboard.enable) {
- breadcrumbList.push({
- path: '/dashboard',
- title: settingsStore.dashboard.title,
- })
+// const breadcrumbList = computed(() => {
+// const breadcrumbList = []
+// if (settingsStore.dashboard.enable) {
+// breadcrumbList.push({
+// path: '/dashboard',
+// title: settingsStore.dashboard.title,
+// })
+// }
+// if (route.meta.breadcrumbNeste) {
+// breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
+// }
+// return breadcrumbList
+// })
+const publicPath = window.location.href.split('#')[0]
+const breadcrumbList = ref
(menuStore.breadcrumbList)
+const routeInfo = ref(route)
+watch(() => menuStore.breadcrumbList, (newVal) => {
+ if (newVal.length) {
+ breadcrumbList.value = menuStore.breadcrumbList
+ console.log(breadcrumbList.value, 'breadcrumbList.value')
}
- if (route.meta.breadcrumbNeste) {
- breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
- }
- return breadcrumbList
+}, {
+ deep: true,
+ immediate: true,
})
-
+watch(() => route.path, (newVal) => {
+ // console.log(route, '当前路由信息')
+ routeInfo.value = route
+},
+{
+ deep: true,
+ // immediate: true,
+})
const scrollTop = ref(0)
onMounted(() => {
window.addEventListener('scroll', onScroll)
@@ -43,6 +63,21 @@
const toPath = compile(path)
return toPath(route.params)
}
+// 面包屑跳转
+const breadcrumbTo = (path: any) => {
+ router.push(path.path)
+}
+// 关闭面包屑
+const closePage = (path: any) => {
+ menuStore.removeBreadcrumb(path)
+ if (routeInfo.value.path === path.path) {
+ router.push({
+ path: breadcrumbList.value.length ? breadcrumbList.value[0].path : '/home/index',
+ // proxy.hasPerm('/dashboard') ? '/home/index' : '/'
+ //
+ })
+ }
+}
@@ -54,16 +89,38 @@
>
-
@@ -73,6 +130,68 @@
diff --git a/src/assets/icons/close.svg b/src/assets/icons/close.svg
new file mode 100644
index 0000000..fe18fcc
--- /dev/null
+++ b/src/assets/icons/close.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/icons/icon-home.svg b/src/assets/icons/icon-home.svg
new file mode 100644
index 0000000..ce022bf
--- /dev/null
+++ b/src/assets/icons/icon-home.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/images/home.png b/src/assets/images/home.png
new file mode 100644
index 0000000..08c451d
--- /dev/null
+++ b/src/assets/images/home.png
Binary files differ
diff --git a/src/components/Echart/BarChartHorizontal.vue b/src/components/Echart/BarChartHorizontal.vue
index ff88935..eac1b25 100644
--- a/src/components/Echart/BarChartHorizontal.vue
+++ b/src/components/Echart/BarChartHorizontal.vue
@@ -160,7 +160,7 @@
},
color: {
type: String,
- default: '#3e29ce',
+ default: '#0d76d4',
},
/**
* 柱子背景颜色
@@ -299,7 +299,7 @@
splitLine: {
show: props.showAxis,
lineStyle: {
- color: ['#bfbfbf'],
+ color: ['#ccc'],
type: 'dashed',
},
},
@@ -365,23 +365,24 @@
type: 'bar',
colorBy: props.colorBy,
label: {
- normal: {
- show: props.showLabel,
- color: props.labelColor,
- // position: 'right',
- fontSize: 15,
- formatter: props.labelFormatter,
- // align: 'left',
- // verticalAlign: 'middle',
- },
+ show: true,
+ // normal: {
+ // show: true,
+ color: props.labelColor,
+ position: 'right',
+ fontSize: 15,
+ // formatter: props.labelFormatter,
+ // align: 'left',
+ verticalAlign: 'middle',
},
+ // },
showBackground: true,
backgroundStyle: {
color: props.backgroundColor,
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
itemStyle: {
- color: props.color,
+ color: '#2D8CF0',
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
data: item.data,
@@ -399,7 +400,7 @@
else {
chartWidth = chartWidth - 80
}
- series.label.normal!.position = [chartWidth, '50%']
+ // series.label.normal!.position = [chartWidth, '50%']
}
// 如果开启渐变
if (props.gradient && props.colors.length > 0) {
@@ -435,6 +436,7 @@
console.log(newSeries)
option.series = newSeries
}
+ console.log(option, 'option')
return option
}
// 初始化图表
diff --git a/src/components/NormalTable/index.vue b/src/components/NormalTable/index.vue
index 7ee9d06..4c33d8b 100644
--- a/src/components/NormalTable/index.vue
+++ b/src/components/NormalTable/index.vue
@@ -463,7 +463,7 @@
}
.follow-link {
- color: #3d7eff;
+ color: #0d76d4;
cursor: pointer;
&:hover {
diff --git a/src/components/map/index.vue b/src/components/map/index.vue
index 70a8abe..55943a0 100644
--- a/src/components/map/index.vue
+++ b/src/components/map/index.vue
@@ -566,7 +566,7 @@
})
// 聚合点小于11时不聚合
- cluster.value.setMinClusterSize(11)
+ cluster.value.setMinClusterSize(40)
}
const removeCluster = () => {
if (cluster.value) {
diff --git a/src/layouts/components/Header/index.vue b/src/layouts/components/Header/index.vue
index 88abc48..b159b77 100644
--- a/src/layouts/components/Header/index.vue
+++ b/src/layouts/components/Header/index.vue
@@ -65,7 +65,7 @@
height: var(--g-header-height);
color: var(--g-header-color);
background-color: var(--g-header-bg);
- background-image: linear-gradient(90deg, #71b5ff 30%, #3d7eff);
+ background-image: linear-gradient(90deg, #0d76d4 30%, #0d76d4);
transition: background-color 0.3s, var(--el-transition-color);
.header-container {
diff --git a/src/layouts/components/SidebarItem/index.vue b/src/layouts/components/SidebarItem/index.vue
index 8f0cd16..30038a2 100644
--- a/src/layouts/components/SidebarItem/index.vue
+++ b/src/layouts/components/SidebarItem/index.vue
@@ -146,8 +146,10 @@
background-color: var(--g-sub-sidebar-menu-bg) !important;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #4878ca !important;
}
}
}
@@ -157,22 +159,25 @@
color: var(--g-sub-sidebar-menu-color) !important;
background: transparent !important;
height: 40px;
- // line-height: 40px;
line-height: 20px;
margin: 4px 0;
border-radius: 7px;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
}
}
.el-menu-item.is-active,
.el-menu--collapse .el-sub-menu.is-active > .el-sub-menu__title,
.el-sub-menu .el-menu--inline .el-menu-item.is-active {
- color: var(--g-sub-sidebar-menu-active-color) !important;
- background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ // color: var(--g-sub-sidebar-menu-active-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
.icon,
.el-sub-menu__icon-arrow {
diff --git a/src/layouts/components/SubSidebar/index.vue b/src/layouts/components/SubSidebar/index.vue
index 20ef219..a7b717a 100644
--- a/src/layouts/components/SubSidebar/index.vue
+++ b/src/layouts/components/SubSidebar/index.vue
@@ -56,8 +56,8 @@
left: 0;
top: 0;
bottom: 0;
- background-color: var(--g-sub-sidebar-bg);
- background-image: linear-gradient(180deg, #71b5ff, #4384ff);
+ background-color: #0d76d4;
+ background-image: linear-gradient(180deg, #0d76d4, #0d76d4);
box-shadow: 10px 0 10px -10px var(--g-box-shadow-color);
transition: background-color 0.3s, var(--el-transition-box-shadow), left 0.3s, width 0.3s;
diff --git a/src/layouts/components/Topbar/index.vue b/src/layouts/components/Topbar/index.vue
index 4e3120e..e5dfb95 100644
--- a/src/layouts/components/Topbar/index.vue
+++ b/src/layouts/components/Topbar/index.vue
@@ -2,32 +2,52 @@
import { compile } from 'path-to-regexp'
import Tools from '../Tools/index.vue'
import useSettingsStore from '@/store/modules/settings'
-
+import useMenuStore from '@/store/modules/menu'
const route = useRoute()
-
+const router = useRouter()
+const menuStore = useMenuStore()
const settingsStore = useSettingsStore()
-
+const { proxy } = getCurrentInstance() as any
const enableSubMenuCollapseButton = computed(() => {
return settingsStore.mode === 'mobile' || (
['side', 'head', 'single'].includes(settingsStore.menu.menuMode)
- && settingsStore.menu.enableSubMenuCollapseButton
+ && settingsStore.menu.enableSubMenuCollapseButton
)
})
-const breadcrumbList = computed(() => {
- const breadcrumbList = []
- if (settingsStore.dashboard.enable) {
- breadcrumbList.push({
- path: '/dashboard',
- title: settingsStore.dashboard.title,
- })
+// const breadcrumbList = computed(() => {
+// const breadcrumbList = []
+// if (settingsStore.dashboard.enable) {
+// breadcrumbList.push({
+// path: '/dashboard',
+// title: settingsStore.dashboard.title,
+// })
+// }
+// if (route.meta.breadcrumbNeste) {
+// breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
+// }
+// return breadcrumbList
+// })
+const publicPath = window.location.href.split('#')[0]
+const breadcrumbList = ref
(menuStore.breadcrumbList)
+const routeInfo = ref(route)
+watch(() => menuStore.breadcrumbList, (newVal) => {
+ if (newVal.length) {
+ breadcrumbList.value = menuStore.breadcrumbList
+ console.log(breadcrumbList.value, 'breadcrumbList.value')
}
- if (route.meta.breadcrumbNeste) {
- breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
- }
- return breadcrumbList
+}, {
+ deep: true,
+ immediate: true,
})
-
+watch(() => route.path, (newVal) => {
+ // console.log(route, '当前路由信息')
+ routeInfo.value = route
+},
+{
+ deep: true,
+ // immediate: true,
+})
const scrollTop = ref(0)
onMounted(() => {
window.addEventListener('scroll', onScroll)
@@ -43,6 +63,21 @@
const toPath = compile(path)
return toPath(route.params)
}
+// 面包屑跳转
+const breadcrumbTo = (path: any) => {
+ router.push(path.path)
+}
+// 关闭面包屑
+const closePage = (path: any) => {
+ menuStore.removeBreadcrumb(path)
+ if (routeInfo.value.path === path.path) {
+ router.push({
+ path: breadcrumbList.value.length ? breadcrumbList.value[0].path : '/home/index',
+ // proxy.hasPerm('/dashboard') ? '/home/index' : '/'
+ //
+ })
+ }
+}
@@ -54,16 +89,38 @@
>
-
@@ -73,6 +130,68 @@
diff --git a/src/assets/icons/close.svg b/src/assets/icons/close.svg
new file mode 100644
index 0000000..fe18fcc
--- /dev/null
+++ b/src/assets/icons/close.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/icons/icon-home.svg b/src/assets/icons/icon-home.svg
new file mode 100644
index 0000000..ce022bf
--- /dev/null
+++ b/src/assets/icons/icon-home.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/images/home.png b/src/assets/images/home.png
new file mode 100644
index 0000000..08c451d
--- /dev/null
+++ b/src/assets/images/home.png
Binary files differ
diff --git a/src/components/Echart/BarChartHorizontal.vue b/src/components/Echart/BarChartHorizontal.vue
index ff88935..eac1b25 100644
--- a/src/components/Echart/BarChartHorizontal.vue
+++ b/src/components/Echart/BarChartHorizontal.vue
@@ -160,7 +160,7 @@
},
color: {
type: String,
- default: '#3e29ce',
+ default: '#0d76d4',
},
/**
* 柱子背景颜色
@@ -299,7 +299,7 @@
splitLine: {
show: props.showAxis,
lineStyle: {
- color: ['#bfbfbf'],
+ color: ['#ccc'],
type: 'dashed',
},
},
@@ -365,23 +365,24 @@
type: 'bar',
colorBy: props.colorBy,
label: {
- normal: {
- show: props.showLabel,
- color: props.labelColor,
- // position: 'right',
- fontSize: 15,
- formatter: props.labelFormatter,
- // align: 'left',
- // verticalAlign: 'middle',
- },
+ show: true,
+ // normal: {
+ // show: true,
+ color: props.labelColor,
+ position: 'right',
+ fontSize: 15,
+ // formatter: props.labelFormatter,
+ // align: 'left',
+ verticalAlign: 'middle',
},
+ // },
showBackground: true,
backgroundStyle: {
color: props.backgroundColor,
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
itemStyle: {
- color: props.color,
+ color: '#2D8CF0',
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
data: item.data,
@@ -399,7 +400,7 @@
else {
chartWidth = chartWidth - 80
}
- series.label.normal!.position = [chartWidth, '50%']
+ // series.label.normal!.position = [chartWidth, '50%']
}
// 如果开启渐变
if (props.gradient && props.colors.length > 0) {
@@ -435,6 +436,7 @@
console.log(newSeries)
option.series = newSeries
}
+ console.log(option, 'option')
return option
}
// 初始化图表
diff --git a/src/components/NormalTable/index.vue b/src/components/NormalTable/index.vue
index 7ee9d06..4c33d8b 100644
--- a/src/components/NormalTable/index.vue
+++ b/src/components/NormalTable/index.vue
@@ -463,7 +463,7 @@
}
.follow-link {
- color: #3d7eff;
+ color: #0d76d4;
cursor: pointer;
&:hover {
diff --git a/src/components/map/index.vue b/src/components/map/index.vue
index 70a8abe..55943a0 100644
--- a/src/components/map/index.vue
+++ b/src/components/map/index.vue
@@ -566,7 +566,7 @@
})
// 聚合点小于11时不聚合
- cluster.value.setMinClusterSize(11)
+ cluster.value.setMinClusterSize(40)
}
const removeCluster = () => {
if (cluster.value) {
diff --git a/src/layouts/components/Header/index.vue b/src/layouts/components/Header/index.vue
index 88abc48..b159b77 100644
--- a/src/layouts/components/Header/index.vue
+++ b/src/layouts/components/Header/index.vue
@@ -65,7 +65,7 @@
height: var(--g-header-height);
color: var(--g-header-color);
background-color: var(--g-header-bg);
- background-image: linear-gradient(90deg, #71b5ff 30%, #3d7eff);
+ background-image: linear-gradient(90deg, #0d76d4 30%, #0d76d4);
transition: background-color 0.3s, var(--el-transition-color);
.header-container {
diff --git a/src/layouts/components/SidebarItem/index.vue b/src/layouts/components/SidebarItem/index.vue
index 8f0cd16..30038a2 100644
--- a/src/layouts/components/SidebarItem/index.vue
+++ b/src/layouts/components/SidebarItem/index.vue
@@ -146,8 +146,10 @@
background-color: var(--g-sub-sidebar-menu-bg) !important;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #4878ca !important;
}
}
}
@@ -157,22 +159,25 @@
color: var(--g-sub-sidebar-menu-color) !important;
background: transparent !important;
height: 40px;
- // line-height: 40px;
line-height: 20px;
margin: 4px 0;
border-radius: 7px;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
}
}
.el-menu-item.is-active,
.el-menu--collapse .el-sub-menu.is-active > .el-sub-menu__title,
.el-sub-menu .el-menu--inline .el-menu-item.is-active {
- color: var(--g-sub-sidebar-menu-active-color) !important;
- background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ // color: var(--g-sub-sidebar-menu-active-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
.icon,
.el-sub-menu__icon-arrow {
diff --git a/src/layouts/components/SubSidebar/index.vue b/src/layouts/components/SubSidebar/index.vue
index 20ef219..a7b717a 100644
--- a/src/layouts/components/SubSidebar/index.vue
+++ b/src/layouts/components/SubSidebar/index.vue
@@ -56,8 +56,8 @@
left: 0;
top: 0;
bottom: 0;
- background-color: var(--g-sub-sidebar-bg);
- background-image: linear-gradient(180deg, #71b5ff, #4384ff);
+ background-color: #0d76d4;
+ background-image: linear-gradient(180deg, #0d76d4, #0d76d4);
box-shadow: 10px 0 10px -10px var(--g-box-shadow-color);
transition: background-color 0.3s, var(--el-transition-box-shadow), left 0.3s, width 0.3s;
diff --git a/src/layouts/components/Topbar/index.vue b/src/layouts/components/Topbar/index.vue
index 4e3120e..e5dfb95 100644
--- a/src/layouts/components/Topbar/index.vue
+++ b/src/layouts/components/Topbar/index.vue
@@ -2,32 +2,52 @@
import { compile } from 'path-to-regexp'
import Tools from '../Tools/index.vue'
import useSettingsStore from '@/store/modules/settings'
-
+import useMenuStore from '@/store/modules/menu'
const route = useRoute()
-
+const router = useRouter()
+const menuStore = useMenuStore()
const settingsStore = useSettingsStore()
-
+const { proxy } = getCurrentInstance() as any
const enableSubMenuCollapseButton = computed(() => {
return settingsStore.mode === 'mobile' || (
['side', 'head', 'single'].includes(settingsStore.menu.menuMode)
- && settingsStore.menu.enableSubMenuCollapseButton
+ && settingsStore.menu.enableSubMenuCollapseButton
)
})
-const breadcrumbList = computed(() => {
- const breadcrumbList = []
- if (settingsStore.dashboard.enable) {
- breadcrumbList.push({
- path: '/dashboard',
- title: settingsStore.dashboard.title,
- })
+// const breadcrumbList = computed(() => {
+// const breadcrumbList = []
+// if (settingsStore.dashboard.enable) {
+// breadcrumbList.push({
+// path: '/dashboard',
+// title: settingsStore.dashboard.title,
+// })
+// }
+// if (route.meta.breadcrumbNeste) {
+// breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
+// }
+// return breadcrumbList
+// })
+const publicPath = window.location.href.split('#')[0]
+const breadcrumbList = ref
(menuStore.breadcrumbList)
+const routeInfo = ref(route)
+watch(() => menuStore.breadcrumbList, (newVal) => {
+ if (newVal.length) {
+ breadcrumbList.value = menuStore.breadcrumbList
+ console.log(breadcrumbList.value, 'breadcrumbList.value')
}
- if (route.meta.breadcrumbNeste) {
- breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
- }
- return breadcrumbList
+}, {
+ deep: true,
+ immediate: true,
})
-
+watch(() => route.path, (newVal) => {
+ // console.log(route, '当前路由信息')
+ routeInfo.value = route
+},
+{
+ deep: true,
+ // immediate: true,
+})
const scrollTop = ref(0)
onMounted(() => {
window.addEventListener('scroll', onScroll)
@@ -43,6 +63,21 @@
const toPath = compile(path)
return toPath(route.params)
}
+// 面包屑跳转
+const breadcrumbTo = (path: any) => {
+ router.push(path.path)
+}
+// 关闭面包屑
+const closePage = (path: any) => {
+ menuStore.removeBreadcrumb(path)
+ if (routeInfo.value.path === path.path) {
+ router.push({
+ path: breadcrumbList.value.length ? breadcrumbList.value[0].path : '/home/index',
+ // proxy.hasPerm('/dashboard') ? '/home/index' : '/'
+ //
+ })
+ }
+}
@@ -54,16 +89,38 @@
>
-
@@ -73,6 +130,68 @@
diff --git a/src/assets/icons/close.svg b/src/assets/icons/close.svg
new file mode 100644
index 0000000..fe18fcc
--- /dev/null
+++ b/src/assets/icons/close.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/icons/icon-home.svg b/src/assets/icons/icon-home.svg
new file mode 100644
index 0000000..ce022bf
--- /dev/null
+++ b/src/assets/icons/icon-home.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/images/home.png b/src/assets/images/home.png
new file mode 100644
index 0000000..08c451d
--- /dev/null
+++ b/src/assets/images/home.png
Binary files differ
diff --git a/src/components/Echart/BarChartHorizontal.vue b/src/components/Echart/BarChartHorizontal.vue
index ff88935..eac1b25 100644
--- a/src/components/Echart/BarChartHorizontal.vue
+++ b/src/components/Echart/BarChartHorizontal.vue
@@ -160,7 +160,7 @@
},
color: {
type: String,
- default: '#3e29ce',
+ default: '#0d76d4',
},
/**
* 柱子背景颜色
@@ -299,7 +299,7 @@
splitLine: {
show: props.showAxis,
lineStyle: {
- color: ['#bfbfbf'],
+ color: ['#ccc'],
type: 'dashed',
},
},
@@ -365,23 +365,24 @@
type: 'bar',
colorBy: props.colorBy,
label: {
- normal: {
- show: props.showLabel,
- color: props.labelColor,
- // position: 'right',
- fontSize: 15,
- formatter: props.labelFormatter,
- // align: 'left',
- // verticalAlign: 'middle',
- },
+ show: true,
+ // normal: {
+ // show: true,
+ color: props.labelColor,
+ position: 'right',
+ fontSize: 15,
+ // formatter: props.labelFormatter,
+ // align: 'left',
+ verticalAlign: 'middle',
},
+ // },
showBackground: true,
backgroundStyle: {
color: props.backgroundColor,
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
itemStyle: {
- color: props.color,
+ color: '#2D8CF0',
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
data: item.data,
@@ -399,7 +400,7 @@
else {
chartWidth = chartWidth - 80
}
- series.label.normal!.position = [chartWidth, '50%']
+ // series.label.normal!.position = [chartWidth, '50%']
}
// 如果开启渐变
if (props.gradient && props.colors.length > 0) {
@@ -435,6 +436,7 @@
console.log(newSeries)
option.series = newSeries
}
+ console.log(option, 'option')
return option
}
// 初始化图表
diff --git a/src/components/NormalTable/index.vue b/src/components/NormalTable/index.vue
index 7ee9d06..4c33d8b 100644
--- a/src/components/NormalTable/index.vue
+++ b/src/components/NormalTable/index.vue
@@ -463,7 +463,7 @@
}
.follow-link {
- color: #3d7eff;
+ color: #0d76d4;
cursor: pointer;
&:hover {
diff --git a/src/components/map/index.vue b/src/components/map/index.vue
index 70a8abe..55943a0 100644
--- a/src/components/map/index.vue
+++ b/src/components/map/index.vue
@@ -566,7 +566,7 @@
})
// 聚合点小于11时不聚合
- cluster.value.setMinClusterSize(11)
+ cluster.value.setMinClusterSize(40)
}
const removeCluster = () => {
if (cluster.value) {
diff --git a/src/layouts/components/Header/index.vue b/src/layouts/components/Header/index.vue
index 88abc48..b159b77 100644
--- a/src/layouts/components/Header/index.vue
+++ b/src/layouts/components/Header/index.vue
@@ -65,7 +65,7 @@
height: var(--g-header-height);
color: var(--g-header-color);
background-color: var(--g-header-bg);
- background-image: linear-gradient(90deg, #71b5ff 30%, #3d7eff);
+ background-image: linear-gradient(90deg, #0d76d4 30%, #0d76d4);
transition: background-color 0.3s, var(--el-transition-color);
.header-container {
diff --git a/src/layouts/components/SidebarItem/index.vue b/src/layouts/components/SidebarItem/index.vue
index 8f0cd16..30038a2 100644
--- a/src/layouts/components/SidebarItem/index.vue
+++ b/src/layouts/components/SidebarItem/index.vue
@@ -146,8 +146,10 @@
background-color: var(--g-sub-sidebar-menu-bg) !important;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #4878ca !important;
}
}
}
@@ -157,22 +159,25 @@
color: var(--g-sub-sidebar-menu-color) !important;
background: transparent !important;
height: 40px;
- // line-height: 40px;
line-height: 20px;
margin: 4px 0;
border-radius: 7px;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
}
}
.el-menu-item.is-active,
.el-menu--collapse .el-sub-menu.is-active > .el-sub-menu__title,
.el-sub-menu .el-menu--inline .el-menu-item.is-active {
- color: var(--g-sub-sidebar-menu-active-color) !important;
- background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ // color: var(--g-sub-sidebar-menu-active-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
.icon,
.el-sub-menu__icon-arrow {
diff --git a/src/layouts/components/SubSidebar/index.vue b/src/layouts/components/SubSidebar/index.vue
index 20ef219..a7b717a 100644
--- a/src/layouts/components/SubSidebar/index.vue
+++ b/src/layouts/components/SubSidebar/index.vue
@@ -56,8 +56,8 @@
left: 0;
top: 0;
bottom: 0;
- background-color: var(--g-sub-sidebar-bg);
- background-image: linear-gradient(180deg, #71b5ff, #4384ff);
+ background-color: #0d76d4;
+ background-image: linear-gradient(180deg, #0d76d4, #0d76d4);
box-shadow: 10px 0 10px -10px var(--g-box-shadow-color);
transition: background-color 0.3s, var(--el-transition-box-shadow), left 0.3s, width 0.3s;
diff --git a/src/layouts/components/Topbar/index.vue b/src/layouts/components/Topbar/index.vue
index 4e3120e..e5dfb95 100644
--- a/src/layouts/components/Topbar/index.vue
+++ b/src/layouts/components/Topbar/index.vue
@@ -2,32 +2,52 @@
import { compile } from 'path-to-regexp'
import Tools from '../Tools/index.vue'
import useSettingsStore from '@/store/modules/settings'
-
+import useMenuStore from '@/store/modules/menu'
const route = useRoute()
-
+const router = useRouter()
+const menuStore = useMenuStore()
const settingsStore = useSettingsStore()
-
+const { proxy } = getCurrentInstance() as any
const enableSubMenuCollapseButton = computed(() => {
return settingsStore.mode === 'mobile' || (
['side', 'head', 'single'].includes(settingsStore.menu.menuMode)
- && settingsStore.menu.enableSubMenuCollapseButton
+ && settingsStore.menu.enableSubMenuCollapseButton
)
})
-const breadcrumbList = computed(() => {
- const breadcrumbList = []
- if (settingsStore.dashboard.enable) {
- breadcrumbList.push({
- path: '/dashboard',
- title: settingsStore.dashboard.title,
- })
+// const breadcrumbList = computed(() => {
+// const breadcrumbList = []
+// if (settingsStore.dashboard.enable) {
+// breadcrumbList.push({
+// path: '/dashboard',
+// title: settingsStore.dashboard.title,
+// })
+// }
+// if (route.meta.breadcrumbNeste) {
+// breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
+// }
+// return breadcrumbList
+// })
+const publicPath = window.location.href.split('#')[0]
+const breadcrumbList = ref
(menuStore.breadcrumbList)
+const routeInfo = ref(route)
+watch(() => menuStore.breadcrumbList, (newVal) => {
+ if (newVal.length) {
+ breadcrumbList.value = menuStore.breadcrumbList
+ console.log(breadcrumbList.value, 'breadcrumbList.value')
}
- if (route.meta.breadcrumbNeste) {
- breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
- }
- return breadcrumbList
+}, {
+ deep: true,
+ immediate: true,
})
-
+watch(() => route.path, (newVal) => {
+ // console.log(route, '当前路由信息')
+ routeInfo.value = route
+},
+{
+ deep: true,
+ // immediate: true,
+})
const scrollTop = ref(0)
onMounted(() => {
window.addEventListener('scroll', onScroll)
@@ -43,6 +63,21 @@
const toPath = compile(path)
return toPath(route.params)
}
+// 面包屑跳转
+const breadcrumbTo = (path: any) => {
+ router.push(path.path)
+}
+// 关闭面包屑
+const closePage = (path: any) => {
+ menuStore.removeBreadcrumb(path)
+ if (routeInfo.value.path === path.path) {
+ router.push({
+ path: breadcrumbList.value.length ? breadcrumbList.value[0].path : '/home/index',
+ // proxy.hasPerm('/dashboard') ? '/home/index' : '/'
+ //
+ })
+ }
+}
@@ -54,16 +89,38 @@
>
-
@@ -73,6 +130,68 @@
diff --git a/src/assets/icons/close.svg b/src/assets/icons/close.svg
new file mode 100644
index 0000000..fe18fcc
--- /dev/null
+++ b/src/assets/icons/close.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/icons/icon-home.svg b/src/assets/icons/icon-home.svg
new file mode 100644
index 0000000..ce022bf
--- /dev/null
+++ b/src/assets/icons/icon-home.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/images/home.png b/src/assets/images/home.png
new file mode 100644
index 0000000..08c451d
--- /dev/null
+++ b/src/assets/images/home.png
Binary files differ
diff --git a/src/components/Echart/BarChartHorizontal.vue b/src/components/Echart/BarChartHorizontal.vue
index ff88935..eac1b25 100644
--- a/src/components/Echart/BarChartHorizontal.vue
+++ b/src/components/Echart/BarChartHorizontal.vue
@@ -160,7 +160,7 @@
},
color: {
type: String,
- default: '#3e29ce',
+ default: '#0d76d4',
},
/**
* 柱子背景颜色
@@ -299,7 +299,7 @@
splitLine: {
show: props.showAxis,
lineStyle: {
- color: ['#bfbfbf'],
+ color: ['#ccc'],
type: 'dashed',
},
},
@@ -365,23 +365,24 @@
type: 'bar',
colorBy: props.colorBy,
label: {
- normal: {
- show: props.showLabel,
- color: props.labelColor,
- // position: 'right',
- fontSize: 15,
- formatter: props.labelFormatter,
- // align: 'left',
- // verticalAlign: 'middle',
- },
+ show: true,
+ // normal: {
+ // show: true,
+ color: props.labelColor,
+ position: 'right',
+ fontSize: 15,
+ // formatter: props.labelFormatter,
+ // align: 'left',
+ verticalAlign: 'middle',
},
+ // },
showBackground: true,
backgroundStyle: {
color: props.backgroundColor,
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
itemStyle: {
- color: props.color,
+ color: '#2D8CF0',
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
data: item.data,
@@ -399,7 +400,7 @@
else {
chartWidth = chartWidth - 80
}
- series.label.normal!.position = [chartWidth, '50%']
+ // series.label.normal!.position = [chartWidth, '50%']
}
// 如果开启渐变
if (props.gradient && props.colors.length > 0) {
@@ -435,6 +436,7 @@
console.log(newSeries)
option.series = newSeries
}
+ console.log(option, 'option')
return option
}
// 初始化图表
diff --git a/src/components/NormalTable/index.vue b/src/components/NormalTable/index.vue
index 7ee9d06..4c33d8b 100644
--- a/src/components/NormalTable/index.vue
+++ b/src/components/NormalTable/index.vue
@@ -463,7 +463,7 @@
}
.follow-link {
- color: #3d7eff;
+ color: #0d76d4;
cursor: pointer;
&:hover {
diff --git a/src/components/map/index.vue b/src/components/map/index.vue
index 70a8abe..55943a0 100644
--- a/src/components/map/index.vue
+++ b/src/components/map/index.vue
@@ -566,7 +566,7 @@
})
// 聚合点小于11时不聚合
- cluster.value.setMinClusterSize(11)
+ cluster.value.setMinClusterSize(40)
}
const removeCluster = () => {
if (cluster.value) {
diff --git a/src/layouts/components/Header/index.vue b/src/layouts/components/Header/index.vue
index 88abc48..b159b77 100644
--- a/src/layouts/components/Header/index.vue
+++ b/src/layouts/components/Header/index.vue
@@ -65,7 +65,7 @@
height: var(--g-header-height);
color: var(--g-header-color);
background-color: var(--g-header-bg);
- background-image: linear-gradient(90deg, #71b5ff 30%, #3d7eff);
+ background-image: linear-gradient(90deg, #0d76d4 30%, #0d76d4);
transition: background-color 0.3s, var(--el-transition-color);
.header-container {
diff --git a/src/layouts/components/SidebarItem/index.vue b/src/layouts/components/SidebarItem/index.vue
index 8f0cd16..30038a2 100644
--- a/src/layouts/components/SidebarItem/index.vue
+++ b/src/layouts/components/SidebarItem/index.vue
@@ -146,8 +146,10 @@
background-color: var(--g-sub-sidebar-menu-bg) !important;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #4878ca !important;
}
}
}
@@ -157,22 +159,25 @@
color: var(--g-sub-sidebar-menu-color) !important;
background: transparent !important;
height: 40px;
- // line-height: 40px;
line-height: 20px;
margin: 4px 0;
border-radius: 7px;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
}
}
.el-menu-item.is-active,
.el-menu--collapse .el-sub-menu.is-active > .el-sub-menu__title,
.el-sub-menu .el-menu--inline .el-menu-item.is-active {
- color: var(--g-sub-sidebar-menu-active-color) !important;
- background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ // color: var(--g-sub-sidebar-menu-active-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
.icon,
.el-sub-menu__icon-arrow {
diff --git a/src/layouts/components/SubSidebar/index.vue b/src/layouts/components/SubSidebar/index.vue
index 20ef219..a7b717a 100644
--- a/src/layouts/components/SubSidebar/index.vue
+++ b/src/layouts/components/SubSidebar/index.vue
@@ -56,8 +56,8 @@
left: 0;
top: 0;
bottom: 0;
- background-color: var(--g-sub-sidebar-bg);
- background-image: linear-gradient(180deg, #71b5ff, #4384ff);
+ background-color: #0d76d4;
+ background-image: linear-gradient(180deg, #0d76d4, #0d76d4);
box-shadow: 10px 0 10px -10px var(--g-box-shadow-color);
transition: background-color 0.3s, var(--el-transition-box-shadow), left 0.3s, width 0.3s;
diff --git a/src/layouts/components/Topbar/index.vue b/src/layouts/components/Topbar/index.vue
index 4e3120e..e5dfb95 100644
--- a/src/layouts/components/Topbar/index.vue
+++ b/src/layouts/components/Topbar/index.vue
@@ -2,32 +2,52 @@
import { compile } from 'path-to-regexp'
import Tools from '../Tools/index.vue'
import useSettingsStore from '@/store/modules/settings'
-
+import useMenuStore from '@/store/modules/menu'
const route = useRoute()
-
+const router = useRouter()
+const menuStore = useMenuStore()
const settingsStore = useSettingsStore()
-
+const { proxy } = getCurrentInstance() as any
const enableSubMenuCollapseButton = computed(() => {
return settingsStore.mode === 'mobile' || (
['side', 'head', 'single'].includes(settingsStore.menu.menuMode)
- && settingsStore.menu.enableSubMenuCollapseButton
+ && settingsStore.menu.enableSubMenuCollapseButton
)
})
-const breadcrumbList = computed(() => {
- const breadcrumbList = []
- if (settingsStore.dashboard.enable) {
- breadcrumbList.push({
- path: '/dashboard',
- title: settingsStore.dashboard.title,
- })
+// const breadcrumbList = computed(() => {
+// const breadcrumbList = []
+// if (settingsStore.dashboard.enable) {
+// breadcrumbList.push({
+// path: '/dashboard',
+// title: settingsStore.dashboard.title,
+// })
+// }
+// if (route.meta.breadcrumbNeste) {
+// breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
+// }
+// return breadcrumbList
+// })
+const publicPath = window.location.href.split('#')[0]
+const breadcrumbList = ref
(menuStore.breadcrumbList)
+const routeInfo = ref(route)
+watch(() => menuStore.breadcrumbList, (newVal) => {
+ if (newVal.length) {
+ breadcrumbList.value = menuStore.breadcrumbList
+ console.log(breadcrumbList.value, 'breadcrumbList.value')
}
- if (route.meta.breadcrumbNeste) {
- breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
- }
- return breadcrumbList
+}, {
+ deep: true,
+ immediate: true,
})
-
+watch(() => route.path, (newVal) => {
+ // console.log(route, '当前路由信息')
+ routeInfo.value = route
+},
+{
+ deep: true,
+ // immediate: true,
+})
const scrollTop = ref(0)
onMounted(() => {
window.addEventListener('scroll', onScroll)
@@ -43,6 +63,21 @@
const toPath = compile(path)
return toPath(route.params)
}
+// 面包屑跳转
+const breadcrumbTo = (path: any) => {
+ router.push(path.path)
+}
+// 关闭面包屑
+const closePage = (path: any) => {
+ menuStore.removeBreadcrumb(path)
+ if (routeInfo.value.path === path.path) {
+ router.push({
+ path: breadcrumbList.value.length ? breadcrumbList.value[0].path : '/home/index',
+ // proxy.hasPerm('/dashboard') ? '/home/index' : '/'
+ //
+ })
+ }
+}
@@ -54,16 +89,38 @@
>
-
@@ -73,6 +130,68 @@
diff --git a/src/assets/icons/close.svg b/src/assets/icons/close.svg
new file mode 100644
index 0000000..fe18fcc
--- /dev/null
+++ b/src/assets/icons/close.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/icons/icon-home.svg b/src/assets/icons/icon-home.svg
new file mode 100644
index 0000000..ce022bf
--- /dev/null
+++ b/src/assets/icons/icon-home.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/images/home.png b/src/assets/images/home.png
new file mode 100644
index 0000000..08c451d
--- /dev/null
+++ b/src/assets/images/home.png
Binary files differ
diff --git a/src/components/Echart/BarChartHorizontal.vue b/src/components/Echart/BarChartHorizontal.vue
index ff88935..eac1b25 100644
--- a/src/components/Echart/BarChartHorizontal.vue
+++ b/src/components/Echart/BarChartHorizontal.vue
@@ -160,7 +160,7 @@
},
color: {
type: String,
- default: '#3e29ce',
+ default: '#0d76d4',
},
/**
* 柱子背景颜色
@@ -299,7 +299,7 @@
splitLine: {
show: props.showAxis,
lineStyle: {
- color: ['#bfbfbf'],
+ color: ['#ccc'],
type: 'dashed',
},
},
@@ -365,23 +365,24 @@
type: 'bar',
colorBy: props.colorBy,
label: {
- normal: {
- show: props.showLabel,
- color: props.labelColor,
- // position: 'right',
- fontSize: 15,
- formatter: props.labelFormatter,
- // align: 'left',
- // verticalAlign: 'middle',
- },
+ show: true,
+ // normal: {
+ // show: true,
+ color: props.labelColor,
+ position: 'right',
+ fontSize: 15,
+ // formatter: props.labelFormatter,
+ // align: 'left',
+ verticalAlign: 'middle',
},
+ // },
showBackground: true,
backgroundStyle: {
color: props.backgroundColor,
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
itemStyle: {
- color: props.color,
+ color: '#2D8CF0',
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
data: item.data,
@@ -399,7 +400,7 @@
else {
chartWidth = chartWidth - 80
}
- series.label.normal!.position = [chartWidth, '50%']
+ // series.label.normal!.position = [chartWidth, '50%']
}
// 如果开启渐变
if (props.gradient && props.colors.length > 0) {
@@ -435,6 +436,7 @@
console.log(newSeries)
option.series = newSeries
}
+ console.log(option, 'option')
return option
}
// 初始化图表
diff --git a/src/components/NormalTable/index.vue b/src/components/NormalTable/index.vue
index 7ee9d06..4c33d8b 100644
--- a/src/components/NormalTable/index.vue
+++ b/src/components/NormalTable/index.vue
@@ -463,7 +463,7 @@
}
.follow-link {
- color: #3d7eff;
+ color: #0d76d4;
cursor: pointer;
&:hover {
diff --git a/src/components/map/index.vue b/src/components/map/index.vue
index 70a8abe..55943a0 100644
--- a/src/components/map/index.vue
+++ b/src/components/map/index.vue
@@ -566,7 +566,7 @@
})
// 聚合点小于11时不聚合
- cluster.value.setMinClusterSize(11)
+ cluster.value.setMinClusterSize(40)
}
const removeCluster = () => {
if (cluster.value) {
diff --git a/src/layouts/components/Header/index.vue b/src/layouts/components/Header/index.vue
index 88abc48..b159b77 100644
--- a/src/layouts/components/Header/index.vue
+++ b/src/layouts/components/Header/index.vue
@@ -65,7 +65,7 @@
height: var(--g-header-height);
color: var(--g-header-color);
background-color: var(--g-header-bg);
- background-image: linear-gradient(90deg, #71b5ff 30%, #3d7eff);
+ background-image: linear-gradient(90deg, #0d76d4 30%, #0d76d4);
transition: background-color 0.3s, var(--el-transition-color);
.header-container {
diff --git a/src/layouts/components/SidebarItem/index.vue b/src/layouts/components/SidebarItem/index.vue
index 8f0cd16..30038a2 100644
--- a/src/layouts/components/SidebarItem/index.vue
+++ b/src/layouts/components/SidebarItem/index.vue
@@ -146,8 +146,10 @@
background-color: var(--g-sub-sidebar-menu-bg) !important;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #4878ca !important;
}
}
}
@@ -157,22 +159,25 @@
color: var(--g-sub-sidebar-menu-color) !important;
background: transparent !important;
height: 40px;
- // line-height: 40px;
line-height: 20px;
margin: 4px 0;
border-radius: 7px;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
}
}
.el-menu-item.is-active,
.el-menu--collapse .el-sub-menu.is-active > .el-sub-menu__title,
.el-sub-menu .el-menu--inline .el-menu-item.is-active {
- color: var(--g-sub-sidebar-menu-active-color) !important;
- background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ // color: var(--g-sub-sidebar-menu-active-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
.icon,
.el-sub-menu__icon-arrow {
diff --git a/src/layouts/components/SubSidebar/index.vue b/src/layouts/components/SubSidebar/index.vue
index 20ef219..a7b717a 100644
--- a/src/layouts/components/SubSidebar/index.vue
+++ b/src/layouts/components/SubSidebar/index.vue
@@ -56,8 +56,8 @@
left: 0;
top: 0;
bottom: 0;
- background-color: var(--g-sub-sidebar-bg);
- background-image: linear-gradient(180deg, #71b5ff, #4384ff);
+ background-color: #0d76d4;
+ background-image: linear-gradient(180deg, #0d76d4, #0d76d4);
box-shadow: 10px 0 10px -10px var(--g-box-shadow-color);
transition: background-color 0.3s, var(--el-transition-box-shadow), left 0.3s, width 0.3s;
diff --git a/src/layouts/components/Topbar/index.vue b/src/layouts/components/Topbar/index.vue
index 4e3120e..e5dfb95 100644
--- a/src/layouts/components/Topbar/index.vue
+++ b/src/layouts/components/Topbar/index.vue
@@ -2,32 +2,52 @@
import { compile } from 'path-to-regexp'
import Tools from '../Tools/index.vue'
import useSettingsStore from '@/store/modules/settings'
-
+import useMenuStore from '@/store/modules/menu'
const route = useRoute()
-
+const router = useRouter()
+const menuStore = useMenuStore()
const settingsStore = useSettingsStore()
-
+const { proxy } = getCurrentInstance() as any
const enableSubMenuCollapseButton = computed(() => {
return settingsStore.mode === 'mobile' || (
['side', 'head', 'single'].includes(settingsStore.menu.menuMode)
- && settingsStore.menu.enableSubMenuCollapseButton
+ && settingsStore.menu.enableSubMenuCollapseButton
)
})
-const breadcrumbList = computed(() => {
- const breadcrumbList = []
- if (settingsStore.dashboard.enable) {
- breadcrumbList.push({
- path: '/dashboard',
- title: settingsStore.dashboard.title,
- })
+// const breadcrumbList = computed(() => {
+// const breadcrumbList = []
+// if (settingsStore.dashboard.enable) {
+// breadcrumbList.push({
+// path: '/dashboard',
+// title: settingsStore.dashboard.title,
+// })
+// }
+// if (route.meta.breadcrumbNeste) {
+// breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
+// }
+// return breadcrumbList
+// })
+const publicPath = window.location.href.split('#')[0]
+const breadcrumbList = ref
(menuStore.breadcrumbList)
+const routeInfo = ref(route)
+watch(() => menuStore.breadcrumbList, (newVal) => {
+ if (newVal.length) {
+ breadcrumbList.value = menuStore.breadcrumbList
+ console.log(breadcrumbList.value, 'breadcrumbList.value')
}
- if (route.meta.breadcrumbNeste) {
- breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
- }
- return breadcrumbList
+}, {
+ deep: true,
+ immediate: true,
})
-
+watch(() => route.path, (newVal) => {
+ // console.log(route, '当前路由信息')
+ routeInfo.value = route
+},
+{
+ deep: true,
+ // immediate: true,
+})
const scrollTop = ref(0)
onMounted(() => {
window.addEventListener('scroll', onScroll)
@@ -43,6 +63,21 @@
const toPath = compile(path)
return toPath(route.params)
}
+// 面包屑跳转
+const breadcrumbTo = (path: any) => {
+ router.push(path.path)
+}
+// 关闭面包屑
+const closePage = (path: any) => {
+ menuStore.removeBreadcrumb(path)
+ if (routeInfo.value.path === path.path) {
+ router.push({
+ path: breadcrumbList.value.length ? breadcrumbList.value[0].path : '/home/index',
+ // proxy.hasPerm('/dashboard') ? '/home/index' : '/'
+ //
+ })
+ }
+}
@@ -54,16 +89,38 @@
>
-
@@ -73,6 +130,68 @@
diff --git a/src/assets/icons/close.svg b/src/assets/icons/close.svg
new file mode 100644
index 0000000..fe18fcc
--- /dev/null
+++ b/src/assets/icons/close.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/icons/icon-home.svg b/src/assets/icons/icon-home.svg
new file mode 100644
index 0000000..ce022bf
--- /dev/null
+++ b/src/assets/icons/icon-home.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/images/home.png b/src/assets/images/home.png
new file mode 100644
index 0000000..08c451d
--- /dev/null
+++ b/src/assets/images/home.png
Binary files differ
diff --git a/src/components/Echart/BarChartHorizontal.vue b/src/components/Echart/BarChartHorizontal.vue
index ff88935..eac1b25 100644
--- a/src/components/Echart/BarChartHorizontal.vue
+++ b/src/components/Echart/BarChartHorizontal.vue
@@ -160,7 +160,7 @@
},
color: {
type: String,
- default: '#3e29ce',
+ default: '#0d76d4',
},
/**
* 柱子背景颜色
@@ -299,7 +299,7 @@
splitLine: {
show: props.showAxis,
lineStyle: {
- color: ['#bfbfbf'],
+ color: ['#ccc'],
type: 'dashed',
},
},
@@ -365,23 +365,24 @@
type: 'bar',
colorBy: props.colorBy,
label: {
- normal: {
- show: props.showLabel,
- color: props.labelColor,
- // position: 'right',
- fontSize: 15,
- formatter: props.labelFormatter,
- // align: 'left',
- // verticalAlign: 'middle',
- },
+ show: true,
+ // normal: {
+ // show: true,
+ color: props.labelColor,
+ position: 'right',
+ fontSize: 15,
+ // formatter: props.labelFormatter,
+ // align: 'left',
+ verticalAlign: 'middle',
},
+ // },
showBackground: true,
backgroundStyle: {
color: props.backgroundColor,
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
itemStyle: {
- color: props.color,
+ color: '#2D8CF0',
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
data: item.data,
@@ -399,7 +400,7 @@
else {
chartWidth = chartWidth - 80
}
- series.label.normal!.position = [chartWidth, '50%']
+ // series.label.normal!.position = [chartWidth, '50%']
}
// 如果开启渐变
if (props.gradient && props.colors.length > 0) {
@@ -435,6 +436,7 @@
console.log(newSeries)
option.series = newSeries
}
+ console.log(option, 'option')
return option
}
// 初始化图表
diff --git a/src/components/NormalTable/index.vue b/src/components/NormalTable/index.vue
index 7ee9d06..4c33d8b 100644
--- a/src/components/NormalTable/index.vue
+++ b/src/components/NormalTable/index.vue
@@ -463,7 +463,7 @@
}
.follow-link {
- color: #3d7eff;
+ color: #0d76d4;
cursor: pointer;
&:hover {
diff --git a/src/components/map/index.vue b/src/components/map/index.vue
index 70a8abe..55943a0 100644
--- a/src/components/map/index.vue
+++ b/src/components/map/index.vue
@@ -566,7 +566,7 @@
})
// 聚合点小于11时不聚合
- cluster.value.setMinClusterSize(11)
+ cluster.value.setMinClusterSize(40)
}
const removeCluster = () => {
if (cluster.value) {
diff --git a/src/layouts/components/Header/index.vue b/src/layouts/components/Header/index.vue
index 88abc48..b159b77 100644
--- a/src/layouts/components/Header/index.vue
+++ b/src/layouts/components/Header/index.vue
@@ -65,7 +65,7 @@
height: var(--g-header-height);
color: var(--g-header-color);
background-color: var(--g-header-bg);
- background-image: linear-gradient(90deg, #71b5ff 30%, #3d7eff);
+ background-image: linear-gradient(90deg, #0d76d4 30%, #0d76d4);
transition: background-color 0.3s, var(--el-transition-color);
.header-container {
diff --git a/src/layouts/components/SidebarItem/index.vue b/src/layouts/components/SidebarItem/index.vue
index 8f0cd16..30038a2 100644
--- a/src/layouts/components/SidebarItem/index.vue
+++ b/src/layouts/components/SidebarItem/index.vue
@@ -146,8 +146,10 @@
background-color: var(--g-sub-sidebar-menu-bg) !important;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #4878ca !important;
}
}
}
@@ -157,22 +159,25 @@
color: var(--g-sub-sidebar-menu-color) !important;
background: transparent !important;
height: 40px;
- // line-height: 40px;
line-height: 20px;
margin: 4px 0;
border-radius: 7px;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
}
}
.el-menu-item.is-active,
.el-menu--collapse .el-sub-menu.is-active > .el-sub-menu__title,
.el-sub-menu .el-menu--inline .el-menu-item.is-active {
- color: var(--g-sub-sidebar-menu-active-color) !important;
- background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ // color: var(--g-sub-sidebar-menu-active-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
.icon,
.el-sub-menu__icon-arrow {
diff --git a/src/layouts/components/SubSidebar/index.vue b/src/layouts/components/SubSidebar/index.vue
index 20ef219..a7b717a 100644
--- a/src/layouts/components/SubSidebar/index.vue
+++ b/src/layouts/components/SubSidebar/index.vue
@@ -56,8 +56,8 @@
left: 0;
top: 0;
bottom: 0;
- background-color: var(--g-sub-sidebar-bg);
- background-image: linear-gradient(180deg, #71b5ff, #4384ff);
+ background-color: #0d76d4;
+ background-image: linear-gradient(180deg, #0d76d4, #0d76d4);
box-shadow: 10px 0 10px -10px var(--g-box-shadow-color);
transition: background-color 0.3s, var(--el-transition-box-shadow), left 0.3s, width 0.3s;
diff --git a/src/layouts/components/Topbar/index.vue b/src/layouts/components/Topbar/index.vue
index 4e3120e..e5dfb95 100644
--- a/src/layouts/components/Topbar/index.vue
+++ b/src/layouts/components/Topbar/index.vue
@@ -2,32 +2,52 @@
import { compile } from 'path-to-regexp'
import Tools from '../Tools/index.vue'
import useSettingsStore from '@/store/modules/settings'
-
+import useMenuStore from '@/store/modules/menu'
const route = useRoute()
-
+const router = useRouter()
+const menuStore = useMenuStore()
const settingsStore = useSettingsStore()
-
+const { proxy } = getCurrentInstance() as any
const enableSubMenuCollapseButton = computed(() => {
return settingsStore.mode === 'mobile' || (
['side', 'head', 'single'].includes(settingsStore.menu.menuMode)
- && settingsStore.menu.enableSubMenuCollapseButton
+ && settingsStore.menu.enableSubMenuCollapseButton
)
})
-const breadcrumbList = computed(() => {
- const breadcrumbList = []
- if (settingsStore.dashboard.enable) {
- breadcrumbList.push({
- path: '/dashboard',
- title: settingsStore.dashboard.title,
- })
+// const breadcrumbList = computed(() => {
+// const breadcrumbList = []
+// if (settingsStore.dashboard.enable) {
+// breadcrumbList.push({
+// path: '/dashboard',
+// title: settingsStore.dashboard.title,
+// })
+// }
+// if (route.meta.breadcrumbNeste) {
+// breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
+// }
+// return breadcrumbList
+// })
+const publicPath = window.location.href.split('#')[0]
+const breadcrumbList = ref
(menuStore.breadcrumbList)
+const routeInfo = ref(route)
+watch(() => menuStore.breadcrumbList, (newVal) => {
+ if (newVal.length) {
+ breadcrumbList.value = menuStore.breadcrumbList
+ console.log(breadcrumbList.value, 'breadcrumbList.value')
}
- if (route.meta.breadcrumbNeste) {
- breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
- }
- return breadcrumbList
+}, {
+ deep: true,
+ immediate: true,
})
-
+watch(() => route.path, (newVal) => {
+ // console.log(route, '当前路由信息')
+ routeInfo.value = route
+},
+{
+ deep: true,
+ // immediate: true,
+})
const scrollTop = ref(0)
onMounted(() => {
window.addEventListener('scroll', onScroll)
@@ -43,6 +63,21 @@
const toPath = compile(path)
return toPath(route.params)
}
+// 面包屑跳转
+const breadcrumbTo = (path: any) => {
+ router.push(path.path)
+}
+// 关闭面包屑
+const closePage = (path: any) => {
+ menuStore.removeBreadcrumb(path)
+ if (routeInfo.value.path === path.path) {
+ router.push({
+ path: breadcrumbList.value.length ? breadcrumbList.value[0].path : '/home/index',
+ // proxy.hasPerm('/dashboard') ? '/home/index' : '/'
+ //
+ })
+ }
+}
@@ -54,16 +89,38 @@
>
-
@@ -73,6 +130,68 @@
diff --git a/src/assets/icons/close.svg b/src/assets/icons/close.svg
new file mode 100644
index 0000000..fe18fcc
--- /dev/null
+++ b/src/assets/icons/close.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/icons/icon-home.svg b/src/assets/icons/icon-home.svg
new file mode 100644
index 0000000..ce022bf
--- /dev/null
+++ b/src/assets/icons/icon-home.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/images/home.png b/src/assets/images/home.png
new file mode 100644
index 0000000..08c451d
--- /dev/null
+++ b/src/assets/images/home.png
Binary files differ
diff --git a/src/components/Echart/BarChartHorizontal.vue b/src/components/Echart/BarChartHorizontal.vue
index ff88935..eac1b25 100644
--- a/src/components/Echart/BarChartHorizontal.vue
+++ b/src/components/Echart/BarChartHorizontal.vue
@@ -160,7 +160,7 @@
},
color: {
type: String,
- default: '#3e29ce',
+ default: '#0d76d4',
},
/**
* 柱子背景颜色
@@ -299,7 +299,7 @@
splitLine: {
show: props.showAxis,
lineStyle: {
- color: ['#bfbfbf'],
+ color: ['#ccc'],
type: 'dashed',
},
},
@@ -365,23 +365,24 @@
type: 'bar',
colorBy: props.colorBy,
label: {
- normal: {
- show: props.showLabel,
- color: props.labelColor,
- // position: 'right',
- fontSize: 15,
- formatter: props.labelFormatter,
- // align: 'left',
- // verticalAlign: 'middle',
- },
+ show: true,
+ // normal: {
+ // show: true,
+ color: props.labelColor,
+ position: 'right',
+ fontSize: 15,
+ // formatter: props.labelFormatter,
+ // align: 'left',
+ verticalAlign: 'middle',
},
+ // },
showBackground: true,
backgroundStyle: {
color: props.backgroundColor,
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
itemStyle: {
- color: props.color,
+ color: '#2D8CF0',
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
data: item.data,
@@ -399,7 +400,7 @@
else {
chartWidth = chartWidth - 80
}
- series.label.normal!.position = [chartWidth, '50%']
+ // series.label.normal!.position = [chartWidth, '50%']
}
// 如果开启渐变
if (props.gradient && props.colors.length > 0) {
@@ -435,6 +436,7 @@
console.log(newSeries)
option.series = newSeries
}
+ console.log(option, 'option')
return option
}
// 初始化图表
diff --git a/src/components/NormalTable/index.vue b/src/components/NormalTable/index.vue
index 7ee9d06..4c33d8b 100644
--- a/src/components/NormalTable/index.vue
+++ b/src/components/NormalTable/index.vue
@@ -463,7 +463,7 @@
}
.follow-link {
- color: #3d7eff;
+ color: #0d76d4;
cursor: pointer;
&:hover {
diff --git a/src/components/map/index.vue b/src/components/map/index.vue
index 70a8abe..55943a0 100644
--- a/src/components/map/index.vue
+++ b/src/components/map/index.vue
@@ -566,7 +566,7 @@
})
// 聚合点小于11时不聚合
- cluster.value.setMinClusterSize(11)
+ cluster.value.setMinClusterSize(40)
}
const removeCluster = () => {
if (cluster.value) {
diff --git a/src/layouts/components/Header/index.vue b/src/layouts/components/Header/index.vue
index 88abc48..b159b77 100644
--- a/src/layouts/components/Header/index.vue
+++ b/src/layouts/components/Header/index.vue
@@ -65,7 +65,7 @@
height: var(--g-header-height);
color: var(--g-header-color);
background-color: var(--g-header-bg);
- background-image: linear-gradient(90deg, #71b5ff 30%, #3d7eff);
+ background-image: linear-gradient(90deg, #0d76d4 30%, #0d76d4);
transition: background-color 0.3s, var(--el-transition-color);
.header-container {
diff --git a/src/layouts/components/SidebarItem/index.vue b/src/layouts/components/SidebarItem/index.vue
index 8f0cd16..30038a2 100644
--- a/src/layouts/components/SidebarItem/index.vue
+++ b/src/layouts/components/SidebarItem/index.vue
@@ -146,8 +146,10 @@
background-color: var(--g-sub-sidebar-menu-bg) !important;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #4878ca !important;
}
}
}
@@ -157,22 +159,25 @@
color: var(--g-sub-sidebar-menu-color) !important;
background: transparent !important;
height: 40px;
- // line-height: 40px;
line-height: 20px;
margin: 4px 0;
border-radius: 7px;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
}
}
.el-menu-item.is-active,
.el-menu--collapse .el-sub-menu.is-active > .el-sub-menu__title,
.el-sub-menu .el-menu--inline .el-menu-item.is-active {
- color: var(--g-sub-sidebar-menu-active-color) !important;
- background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ // color: var(--g-sub-sidebar-menu-active-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
.icon,
.el-sub-menu__icon-arrow {
diff --git a/src/layouts/components/SubSidebar/index.vue b/src/layouts/components/SubSidebar/index.vue
index 20ef219..a7b717a 100644
--- a/src/layouts/components/SubSidebar/index.vue
+++ b/src/layouts/components/SubSidebar/index.vue
@@ -56,8 +56,8 @@
left: 0;
top: 0;
bottom: 0;
- background-color: var(--g-sub-sidebar-bg);
- background-image: linear-gradient(180deg, #71b5ff, #4384ff);
+ background-color: #0d76d4;
+ background-image: linear-gradient(180deg, #0d76d4, #0d76d4);
box-shadow: 10px 0 10px -10px var(--g-box-shadow-color);
transition: background-color 0.3s, var(--el-transition-box-shadow), left 0.3s, width 0.3s;
diff --git a/src/layouts/components/Topbar/index.vue b/src/layouts/components/Topbar/index.vue
index 4e3120e..e5dfb95 100644
--- a/src/layouts/components/Topbar/index.vue
+++ b/src/layouts/components/Topbar/index.vue
@@ -2,32 +2,52 @@
import { compile } from 'path-to-regexp'
import Tools from '../Tools/index.vue'
import useSettingsStore from '@/store/modules/settings'
-
+import useMenuStore from '@/store/modules/menu'
const route = useRoute()
-
+const router = useRouter()
+const menuStore = useMenuStore()
const settingsStore = useSettingsStore()
-
+const { proxy } = getCurrentInstance() as any
const enableSubMenuCollapseButton = computed(() => {
return settingsStore.mode === 'mobile' || (
['side', 'head', 'single'].includes(settingsStore.menu.menuMode)
- && settingsStore.menu.enableSubMenuCollapseButton
+ && settingsStore.menu.enableSubMenuCollapseButton
)
})
-const breadcrumbList = computed(() => {
- const breadcrumbList = []
- if (settingsStore.dashboard.enable) {
- breadcrumbList.push({
- path: '/dashboard',
- title: settingsStore.dashboard.title,
- })
+// const breadcrumbList = computed(() => {
+// const breadcrumbList = []
+// if (settingsStore.dashboard.enable) {
+// breadcrumbList.push({
+// path: '/dashboard',
+// title: settingsStore.dashboard.title,
+// })
+// }
+// if (route.meta.breadcrumbNeste) {
+// breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
+// }
+// return breadcrumbList
+// })
+const publicPath = window.location.href.split('#')[0]
+const breadcrumbList = ref
(menuStore.breadcrumbList)
+const routeInfo = ref(route)
+watch(() => menuStore.breadcrumbList, (newVal) => {
+ if (newVal.length) {
+ breadcrumbList.value = menuStore.breadcrumbList
+ console.log(breadcrumbList.value, 'breadcrumbList.value')
}
- if (route.meta.breadcrumbNeste) {
- breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
- }
- return breadcrumbList
+}, {
+ deep: true,
+ immediate: true,
})
-
+watch(() => route.path, (newVal) => {
+ // console.log(route, '当前路由信息')
+ routeInfo.value = route
+},
+{
+ deep: true,
+ // immediate: true,
+})
const scrollTop = ref(0)
onMounted(() => {
window.addEventListener('scroll', onScroll)
@@ -43,6 +63,21 @@
const toPath = compile(path)
return toPath(route.params)
}
+// 面包屑跳转
+const breadcrumbTo = (path: any) => {
+ router.push(path.path)
+}
+// 关闭面包屑
+const closePage = (path: any) => {
+ menuStore.removeBreadcrumb(path)
+ if (routeInfo.value.path === path.path) {
+ router.push({
+ path: breadcrumbList.value.length ? breadcrumbList.value[0].path : '/home/index',
+ // proxy.hasPerm('/dashboard') ? '/home/index' : '/'
+ //
+ })
+ }
+}
@@ -54,16 +89,38 @@
>
-
@@ -73,6 +130,68 @@
diff --git a/src/assets/icons/close.svg b/src/assets/icons/close.svg
new file mode 100644
index 0000000..fe18fcc
--- /dev/null
+++ b/src/assets/icons/close.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/icons/icon-home.svg b/src/assets/icons/icon-home.svg
new file mode 100644
index 0000000..ce022bf
--- /dev/null
+++ b/src/assets/icons/icon-home.svg
@@ -0,0 +1 @@
+
diff --git a/src/assets/images/home.png b/src/assets/images/home.png
new file mode 100644
index 0000000..08c451d
--- /dev/null
+++ b/src/assets/images/home.png
Binary files differ
diff --git a/src/components/Echart/BarChartHorizontal.vue b/src/components/Echart/BarChartHorizontal.vue
index ff88935..eac1b25 100644
--- a/src/components/Echart/BarChartHorizontal.vue
+++ b/src/components/Echart/BarChartHorizontal.vue
@@ -160,7 +160,7 @@
},
color: {
type: String,
- default: '#3e29ce',
+ default: '#0d76d4',
},
/**
* 柱子背景颜色
@@ -299,7 +299,7 @@
splitLine: {
show: props.showAxis,
lineStyle: {
- color: ['#bfbfbf'],
+ color: ['#ccc'],
type: 'dashed',
},
},
@@ -365,23 +365,24 @@
type: 'bar',
colorBy: props.colorBy,
label: {
- normal: {
- show: props.showLabel,
- color: props.labelColor,
- // position: 'right',
- fontSize: 15,
- formatter: props.labelFormatter,
- // align: 'left',
- // verticalAlign: 'middle',
- },
+ show: true,
+ // normal: {
+ // show: true,
+ color: props.labelColor,
+ position: 'right',
+ fontSize: 15,
+ // formatter: props.labelFormatter,
+ // align: 'left',
+ verticalAlign: 'middle',
},
+ // },
showBackground: true,
backgroundStyle: {
color: props.backgroundColor,
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
itemStyle: {
- color: props.color,
+ color: '#2D8CF0',
borderRadius: Array.isArray(props.barConer) ? props.barConer as number[] : props.barConer,
},
data: item.data,
@@ -399,7 +400,7 @@
else {
chartWidth = chartWidth - 80
}
- series.label.normal!.position = [chartWidth, '50%']
+ // series.label.normal!.position = [chartWidth, '50%']
}
// 如果开启渐变
if (props.gradient && props.colors.length > 0) {
@@ -435,6 +436,7 @@
console.log(newSeries)
option.series = newSeries
}
+ console.log(option, 'option')
return option
}
// 初始化图表
diff --git a/src/components/NormalTable/index.vue b/src/components/NormalTable/index.vue
index 7ee9d06..4c33d8b 100644
--- a/src/components/NormalTable/index.vue
+++ b/src/components/NormalTable/index.vue
@@ -463,7 +463,7 @@
}
.follow-link {
- color: #3d7eff;
+ color: #0d76d4;
cursor: pointer;
&:hover {
diff --git a/src/components/map/index.vue b/src/components/map/index.vue
index 70a8abe..55943a0 100644
--- a/src/components/map/index.vue
+++ b/src/components/map/index.vue
@@ -566,7 +566,7 @@
})
// 聚合点小于11时不聚合
- cluster.value.setMinClusterSize(11)
+ cluster.value.setMinClusterSize(40)
}
const removeCluster = () => {
if (cluster.value) {
diff --git a/src/layouts/components/Header/index.vue b/src/layouts/components/Header/index.vue
index 88abc48..b159b77 100644
--- a/src/layouts/components/Header/index.vue
+++ b/src/layouts/components/Header/index.vue
@@ -65,7 +65,7 @@
height: var(--g-header-height);
color: var(--g-header-color);
background-color: var(--g-header-bg);
- background-image: linear-gradient(90deg, #71b5ff 30%, #3d7eff);
+ background-image: linear-gradient(90deg, #0d76d4 30%, #0d76d4);
transition: background-color 0.3s, var(--el-transition-color);
.header-container {
diff --git a/src/layouts/components/SidebarItem/index.vue b/src/layouts/components/SidebarItem/index.vue
index 8f0cd16..30038a2 100644
--- a/src/layouts/components/SidebarItem/index.vue
+++ b/src/layouts/components/SidebarItem/index.vue
@@ -146,8 +146,10 @@
background-color: var(--g-sub-sidebar-menu-bg) !important;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #4878ca !important;
}
}
}
@@ -157,22 +159,25 @@
color: var(--g-sub-sidebar-menu-color) !important;
background: transparent !important;
height: 40px;
- // line-height: 40px;
line-height: 20px;
margin: 4px 0;
border-radius: 7px;
&:hover {
- color: var(--g-sub-sidebar-menu-hover-color) !important;
- background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ // color: var(--g-sub-sidebar-menu-hover-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-hover-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
}
}
.el-menu-item.is-active,
.el-menu--collapse .el-sub-menu.is-active > .el-sub-menu__title,
.el-sub-menu .el-menu--inline .el-menu-item.is-active {
- color: var(--g-sub-sidebar-menu-active-color) !important;
- background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ // color: var(--g-sub-sidebar-menu-active-color) !important;
+ // background-color: var(--g-sub-sidebar-menu-active-bg) !important;
+ color: #fff !important;
+ background-color: #3466bd !important;
.icon,
.el-sub-menu__icon-arrow {
diff --git a/src/layouts/components/SubSidebar/index.vue b/src/layouts/components/SubSidebar/index.vue
index 20ef219..a7b717a 100644
--- a/src/layouts/components/SubSidebar/index.vue
+++ b/src/layouts/components/SubSidebar/index.vue
@@ -56,8 +56,8 @@
left: 0;
top: 0;
bottom: 0;
- background-color: var(--g-sub-sidebar-bg);
- background-image: linear-gradient(180deg, #71b5ff, #4384ff);
+ background-color: #0d76d4;
+ background-image: linear-gradient(180deg, #0d76d4, #0d76d4);
box-shadow: 10px 0 10px -10px var(--g-box-shadow-color);
transition: background-color 0.3s, var(--el-transition-box-shadow), left 0.3s, width 0.3s;
diff --git a/src/layouts/components/Topbar/index.vue b/src/layouts/components/Topbar/index.vue
index 4e3120e..e5dfb95 100644
--- a/src/layouts/components/Topbar/index.vue
+++ b/src/layouts/components/Topbar/index.vue
@@ -2,32 +2,52 @@
import { compile } from 'path-to-regexp'
import Tools from '../Tools/index.vue'
import useSettingsStore from '@/store/modules/settings'
-
+import useMenuStore from '@/store/modules/menu'
const route = useRoute()
-
+const router = useRouter()
+const menuStore = useMenuStore()
const settingsStore = useSettingsStore()
-
+const { proxy } = getCurrentInstance() as any
const enableSubMenuCollapseButton = computed(() => {
return settingsStore.mode === 'mobile' || (
['side', 'head', 'single'].includes(settingsStore.menu.menuMode)
- && settingsStore.menu.enableSubMenuCollapseButton
+ && settingsStore.menu.enableSubMenuCollapseButton
)
})
-const breadcrumbList = computed(() => {
- const breadcrumbList = []
- if (settingsStore.dashboard.enable) {
- breadcrumbList.push({
- path: '/dashboard',
- title: settingsStore.dashboard.title,
- })
+// const breadcrumbList = computed(() => {
+// const breadcrumbList = []
+// if (settingsStore.dashboard.enable) {
+// breadcrumbList.push({
+// path: '/dashboard',
+// title: settingsStore.dashboard.title,
+// })
+// }
+// if (route.meta.breadcrumbNeste) {
+// breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
+// }
+// return breadcrumbList
+// })
+const publicPath = window.location.href.split('#')[0]
+const breadcrumbList = ref
(menuStore.breadcrumbList)
+const routeInfo = ref(route)
+watch(() => menuStore.breadcrumbList, (newVal) => {
+ if (newVal.length) {
+ breadcrumbList.value = menuStore.breadcrumbList
+ console.log(breadcrumbList.value, 'breadcrumbList.value')
}
- if (route.meta.breadcrumbNeste) {
- breadcrumbList.push(...route.meta.breadcrumbNeste.filter(item => item.hide === false))
- }
- return breadcrumbList
+}, {
+ deep: true,
+ immediate: true,
})
-
+watch(() => route.path, (newVal) => {
+ // console.log(route, '当前路由信息')
+ routeInfo.value = route
+},
+{
+ deep: true,
+ // immediate: true,
+})
const scrollTop = ref(0)
onMounted(() => {
window.addEventListener('scroll', onScroll)
@@ -43,6 +63,21 @@
const toPath = compile(path)
return toPath(route.params)
}
+// 面包屑跳转
+const breadcrumbTo = (path: any) => {
+ router.push(path.path)
+}
+// 关闭面包屑
+const closePage = (path: any) => {
+ menuStore.removeBreadcrumb(path)
+ if (routeInfo.value.path === path.path) {
+ router.push({
+ path: breadcrumbList.value.length ? breadcrumbList.value[0].path : '/home/index',
+ // proxy.hasPerm('/dashboard') ? '/home/index' : '/'
+ //
+ })
+ }
+}
@@ -54,16 +89,38 @@
>