Skip to content

Commit e35cb4f

Browse files
committed
refactor(web): 将前端JavaScript代码模块化分离
- 移除index.html中内联的JavaScript代码 - 创建独立的JavaScript文件用于不同功能模块 - 新增config.js用于存储API基础URL配置 - 分离文件管理、组管理、标签管理等模块到单独文件 - 添加utils.js工具函数文件 - 实现main.js作为主入口文件处理页面初始化逻辑 - 更新HTML引入新的JavaScript文件结构 - 优化Tab切换和自动搜索功能实现方式 - 重构表单重置逻辑到各自管理模块中 - 提高代码可维护性和可读性
1 parent 350229e commit e35cb4f

11 files changed

Lines changed: 2688 additions & 2703 deletions

File tree

file_classification_webapi/static/api.js

Lines changed: 0 additions & 2584 deletions
This file was deleted.

file_classification_webapi/static/index.html

Lines changed: 10 additions & 119 deletions
Original file line numberDiff line numberDiff line change
@@ -317,124 +317,15 @@ <h2>组关系管理</h2>
317317
</div>
318318
</div>
319319

320-
<script src="api.js"></script>
321-
<script>
322-
// Tab切换功能
323-
document.addEventListener('DOMContentLoaded', function() {
324-
const navLinks = document.querySelectorAll('.nav-link');
325-
const tabContents = document.querySelectorAll('.tab-content');
326-
327-
// 存储已打开的标签页
328-
const openedTabs = new Set();
329-
330-
navLinks.forEach(link => {
331-
link.addEventListener('click', function(e) {
332-
e.preventDefault();
333-
334-
const target = this.getAttribute('data-target');
335-
336-
// 添加到已打开标签页集合
337-
openedTabs.add(target);
338-
339-
// 隐藏所有tab内容
340-
tabContents.forEach(content => {
341-
content.style.display = 'none';
342-
});
343-
344-
// 移除所有链接的活动状态
345-
navLinks.forEach(nav => {
346-
nav.classList.remove('active');
347-
});
348-
349-
// 显示当前tab内容
350-
document.getElementById(target).style.display = 'block';
351-
352-
// 设置当前链接为活动状态
353-
this.classList.add('active');
354-
355-
// 页面刚打开时自动搜索一次
356-
autoSearch(target);
357-
});
358-
});
359-
360-
// 默认显示第一个tab并自动搜索
361-
if (tabContents.length > 0) {
362-
tabContents[0].style.display = 'block';
363-
navLinks[0].classList.add('active');
364-
openedTabs.add(navLinks[0].getAttribute('data-target'));
365-
366-
// 自动执行首次搜索
367-
autoSearch(navLinks[0].getAttribute('data-target'));
368-
}
369-
});
370-
371-
// 根据当前tab自动执行搜索
372-
function autoSearch(tabName) {
373-
switch(tabName) {
374-
case 'files':
375-
listFilesByFilter();
376-
break;
377-
case 'groups':
378-
listGroupsByFilter();
379-
break;
380-
case 'tags':
381-
listTagsByFilter();
382-
break;
383-
case 'file-groups':
384-
listFileGroupsByFilter();
385-
break;
386-
case 'group-tags':
387-
listGroupTagsByFilter();
388-
break;
389-
case 'group-relations':
390-
listGroupRelationsByFilter();
391-
break;
392-
}
393-
}
394-
395-
// 重置文件搜索表单
396-
function resetFileFilter() {
397-
document.getElementById('file-id').value = '';
398-
document.getElementById('file-type').value = '';
399-
document.getElementById('file-path').value = '';
400-
listFilesByFilter(); // 重置后重新搜索
401-
}
402-
403-
// 重置组搜索表单
404-
function resetGroupFilter() {
405-
document.getElementById('group-id').value = '';
406-
document.getElementById('group-name').value = '';
407-
listGroupsByFilter(); // 重置后重新搜索
408-
}
409-
410-
// 重置标签搜索表单
411-
function resetTagFilter() {
412-
document.getElementById('tag-id').value = '';
413-
document.getElementById('tag-name').value = '';
414-
listTagsByFilter(); // 重置后重新搜索
415-
}
416-
417-
// 重置文件组关联搜索表单
418-
function resetFileGroupFilter() {
419-
document.getElementById('file-group-file-id').value = '';
420-
document.getElementById('file-group-group-id').value = '';
421-
listFileGroupsByFilter(); // 重置后重新搜索
422-
}
423-
424-
// 重置组标签关联搜索表单
425-
function resetGroupTagFilter() {
426-
document.getElementById('group-tag-group-id').value = '';
427-
document.getElementById('group-tag-tag-id').value = '';
428-
listGroupTagsByFilter(); // 重置后重新搜索
429-
}
430-
431-
// 重置组关系搜索表单
432-
function resetGroupRelationFilter() {
433-
document.getElementById('group-relation-first-id').value = '';
434-
document.getElementById('group-relation-second-id').value = '';
435-
document.getElementById('group-relation-type').value = '';
436-
listGroupRelationsByFilter(); // 重置后重新搜索
437-
}
438-
</script>
320+
<!-- 引入分离后的JavaScript文件 -->
321+
<script src="js/config.js"></script>
322+
<script src="js/utils.js"></script>
323+
<script src="js/fileManager.js"></script>
324+
<script src="js/groupManager.js"></script>
325+
<script src="js/tagManager.js"></script>
326+
<script src="js/fileGroupManager.js"></script>
327+
<script src="js/groupTagManager.js"></script>
328+
<script src="js/groupRelationManager.js"></script>
329+
<script src="js/main.js"></script>
439330
</body>
440331
</html>
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
// API基础URL
2+
const BASE_URL = 'http://127.0.0.1:8082';
3+
4+
// 导出配置
5+
window.APP_CONFIG = {
6+
BASE_URL
7+
};

0 commit comments

Comments
 (0)