Compare commits

...

6 Commits

Author SHA1 Message Date
sjl
d1e7aab876 微调 2025-11-05 15:12:06 +08:00
sjl
8a3e0263d2 Merge branch 'main' of http://192.168.1.22:3000/Web/admin-govern 2025-11-05 15:10:50 +08:00
sjl
35ce7314b0 微调 2025-11-05 15:10:44 +08:00
guanj
5538d18127 Merge branch 'main' of http://192.168.1.22:3000/Web/admin-govern 2025-11-05 15:09:09 +08:00
guanj
00dd79e000 修改echart y轴计算方式 2025-11-05 15:09:00 +08:00
stt
b5aff1a837 样式修改 2025-11-05 14:45:56 +08:00
9 changed files with 66 additions and 34 deletions

View File

@@ -1,14 +1,14 @@
<template> <template>
<div> <div>
<!--主要监测点列表 --> <!--主要监测点列表 -->
<TableHeader :showReset="false" > <TableHeader :showReset="false" datePicker @selectChange="selectChange" v-if="fullscreen">
<template v-slot:select> <template v-slot:select>
<el-form-item label="关键词"> <el-form-item label="关键词">
<el-input v-model="tableStore.table.params.searchValue" clearable placeholder="请输关键字" /> <el-input v-model="tableStore.table.params.searchValue" clearable placeholder="请输关键字" />
</el-form-item> </el-form-item>
</template> </template>
</TableHeader> </TableHeader>
<Table ref="tableRef" @cell-click="cellClickEvent" :height="`calc(${prop.height} - 58px)`"></Table> <Table ref="tableRef" @cell-click="cellClickEvent" :height="`calc(${prop.height} - ${headerHeight}px + ${fullscreen ? 0 : 56}px )`"></Table>
<!-- 指标越限详情 --> <!-- 指标越限详情 -->
<OverLimitDetails ref="OverLimitDetailsRef" /> <OverLimitDetails ref="OverLimitDetailsRef" />
</div> </div>
@@ -24,6 +24,8 @@ import { getTimeOfTheMonth } from '@/utils/formatTime'
import { ElTag } from 'element-plus' import { ElTag } from 'element-plus'
import OverLimitDetails from '@/components/cockpit/listOfMainMonitoringPoints/components/overLimitDetails.vue' import OverLimitDetails from '@/components/cockpit/listOfMainMonitoringPoints/components/overLimitDetails.vue'
const prop = defineProps({ const prop = defineProps({
w: { type: String },
h: { type: String },
width: { type: String }, width: { type: String },
height: { type: String }, height: { type: String },
timeKey: { type: String }, timeKey: { type: String },
@@ -31,6 +33,22 @@ const prop = defineProps({
}) })
const dictData = useDictData() const dictData = useDictData()
const OverLimitDetailsRef = ref() const OverLimitDetailsRef = ref()
const headerHeight = ref(57)
const selectChange = (showSelect: any, height: any) => {
headerHeight.value = height
}
// 计算是否全屏展示
const fullscreen = computed(() => {
const w = Number(prop.w)
const h = Number(prop.h)
if (!isNaN(w) && !isNaN(h) && w === 12 && h === 6) {
// 执行相应逻辑
return true
} else {
return false
}
})
const tableStore: any = new TableStore({ const tableStore: any = new TableStore({
url: '/user-boot/role/selectRoleDetail?id=0', url: '/user-boot/role/selectRoleDetail?id=0',
method: 'POST', method: 'POST',

View File

@@ -15,7 +15,7 @@
style='cursor: pointer' v-if='props.canExpand' /> --> style='cursor: pointer' v-if='props.canExpand' /> -->
</div> </div>
<el-tree :style="{ height: 'calc(100vh - 200px)' }" <el-tree :style="{ height: 'calc(100vh - 200px)' }"
style=' overflow: auto;' ref='treeRef' :props='defaultProps' highlight-current style=' overflow: auto;' ref='treeRef' :props='defaultProps' highlight-current :default-expand-all="false"
@check-change="checkTreeNodeChange" :filter-node-method='filterNode' node-key='id' v-bind='$attrs'> @check-change="checkTreeNodeChange" :filter-node-method='filterNode' node-key='id' v-bind='$attrs'>
<template #default='{ node, data }'> <template #default='{ node, data }'>
<span class='custom-tree-node'> <span class='custom-tree-node'>
@@ -75,7 +75,6 @@ const filterNode = (value: string, data: any, node: any) => {
// 过滤父节点 / 子节点 (如果输入的参数是父节点且能匹配则返回该节点以及其下的所有子节点如果参数是子节点则返回该节点的父节点。name是中文字符enName是英文字符. // 过滤父节点 / 子节点 (如果输入的参数是父节点且能匹配则返回该节点以及其下的所有子节点如果参数是子节点则返回该节点的父节点。name是中文字符enName是英文字符.
const chooseNode = (value: string, data: any, node: any) => { const chooseNode = (value: string, data: any, node: any) => {
if (data.name.indexOf(value) !== -1) { if (data.name.indexOf(value) !== -1) {
return true return true
} }

View File

@@ -29,7 +29,7 @@
</div> </div>
<el-tree :style="{ height: 'calc(100vh - 200px)' }" <el-tree :style="{ height: 'calc(100vh - 200px)' }"
style=' overflow: auto;' ref='treeRef' :props='defaultProps' highlight-current style=' overflow: auto;' ref='treeRef' :props='defaultProps' highlight-current :default-expand-all="false"
@check-change="checkTreeNodeChange" :filter-node-method='filterNode' node-key='id' v-bind='$attrs'> @check-change="checkTreeNodeChange" :filter-node-method='filterNode' node-key='id' v-bind='$attrs'>
<template #default='{ node, data }'> <template #default='{ node, data }'>
<span class='custom-tree-node'> <span class='custom-tree-node'>

View File

@@ -24,6 +24,7 @@
@node-click="handleNodeClick" @node-click="handleNodeClick"
:default-checked-keys="defaultCheckedKeys" :default-checked-keys="defaultCheckedKeys"
v-bind='$attrs' v-bind='$attrs'
:default-expand-all="false"
> >
<template #default='{ node, data }'> <template #default='{ node, data }'>
<span class='custom-tree-node'> <span class='custom-tree-node'>

View File

@@ -1,3 +1,5 @@
import { number } from "vue-types"
const dataProcessing = (arr: any[]) => { const dataProcessing = (arr: any[]) => {
return arr return arr
.filter(item => typeof item === 'number' || (typeof item === 'string' && !isNaN(parseFloat(item)))) .filter(item => typeof item === 'number' || (typeof item === 'string' && !isNaN(parseFloat(item))))
@@ -12,6 +14,8 @@ const calculateValue = (o: number, value: number, num: number, isMin: boolean) =
} else if (value > -1 && value < 0 && isMin == false) { } else if (value > -1 && value < 0 && isMin == false) {
return 0 return 0
} }
console.log('🚀 ~ calculateValue ~ Math.abs(o):', Math.abs(o))
let base let base
if (Math.abs(o) >= 100) { if (Math.abs(o) >= 100) {
base = 100 base = 100
@@ -20,7 +24,9 @@ const calculateValue = (o: number, value: number, num: number, isMin: boolean) =
} else if (Math.abs(o) >= 1) { } else if (Math.abs(o) >= 1) {
base = 1 base = 1
} else { } else {
base = 0.1 const multiple = 1 / 0.1
// 先放大→向上取整→再缩小
return Math.ceil(Math.abs(o) * multiple) / multiple
} }
let calculatedValue let calculatedValue
if (isMin) { if (isMin) {
@@ -34,8 +40,10 @@ const calculateValue = (o: number, value: number, num: number, isMin: boolean) =
calculatedValue = value - num * value calculatedValue = value - num * value
} else { } else {
calculatedValue = value + num * value calculatedValue = value + num * value
} }
} }
if (base === 0.1) { if (base === 0.1) {
return parseFloat(calculatedValue.toFixed(1)) return parseFloat(calculatedValue.toFixed(1))
} else if (isMin) { } else if (isMin) {
@@ -57,6 +65,7 @@ export const yMethod = (arr: any) => {
minValue = Math.min(...numList) minValue = Math.min(...numList)
const o = maxValue - minValue const o = maxValue - minValue
min = calculateValue(o, minValue, num, true) min = calculateValue(o, minValue, num, true)
max = calculateValue(o, maxValue, num, false) max = calculateValue(o, maxValue, num, false)
// if (-100 >= minValue) { // if (-100 >= minValue) {
// min = Math.floor((minValue + num * minValue) / 100) * 100 // min = Math.floor((minValue + num * minValue) / 100) * 100

View File

@@ -313,6 +313,7 @@ const sourceChange = (e: any) => {
tableStore.table.params.engineeringid = e[1] || '' tableStore.table.params.engineeringid = e[1] || ''
tableStore.table.params.projectId = e[2] || '' tableStore.table.params.projectId = e[2] || ''
} }
} }
// tableStore.table.params.engineeringid = e[1] || '' // tableStore.table.params.engineeringid = e[1] || ''

View File

@@ -2296,10 +2296,15 @@ const area = () => {
onMounted(() => { onMounted(() => {
nodeData.value.level = 0 nodeData.value.level = 0
const dom = document.getElementById('navigation-splitpanes') nextTick(() => {
if (dom) { const dom = document.getElementById('navigation-splitpanes')
size.value = Math.round((180 / dom.offsetHeight) * 100) if (dom && dom.offsetHeight > 0) {
} size.value = Math.round((180 / dom.offsetHeight) * 100)
} else {
// 设置默认值
size.value = 20
}
})
}) })
area() area()
</script> </script>

View File

@@ -99,11 +99,15 @@ tableStore.table.params.resourceType = 1
tableStore.table.params.customType = 1 tableStore.table.params.customType = 1
const flag = ref(true) const flag = ref(true)
onMounted(() => { onMounted(() => {
const dom = document.getElementById('navigation-splitpanes') nextTick(() => {
if (dom) { const dom = document.getElementById('navigation-splitpanes')
if (dom && dom.offsetHeight > 0) {
size.value = ((280 / (dom.offsetWidth - 7)) * 100) size.value = ((280 / (dom.offsetWidth - 7)) * 100)
} } else {
// 设置默认值
size.value = 20
}
})
}) })
// getTemplateByDept({ id: dictData.state.area[0].id }).then((res: any) => { // getTemplateByDept({ id: dictData.state.area[0].id }).then((res: any) => {

View File

@@ -31,6 +31,7 @@
</template> </template>
<template v-slot:operation> <template v-slot:operation>
<el-button type="primary" class="ml10" @click="add" icon="el-icon-Plus">新增</el-button> <el-button type="primary" class="ml10" @click="add" icon="el-icon-Plus">新增</el-button>
</template> </template>
</TableHeader> </TableHeader>
<Table <Table
@@ -81,30 +82,23 @@
</el-tooltip> </el-tooltip>
</template> </template>
<template v-else> <template v-else>
<el-popconfirm <el-popconfirm title="确定重启吗?" placement="bottom" @confirm="restart(data)">
class="box-item" <template #reference>
title="确定重启吗?" <el-tooltip content="重启" placement="top">
placement="bottom" <el-button
@confirm="restart(data)" style="margin-left: 4px"
> icon="el-icon-Refresh"
type="warning"
link
/>
</el-tooltip>
</template>
<template #actions="{ confirm, cancel }"> <template #actions="{ confirm, cancel }">
<el-button size="small" @click="cancel">取消</el-button> <el-button size="small" @click="cancel">取消</el-button>
<el-button type="warning" size="small" @click="confirm">确认</el-button> <el-button type="warning" size="small" @click="confirm">确认</el-button>
</template> </template>
<template #reference>
<el-tooltip content="重启" placement="top">
<el-button
style="margin-left: 4px"
icon="el-icon-Refresh"
type="warning"
link
@click.stop
></el-button>
</el-tooltip>
</template>
</el-popconfirm> </el-popconfirm>
</template> </template>
</div> </div>
</div> </div>
</template> </template>
@@ -433,6 +427,7 @@ const currentChangeEvent = () => {
// 重启进程 // 重启进程
const restart = (data: any) => { const restart = (data: any) => {
restartProcess({ restartProcess({
nodeId: nodeId.value, nodeId: nodeId.value,
processNo: data.processNo processNo: data.processNo