feat(steady): 实现稳态校验任务功能重构

- 添加influxdb配置支持和资源文件打包
- 实现校验任务表格组件和相关工具函数
- 重构校验工作台为任务创建对话框模式
- 实现校验详情面板支持多种异常类型展示
- 更新校验概览表格显示任务基本信息
- 优化校验查询参数和API接口定义
- 实现搜索表单组件化和过滤功能增强
This commit is contained in:
2026-06-11 10:53:02 +08:00
parent 3dff953b8d
commit 8622f25048
25 changed files with 1675 additions and 486 deletions

View File

@@ -5,6 +5,7 @@
</template>
<script setup lang='ts' name='Grid'>
import type { VNode, VNodeArrayChildren } from 'vue'
import type { BreakPoint } from './interface/index'
type Props = {
@@ -99,11 +100,12 @@ const findIndex = () => {
}
try {
let find = false
fields.reduce((prev = 0, current, index) => {
fields.reduce((prev: number, current: unknown, index: number) => {
prev +=
((current as VNode)!.props![breakPoint.value]?.span ?? (current as VNode)!.props?.span ?? 1) +
((current as VNode)!.props![breakPoint.value]?.offset ?? (current as VNode)!.props?.offset ?? 0)
if (Number(prev) >= props.collapsedRows * gridCols.value - suffixCols) {
// 刚好填满首行时仍应显示当前项,只有超过可用列数才进入折叠。
if (Number(prev) > props.collapsedRows * gridCols.value - suffixCols) {
hiddenIndex.value = index
find = true
throw 'find it'

View File

@@ -1,5 +1,6 @@
<template>
<component
v-if="!column.search?.render"
:is="column.search?.render ?? `el-${column.search?.el}`"
v-bind="{ ...handleSearchProps, ...placeholder, searchParam: _searchParam, clearable }"
v-model.trim="_searchParam[column.search?.key ?? handleProp(column.prop!)]"
@@ -20,12 +21,19 @@
</template>
<slot v-else></slot>
</component>
<component
v-else
:is="column.search.render"
v-bind="{ ...handleSearchProps, ...placeholder, searchParam: _searchParam, clearable }"
:data="column.search?.el === 'tree-select' ? columnEnum : []"
:options="['cascader', 'select-v2'].includes(column.search?.el!) ? columnEnum : []"
/>
</template>
<script setup lang="ts" name="SearchFormItem">
import { computed, inject, ref } from "vue";
import { handleProp } from "@/utils";
import { ColumnProps } from "@/components/ProTable/interface";
import type { ColumnProps } from "@/components/ProTable/interface";
interface SearchFormItem {
column: ColumnProps;

View File

@@ -33,8 +33,8 @@
</div>
</template>
<script setup lang='ts' name='SearchForm'>
import { ColumnProps } from '@/components/ProTable/interface'
import { BreakPoint } from '@/components/Grid/interface'
import type { ColumnProps } from '@/components/ProTable/interface'
import type { BreakPoint } from '@/components/Grid/interface'
import { Delete, Search, ArrowDown, ArrowUp } from '@element-plus/icons-vue'
import SearchFormItem from './components/SearchFormItem.vue'
import Grid from '@/components/Grid/index.vue'
@@ -85,9 +85,9 @@ const showCollapse = computed(() => {
(current.search![breakPoint.value]?.span ?? current.search?.span ?? 1) +
(current.search![breakPoint.value]?.offset ?? current.search?.offset ?? 0)
if (typeof props.searchCol !== 'number') {
if (prev >= props.searchCol[breakPoint.value]) show = true
if (prev > props.searchCol[breakPoint.value]) show = true
} else {
if (prev >= props.searchCol) show = true
if (prev > props.searchCol) show = true
}
return prev
}, 0)