智慧园区前端大屏
linwe
2024-11-06 8e29fdae3e7dde32579495be389e5110785b95aa
企业详情
9 files modified
12 files added
1049 ■■■■■ changed files
src/router/index.js 8 ●●●● patch | view | raw | blame | history
src/views/companyInfo/components/box/dataContent.vue 25 ●●●●● patch | view | raw | blame | history
src/views/companyInfo/components/box/fireContent.vue 25 ●●●●● patch | view | raw | blame | history
src/views/companyInfo/components/box/fireSource.vue 135 ●●●●● patch | view | raw | blame | history
src/views/companyInfo/components/box/fireTrend.vue 160 ●●●●● patch | view | raw | blame | history
src/views/companyInfo/components/box/occurStatistics.vue 160 ●●●●● patch | view | raw | blame | history
src/views/companyInfo/components/box/publicContent.vue 26 ●●●●● patch | view | raw | blame | history
src/views/companyInfo/components/box/unitContent.vue 25 ●●●●● patch | view | raw | blame | history
src/views/companyInfo/components/centerContainer.vue 112 ●●●●● patch | view | raw | blame | history
src/views/companyInfo/components/leftContainer.vue 48 ●●●●● patch | view | raw | blame | history
src/views/companyInfo/components/mainMenu.vue 98 ●●●●● patch | view | raw | blame | history
src/views/companyInfo/components/rightContainer.vue 105 ●●●●● patch | view | raw | blame | history
src/views/companyInfo/index.vue 36 ●●●●● patch | view | raw | blame | history
src/views/layout/components/scomponents/layersControl.vue 6 ●●●● patch | view | raw | blame | history
src/views/layout/index.vue 10 ●●●● patch | view | raw | blame | history
src/views/sub/index.vue 8 ●●●● patch | view | raw | blame | history
src/views/survey/components/box/dataContent.vue 8 ●●●● patch | view | raw | blame | history
src/views/survey/components/box/fireContent.vue 8 ●●●● patch | view | raw | blame | history
src/views/survey/components/box/fireSource.vue 14 ●●●●● patch | view | raw | blame | history
src/views/survey/components/box/fireTrend.vue 24 ●●●● patch | view | raw | blame | history
src/views/survey/components/box/unitContent.vue 8 ●●●● patch | view | raw | blame | history
src/router/index.js
@@ -77,14 +77,14 @@
        path: 'sub',
        name: 'sub',
        component: () => import('@/views/sub/index.vue'),
        redirect: '/layout/sub/a',
        redirect: '/layout/sub/companyInfo',
        children: [
          {
            path: 'a',
            path: 'companyInfo',
            meta: {
              title: 'a示例'
            },
            component: () => import('@/views/a/index.vue')
            component: () => import('@/views/companyInfo/index.vue')
          },
        ]
      }
@@ -100,4 +100,4 @@
  routes
})
export default router
export default router
src/views/companyInfo/components/box/dataContent.vue
New file
@@ -0,0 +1,25 @@
<!--
 * @Author: shuishen 1109946754@qq.com
 * @Date: 2023-03-13 14:54:26
 * @LastEditors: shuishen 1109946754@qq.com
 * @LastEditTime: 2023-03-13 15:00:55
 * @FilePath: \forest-fire\src\views\statistics\components\box\dataContent.vue
 * @Description:
 *
 * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved.
-->
<script setup>
import publicContent from './publicContent.vue'
</script>
<template>
    <public-content>
        <template #content>
            <div>
            </div>
        </template>
    </public-content>
</template>
<style lang="scss" scoped></style>
src/views/companyInfo/components/box/fireContent.vue
New file
@@ -0,0 +1,25 @@
<!--
 * @Author: shuishen 1109946754@qq.com
 * @Date: 2023-03-13 14:54:26
 * @LastEditors: shuishen 1109946754@qq.com
 * @LastEditTime: 2023-03-13 15:00:55
 * @FilePath: \forest-fire\src\views\statistics\components\box\dataContent.vue
 * @Description:
 *
 * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved.
-->
<script setup>
import publicContent from './publicContent.vue'
</script>
<template>
    <public-content>
        <template #content>
            <div>
            </div>
        </template>
    </public-content>
</template>
<style lang="scss" scoped></style>
src/views/companyInfo/components/box/fireSource.vue
New file
@@ -0,0 +1,135 @@
<!--
 * @Author: shuishen 1109946754@qq.com
 * @Date: 2023-03-13 14:54:26
 * @LastEditors: shuishen 1109946754@qq.com
 * @LastEditTime: 2023-03-13 15:00:55
 * @FilePath: \forest-fire\src\views\statistics\components\box\dataContent.vue
 * @Description:
 *
 * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved.
-->
<script setup>
import publicContent from './publicContent.vue'
import { getAssetsFile } from 'utils/utils'
let data = reactive({
    companyInfo: {}
})
let companyInfoList = ref([
    {
        id: 1,
        name: 'address',
        title: '单位所在地',
        content: '',
    },
    {
        id: 2,
        name: 'lng',
        title: '中心经度',
        content: '',
    },
    {
        id: 3,
        name: 'lat',
        title: '中心纬度',
        content: '',
    },
    {
        id: 4,
        name: 'name',
        title: '行业体制',
        content: '',
    },
    {
        id: 5,
        name: 'personInCha',
        title: '负责人',
        content: '',
    }
])
onMounted(() => {
    data.companyInfo = JSON.parse(localStorage.getItem('companyInfo'))
    console.log(data.companyInfo)
    companyInfoList.value.forEach(item => {
        data.companyInfo[item.name] && (item.content = data.companyInfo[item.name])
    });
})
</script>
<template>
    <public-content>
        <template #content>
            <div class="data-content">
                <div class="content-firmIntro">
                    <!-- <div>{{ data.companyInfo.firmIntro }}</div> -->
                    {{ data.companyInfo.firmIntro }}
                </div>
                <div class="company-info">
                    <div class="company-info-item" v-for="item in companyInfoList" :key="item.id">
                        <el-row>
                            <el-col :span="8">
                                <div class="company-info-title">{{ item.title }}</div>
                            </el-col>
                            <el-col :span="16">
                                <div class="company-info-content">{{ item.content }}</div>
                            </el-col>
                        </el-row>
                    </div>
                </div>
                <div class="company-info-image">
                    <!-- <img :src="data.companyInfo.image_urls" alt=""> -->
                    {{ "图片" }}
                </div>
            </div>
        </template>
    </public-content>
</template>
<style lang="scss" scoped>
.data-content {
    color: #fff;
}
.content-firmIntro {
    height: 200px;
    overflow-x: hidden;
}
.company-info {
    margin-top: 10px;
    border-top: #dfdcdc 2px solid;
    // background-color: pink;
}
.company-info-item {
    margin-top: 20px;
}
.company-info-title {
    font-weight: bold;
}
.company-info-content {
    font-size: 14px;
}
.company-info-image {
    margin-top: 20px;
    width: 100%;
    height: 200px;
    background-color: pink;
    text-align: center;
}
</style>
src/views/companyInfo/components/box/fireTrend.vue
New file
@@ -0,0 +1,160 @@
<!--
 * @Author: shuishen 1109946754@qq.com
 * @Date: 2023-03-13 14:54:26
 * @LastEditors: shuishen 1109946754@qq.com
 * @LastEditTime: 2023-03-13 15:00:55
 * @FilePath: \forest-fire\src\views\statistics\components\box\dataContent.vue
 * @Description:
 *
 * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved.
-->
<script setup>
import publicContent from "./publicContent.vue";
import { getList } from "@/api/emergencySupplies/emergencySupplies";
import { reactive } from "vue";
const loading = ref(false);
const tableData = ref([]);
const pages = {
    page: 1,
    pageSize: 13,
    total: 0,
};
let data = reactive({
    companyInfo: {}
})
onMounted(() => {
    data.companyInfo = JSON.parse(localStorage.getItem('companyInfo'))
    getLists();
});
// 表格样式
const tableCellStyle = ({ row, column }) => {
    return { background: "#152851", color: "#fff" };
};
// 表格表头样式
const headerCellStyle = ({ }) => {
    return {
        background: "#152851",
        color: "#fff",
    };
};
// 搜索条件
const formInline = reactive({
    name: "",
    ownership: ''
});
// 提交查询
const onSubmit = () => {
    pages.page = 1
    pages.pageSize = 13
    pages.total = 0
    console.log("submit!");
    getLists(formInline);
};
// 分页树改变
const handleSizeChange = (val) => {
    pages.pageSize = val;
    getLists(formInline);
}
// 分页改变
const handleCurrentChange = (val) => {
    pages.page = val;
    getLists(formInline);
}
// 重置条件
const clearBtn = () => {
    formInline.name = ''
    formInline.ownership = ''
    pages.page = 1
    pages.pageSize = 13
    pages.total = 0
    getLists(formInline);
}
// 查询分页数据
function getLists(param = {}) {
    param.current = pages.page;
    param.size = pages.pageSize;
    param.id = data.companyInfo.id
    loading.value = true;
    getList(param)
        .then((res) => {
            const data = res.data.data;
            data.records.forEach((element) => {
                if (element.ownership == 1) {
                    element.ownership = "园区";
                } else {
                    element.ownership = "企业";
                }
            });
            tableData.value = data.records;
            pages.total = data.total;
            loading.value = false;
        })
        .catch((err) => {
            loading.value = false;
            console.log(err);
        });
}
</script>
<template>
    <public-content>
        <template #content>
            <div>
                <el-form :inline="true" :model="formInline" class="demo-form-inline">
                    <el-form-item label="名称">
                        <el-input v-model="formInline.name" placeholder="请输入名称" clearable style="width: 120px" />
                    </el-form-item>
                    <!-- <el-form-item label="归属">
                        <el-select v-model="formInline.ownership" placeholder="请选择" clearable style="width: 120px">
                            <el-option label="园区" value="1" />
                            <el-option label="企业" value="2" />
                        </el-select>
                    </el-form-item> -->
                    <el-form-item>
                        <el-button type="primary" @click="onSubmit">查询</el-button>
                        <el-button type="" @click="clearBtn">重置</el-button>
                    </el-form-item>
                </el-form>
                <el-table :data="tableData" style="width: 100%" :header-cell-style="headerCellStyle"
                    :cell-style="tableCellStyle" v-loading="loading">
                    <el-table-column fixed prop="name" label="名称" />
                    <el-table-column prop="numUnit" label="数量" width="100" />
                    <!-- <el-table-column prop="firmName" label="单位名称" /> -->
                    <el-table-column prop="ownership" label="归属" width="100" />
                </el-table>
                <div class="el-page">
                    <el-pagination background layout="prev, pager, next" :page-size="pages.pageSize" :total="pages.total"
                        @size-change="handleSizeChange" @current-change="handleCurrentChange" />
                </div>
            </div>
        </template>
    </public-content>
</template>
<style lang="scss" scoped>
.el-form-item__label {
    color: #fff !important;
}
/* 当表格没有数据时,修改表格的背景颜色 */
.el-table--empty .el-table__body {
    background-color: #19284e !important;
    /* 你想要的背景颜色 */
}
.el-page {
    margin-top: 10px;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    // margin-bottom:10px;
}
</style>
src/views/companyInfo/components/box/occurStatistics.vue
New file
@@ -0,0 +1,160 @@
<!--
 * @Author: shuishen 1109946754@qq.com
 * @Date: 2023-03-13 14:54:26
 * @LastEditors: shuishen 1109946754@qq.com
 * @LastEditTime: 2023-03-13 15:00:55
 * @FilePath: \forest-fire\src\views\statistics\components\box\dataContent.vue
 * @Description:
 *
 * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved.
-->
<script setup>
import publicContent from "./publicContent.vue";
import { getList } from "@/api/rescueTeam/rescueTeam";
import { reactive } from "vue";
const loading = ref(false);
const tableData = ref([]);
const pages = {
    page: 1,
    pageSize: 13,
    total: 0,
};
let data = reactive({
    companyInfo: {}
})
onMounted(() => {
    data.companyInfo = JSON.parse(localStorage.getItem('companyInfo'))
    getLists();
});
// 表格样式
const tableCellStyle = ({ row, column }) => {
    return { background: "#152851", color: "#fff" };
};
// 表格表头样式
const headerCellStyle = ({ }) => {
    return {
        background: "#152851",
        color: "#fff",
    };
};
// 搜索条件
const formInline = reactive({
    perInCha: "",
    type: ''
});
// 提交查询
const onSubmit = () => {
    pages.page = 1
    pages.pageSize = 13
    pages.total = 0
    console.log("submit!");
    getLists(formInline);
};
// 分页树改变
const handleSizeChange = (val) => {
    pages.pageSize = val;
    getLists(formInline);
}
// 分页改变
const handleCurrentChange = (val) => {
    pages.page = val;
    getLists(formInline);
}
// 重置条件
const clearBtn = () => {
    formInline.perInCha = ''
    formInline.type = ''
    pages.page = 1
    pages.pageSize = 13
    pages.total = 0
    getLists(formInline);
}
// 查询分页数据
function getLists(param = {}) {
    param.current = pages.page;
    param.size = pages.pageSize;
    param.firmId = data.companyInfo.id
    loading.value = true;
    getList(param)
        .then((res) => {
            const data = res.data.data;
            data.records.forEach((element) => {
                if (element.type == 1) {
                    element.ownership = "园区";
                } else {
                    element.ownership = "企业";
                }
            });
            tableData.value = data.records;
            pages.total = data.total;
            loading.value = false;
        })
        .catch((err) => {
            loading.value = false;
            console.log(err);
        });
}
</script>
<template>
    <public-content>
        <template #content>
            <div>
                <el-form :inline="true" :model="formInline" class="demo-form-inline">
                    <el-form-item label="姓名">
                        <el-input v-model="formInline.perInCha" placeholder="请输入姓名" clearable style="width: 120px" />
                    </el-form-item>
                    <!-- <el-form-item label="归属">
                        <el-select v-model="formInline.type" placeholder="请选择" clearable style="width: 120px">
                            <el-option label="园区" value="1" />
                            <el-option label="企业" value="2" />
                        </el-select>
                    </el-form-item> -->
                    <el-form-item>
                        <el-button type="primary" @click="onSubmit">查询</el-button>
                        <el-button type="" @click="clearBtn">重置</el-button>
                    </el-form-item>
                </el-form>
                <el-table :data="tableData" style="width: 100%" :header-cell-style="headerCellStyle"
                    :cell-style="tableCellStyle" v-loading="loading">
                    <el-table-column fixed prop="perInCha" label="责任人姓名" />
                    <el-table-column prop="perInChaPho" label="联系电话" />
                    <!-- <el-table-column prop="firmName" label="单位名称" /> -->
                    <el-table-column prop="ownership" label="归属" width="100" />
                </el-table>
                <div class="el-page">
                    <el-pagination background layout="prev, pager, next" :page-size="pages.pageSize" :total="pages.total"
                        @size-change="handleSizeChange" @current-change="handleCurrentChange" />
                </div>
            </div>
        </template>
    </public-content>
</template>
<style lang="scss" scoped>
.el-form-item__label {
    color: #fff !important;
}
/* 当表格没有数据时,修改表格的背景颜色 */
.el-table--empty .el-table__body {
    background-color: #19284e !important;
    /* 你想要的背景颜色 */
}
.el-page {
    margin-top: 10px;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    // margin-bottom:10px;
}
</style>
src/views/companyInfo/components/box/publicContent.vue
New file
@@ -0,0 +1,26 @@
<!--
 * @Author: shuishen 1109946754@qq.com
 * @Date: 2023-03-13 14:54:26
 * @LastEditors: shuishen 1109946754@qq.com
 * @LastEditTime: 2024-10-25 18:33:46
 * @FilePath: \bigScreen\src\views\statistics\components\box\publicContent.vue
 * @Description:
 *
 * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved.
-->
<script setup>
</script>
<template>
  <div class="content">
    <slot name="content"></slot>
  </div>
</template>
<style lang="scss" scoped>
.content {
  padding: 20px 0;
  height: calc(100% - 32px);
}
</style>
src/views/companyInfo/components/box/unitContent.vue
New file
@@ -0,0 +1,25 @@
<!--
 * @Author: shuishen 1109946754@qq.com
 * @Date: 2023-03-13 14:54:26
 * @LastEditors: shuishen 1109946754@qq.com
 * @LastEditTime: 2023-03-13 15:00:55
 * @FilePath: \forest-fire\src\views\statistics\components\box\dataContent.vue
 * @Description:
 *
 * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved.
-->
<script setup>
import publicContent from './publicContent.vue'
</script>
<template>
    <public-content>
        <template #content>
            <div>
            </div>
        </template>
    </public-content>
</template>
<style lang="scss" scoped></style>
src/views/companyInfo/components/centerContainer.vue
New file
@@ -0,0 +1,112 @@
<script setup>
import { useRouter, useRoute } from 'vue-router'
let router = useRouter()
import { useRouterStore } from 'store/router'
const store = useRouterStore()
let data = reactive({
    companyInfo: {}
})
let buttonIndex = defineProps({
    buttonIndex: Number
})
onMounted(() => {
    data.companyInfo = JSON.parse(localStorage.getItem('companyInfo'))
})
// 父级方法
const emit = defineEmits(['childEvent']);
// 回调父级方法
const handleClick = (index) => {
    console.log(index)
    emit('childEvent', index)
}
// 返回首页
const goHome = () => {
    store.setLoadSub(false)
    router.push('/layout')
}
</script>
<template>
    <div class="center-container">
        <div class="center-container-title">
            <el-row>
                <el-col :span="7">
                    <div class="center-name">{{ data.companyInfo.name }}</div>
                </el-col>
                <el-col :span="10">
                    <div class="button-group">
                        <button @click="handleClick(1)">基本信息</button>
                        <button @click="handleClick(2)">应急物质</button>
                        <button @click="handleClick(3)">救援队伍</button>
                    </div>
                </el-col>
                <el-col :span="7">
                    <div class="center-info">
                        <button @click="goHome()">返回首页</button>
                    </div>
                </el-col>
            </el-row>
        </div>
    </div>
</template>
<style lang="scss" scoped >
.center-container {
    margin: -35px auto;
    color: #fff;
    pointer-events: auto;
}
.center-container-title {}
.center-name {
    font-size: 30px;
    margin: 10px 0;
    font-family: "华文行楷";
}
.button-group {
    display: flex;
    justify-content: space-around;
    align-items: center;
    margin: -6px 0;
    cursor: pointer;
}
.button-group button {
    width: 120px;
    height: 40px;
    border: none;
    border-radius: 20px;
    background-color: transparent;
    color: #fff;
    font-size: 25px;
}
.center-info {
    text-align: right;
}
.center-info button {
    width: 120px;
    height: 40px;
    border: none;
    border-radius: 20px;
    color: #fff;
    background-color: transparent;
    font-size: 20px;
    background-image: url(/images/mode-tab.png);
}
button:hover {
    background-color: #3c5e8f;
}
</style>
src/views/companyInfo/components/leftContainer.vue
New file
@@ -0,0 +1,48 @@
<!--
 * @Author: shuishen 1109946754@qq.com
 * @Date: 2023-03-10 15:27:59
 * @LastEditors: shuishen 1109946754@qq.com
 * @LastEditTime: 2024-10-25 18:43:23
 * @FilePath: \bigScreen\src\views\statistics\components\leftContainer.vue
 * @Description:
 *
 * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved.
-->
<script setup>
import dataContent from './box/dataContent.vue'
import unitContent from './box/unitContent.vue'
import fireContent from './box/fireContent.vue'
</script>
<template>
  <div class="left-container">
    <!-- <div class="data box">
      <title-box>
        <template #titleName>
          数据概览
        </template>
      </title-box>
      <data-content></data-content>
    </div> -->
    <!-- <div class="unit box">
      <title-box>
        <template #titleName>
          入住单位统计
        </template>
      </title-box>
      <unit-content></unit-content>
    </div> -->
    <!-- <div class="fire box">
      <title-box>
        <template #titleName>
          实时火警事件
        </template>
      </title-box>
      <fire-content></fire-content>
    </div> -->
  </div>
</template>
<style lang="scss" scoped></style>
src/views/companyInfo/components/mainMenu.vue
New file
@@ -0,0 +1,98 @@
<template>
  <div class="page-mode">
    <div @mouseenter="item.childrenFlag = true" :class="{ active: currentUrl.indexOf(item.path) != -1 }"
      @mouseleave="item.childrenFlag = false" @click="goToPath(item)" v-for="(item, index) in menuList" :key="index">
      {{ item.menuName }}
    </div>
  </div>
</template>
<script setup>
import { ref, reactive, watch } from 'vue'
import { useRouter, useRoute } from 'vue-router'
import { Search } from '@element-plus/icons-vue'
import { getTime } from '@/utils/getTime.js'
let router = useRouter()
let currentUrl = ref('statistics')
const menuList = ref(
  [
    {
      menuName: '雨水1管网',
      path: '/layout/ys'
    },
    {
      menuName: '污水2管网',
      path: '/layout/ws'
    },
    {
      menuName: '三级防控',
      path: '/layout/sj'
    }
  ]
)
const goToPath = (params) => {
  if (params.children && params.children.length > 0) return
  if (params.path) {
    if (router.currentRoute.value.path == params.path) return
    // router.push(params.path)
  } else {
    params.childrenFlag = !params.childrenFlag
  }
}
watch(
  () => router.currentRoute.value,
  (newValue, oldValue) => {
    currentUrl.value = newValue.path
  },
  { immediate: true }
)
const userName = ref('管理员')
</script>
<style lang="scss" scoped>
.page-mode {
  position: absolute;
  top: auto;
  bottom: 55px;
  left: 50%;
  z-index: 99;
  transform: translateX(-50%);
  display: flex;
  pointer-events: auto;
  &>div {
    background-image: url(/images/mode-tab.png);
    background-size: cover;
    width: 150px;
    height: 50px;
    font-size: 16px;
    text-align: center;
    font-weight: bold;
    color: #BFD3E5;
    line-height: 32px;
    padding-top: 12px;
    margin-right: -20px;
    font-style: italic;
    cursor: pointer;
    box-sizing: border-box;
    &:last-child {
      margin-right: 0px;
    }
    &.active {
      color: #F6FCFF;
      background-image: url(/images/mode-tab-ac.png);
    }
    &:hover {
      background-image: url(/images/mode-tab-ac.png);
    }
  }
}
</style>
src/views/companyInfo/components/rightContainer.vue
New file
@@ -0,0 +1,105 @@
<!--
 * @Author: shuishen 1109946754@qq.com
 * @Date: 2023-03-10 15:27:59
 * @LastEditors: shuishen 1109946754@qq.com
 * @LastEditTime: 2024-10-26 14:49:05
 * @FilePath: \bigScreen\src\views\survey\components\rightContainer.vue
 * @Description:
 *
 * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved.
-->
<script setup>
import fireSource from './box/fireSource.vue'
import fireTrend from './box/fireTrend.vue'
import occurStatistics from './box/occurStatistics.vue'
import publicContent from './box/publicContent.vue'
let state = defineProps({
  buttonIndex: {
    type: Number,
    default: 1
  }
})
onMounted(() => {
  // console.log("*************************", state.buttonIndex)
})
// watch(() => state.buttonIndex, (newValue, oldValue) => {
//   console.log("**************111***********", newValue)
// })
</script>
<template>
  <div class="right-container">
    <div class="fire-source box" v-if="state.buttonIndex == 1">
      <title-box>
        <template #titleName>
          企业信息
        </template>
      </title-box>
      <fire-source></fire-source>
    </div>
    <div class="occur-statistics box" v-if="state.buttonIndex == 2">
      <title-box>
        <template #titleName>
          应急物质
        </template>
      </title-box>
      <fire-trend></fire-trend>
    </div>
    <div class="fire-trend box" v-if="state.buttonIndex == 3">
      <title-box>
        <template #titleName>
          救援队伍
        </template>
      </title-box>
      <occur-statistics></occur-statistics>
    </div>
  </div>
</template>
<style lang="scss" scoped>
.right-container {
  display: flex;
  flex-direction: column;
  padding: 20px;
  position: absolute;
  top: 0;
  right: 0;
  width: 440px;
  height: 100%;
  pointer-events: auto;
  .box {
    margin-top: 20px;
    .header {
      height: 32px;
      background: url(/img/bg/sub-title.png) no-repeat;
    }
  }
  .fire-source {
    flex: 3;
  }
  .occur-statistics {
    flex: 3;
  }
  .fire-trend {
    flex: 4;
  }
  .box:first-child {
    margin-top: 0;
  }
}
</style>
src/views/companyInfo/index.vue
New file
@@ -0,0 +1,36 @@
<script setup>
import leftContainer from './components/leftContainer.vue'
import rightContainer from './components/rightContainer.vue'
import centerContainer from './components/centerContainer.vue' // 修改这里
import mainMenuVue from './components/mainMenu.vue';
let buttonIndex = ref(1);
onMounted(() => {
    // localStorage.setItem('buttonIndex', buttonIndex.value);
})
const handleChildEvent = (data) => {
    console.log('子组件触发的事件,传递的数据:', data);
    buttonIndex.value = data;
    // localStorage.setItem('buttonIndex', data);
};
</script>
<template>
    <div class="container page-container">
        <!-- <left-container></left-container> -->
        <centerContainer :button-index="buttonIndex" @childEvent="handleChildEvent"></centerContainer> <!-- 修改这里 -->
        <right-container :button-index="buttonIndex"></right-container>
        <main-menu-vue></main-menu-vue>
    </div>
</template>
<style lang="scss" scoped>
.container {
    position: absolute;
    width: 100%;
    height: 100%;
}
</style>
src/views/layout/components/scomponents/layersControl.vue
@@ -301,9 +301,9 @@
}
onMounted(() => {
  handleCheckChange(data.filter(i => i.id == '1'), {
    checkedKeys: ['1']
  })
  // handleCheckChange(data.filter(i => i.id == '1'), {
  //   checkedKeys: ['1']
  // })
})
</script>
src/views/layout/index.vue
@@ -4,9 +4,9 @@
 * @LastEditors: shuishen 1109946754@qq.com
 * @LastEditTime: 2024-11-06 11:05:46
 * @FilePath: \bigScreen\src\views\layout\index.vue
 * @Description:
 *
 * Copyright (c) 2022 by shuishen 1109946754@qq.com, All Rights Reserved.
 * @Description:
 *
 * Copyright (c) 2022 by shuishen 1109946754@qq.com, All Rights Reserved.
-->
<template>
  <div class="wrapper">
@@ -61,7 +61,7 @@
const showContent = ref(false)
const showSubLayout = ref(false)
// 监听createB的变化
// 监听createB的变化
watch(
  [
    () => store.loadMap,
@@ -75,7 +75,7 @@
    console.log(newLoadSub, 5555)
    showSubLayout.value = newLoadSub
  },
  { immediate: true } // 设置immediate为true以便在组件挂载时立即检查createB的值
  { immediate: true } // 设置immediate为true以便在组件挂载时立即检查createB的值
)
const signOut = () => {
src/views/sub/index.vue
@@ -11,16 +11,16 @@
<template>
  <div>
    <div class="main-header">
      <div class="title">ssssssss</div>
      <!-- <div class="title">ssssssss</div> -->
    </div>
    <div class="main-container">
      <router-view ref="target-name"></router-view>
    </div>
    <div class="out">
    <!-- <div class="out">
      <el-button @click="goHome">退回</el-button>
    </div>
    </div> -->
  </div>
</template>
@@ -40,7 +40,7 @@
$bg-blue: rgba(24, 33, 92, 0.9);
.out {
  position:fixed;
  position: fixed;
  top: 50%;
  left: 50%;
  pointer-events: all;
src/views/survey/components/box/dataContent.vue
@@ -4,9 +4,9 @@
 * @LastEditors: shuishen 1109946754@qq.com
 * @LastEditTime: 2024-11-05 17:12:37
 * @FilePath: \bigScreen\src\views\survey\components\box\dataContent.vue
 * @Description:
 *
 * Copyright (c) 2024 by shuishen, All Rights Reserved.
 * @Description:
 *
 * Copyright (c) 2024 by shuishen, All Rights Reserved.
-->
<script setup>
// import { ref, reactive, onMounted, nextTick, inject } from 'vue'
@@ -124,4 +124,4 @@
  </div>
</template>
<style lang="scss" scoped></style>
<style lang="scss" scoped></style>
src/views/survey/components/box/fireContent.vue
@@ -4,9 +4,9 @@
 * @LastEditors: shuishen 1109946754@qq.com
 * @LastEditTime: 2024-11-05 17:42:44
 * @FilePath: \bigScreen\src\views\survey\components\box\fireContent.vue
 * @Description:
 *
 * Copyright (c) 2024 by shuishen, All Rights Reserved.
 * @Description:
 *
 * Copyright (c) 2024 by shuishen, All Rights Reserved.
-->
<script setup>
import { useEchartsResize } from 'hooks/useEchartsResize'
@@ -167,4 +167,4 @@
  </div>
</template>
<style lang="scss" scoped></style>
<style lang="scss" scoped></style>
src/views/survey/components/box/fireSource.vue
@@ -1,12 +1,13 @@
<script setup>
import { useRouter, useRoute } from 'vue-router'
let router = useRouter()
import { inject, Text } from 'vue'
const { VITE_APP_BASE } = import.meta.env
import { getDetail } from '@/api/indParkInfo'
import { getAssetsFile } from 'utils/utils'
import { useRouterStore } from 'store/router'
import { useRouter, useRoute } from 'vue-router'
let router = useRouter()
const store = useRouterStore()
let state = reactive({
@@ -69,7 +70,7 @@
})
// 获取详情
function getData () {
function getData() {
  getDetail().then(res => {
    state.parkInfo = res.data.data
    parkInfoList.forEach(item => {
@@ -84,10 +85,7 @@
  })
}
const goSubLayout = () => {
  store.setLoadSub(true)
  router.push('/layout/sub')
}
</script>
<template>
@@ -118,7 +116,7 @@
      </div>
    </div>
    <el-button @click="goSubLayout">跳转a</el-button>
    <!-- <el-button @click="goSubLayout">跳转a</el-button> -->
  </div>
</template>
src/views/survey/components/box/fireTrend.vue
@@ -4,12 +4,16 @@
 * @LastEditors: shuishen 1109946754@qq.com
 * @LastEditTime: 2024-11-05 20:39:31
 * @FilePath: \bigScreen\src\views\survey\components\box\fireTrend.vue
 * @Description:
 *
 * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved.
 * @Description:
 *
 * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved.
-->
<script setup>
import { getPage } from '@/api/indParkInfo'
import { useRouterStore } from 'store/router'
import { useRouter, useRoute } from 'vue-router'
let router = useRouter()
const store = useRouterStore()
let parkQy = ref([])
@@ -20,7 +24,7 @@
})
function getPages () {
function getPages() {
  getPage().then(res => {
    parkQy.value = res.data.data.records
    console.log(res)
@@ -29,13 +33,19 @@
  })
}
function search () {
function search() {
  getPage({ name: searchQuery.value }).then(res => {
    parkQy.value = res.data.data.records
    console.log(res)
  }).catch(err => {
    console.log(err)
  })
}
const goSubLayout = (item) => {
  localStorage.setItem('companyInfo', JSON.stringify(item))
  store.setLoadSub(true)
  router.push('/layout/sub')
}
</script>
@@ -53,7 +63,7 @@
    <div class="data-content-list">
      <div class="data-content-item" v-for="item in parkQy" :key="item.id">
        <div> {{ item.name }}</div>
        <el-button size="small" type="primary" color="rgba(23,82,240, 0.7)">进入企业</el-button>
        <el-button @click="goSubLayout(item)" size="small" type="primary" color="rgba(23,82,240, 0.7)">进入企业</el-button>
      </div>
    </div>
  </div>
@@ -112,4 +122,4 @@
    margin-top: 0;
  }
}
</style>
</style>
src/views/survey/components/box/unitContent.vue
@@ -4,9 +4,9 @@
 * @LastEditors: shuishen 1109946754@qq.com
 * @LastEditTime: 2024-11-05 17:15:55
 * @FilePath: \bigScreen\src\views\survey\components\box\unitContent.vue
 * @Description:
 *
 * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved.
 * @Description:
 *
 * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved.
-->
<script setup>
import { useEchartsResize } from 'hooks/useEchartsResize'
@@ -104,4 +104,4 @@
  </div>
</template>
<style lang="scss" scoped></style>
<style lang="scss" scoped></style>