1.表格无数据中文提示处理
2.控制台警告处理
3.企业详情应急空间报错处理
4.console信息删除
| | |
| | | <template> |
| | | <div class="h100 flex f-d-c cur-table-box" v-loading="loading" element-loading-background="rgba(46, 81, 136, 0.9)"> |
| | | <div class="h0 flex-1 table-content" ref="TableContent"> |
| | | <el-table ref="tableData" :height="tableHeight" :row-key="rowKey" :border="border" :size="tableSize" :data="data" |
| | | @selection-change="handleSelectionChange" @current-change="handleTableCurrentChange" |
| | | @row-click="handleTableRowClick" @sort-change="handleSortChange" v-bind="otherConfig"> |
| | | <el-table empty-text="暂无数据" ref="tableData" :height="tableHeight" :row-key="rowKey" :border="border" |
| | | :size="tableSize" :data="data" @selection-change="handleSelectionChange" |
| | | @current-change="handleTableCurrentChange" @row-click="handleTableRowClick" @sort-change="handleSortChange" |
| | | v-bind="otherConfig"> |
| | | <template v-for="(item, index) in columns"> |
| | | <!-- 选择框 --> |
| | | <el-table-column v-if="item.selection" type="selection" width="36" :fixed="item.fixed" |
| | |
| | | * @Author: shuishen 1109946754@qq.com |
| | | * @Date: 2024-10-25 15:07:51 |
| | | * @LastEditors: shuishen 1109946754@qq.com |
| | | * @LastEditTime: 2024-10-28 16:42:35 |
| | | * @LastEditTime: 2024-11-27 15:23:52 |
| | | * @FilePath: \bigScreen\src\components\global\MapContainer.vue |
| | | * @Description: |
| | | * |
| | |
| | | </template> |
| | | |
| | | <script setup> |
| | | import { readyViewer } from 'hooks/initMap' |
| | | import { onMounted } from 'vue' |
| | | window.$viewer = null |
| | | window.$Cesium = null |
| | | window.$turf = null |
| | | const { VITE_APP_BASE } = import.meta.env |
| | | import { useMap } from 'store/map' |
| | | import { nextTick, onMounted, onUnmounted } from 'vue' |
| | | import * as turf from '@turf/turf' |
| | | // import * as Cesium from 'cesium' |
| | | // import 'cesium/Build/Cesium/Widgets/widgets.css' |
| | | |
| | | readyViewer() |
| | | const store = useMap() |
| | | |
| | | function initMap () { |
| | | if (window.$viewer) return |
| | | |
| | | nextTick(() => { |
| | | DC.ready({ |
| | | // Cesium: Cesium, |
| | | baseUrl: `${VITE_APP_BASE}libs/dc-sdk/resources/`, |
| | | turf, |
| | | }).then(() => { |
| | | window.$Cesium = DC.getLib('Cesium') |
| | | window.$turf = DC.getLib('turf') |
| | | |
| | | window.$viewer = new DC.Viewer('viewer-container') |
| | | window.$viewer.locationBar.enable = true |
| | | |
| | | window.$viewer.zoomToPosition(new DC.Position( |
| | | 115.1021, |
| | | 27.2360, |
| | | 5000, |
| | | 0, |
| | | -45, |
| | | 0 |
| | | ), () => { |
| | | store.setLoadMap(true) |
| | | }) |
| | | }) |
| | | }) |
| | | } |
| | | |
| | | onMounted(() => { |
| | | initMap() |
| | | }) |
| | | |
| | | onUnmounted(() => { |
| | | store.setLoadMap(false) |
| | | }) |
| | | </script> |
| | | |
| | | <script> |
| | |
| | | /* |
| | | * @Author: shuishen 1109946754@qq.com |
| | | * @Date: 2024-10-25 15:09:55 |
| | | * @LastEditors: shuishen 1109946754@qq.com |
| | | * @LastEditTime: 2024-11-25 16:43:43 |
| | | * @FilePath: \bigScreen\src\hooks\initMap.js |
| | | * @Description: |
| | | * |
| | | * Copyright (c) 2024 by shuishen, All Rights Reserved. |
| | | */ |
| | | window.$viewer = null |
| | | window.$Cesium = null |
| | | window.$turf = null |
| | | const { VITE_APP_BASE } = import.meta.env |
| | | import { useMap } from 'store/map' |
| | | import { nextTick, onMounted, onUnmounted } from 'vue' |
| | | import * as turf from '@turf/turf' |
| | | // import * as Cesium from 'cesium' |
| | | // import 'cesium/Build/Cesium/Widgets/widgets.css' |
| | | |
| | | export function readyViewer () { |
| | | const store = useMap() |
| | | |
| | | function initMap () { |
| | | if (window.$viewer) return |
| | | |
| | | nextTick(() => { |
| | | DC.ready({ |
| | | // Cesium: Cesium, |
| | | baseUrl: `${VITE_APP_BASE}libs/dc-sdk/resources/`, |
| | | turf, |
| | | }).then(() => { |
| | | window.$Cesium = DC.getLib('Cesium') |
| | | window.$turf = DC.getLib('turf') |
| | | |
| | | window.$viewer = new DC.Viewer('viewer-container') |
| | | window.$viewer.locationBar.enable = true |
| | | |
| | | window.$viewer.zoomToPosition(new DC.Position( |
| | | 115.1021, |
| | | 27.2360, |
| | | 5000, |
| | | 0, |
| | | -45, |
| | | 0 |
| | | ), () => { |
| | | store.setLoadMap(true) |
| | | }) |
| | | }) |
| | | }) |
| | | } |
| | | |
| | | onMounted(() => { |
| | | initMap() |
| | | }) |
| | | |
| | | onUnmounted(() => { |
| | | window.$viewer.destroy() |
| | | window.$viewer = null |
| | | window.$Cesium = null |
| | | window.$turf = null |
| | | delete window.$viewer |
| | | delete window.$Cesium |
| | | delete window.$turf |
| | | store.setLoadMap(false) |
| | | }) |
| | | |
| | | return { |
| | | |
| | | } |
| | | } |
| | |
| | | * @Author: shuishen 1109946754@qq.com |
| | | * @Date: 2024-10-26 16:09:35 |
| | | * @LastEditors: shuishen 1109946754@qq.com |
| | | * @LastEditTime: 2024-10-28 11:04:58 |
| | | * @FilePath: \bigScreen\src\views\layout\components\mainSearch.vue |
| | | * @LastEditTime: 2024-11-27 15:28:29 |
| | | * @FilePath: \bigScreen\src\pages\layout\components\mainSearch.vue |
| | | * @Description: |
| | | * |
| | | * Copyright (c) 2024 by shuishen, All Rights Reserved. |
| | | --> |
| | | <template> |
| | | <div class="page-search"> |
| | | <el-input size="medium" placeholder="请输入内容" :suffix-icon="Search" @input="onSearch()" v-model="searchVal" |
| | | <el-input placeholder="请输入内容" :suffix-icon="Search" @input="onSearch()" v-model="searchVal" |
| | | @focus="onFocus"></el-input> |
| | | <div class="page-search-value-box" v-show="isShowSearchSKValBox"> |
| | | <ul> |
| | |
| | | </template> |
| | | |
| | | <script setup> |
| | | import { Search } from '@element-plus/icons-vue' |
| | | |
| | | import { fuzzyQuery } from '../../../api/firmInfo/firmInfo' |
| | | |
| | | // 搜索栏相关 |
| | |
| | | } |
| | | let addTileLayers = {} |
| | | const handleCheckChange = (item) => { |
| | | console.log(item) |
| | | // 先清空,在添加 |
| | | clearPoint() |
| | | if (!addTileLayers[item.name]) { |
| | |
| | | window.$viewer.flyToPosition(new DC.Position(item.lng, item.lat, 2000, 0, -90, 0)) |
| | | |
| | | } else { |
| | | // console.log('已存在*******************************') |
| | | window.$viewer.removeLayer(addTileLayers[item.name]) |
| | | addTileLayers = {} |
| | | } |
| | |
| | | } else { |
| | | currentComponent.value = '' |
| | | } |
| | | |
| | | console.log(type, currentComponent.value, 4444) |
| | | } |
| | | </script> |
| | | |
| | |
| | | * @Author: shuishen 1109946754@qq.com |
| | | * @Date: 2024-10-31 10:47:29 |
| | | * @LastEditors: shuishen 1109946754@qq.com |
| | | * @LastEditTime: 2024-11-26 20:03:01 |
| | | * @LastEditTime: 2024-11-27 15:32:55 |
| | | * @FilePath: \bigScreen\src\pages\layout\components\scomponents\layersControl.vue |
| | | * @Description: |
| | | * |
| | |
| | | </template> |
| | | |
| | | <template #close> |
| | | <div class="close cursor-p" @click="$emit('close', 'layers')"><i class="fa fa-close"></i></div> |
| | | <div class="close cursor-p" @click="emit('close', 'layers')"><i class="fa fa-close"></i></div> |
| | | </template> |
| | | |
| | | <template #content> |
| | |
| | | default: false |
| | | } |
| | | }) |
| | | |
| | | const emit = defineEmits(['close']) |
| | | import panorama from './popup/panorama.vue' |
| | | import { getPage } from '@/api/indParkInfo' |
| | | import { getPage as getfirmPage } from '@/api/firmInfo/firmInfo' |
| | |
| | | type: 'layer', |
| | | subType: '3Dtile', |
| | | urlData: [ |
| | | { |
| | | url: VITE_APP_BASE + 'newMx/mx/tile_01/tileset.json', |
| | | label: 'tile_01' |
| | | }, |
| | | { |
| | | url: VITE_APP_BASE + 'newMx/mx/tile_02/tileset.json', |
| | | label: 'tile_02' |
| | | }, |
| | | { |
| | | url: VITE_APP_BASE + 'newMx/mx/tile_03/tileset.json', |
| | | label: 'tile_03' |
| | | }, |
| | | { |
| | | url: VITE_APP_BASE + 'newMx/mx/tile_04/tileset.json', |
| | | label: 'tile_04' |
| | | }, |
| | | { |
| | | url: VITE_APP_BASE + 'newMx/mx/tile_05/tileset.json', |
| | | label: 'tile_05' |
| | | }, |
| | | |
| | | ], |
| | | layerName: 'hgyq' |
| | | }, |
| | |
| | | // url: '/zhyq/mx/tile_01/tileset.json', |
| | | // })) |
| | | |
| | | // console.log(tile, new window.$Cesium.Cesium3DTileset({ |
| | | // url: '/zhyq/mx/tile_01/tileset.json', |
| | | // }), 121323) |
| | | // item.urlData.forEach(i => { |
| | |
| | | addTileLayers[item.layerName] = new DC.VectorLayer(item.layerName) |
| | | window.$viewer.addLayer(addTileLayers[item.layerName]) |
| | | |
| | | function computeCircle(radius) { |
| | | function computeCircle (radius) { |
| | | var positions = [] |
| | | for (var i = 0; i < 360; i++) { |
| | | var radians = DC.Math.toRadians(i) |
| | |
| | | }) |
| | | } |
| | | |
| | | function findObjectById(data, id) { |
| | | function findObjectById (data, id) { |
| | | // 遍历数据数组 |
| | | for (let i = 0; i < data.length; i++) { |
| | | const item = data[i] |
| | |
| | | |
| | | const restHandleDelChange = (key) => { |
| | | let checkIds = treeRef.value?.getCheckedKeys() |
| | | |
| | | console.log(checkIds, key) |
| | | |
| | | if (checkIds && !checkIds.some(i => i == key)) { |
| | | return |
| | |
| | | // }); |
| | | |
| | | // 销毁 |
| | | function destroy() { |
| | | function destroy () { |
| | | let arr = Object.keys(addPupoLayers) |
| | | arr.filter(i => i != 'hgyq').forEach(i => { |
| | | addPupoLayers[i] && window.$viewer.removeLayer(addPupoLayers[i]) |
| | |
| | | } |
| | | // 水平面积 |
| | | function calcArea(item) { |
| | | console.log('calcArea********************************', item) |
| | | measure.area() |
| | | } |
| | | // 贴地面积 |
| | |
| | | |
| | | // 清空 |
| | | function deactivate() { |
| | | console.log('deactivate********************************') |
| | | measure.deactivate() |
| | | } |
| | | |
| | |
| | | * @Author: shuishen 1109946754@qq.com |
| | | * @Date: 2024-10-29 14:20:49 |
| | | * @LastEditors: shuishen 1109946754@qq.com |
| | | * @LastEditTime: 2024-11-07 16:23:56 |
| | | * @FilePath: \bigScreen\src\views\layout\components\scomponents\toolList.vue |
| | | * @LastEditTime: 2024-11-27 15:34:16 |
| | | * @FilePath: \bigScreen\src\pages\layout\components\scomponents\toolList.vue |
| | | * @Description: |
| | | * |
| | | * Copyright (c) 2024 by shuishen, All Rights Reserved. |
| | |
| | | // icon: 'fa fa-level-up', |
| | | // title: '路线导航', |
| | | // }, |
| | | { |
| | | icon: 'fa fa-columns', |
| | | title: '卷帘对比', |
| | | component: curtain |
| | | }, |
| | | // { |
| | | // icon: 'fa fa-columns', |
| | | // title: '卷帘对比', |
| | | // component: curtain |
| | | // }, |
| | | // { |
| | | // icon: 'fa fa-window-restore', |
| | | // title: '分屏对比', |
| | |
| | | const tableContent = ref(null) |
| | | |
| | | const handleSizeChange = (val) => { |
| | | console.log(`${val} items per page`) |
| | | console.log(`${val} items per page`) |
| | | } |
| | | const handleCurrentChange = (val) => { |
| | | console.log(`current page: ${val}`) |
| | | console.log(`current page: ${val}`) |
| | | } |
| | | |
| | | const propsData = defineProps({ |
| | | tableData: { |
| | | type: Array, |
| | | default: () => [] |
| | | } |
| | | tableData: { |
| | | type: Array, |
| | | default: () => [] |
| | | } |
| | | }) |
| | | |
| | | onMounted(() => { |
| | | nextTick(() => { |
| | | curHeight.value = tableContent.value.offsetHeight - 40 |
| | | |
| | | console.log(tableContent.value.offsetHeight, `current page: ${curHeight.value}`) |
| | | |
| | | }) |
| | | nextTick(() => { |
| | | curHeight.value = tableContent.value.offsetHeight - 40 |
| | | }) |
| | | }) |
| | | |
| | | |
| | | </script> |
| | | |
| | | <template> |
| | | <div ref="tableContent" class="content"> |
| | | <el-table :data="tableData" stripe style="width: 100%" :height="curHeight"> |
| | | <el-table-column prop="ind" label="序号" width="60" /> |
| | | <el-table-column prop="address" label="位置" /> |
| | | <el-table-column prop="fireGrade" label="火灾等级" /> |
| | | <el-table-column prop="fireAddress" label="燃烧位置" /> |
| | | </el-table> |
| | | <div ref="tableContent" class="content"> |
| | | <el-table empty-text="暂无数据" :data="tableData" stripe style="width: 100%" :height="curHeight"> |
| | | <el-table-column prop="ind" label="序号" width="60" /> |
| | | <el-table-column prop="address" label="位置" /> |
| | | <el-table-column prop="fireGrade" label="火灾等级" /> |
| | | <el-table-column prop="fireAddress" label="燃烧位置" /> |
| | | </el-table> |
| | | |
| | | <div class="page"> |
| | | <el-pagination v-model:current-page="currentPage" v-model:page-size="pageSize" :pager-count="5" |
| | | :page-sizes="[10, 20, 30, 50]" :small="small" :disabled="disabled" :background="background" |
| | | layout="sizes, prev, pager, next" :total="400" @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" /> |
| | | </div> |
| | | <div class="page"> |
| | | <el-pagination v-model:current-page="currentPage" v-model:page-size="pageSize" :pager-count="5" |
| | | :page-sizes="[10, 20, 30, 50]" :small="small" :disabled="disabled" :background="background" |
| | | layout="sizes, prev, pager, next" :total="400" @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" /> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <style lang="scss" scoped> |
| | | .content { |
| | | height: 100%; |
| | | height: 100%; |
| | | |
| | | .page { |
| | | height: 40px; |
| | | line-height: 40px; |
| | | } |
| | | .page { |
| | | height: 40px; |
| | | line-height: 40px; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | import { onUnmounted, reactive } from 'vue' |
| | | const { VITE_APP_BASE } = import.meta.env |
| | | const resData = reactive({ |
| | | data: [{ |
| | | label: '防线一', |
| | | value: '1', |
| | | type: 1, |
| | | remark: '防火提及配套设置、装置围堰、罐区围堰', |
| | | showPanel: false, |
| | | backgroundIcon: VITE_APP_BASE + 'img/mapicon/wy.png' |
| | | }, { |
| | | label: '防线二', |
| | | value: '2', |
| | | type: 2, |
| | | remark: '雨污水排口一体化闸阀、车间收集池、雨污管阀', |
| | | showPanel: false, |
| | | backgroundIcon: VITE_APP_BASE + 'img/mapicon/ysf.png' |
| | | }, |
| | | { |
| | | label: '防线三', |
| | | value: '3', |
| | | type: 3, |
| | | remark: '事故应急池、雨水收集池', |
| | | showPanel: false, |
| | | backgroundIcon: VITE_APP_BASE + 'img/mapicon/yjc.png' |
| | | } |
| | | ] |
| | | data: [{ |
| | | label: '防线一', |
| | | value: '1', |
| | | type: 1, |
| | | remark: '防火提及配套设置、装置围堰、罐区围堰', |
| | | showPanel: false, |
| | | backgroundIcon: VITE_APP_BASE + 'img/mapicon/wy.png' |
| | | }, { |
| | | label: '防线二', |
| | | value: '2', |
| | | type: 2, |
| | | remark: '雨污水排口一体化闸阀、车间收集池、雨污管阀', |
| | | showPanel: false, |
| | | backgroundIcon: VITE_APP_BASE + 'img/mapicon/ysf.png' |
| | | }, |
| | | { |
| | | label: '防线三', |
| | | value: '3', |
| | | type: 3, |
| | | remark: '事故应急池、雨水收集池', |
| | | showPanel: false, |
| | | backgroundIcon: VITE_APP_BASE + 'img/mapicon/yjc.png' |
| | | } |
| | | ] |
| | | }) |
| | | const curSelect = ref('1') |
| | | let addTileLayers = {} |
| | | const handleCheckChange = (row) => { |
| | | let companyInfo = JSON.parse(localStorage.getItem('companyInfo')) |
| | | // console.log(row) |
| | | resData.data.forEach(item => { |
| | | if (row.value === item.value) { |
| | | if (!addTileLayers[item.label]) { |
| | | addTileLayers[item.label] = new DC.HtmlLayer(item.label) |
| | | window.$viewer.addLayer(addTileLayers[item.label]) |
| | | getFacilityList({ |
| | | firmId: companyInfo.id, |
| | | size: 1000, |
| | | facLevel: item.type |
| | | }).then(res => { |
| | | let data = res.data.data |
| | | data.filter(i => i.lng && i.lng != '' && i.lat && i.lat != '').forEach(i => { |
| | | let iconEl = '' |
| | | if ('showPanel' in item && item.showPanel == false) { |
| | | if (item.backgroundIcon) { |
| | | iconEl = ` |
| | | let companyInfo = JSON.parse(localStorage.getItem('companyInfo')) |
| | | resData.data.forEach(item => { |
| | | if (row.value === item.value) { |
| | | if (!addTileLayers[item.label]) { |
| | | addTileLayers[item.label] = new DC.HtmlLayer(item.label) |
| | | window.$viewer.addLayer(addTileLayers[item.label]) |
| | | getFacilityList({ |
| | | firmId: companyInfo.id, |
| | | size: 1000, |
| | | facLevel: item.type |
| | | }).then(res => { |
| | | let data = res.data.data |
| | | data.filter(i => i.lng && i.lng != '' && i.lat && i.lat != '').forEach(i => { |
| | | let iconEl = '' |
| | | if ('showPanel' in item && item.showPanel == false) { |
| | | if (item.backgroundIcon) { |
| | | iconEl = ` |
| | | <div class="map-name">${i[item.showParams] || i.name}</div> |
| | | <div class="map-icon"> |
| | | <img src="${item.backgroundIcon}"> |
| | | </div> |
| | | ` |
| | | } |
| | | } else { |
| | | iconEl = `<div class="marsBlueGradientPnl"> <div>${i.name}</div> </div>` |
| | | } |
| | | let divIcon = new DC.DivIcon( |
| | | new DC.Position(i.lng, i.lat, 64), `<div class="public-map-popup ${'yjc-box'}"> ${iconEl} </div>` |
| | | ) |
| | | |
| | | divIcon.attrParams = i |
| | | |
| | | let incident = () => { } |
| | | |
| | | if (item.incident) incident = item.incident |
| | | |
| | | divIcon.on(DC.MouseEventType.CLICK, incident) |
| | | |
| | | addTileLayers[item.label].addOverlay(divIcon) |
| | | }) |
| | | }) |
| | | } |
| | | } else { |
| | | addTileLayers[item.label].show = true |
| | | iconEl = `<div class="marsBlueGradientPnl"> <div>${i.name}</div> </div>` |
| | | } |
| | | } else { |
| | | if (addTileLayers[item.label]) { |
| | | addTileLayers[item.label].show = false |
| | | } |
| | | } |
| | | }) |
| | | let divIcon = new DC.DivIcon( |
| | | new DC.Position(i.lng, i.lat, 64), `<div class="public-map-popup ${'yjc-box'}"> ${iconEl} </div>` |
| | | ) |
| | | |
| | | divIcon.attrParams = i |
| | | |
| | | let incident = () => { } |
| | | |
| | | if (item.incident) incident = item.incident |
| | | |
| | | divIcon.on(DC.MouseEventType.CLICK, incident) |
| | | |
| | | addTileLayers[item.label].addOverlay(divIcon) |
| | | }) |
| | | }) |
| | | } else { |
| | | addTileLayers[item.label].show = true |
| | | } |
| | | } else { |
| | | if (addTileLayers[item.label]) { |
| | | addTileLayers[item.label].show = false |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | |
| | | const tabClick = (item) => { |
| | | handleCheckChange(item) |
| | | curSelect.value = item.value |
| | | handleCheckChange(item) |
| | | curSelect.value = item.value |
| | | } |
| | | |
| | | |
| | | const showOn = computed(() => (item) => { |
| | | if (curSelect.value == item.value) { |
| | | return true |
| | | } |
| | | return false |
| | | if (curSelect.value == item.value) { |
| | | return true |
| | | } |
| | | return false |
| | | }) |
| | | |
| | | onMounted(() => { |
| | | tabClick(resData.data[0]) |
| | | tabClick(resData.data[0]) |
| | | }) |
| | | |
| | | onUnmounted(() => { |
| | | let arr = Object.keys(addTileLayers) |
| | | arr.forEach(i => { |
| | | addTileLayers[i] && window.$viewer.removeLayer(addTileLayers[i]) |
| | | }) |
| | | let arr = Object.keys(addTileLayers) |
| | | arr.forEach(i => { |
| | | addTileLayers[i] && window.$viewer.removeLayer(addTileLayers[i]) |
| | | }) |
| | | }) |
| | | </script> |
| | | |
| | | <template> |
| | | <div class="left-container cur-container"> |
| | | <div class="tablist h100"> |
| | | <div class="cursor-p" :class="{ on: showOn(item) }" v-for="item, index in resData.data" :key="index" |
| | | @click="tabClick(item)"> |
| | | <div class="nowrap-ellipsis-hidden"> |
| | | {{ item.label }} |
| | | </div> |
| | | </div> |
| | | <div class="left-container cur-container"> |
| | | <div class="tablist h100"> |
| | | <div class="cursor-p" :class="{ on: showOn(item) }" v-for="item, index in resData.data" :key="index" |
| | | @click="tabClick(item)"> |
| | | <div class="nowrap-ellipsis-hidden"> |
| | | {{ item.label }} |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <style lang="scss" scoped> |
| | | .cur-container { |
| | | background: transparent; |
| | | pointer-events: none; |
| | | background: transparent; |
| | | pointer-events: none; |
| | | |
| | | .tablist { |
| | | pointer-events: all; |
| | | .tablist { |
| | | pointer-events: all; |
| | | |
| | | |
| | | &>div { |
| | | margin-top: 86px; |
| | | padding: 10px; |
| | | width: 64px; |
| | | height: 64px; |
| | | line-height: 64px; |
| | | text-align: center; |
| | | border-radius: 50%; |
| | | box-shadow: inset 0 0 40px #409eff; |
| | | color: #fff; |
| | | box-sizing: content-box; |
| | | &>div { |
| | | margin-top: 86px; |
| | | padding: 10px; |
| | | width: 64px; |
| | | height: 64px; |
| | | line-height: 64px; |
| | | text-align: center; |
| | | border-radius: 50%; |
| | | box-shadow: inset 0 0 40px #409eff; |
| | | color: #fff; |
| | | box-sizing: content-box; |
| | | |
| | | &.on { |
| | | position: relative; |
| | | // color: #75b1ff; |
| | | box-shadow: inset 0 0 100px #2a8ef1; |
| | | } |
| | | } |
| | | &.on { |
| | | position: relative; |
| | | // color: #75b1ff; |
| | | box-shadow: inset 0 0 100px #2a8ef1; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | * @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 |
| | | * @LastEditTime: 2024-11-27 15:40:42 |
| | | * @FilePath: \bigScreen\src\views\companyInfo\components\box\fireSource.vue |
| | | * @Description: |
| | | * |
| | | * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved. |
| | |
| | | :preview-src-list="[data.companyInfo.imageUrls]" :initial-index="4" fit="cover"> |
| | | <template #error> |
| | | <div class="image-slot"> |
| | | <el-icon><icon-picture /></el-icon> |
| | | <el-icon><Picture /></el-icon> |
| | | </div> |
| | | </template> |
| | | </el-image> |
| | |
| | | </template> |
| | | |
| | | <script setup> |
| | | import { Picture } from '@element-plus/icons-vue' |
| | | |
| | | import publicContent from './publicContent.vue' |
| | | import { getAssetsFile } from 'utils/utils' |
| | | import { getfirmInfoDetail } from '@/api/indParkInfo' |
| | |
| | | pages.page = 1 |
| | | pages.pageSize = 1000 |
| | | pages.total = 0 |
| | | console.log("submit!") |
| | | getLists(formInline) |
| | | } |
| | | |
| | |
| | | let picList = ref([]) |
| | | |
| | | // 查询分页数据 |
| | | function getLists(param = {}) { |
| | | function getLists (param = {}) { |
| | | param.current = pages.page |
| | | param.size = pages.pageSize |
| | | param.firmId = data.companyInfo.id |
| | |
| | | let addPupoLayers = {} |
| | | |
| | | // 行点击 |
| | | function rowClick(row, column, event) { |
| | | function rowClick (row, column, event) { |
| | | if (!row.lng || !row.lat) { |
| | | return |
| | | } |
| | | // console.log('点击了', row, column, event) |
| | | // 销毁之前的 |
| | | destroy() |
| | | if (!addTileLayers[row.name]) { |
| | |
| | | if (picList.value.length == 0) { |
| | | return |
| | | } |
| | | console.log('点击了', picList.value.length) |
| | | addPupoLayers['企业应急物资'] = new DC.HtmlLayer('企业应急物资') |
| | | window.$viewer.addLayer(addPupoLayers['企业应急物资']) |
| | | let iconEl = `<div class="marsBlueGradientPnl"> |
| | |
| | | } |
| | | |
| | | // 销毁 |
| | | function destroy() { |
| | | function destroy () { |
| | | let arr = Object.keys(addTileLayers) |
| | | arr.forEach(i => { |
| | | addTileLayers[i] && window.$viewer.removeLayer(addTileLayers[i]) |
| | |
| | | addTileLayers = {} |
| | | } |
| | | // 销毁 |
| | | function destroyPupoLayers() { |
| | | function destroyPupoLayers () { |
| | | let arr = Object.keys(addPupoLayers) |
| | | arr.filter(i => i != 'hgyq').forEach(i => { |
| | | addPupoLayers[i] && window.$viewer.removeLayer(addPupoLayers[i]) |
| | |
| | | addPupoLayers = {} |
| | | } |
| | | onUnmounted(() => { |
| | | console.log('销毁***************************') |
| | | destroy() |
| | | destroyPupoLayers() |
| | | }) |
| | |
| | | </el-form> |
| | | <!-- <global-search :options="options" @searchBtn="searchBtn" @resetBtn="resetBtn" ref="SeachBarCondition"></global-search> --> |
| | | <div class="table-box"> |
| | | <el-table :data="tableData" @row-click="rowClick" empty-text="" style="width: 100%" |
| | | <el-table empty-text="暂无数据" border :data="tableData" @row-click="rowClick" style="width: 100%" |
| | | :header-cell-style="headerCellStyle" :cell-style="tableCellStyle" |
| | | element-loading-background="rgba(122, 122, 122, 0.1)"> |
| | | <el-table-column prop="name" label="名称" width="240" /> |
| | |
| | | <el-button link type="primary" size="small" :disabled="scope.row.lng == ''" |
| | | @click="rowClick(scope.row)">定位</el-button> |
| | | </template> |
| | | </el-table-column> --> |
| | | </el-table-column> --> |
| | | </el-table> |
| | | </div> |
| | | </div> |
| | |
| | | * @Author: shuishen 1109946754@qq.com |
| | | * @Date: 2023-03-10 15:27:59 |
| | | * @LastEditors: shuishen 1109946754@qq.com |
| | | * @LastEditTime: 2024-11-12 18:10:32 |
| | | * @FilePath: \bigScreen\src\views\space\components\leftContainer.vue |
| | | * @LastEditTime: 2024-11-27 16:14:10 |
| | | * @FilePath: \bigScreen\src\views\companyInfo\components\box\unitContent.vue |
| | | * @Description: |
| | | * |
| | | * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved. |
| | |
| | | let data = res.data.data.records |
| | | data.filter(i => i.lng && i.lng != '' && i.lat && i.lat != '').forEach(i => { |
| | | let img = image.value.filter(l => i.name.includes(l.label)) |
| | | img = img.length > 0 ? img : image |
| | | img = img.length > 0 ? img : image.value |
| | | let iconEl = `<div class="map-name">${i.name}</div> |
| | | <div class="map-icon"> <img src="${img[0].value}"> </div>` |
| | | let divIcon = new DC.DivIcon( |
| | |
| | | EventBus.emit('restHandleCheckChange', `3-3-4`) |
| | | }) |
| | | onUnmounted(() => { |
| | | console.log('leftContainer unmounted***********************') |
| | | let arr = Object.keys(addTileLayers) |
| | | arr.forEach(i => { |
| | | addTileLayers[i] && window.$viewer.removeLayer(addTileLayers[i]) |
| | |
| | | }) |
| | | |
| | | onMounted(() => { |
| | | // console.log("*************************", state.buttonIndex) |
| | | }) |
| | | |
| | | // watch(() => state.buttonIndex, (newValue, oldValue) => { |
| | | // console.log("**************111***********", newValue) |
| | | // }) |
| | | |
| | | |
| | | </script> |
| | | |
| | | <template> |
| | |
| | | }) |
| | | |
| | | const handleChildEvent = (data) => { |
| | | console.log('子组件触发的事件,传递的数据:', data) |
| | | buttonIndex.value = data |
| | | // localStorage.setItem('buttonIndex', data); |
| | | |
| | |
| | | const tableContent = ref(null) |
| | | |
| | | const handleSizeChange = (val) => { |
| | | console.log(`${val} items per page`) |
| | | console.log(`${val} items per page`) |
| | | } |
| | | const handleCurrentChange = (val) => { |
| | | console.log(`current page: ${val}`) |
| | | console.log(`current page: ${val}`) |
| | | } |
| | | |
| | | const propsData = defineProps({ |
| | | tableData: { |
| | | type: Array, |
| | | default: () => [] |
| | | } |
| | | tableData: { |
| | | type: Array, |
| | | default: () => [] |
| | | } |
| | | }) |
| | | |
| | | onMounted(() => { |
| | | nextTick(() => { |
| | | curHeight.value = tableContent.value.offsetHeight - 40 |
| | | |
| | | console.log(tableContent.value.offsetHeight, `current page: ${curHeight.value}`) |
| | | |
| | | }) |
| | | nextTick(() => { |
| | | curHeight.value = tableContent.value.offsetHeight - 40 |
| | | }) |
| | | }) |
| | | |
| | | |
| | | </script> |
| | | |
| | | <template> |
| | | <div ref="tableContent" class="content"> |
| | | <el-table :data="tableData" stripe style="width: 100%" :height="curHeight"> |
| | | <el-table-column prop="ind" label="序号" width="60" /> |
| | | <el-table-column prop="address" label="位置" /> |
| | | <el-table-column prop="fireGrade" label="火灾等级" /> |
| | | <el-table-column prop="fireAddress" label="燃烧位置" /> |
| | | </el-table> |
| | | <div ref="tableContent" class="content"> |
| | | <el-table empty-text="暂无数据" :data="tableData" stripe style="width: 100%" :height="curHeight"> |
| | | <el-table-column prop="ind" label="序号" width="60" /> |
| | | <el-table-column prop="address" label="位置" /> |
| | | <el-table-column prop="fireGrade" label="火灾等级" /> |
| | | <el-table-column prop="fireAddress" label="燃烧位置" /> |
| | | </el-table> |
| | | |
| | | <div class="page"> |
| | | <el-pagination v-model:current-page="currentPage" v-model:page-size="pageSize" :pager-count="5" |
| | | :page-sizes="[10, 20, 30, 50]" :small="small" :disabled="disabled" :background="background" |
| | | layout="sizes, prev, pager, next" :total="400" @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" /> |
| | | </div> |
| | | <div class="page"> |
| | | <el-pagination v-model:current-page="currentPage" v-model:page-size="pageSize" :pager-count="5" |
| | | :page-sizes="[10, 20, 30, 50]" :small="small" :disabled="disabled" :background="background" |
| | | layout="sizes, prev, pager, next" :total="400" @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" /> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <style lang="scss" scoped> |
| | | .content { |
| | | height: 100%; |
| | | height: 100%; |
| | | |
| | | .page { |
| | | height: 40px; |
| | | line-height: 40px; |
| | | } |
| | | .page { |
| | | height: 40px; |
| | | line-height: 40px; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | * @Author: shuishen 1109946754@qq.com |
| | | * @Date: 2023-03-10 15:27:59 |
| | | * @LastEditors: shuishen 1109946754@qq.com |
| | | * @LastEditTime: 2024-11-18 18:24:10 |
| | | * @LastEditTime: 2024-11-27 14:49:05 |
| | | * @FilePath: \bigScreen\src\views\pac\components\box\dataContent.vue |
| | | * @Description: |
| | | * |
| | |
| | | const curSelect = ref('1') |
| | | let addTileLayers = {} |
| | | const handleCheckChange = (row) => { |
| | | // console.log(row) |
| | | resData.data.forEach(item => { |
| | | if (row.value === item.value) { |
| | | if (!addTileLayers[item.label]) { |
| | |
| | | type: 7, |
| | | backgroundIcon: VITE_APP_BASE + 'img/mapicon/xfs.png', |
| | | className: 'xfs-box', |
| | | }, |
| | | { |
| | | type: 8, |
| | | backgroundIcon: VITE_APP_BASE + 'img/mapicon/gouqu.png', |
| | | className: 'xfs-box', |
| | | }, |
| | | { |
| | | type: 9, |
| | | backgroundIcon: VITE_APP_BASE + 'img/mapicon/wsclc.png', |
| | | className: 'xfs-box', |
| | | }, |
| | | { |
| | | type: 10, |
| | | backgroundIcon: VITE_APP_BASE + 'img/mapicon/psk.png', |
| | | className: 'xfs-box', |
| | | }, |
| | | { |
| | | type: 11, |
| | | backgroundIcon: VITE_APP_BASE + 'img/mapicon/wsc.png', |
| | | className: 'xfs-box', |
| | | } |
| | | ] |
| | | |
| | |
| | | let data = res.data.data.records |
| | | data.filter(i => i.lng && i.lng != '' && i.lat && i.lat != '').forEach(i => { |
| | | let iconEl = '' |
| | | let divclassName = '' |
| | | |
| | | let flag = typeList.find(l => l.type == i.type) |
| | | if (flag) { |
| | | divclassName = flag.className |
| | | if (flag.backgroundIcon) { |
| | | iconEl = ` |
| | | <div class="map-name">${i[i.showParams] || i.name}</div> |
| | |
| | | |
| | | let divIcon = new DC.DivIcon( |
| | | new DC.Position(i.lng, i.lat, 64), |
| | | `<div class="public-map-popup ${flag.className || ''}"> |
| | | `<div class="public-map-popup ${divclassName}"> |
| | | ${iconEl} |
| | | </div>` |
| | | ) |
| | |
| | | * @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 |
| | | * @LastEditTime: 2024-11-27 14:30:53 |
| | | * @FilePath: \bigScreen\src\views\pac\components\box\fireSource.vue |
| | | * @Description: |
| | | * |
| | | * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved. |
| | | --> |
| | | <script setup> |
| | | import { Picture } from '@element-plus/icons-vue' |
| | | |
| | | import publicContent from './publicContent.vue' |
| | | import { getAssetsFile } from 'utils/utils' |
| | | const one = getAssetsFile('one.png', '/img') |
| | |
| | | const three = getAssetsFile('three.png', '/img') |
| | | import { usePointStore } from 'store/usepoint' |
| | | const pointStore = usePointStore() |
| | | const sharedData = computed(() => pointStore.sharedData); |
| | | const sharedData = computed(() => pointStore.sharedData) |
| | | |
| | | let indexValue = ref(1) |
| | | |
| | | watch(sharedData, (newValue) => { |
| | | indexValue.value = newValue |
| | | // console.log(newValue, "************************************************") |
| | | }); |
| | | indexValue.value = newValue |
| | | }) |
| | | </script> |
| | | |
| | | <template> |
| | | <public-content> |
| | | <template #content> |
| | | <div class="content_box"> |
| | | <div v-if="indexValue == 1"> |
| | | <div> |
| | | <!-- <img :src="one" alt=""> --> |
| | | <el-image :src="one" :zoom-rate="1.2" :max-scale="7" :min-scale="0.2" :preview-src-list="[one]" |
| | | :initial-index="4" fit="cover"> |
| | | <template #error> |
| | | <div class="image-slot"> |
| | | <el-icon><icon-picture /></el-icon> |
| | | </div> |
| | | </template> |
| | | </el-image> |
| | | </div> |
| | | <div class="content_text"> |
| | | 第一级应急防控体系,即事故废水不出企业,事故发生时,首先启动一级防控。关闭所有可能外溢事故污水的外排口,利用企业自身的围堰、应急池等环境应急防控设施,将污水控制在企业厂区内部。园区内所有企业均设置相应的事故应急池,企业雨水(清下水)排口设有监管部门控制的阀门。一旦发生物料泄漏及火灾等安全生产事故,相关企业快速断开雨水排口,联动打开事故应急池,将事故废水和消防尾水导入事故应急池。事故结束后,应急事故池中的废水进入厂区自身污水处理站处理,无污水处理站的企业按照监测结果进入园区污水处理厂处理。 |
| | | </div> |
| | | <public-content> |
| | | <template #content> |
| | | <div class="content_box"> |
| | | <div v-if="indexValue == 1"> |
| | | <div> |
| | | <!-- <img :src="one" alt=""> --> |
| | | <el-image :src="one" :zoom-rate="1.2" :max-scale="7" :min-scale="0.2" :preview-src-list="[one]" |
| | | :initial-index="4" fit="cover"> |
| | | <template #error> |
| | | <div class="image-slot"> |
| | | <el-icon> |
| | | <Picture /> |
| | | </el-icon> |
| | | </div> |
| | | </template> |
| | | </el-image> |
| | | </div> |
| | | <div class="content_text"> |
| | | 第一级应急防控体系,即事故废水不出企业,事故发生时,首先启动一级防控。关闭所有可能外溢事故污水的外排口,利用企业自身的围堰、应急池等环境应急防控设施,将污水控制在企业厂区内部。园区内所有企业均设置相应的事故应急池,企业雨水(清下水)排口设有监管部门控制的阀门。一旦发生物料泄漏及火灾等安全生产事故,相关企业快速断开雨水排口,联动打开事故应急池,将事故废水和消防尾水导入事故应急池。事故结束后,应急事故池中的废水进入厂区自身污水处理站处理,无污水处理站的企业按照监测结果进入园区污水处理厂处理。 |
| | | </div> |
| | | </div> |
| | | |
| | | <div v-if="indexValue == 2" class="content_img_text"> |
| | | <div> |
| | | <!-- <img :src="two" alt=""> --> |
| | | <el-image :src="two" :zoom-rate="1.2" :max-scale="7" :min-scale="0.2" :preview-src-list="[two]" |
| | | :initial-index="4" fit="cover"> |
| | | <template #error> |
| | | <div class="image-slot"> |
| | | <el-icon><icon-picture /></el-icon> |
| | | </div> |
| | | </template> |
| | | </el-image> |
| | | </div> |
| | | <div class="content_text_box"> |
| | | <div class="content_text"> |
| | | 一级防控能力不足时,启动二级防控。通过专用管道或临时转输措施,与相邻企业应急池、园区公共应急池等互联互通,拦截处置事故污水。第二级应急防控体系,即事故废水不出园区,事故废水储存在园区公共应急池及园区内雨水管网公共空间内。 |
| | | </div> |
| | | |
| | | <div class="content_text"> |
| | | (1)公共应急池的选址。建设园区公共应急池或利用园区内干枯河道、低洼地带等进行改造,并设置独立管网进行事故废水的收集和输送,保证每家企业内部应急池与公共应急池有效连通;在事故废水超过设计标准的情况下,也可有效利用雨水管网分段建设闸门井进行废水容纳。一旦园区内企业发生事故,且消防尾水过量超出企业自身防控能力时,开启园区公共应急池阀门,企业内部无法收纳的消防事故水将通过应急管网流入公共应急池,将事故废水控制在园区应急池内,不进入区内河道。事故结束后,对公共应急池内收纳的事故废水进行监测,若达标,则就近排入河道;若不达标,则分批次用槽车送入园区污水处理厂处理。 |
| | | </div> |
| | | |
| | | <div class="content_text"> |
| | | (2)公共应急池容量设计。根据《化工园区事故应急设施(池)建设标准》(T/CPCIF 0049—2020)进行公共应急池设置,以化工集中区产生事故废水外排量最大的一个企业计算。 |
| | | </div> |
| | | </div> |
| | | <div v-if="indexValue == 2" class="content_img_text"> |
| | | <div> |
| | | <!-- <img :src="two" alt=""> --> |
| | | <el-image :src="two" :zoom-rate="1.2" :max-scale="7" :min-scale="0.2" :preview-src-list="[two]" |
| | | :initial-index="4" fit="cover"> |
| | | <template #error> |
| | | <div class="image-slot"> |
| | | <el-icon> |
| | | <Picture /> |
| | | </el-icon> |
| | | </div> |
| | | |
| | | <div v-if="indexValue == 3"> |
| | | <div> |
| | | <!-- <img :src="three" alt=""> --> |
| | | <el-image :src="three" :zoom-rate="1.2" :max-scale="7" :min-scale="0.2" :preview-src-list="[three]" |
| | | :initial-index="4" fit="cover"> |
| | | <template #error> |
| | | <div class="image-slot"> |
| | | <el-icon><icon-picture /></el-icon> |
| | | </div> |
| | | </template> |
| | | </el-image> |
| | | </div> |
| | | <div class="content_text"> |
| | | 事态进一步扩大,污水进入园区内水体,启动三级防控。利用化工集中区内的坑塘、河道、沟渠以及周边水系等,构建环境应急防控空间,对进出园区的水体实施封闭或分段管控。结合化工集中区区实际,确定事故废水通过雨污管网在进入赣江前有效拦截,当发生重大企业突发环境事故或危化品运输车辆侧翻等事故时,事故废水流入化工集中区内水体,立即关闭应急闸坝,污染河道使用移动闸截断污染团(带);同时根据污染团(带)所在位置,就近闸断园区内部河道形成临时应急池,防止污染团从园区内水系进一步扩散至外环境。事故结束后,对临时应急空间内水质进行监测,若达标,则开启河道应急闸坝;若不达标,则将临时应急空间内污水由水泵将河水分批次送入公共应急池,进一步送园区污水处理厂处理。 |
| | | </div> |
| | | </div> |
| | | |
| | | </template> |
| | | </el-image> |
| | | </div> |
| | | <div class="content_text_box"> |
| | | <div class="content_text"> |
| | | 一级防控能力不足时,启动二级防控。通过专用管道或临时转输措施,与相邻企业应急池、园区公共应急池等互联互通,拦截处置事故污水。第二级应急防控体系,即事故废水不出园区,事故废水储存在园区公共应急池及园区内雨水管网公共空间内。 |
| | | </div> |
| | | </template> |
| | | </public-content> |
| | | |
| | | <div class="content_text"> |
| | | (1)公共应急池的选址。建设园区公共应急池或利用园区内干枯河道、低洼地带等进行改造,并设置独立管网进行事故废水的收集和输送,保证每家企业内部应急池与公共应急池有效连通;在事故废水超过设计标准的情况下,也可有效利用雨水管网分段建设闸门井进行废水容纳。一旦园区内企业发生事故,且消防尾水过量超出企业自身防控能力时,开启园区公共应急池阀门,企业内部无法收纳的消防事故水将通过应急管网流入公共应急池,将事故废水控制在园区应急池内,不进入区内河道。事故结束后,对公共应急池内收纳的事故废水进行监测,若达标,则就近排入河道;若不达标,则分批次用槽车送入园区污水处理厂处理。 |
| | | </div> |
| | | |
| | | <div class="content_text"> |
| | | (2)公共应急池容量设计。根据《化工园区事故应急设施(池)建设标准》(T/CPCIF 0049—2020)进行公共应急池设置,以化工集中区产生事故废水外排量最大的一个企业计算。 |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div v-if="indexValue == 3"> |
| | | <div> |
| | | <!-- <img :src="three" alt=""> --> |
| | | <el-image :src="three" :zoom-rate="1.2" :max-scale="7" :min-scale="0.2" :preview-src-list="[three]" |
| | | :initial-index="4" fit="cover"> |
| | | <template #error> |
| | | <div class="image-slot"> |
| | | <el-icon> |
| | | <Picture /> |
| | | </el-icon> |
| | | </div> |
| | | </template> |
| | | </el-image> |
| | | </div> |
| | | <div class="content_text"> |
| | | 事态进一步扩大,污水进入园区内水体,启动三级防控。利用化工集中区内的坑塘、河道、沟渠以及周边水系等,构建环境应急防控空间,对进出园区的水体实施封闭或分段管控。结合化工集中区区实际,确定事故废水通过雨污管网在进入赣江前有效拦截,当发生重大企业突发环境事故或危化品运输车辆侧翻等事故时,事故废水流入化工集中区内水体,立即关闭应急闸坝,污染河道使用移动闸截断污染团(带);同时根据污染团(带)所在位置,就近闸断园区内部河道形成临时应急池,防止污染团从园区内水系进一步扩散至外环境。事故结束后,对临时应急空间内水质进行监测,若达标,则开启河道应急闸坝;若不达标,则将临时应急空间内污水由水泵将河水分批次送入公共应急池,进一步送园区污水处理厂处理。 |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </template> |
| | | </public-content> |
| | | </template> |
| | | |
| | | <style lang="scss" scoped> |
| | | .content_box { |
| | | color: #fff; |
| | | // overflow: scroll; |
| | | color: #fff; |
| | | // overflow: scroll; |
| | | } |
| | | |
| | | .content_box img { |
| | | width: 100%; |
| | | width: 100%; |
| | | } |
| | | |
| | | .content_text_box { |
| | | height: 530px; |
| | | overflow: scroll; |
| | | // 隐藏滚动条 |
| | | scrollbar-width: none; |
| | | height: 530px; |
| | | overflow: hidden; |
| | | overflow-y: auto; |
| | | } |
| | | |
| | | |
| | | .content_box .content_text { |
| | | // 首行缩进 |
| | | text-indent: 2em; |
| | | width: 100%; |
| | | line-height: 25px; |
| | | // 字间距 |
| | | letter-spacing: 2px; |
| | | font-size: 16px; |
| | | // 首行缩进 |
| | | text-indent: 2em; |
| | | width: 100%; |
| | | line-height: 25px; |
| | | // 字间距 |
| | | letter-spacing: 2px; |
| | | font-size: 16px; |
| | | } |
| | | </style> |
| | |
| | | * @Author: shuishen 1109946754@qq.com |
| | | * @Date: 2024-11-09 15:41:35 |
| | | * @LastEditors: shuishen 1109946754@qq.com |
| | | * @LastEditTime: 2024-11-27 12:16:04 |
| | | * @LastEditTime: 2024-11-27 15:19:10 |
| | | * @FilePath: \bigScreen\src\views\pd\components\dynamicPanel.vue |
| | | * @Description: |
| | | * |
| | |
| | | |
| | | if (item.showModel) { |
| | | window.$viewer.flyToPosition("115.10587903,27.28374884,400,0,-90", () => { |
| | | track.setModel(VITE_APP_BASE + 'gltf/car.gltf', { |
| | | track.setModel(VITE_APP_BASE + 'gltf/car.gltf', { |
| | | show: true, |
| | | scale: 0.0025, |
| | | // nodeTransformations: { |
| | |
| | | * @Author: shuishen 1109946754@qq.com |
| | | * @Date: 2023-03-13 14:54:26 |
| | | * @LastEditors: shuishen 1109946754@qq.com |
| | | * @LastEditTime: 2024-11-20 18:50:27 |
| | | * @LastEditTime: 2024-11-27 14:26:33 |
| | | * @FilePath: \bigScreen\src\views\rs\components\box\dataContent.vue |
| | | * @Description: |
| | | * |
| | |
| | | |
| | | // 查询分页数据 |
| | | const getLists = (param = {}) => { |
| | | tableData.value = [] |
| | | param.current = pages.page |
| | | param.size = pages.pageSize |
| | | loading.value = true |
| | |
| | | } |
| | | |
| | | const tabClick = (item) => { |
| | | console.log(item, 12312) |
| | | if (curSelect.value) EventBus.emit('restHandleDelChange', `4-${curSelect.value}`) |
| | | curSelect.value = item.value |
| | | EventBus.emit('restHandleCheckChange', `4`) |
| | |
| | | </div> --> |
| | | <div class="h0 flex-1 table-content" ref="TableContent" v-loading="loading" |
| | | element-loading-background="rgba(46, 81, 136, 0.9)"> |
| | | <el-table @row-click="rowClick" border :data="tableData" :height="curTableHeight" style="width: 100%"> |
| | | <el-table empty-text="暂无数据" @row-click="rowClick" border :data="tableData" :height="curTableHeight" style="width: 100%"> |
| | | <el-table-column align="center" label="ID" width="42" prop="rank"> |
| | | <template #default="{ $index, row }"> |
| | | {{ (pages.page - 1) * pages.pageSize + $index + 1 }} |
| | |
| | | const curSelect = ref('') |
| | | |
| | | const tabClick = (item) => { |
| | | console.log(item, 12312) |
| | | if (curSelect.value) EventBus.emit('restHandleDelChange', `4-${curSelect.value}`) |
| | | curSelect.value = item.value |
| | | EventBus.emit('restHandleCheckChange', `4-${item.value}`) |
| | |
| | | * @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 |
| | | * @LastEditTime: 2024-11-27 14:32:26 |
| | | * @FilePath: \bigScreen\src\views\rt\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 publicContent from "./publicContent.vue" |
| | | import { getList } from "@/api/rescueTeam/rescueTeam" |
| | | import { getPage } from '@/api/indParkInfo' |
| | | import { reactive } from "vue"; |
| | | import { reactive } from "vue" |
| | | |
| | | const loading = ref(false); |
| | | const loading = ref(false) |
| | | |
| | | const tableData = ref([]); |
| | | const tableData = ref([]) |
| | | |
| | | let currentIndex = ref(0) |
| | | // 园区 企业 |
| | |
| | | { label: "园区救援队伍", value: "0", id: "1" }, |
| | | { label: "企业救援队伍", value: "0", id: "2" } |
| | | |
| | | ]); |
| | | ]) |
| | | const pages = { |
| | | page: 1, |
| | | pageSize: 100, |
| | | total: 0, |
| | | }; |
| | | } |
| | | |
| | | onMounted(() => { |
| | | getLists(formInline); |
| | | }); |
| | | getLists(formInline) |
| | | }) |
| | | |
| | | |
| | | function handleClick(item, index) { |
| | | function handleClick (item, index) { |
| | | currentIndex.value = index |
| | | pages.page = 1 |
| | | pages.pageSize = 1000 |
| | |
| | | } else { |
| | | formInline.type = 2 |
| | | } |
| | | getLists(formInline); |
| | | getLists(formInline) |
| | | } |
| | | // 表格样式 |
| | | const tableCellStyle = ({ row, column }) => { |
| | | return { background: "#152851", color: "#fff" }; |
| | | }; |
| | | return { background: "#152851", color: "#fff" } |
| | | } |
| | | // 表格表头样式 |
| | | const headerCellStyle = ({ }) => { |
| | | return { |
| | | background: "#152851", |
| | | color: "#fff", |
| | | }; |
| | | }; |
| | | } |
| | | } |
| | | // 搜索条件 |
| | | const formInline = reactive({ |
| | | perInCha: "", |
| | | type: '1' |
| | | }); |
| | | }) |
| | | |
| | | // 提交查询 |
| | | const onSubmit = () => { |
| | | pages.page = 1 |
| | | pages.pageSize = 13 |
| | | pages.total = 0 |
| | | console.log("submit!"); |
| | | getLists(formInline); |
| | | }; |
| | | getLists(formInline) |
| | | } |
| | | |
| | | // 分页树改变 |
| | | const handleSizeChange = (val) => { |
| | | pages.pageSize = val; |
| | | getLists(formInline); |
| | | pages.pageSize = val |
| | | getLists(formInline) |
| | | } |
| | | // 分页改变 |
| | | const handleCurrentChange = (val) => { |
| | | pages.page = val; |
| | | getLists(formInline); |
| | | pages.page = val |
| | | getLists(formInline) |
| | | } |
| | | // 重置条件 |
| | | const clearBtn = () => { |
| | |
| | | pages.page = 1 |
| | | pages.pageSize = 13 |
| | | pages.total = 0 |
| | | getLists(formInline); |
| | | getLists(formInline) |
| | | } |
| | | |
| | | // 查询分页数据 |
| | | function getLists(param = {}) { |
| | | param.current = pages.page; |
| | | param.size = pages.pageSize; |
| | | loading.value = true; |
| | | function getLists (param = {}) { |
| | | tableData.value = [] |
| | | param.current = pages.page |
| | | param.size = pages.pageSize |
| | | loading.value = true |
| | | getList(param) |
| | | .then((res) => { |
| | | const data = res.data.data; |
| | | tableData.value = data.records; |
| | | const data = res.data.data |
| | | tableData.value = data.records |
| | | }) |
| | | .catch((err) => { |
| | | loading.value = false; |
| | | console.log(err); |
| | | }); |
| | | loading.value = false |
| | | console.log(err) |
| | | }) |
| | | } |
| | | </script> |
| | | |
| | |
| | | |
| | | <div class="list_box"> |
| | | <ul> |
| | | <li v-for="( item, index ) in tilteList " :key="index" :class="[currentIndex === index ? 'active' : '']" |
| | | <li v-for="( item, index ) in tilteList " :key="index" :class="[currentIndex === index ? 'active' : '']" |
| | | @click="handleClick(item, index)"> |
| | | {{ item.label }} |
| | | </li> |
| | |
| | | |
| | | <div class="page_box"> |
| | | |
| | | <el-table border empty-text="" v-if="formInline.type == 1" :data="tableData" style="width: 100%" |
| | | <el-table empty-text="暂无数据" border v-if="formInline.type == 1" :data="tableData" style="width: 100%" |
| | | :header-cell-style="headerCellStyle" :cell-style="tableCellStyle"> |
| | | <el-table-column prop="teamName" label="救援队伍组名称" /> |
| | | <el-table-column prop="teamJob" label="救援队伍组职务" /> |
| | |
| | | <el-table-column prop="perInChaPho" label="联系电话" /> |
| | | </el-table> |
| | | |
| | | <el-table border empty-text="" v-else :data="tableData" style="width: 100%" :header-cell-style="headerCellStyle" |
| | | :cell-style="tableCellStyle"> |
| | | <el-table empty-text="暂无数据" border v-else :data="tableData" style="width: 100%" |
| | | :header-cell-style="headerCellStyle" :cell-style="tableCellStyle"> |
| | | <el-table-column prop="firmName" label="企业名称" /> |
| | | <el-table-column prop="perInCha" label="责任人姓名" /> |
| | | <el-table-column prop="perInChaPho" label="联系电话" /> |
| | |
| | | * @Author: shuishen 1109946754@qq.com |
| | | * @Date: 2023-03-13 14:54:26 |
| | | * @LastEditors: shuishen 1109946754@qq.com |
| | | * @LastEditTime: 2024-11-19 17:41:11 |
| | | * @LastEditTime: 2024-11-27 14:27:09 |
| | | * @FilePath: \bigScreen\src\views\space\components\box\dataContent.vue |
| | | * @Description: |
| | | * |
| | |
| | | total: 0, |
| | | } |
| | | |
| | | function positionColor() { |
| | | function positionColor () { |
| | | return (row) => { |
| | | if ( |
| | | (row.X && row.X != 0) || |
| | |
| | | } |
| | | } |
| | | |
| | | function positionDisabled() { |
| | | function positionDisabled () { |
| | | return (row) => { |
| | | if ( |
| | | (row.X && row.X != 0) || |
| | |
| | | |
| | | // 查询分页数据 |
| | | const getLists = (param = {}) => { |
| | | tableData.value = [] |
| | | param.current = pages.page |
| | | param.size = pages.pageSize |
| | | loading.value = true |
| | |
| | | |
| | | let addPupoLayers = {} |
| | | // 行点击 |
| | | function rowClick(row, column, event) { |
| | | function rowClick (row, column, event) { |
| | | if (row.lng && row.lat) { |
| | | window.$viewer.flyToPosition(new DC.Position(row.lng, row.lat, 600, 0, -90, 0)) |
| | | if (!row.imageUrl) { |
| | |
| | | |
| | | |
| | | // 查看详情 |
| | | function goDetail(row) { } |
| | | function goDetail (row) { } |
| | | |
| | | const searchBtn = (params) => { |
| | | resetPage() |
| | |
| | | }) |
| | | |
| | | // 销毁 |
| | | function destroyPupoLayers() { |
| | | function destroyPupoLayers () { |
| | | let arr = Object.keys(addPupoLayers) |
| | | arr.forEach(i => { |
| | | addPupoLayers[i] && window.$viewer.removeLayer(addPupoLayers[i]) |
| | |
| | | |
| | | <template> |
| | | <div class="w100 h0 flex-1 flex f-d-c"> |
| | | <global-search :options="options" @searchBtn="searchBtn" @resetBtn="resetBtn" ref="SeachBarCondition"></global-search> |
| | | <global-search :options="options" @searchBtn="searchBtn" @resetBtn="resetBtn" |
| | | ref="SeachBarCondition"></global-search> |
| | | |
| | | <div class="h0 flex-1 table-content" ref="TableContent" v-loading="loading" |
| | | element-loading-background="rgba(46, 81, 136, 0.9)"> |
| | | <el-table @row-click="rowClick" border :data="tableData" :height="curTableHeight" style="width: 100%"> |
| | | <el-table empty-text="暂无数据" @row-click="rowClick" border :data="tableData" :height="curTableHeight" |
| | | style="width: 100%"> |
| | | <el-table-column align="center" label="ID" width="42" prop="rank"> |
| | | <template #default="{ $index, row }"> |
| | | {{ (pages.page - 1) * pages.pageSize + $index + 1 }} |
| | |
| | | } |
| | | |
| | | const tabClick = (item) => { |
| | | console.log('tabClick', item) |
| | | if (curSelect.value) { |
| | | if (curSelect.value == '3') { |
| | | EventBus.emit('restHandleDelChange', `3-3-1`) |
| | |
| | | |
| | | <div class="page_box"> |
| | | <div> |
| | | <el-table border empty-text="" v-if="formInline.ownership == 1" :data="tableData"> |
| | | <el-table empty-text="暂无数据" border v-if="formInline.ownership == 1" :data="tableData"> |
| | | <el-table-column prop="name" label="物资名称" /> |
| | | <el-table-column prop="personInCha" label="负责人" width="150" /> |
| | | <el-table-column prop="personInChaPhone" label="负责人电话" width="250" /> |
| | |
| | | <el-table-column prop="numUnit" label="数量" width="150" /> |
| | | </el-table> |
| | | |
| | | <el-table border empty-text="" v-else :data="tableData"> |
| | | <el-table empty-text="暂无数据" border v-else :data="tableData"> |
| | | <el-table-column prop="name" label="物资名称" /> |
| | | <el-table-column prop="personInCha" label="负责人" width="150" /> |
| | | <el-table-column prop="personInChaPhone" label="负责人电话" width="250" /> |
| | |
| | | ownership: 1, |
| | | }) |
| | | |
| | | function getCompanyPages(param = {}) { |
| | | function getCompanyPages (param = {}) { |
| | | param.current = pages.page |
| | | param.size = pages.pageSize |
| | | getPage(param).then(res => { |
| | |
| | | }) |
| | | } |
| | | |
| | | function handleClick(item, index) { |
| | | function handleClick (item, index) { |
| | | currentIndex.value = index |
| | | pages.page = 1 |
| | | pages.pageSize = 1000 |
| | |
| | | // } |
| | | |
| | | // 查询分页数据 |
| | | function getLists(param = {}) { |
| | | function getLists (param = {}) { |
| | | param.current = pages.page |
| | | param.size = pages.pageSize |
| | | loading.value = true |
| | |
| | | |
| | | |
| | | // 查询分页数据 |
| | | function getComLists(param = {}) { |
| | | function getComLists (param = {}) { |
| | | param.current = pages.page |
| | | param.size = pages.pageSize |
| | | loading.value = true |
| | |
| | | * @Author: shuishen 1109946754@qq.com |
| | | * @Date: 2024-11-04 16:32:04 |
| | | * @LastEditors: shuishen 1109946754@qq.com |
| | | * @LastEditTime: 2024-11-20 19:01:15 |
| | | * @LastEditTime: 2024-11-27 15:44:25 |
| | | * @FilePath: \bigScreen\src\views\survey\components\box\dataContent.vue |
| | | * @Description: |
| | | * |
| | |
| | | let $echarts = inject("echarts") |
| | | const curEcharts = ref(null) |
| | | |
| | | let myEcharts = reactive(null) |
| | | let myEcharts = reactive({ |
| | | chart: '' |
| | | }) |
| | | |
| | | const echartsColors = ['#1E90FF', '#36A2EB', '#FFD700', '#FFA500', '#228B22', '#8FBC8F'] |
| | | |
| | |
| | | yaxis_data.push(element.num) |
| | | }) |
| | | |
| | | myEcharts.setOption({ |
| | | myEcharts.chart.setOption({ |
| | | tooltip: { |
| | | trigger: "axis", |
| | | axisPointer: { |
| | |
| | | interval: 0, //设置为 1,表示『隔一个标签显示一个标签』 |
| | | margin: 15, |
| | | rotate: 45, //调整数值改变倾斜的幅度(范围-90到90) |
| | | textStyle: { |
| | | color: "#fff", |
| | | fontStyle: "normal", |
| | | fontFamily: "微软雅黑", |
| | | fontSize: 12, |
| | | }, |
| | | color: "#fff", |
| | | fontStyle: "normal", |
| | | fontFamily: "微软雅黑", |
| | | fontSize: 12, |
| | | }, |
| | | }, |
| | | ], |
| | |
| | | } |
| | | |
| | | nextTick(() => { |
| | | myEcharts = $echarts.init(curEcharts.value) |
| | | myEcharts.chart = $echarts.init(curEcharts.value) |
| | | getStatistic() |
| | | }) |
| | | |
| | | const echartsResize = () => { |
| | | myEcharts && myEcharts.resize() |
| | | myEcharts.chart && myEcharts.chart.resize() |
| | | } |
| | | |
| | | useEchartsResize(echartsResize) |
| | |
| | | * @Author: shuishen 1109946754@qq.com |
| | | * @Date: 2024-11-04 16:32:04 |
| | | * @LastEditors: shuishen 1109946754@qq.com |
| | | * @LastEditTime: 2024-11-19 15:33:32 |
| | | * @LastEditTime: 2024-11-27 15:37:28 |
| | | * @FilePath: \bigScreen\src\views\survey\components\box\fireContent.vue |
| | | * @Description: |
| | | * |
| | |
| | | let $echarts = inject('echarts') |
| | | const curEcharts = ref(null) |
| | | |
| | | let myEcharts = reactive(null) |
| | | let myEcharts = reactive({ |
| | | chart: '' |
| | | }) |
| | | |
| | | let typeLevel = [ |
| | | { |
| | |
| | | total = total + item.num |
| | | }) |
| | | |
| | | myEcharts.setOption({ |
| | | myEcharts.chart.setOption({ |
| | | title: { |
| | | text: "总数", |
| | | subtext: String(total), |
| | |
| | | } |
| | | |
| | | nextTick(() => { |
| | | myEcharts = $echarts.init(curEcharts.value) |
| | | myEcharts.chart = $echarts.init(curEcharts.value) |
| | | getRiskSource() |
| | | }) |
| | | |
| | | const echartsResize = () => { |
| | | myEcharts && myEcharts.resize() |
| | | myEcharts.chart && myEcharts.chart.resize() |
| | | } |
| | | |
| | | useEchartsResize(echartsResize) |
| | |
| | | <script setup> |
| | | import { Picture } from '@element-plus/icons-vue' |
| | | |
| | | import { inject, Text } from 'vue' |
| | | const { VITE_APP_BASE } = import.meta.env |
| | |
| | | |
| | | }) |
| | | // 获取详情 |
| | | function getData() { |
| | | function getData () { |
| | | getDetail().then(res => { |
| | | state.parkInfo = res.data.data |
| | | parkInfoList.forEach(item => { |
| | |
| | | :min-scale="0.2" :preview-src-list="[state.parkInfo.imageUrls]" :initial-index="4" fit="cover"> |
| | | <template #error> |
| | | <div class="image-slot"> |
| | | <el-icon><icon-picture /></el-icon> |
| | | <el-icon> |
| | | <Picture /> |
| | | </el-icon> |
| | | </div> |
| | | </template> |
| | | </el-image> |
| | |
| | | }) |
| | | |
| | | |
| | | function getPages() { |
| | | function getPages () { |
| | | getPage({ |
| | | size: 100, |
| | | }).then(res => { |
| | | parkQy.value = res.data.data.records |
| | | // console.log(res) |
| | | }).catch(err => { |
| | | // console.log(err) |
| | | console.log(err) |
| | | }) |
| | | } |
| | | |
| | | function search() { |
| | | function search () { |
| | | getPage({ name: searchQuery.value }).then(res => { |
| | | parkQy.value = res.data.data.records |
| | | console.log(res) |
| | | }).catch(err => { |
| | | console.log(err) |
| | | }) |
| | |
| | | <div class="box-content w100 h100 flex f-d-c"> |
| | | <div> |
| | | <div class="search-container"> |
| | | <el-input v-model="searchQuery" placeholder="请输入企业名称" size="mini"> |
| | | <el-input v-model="searchQuery" placeholder="请输入企业名称" size="large"> |
| | | </el-input> |
| | | <el-button :color="'#0088ff'" @click="search" size="mini">搜索</el-button> |
| | | <el-button :color="'#0088ff'" @click="search" size="large">搜索</el-button> |
| | | </div> |
| | | </div> |
| | | |
| | |
| | | let $echarts = inject("echarts") |
| | | const curEcharts = ref(null) |
| | | |
| | | let myEcharts = reactive(null) |
| | | let myEcharts = reactive({ |
| | | chart: '' |
| | | }) |
| | | |
| | | function getEmergencySpace () { |
| | | getEmergencySpaceStatistic().then((res) => { |
| | | // console.log(res) |
| | | let data = res.data.data |
| | | let dataRsult = [] |
| | | var total = 0 |
| | |
| | | total = total + item.num |
| | | }) |
| | | |
| | | myEcharts.setOption({ |
| | | myEcharts.chart.setOption({ |
| | | title: { |
| | | text: "总数", |
| | | subtext: String(total), |
| | |
| | | } |
| | | |
| | | nextTick(() => { |
| | | myEcharts = $echarts.init(curEcharts.value) |
| | | myEcharts.chart = $echarts.init(curEcharts.value) |
| | | getEmergencySpace() |
| | | }) |
| | | |
| | | const echartsResize = () => { |
| | | myEcharts && myEcharts.resize() |
| | | myEcharts.chart && myEcharts.chart.resize() |
| | | } |
| | | |
| | | useEchartsResize(echartsResize) |
| | |
| | | * @Author: shuishen 1109946754@qq.com |
| | | * @Date: 2023-03-10 15:27:59 |
| | | * @LastEditors: shuishen 1109946754@qq.com |
| | | * @LastEditTime: 2024-11-05 16:33:44 |
| | | * @LastEditTime: 2024-11-27 16:15:34 |
| | | * @FilePath: \bigScreen\src\views\survey\components\leftContainer.vue |
| | | * @Description: |
| | | * |
| | |
| | | |
| | | onMounted(() => { |
| | | |
| | | console.log('leftContainer*************************************') |
| | | store.setLoadSub(false) |
| | | |
| | | }) |
| | |
| | | * @Author: shuishen 1109946754@qq.com |
| | | * @Date: 2024-10-25 10:56:27 |
| | | * @LastEditors: shuishen 1109946754@qq.com |
| | | * @LastEditTime: 2024-11-24 03:04:27 |
| | | * @LastEditTime: 2024-11-27 14:15:57 |
| | | * @FilePath: \bigScreen\vite.config.js |
| | | * @Description: |
| | | * |
| | |
| | | imports: ["vue", "vue-router"], // 自动导入vue和vue-router相关函数 |
| | | }), |
| | | viteCompression({ |
| | | filter: /\.(js|css|json|txt|html|ico|svg)(\?.*)?$/i, // 需要压缩的文件 |
| | | threshold: 512, // 文件容量大于这个值进行压缩 |
| | | algorithm: 'gzip', // 压缩方式 |
| | | ext: 'gz', // 后缀名 |
| | | deleteOriginFile: true, // 压缩后是否删除压缩源文件 |
| | | }) |
| | | filter: /\.(js|css|json|txt|ico|svg)(\?.*)?$/i, // 需要压缩的文件 |
| | | threshold: 1024, // 文件容量大于这个值进行压缩 |
| | | algorithm: 'gzip', // 压缩方式 |
| | | ext: 'gz', // 后缀名 |
| | | deleteOriginFile: false, // 压缩后是否删除压缩源文件 |
| | | }) |
| | | ], |
| | | |
| | | css: { |
| | |
| | | rewrite: path => path.replace(/^\/zhyq\/newMx/, ''), |
| | | }, |
| | | |
| | | '/zhyq/mx': { |
| | | // target: 'http://localhost', |
| | | target: 'https://wrj.shuixiongit.com/zhyq/mx', |
| | | changeOrigin: true, |
| | | rewrite: path => path.replace(/^\/zhyq\/mx/, ''), |
| | | }, |
| | | // '/zhyq/mx': { |
| | | // // target: 'http://localhost', |
| | | // target: 'https://wrj.shuixiongit.com/zhyq/mx', |
| | | // changeOrigin: true, |
| | | // rewrite: path => path.replace(/^\/zhyq\/mx/, ''), |
| | | // }, |
| | | |
| | | '/zhyqapi': { |
| | | // target: 'http://localhost:8082', |