feat(auth): 优化权限模块菜单数据处理逻辑

- 添加showMenuList、flatMenuList和breadcrumbList状态字段
- 修改getter方法直接返回缓存的状态数据
- 新增refreshDerivedMenus方法统一处理菜单衍生数据计算
- 在重置授权存储时清理新增的菜单相关状态
- 避免每次路由跳转时重复深拷贝整个菜单树结构

feat(checksquare): 完善校验功能组件和业务逻辑

- 新增测量点对话框组件用于显示监测点详细信息
- 添加校验台账工具函数解析测量点详情
- 实现任务表格删除功能包括确认提示和数据刷新
- 更新任务表格将缺失率字段替换为数据完整性字段
- 重构详情面板使用标签页展示不同类型的校验详情
- 优化摘要表格样式包括紧凑布局和危险颜色标识
- 统一详情对话框尺寸样式保持界面一致性
- 实现数据完整性字段的百分比单位去除处理

refactor(influxdb): 简化数据库启动流程移除命令行包装器

- 直接通过influxd.exe启动InfluxDB服务
- 移除对cmd.exe包装器的依赖和进程ID记录
- 保持进程管理和停止功能的完整性
This commit is contained in:
2026-06-12 08:44:07 +08:00
parent 8622f25048
commit 81f90ce0f2
26 changed files with 1279 additions and 243 deletions

View File

@@ -11,21 +11,21 @@
</template>
<template #operation="{ row }">
<el-button type="primary" link :icon="View" @click="emit('detail', row)">详情</el-button>
<el-button type="danger" link :icon="Delete" @click="emit('delete', row)">删除</el-button>
</template>
</ProTable>
</template>
<script setup lang="ts">
import { computed, h, reactive, ref } from 'vue'
import { ElDatePicker, ElTag, ElTreeSelect } from 'element-plus'
import { Plus, View } from '@element-plus/icons-vue'
import { ElButton, ElDatePicker, ElTag, ElTreeSelect } from 'element-plus'
import { Delete, Plus } from '@element-plus/icons-vue'
import ProTable from '@/components/ProTable/index.vue'
import type { ColumnProps, ProTableInstance } from '@/components/ProTable/interface'
import type { SteadyDataView } from '@/api/steady/steadyDataView/interface'
import {
buildChecksquareTaskQueryParams,
formatChecksquarePercent,
formatChecksquareIntegrity,
formatChecksquareTaskStatus,
resolveChecksquareTaskStatusType,
resolveChecksquareText,
@@ -45,6 +45,8 @@ const props = defineProps<{
const emit = defineEmits<{
createTask: []
detail: [row: SteadyDataView.SteadyChecksquareTask]
delete: [row: SteadyDataView.SteadyChecksquareTask]
viewMeasurementPoint: [row: SteadyDataView.SteadyChecksquareTask]
}>()
const proTable = ref<ProTableInstance>()
@@ -192,7 +194,16 @@ const columns = reactive<ColumnProps<SteadyDataView.SteadyChecksquareTask>[]>([
prop: 'lineName',
label: '监测点名称',
minWidth: 160,
render: ({ row }) => resolveChecksquareText(row.lineName || row.lineId)
render: ({ row }) =>
h(
ElButton,
{
type: 'primary',
link: true,
onClick: () => emit('viewMeasurementPoint', row)
},
() => resolveChecksquareText(row.lineName || row.lineId)
)
},
{
prop: 'indicatorCode',
@@ -246,7 +257,16 @@ const columns = reactive<ColumnProps<SteadyDataView.SteadyChecksquareTask>[]>([
label: '异常项数',
minWidth: 100,
align: 'center',
render: ({ row }) => resolveChecksquareText(row.abnormalItemCount),
render: ({ row }) =>
h(
ElButton,
{
type: 'primary',
link: true,
onClick: () => emit('detail', row)
},
() => resolveChecksquareText(row.abnormalItemCount)
),
search: {
label: '异常状态',
key: 'hasAbnormal',
@@ -260,11 +280,11 @@ const columns = reactive<ColumnProps<SteadyDataView.SteadyChecksquareTask>[]>([
isFilterEnum: false
},
{
prop: 'maxMissingRate',
label: '最大缺失率',
prop: 'minDataIntegrity',
label: '最低完整性',
minWidth: 120,
align: 'center',
render: ({ row }) => formatChecksquarePercent(row.maxMissingRate)
render: ({ row }) => formatChecksquareIntegrity(row.minDataIntegrity, row.maxMissingRate)
},
{
prop: 'createTime',
@@ -272,7 +292,7 @@ const columns = reactive<ColumnProps<SteadyDataView.SteadyChecksquareTask>[]>([
minWidth: 170,
render: ({ row }) => resolveChecksquareText(row.createTime)
},
{ prop: 'operation', label: '操作', fixed: 'right', width: 96 }
{ prop: 'operation', label: '操作', fixed: 'right', width: 150 }
])
const getTableList = (params: ChecksquareTaskSearchParams) => {