2025-03-25 20:22:10 +08:00
|
|
|
|
<template>
|
2025-03-26 19:28:18 +08:00
|
|
|
|
<div class="default-main" style="position: relative">
|
2025-05-13 15:26:24 +08:00
|
|
|
|
<TableHeader date-picker>
|
2025-03-25 20:22:10 +08:00
|
|
|
|
<template v-slot:select>
|
2025-05-13 15:26:24 +08:00
|
|
|
|
<el-form-item label="电网侧标识">
|
2025-03-25 20:22:10 +08:00
|
|
|
|
<el-select
|
2025-05-13 15:26:24 +08:00
|
|
|
|
v-model="tableStore.table.params.powerFlag"
|
2025-03-25 20:22:10 +08:00
|
|
|
|
clearable
|
|
|
|
|
|
style="width: 100%"
|
2025-05-13 15:26:24 +08:00
|
|
|
|
placeholder="请选择电网侧标识"
|
2025-03-25 20:22:10 +08:00
|
|
|
|
>
|
|
|
|
|
|
<el-option
|
2025-05-13 15:26:24 +08:00
|
|
|
|
v-for="item in powerFlagList"
|
2025-03-25 20:22:10 +08:00
|
|
|
|
:key="item.id"
|
|
|
|
|
|
:label="item.name"
|
2025-05-13 15:26:24 +08:00
|
|
|
|
:value="item.algoDescribe"
|
2025-03-25 20:22:10 +08:00
|
|
|
|
></el-option>
|
|
|
|
|
|
</el-select>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
|
2025-03-28 16:05:03 +08:00
|
|
|
|
<template v-slot:operation>
|
2025-04-03 16:08:47 +08:00
|
|
|
|
<el-button
|
|
|
|
|
|
type="primary"
|
|
|
|
|
|
class="ml10"
|
|
|
|
|
|
@click="toggle"
|
|
|
|
|
|
:icon="leftVisible ? 'el-icon-Hide' : 'el-icon-View'"
|
|
|
|
|
|
>
|
2025-03-28 16:05:03 +08:00
|
|
|
|
{{ leftVisible ? '隐藏' : '显示' }}
|
|
|
|
|
|
</el-button>
|
2025-04-03 16:08:47 +08:00
|
|
|
|
|
2025-04-10 11:29:58 +08:00
|
|
|
|
<el-tooltip placement="left-start">
|
2025-04-03 16:08:47 +08:00
|
|
|
|
<InfoFilled style="height: 20px" class="ml10" />
|
|
|
|
|
|
<!-- <el-button circle icon="el-icon-InfoFilled" /> -->
|
|
|
|
|
|
<template #content>
|
2025-04-10 11:29:58 +08:00
|
|
|
|
<div style="font-size: 16px" class="mt10 mb10">
|
2025-04-03 16:08:47 +08:00
|
|
|
|
<div>终端在线率</div>
|
|
|
|
|
|
<div class="em1">定义:终端在指定时间段内处于在线状态的时间比例。</div>
|
|
|
|
|
|
<div class="em1">计算方法:在线率=终端在线时间/总监测时间×100%</div>
|
|
|
|
|
|
<div class="em1">评价标准:</div>
|
|
|
|
|
|
<div class="em2">
|
|
|
|
|
|
<span style="color: #00b07d">优秀</span>
|
|
|
|
|
|
在线率 ≥ 95%
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="em2">
|
|
|
|
|
|
<span style="color: #2b7fd3">良好</span>
|
|
|
|
|
|
90% ≤ 在线率 < 95
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="em2">
|
|
|
|
|
|
<span style="color: #ffcc33">一般</span>
|
|
|
|
|
|
80% ≤ 在线率 < 90%
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="em2">
|
|
|
|
|
|
<span style="color: #97017e">较差</span>
|
|
|
|
|
|
在线率 < 80%
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="mt10">数据完整性</div>
|
|
|
|
|
|
<div class="em1">定义:终端上传数据的完整性和连续性</div>
|
|
|
|
|
|
<div class="em1">计算方法:数据完整性=实际上传数据量/预期上传数据量×100%</div>
|
|
|
|
|
|
<div class="em1">评价标准:</div>
|
|
|
|
|
|
<div class="em2">
|
|
|
|
|
|
<span style="color: #00b07d">优秀</span>
|
|
|
|
|
|
完整性 ≥ 98%
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="em2">
|
|
|
|
|
|
<span style="color: #2b7fd3">良好</span>
|
|
|
|
|
|
95% ≤ 完整性 < 98%
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="em2">
|
|
|
|
|
|
<span style="color: #ffcc33">一般</span>
|
|
|
|
|
|
90% ≤ 完整性 < 95%
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="em2">
|
|
|
|
|
|
<span style="color: #97017e">较差</span>
|
|
|
|
|
|
完整性 < 90%
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="mt10">数据合格率</div>
|
|
|
|
|
|
<div class="em1">定义:终端上传数据的合格率(以谐波电压为代表)。</div>
|
|
|
|
|
|
<div class="em1">计算方法:合格率=合格数据量/总数据量×100%</div>
|
|
|
|
|
|
<div class="em1">评价标准:</div>
|
|
|
|
|
|
<div class="em2">
|
|
|
|
|
|
<span style="color: #00b07d">优秀</span>
|
|
|
|
|
|
完整性 ≥ 98%
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="em2">
|
|
|
|
|
|
<span style="color: #2b7fd3">良好</span>
|
|
|
|
|
|
95% ≤ 完整性 < 98%
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="em2">
|
|
|
|
|
|
<span style="color: #ffcc33">一般</span>
|
|
|
|
|
|
90% ≤ 完整性 < 95%
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="em2">
|
|
|
|
|
|
<span style="color: #97017e">较差</span>
|
|
|
|
|
|
完整性 < 90%
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="mt10">综合评价方法</div>
|
|
|
|
|
|
<div class="em1">权重分配:根据各维度的重要性,分配不同的权重。例如:</div>
|
|
|
|
|
|
<div class="em2">终端在线率:20%</div>
|
|
|
|
|
|
<div class="em2">数据完整性:50%</div>
|
|
|
|
|
|
<div class="em2">数据合格率:30%</div>
|
|
|
|
|
|
<div class="em1">综合评分:综合评分=∑(单项评分x权重)</div>
|
|
|
|
|
|
<div class="em1">评价等级:</div>
|
|
|
|
|
|
<div class="em2">
|
|
|
|
|
|
<span style="color: #00b07d">优秀</span>
|
|
|
|
|
|
综合评分 ≥ 90
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="em2">
|
|
|
|
|
|
<span style="color: #2b7fd3">良好</span>
|
|
|
|
|
|
80 ≤ 综合评分 < 90
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="em2">
|
|
|
|
|
|
<span style="color: #ffcc33">一般</span>
|
|
|
|
|
|
70 ≤ 综合评分 < 80
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="em2">
|
|
|
|
|
|
<span style="color: #97017e">较差</span>
|
|
|
|
|
|
综合评分 < 70
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</el-tooltip>
|
2025-03-28 16:05:03 +08:00
|
|
|
|
</template>
|
2025-03-25 20:22:10 +08:00
|
|
|
|
</TableHeader>
|
2025-04-10 14:08:12 +08:00
|
|
|
|
|
2025-05-13 15:26:24 +08:00
|
|
|
|
<div class="mapBox">
|
2025-04-10 14:08:12 +08:00
|
|
|
|
<el-form :inline="true" class="demo-form-inline">
|
|
|
|
|
|
<el-form-item>
|
2025-05-13 15:26:24 +08:00
|
|
|
|
<Area
|
|
|
|
|
|
ref="areaRef"
|
|
|
|
|
|
@change-value="changeValue"
|
|
|
|
|
|
:show-all-levels="false"
|
|
|
|
|
|
v-model="tableStore.table.params.deptIndex"
|
|
|
|
|
|
style="width: 100px"
|
|
|
|
|
|
/>
|
2025-04-10 14:08:12 +08:00
|
|
|
|
</el-form-item>
|
|
|
|
|
|
</el-form>
|
2025-05-13 15:26:24 +08:00
|
|
|
|
</div>
|
2025-04-10 14:08:12 +08:00
|
|
|
|
|
2025-03-26 14:47:22 +08:00
|
|
|
|
<Map />
|
|
|
|
|
|
|
2025-03-28 16:05:03 +08:00
|
|
|
|
<transition name="slide-left">
|
|
|
|
|
|
<div class="left" :style="height" v-if="leftVisible">
|
|
|
|
|
|
<BorderBox13
|
2025-04-03 16:08:47 +08:00
|
|
|
|
style="height: 200px"
|
2025-03-28 16:05:03 +08:00
|
|
|
|
:color="[color[0], color[0]]"
|
|
|
|
|
|
class="box"
|
2025-05-13 15:26:24 +08:00
|
|
|
|
:backgroundColor="`#f3f1ec90`"
|
2025-03-28 16:05:03 +08:00
|
|
|
|
title="终端统计"
|
|
|
|
|
|
>
|
|
|
|
|
|
<div class="title">
|
|
|
|
|
|
<span class="iconfont icon-zhongduantongji-xian"></span>
|
|
|
|
|
|
终端统计
|
2025-04-10 11:29:58 +08:00
|
|
|
|
|
2025-05-13 15:26:24 +08:00
|
|
|
|
<!-- <el-button link class="view" icon="el-icon-View" @click="endpointStatistics">详情</el-button> -->
|
2025-03-28 16:05:03 +08:00
|
|
|
|
</div>
|
2025-05-13 15:26:24 +08:00
|
|
|
|
<statistics :params="tableStore.table.data" />
|
2025-03-28 16:05:03 +08:00
|
|
|
|
</BorderBox13>
|
|
|
|
|
|
<BorderBox13
|
|
|
|
|
|
:color="[color[0], color[0]]"
|
|
|
|
|
|
class="box"
|
2025-04-03 16:08:47 +08:00
|
|
|
|
style="flex: 1"
|
2025-05-13 15:26:24 +08:00
|
|
|
|
:backgroundColor="`#f3f1ec90`"
|
2025-03-28 16:05:03 +08:00
|
|
|
|
title="终端运行评价"
|
|
|
|
|
|
>
|
|
|
|
|
|
<div class="title">
|
|
|
|
|
|
<span class="iconfont icon-daipingjia"></span>
|
|
|
|
|
|
终端运行评价
|
2025-05-13 15:26:24 +08:00
|
|
|
|
<!-- <el-button link class="view" icon="el-icon-View" @click="endpointStatistics">详情</el-button> -->
|
2025-03-28 16:05:03 +08:00
|
|
|
|
</div>
|
2025-05-13 15:26:24 +08:00
|
|
|
|
<run :params="tableStore.table.params" ref="runRef" @reviewDetails="reviewDetails" />
|
2025-03-28 16:05:03 +08:00
|
|
|
|
</BorderBox13>
|
|
|
|
|
|
<BorderBox13
|
2025-04-03 16:08:47 +08:00
|
|
|
|
:style="height3"
|
2025-03-28 16:05:03 +08:00
|
|
|
|
:color="[color[0], color[0]]"
|
|
|
|
|
|
class="box"
|
2025-05-13 15:26:24 +08:00
|
|
|
|
:backgroundColor="`#f3f1ec90`"
|
2025-04-09 10:41:56 +08:00
|
|
|
|
title="终端运行评价详情"
|
2025-03-28 16:05:03 +08:00
|
|
|
|
>
|
|
|
|
|
|
<div class="title">
|
|
|
|
|
|
<span class="iconfont icon-a-qushi1"></span>
|
2025-04-09 10:41:56 +08:00
|
|
|
|
终端运行评价详情
|
2025-05-13 15:26:24 +08:00
|
|
|
|
<!-- <el-button link class="view" icon="el-icon-View">详情</el-button> -->
|
2025-03-28 16:05:03 +08:00
|
|
|
|
</div>
|
2025-05-13 15:26:24 +08:00
|
|
|
|
<terminalOperation :params="tableStore.table.params" ref="terminalOperationRef" />
|
2025-03-28 16:05:03 +08:00
|
|
|
|
</BorderBox13>
|
2025-03-25 20:22:10 +08:00
|
|
|
|
</div>
|
2025-03-28 16:05:03 +08:00
|
|
|
|
</transition>
|
|
|
|
|
|
|
|
|
|
|
|
<transition name="slide-right">
|
|
|
|
|
|
<div class="right" :style="height" v-if="rightVisible">
|
|
|
|
|
|
<BorderBox13
|
|
|
|
|
|
:color="[color[0], color[0]]"
|
|
|
|
|
|
class="box box-2"
|
2025-05-13 15:26:24 +08:00
|
|
|
|
:backgroundColor="`#f3f1ec90`"
|
2025-03-28 16:05:03 +08:00
|
|
|
|
title="区域终端运行评价"
|
|
|
|
|
|
>
|
|
|
|
|
|
<div class="title">
|
|
|
|
|
|
<span class="iconfont icon-a-ziyuan118"></span>
|
|
|
|
|
|
区域终端运行评价
|
2025-05-13 15:26:24 +08:00
|
|
|
|
<el-button link class="view" icon="el-icon-View" @click="regionEvaluation">详情</el-button>
|
2025-03-28 16:05:03 +08:00
|
|
|
|
</div>
|
2025-04-03 16:08:47 +08:00
|
|
|
|
<region />
|
2025-03-28 16:05:03 +08:00
|
|
|
|
</BorderBox13>
|
2025-04-03 16:08:47 +08:00
|
|
|
|
<div :style="height3">
|
|
|
|
|
|
<BorderBox13
|
|
|
|
|
|
style="height: 100%"
|
|
|
|
|
|
:color="[color[0], color[0]]"
|
|
|
|
|
|
class="box"
|
2025-05-13 15:26:24 +08:00
|
|
|
|
:backgroundColor="`#f3f1ec90`"
|
2025-04-09 10:41:56 +08:00
|
|
|
|
title="最近一周终端评价趋势"
|
2025-04-03 16:08:47 +08:00
|
|
|
|
>
|
|
|
|
|
|
<div class="title">
|
|
|
|
|
|
<span class="iconfont icon-yunhangxiangqing"></span>
|
2025-04-09 10:41:56 +08:00
|
|
|
|
最近一周终端评价趋势
|
2025-04-03 16:08:47 +08:00
|
|
|
|
</div>
|
2025-04-10 11:29:58 +08:00
|
|
|
|
|
2025-05-13 15:26:24 +08:00
|
|
|
|
<week ref="weekRef" :params="tableStore.table.params"/>
|
2025-04-03 16:08:47 +08:00
|
|
|
|
</BorderBox13>
|
|
|
|
|
|
</div>
|
2025-03-25 20:22:10 +08:00
|
|
|
|
</div>
|
2025-03-28 16:05:03 +08:00
|
|
|
|
</transition>
|
|
|
|
|
|
|
|
|
|
|
|
<transition name="slide-bottom">
|
|
|
|
|
|
<div class="center" :style="height3" v-if="centerVisible">
|
|
|
|
|
|
<BorderBox13
|
|
|
|
|
|
:color="[color[0], color[0]]"
|
|
|
|
|
|
class="box"
|
2025-05-13 15:26:24 +08:00
|
|
|
|
:backgroundColor="`#f3f1ec90`"
|
2025-03-28 16:05:03 +08:00
|
|
|
|
title="异常终端详情"
|
|
|
|
|
|
>
|
|
|
|
|
|
<div class="title">
|
|
|
|
|
|
<span class="iconfont icon-yichangxiangqing-xian"></span>
|
|
|
|
|
|
异常终端详情
|
|
|
|
|
|
</div>
|
2025-05-13 15:26:24 +08:00
|
|
|
|
<terminalDetails ref="terminalDetailsRef" :params="tableStore.table.params" />
|
2025-04-03 16:08:47 +08:00
|
|
|
|
<table />
|
2025-03-28 16:05:03 +08:00
|
|
|
|
</BorderBox13>
|
2025-03-25 20:22:10 +08:00
|
|
|
|
</div>
|
2025-03-28 16:05:03 +08:00
|
|
|
|
</transition>
|
2025-04-10 11:29:58 +08:00
|
|
|
|
<!-- 终端统计弹框 -->
|
|
|
|
|
|
<statisticsPopUpBox ref="statisticsPopUpBoxRef" />
|
|
|
|
|
|
<!-- 区域详情 -->
|
|
|
|
|
|
<regionDetails ref="regionDetailsRef" />
|
2025-03-25 20:22:10 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|
2025-03-28 16:05:03 +08:00
|
|
|
|
import { ref, reactive, onMounted, provide } from 'vue'
|
2025-03-25 20:22:10 +08:00
|
|
|
|
import TableHeader from '@/components/table/header/index.vue'
|
|
|
|
|
|
import TableStore from '@/utils/tableStore'
|
|
|
|
|
|
import { useDictData } from '@/stores/dictData'
|
|
|
|
|
|
import { mainHeight } from '@/utils/layout'
|
2025-05-13 15:26:24 +08:00
|
|
|
|
import Area from '@/components/form/area/index.vue'
|
2025-03-26 14:47:22 +08:00
|
|
|
|
import Map from './components/map.vue'
|
2025-03-28 16:05:03 +08:00
|
|
|
|
import { BorderBox13 } from '@kjgl77/datav-vue3'
|
2025-03-26 14:47:22 +08:00
|
|
|
|
import { useConfig } from '@/stores/config'
|
2025-04-03 16:08:47 +08:00
|
|
|
|
import terminalOperation from './components/terminalOperation.vue'
|
|
|
|
|
|
import region from './components/region.vue'
|
|
|
|
|
|
import { InfoFilled } from '@element-plus/icons-vue'
|
|
|
|
|
|
import week from './components/week.vue'
|
|
|
|
|
|
import terminalDetails from './components/terminalDetails.vue'
|
|
|
|
|
|
import statistics from './components/statistics.vue'
|
|
|
|
|
|
import run from './components/run.vue'
|
2025-04-10 11:29:58 +08:00
|
|
|
|
import statisticsPopUpBox from './components/statisticsPopUpBox.vue'
|
|
|
|
|
|
import regionDetails from './components/regionDetails.vue'
|
2025-04-09 10:41:56 +08:00
|
|
|
|
defineOptions({
|
|
|
|
|
|
name: 'runManage/runEvaluate'
|
|
|
|
|
|
})
|
2025-05-13 15:26:24 +08:00
|
|
|
|
const runRef = ref()
|
|
|
|
|
|
const weekRef = ref()
|
|
|
|
|
|
const terminalDetailsRef = ref()
|
2025-03-26 19:28:18 +08:00
|
|
|
|
const config = useConfig()
|
2025-03-26 14:47:22 +08:00
|
|
|
|
const color = config.layout.elementUiPrimary
|
2025-03-25 20:22:10 +08:00
|
|
|
|
const dictData = useDictData()
|
2025-03-26 19:28:18 +08:00
|
|
|
|
const height = mainHeight(115)
|
|
|
|
|
|
const height3 = mainHeight(115, 3)
|
2025-05-13 15:26:24 +08:00
|
|
|
|
const classificationData = dictData.getBasicData('Statistical_Type', ['Report_Type'])
|
2025-03-25 20:22:10 +08:00
|
|
|
|
//字典获取监督对象类型
|
2025-05-13 15:26:24 +08:00
|
|
|
|
const powerFlagList = dictData.getBasicData('power_flag')
|
2025-03-25 20:22:10 +08:00
|
|
|
|
const tableStore = new TableStore({
|
2025-05-13 15:26:24 +08:00
|
|
|
|
url: '/device-boot/dev/statisticDevNum',
|
|
|
|
|
|
method: 'POST',
|
|
|
|
|
|
column: [],
|
2025-03-25 20:22:10 +08:00
|
|
|
|
loadCallback: () => {
|
2025-05-13 15:26:24 +08:00
|
|
|
|
runRef.value.info()
|
|
|
|
|
|
weekRef.value.info()
|
|
|
|
|
|
terminalDetailsRef.value.info()
|
2025-03-25 20:22:10 +08:00
|
|
|
|
}
|
|
|
|
|
|
})
|
2025-04-10 14:08:12 +08:00
|
|
|
|
|
2025-05-13 15:26:24 +08:00
|
|
|
|
tableStore.table.params.deptIndex = dictData.state.area[0].id
|
|
|
|
|
|
tableStore.table.params.loadType = dictData.getBasicData('Interference_Source')
|
|
|
|
|
|
tableStore.table.params.terminaloption = dictData.getBasicData('Dev_Manufacturers')
|
|
|
|
|
|
tableStore.table.params.scale = dictData.getBasicData('Dev_Voltage_Stand')
|
|
|
|
|
|
tableStore.table.params.statisticalType = classificationData.filter(item => item.name == '电网拓扑')[0] //dictData.getBasicData('Statistical_Type', ['Report_Type'])[0]
|
|
|
|
|
|
tableStore.table.params.monitorFlag = 2
|
|
|
|
|
|
tableStore.table.params.powerFlag = 2
|
|
|
|
|
|
tableStore.table.params.serverName = 'harmonicBoot'
|
2025-03-25 20:22:10 +08:00
|
|
|
|
provide('tableStore', tableStore)
|
2025-03-28 16:05:03 +08:00
|
|
|
|
const leftVisible = ref(true)
|
|
|
|
|
|
const rightVisible = ref(true)
|
|
|
|
|
|
const centerVisible = ref(true)
|
2025-04-10 11:29:58 +08:00
|
|
|
|
const statisticsPopUpBoxRef = ref(true)
|
|
|
|
|
|
const regionDetailsRef = ref(true)
|
2025-03-28 16:05:03 +08:00
|
|
|
|
|
|
|
|
|
|
const toggle = () => {
|
|
|
|
|
|
leftVisible.value = !leftVisible.value
|
|
|
|
|
|
rightVisible.value = !rightVisible.value
|
|
|
|
|
|
centerVisible.value = !centerVisible.value
|
|
|
|
|
|
}
|
2025-05-13 15:26:24 +08:00
|
|
|
|
|
|
|
|
|
|
// 区域变化
|
|
|
|
|
|
const changeValue = (val: any) => {
|
|
|
|
|
|
|
|
|
|
|
|
tableStore.index()
|
2025-04-10 11:29:58 +08:00
|
|
|
|
}
|
|
|
|
|
|
// 区域详情
|
|
|
|
|
|
const regionEvaluation = () => {
|
|
|
|
|
|
regionDetailsRef.value.open()
|
|
|
|
|
|
}
|
2025-05-13 15:26:24 +08:00
|
|
|
|
const terminalOperationRef = ref()
|
|
|
|
|
|
//渲染 在线率
|
|
|
|
|
|
const reviewDetails = (item: any) => {
|
|
|
|
|
|
terminalOperationRef.value.info(item)
|
|
|
|
|
|
}
|
2025-03-28 16:05:03 +08:00
|
|
|
|
|
2025-03-25 20:22:10 +08:00
|
|
|
|
onMounted(() => {
|
|
|
|
|
|
// 加载数据
|
|
|
|
|
|
tableStore.index()
|
|
|
|
|
|
})
|
|
|
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
2025-03-26 19:28:18 +08:00
|
|
|
|
.left,
|
|
|
|
|
|
.right {
|
2025-03-25 20:22:10 +08:00
|
|
|
|
display: flex;
|
2025-03-26 14:47:22 +08:00
|
|
|
|
position: absolute;
|
2025-03-26 19:28:18 +08:00
|
|
|
|
top: 80px;
|
2025-04-09 13:56:41 +08:00
|
|
|
|
width: 450px;
|
2025-03-26 19:28:18 +08:00
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
z-index: 99;
|
2025-03-28 16:05:03 +08:00
|
|
|
|
transition: all 0.3s ease;
|
2025-03-26 19:28:18 +08:00
|
|
|
|
}
|
|
|
|
|
|
.left {
|
|
|
|
|
|
left: 15px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.right {
|
|
|
|
|
|
right: 15px !important;
|
2025-03-25 20:22:10 +08:00
|
|
|
|
.box {
|
2025-03-26 19:28:18 +08:00
|
|
|
|
flex: 1; /* 占2份高度 */
|
2025-03-25 20:22:10 +08:00
|
|
|
|
}
|
|
|
|
|
|
.box-2 {
|
|
|
|
|
|
flex: 2; /* 占2份高度 */
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2025-03-26 19:28:18 +08:00
|
|
|
|
.box {
|
|
|
|
|
|
padding: 20px 10px 10px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.center {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
bottom: 16px;
|
2025-04-09 13:56:41 +08:00
|
|
|
|
left: 50%;
|
|
|
|
|
|
transform: translateX(-50%);
|
|
|
|
|
|
width: calc(100% - 950px);
|
2025-03-26 19:28:18 +08:00
|
|
|
|
min-width: 480px;
|
|
|
|
|
|
.box {
|
|
|
|
|
|
flex: 1; /* 占2份高度 */
|
|
|
|
|
|
padding: 20px 10px 10px;
|
|
|
|
|
|
}
|
2025-03-28 16:05:03 +08:00
|
|
|
|
transition: all 0.3s ease;
|
2025-03-26 19:28:18 +08:00
|
|
|
|
}
|
|
|
|
|
|
.title {
|
|
|
|
|
|
// padding: 5px 5px 5px 10px;
|
|
|
|
|
|
background: linear-gradient(to right, var(--el-color-primary), #ffffff00);
|
|
|
|
|
|
font-size: 16px;
|
|
|
|
|
|
// font-weight: bold;
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
.iconfont {
|
|
|
|
|
|
font-size: 22px;
|
|
|
|
|
|
margin: 0 5px 0 10px;
|
2025-03-25 20:36:36 +08:00
|
|
|
|
}
|
2025-04-10 11:29:58 +08:00
|
|
|
|
button {
|
|
|
|
|
|
margin-left: auto;
|
|
|
|
|
|
margin-right: 10px;
|
|
|
|
|
|
}
|
2025-03-25 20:22:10 +08:00
|
|
|
|
}
|
2025-03-28 16:05:03 +08:00
|
|
|
|
.toggle-btn {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
z-index: 100;
|
|
|
|
|
|
padding: 5px 10px;
|
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
|
}
|
|
|
|
|
|
.slide-left-enter-active,
|
|
|
|
|
|
.slide-left-leave-active {
|
|
|
|
|
|
transition: all 0.3s ease;
|
|
|
|
|
|
}
|
|
|
|
|
|
.slide-left-enter-from,
|
|
|
|
|
|
.slide-left-leave-to {
|
|
|
|
|
|
transform: translateX(-100%);
|
|
|
|
|
|
opacity: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
.slide-right-enter-active,
|
|
|
|
|
|
.slide-right-leave-active {
|
|
|
|
|
|
transition: all 0.3s ease;
|
|
|
|
|
|
}
|
|
|
|
|
|
.slide-right-enter-from,
|
|
|
|
|
|
.slide-right-leave-to {
|
|
|
|
|
|
transform: translateX(100%);
|
|
|
|
|
|
opacity: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
.slide-bottom-enter-active,
|
|
|
|
|
|
.slide-bottom-leave-active {
|
|
|
|
|
|
transition: all 0.3s ease;
|
|
|
|
|
|
}
|
|
|
|
|
|
.slide-bottom-enter-from,
|
|
|
|
|
|
.slide-bottom-leave-to {
|
|
|
|
|
|
transform: translateY(100%);
|
|
|
|
|
|
opacity: 0;
|
|
|
|
|
|
}
|
2025-04-03 16:08:47 +08:00
|
|
|
|
.em1 {
|
|
|
|
|
|
margin-top: 5px;
|
|
|
|
|
|
text-indent: 1em;
|
|
|
|
|
|
}
|
|
|
|
|
|
.em2 {
|
|
|
|
|
|
margin-top: 5px;
|
|
|
|
|
|
text-indent: 2em;
|
|
|
|
|
|
}
|
2025-04-10 11:29:58 +08:00
|
|
|
|
:deep(.title > .el-button.is-link) {
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
&:hover {
|
|
|
|
|
|
color: #ccc;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2025-04-10 14:08:12 +08:00
|
|
|
|
:deep(.mapBox) {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
top: 80px;
|
|
|
|
|
|
left: calc(50% + 45px);
|
|
|
|
|
|
|
2025-05-13 15:26:24 +08:00
|
|
|
|
z-index: 10;
|
2025-04-10 14:08:12 +08:00
|
|
|
|
|
|
|
|
|
|
.el-select {
|
|
|
|
|
|
min-width: 100px;
|
|
|
|
|
|
|
|
|
|
|
|
.el-select__wrapper {
|
|
|
|
|
|
height: 46px !important;
|
|
|
|
|
|
border-radius: 8px;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.Icon {
|
|
|
|
|
|
height: 46px;
|
|
|
|
|
|
width: 46px;
|
|
|
|
|
|
background-color: #fff;
|
|
|
|
|
|
border-radius: 8px;
|
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
line-height: 50px;
|
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
|
|
|
|
|
|
|
.fa-refresh {
|
|
|
|
|
|
color: var(--el-color-primary) !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.el-input__wrapper {
|
|
|
|
|
|
height: 46px;
|
|
|
|
|
|
border-radius: 8px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.el-form-item {
|
|
|
|
|
|
margin-right: 15px;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2025-05-13 15:26:24 +08:00
|
|
|
|
:deep(.view) {
|
|
|
|
|
|
color: #000 !important;
|
|
|
|
|
|
}
|
2025-03-25 20:22:10 +08:00
|
|
|
|
</style>
|