✨feat(nacos): 增加应用名称支持,优化配置查询功能

- 新增应用名称字段到配置查询接口
- 更新前端界面以支持应用名称输入
- 调整后端逻辑以处理应用名称参数
This commit is contained in:
二丫讲梵 authored and GitHub committed 2026-06-27 12:14:29 +08:00
1 parent c0bd9313d7
commit 4d435e2aab
4 files changed
+40 -14

No files matched your search

@@ -49,6 +49,7 @@ const configLoading = ref(false);
const configError = ref("");
const configGroup = ref("");
const configDataId = ref("");
const configAppName = ref("");
const configPageNo = ref(1);
const configPageSize = ref(20);
const configs = ref<NacosConfigItem[]>([]);
@@ -370,6 +371,7 @@ async function loadConfigs(page = configPageNo.value) {
namespace: namespace.value || undefined,
group: configGroup.value.trim() || undefined,
dataId: configDataId.value.trim() || undefined,
appName: configAppName.value.trim() || undefined,
pageNo: configPageNo.value,
pageSize: configPageSize.value,
});
@@ -881,9 +883,10 @@ onBeforeUnmount(() => {
<Splitpanes v-if="activeTab === 'configs'" class="nacos-admin-splitpanes min-h-0 flex-1" @resized="handleNacosSplitResized">
<Pane :size="nacosSplitSize" min-size="24">
<div class="flex h-full min-h-0 flex-col">
<div class="grid shrink-0 grid-cols-[minmax(0,1fr)_minmax(0,1fr)_auto_auto] gap-2 border-b p-2">
<div class="grid shrink-0 grid-cols-[minmax(0,1fr)_minmax(0,1fr)_minmax(0,1fr)_auto_auto] gap-2 border-b p-2">
<Input v-model="configDataId" class="h-8 min-w-0" placeholder="dataId" @keyup.enter="loadConfigsWithRetry(1)" />
<Input v-model="configGroup" class="h-8 min-w-0" :placeholder="t('nacos.allGroups')" @keyup.enter="loadConfigsWithRetry(1)" />
<Input v-model="configAppName" class="h-8 min-w-0" :placeholder="t('nacos.application')" @keyup.enter="loadConfigsWithRetry(1)" />
<Button size="sm" variant="outline" class="h-8 w-9 px-0" :title="t('nacos.load')" :disabled="configLoading" @click="loadConfigsWithRetry(1)">
<Loader2 v-if="configLoading" class="h-3.5 w-3.5 animate-spin" />
<RefreshCw v-else class="h-3.5 w-3.5" />
@@ -894,16 +897,17 @@ onBeforeUnmount(() => {
</div>
<div v-if="configError" class="border-b px-3 py-2 text-xs text-destructive">{{ configError }}</div>
<div class="min-h-0 flex-1 overflow-auto">
<div class="sticky top-0 z-10 grid grid-cols-[minmax(0,1fr)_128px_84px] border-b bg-muted/70 px-3 py-2 text-[11px] font-medium uppercase tracking-wide text-muted-foreground">
<span>dataID</span>
<span>{{ t("nacos.group") }}</span>
<span>{{ t("nacos.format") }}</span>
<div class="sticky top-0 z-20 grid grid-cols-4 border-b bg-muted px-3 py-2 text-[11px] font-medium uppercase tracking-wide text-muted-foreground shadow-sm">
<span class="truncate pr-3">dataID</span>
<span class="truncate pr-3">{{ t("nacos.group") }}</span>
<span class="truncate pr-3">{{ t("nacos.application") }}</span>
<span class="truncate">{{ t("nacos.format") }}</span>
</div>
<button
v-for="item in configs"
:key="`${item.namespace}:${item.group}:${item.dataId}`"
type="button"
class="grid w-full grid-cols-[minmax(0,1fr)_128px_84px] items-center border-b px-3 py-2.5 text-left text-sm transition-colors hover:bg-accent/50"
class="grid w-full grid-cols-4 items-center border-b px-3 py-2.5 text-left text-sm transition-colors hover:bg-accent/50"
:class="{ 'bg-accent': selectedConfig?.dataId === item.dataId && selectedConfig?.group === item.group }"
@click="selectConfig(item)"
>
@@ -912,6 +916,7 @@ onBeforeUnmount(() => {
<span class="truncate font-medium text-foreground">{{ item.dataId }}</span>
</span>
<span class="truncate pr-3 text-xs text-muted-foreground" :title="item.group || 'DEFAULT_GROUP'">{{ item.group || "DEFAULT_GROUP" }}</span>
<span class="truncate pr-3 text-xs text-muted-foreground" :title="item.appName || '-'">{{ item.appName || "-" }}</span>
<span class="truncate text-xs text-muted-foreground" :title="configFormatLabel(item)">{{ configFormatLabel(item) }}</span>
</button>
<div v-if="!configLoading && configs.length === 0" class="flex h-full items-center justify-center text-sm text-muted-foreground">{{ t("nacos.noConfigs") }}</div>