feat(auth): 优化权限模块菜单数据处理逻辑
- 添加showMenuList、flatMenuList和breadcrumbList状态字段 - 修改getter方法直接返回缓存的状态数据 - 新增refreshDerivedMenus方法统一处理菜单衍生数据计算 - 在重置授权存储时清理新增的菜单相关状态 - 避免每次路由跳转时重复深拷贝整个菜单树结构 feat(checksquare): 完善校验功能组件和业务逻辑 - 新增测量点对话框组件用于显示监测点详细信息 - 添加校验台账工具函数解析测量点详情 - 实现任务表格删除功能包括确认提示和数据刷新 - 更新任务表格将缺失率字段替换为数据完整性字段 - 重构详情面板使用标签页展示不同类型的校验详情 - 优化摘要表格样式包括紧凑布局和危险颜色标识 - 统一详情对话框尺寸样式保持界面一致性 - 实现数据完整性字段的百分比单位去除处理 refactor(influxdb): 简化数据库启动流程移除命令行包装器 - 直接通过influxd.exe启动InfluxDB服务 - 移除对cmd.exe包装器的依赖和进程ID记录 - 保持进程管理和停止功能的完整性
This commit is contained in:
@@ -15,6 +15,17 @@
|
||||
>
|
||||
生成XML映射
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="showSaveIcdCheckResult"
|
||||
type="primary"
|
||||
plain
|
||||
:icon="Finished"
|
||||
:loading="isSavingIcdCheckResult"
|
||||
:disabled="!canSaveIcdCheckResult"
|
||||
@click="emit('save-icd-check-result')"
|
||||
>
|
||||
{{ saveIcdCheckResultText }}
|
||||
</el-button>
|
||||
<div class="export-actions">
|
||||
<el-button
|
||||
type="primary"
|
||||
@@ -128,13 +139,7 @@
|
||||
<el-empty v-else :description="problemEmptyText" />
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog
|
||||
v-model="matchResultDialogVisible"
|
||||
title="匹配结果展示"
|
||||
width="640px"
|
||||
destroy-on-close
|
||||
top="12vh"
|
||||
>
|
||||
<el-dialog v-model="matchResultDialogVisible" title="匹配结果展示" width="640px" destroy-on-close top="12vh">
|
||||
<div class="match-result-detail">
|
||||
{{ methodDescribe || '当前接口返回未包含 methodDescribe' }}
|
||||
</div>
|
||||
@@ -179,7 +184,9 @@
|
||||
>
|
||||
<div class="sequence-type-header">
|
||||
<div class="sequence-type-title">{{ typeGroup.typeName }}</div>
|
||||
<el-tag type="primary" effect="plain" size="small">{{ typeGroup.rows.length }} 项</el-tag>
|
||||
<el-tag type="primary" effect="plain" size="small">
|
||||
{{ typeGroup.rows.length }} 项
|
||||
</el-tag>
|
||||
</div>
|
||||
|
||||
<div v-for="row in typeGroup.rows" :key="row.id" class="sequence-config-item">
|
||||
@@ -220,7 +227,7 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ArrowDown, Connection, Document, Download, Search, Setting, Warning } from '@element-plus/icons-vue'
|
||||
import { ArrowDown, Connection, Document, Download, Finished, Search, Setting, Warning } from '@element-plus/icons-vue'
|
||||
import { ElMessage } from 'element-plus'
|
||||
import { computed, ref } from 'vue'
|
||||
import JsonMappingTree from './JsonMappingTree.vue'
|
||||
@@ -282,6 +289,10 @@ const props = defineProps<{
|
||||
canGenerateXmlMapping: boolean
|
||||
isGeneratingXml: boolean
|
||||
showXmlMappingTab: boolean
|
||||
showSaveIcdCheckResult: boolean
|
||||
canSaveIcdCheckResult: boolean
|
||||
isSavingIcdCheckResult: boolean
|
||||
saveIcdCheckResultText: string
|
||||
}>()
|
||||
|
||||
const emit = defineEmits<{
|
||||
@@ -289,6 +300,7 @@ const emit = defineEmits<{
|
||||
(event: 'export-mapping', value: ExportMappingType): void
|
||||
(event: 'generate-xml-mapping'): void
|
||||
(event: 'update-mapping-json', value: string): void
|
||||
(event: 'save-icd-check-result'): void
|
||||
}>()
|
||||
|
||||
const activeTabProxy = computed({
|
||||
@@ -322,9 +334,17 @@ const filteredSequenceRows = computed(() => {
|
||||
if (!keyword) return sequenceConfigRows.value
|
||||
|
||||
return sequenceConfigRows.value.filter(row =>
|
||||
[row.topKey, row.topDesc, row.desc, row.parentDesc, row.name, row.baseflag, row.pathText, row.start, row.end].some(
|
||||
value => value.toLowerCase().includes(keyword)
|
||||
)
|
||||
[
|
||||
row.topKey,
|
||||
row.topDesc,
|
||||
row.desc,
|
||||
row.parentDesc,
|
||||
row.name,
|
||||
row.baseflag,
|
||||
row.pathText,
|
||||
row.start,
|
||||
row.end
|
||||
].some(value => value.toLowerCase().includes(keyword))
|
||||
)
|
||||
})
|
||||
const sequenceConfigGroups = computed<SequenceConfigGroup[]>(() => {
|
||||
@@ -365,7 +385,8 @@ const handleExportCommand = (command: string | number | object) => {
|
||||
}
|
||||
}
|
||||
|
||||
const isRecord = (value: unknown): value is JsonObject => Boolean(value && typeof value === 'object' && !Array.isArray(value))
|
||||
const isRecord = (value: unknown): value is JsonObject =>
|
||||
Boolean(value && typeof value === 'object' && !Array.isArray(value))
|
||||
|
||||
const toDisplayText = (value: unknown, fallback: string) => {
|
||||
if (typeof value === 'string' && value.trim()) return value.trim()
|
||||
@@ -392,7 +413,12 @@ const isConfigurableBaseflag = (value: unknown) => {
|
||||
return ['1', '2'].includes(value.trim())
|
||||
}
|
||||
|
||||
const collectSequenceRows = (source: unknown, path: JsonPath = [], parentDesc = '', rootSource = source): SequenceConfigRow[] => {
|
||||
const collectSequenceRows = (
|
||||
source: unknown,
|
||||
path: JsonPath = [],
|
||||
parentDesc = '',
|
||||
rootSource = source
|
||||
): SequenceConfigRow[] => {
|
||||
if (Array.isArray(source)) {
|
||||
return source.flatMap((item, index) => collectSequenceRows(item, [...path, index], parentDesc, rootSource))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user