Compare commits

..

2 Commits

Author SHA1 Message Date
Bunny 47d4d1055c refactor: 优化代码 2025-03-12 09:42:48 +08:00
Bunny 39afb91f8f feat: 搭建大数据基础 2025-03-11 23:21:59 +08:00
42 changed files with 342 additions and 93 deletions

View File

@ -7,10 +7,16 @@ export const css = (mode): CSSOptions => {
const plugins: Plugin[] = [usePostCssPxToViewport8plugin(mode)]; const plugins: Plugin[] = [usePostCssPxToViewport8plugin(mode)];
return { return {
preprocessorOptions: {
scss: {
additionalData: `@use "@/assets/styles/minix/sidebar" as *;`,
api: 'modern-compiler',
},
},
postcss: { postcss: {
plugins: plugins.filter(Boolean), plugins: plugins.filter(Boolean),
}, },
}; } as CSSOptions;
}; };
/** 是否启用px转换vw插件 */ /** 是否启用px转换vw插件 */

View File

@ -1,25 +1,18 @@
.business-supervision { @mixin view-style-default($sidebar-width,$content-width) {
display: flex;
justify-content: space-between;
align-items: center;
padding: 19px 25px;
width: 100%;
height: 100%;
&__sidebar { &__sidebar {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
flex-direction: column; flex-direction: column;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
width: 530px; width: $sidebar-width;
height: 100%; height: 100%;
color: #fff; color: #fff;
&-item { &-item {
padding: 9px 15px; padding: 9px 15px;
width: 100%; width: 100%;
background: rgba(14, 95, 255, 0.20); background: rgba(14, 95, 255, 0.2);
} }
&-tag { &-tag {
@ -51,10 +44,7 @@
} }
&__content { &__content {
width: 759px; width: $content-width;
height: 100%; height: 100%;
} }
} }

View File

@ -1,5 +1,5 @@
<script lang="ts" setup> <script lang="ts" setup>
import { TimeSelectType } from '@/components/TimeSelect/type'; import { TimeSelectType } from '@/components/PanelItem/TimeSelect/type';
defineProps({ defineProps({
timeList: Array<TimeSelectType>, timeList: Array<TimeSelectType>,

View File

@ -1,4 +1,3 @@
import Layout from '@/layout/index.vue';
import type { RouteConfigsTable } from '@/types/router/Route'; import type { RouteConfigsTable } from '@/types/router/Route';
const routes: RouteConfigsTable[] = [ const routes: RouteConfigsTable[] = [
@ -8,30 +7,23 @@ const routes: RouteConfigsTable[] = [
component: () => import('@/views/welcome/index.vue'), component: () => import('@/views/welcome/index.vue'),
meta: { transition: 'fade', title: '后台管理系统大标题' }, meta: { transition: 'fade', title: '后台管理系统大标题' },
}, },
{
path: '/business-supervision',
name: 'manageForms',
component: () => import('@/views/business-supervision/index.vue'),
meta: { title: '智慧经营监管中心', subtitle: '园区经营可视化' },
},
{ {
path: '/smart-park', path: '/smart-park',
name: 'smartParking', name: 'smartPark',
component: () => import('@/views/smart-park/index.vue'), component: () => import('@/views/smart-park/index.vue'),
meta: { title: '智慧智能监管中心', subtitle: '车辆监控中心' }, meta: { title: '智慧智能监管中心', subtitle: '车辆监控中心' },
}, },
{ {
path: '/redirect', path: '/business-supervision',
component: Layout, name: 'businessSupervision',
meta: { hidden: true }, component: () => import('@/views/business-supervision/index.vue'),
children: [ meta: { title: '智慧经营监管中心', subtitle: '园区经营可视化' },
{
path: '/redirect/:path(.*)',
component: () => import('@/views/redirect/index.vue'),
}, },
], {
path: '/big-data',
name: 'bigData',
component: () => import('@/views/big-data/index.vue'),
meta: { title: '大数据可视化中心', subtitle: '大数据可视化' },
}, },
]; ];

View File

@ -9,7 +9,20 @@ const routes: RouteRecordRaw[] = [
name: 'layout', name: 'layout',
component: Layout, component: Layout,
redirect: 'welcome', redirect: 'welcome',
children: [...home], children: [
...home,
{
path: '/redirect',
component: Layout,
meta: { hidden: true },
children: [
{
path: '/:path(.*)',
component: () => import('@/views/redirect/index.vue'),
},
],
},
],
}, },
{ {
path: '/redirect', path: '/redirect',

14
src/utils/chart.ts Normal file
View File

@ -0,0 +1,14 @@
import { useEventListener } from '@vueuse/core';
import type { EChartsType } from 'echarts';
/** 通用重置图表样式 */
export const debounceChart = (myChart: EChartsType) => {
useEventListener(
window,
'resize',
() => {
myChart.resize();
},
500
);
};

View File

@ -0,0 +1,11 @@
<script setup lang="ts">
</script>
<template>
top
</template>
<style scoped lang="scss">
</style>

View File

@ -0,0 +1,5 @@
<script lang="ts" setup></script>
<template>top</template>
<style lang="scss" scoped></style>

View File

@ -0,0 +1,11 @@
<script setup lang="ts">
</script>
<template>
top
</template>
<style scoped lang="scss">
</style>

View File

@ -0,0 +1,15 @@
<script lang="ts" setup>
import ContentBottom from '@/views/big-data/components/big-data-content/components/content-bottom.vue';
import ContentMiddle from '@/views/big-data/components/big-data-content/components/content-middle.vue';
import ContentTop from '@/views/big-data/components/big-data-content/components/content-top.vue';
</script>
<template>
<div class="big-data__content">
<content-top />
<content-middle />
<content-bottom />
</div>
</template>
<style lang="scss" scoped></style>

View File

@ -0,0 +1,13 @@
<script lang="ts" setup></script>
<template>
<div class="big-data__sidebar-item h-[272px]">
<div class="flex-x-between">
<div class="big-data__sidebar-title">
<h1>规模效益</h1>
</div>
</div>
</div>
</template>
<style lang="scss" scoped></style>

View File

@ -0,0 +1,13 @@
<script lang="ts" setup></script>
<template>
<div class="big-data__sidebar-item h-[389px]">
<div class="flex-x-between">
<div class="big-data__sidebar-title">
<h1>规模效益</h1>
</div>
</div>
</div>
</template>
<style lang="scss" scoped></style>

View File

@ -0,0 +1,66 @@
<script lang="ts" setup>
import { ref } from 'vue';
import TimeSelect from '@/components/PanelItem/TimeSelect/index.vue';
import { TimeSelectType } from '@/components/PanelItem/TimeSelect/type';
const timeList = ref<TimeSelectType[]>([
{ label: '2020.09', value: '2021' },
{ label: '2020.09', value: '2021' },
{ label: '2020.09', value: '2021' },
]);
</script>
<template>
<div class="big-data__sidebar-item h-[200px]">
<div class="flex-x-between">
<div class="big-data__sidebar-title">
<h1>规模效益</h1>
</div>
<div>
<TimeSelect :time-list="timeList" />
</div>
</div>
<ul class="big-data__body">
<li class="big-data__body-item">
<div class="big-data__body-title">
<h1>进出口总值</h1>
<span>
总值增幅
<em>+123%</em>
</span>
</div>
</li>
</ul>
</div>
</template>
<style lang="scss" scoped>
.big-data__body {
display: flex;
flex-direction: column;
justify-content: center;
width: 100%;
height: 100%;
&-item {
display: flex;
justify-content: center;
align-items: center;
margin: 18px 15px;
width: 100%;
}
&-title {
display: flex;
justify-content: space-between;
width: 100%;
em {
font-style: normal;
}
}
}
</style>

View File

@ -0,0 +1,13 @@
<script lang="ts" setup>
import LeftBottom from '@/views/big-data/components/big-data-left/components/left-bottom.vue';
import LeftMiddle from '@/views/big-data/components/big-data-left/components/left-middle.vue';
import LeftTop from '@/views/big-data/components/big-data-left/components/left-top.vue';
</script>
<template>
<div class="big-data__sidebar">
<left-top />
<left-middle />
<left-bottom />
</div>
</template>

View File

@ -0,0 +1,11 @@
<script setup lang="ts">
</script>
<template>
top
</template>
<style scoped lang="scss">
</style>

View File

@ -0,0 +1,11 @@
<script setup lang="ts">
</script>
<template>
top
</template>
<style scoped lang="scss">
</style>

View File

@ -0,0 +1,28 @@
<script lang="ts" setup>
import { ref } from 'vue';
import TimeSelect from '@/components/PanelItem/TimeSelect/index.vue';
import { TimeSelectType } from '@/components/PanelItem/TimeSelect/type';
const timeList = ref<TimeSelectType[]>([
{ label: '2020.09', value: '2021' },
{ label: '2020.09', value: '2021' },
{ label: '2020.09', value: '2021' },
]);
</script>
<template>
<div class="big-data__sidebar-item h-[200px]">
<div class="flex-x-between">
<div class="big-data__sidebar-title">
<h1>规模效益</h1>
</div>
<div>
<TimeSelect :time-list="timeList" />
</div>
</div>
</div>
</template>
<style lang="scss" scoped></style>

View File

@ -0,0 +1,15 @@
<script lang="ts" setup>
import RightBottom from '@/views/big-data/components/big-data-right/components/right-bottom.vue';
import RightMiddle from '@/views/big-data/components/big-data-right/components/right-middle.vue';
import RightTop from '@/views/big-data/components/big-data-right/components/right-top.vue';
</script>
<template>
<div class="big-data__sidebar">
<right-top />
<right-middle />
<right-bottom />
</div>
</template>
<style lang="scss" scoped></style>

View File

@ -0,0 +1,26 @@
<script lang="ts" setup>
import BigDataContent from '@/views/big-data/components/big-data-content/index.vue';
import BigDataLeft from '@/views/big-data/components/big-data-left/index.vue';
import BigDataRight from '@/views/big-data/components/big-data-right/index.vue';
</script>
<template>
<div class="big-data">
<big-data-left />
<big-data-content />
<big-data-right />
</div>
</template>
<style lang="scss">
.big-data {
display: flex;
justify-content: space-between;
align-items: center;
padding: 19px 25px;
width: 100%;
height: 100%;
@include view-style-default(530px, 748px);
}
</style>

View File

@ -1,10 +1,10 @@
import 'echarts/lib/component/dataZoom'; import 'echarts/lib/component/dataZoom';
import { useDebounceFn, useEventListener } from '@vueuse/core';
import type { EChartsOption } from 'echarts'; import type { EChartsOption } from 'echarts';
import { type Ref, ref } from 'vue'; import { type Ref, ref } from 'vue';
import echarts from '@/plugins/echarts'; import echarts from '@/plugins/echarts';
import { debounceChart } from '@/utils/chart';
const option = ref<EChartsOption>(); const option = ref<EChartsOption>();
option.value = { option.value = {
@ -69,10 +69,7 @@ export const renderEcharts = (element: Ref<HTMLDivElement>) => {
devicePixelRatio: window.devicePixelRatio, devicePixelRatio: window.devicePixelRatio,
}); });
const debouncedFn = useDebounceFn(() => { debounceChart(myChart);
myChart.resize();
}, 1000);
useEventListener(window, 'resize', debouncedFn);
myChart.setOption(option.value); myChart.setOption(option.value);
}; };

View File

@ -1,10 +1,10 @@
import 'echarts/lib/component/dataZoom'; import 'echarts/lib/component/dataZoom';
import { useDebounceFn, useEventListener } from '@vueuse/core';
import type { EChartsOption } from 'echarts'; import type { EChartsOption } from 'echarts';
import { type Ref, ref } from 'vue'; import { type Ref, ref } from 'vue';
import echarts from '@/plugins/echarts'; import echarts from '@/plugins/echarts';
import { debounceChart } from '@/utils/chart';
const option = ref<EChartsOption>(); const option = ref<EChartsOption>();
option.value = { option.value = {
@ -90,10 +90,7 @@ export const renderEcharts = (element: Ref<HTMLDivElement>) => {
devicePixelRatio: window.devicePixelRatio, devicePixelRatio: window.devicePixelRatio,
}); });
const debouncedFn = useDebounceFn(() => { debounceChart(myChart);
myChart.resize();
}, 1000);
useEventListener(window, 'resize', debouncedFn);
myChart.setOption(option.value); myChart.setOption(option.value);
}; };

View File

@ -1,10 +1,10 @@
import 'echarts/lib/component/dataZoom'; import 'echarts/lib/component/dataZoom';
import { useDebounceFn, useEventListener } from '@vueuse/core';
import type { EChartsOption } from 'echarts'; import type { EChartsOption } from 'echarts';
import { type Ref, ref } from 'vue'; import { type Ref, ref } from 'vue';
import echarts from '@/plugins/echarts'; import echarts from '@/plugins/echarts';
import { debounceChart } from '@/utils/chart';
const option = ref<EChartsOption>(); const option = ref<EChartsOption>();
option.value = { option.value = {
@ -50,10 +50,7 @@ export const renderEcharts = (element: Ref<HTMLDivElement>) => {
devicePixelRatio: window.devicePixelRatio, devicePixelRatio: window.devicePixelRatio,
}); });
const debouncedFn = useDebounceFn(() => { debounceChart(myChart);
myChart.resize();
}, 1000);
useEventListener(window, 'resize', debouncedFn);
myChart.setOption(option.value); myChart.setOption(option.value);
}; };

View File

@ -1,9 +1,9 @@
<script lang="ts" setup> <script lang="ts" setup>
import { onMounted, ref } from 'vue'; import { onMounted, ref } from 'vue';
import TimeSelect from '@/components/TimeSelect/index.vue'; import TimeSelect from '@/components/PanelItem/TimeSelect/index.vue';
import { TimeSelectType } from '@/components/TimeSelect/type'; import { TimeSelectType } from '@/components/PanelItem/TimeSelect/type';
import { renderEcharts } from '@/views/business-supervision/components/business-supervision-content/charts/contentBottom'; import { renderEcharts } from '@/views/business-supervision/charts/contentBottom';
const chartYear = ref(); const chartYear = ref();

View File

@ -11,5 +11,3 @@ import ContentTop from '@/views/business-supervision/components/business-supervi
<content-bottom /> <content-bottom />
</div> </div>
</template> </template>
<style lang="scss" scoped></style>

View File

@ -1,7 +1,7 @@
<script lang="ts" setup> <script lang="ts" setup>
import { onMounted, ref } from 'vue'; import { onMounted, ref } from 'vue';
import { renderEcharts } from '@/views/business-supervision/components/business-supervision-left/charts/sidebarMiddle'; import { renderEcharts } from '@/views/business-supervision/charts/leftSidebarMiddle';
const chartPie = ref<HTMLDivElement>(); const chartPie = ref<HTMLDivElement>();

View File

@ -1,10 +1,10 @@
<script lang="tsx" setup> <script lang="tsx" setup>
import { onMounted, ref } from 'vue'; import { onMounted, ref } from 'vue';
import { displayContent } from '@/components/CommonItem/DigitalNumber'; import { displayContent } from '@/components/PanelItem/DigitalNumber';
import TimeSelect from '@/components/TimeSelect/index.vue'; import TimeSelect from '@/components/PanelItem/TimeSelect/index.vue';
import { TimeSelectType } from '@/components/TimeSelect/type'; import { TimeSelectType } from '@/components/PanelItem/TimeSelect/type';
import { renderEcharts } from '@/views/business-supervision/components/business-supervision-left/charts/sidebarTop'; import { renderEcharts } from '@/views/business-supervision/charts/leftSidebarTop';
const chartProgress = ref<HTMLDivElement>(); const chartProgress = ref<HTMLDivElement>();
const money = '1386114'; const money = '1386114';

View File

@ -1,7 +1,7 @@
<script lang="ts" setup> <script lang="ts" setup>
import { onMounted, ref } from 'vue'; import { onMounted, ref } from 'vue';
import BottomChart from '@/views/business-supervision/components/business-supervision-right/chart/bottom-chart.vue'; import BottomChart from '@/views/business-supervision/charts/right-bottom-chart.vue';
const charData1 = ref(Math.round(Math.random() * 100)); const charData1 = ref(Math.round(Math.random() * 100));
const charData2 = ref(Math.round(Math.random() * 100)); const charData2 = ref(Math.round(Math.random() * 100));
@ -99,6 +99,10 @@ onMounted(() => {
&-change { &-change {
display: flex; display: flex;
p {
font-size: 13px;
}
span { span {
display: inline-block; display: inline-block;
margin: 0 0 0 9px; margin: 0 0 0 9px;

View File

@ -1,8 +1,8 @@
<script lang="ts" setup> <script lang="ts" setup>
import { ref } from 'vue'; import { ref } from 'vue';
import TimeSelect from '@/components/TimeSelect/index.vue'; import TimeSelect from '@/components/PanelItem/TimeSelect/index.vue';
import { TimeSelectType } from '@/components/TimeSelect/type'; import { TimeSelectType } from '@/components/PanelItem/TimeSelect/type';
const timeList = ref<TimeSelectType[]>([ const timeList = ref<TimeSelectType[]>([
{ label: '2020.09', value: '2021' }, { label: '2020.09', value: '2021' },

View File

@ -12,6 +12,15 @@ import BusinessSupervisionRight from '@/views/business-supervision/components/bu
</div> </div>
</template> </template>
<style> <style lang="scss">
@import 'style.scss'; .business-supervision {
display: flex;
justify-content: space-between;
align-items: center;
padding: 19px 25px;
width: 100%;
height: 100%;
@include view-style-default(530px, 759px);
}
</style> </style>

View File

@ -11,5 +11,5 @@ const router = useRouter();
const { params, query } = route; const { params, query } = route;
const { path } = params; const { path } = params;
router.replace({ path: '/' + path, query }); router.replace({ path: '/', query });
</script> </script>

View File

@ -1,10 +1,10 @@
import 'echarts/lib/component/dataZoom'; import 'echarts/lib/component/dataZoom';
import { useDebounceFn, useEventListener } from '@vueuse/core';
import type { EChartsOption } from 'echarts'; import type { EChartsOption } from 'echarts';
import { type Ref, ref } from 'vue'; import { type Ref, ref } from 'vue';
import echarts from '@/plugins/echarts'; import echarts from '@/plugins/echarts';
import { debounceChart } from '@/utils/chart';
const option = ref<EChartsOption>(); const option = ref<EChartsOption>();
option.value = { option.value = {
@ -102,10 +102,7 @@ export const renderEcharts = (element: Ref<HTMLDivElement>) => {
devicePixelRatio: window.devicePixelRatio, devicePixelRatio: window.devicePixelRatio,
}); });
const debouncedFn = useDebounceFn(() => { debounceChart(myChart);
myChart.resize();
}, 1000);
useEventListener(window, 'resize', debouncedFn);
myChart.setOption(option.value); myChart.setOption(option.value);
}; };

View File

@ -15,7 +15,7 @@ defineProps({
<img <img
alt="arrow-item" alt="arrow-item"
class="float-left h-[16px]" class="float-left h-[16px]"
src="../../../../../../../assets/images/smart-park/arrow/arrow-item.png" src="@/assets/images/smart-park/arrow/arrow-item.png"
/> />
</div> </div>
</div> </div>

View File

@ -11,22 +11,22 @@
<!-- 汽车列表 --> <!-- 汽车列表 -->
<ul class="mt-[32px]"> <ul class="mt-[32px]">
<li class="smart-park__sidebar--left-item"> <li class="smart-park__sidebar--left-item">
<img alt="car-1" src="../../../../../../assets/images/smart-park/car/car-1.png" /> <img alt="car-1" src="@/assets/images/smart-park/car/car-1.png" />
<p>入卡口西北门</p> <p>入卡口西北门</p>
<span class="dashed-circle c-primary-secondary border-b-primary-secondary">畅通</span> <span class="dashed-circle c-primary-secondary border-b-primary-secondary">畅通</span>
</li> </li>
<li class="smart-park__sidebar--left-item"> <li class="smart-park__sidebar--left-item">
<img alt="car-1" src="../../../../../../assets/images/smart-park/car/car-1.png" /> <img alt="car-1" src="@/assets/images/smart-park/car/car-1.png" />
<p>入卡口东北门</p> <p>入卡口东北门</p>
<span class="dashed-circle c-primary-secondary border-b-primary-secondary">畅通</span> <span class="dashed-circle c-primary-secondary border-b-primary-secondary">畅通</span>
</li> </li>
<li class="smart-park__sidebar--left-item"> <li class="smart-park__sidebar--left-item">
<img alt="car-1" src="../../../../../../assets/images/smart-park/car/car-2.png" /> <img alt="car-1" src="@/assets/images/smart-park/car/car-2.png" />
<p>入卡口东北门</p> <p>入卡口东北门</p>
<span class="dashed-circle c-warning border-b-warning">拥堵</span> <span class="dashed-circle c-warning border-b-warning">拥堵</span>
</li> </li>
<li class="smart-park__sidebar--left-item"> <li class="smart-park__sidebar--left-item">
<img alt="car-1" src="../../../../../../assets/images/smart-park/car/car-1.png" /> <img alt="car-1" src="@/assets/images/smart-park/car/car-1.png" />
<p>入卡口东南门</p> <p>入卡口东南门</p>
<span class="dashed-circle c-primary-secondary border-b-primary-secondary">畅通</span> <span class="dashed-circle c-primary-secondary border-b-primary-secondary">畅通</span>
</li> </li>

View File

@ -1,7 +1,7 @@
<script lang="ts" setup> <script lang="ts" setup>
import { onMounted, ref } from 'vue'; import { onMounted, ref } from 'vue';
import { renderEcharts } from '@/views/smart-park/components/smart-park-content/components/smart-park-sidebar-right/charts/charts'; import { renderEcharts } from '@/views/smart-park/charts/right-sidebar';
const weekDataChart = ref<HTMLDivElement>(); const weekDataChart = ref<HTMLDivElement>();

View File

@ -19,6 +19,6 @@ import SmartPartFooter from '@/views/smart-park/components/smart-park-footer/ind
</div> </div>
</template> </template>
<style> <style lang="scss">
@import 'style.scss'; @use 'style.scss';
</style> </style>

View File

@ -7,26 +7,23 @@ const router = useRouter();
<template> <template>
<ul class="welcome__content-list"> <ul class="welcome__content-list">
<li @click="router.push('/smart-park')"> <li @click="router.push('/smart-park')">
<img alt="car" src="../../../../assets/images/welcome/icon/center/car.png" /> <img alt="car" src="@/assets/images/welcome/icon/center/car.png" />
<span>智慧停车</span> <span>智慧停车</span>
</li> </li>
<li> <li>
<img <img alt="distribution" src="@/assets/images/welcome/icon/center/distribution.png" />
alt="distribution"
src="../../../../assets/images/welcome/icon/center/distribution.png"
/>
<span>智慧配送</span> <span>智慧配送</span>
</li> </li>
<li> <li>
<img alt="muck" src="../../../../assets/images/welcome/icon/center/muck.png" /> <img alt="muck" src="@/assets/images/welcome/icon/center/muck.png" />
<span>智慧渣土</span> <span>智慧渣土</span>
</li> </li>
<li> <li>
<img alt="clean-city" src="../../../../assets/images/welcome/icon/center/clean-city.png" /> <img alt="clean-city" src="@/assets/images/welcome/icon/center/clean-city.png" />
<span>智慧洁城</span> <span>智慧洁城</span>
</li> </li>
<li> <li>
<img alt="lamp" src="../../../../assets/images/welcome/icon/center/lamp.png" /> <img alt="lamp" src="@/assets/images/welcome/icon/center/lamp.png" />
<span>智慧路灯</span> <span>智慧路灯</span>
</li> </li>
</ul> </ul>

View File

@ -3,10 +3,10 @@ import ContentList from '@/views/welcome/components/welcome-content/content-list
</script> </script>
<template> <template>
<div class="welcome__content flex-y-around"> <div class="flex-y-around">
<div class="mt-[158px]"> <div class="mt-[158px]">
<p> <p>
<img alt="welcome-bg" src="../../../../assets/images/welcome/icon/welcome.png" /> <img alt="welcome-bg" src="@/assets/images/welcome/icon/welcome.png" />
<i>xxxx</i> <i>xxxx</i>
你好 欢迎使用xxxxxxxzz 你好 欢迎使用xxxxxxxzz
</p> </p>

View File

@ -8,7 +8,7 @@ const list = ref([
{ icon: 'i-material-symbols:home-and-garden', name: '园区', target: '/' }, { icon: 'i-material-symbols:home-and-garden', name: '园区', target: '/' },
{ icon: 'i-fa:building', name: '园区', target: '/' }, { icon: 'i-fa:building', name: '园区', target: '/' },
{ icon: 'i-fa-solid:chart-line', name: '经营', target: '/business-supervision' }, { icon: 'i-fa-solid:chart-line', name: '经营', target: '/business-supervision' },
{ icon: 'i-ri:community-fill', name: '园区', target: '/' }, { icon: 'i-eos-icons:big-data-outlined', name: '大数据', target: '/big-data' },
]); ]);
</script> </script>

View File

@ -10,6 +10,6 @@ import WelcomeFooter from '@/views/welcome/components/welcome-footer.vue';
</div> </div>
</template> </template>
<style> <style lang="scss">
@import 'style.scss'; @use 'style.scss';
</style> </style>