From 8e29fdae3e7dde32579495be389e5110785b95aa Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Wed, 06 Nov 2024 14:52:54 +0800
Subject: [PATCH] 企业详情
---
src/views/companyInfo/components/box/publicContent.vue | 26 +
src/views/sub/index.vue | 8
src/views/survey/components/box/dataContent.vue | 8
src/views/survey/components/box/fireSource.vue | 14
src/views/companyInfo/components/box/unitContent.vue | 25 +
src/views/companyInfo/components/box/fireContent.vue | 25 +
src/views/companyInfo/components/leftContainer.vue | 48 ++
src/views/companyInfo/components/box/fireTrend.vue | 160 ++++++++
src/views/companyInfo/components/centerContainer.vue | 112 ++++++
src/views/companyInfo/index.vue | 36 ++
src/views/companyInfo/components/box/occurStatistics.vue | 160 ++++++++
src/views/companyInfo/components/mainMenu.vue | 98 +++++
src/views/survey/components/box/unitContent.vue | 8
src/router/index.js | 8
src/views/survey/components/box/fireContent.vue | 8
src/views/companyInfo/components/rightContainer.vue | 105 +++++
src/views/companyInfo/components/box/dataContent.vue | 25 +
src/views/layout/index.vue | 10
src/views/survey/components/box/fireTrend.vue | 24
src/views/companyInfo/components/box/fireSource.vue | 135 +++++++
src/views/layout/components/scomponents/layersControl.vue | 6
21 files changed, 1,006 insertions(+), 43 deletions(-)
diff --git a/src/router/index.js b/src/router/index.js
index 470182b..a7660ae 100644
--- a/src/router/index.js
+++ b/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
\ No newline at end of file
+export default router
diff --git a/src/views/companyInfo/components/box/dataContent.vue b/src/views/companyInfo/components/box/dataContent.vue
new file mode 100644
index 0000000..7152a88
--- /dev/null
+++ b/src/views/companyInfo/components/box/dataContent.vue
@@ -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>
\ No newline at end of file
diff --git a/src/views/companyInfo/components/box/fireContent.vue b/src/views/companyInfo/components/box/fireContent.vue
new file mode 100644
index 0000000..7152a88
--- /dev/null
+++ b/src/views/companyInfo/components/box/fireContent.vue
@@ -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>
\ No newline at end of file
diff --git a/src/views/companyInfo/components/box/fireSource.vue b/src/views/companyInfo/components/box/fireSource.vue
new file mode 100644
index 0000000..b125428
--- /dev/null
+++ b/src/views/companyInfo/components/box/fireSource.vue
@@ -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>
\ No newline at end of file
diff --git a/src/views/companyInfo/components/box/fireTrend.vue b/src/views/companyInfo/components/box/fireTrend.vue
new file mode 100644
index 0000000..2db4635
--- /dev/null
+++ b/src/views/companyInfo/components/box/fireTrend.vue
@@ -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>
diff --git a/src/views/companyInfo/components/box/occurStatistics.vue b/src/views/companyInfo/components/box/occurStatistics.vue
new file mode 100644
index 0000000..b29e53a
--- /dev/null
+++ b/src/views/companyInfo/components/box/occurStatistics.vue
@@ -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>
diff --git a/src/views/companyInfo/components/box/publicContent.vue b/src/views/companyInfo/components/box/publicContent.vue
new file mode 100644
index 0000000..2ff1476
--- /dev/null
+++ b/src/views/companyInfo/components/box/publicContent.vue
@@ -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>
\ No newline at end of file
diff --git a/src/views/companyInfo/components/box/unitContent.vue b/src/views/companyInfo/components/box/unitContent.vue
new file mode 100644
index 0000000..7152a88
--- /dev/null
+++ b/src/views/companyInfo/components/box/unitContent.vue
@@ -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>
\ No newline at end of file
diff --git a/src/views/companyInfo/components/centerContainer.vue b/src/views/companyInfo/components/centerContainer.vue
new file mode 100644
index 0000000..bb43c08
--- /dev/null
+++ b/src/views/companyInfo/components/centerContainer.vue
@@ -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>
diff --git a/src/views/companyInfo/components/leftContainer.vue b/src/views/companyInfo/components/leftContainer.vue
new file mode 100644
index 0000000..eb16e22
--- /dev/null
+++ b/src/views/companyInfo/components/leftContainer.vue
@@ -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>
\ No newline at end of file
diff --git a/src/views/companyInfo/components/mainMenu.vue b/src/views/companyInfo/components/mainMenu.vue
new file mode 100644
index 0000000..564c33d
--- /dev/null
+++ b/src/views/companyInfo/components/mainMenu.vue
@@ -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>
diff --git a/src/views/companyInfo/components/rightContainer.vue b/src/views/companyInfo/components/rightContainer.vue
new file mode 100644
index 0000000..ececb7f
--- /dev/null
+++ b/src/views/companyInfo/components/rightContainer.vue
@@ -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>
\ No newline at end of file
diff --git a/src/views/companyInfo/index.vue b/src/views/companyInfo/index.vue
new file mode 100644
index 0000000..082acb1
--- /dev/null
+++ b/src/views/companyInfo/index.vue
@@ -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>
\ No newline at end of file
diff --git a/src/views/layout/components/scomponents/layersControl.vue b/src/views/layout/components/scomponents/layersControl.vue
index 0826c86..03da5ab 100644
--- a/src/views/layout/components/scomponents/layersControl.vue
+++ b/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>
diff --git a/src/views/layout/index.vue b/src/views/layout/index.vue
index cf36868..fb8ecac 100644
--- a/src/views/layout/index.vue
+++ b/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 = () => {
diff --git a/src/views/sub/index.vue b/src/views/sub/index.vue
index 47f29a8..c13403e 100644
--- a/src/views/sub/index.vue
+++ b/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;
diff --git a/src/views/survey/components/box/dataContent.vue b/src/views/survey/components/box/dataContent.vue
index b23ff73..5fef396 100644
--- a/src/views/survey/components/box/dataContent.vue
+++ b/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>
\ No newline at end of file
+<style lang="scss" scoped></style>
diff --git a/src/views/survey/components/box/fireContent.vue b/src/views/survey/components/box/fireContent.vue
index 6afa14d..4a3d506 100644
--- a/src/views/survey/components/box/fireContent.vue
+++ b/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>
\ No newline at end of file
+<style lang="scss" scoped></style>
diff --git a/src/views/survey/components/box/fireSource.vue b/src/views/survey/components/box/fireSource.vue
index c189a31..fc0cb66 100644
--- a/src/views/survey/components/box/fireSource.vue
+++ b/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>
diff --git a/src/views/survey/components/box/fireTrend.vue b/src/views/survey/components/box/fireTrend.vue
index 0b1dacb..49cdd48 100644
--- a/src/views/survey/components/box/fireTrend.vue
+++ b/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>
\ No newline at end of file
+</style>
diff --git a/src/views/survey/components/box/unitContent.vue b/src/views/survey/components/box/unitContent.vue
index 7e68486..88b5b7b 100644
--- a/src/views/survey/components/box/unitContent.vue
+++ b/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>
\ No newline at end of file
+<style lang="scss" scoped></style>
--
Gitblit v1.9.3