Skip to content

Commit

Permalink
optimize: file remote control and file search indies. (#377)
Browse files Browse the repository at this point in the history
  • Loading branch information
chivehao authored Jul 17, 2023
1 parent 96199f3 commit 5419658
Show file tree
Hide file tree
Showing 13 changed files with 413 additions and 112 deletions.
9 changes: 9 additions & 0 deletions CHANGELOG.MD
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,15 @@

更新日志文档,版本顺序从新到旧,最新版本在最前(上)面。

# 0.4.5

## 优化

- 服务端初始化系统配置添加远端开启开关
- 服务端内置搜索引擎不构建文件索引
- 控制台根据是否开启远端配置控制是否展示文件推送和拉取操作按钮
- 控制台全局搜索组件去掉文件搜索

# 0.4.4

## 问题修复
Expand Down
124 changes: 29 additions & 95 deletions console/src/components/global-search/GlobalSearchDialog.vue
Original file line number Diff line number Diff line change
@@ -1,17 +1,9 @@
<script setup lang="ts">
import { ref, nextTick, computed } from 'vue';
import { apiClient } from '@/utils/api-client';
import { FileHint, SubjectHint } from '@runikaros/api-client';
import { SubjectHint } from '@runikaros/api-client';
import { useRouter } from 'vue-router';
import {
ElMessage,
ElDialog,
ElInput,
ElSelect,
ElOption,
ElTabs,
ElTabPane,
} from 'element-plus';
import { ElMessage, ElDialog, ElInput } from 'element-plus';
const props = withDefaults(
defineProps<{
Expand Down Expand Up @@ -41,40 +33,24 @@ const dialogVisible = computed({
});
const search = ref({
type: 'SUBJECT',
keyword: '',
});
const subjectHits = ref<SubjectHint[]>();
const fileHits = ref<FileHint[]>();
const searchByKeyword = async () => {
if (!search.value.keyword) {
ElMessage.warning('请输入值进行查询');
return;
}
const type = search.value.type;
if ('SUBJECT' === type) {
const { data } = await apiClient.indices.searchSubject({
keyword: search.value.keyword,
limit: 10,
});
if (!data.hits || data.hits.length === 0) {
ElMessage.warning('未查询到条目数据');
}
subjectHits.value = data.hits;
}
if ('FILE' === type) {
const { data } = await apiClient.indices.searchFile({
keyword: search.value.keyword,
limit: 10,
});
if (!data.hits || data.hits.length === 0) {
ElMessage.warning('未查询到文件数据');
}
fileHits.value = data.hits;
const { data } = await apiClient.indices.searchSubject({
keyword: search.value.keyword,
limit: 10,
});
if (!data.hits || data.hits.length === 0) {
ElMessage.warning('未查询到条目数据');
}
subjectHits.value = data.hits;
};
const toDetailPage = (url: string) => {
Expand All @@ -91,12 +67,6 @@ const onOpened = () => {
searchInputRef.value.focus();
});
};
const activeTab = ref('SUBJECT');
const onselectionchange = (val: string) => {
activeTab.value = val;
};
</script>

<template>
Expand All @@ -115,70 +85,34 @@ const onselectionchange = (val: string) => {
v-model="search.keyword"
style="width: 100%"
size="large"
placeholder="请输入关键词,回车搜索。"
placeholder="请输入条目关键词,回车搜索。"
@keydown.enter="searchByKeyword"
>
<template #prepend>
<el-select
v-model="search.type"
style="width: 80px"
size="large"
@change="onselectionchange"
>
<el-option label="条目" value="SUBJECT" />
<el-option label="文件" value="FILE" />
</el-select>
</template>
<!-- <template #append>
<el-button :icon="Search" @click="searchByKeyword" />
</template> -->
</el-input>
</template>

<el-tabs v-model="activeTab">
<el-tab-pane label="条目" name="SUBJECT">
<ul v-if="subjectHits && subjectHits.length > 0" class="ik-content-ul">
<li
v-for="subjectHit in subjectHits"
:key="subjectHit.id"
class="ik-content-ul-li"
tabindex="0"
@keydown.enter="
toDetailPage('/subjects/subject/details/' + subjectHit.id)
"
@click="toDetailPage('/subjects/subject/details/' + subjectHit.id)"
>
<span class="ik-subject-name">
<span>{{ subjectHit.name }} </span>
<span class="grey">{{ subjectHit.nameCn }}</span>
</span>
</li>
</ul>

<span v-else> 暂无数据 </span>
</el-tab-pane>
<el-tab-pane label="文件" name="FILE">
<ul v-if="fileHits && fileHits.length > 0" class="ik-content-ul">
<li
v-for="fileHit in fileHits"
:key="fileHit.id"
class="ik-content-ul-li"
tabindex="0"
@keydown.enter="
toDetailPage('/files?searchFileName=' + fileHit.name)
"
@click="toDetailPage('/files?searchFileName=' + fileHit.name)"
>
<span class="ik-subject-name">
<span>{{ fileHit.name }} </span>
<span class="grey">{{ fileHit.originalName }}</span>
</span>
</li>
</ul>

<span v-else> 暂无数据 </span>
</el-tab-pane>
</el-tabs>
<ul v-if="subjectHits && subjectHits.length > 0" class="ik-content-ul">
<li
v-for="subjectHit in subjectHits"
:key="subjectHit.id"
class="ik-content-ul-li"
tabindex="0"
@keydown.enter="
toDetailPage('/subjects/subject/details/' + subjectHit.id)
"
@click="toDetailPage('/subjects/subject/details/' + subjectHit.id)"
>
<span class="ik-subject-name">
<span>{{ subjectHit.name }} </span>
<span class="grey">{{ subjectHit.nameCn }}</span>
</span>
</li>
</ul>

<span v-else> 暂无数据 </span>

<template #footer>
<span> [Tab]-下一个 &nbsp; [Shift+Tab]-上一个 &nbsp; [Enter]-确认</span>
Expand Down
Loading

0 comments on commit 5419658

Please sign in to comment.