9 files modified
12 files added
| | |
| | | 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') |
| | | }, |
| | | ] |
| | | } |
| | |
| | | routes |
| | | }) |
| | | |
| | | export default router |
| | | export default router |
| New file |
| | |
| | | <!-- |
| | | * @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> |
| New file |
| | |
| | | <!-- |
| | | * @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> |
| New file |
| | |
| | | <!-- |
| | | * @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> |
| New file |
| | |
| | | <!-- |
| | | * @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> |
| New file |
| | |
| | | <!-- |
| | | * @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> |
| New file |
| | |
| | | <!-- |
| | | * @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> |
| New file |
| | |
| | | <!-- |
| | | * @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> |
| New file |
| | |
| | | <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> |
| New file |
| | |
| | | <!-- |
| | | * @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> |
| New file |
| | |
| | | <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> |
| New file |
| | |
| | | <!-- |
| | | * @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> |
| New file |
| | |
| | | <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> |
| | |
| | | } |
| | | |
| | | onMounted(() => { |
| | | handleCheckChange(data.filter(i => i.id == '1'), { |
| | | checkedKeys: ['1'] |
| | | }) |
| | | // handleCheckChange(data.filter(i => i.id == '1'), { |
| | | // checkedKeys: ['1'] |
| | | // }) |
| | | }) |
| | | </script> |
| | | |
| | |
| | | * @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"> |
| | |
| | | const showContent = ref(false) |
| | | const showSubLayout = ref(false) |
| | | |
| | | // 监听createB的变化 |
| | | // 监听createB的变化 |
| | | watch( |
| | | [ |
| | | () => store.loadMap, |
| | |
| | | console.log(newLoadSub, 5555) |
| | | showSubLayout.value = newLoadSub |
| | | }, |
| | | { immediate: true } // 设置immediate为true以便在组件挂载时立即检查createB的值 |
| | | { immediate: true } // 设置immediate为true以便在组件挂载时立即检查createB的值 |
| | | ) |
| | | |
| | | const signOut = () => { |
| | |
| | | <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> |
| | | |
| | |
| | | $bg-blue: rgba(24, 33, 92, 0.9); |
| | | |
| | | .out { |
| | | position:fixed; |
| | | position: fixed; |
| | | top: 50%; |
| | | left: 50%; |
| | | pointer-events: all; |
| | |
| | | * @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' |
| | |
| | | </div> |
| | | </template> |
| | | |
| | | <style lang="scss" scoped></style> |
| | | <style lang="scss" scoped></style> |
| | |
| | | * @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' |
| | |
| | | </div> |
| | | </template> |
| | | |
| | | <style lang="scss" scoped></style> |
| | | <style lang="scss" scoped></style> |
| | |
| | | <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({ |
| | |
| | | |
| | | }) |
| | | // 获取详情 |
| | | function getData () { |
| | | function getData() { |
| | | getDetail().then(res => { |
| | | state.parkInfo = res.data.data |
| | | parkInfoList.forEach(item => { |
| | |
| | | }) |
| | | } |
| | | |
| | | const goSubLayout = () => { |
| | | store.setLoadSub(true) |
| | | router.push('/layout/sub') |
| | | } |
| | | |
| | | </script> |
| | | |
| | | <template> |
| | |
| | | </div> |
| | | </div> |
| | | |
| | | <el-button @click="goSubLayout">跳转a</el-button> |
| | | <!-- <el-button @click="goSubLayout">跳转a</el-button> --> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | * @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([]) |
| | | |
| | |
| | | }) |
| | | |
| | | |
| | | function getPages () { |
| | | function getPages() { |
| | | getPage().then(res => { |
| | | parkQy.value = res.data.data.records |
| | | console.log(res) |
| | |
| | | }) |
| | | } |
| | | |
| | | 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> |
| | |
| | | <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> |
| | |
| | | margin-top: 0; |
| | | } |
| | | } |
| | | </style> |
| | | </style> |
| | |
| | | * @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' |
| | |
| | | </div> |
| | | </template> |
| | | |
| | | <style lang="scss" scoped></style> |
| | | <style lang="scss" scoped></style> |