From 163fff07ddf479c91463856ca1b3e50a9e3a2d84 Mon Sep 17 00:00:00 2001 From: Gzx1999 Date: Fri, 1 Dec 2023 15:18:45 +0800 Subject: [PATCH] support installed package search --- .../views/Cluster/MachineDetail/Package.vue | 27 +++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/frontend/src/views/Cluster/MachineDetail/Package.vue b/frontend/src/views/Cluster/MachineDetail/Package.vue index 7619209..10f074b 100644 --- a/frontend/src/views/Cluster/MachineDetail/Package.vue +++ b/frontend/src/views/Cluster/MachineDetail/Package.vue @@ -9,7 +9,7 @@
+ :fetch-suggestions="querySuggestions" placeholder="请输入内容"> 搜索 安装 卸载 @@ -50,7 +50,7 @@ import { ElMessage } from 'element-plus'; import AuthButton from "@/components/AuthButton.vue"; -import { getRepos } from "@/request/cluster"; +import { getRepos, getInstalledPackages } from "@/request/cluster"; import { RespCodeOK } from "@/request/request"; const route = useRoute() @@ -59,10 +59,12 @@ const route = useRoute() const machineID = ref(route.params.uuid) const allRepos = ref([]) +const allPackages = ref([]) const display = ref(false) const packageName = ref("") const rpmInfo = ref({}) + const action = ref("") const result = ref("") @@ -91,8 +93,29 @@ onMounted(() => { }).catch((err: any) => { ElMessage.error("failed to get machine repo info:" + err.msg) }) + + getInstalledPackages({ uuid: machineID.value }).then((resp: any) => { + if (resp.code === RespCodeOK) { + allPackages.value = resp.data.rpm_all + } else { + ElMessage.error("failed to get machine installed packages info: " + resp.msg) + } + }).catch((err: any) => { + ElMessage.error("failed to get installed packages info:" + err.msg) + }) }) +function querySuggestions(query: string, callback: Function) { + let result: any[] = [] + allPackages.value.forEach((name: string) => { + if (name.indexOf(query) === 0) { + result.push({ + "value": name, + }) + } + }) + callback(result) +} -- Gitee