Skip to content

Commit c47ee45

Browse files
author
Taois
committed
feat:聚搜功能
1 parent edd05c2 commit c47ee45

File tree

2 files changed

+49
-5
lines changed

2 files changed

+49
-5
lines changed

dashboard/src/components/Header.vue

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
</div>
2121

2222
<!-- 中间搜索框 -->
23-
<div class="header-center">
23+
<div class="header-center" v-if="searchAggregationEnabled">
2424
<a-input-search
2525
placeholder="搜索内容..."
2626
enter-button="搜索"
@@ -72,16 +72,45 @@
7272
</template>
7373

7474
<script>
75-
import {defineComponent, ref} from 'vue';
75+
import {defineComponent, ref, computed} from 'vue';
7676
import {Message} from '@arco-design/web-vue';
7777
7878
export default defineComponent({
7979
components: {},
8080
setup() {
8181
const showConfirmModal = ref(false);
8282
83+
// 从localStorage获取聚搜功能状态
84+
const getSearchAggregationStatus = () => {
85+
try {
86+
const appSettings = localStorage.getItem('appSettings');
87+
if (appSettings) {
88+
const settings = JSON.parse(appSettings);
89+
return settings.searchAggregation || false;
90+
}
91+
} catch (error) {
92+
console.error('获取聚搜状态失败:', error);
93+
}
94+
return false;
95+
};
96+
97+
// 响应式的聚搜状态
98+
const searchAggregationEnabled = ref(getSearchAggregationStatus());
99+
100+
// 监听localStorage变化
101+
const updateSearchAggregationStatus = () => {
102+
searchAggregationEnabled.value = getSearchAggregationStatus();
103+
};
104+
105+
// 监听storage事件
106+
window.addEventListener('storage', updateSearchAggregationStatus);
107+
108+
// 定期检查状态变化(用于同一页面内的状态更新)
109+
const checkInterval = setInterval(updateSearchAggregationStatus, 1000);
110+
83111
return {
84-
showConfirmModal
112+
showConfirmModal,
113+
searchAggregationEnabled
85114
};
86115
},
87116
methods: {

dashboard/src/views/Settings.vue

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -784,7 +784,7 @@
784784
</div>
785785
</div>
786786
<div class="setting-value">
787-
<span class="value-text">已关闭</span>
787+
<span class="value-text">{{ settings.searchAggregation ? '已开启' : '已关闭' }}</span>
788788
<icon-right class="arrow-icon" />
789789
</div>
790790
</div>
@@ -934,7 +934,8 @@ const settings = reactive({
934934
autoLive: false,
935935
secureDns: false,
936936
cspBypass: true, // CSP绕过开关
937-
referrerPolicy: 'no-referrer' // 默认referrer策略
937+
referrerPolicy: 'no-referrer', // 默认referrer策略
938+
searchAggregation: false // 聚搜功能开关,默认关闭
938939
})
939940
940941
// 播放器选择对话框状态
@@ -1346,6 +1347,17 @@ const handleCSPBypassToggle = () => {
13461347
}
13471348
}
13481349
1350+
// 处理聚搜功能开关
1351+
const handleSearchAggregationToggle = () => {
1352+
settings.searchAggregation = !settings.searchAggregation
1353+
1354+
if (settings.searchAggregation) {
1355+
Message.success('已开启聚搜功能')
1356+
} else {
1357+
Message.info('已关闭聚搜功能')
1358+
}
1359+
}
1360+
13491361
// 处理Referrer策略选择
13501362
const handleReferrerPolicySelect = () => {
13511363
// 使用导入的策略列表
@@ -1405,6 +1417,9 @@ const handleSettingClick = (settingKey) => {
14051417
case 'referrer-policy':
14061418
handleReferrerPolicySelect()
14071419
break
1420+
case 'search-aggregation':
1421+
handleSearchAggregationToggle()
1422+
break
14081423
case 'backup':
14091424
backupRestoreVisible.value = true
14101425
break

0 commit comments

Comments
 (0)