修改样式
This commit is contained in:
parent
9bd916876f
commit
391f70825f
|
|
@ -8,6 +8,7 @@
|
||||||
<a-form-item label="供热公司">
|
<a-form-item label="供热公司">
|
||||||
<a-select ref="select" placeholder="请选择供热公司" v-model:value="queryParam.view001" style="width: 150px"
|
<a-select ref="select" placeholder="请选择供热公司" v-model:value="queryParam.view001" style="width: 150px"
|
||||||
@focus="focus" @change="handleChange1">
|
@focus="focus" @change="handleChange1">
|
||||||
|
<a-select-option value="">全部</a-select-option>
|
||||||
<a-select-option :value="item.id" v-for="item in thermalcompany" :key="item.id">{{ item.companyName
|
<a-select-option :value="item.id" v-for="item in thermalcompany" :key="item.id">{{ item.companyName
|
||||||
}}</a-select-option>
|
}}</a-select-option>
|
||||||
</a-select>
|
</a-select>
|
||||||
|
|
@ -17,6 +18,7 @@
|
||||||
<a-form-item label="锅炉房">
|
<a-form-item label="锅炉房">
|
||||||
<a-select ref="select" placeholder="请选择锅炉房" v-model:value="queryParam.view002" style="width: 150px"
|
<a-select ref="select" placeholder="请选择锅炉房" v-model:value="queryParam.view002" style="width: 150px"
|
||||||
@focus="focus">
|
@focus="focus">
|
||||||
|
<a-select-option value="">全部</a-select-option>
|
||||||
<a-select-option :value="item.id" v-for="item in heatsource" :key="item.id">{{ item.sourceName
|
<a-select-option :value="item.id" v-for="item in heatsource" :key="item.id">{{ item.sourceName
|
||||||
}}</a-select-option>
|
}}</a-select-option>
|
||||||
</a-select>
|
</a-select>
|
||||||
|
|
@ -186,16 +188,11 @@ async function getHeatsourcestation() {
|
||||||
}
|
}
|
||||||
|
|
||||||
async function handleChange1(record) {
|
async function handleChange1(record) {
|
||||||
|
queryParam.value.view002 = ""
|
||||||
var params = { companyId: record };
|
var params = { companyId: record };
|
||||||
heatsource.value = await heatsourcelist(params);
|
heatsource.value = await heatsourcelist(params);
|
||||||
heatsourcestation.value = [];
|
heatsourcestation.value = [];
|
||||||
}
|
}
|
||||||
async function handleChange2(record) {
|
|
||||||
var params = { sourceId: record };
|
|
||||||
heatsourcestation.value = await heatsourcestationlist(params);
|
|
||||||
}
|
|
||||||
function handleChange3(record) {
|
|
||||||
}
|
|
||||||
|
|
||||||
function handleDetail(record) {
|
function handleDetail(record) {
|
||||||
registerModal.value.cqDetail(record)
|
registerModal.value.cqDetail(record)
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,258 @@
|
||||||
|
<template>
|
||||||
|
<div class="p-2">
|
||||||
|
<!--查询区域-->
|
||||||
|
<div class="jeecg-basic-table-form-container">
|
||||||
|
<a-form @keyup.enter.native="searchQuery" :model="queryParam" :label-col="labelCol" :wrapper-col="wrapperCol">
|
||||||
|
<a-row :gutter="24">
|
||||||
|
<a-col :lg="5">
|
||||||
|
<a-form-item label="供热公司">
|
||||||
|
<a-select ref="select" placeholder="请选择供热公司" v-model:value="queryParam.view001" style="width: 150px"
|
||||||
|
@focus="focus" @change="handleChange1">
|
||||||
|
<a-select-option :value="item.id" v-for="item in thermalcompany" :key="item.id">{{ item.companyName
|
||||||
|
}}</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :lg="5">
|
||||||
|
<a-form-item label="锅炉房">
|
||||||
|
<a-select ref="select" placeholder="请选择锅炉房" v-model:value="queryParam.view002" style="width: 150px"
|
||||||
|
@focus="focus" @change="handleChange2">
|
||||||
|
<a-select-option :value="item.id" v-for="item in heatsource" :key="item.id">{{ item.sourceName
|
||||||
|
}}</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :lg="5">
|
||||||
|
<a-form-item label="换热站">
|
||||||
|
<a-select ref="select" placeholder="请选择换热站" v-model:value="queryParam.view004" style="width: 250px"
|
||||||
|
@focus="focus" @change="handleChange3">
|
||||||
|
<a-select-option :value="item.id" v-for="item in heatsourcestation" :key="item.id">{{ item.stationName
|
||||||
|
}}</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :lg="5">
|
||||||
|
<span style="float: left; overflow: hidden" class="table-page-search-submitButtons">
|
||||||
|
<a-col :lg="6">
|
||||||
|
<a-button type="primary" preIcon="ant-design:search-outlined" @click="searchQuery">查询</a-button>
|
||||||
|
</a-col>
|
||||||
|
</span>
|
||||||
|
</a-col>
|
||||||
|
<!-- <a-col :lg="5">
|
||||||
|
<a-form-item label="一次供水温度">
|
||||||
|
<a-input placeholder="请输入一次供水温度" v-model:value="queryParam.view005"></a-input>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :lg="5">
|
||||||
|
<a-form-item label="一次回水温度">
|
||||||
|
<a-input placeholder="请输入一次回水温度" v-model:value="queryParam.view006"></a-input>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :lg="5">
|
||||||
|
<a-form-item label="二次供水温度">
|
||||||
|
<a-input placeholder="请输入二次供水温度" v-model:value="queryParam.view009"></a-input>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :lg="5">
|
||||||
|
<a-form-item label="二次回水温度">
|
||||||
|
<a-input placeholder="请输入二次回水温度" v-model:value="queryParam.view010"></a-input>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>-->
|
||||||
|
</a-row>
|
||||||
|
</a-form>
|
||||||
|
</div>
|
||||||
|
<!--引用表格-->
|
||||||
|
<BasicTable @register="registerTable">
|
||||||
|
<!--操作栏-->
|
||||||
|
<template #action="{ record }">
|
||||||
|
<TableAction :actions="getTableAction(record)" />
|
||||||
|
</template>
|
||||||
|
<template v-slot:bodyCell="{ column, record, index, text }">
|
||||||
|
<template v-if="column.dataIndex === 'view005'">
|
||||||
|
<span v-if="record.fromFlow == 0">{{ record.view005 }}</span>
|
||||||
|
<span v-else-if="record.fromFlow == 1">{{ record.view035 }}</span>
|
||||||
|
<span v-else>{{ record.view005 || record.view035 || 0 }}</span>
|
||||||
|
</template>
|
||||||
|
<template v-if="column.dataIndex === 'view006'">
|
||||||
|
<span v-if="record.fromFlow == 0">{{ record.view006 }}</span>
|
||||||
|
<span v-else-if="record.fromFlow == 1">{{ record.view036 }}</span>
|
||||||
|
<span v-else>{{ record.view005 || record.view035 || 0 }}</span>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
</BasicTable>
|
||||||
|
|
||||||
|
<HeatanalysisModal ref="registerModal"></HeatanalysisModal>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" name="heatanalysis-heatanalysis" setup>
|
||||||
|
import { ref, reactive, onMounted } from 'vue';
|
||||||
|
import { BasicTable, useTable, TableAction } from '/@/components/Table';
|
||||||
|
import { useListPage } from '/@/hooks/system/useListPage';
|
||||||
|
import { columns } from './Heatanalysis.data';
|
||||||
|
import { list, companylist, heatsourcelist, heatsourcestationlist } from './Heatanalysis.api';
|
||||||
|
import HeatanalysisModal from './components/HeatanalysisModal.vue'
|
||||||
|
|
||||||
|
const queryParam = ref<any>({});
|
||||||
|
const toggleSearchStatus = ref<boolean>(false);
|
||||||
|
const registerModal = ref();
|
||||||
|
//注册table数据
|
||||||
|
const { prefixCls, tableContext, onExportXls, onImportXls } = useListPage({
|
||||||
|
tableProps: {
|
||||||
|
title: '',
|
||||||
|
api: list,
|
||||||
|
columns,
|
||||||
|
canResize: false,
|
||||||
|
useSearchForm: false,
|
||||||
|
clickToRowSelect: false,
|
||||||
|
showIndexColumn: false,
|
||||||
|
immediate: false,
|
||||||
|
tableSetting: {
|
||||||
|
// 是否显示刷新按钮
|
||||||
|
redo: false,
|
||||||
|
// 是否显示尺寸调整按钮
|
||||||
|
size: false,
|
||||||
|
// 是否显示字段调整按钮
|
||||||
|
setting: false,
|
||||||
|
// 是否显示全屏按钮
|
||||||
|
fullScreen: false,
|
||||||
|
},
|
||||||
|
beforeFetch: (params) => {
|
||||||
|
queryParam.value.regionType = '城区'
|
||||||
|
params.column = '', params.order = '';//新生成的默认不带排序
|
||||||
|
return Object.assign(params, queryParam.value);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
const [registerTable, { reload, collapseAll, updateTableDataRecord, findTableDataRecord, getDataSource }, { rowSelection, selectedRowKeys }] = tableContext;
|
||||||
|
const labelCol = reactive({
|
||||||
|
xs: { span: 24 },
|
||||||
|
sm: { span: 7 },
|
||||||
|
});
|
||||||
|
const wrapperCol = reactive({
|
||||||
|
xs: { span: 24 },
|
||||||
|
sm: { span: 16 },
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 成功回调
|
||||||
|
*/
|
||||||
|
function handleSuccess() {
|
||||||
|
(selectedRowKeys.value = []) && reload();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询
|
||||||
|
*/
|
||||||
|
function searchQuery() {
|
||||||
|
reload();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 重置
|
||||||
|
*/
|
||||||
|
function searchReset() {
|
||||||
|
queryParam.value = {};
|
||||||
|
selectedRowKeys.value = [];
|
||||||
|
getHeatsource();
|
||||||
|
getHeatsourcestation();
|
||||||
|
//刷新数据
|
||||||
|
reload();
|
||||||
|
}
|
||||||
|
|
||||||
|
const thermalcompany = ref();
|
||||||
|
async function getThermalcompany() {
|
||||||
|
let params = { regionType: '城区' };
|
||||||
|
thermalcompany.value = await companylist(params);
|
||||||
|
}
|
||||||
|
|
||||||
|
const heatsource = ref();
|
||||||
|
async function getHeatsource() {
|
||||||
|
let params = { regionType: '城区' };
|
||||||
|
heatsource.value = await heatsourcelist(params);
|
||||||
|
}
|
||||||
|
|
||||||
|
const heatsourcestation = ref();
|
||||||
|
async function getHeatsourcestation() {
|
||||||
|
heatsourcestation.value = await heatsourcestationlist();
|
||||||
|
}
|
||||||
|
|
||||||
|
async function handleChange1(record) {
|
||||||
|
var params = { companyId: record, regionType: '城区' };
|
||||||
|
heatsource.value = await heatsourcelist(params);
|
||||||
|
heatsourcestation.value = [];
|
||||||
|
}
|
||||||
|
async function handleChange2(record) {
|
||||||
|
var params = { sourceId: record };
|
||||||
|
heatsourcestation.value = await heatsourcestationlist(params);
|
||||||
|
}
|
||||||
|
function handleChange3(record) {
|
||||||
|
}
|
||||||
|
|
||||||
|
function handleDetail(record) {
|
||||||
|
registerModal.value.cqDetail(record)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 操作栏
|
||||||
|
*/
|
||||||
|
function getTableAction(record) {
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
label: '详情',
|
||||||
|
onClick: handleDetail.bind(null, record),
|
||||||
|
},
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
async function init(params) {
|
||||||
|
console.log("🚀 ~ init ~ params:", params)
|
||||||
|
await getThermalcompany();
|
||||||
|
await getHeatsource();
|
||||||
|
await getHeatsourcestation();
|
||||||
|
|
||||||
|
queryParam.value.view001 = params.view001;
|
||||||
|
queryParam.value.view002 = params.view002;
|
||||||
|
reload();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
defineExpose({
|
||||||
|
init,
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.jeecg-basic-table-form-container {
|
||||||
|
.table-page-search-submitButtons {
|
||||||
|
display: block;
|
||||||
|
margin-bottom: 8px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.query-group-cust {
|
||||||
|
width: calc(50% - 15px);
|
||||||
|
min-width: 100px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.query-group-split-cust {
|
||||||
|
width: 30px;
|
||||||
|
display: inline-block;
|
||||||
|
text-align: center
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
:deep(.ant-table-title) {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
:deep(.jeecg-basic-table-form-container) {
|
||||||
|
padding: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
:deep(.ant-form-item) {
|
||||||
|
margin-bottom: 0px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -0,0 +1,78 @@
|
||||||
|
<template>
|
||||||
|
<j-modal :title="title" :width="width" :visible="visible" @ok="handleOk" :okButtonProps="{ class: { 'jee-hidden': disableSubmit } }" @cancel="handleCancel" cancelText="关闭"
|
||||||
|
:bodyStyle="{ background: 'transparent' }" :maskStyle="{ background: 'rgba(0, 0, 0, 0.1)' }"
|
||||||
|
>
|
||||||
|
<HeatanalysisDpList ref="registerForm" @ok="submitCallback" :formDisabled="disableSubmit" :formBpm="false"></HeatanalysisDpList>
|
||||||
|
</j-modal>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import { ref, nextTick, defineExpose } from 'vue';
|
||||||
|
import HeatanalysisDpList from './HeatanalysisDpList.vue'
|
||||||
|
import JModal from '/@/components/Modal/src/JModal/JModal.vue';
|
||||||
|
|
||||||
|
const title = ref<string>('');
|
||||||
|
const width = ref<string>('80%');
|
||||||
|
const visible = ref<boolean>(false);
|
||||||
|
const disableSubmit = ref<boolean>(false);
|
||||||
|
const registerForm = ref();
|
||||||
|
const emit = defineEmits(['register', 'success']);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增
|
||||||
|
*/
|
||||||
|
function add(record) {
|
||||||
|
title.value = '新增';
|
||||||
|
visible.value = true;
|
||||||
|
nextTick(() => {
|
||||||
|
registerForm.value.add(record);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编辑
|
||||||
|
* @param record
|
||||||
|
*/
|
||||||
|
function init(record) {
|
||||||
|
title.value = '详情';
|
||||||
|
visible.value = true;
|
||||||
|
nextTick(() => {
|
||||||
|
registerForm.value.init(record);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 确定按钮点击事件
|
||||||
|
*/
|
||||||
|
function handleOk() {
|
||||||
|
registerForm.value.submitForm();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* form保存回调事件
|
||||||
|
*/
|
||||||
|
function submitCallback() {
|
||||||
|
handleCancel();
|
||||||
|
emit('success');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 取消按钮回调事件
|
||||||
|
*/
|
||||||
|
function handleCancel() {
|
||||||
|
visible.value = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
defineExpose({
|
||||||
|
init,
|
||||||
|
disableSubmit,
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less">
|
||||||
|
/**隐藏样式-modal确定按钮 */
|
||||||
|
.jee-hidden {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<style lang="less" scoped></style>
|
||||||
|
|
@ -105,10 +105,10 @@
|
||||||
<div class="top-text-2">{{ cqhrzsl }}</div>
|
<div class="top-text-2">{{ cqhrzsl }}</div>
|
||||||
<div class="bottom-text-2">城区换热站总数</div>
|
<div class="bottom-text-2">城区换热站总数</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="left-img">
|
<div class="left-img" @click="openModal(2, '乡镇锅炉房')">
|
||||||
<img src="./dashboard/dp_icon3.png" />
|
<img src="./dashboard/dp_icon3.png" />
|
||||||
</div>
|
</div>
|
||||||
<div class="right-text">
|
<div class="right-text" @click="openModal(2, '乡镇锅炉房')">
|
||||||
<div class="top-text-3">{{ jxsl }}</div>
|
<div class="top-text-3">{{ jxsl }}</div>
|
||||||
<div class="bottom-text-3">乡镇总数</div>
|
<div class="bottom-text-3">乡镇总数</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -125,8 +125,8 @@
|
||||||
<div class="area-header">
|
<div class="area-header">
|
||||||
<div class="header-left">
|
<div class="header-left">
|
||||||
<img src="./dashboard/dp_icon4.png" alt="icon" />
|
<img src="./dashboard/dp_icon4.png" alt="icon" />
|
||||||
<span class="header-left-text">乡镇瞬时热量【实时】</span>
|
<span class="header-left-text">乡镇温度【供水、回水】</span>
|
||||||
<span class="header-left-text" style="margin-left: 140px;">单位:kw</span>
|
<span class="header-left-text" style="margin-left: 140px;">单位:℃</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="area-body"></div>
|
<div class="area-body"></div>
|
||||||
|
|
@ -135,8 +135,8 @@
|
||||||
<div class="area-header">
|
<div class="area-header">
|
||||||
<div class="header-left">
|
<div class="header-left">
|
||||||
<img src="./dashboard/dp_icon4.png" alt="icon" />
|
<img src="./dashboard/dp_icon4.png" alt="icon" />
|
||||||
<span class="header-left-text">乡镇瞬时流量【实时】</span>
|
<span class="header-left-text">乡镇压力【供压、回压】</span>
|
||||||
<span class="header-left-text" style="margin-left: 130px;">单位:m³/h</span>
|
<span class="header-left-text" style="margin-left: 130px;">单位:MPa</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class=" area-body"></div>
|
<div class=" area-body"></div>
|
||||||
|
|
@ -146,16 +146,16 @@
|
||||||
<div class="area-header">
|
<div class="area-header">
|
||||||
<div class="header-left">
|
<div class="header-left">
|
||||||
<img src="./dashboard/dp_icon4.png" alt="icon" />
|
<img src="./dashboard/dp_icon4.png" alt="icon" />
|
||||||
<span class="header-left-text">乡镇供回水温度【实时】</span>
|
<span class="header-left-text">乡镇水流量热量</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right" style="display: flex; ">
|
<div class="header-right" style="display: flex; ">
|
||||||
<div class="header-right">
|
<div class="header-right cursorPointer" @click="updateChartArea8()">
|
||||||
<div style="background: linear-gradient(90deg, #2E5A6B, #F7B833);"></div>
|
<div style="background: linear-gradient(90deg, #2E5A6B, #F7B833);"></div>
|
||||||
<div>供水</div>
|
<div>水流量</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right">
|
<div class="header-right cursorPointer" @click="updateChartArea82()">
|
||||||
<div style="background: linear-gradient(90deg, #ffd3be, #FF9D71);"></div>
|
<div style="background: linear-gradient(90deg, #ffd3be, #FF9D71);"></div>
|
||||||
<div>回水</div>
|
<div>热量</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -207,6 +207,89 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div v-show="modalCqVisible" class="modal-overlay" @click.self="closeCqModal">
|
||||||
|
<div class="modal-content" style="height: 700px;">
|
||||||
|
<div class="modal-header">
|
||||||
|
<span>详情</span>
|
||||||
|
<span class="close-btn" @click="closeCqModal">×</span>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body list-container" style="max-height: 600px;">
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<a-row style="line-height: 50px;margin-bottom: 20px;">
|
||||||
|
<a-col :span="6" style="text-align: center;">
|
||||||
|
<span style="color:white;font-size:16px;">供热公司: </span>
|
||||||
|
<a-select placeholder="请选择供热公司" v-model:value="queryParam.view001" style="width: 150px"
|
||||||
|
@focus="focus" @change="handleChange1">
|
||||||
|
<a-select-option value="">全部</a-select-option>
|
||||||
|
<a-select-option :value="item.id" v-for="item in thermalcompany" :key="item.id">{{ item.companyName
|
||||||
|
}}</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="6" style="text-align: center;">
|
||||||
|
<span style="color:white;font-size:16px;">锅炉房: </span>
|
||||||
|
<a-select placeholder="请选择锅炉房" v-model:value="queryParam.view002" style="width: 150px"
|
||||||
|
@focus="focus" @change="handleChange2">
|
||||||
|
<a-select-option value="">全部</a-select-option>
|
||||||
|
<a-select-option :value="item.id" v-for="item in heatsource" :key="item.id">{{ item.sourceName
|
||||||
|
}}</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="6" style="text-align: center;">
|
||||||
|
<span style="color:white;font-size:16px;">换热站: </span>
|
||||||
|
<a-select ref="select" placeholder="请选择换热站" v-model:value="queryParam.view004" style="width: 250px"
|
||||||
|
@focus="focus" >
|
||||||
|
<a-select-option value="">全部</a-select-option>
|
||||||
|
<a-select-option :value="item.id" v-for="item in heatsourcestation" :key="item.id">{{ item.stationName
|
||||||
|
}}</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="6">
|
||||||
|
<a-button type="primary" preIcon="ant-design:search-outlined" @click="searchGrgsQuery">查询</a-button>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</div>
|
||||||
|
<div class="list-header" style="color: #fff;">
|
||||||
|
<img src="./dashboard/dp_icon4-left.png" class="left-icon" />
|
||||||
|
<span>供热公司</span>
|
||||||
|
<span>锅炉房</span>
|
||||||
|
<span>换热站</span>
|
||||||
|
<span>一次网供水温度</span>
|
||||||
|
<span>一次网回水温度</span>
|
||||||
|
<span>一次网供水压力</span>
|
||||||
|
<span>一次网回水压力</span>
|
||||||
|
<span>二次网供水温度</span>
|
||||||
|
<span>二次网回水温度</span>
|
||||||
|
<span>二次网供水压力</span>
|
||||||
|
<span>二次网回水压力</span>
|
||||||
|
<span>操作</span>
|
||||||
|
<img src="./dashboard/dp_icon4-right.png" class="left-icon" />
|
||||||
|
</div>
|
||||||
|
<div class="list-body">
|
||||||
|
<div v-if="!!modalCqData.length" v-for="item in modalCqData" :key="item.id" class="list-row"
|
||||||
|
style="color: #fff;">
|
||||||
|
<span>{{ item.view001Name }}</span>
|
||||||
|
<span>{{ item.view002Name }}</span>
|
||||||
|
<span>{{ item.view004Name }}</span>
|
||||||
|
<span>{{ item.view005 }}</span>
|
||||||
|
<span>{{ item.view006 }}</span>
|
||||||
|
<span>{{ item.view007 }}</span>
|
||||||
|
<span>{{ item.view008 }}</span>
|
||||||
|
<span>{{ item.view009 }}</span>
|
||||||
|
<span>{{ item.view010 }}</span>
|
||||||
|
<span>{{ item.view011 }}</span>
|
||||||
|
<span>{{ item.view012 }}</span>
|
||||||
|
<span><a-button type="link"><span style="color: #81c7e6;"
|
||||||
|
@click="detailFunc(item)">详情</span></a-button></span>
|
||||||
|
</div>
|
||||||
|
<div v-else class="list-row">
|
||||||
|
<span>暂无数据</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div v-if="modalVisible2" class="modal-overlay2" @click.self="closeModal2">
|
<div v-if="modalVisible2" class="modal-overlay2" @click.self="closeModal2">
|
||||||
<div class="modal-content2">
|
<div class="modal-content2">
|
||||||
<ZxtCQ ref="registerModal" @close="closeModal2" />
|
<ZxtCQ ref="registerModal" @close="closeModal2" />
|
||||||
|
|
@ -219,11 +302,12 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<HeatanalysisDpListModal ref="heatanalysisDpListModalRef"/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { ref, onMounted, onUnmounted, onBeforeUnmount, nextTick, computed } from 'vue';
|
import { ref, onMounted,reactive, onUnmounted, onBeforeUnmount, nextTick, computed } from 'vue';
|
||||||
import { slcx, cqglfgswd, glfzb } from '/@/api/dashboard/api';
|
import { slcx, cqglfgswd, glfzb } from '/@/api/dashboard/api';
|
||||||
import * as echarts from 'echarts';
|
import * as echarts from 'echarts';
|
||||||
import aImg from './dashboard/c.png';
|
import aImg from './dashboard/c.png';
|
||||||
|
|
@ -231,15 +315,23 @@ import lqImg from './dashboard/lq.png';
|
||||||
import ljt from './dashboard/ljt.png';
|
import ljt from './dashboard/ljt.png';
|
||||||
import ZxtCQ from './components/ZxtCQ.vue'
|
import ZxtCQ from './components/ZxtCQ.vue'
|
||||||
import ZxtJx from './components/ZxtJx.vue'
|
import ZxtJx from './components/ZxtJx.vue'
|
||||||
|
import HeatanalysisDpListModal from '/@/views/heating/heatanalysis/HeatanalysisDpListModal.vue'
|
||||||
|
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
|
||||||
|
import { func } from 'vue-types';
|
||||||
|
import { defHttp } from '/@/utils/http/axios';
|
||||||
|
import { list, companylist, heatsourcelist, heatsourcestationlist } from '/@/views/heating/heatanalysis/Heatanalysis.api';
|
||||||
|
|
||||||
const registerModal = ref();
|
const registerModal = ref();
|
||||||
const registerModal3 = ref();
|
const registerModal3 = ref();
|
||||||
|
const heatanalysisDpListModalRef = ref();
|
||||||
|
|
||||||
const modalVisible = ref(false);
|
const modalVisible = ref(false);
|
||||||
const modalVisible2 = ref(false)
|
const modalVisible2 = ref(false)
|
||||||
const modalVisible3 = ref(false)
|
const modalVisible3 = ref(false)
|
||||||
|
const modalCqVisible = ref(false);
|
||||||
const modalTitle = ref('');
|
const modalTitle = ref('');
|
||||||
const modalData = ref<any[]>([]);
|
const modalData = ref<any[]>([]);
|
||||||
|
const modalCqData = ref<any[]>([]);
|
||||||
|
|
||||||
let chartMain: echarts.ECharts | null = null; // 区域 main
|
let chartMain: echarts.ECharts | null = null; // 区域 main
|
||||||
let chartLine: echarts.ECharts | null = null; // 区域 line
|
let chartLine: echarts.ECharts | null = null; // 区域 line
|
||||||
|
|
@ -247,8 +339,18 @@ let chartCounty: echarts.ECharts | null = null; // area-6
|
||||||
let chartRadar: echarts.ECharts | null = null; // area-7 雷达图
|
let chartRadar: echarts.ECharts | null = null; // area-7 雷达图
|
||||||
let chartArea8: echarts.ECharts | null = null;
|
let chartArea8: echarts.ECharts | null = null;
|
||||||
|
|
||||||
|
const queryParam = ref<any>({});
|
||||||
const currentTime = ref(new Date().toLocaleString());
|
const currentTime = ref(new Date().toLocaleString());
|
||||||
|
const labelCol = reactive({
|
||||||
|
xs: 24,
|
||||||
|
sm: 4,
|
||||||
|
xl: 6,
|
||||||
|
xxl: 4
|
||||||
|
});
|
||||||
|
const wrapperCol = reactive({
|
||||||
|
xs: 24,
|
||||||
|
sm: 20,
|
||||||
|
});
|
||||||
let dataTimer: number | null = null;
|
let dataTimer: number | null = null;
|
||||||
let timer: number;
|
let timer: number;
|
||||||
const cqglfsl = ref(0)
|
const cqglfsl = ref(0)
|
||||||
|
|
@ -260,6 +362,7 @@ const jbzbzys = ref('rgba(27, 147, 191, 0.3)')
|
||||||
|
|
||||||
const cityList = ref<{ name: string; value: number; raw: any }[]>([]);
|
const cityList = ref<{ name: string; value: number; raw: any }[]>([]);
|
||||||
const countyList = ref<{ name: string; value: number; raw: any }[]>([]);
|
const countyList = ref<{ name: string; value: number; raw: any }[]>([]);
|
||||||
|
const countyAddList = ref<{ name: string; value: number; raw: any }[]>([]);
|
||||||
|
|
||||||
const cityHrzList = ref<{ name: string; value: number; raw: any }[]>([]);
|
const cityHrzList = ref<{ name: string; value: number; raw: any }[]>([]);
|
||||||
const countyHrzList = ref<{ name: string; value: number; raw: any }[]>([]);
|
const countyHrzList = ref<{ name: string; value: number; raw: any }[]>([]);
|
||||||
|
|
@ -292,11 +395,61 @@ function stopScroll() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const thermalcompany = ref();
|
||||||
|
async function getThermalcompany() {
|
||||||
|
let params = { };
|
||||||
|
thermalcompany.value = await companylist(params);
|
||||||
|
}
|
||||||
|
const heatsource = ref();
|
||||||
|
async function getHeatsource() {
|
||||||
|
let params = {};
|
||||||
|
heatsource.value = await heatsourcelist(params);
|
||||||
|
}
|
||||||
|
|
||||||
|
const heatsourcestation = ref();
|
||||||
|
async function getHeatsourcestation() {
|
||||||
|
heatsourcestation.value = await heatsourcestationlist(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
async function handleChange1(record) {
|
||||||
|
queryParam.value.view001 = record;
|
||||||
|
queryParam.value.view002 = "";
|
||||||
|
queryParam.value.view003 = "";
|
||||||
|
var params = { companyId: record};
|
||||||
|
heatsource.value = await heatsourcelist(params);
|
||||||
|
// heatsourcestation.value = [];
|
||||||
|
}
|
||||||
|
async function handleChange2(record) {
|
||||||
|
queryParam.value.view002 = record;
|
||||||
|
queryParam.value.view003 = "";
|
||||||
|
var params = { sourceId: record };
|
||||||
|
heatsourcestation.value = await heatsourcestationlist(params);
|
||||||
|
}
|
||||||
|
function handleChange3(record) {
|
||||||
|
}
|
||||||
|
|
||||||
|
function searchGrgsQuery() {
|
||||||
|
queryParam.value.pageSize = -1;
|
||||||
|
defHttp.get({url: '/heating/heatanalysis/page', params: queryParam.value}).then(res => {
|
||||||
|
modalCqData.value = res.records;
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// 区域 main 柱状图
|
// 区域 main 柱状图
|
||||||
function updateChartMain() {
|
function updateChartMain() {
|
||||||
if (!chartMain) return;
|
if (!chartMain) return;
|
||||||
const names = cityList.value.map(i => i.name);
|
const names = cityList.value.map(i => i.name);
|
||||||
const gsValues = cityList.value.map(i => i.value);
|
const gsValues = cityList.value.map(item => ({
|
||||||
|
value: item.value,
|
||||||
|
itemStyle: {
|
||||||
|
// 可以在这里添加自定义属性
|
||||||
|
id: item.raw?.id || 0,
|
||||||
|
view001: item.raw?.view001 || 0,
|
||||||
|
view002: item.raw?.view002 || 0
|
||||||
|
}
|
||||||
|
}));
|
||||||
const hsValues = cityList.value.map(i => Number(i.raw?.view006 || 0));
|
const hsValues = cityList.value.map(i => Number(i.raw?.view006 || 0));
|
||||||
const maxVal = gsValues.length ? Math.max(...gsValues) * 1.15 : 100;
|
const maxVal = gsValues.length ? Math.max(...gsValues) * 1.15 : 100;
|
||||||
|
|
||||||
|
|
@ -344,6 +497,22 @@ function updateChartMain() {
|
||||||
]
|
]
|
||||||
}, true);
|
}, true);
|
||||||
|
|
||||||
|
// --------- 添加点击事件 ---------
|
||||||
|
chartMain.off('click'); // 先移除旧的点击事件监听器,避免重复绑定
|
||||||
|
chartMain.on('click', function(params) {
|
||||||
|
var data = params.data.itemStyle;
|
||||||
|
// heatanalysisDpListModalRef.value.disableSubmit = true;
|
||||||
|
// heatanalysisDpListModalRef.value.init(data);
|
||||||
|
modalCqVisible.value = true;
|
||||||
|
setTimeout(()=>{
|
||||||
|
handleChange1(data.view001);
|
||||||
|
handleChange2(data.view002);
|
||||||
|
searchGrgsQuery();
|
||||||
|
},200)
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
// --------- 自动轮播 tooltip 的逻辑(每 5 秒切换) ---------
|
// --------- 自动轮播 tooltip 的逻辑(每 5 秒切换) ---------
|
||||||
// 清除旧定时器(避免重复)
|
// 清除旧定时器(避免重复)
|
||||||
if (chartMain.__autoTooltipTimer) {
|
if (chartMain.__autoTooltipTimer) {
|
||||||
|
|
@ -450,17 +619,24 @@ function updateChartCounty() {
|
||||||
if (!chartCounty) return;
|
if (!chartCounty) return;
|
||||||
|
|
||||||
const names = countyList.value.map(i => i.raw?.view028 ?? '未知');
|
const names = countyList.value.map(i => i.raw?.view028 ?? '未知');
|
||||||
const values = countyList.value.map(i => (i.raw?.view041 ? Number(i.raw.view041) : 0));
|
const values = countyList.value.map(i => (i.raw?.view035 ? Number(i.raw.view035) : 0));
|
||||||
const maxVal = values.length ? Math.max(...values) * 1.15 : 100;
|
const values2 = countyList.value.map(i => (i.raw?.view036 ? Number(i.raw.view036) : 0));
|
||||||
|
const maxVal = values.length ? Math.max(...values, ...values2) * 1.15 : 100;
|
||||||
|
|
||||||
chartCounty.setOption({
|
chartCounty.setOption({
|
||||||
grid: { left: 10, right: 60, bottom: 14, top: 28, containLabel: true },
|
grid: {
|
||||||
|
left: 10,
|
||||||
|
right: 120, // 增加右侧空间以容纳两个标签
|
||||||
|
bottom: 14,
|
||||||
|
top: 28,
|
||||||
|
containLabel: true
|
||||||
|
},
|
||||||
tooltip: {
|
tooltip: {
|
||||||
trigger: 'axis',
|
trigger: 'axis',
|
||||||
axisPointer: {
|
axisPointer: {
|
||||||
type: 'shadow',
|
type: 'shadow',
|
||||||
shadowStyle: {
|
shadowStyle: {
|
||||||
color: 'transparent' // 设置为透明,取消悬浮背景
|
color: 'transparent'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
backgroundColor: 'transparent',
|
backgroundColor: 'transparent',
|
||||||
|
|
@ -469,7 +645,8 @@ function updateChartCounty() {
|
||||||
var content = '<div style="position:relative;border-left:2px solid #cccccc46;border-right:2px solid #cccccc46;border-radius:5px;background:linear-gradient(to right bottom,#08101D,#1a3b70);color:#ffffff;padding:5px 10px;margin-left:10px;z-index:99;text-align:center;">'
|
var content = '<div style="position:relative;border-left:2px solid #cccccc46;border-right:2px solid #cccccc46;border-radius:5px;background:linear-gradient(to right bottom,#08101D,#1a3b70);color:#ffffff;padding:5px 10px;margin-left:10px;z-index:99;text-align:center;">'
|
||||||
+ '<div style="position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(to right,#cccccc46,#ececec7c,#cccccc46);"></div>'
|
+ '<div style="position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(to right,#cccccc46,#ececec7c,#cccccc46);"></div>'
|
||||||
+ '<div style="position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(to right,#cccccc46,#ececec7c,#cccccc46);"></div>'
|
+ '<div style="position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(to right,#cccccc46,#ececec7c,#cccccc46);"></div>'
|
||||||
+ params[0].name + '</br>瞬时热量:' + params[1].value
|
+ params[0].name + '</br>供水温度:' + params[1].value
|
||||||
|
+ '</br>回水温度:' + params[2].value
|
||||||
+ '</div>';
|
+ '</div>';
|
||||||
return content;
|
return content;
|
||||||
}
|
}
|
||||||
|
|
@ -484,54 +661,191 @@ function updateChartCounty() {
|
||||||
yAxis: {
|
yAxis: {
|
||||||
type: 'category',
|
type: 'category',
|
||||||
data: names,
|
data: names,
|
||||||
axisLabel: { color: jbztys.value, interval: 0,fontSize: 18, },
|
axisLabel: {
|
||||||
|
color: jbztys.value,
|
||||||
|
interval: 0,
|
||||||
|
fontSize: 16, // 稍微减小字体以适应更多内容
|
||||||
|
margin: 2 // 减少边距
|
||||||
|
},
|
||||||
axisTick: { show: false },
|
axisTick: { show: false },
|
||||||
axisLine: { show: false }
|
axisLine: { show: false }
|
||||||
},
|
},
|
||||||
series: [
|
series: [
|
||||||
// 背景条
|
// 背景条
|
||||||
{ type: 'bar', barWidth: 3, data: names.map(() => maxVal), barGap: '-100%', itemStyle: { color: { type: 'linear', x: 0, y: 0, x2: 1, y2: 0, colorStops: [{ offset: 0, color: 'rgba(106,211,255,0.06)' }, { offset: 1, color: 'rgba(106,211,255,0.01)' }] } }, z: 1, silent: true },
|
|
||||||
// 主体条
|
|
||||||
{ type: 'bar', barWidth: 4, data: values, itemStyle: { color: { type: 'linear', x: 0, y: 0, x2: 1, y2: 0, colorStops: [{ offset: 0, color: '#ECA924' }, { offset: 1, color: '#0D9FD8' }] }, opacity: 0.95 }, z: 2 },
|
|
||||||
// 顶部小图片
|
|
||||||
{ type: 'pictorialBar', symbol: `image://${lqImg}`, symbolSize: [25, 25], symbolOffset: [10, 0], symbolPosition: 'end', data: values, z: 3, silent: true },
|
|
||||||
|
|
||||||
{
|
{
|
||||||
type: 'bar',
|
type: 'bar',
|
||||||
barWidth: 4,
|
barWidth: 10,
|
||||||
|
data: names.map(() => maxVal),
|
||||||
|
barGap: '-100%',
|
||||||
|
itemStyle: {
|
||||||
|
color: {
|
||||||
|
type: 'linear',
|
||||||
|
x: 0, y: 0, x2: 1, y2: 0,
|
||||||
|
colorStops: [{ offset: 0, color: 'rgba(106,211,255,0.06)' }, { offset: 1, color: 'rgba(106,211,255,0.01)' }]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
z: 1,
|
||||||
|
silent: true
|
||||||
|
},
|
||||||
|
|
||||||
|
// 第一个主体条(供水温度)- 左侧柱子
|
||||||
|
{
|
||||||
|
type: 'bar',
|
||||||
|
barWidth: 10, // 减小宽度
|
||||||
|
barGap: '60%', // 设置柱子间距
|
||||||
|
data: values.map((val, index) => ({
|
||||||
|
value: val,
|
||||||
|
itemStyle: {
|
||||||
|
color: {
|
||||||
|
type: 'linear',
|
||||||
|
x: 0, y: 0, x2: 1, y2: 0,
|
||||||
|
colorStops: [{ offset: 0, color: '#ECA924' }, { offset: 1, color: '#0D9FD8' }]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})),
|
||||||
|
itemStyle: {
|
||||||
|
opacity: 0.95
|
||||||
|
},
|
||||||
|
z: 2
|
||||||
|
},
|
||||||
|
|
||||||
|
// 第二个主体条(回水温度)- 右侧柱子
|
||||||
|
{
|
||||||
|
type: 'bar',
|
||||||
|
barWidth: 10, // 减小宽度
|
||||||
|
barGap: '60%', // 设置柱子间距
|
||||||
|
data: values2.map((val, index) => ({
|
||||||
|
value: val,
|
||||||
|
itemStyle: {
|
||||||
|
color: {
|
||||||
|
type: 'linear',
|
||||||
|
x: 0, y: 0, x2: 1, y2: 0,
|
||||||
|
colorStops: [{ offset: 0, color: '#FF6B6B' }, { offset: 1, color: '#4ECDC4' }]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})),
|
||||||
|
itemStyle: {
|
||||||
|
opacity: 0.95
|
||||||
|
},
|
||||||
|
z: 3
|
||||||
|
},
|
||||||
|
|
||||||
|
// 第一个顶部小图片(供水温度)
|
||||||
|
{
|
||||||
|
type: 'pictorialBar',
|
||||||
|
symbol: `image://${lqImg}`,
|
||||||
|
symbolSize: [25, 25], // 减小图标大小
|
||||||
|
symbolOffset: [13, -7], // 向左偏移,放在左侧柱子顶部
|
||||||
|
symbolPosition: 'end',
|
||||||
|
data: values,
|
||||||
|
z: 4,
|
||||||
|
silent: true
|
||||||
|
},
|
||||||
|
|
||||||
|
// 第二个顶部小图片(回水温度)
|
||||||
|
{
|
||||||
|
type: 'pictorialBar',
|
||||||
|
symbol: `image://${lqImg}`,
|
||||||
|
symbolSize: [25, 25], // 减小图标大小
|
||||||
|
symbolOffset: [13, 9], // 向右偏移,放在右侧柱子顶部
|
||||||
|
symbolPosition: 'end',
|
||||||
|
data: values2,
|
||||||
|
z: 5,
|
||||||
|
silent: true
|
||||||
|
},
|
||||||
|
|
||||||
|
// 第一个标签(供水温度)- 左侧标签
|
||||||
|
{
|
||||||
|
type: 'bar',
|
||||||
|
barWidth: 8,
|
||||||
data: values.map(() => maxVal),
|
data: values.map(() => maxVal),
|
||||||
itemStyle: { color: 'transparent' }, // 透明柱子
|
itemStyle: { color: 'transparent' },
|
||||||
label: {
|
label: {
|
||||||
show: true,
|
show: true,
|
||||||
position: 'right',
|
position: 'right',
|
||||||
distance: 0,
|
distance: 40,
|
||||||
fontSize: 16, // 添加这行来设置文字大小
|
fontSize: 18, // 减小字体大小
|
||||||
|
offset: [-20, -20], // 添加偏移量
|
||||||
align: 'left',
|
align: 'left',
|
||||||
color: '#ffffff',
|
color: '#ffffff',
|
||||||
formatter: (params: any) => `{icon|} ${values[params.dataIndex]}`, // 数值左边加图标
|
formatter: (params) => {
|
||||||
|
const value = values[params.dataIndex];
|
||||||
|
const value2 = values2[params.dataIndex];
|
||||||
|
return `{icon|} ${value.toFixed(1)} - ${value2.toFixed(2)}`; // 格式化数值
|
||||||
|
},
|
||||||
rich: {
|
rich: {
|
||||||
icon: {
|
icon: {
|
||||||
height: 14, // 图标高度
|
width: 12,
|
||||||
|
height: 12,
|
||||||
align: 'center',
|
align: 'center',
|
||||||
backgroundColor: {
|
backgroundColor: {
|
||||||
image: ljt // 使用导入的图片变量
|
image: ljt
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
z: 4,
|
z: 7,
|
||||||
silent: true
|
silent: true
|
||||||
}
|
},
|
||||||
|
|
||||||
|
// 第二个标签(回水温度)- 右侧标签
|
||||||
|
// {
|
||||||
|
// type: 'bar',
|
||||||
|
// barWidth: 8,
|
||||||
|
// data: values2.map(() => maxVal),
|
||||||
|
// itemStyle: { color: 'transparent' },
|
||||||
|
// label: {
|
||||||
|
// show: true,
|
||||||
|
// position: 'right',
|
||||||
|
// distance: 40, // 增加距离,放在更右侧
|
||||||
|
// fontSize: 12, // 减小字体大小
|
||||||
|
// offset: [0, -20], // 添加偏移量
|
||||||
|
// align: 'left',
|
||||||
|
// color: '#ffffff',
|
||||||
|
// formatter: (params) => {
|
||||||
|
// const value = values2[params.dataIndex];
|
||||||
|
// return `{icon2|} ${value.toFixed(1)}`; // 格式化数值
|
||||||
|
// },
|
||||||
|
// rich: {
|
||||||
|
// icon2: {
|
||||||
|
// width: 12,
|
||||||
|
// height: 12,
|
||||||
|
// align: 'center',
|
||||||
|
// backgroundColor: {
|
||||||
|
// image: ljt
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
// z: 7,
|
||||||
|
// silent: true
|
||||||
|
// }
|
||||||
],
|
],
|
||||||
}, true);
|
}, true);
|
||||||
|
|
||||||
|
// 添加点击事件
|
||||||
|
chartCounty.off('click');
|
||||||
|
chartCounty.on('click', function(params) {
|
||||||
|
if (params.seriesIndex === 1 || params.seriesIndex === 2) {
|
||||||
|
const clickedName = params.name;
|
||||||
|
const gsValue = values[params.dataIndex];
|
||||||
|
const hsValue = values2[params.dataIndex];
|
||||||
|
|
||||||
|
// 这里可以添加你的业务逻辑
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
// area-7 的雷达图更新函数
|
// area-7 的雷达图更新函数
|
||||||
function updateRadarChart() {
|
function updateRadarChart() {
|
||||||
if (!chartRadar) return;
|
if (!chartRadar) return;
|
||||||
const names = countyList.value.map(i => i.raw?.view028.replace('锅炉房', '') + '\n' + i.raw?.view037 );
|
|
||||||
const values = countyList.value.map(i => (i.raw?.view037 ? Number(i.raw.view037) : 0));
|
// 获取数据
|
||||||
const maxVal = values.length ? Math.max(...values) * 1.15 : 100;
|
const names = countyList.value.map(i => i.raw?.view028.replace('锅炉房', '') + '\n' + i.raw?.view007+"-"+i.raw?.view008);
|
||||||
|
const values1 = countyList.value.map(i => (i.raw?.view007 ? Number(i.raw.view007) : 0));
|
||||||
|
const values2 = countyList.value.map(i => (i.raw?.view008 ? Number(i.raw.view008) : 0)); // 假设 view038 是第二个数据集
|
||||||
|
|
||||||
|
// 计算最大值
|
||||||
|
const maxVal = Math.max(...values1, ...values2) * 1.15 || 100;
|
||||||
|
|
||||||
chartRadar.setOption({
|
chartRadar.setOption({
|
||||||
grid: { left: 10, right: 40, bottom: 14, top: 0, containLabel: true },
|
grid: { left: 10, right: 40, bottom: 14, top: 0, containLabel: true },
|
||||||
|
|
@ -542,9 +856,9 @@ function updateRadarChart() {
|
||||||
formatter: function (params) {
|
formatter: function (params) {
|
||||||
const values = Array.isArray(params.value) ? params.value : [params.value];
|
const values = Array.isArray(params.value) ? params.value : [params.value];
|
||||||
let content1 = `${params.name}<br/>`;
|
let content1 = `${params.name}<br/>`;
|
||||||
values.forEach((val, i) => {
|
// values.forEach((val, i) => {
|
||||||
content1 += `${names[i]}: ${val}<br/>`;
|
// content1 += `${names[i]}: ${val}<br/>`;
|
||||||
});
|
// });
|
||||||
var content = '<div style="position:relative;border-left:2px solid #cccccc46;border-right:2px solid #cccccc46;border-radius:5px;background:linear-gradient(to right bottom,#08101D,#1a3b70);color:#ffffff;padding:5px 10px;margin-left:10px;z-index:99;text-align:center;">'
|
var content = '<div style="position:relative;border-left:2px solid #cccccc46;border-right:2px solid #cccccc46;border-radius:5px;background:linear-gradient(to right bottom,#08101D,#1a3b70);color:#ffffff;padding:5px 10px;margin-left:10px;z-index:99;text-align:center;">'
|
||||||
+ '<div style="position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(to right,#cccccc46,#ececec7c,#cccccc46);"></div>'
|
+ '<div style="position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(to right,#cccccc46,#ececec7c,#cccccc46);"></div>'
|
||||||
+ '<div style="position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(to right,#cccccc46,#ececec7c,#cccccc46);"></div>'
|
+ '<div style="position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(to right,#cccccc46,#ececec7c,#cccccc46);"></div>'
|
||||||
|
|
@ -554,7 +868,7 @@ function updateRadarChart() {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
legend: {
|
legend: {
|
||||||
data: ['瞬时流量'],
|
data: ['供水压力', '回水压力'], // 更新图例
|
||||||
textStyle: { color: '#f4f4f4' },
|
textStyle: { color: '#f4f4f4' },
|
||||||
bottom: 10
|
bottom: 10
|
||||||
},
|
},
|
||||||
|
|
@ -585,39 +899,75 @@ function updateRadarChart() {
|
||||||
splitArea: { show: true, areaStyle: { color: ['rgba(15,40,70,0.5)', 'rgba(20,50,80,0.3)'] } },
|
splitArea: { show: true, areaStyle: { color: ['rgba(15,40,70,0.5)', 'rgba(20,50,80,0.3)'] } },
|
||||||
axisLine: { lineStyle: { color: 'rgba(100,200,255,0.5)' } }
|
axisLine: { lineStyle: { color: 'rgba(100,200,255,0.5)' } }
|
||||||
},
|
},
|
||||||
series: [{
|
series: [
|
||||||
name: '瞬时流量',
|
// 第一个雷达图(瞬时流量)
|
||||||
|
{
|
||||||
|
name: '供水压力',
|
||||||
type: 'radar',
|
type: 'radar',
|
||||||
lineStyle: { width: 3, color: '#00e4ff' },
|
lineStyle: { width: 3, color: '#00e4ff' },
|
||||||
areaStyle: {
|
areaStyle: {
|
||||||
color: {
|
color: {
|
||||||
type: 'radial', // 径向渐变
|
type: 'radial',
|
||||||
x: 0.5, // 渐变中心 x(0~1)
|
x: 0.5,
|
||||||
y: 0.5, // 渐变中心 y(0~1)
|
y: 0.5,
|
||||||
r: 0.5, // 渐变半径
|
r: 0.5,
|
||||||
colorStops: [
|
colorStops: [
|
||||||
{ offset: 0, color: 'rgba(9,147,149,0.0)' }, // 中心颜色
|
{ offset: 0, color: 'rgba(9,147,149,0.0)' },
|
||||||
{ offset: 0.4, color: 'rgba(9,147,149,0.2)' }, // 中间颜色
|
{ offset: 0.4, color: 'rgba(9,147,149,0.2)' },
|
||||||
{ offset: 0.7, color: 'rgba(9,147,149,0.6)' }, // 中间颜色
|
{ offset: 0.7, color: 'rgba(9,147,149,0.6)' },
|
||||||
{ offset: 1, color: 'rgba(9,147,149,0.8)' } // 外圈透明
|
{ offset: 1, color: 'rgba(9,147,149,0.8)' }
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
,
|
|
||||||
itemStyle: { color: 'rgba(0,255,255,0.8)' },
|
itemStyle: { color: 'rgba(0,255,255,0.8)' },
|
||||||
data: [{ value: values, name: '瞬时流量', symbol: 'none', symbolSize: 6, lineStyle: { width: 2, color: 'rgba(9,147,149, 0.8)' } }]
|
data: [{
|
||||||
}],
|
value: values1,
|
||||||
|
name: '供水压力',
|
||||||
|
symbol: 'none',
|
||||||
|
symbolSize: 6,
|
||||||
|
lineStyle: { width: 2, color: 'rgba(9,147,149,0.8)' }
|
||||||
|
}]
|
||||||
|
},
|
||||||
|
|
||||||
|
// 第二个雷达图(累计流量)
|
||||||
|
{
|
||||||
|
name: '回水压力',
|
||||||
|
type: 'radar',
|
||||||
|
lineStyle: { width: 3, color: '#FFA500' }, // 橙色线条
|
||||||
|
areaStyle: {
|
||||||
|
color: {
|
||||||
|
type: 'radial',
|
||||||
|
x: 0.5,
|
||||||
|
y: 0.5,
|
||||||
|
r: 0.5,
|
||||||
|
colorStops: [
|
||||||
|
{ offset: 0, color: 'rgba(255,165,0,0.0)' },
|
||||||
|
{ offset: 0.4, color: 'rgba(255,165,0,0.2)' },
|
||||||
|
{ offset: 0.7, color: 'rgba(255,165,0,0.6)' },
|
||||||
|
{ offset: 1, color: 'rgba(255,165,0,0.8)' }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
itemStyle: { color: 'rgba(255,165,0,0.8)' },
|
||||||
|
data: [{
|
||||||
|
value: values2,
|
||||||
|
name: '回水压力',
|
||||||
|
symbol: 'none',
|
||||||
|
symbolSize: 6,
|
||||||
|
lineStyle: { width: 2, color: 'rgba(255,165,0,0.8)' }
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
]
|
||||||
}, true);
|
}, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// area-8 折线图更新函数
|
||||||
function updateChartArea8() {
|
function updateChartArea8() {
|
||||||
if (!chartArea8) return;
|
if (!chartArea8) return;
|
||||||
|
|
||||||
const names = countyList.value.map(i => i.raw?.view028.replace('锅炉房', '') ?? '未知');
|
const names = countyList.value.map(i => i.raw?.view028.replace('锅炉房', '') ?? '未知');
|
||||||
const supplyData = countyList.value.map(i => i.raw?.fromFlow == 1 ? Number(i.raw.view035) : Number(i.raw.view005));
|
const supplyData = countyList.value.map(i => i.raw?.fromFlow == 1 ? Number(i.raw.view038) : Number(i.raw.view038));
|
||||||
const returnData = countyList.value.map(i => i.raw?.fromFlow == 1 ? Number(i.raw.view036) : Number(i.raw.view006));
|
|
||||||
|
|
||||||
const maxVal = Math.max(...supplyData.concat(returnData)) * 1.15 || 100;
|
|
||||||
|
|
||||||
chartArea8.setOption({
|
chartArea8.setOption({
|
||||||
grid: { left: 30, right: 10, bottom: 14, top: 30, containLabel: true },
|
grid: { left: 30, right: 10, bottom: 14, top: 30, containLabel: true },
|
||||||
|
|
@ -641,8 +991,7 @@ function updateChartArea8() {
|
||||||
<div style="position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(to right,#cccccc46,#ececec7c,#cccccc46);"></div>
|
<div style="position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(to right,#cccccc46,#ececec7c,#cccccc46);"></div>
|
||||||
<div style="position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(to right,#cccccc46,#ececec7c,#cccccc46);"></div>
|
<div style="position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(to right,#cccccc46,#ececec7c,#cccccc46);"></div>
|
||||||
${params[0].name}<br/>
|
${params[0].name}<br/>
|
||||||
供水: ${supplyData[p.dataIndex]}<br/>
|
水流量: ${supplyData[p.dataIndex]}
|
||||||
回水: ${returnData[p.dataIndex]}
|
|
||||||
</div>`;
|
</div>`;
|
||||||
return content;
|
return content;
|
||||||
}
|
}
|
||||||
|
|
@ -658,7 +1007,7 @@ function updateChartArea8() {
|
||||||
},
|
},
|
||||||
yAxis: {
|
yAxis: {
|
||||||
type: 'value',
|
type: 'value',
|
||||||
name: '温度℃',
|
name: 'm³/h',
|
||||||
nameLocation: 'end',
|
nameLocation: 'end',
|
||||||
nameTextStyle: {
|
nameTextStyle: {
|
||||||
color: '#ffffff',
|
color: '#ffffff',
|
||||||
|
|
@ -678,7 +1027,7 @@ function updateChartArea8() {
|
||||||
},
|
},
|
||||||
series: [
|
series: [
|
||||||
{
|
{
|
||||||
name: '供水',
|
name: '热量',
|
||||||
type: 'line',
|
type: 'line',
|
||||||
smooth: true,
|
smooth: true,
|
||||||
data: supplyData,
|
data: supplyData,
|
||||||
|
|
@ -696,8 +1045,120 @@ function updateChartArea8() {
|
||||||
},
|
},
|
||||||
label: { show: false }
|
label: { show: false }
|
||||||
},
|
},
|
||||||
|
]
|
||||||
|
}, true);
|
||||||
|
|
||||||
|
// -------- 自动轮播 tooltip(每 5 秒) --------
|
||||||
|
// 清理旧定时器(避免重复)
|
||||||
|
if (chartArea8.__autoTooltipTimer) {
|
||||||
|
clearInterval(chartArea8.__autoTooltipTimer);
|
||||||
|
chartArea8.__autoTooltipTimer = null;
|
||||||
|
try { chartArea8.dispatchAction({ type: 'hideTip' }); } catch (e) { }
|
||||||
|
try { chartArea8.dispatchAction({ type: 'downplay', seriesIndex: 0, dataIndex: 0 }); } catch (e) { }
|
||||||
|
try { chartArea8.dispatchAction({ type: 'downplay', seriesIndex: 1, dataIndex: 0 }); } catch (e) { }
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!names || names.length === 0) return;
|
||||||
|
|
||||||
|
let idx = 0;
|
||||||
|
// 先展示第一个(使用 seriesIndex:0 展示 axis tooltip)
|
||||||
|
setTimeout(() => {
|
||||||
|
try {
|
||||||
|
chartArea8.dispatchAction({ type: 'showTip', seriesIndex: 0, dataIndex: idx });
|
||||||
|
chartArea8.dispatchAction({ type: 'highlight', seriesIndex: 0, dataIndex: idx });
|
||||||
|
// 同时也可以高亮第二条线的点(可选)
|
||||||
|
chartArea8.dispatchAction({ type: 'highlight', seriesIndex: 1, dataIndex: idx });
|
||||||
|
} catch (e) { }
|
||||||
|
chartArea8.__autoTooltipTimer = setInterval(() => {
|
||||||
|
try {
|
||||||
|
// 取消上一个高亮
|
||||||
|
chartArea8.dispatchAction({ type: 'downplay', seriesIndex: 0, dataIndex: idx });
|
||||||
|
chartArea8.dispatchAction({ type: 'downplay', seriesIndex: 1, dataIndex: idx });
|
||||||
|
|
||||||
|
// 下一个索引
|
||||||
|
idx = (idx + 1) % names.length;
|
||||||
|
|
||||||
|
// 显示 tooltip(axis 模式会显示两条线的数据)并高亮
|
||||||
|
chartArea8.dispatchAction({ type: 'showTip', seriesIndex: 0, dataIndex: idx });
|
||||||
|
chartArea8.dispatchAction({ type: 'highlight', seriesIndex: 0, dataIndex: idx });
|
||||||
|
chartArea8.dispatchAction({ type: 'highlight', seriesIndex: 1, dataIndex: idx });
|
||||||
|
} catch (e) {
|
||||||
|
// console.error(e);
|
||||||
|
}
|
||||||
|
}, 5000);
|
||||||
|
}, 2500);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// area-8 折线图更新函数
|
||||||
|
function updateChartArea82() {
|
||||||
|
if (!chartArea8) return;
|
||||||
|
|
||||||
|
const names = countyAddList.value.map(i => i.raw?.view028.replace('锅炉房', '') ?? '未知');
|
||||||
|
const returnData = countyAddList.value.map(i => i.raw?.fromFlow == 1 ? Number(i.raw.view042) : Number(i.raw.view042));
|
||||||
|
|
||||||
|
|
||||||
|
chartArea8.setOption({
|
||||||
|
grid: { left: 30, right: 10, bottom: 14, top: 30, containLabel: true },
|
||||||
|
tooltip: {
|
||||||
|
trigger: 'axis',
|
||||||
|
backgroundColor: 'transparent',
|
||||||
|
extraCssText: `border:none;box-shadow:none;padding:0;margin:0;pointer-events:none;`,
|
||||||
|
formatter: function (params) {
|
||||||
|
const p = params[0];
|
||||||
|
const content = `<div style="
|
||||||
|
position:relative;
|
||||||
|
border-left:2px solid #cccccc46;
|
||||||
|
border-right:2px solid #cccccc46;
|
||||||
|
border-radius:5px;
|
||||||
|
background:linear-gradient(to right bottom, #08101D, #1a3b70);
|
||||||
|
color:#ffffff;
|
||||||
|
padding:5px 10px;
|
||||||
|
margin-left:10px;
|
||||||
|
z-index:99;
|
||||||
|
text-align:center;">
|
||||||
|
<div style="position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(to right,#cccccc46,#ececec7c,#cccccc46);"></div>
|
||||||
|
<div style="position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(to right,#cccccc46,#ececec7c,#cccccc46);"></div>
|
||||||
|
${params[0].name}<br/>
|
||||||
|
热量: ${returnData[p.dataIndex]}
|
||||||
|
</div>`;
|
||||||
|
return content;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
xAxis: {
|
||||||
|
type: 'category',
|
||||||
|
boundaryGap: false,
|
||||||
|
data: names,
|
||||||
|
axisLabel: { rotate: 0, interval: 0, color: jbztys.value ,fontSize: 16},
|
||||||
|
axisLine: { lineStyle: { color: jbzbzys.value } },
|
||||||
|
axisTick: { show: false },
|
||||||
|
splitLine: { show: false }
|
||||||
|
},
|
||||||
|
yAxis: {
|
||||||
|
type: 'value',
|
||||||
|
name: '焦耳',
|
||||||
|
nameLocation: 'end',
|
||||||
|
nameTextStyle: {
|
||||||
|
color: '#ffffff',
|
||||||
|
align: 'right',
|
||||||
|
verticalAlign: 'bottom',
|
||||||
|
fontSize: 11
|
||||||
|
},
|
||||||
|
nameGap: 15,
|
||||||
|
axisLabel: {
|
||||||
|
color: jbztys.value,
|
||||||
|
margin: 8,
|
||||||
|
formatter: '{value}'
|
||||||
|
},
|
||||||
|
axisLine: { show: true, lineStyle: { color: jbzbzys.value } },
|
||||||
|
axisTick: { show: false },
|
||||||
|
splitLine: { show: true, lineStyle: { type: [8, 2], color: '#66666655' } },
|
||||||
|
},
|
||||||
|
series: [
|
||||||
{
|
{
|
||||||
name: '回水',
|
name: '热量',
|
||||||
type: 'line',
|
type: 'line',
|
||||||
smooth: true,
|
smooth: true,
|
||||||
data: returnData,
|
data: returnData,
|
||||||
|
|
@ -882,6 +1343,51 @@ function stopAutoTooltipArea8() {
|
||||||
const z = ref<any[]>([]);
|
const z = ref<any[]>([]);
|
||||||
const doubleZList = computed(() => [...z.value, ...z.value]);
|
const doubleZList = computed(() => [...z.value, ...z.value]);
|
||||||
|
|
||||||
|
function filterSongshanData(data) {
|
||||||
|
// 分离松山数据和其他数据
|
||||||
|
const songshanData = data.filter(item => item.raw.view027 === "松山");
|
||||||
|
const otherData = data.filter(item => item.raw.view027 !== "松山");
|
||||||
|
|
||||||
|
// 对松山数据按 view035 降序排序,取最大值的那条
|
||||||
|
if (songshanData.length > 0) {
|
||||||
|
songshanData.sort((a, b) => Number(b.raw.view035) - Number(a.raw.view035));
|
||||||
|
const maxSongshan = songshanData[0];
|
||||||
|
|
||||||
|
// 返回其他数据 + 松山最大值数据
|
||||||
|
return [...otherData, maxSongshan];
|
||||||
|
}
|
||||||
|
|
||||||
|
// 如果没有松山数据,直接返回原数据
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
function sumSongshanData(data) {
|
||||||
|
// 分离松山数据和其他数据
|
||||||
|
const songshanData = data.filter(item => item.raw.view027 === "松山");
|
||||||
|
const otherData = data.filter(item => item.raw.view027 !== "松山");
|
||||||
|
|
||||||
|
// 对松山数据按 view035 降序排序,取最大值的那条
|
||||||
|
if (songshanData.length > 0) {
|
||||||
|
songshanData.sort((a, b) => Number(b.raw.view035) - Number(a.raw.view035));
|
||||||
|
const maxSongshan = songshanData[0];
|
||||||
|
var sumView038 = 0;
|
||||||
|
var sumView042 = 0;
|
||||||
|
for(var i=0;i<songshanData.length;i++){
|
||||||
|
var param = songshanData[i];
|
||||||
|
sumView038 = sumView038 + Number(param.view038);
|
||||||
|
sumView042 = sumView042 + Number(param.sumView042);
|
||||||
|
}
|
||||||
|
maxSongshan.view038 = sumView038;
|
||||||
|
maxSongshan.view042 = sumView042;
|
||||||
|
|
||||||
|
// 返回其他数据 + 松山最大值数据
|
||||||
|
return [...otherData, maxSongshan];
|
||||||
|
}
|
||||||
|
|
||||||
|
// 如果没有松山数据,直接返回原数据
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
async function loadData() {
|
async function loadData() {
|
||||||
try {
|
try {
|
||||||
const s = await slcx();
|
const s = await slcx();
|
||||||
|
|
@ -916,7 +1422,8 @@ async function loadData() {
|
||||||
});
|
});
|
||||||
|
|
||||||
cityList.value = cities;
|
cityList.value = cities;
|
||||||
countyList.value = countys;
|
countyList.value = filterSongshanData(countys);
|
||||||
|
countyAddList.value = sumSongshanData(countys);
|
||||||
//
|
//
|
||||||
const arr2 = (z_ && z_.data) ? z_.data : [];
|
const arr2 = (z_ && z_.data) ? z_.data : [];
|
||||||
const cities2: { name: string; value: number; raw: any }[] = [];
|
const cities2: { name: string; value: number; raw: any }[] = [];
|
||||||
|
|
@ -978,6 +1485,9 @@ onMounted(() => {
|
||||||
|
|
||||||
window.addEventListener('resize', handleFullScreenChange);
|
window.addEventListener('resize', handleFullScreenChange);
|
||||||
|
|
||||||
|
getThermalcompany();
|
||||||
|
// getHeatsource();
|
||||||
|
// getHeatsourcestation();
|
||||||
});
|
});
|
||||||
|
|
||||||
onUnmounted(() => {
|
onUnmounted(() => {
|
||||||
|
|
@ -1034,10 +1544,11 @@ function openModal(type: number, title: string) {
|
||||||
function closeModal() {
|
function closeModal() {
|
||||||
modalVisible.value = false;
|
modalVisible.value = false;
|
||||||
}
|
}
|
||||||
|
function closeCqModal() {
|
||||||
|
modalCqVisible.value = false;
|
||||||
|
}
|
||||||
|
|
||||||
async function detailFunc(record) {
|
async function detailFunc(record) {
|
||||||
console.log(record);
|
|
||||||
console.log(modalType);
|
|
||||||
if (modalType.value == 2) {
|
if (modalType.value == 2) {
|
||||||
modalVisible3.value = true;
|
modalVisible3.value = true;
|
||||||
await nextTick()
|
await nextTick()
|
||||||
|
|
@ -1528,7 +2039,7 @@ function closeModal3() {
|
||||||
|
|
||||||
.modal-content {
|
.modal-content {
|
||||||
width: 80%;
|
width: 80%;
|
||||||
max-width: 1000px;
|
// max-width: 1000px;
|
||||||
background: rgba(255, 255, 255, 0.1);
|
background: rgba(255, 255, 255, 0.1);
|
||||||
backdrop-filter: blur(6px);
|
backdrop-filter: blur(6px);
|
||||||
border-radius: 12px;
|
border-radius: 12px;
|
||||||
|
|
@ -1585,4 +2096,7 @@ function closeModal3() {
|
||||||
max-height: 400px;
|
max-height: 400px;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
}
|
}
|
||||||
|
.cursorPointer {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -117,6 +117,7 @@ function initChartsOptions(records: any[], record_: any) {
|
||||||
legend: { top: 36, left: 'center', textStyle: { color: '#ffffff' } }, // 设置折线图legend文字为白色
|
legend: { top: 36, left: 'center', textStyle: { color: '#ffffff' } }, // 设置折线图legend文字为白色
|
||||||
grid: { left: '5%', right: '5%', bottom: 70, top: 70, containLabel: true },
|
grid: { left: '5%', right: '5%', bottom: 70, top: 70, containLabel: true },
|
||||||
xAxis: {
|
xAxis: {
|
||||||
|
show: false,
|
||||||
type: 'category',
|
type: 'category',
|
||||||
data: xAxis,
|
data: xAxis,
|
||||||
boundaryGap: false,
|
boundaryGap: false,
|
||||||
|
|
|
||||||
|
|
@ -158,6 +158,7 @@ function initChartsOptions(records: any[], record_: any) {
|
||||||
legend: { top: 36, left: 'center', textStyle: { color: '#ffffff' } }, // 设置折线图legend文字为白色
|
legend: { top: 36, left: 'center', textStyle: { color: '#ffffff' } }, // 设置折线图legend文字为白色
|
||||||
grid: { left: '5%', right: '5%', bottom: 70, top: 70, containLabel: true },
|
grid: { left: '5%', right: '5%', bottom: 70, top: 70, containLabel: true },
|
||||||
xAxis: {
|
xAxis: {
|
||||||
|
show: false,
|
||||||
type: 'category',
|
type: 'category',
|
||||||
data: xAxis,
|
data: xAxis,
|
||||||
boundaryGap: false,
|
boundaryGap: false,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue