feat: 重大功能更新 v1.4.0 - 飞书集成、AI语义相似度、前端优化
主要更新内容: - 🚀 飞书多维表格集成,支持工单数据同步 - 🤖 AI建议与人工描述语义相似度计算 - 🎨 前端UI全面优化,现代化设计 - 📊 智能知识库入库策略(AI准确率<90%使用人工描述) - 🔧 代码重构,模块化架构优化 - 📚 完整文档整合和更新 - 🐛 修复配置导入和数据库字段问题 技术特性: - 使用sentence-transformers进行语义相似度计算 - 快速模式结合TF-IDF和语义方法 - 响应式设计,支持移动端 - 加载状态和动画效果 - 配置化AI准确率阈值
This commit is contained in:
@@ -417,6 +417,10 @@
|
||||
<i class="fas fa-tasks"></i>
|
||||
工单管理
|
||||
</a>
|
||||
<a class="nav-link" href="#feishu-sync" data-tab="feishu-sync">
|
||||
<i class="fas fa-sync"></i>
|
||||
飞书同步
|
||||
</a>
|
||||
<a class="nav-link" href="#conversation-history" data-tab="conversation-history">
|
||||
<i class="fas fa-history"></i>
|
||||
对话历史
|
||||
@@ -1034,6 +1038,181 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 飞书同步标签页 -->
|
||||
<div id="feishu-sync-tab" class="tab-content" style="display: none;">
|
||||
<div class="row mb-4">
|
||||
<div class="col-12">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h5 class="card-title mb-0">
|
||||
<i class="fas fa-sync me-2"></i>飞书同步管理
|
||||
</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<!-- 配置区域 -->
|
||||
<div class="row mb-4">
|
||||
<div class="col-12">
|
||||
<h6 class="text-muted mb-3">飞书配置</h6>
|
||||
<form id="feishuConfigForm">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<div class="mb-3">
|
||||
<label for="appId" class="form-label">应用ID</label>
|
||||
<input type="text" class="form-control" id="appId" placeholder="cli_xxxxxxxxxx">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="mb-3">
|
||||
<label for="appSecret" class="form-label">应用密钥</label>
|
||||
<input type="password" class="form-control" id="appSecret" placeholder="输入应用密钥">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<div class="mb-3">
|
||||
<label for="appToken" class="form-label">应用Token</label>
|
||||
<input type="text" class="form-control" id="appToken" placeholder="XXnEbiCmEaMblSs6FDJcFCqsnIg">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="mb-3">
|
||||
<label for="tableId" class="form-label">表格ID</label>
|
||||
<input type="text" class="form-control" id="tableId" placeholder="tblnl3vJPpgMTSiP">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex gap-2 flex-wrap">
|
||||
<button type="button" class="btn btn-primary" onclick="feishuSync.saveConfig()">
|
||||
<i class="fas fa-save me-1"></i>保存配置
|
||||
</button>
|
||||
<button type="button" class="btn btn-outline-secondary" onclick="feishuSync.testConnection()">
|
||||
<i class="fas fa-plug me-1"></i>测试连接
|
||||
</button>
|
||||
<button type="button" class="btn btn-outline-info" onclick="feishuSync.exportConfig()">
|
||||
<i class="fas fa-download me-1"></i>导出配置
|
||||
</button>
|
||||
<button type="button" class="btn btn-outline-warning" onclick="feishuSync.showImportModal()">
|
||||
<i class="fas fa-upload me-1"></i>导入配置
|
||||
</button>
|
||||
<button type="button" class="btn btn-outline-danger" onclick="feishuSync.resetConfig()">
|
||||
<i class="fas fa-undo me-1"></i>重置配置
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 同步状态 -->
|
||||
<div class="row mb-4">
|
||||
<div class="col-md-4">
|
||||
<div class="card text-center">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title text-primary" id="totalLocalWorkorders">0</h5>
|
||||
<p class="card-text">本地工单总数</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="card text-center">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title text-success" id="syncedWorkorders">0</h5>
|
||||
<p class="card-text">已同步工单</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="card text-center">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title text-warning" id="unsyncedWorkorders">0</h5>
|
||||
<p class="card-text">未同步工单</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 同步操作 -->
|
||||
<div class="row mb-4">
|
||||
<div class="col-12">
|
||||
<h6 class="text-muted mb-3">同步操作</h6>
|
||||
<div class="d-flex gap-2 mb-3">
|
||||
<button class="btn btn-success" onclick="feishuSync.syncFromFeishu()">
|
||||
<i class="fas fa-download me-1"></i>从飞书同步
|
||||
</button>
|
||||
<button class="btn btn-primary" onclick="feishuSync.syncWithAI()">
|
||||
<i class="fas fa-robot me-1"></i>同步+AI建议
|
||||
</button>
|
||||
<button class="btn btn-info" onclick="feishuSync.previewFeishuData()">
|
||||
<i class="fas fa-eye me-1"></i>预览飞书数据
|
||||
</button>
|
||||
<button class="btn btn-secondary" onclick="feishuSync.refreshStatus()">
|
||||
<i class="fas fa-refresh me-1"></i>刷新状态
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label for="syncLimit" class="form-label">同步数量限制:</label>
|
||||
<select class="form-select" id="syncLimit" style="width: auto; display: inline-block;">
|
||||
<option value="10">前10条</option>
|
||||
<option value="20">前20条</option>
|
||||
<option value="50">前50条</option>
|
||||
<option value="100">前100条</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<!-- 同步进度 -->
|
||||
<div class="progress mb-3" id="syncProgress" style="display: none;">
|
||||
<div class="progress-bar progress-bar-striped progress-bar-animated"
|
||||
role="progressbar" style="width: 0%"></div>
|
||||
</div>
|
||||
|
||||
<!-- 同步日志 -->
|
||||
<div class="mt-3">
|
||||
<h6>同步日志</h6>
|
||||
<div id="syncLog" class="bg-light p-3 rounded" style="max-height: 300px; overflow-y: auto;">
|
||||
<div class="text-muted">暂无同步记录</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 预览数据 -->
|
||||
<div class="row" id="previewSection" style="display: none;">
|
||||
<div class="col-12">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h5 class="card-title mb-0">
|
||||
<i class="fas fa-table me-2"></i>飞书数据预览
|
||||
</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-striped" id="previewTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>记录ID</th>
|
||||
<th>TR编号</th>
|
||||
<th>TR描述</th>
|
||||
<th>问题类型</th>
|
||||
<th>来源</th>
|
||||
<th>优先级/状态</th>
|
||||
<th>操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 对话历史标签页 -->
|
||||
<div id="conversation-history-tab" class="tab-content" style="display: none;">
|
||||
<div class="row mb-4">
|
||||
@@ -2256,6 +2435,35 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 飞书配置导入模态框 -->
|
||||
<div class="modal fade" id="importConfigModal" tabindex="-1" aria-labelledby="importConfigModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="importConfigModalLabel">导入配置</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="mb-3">
|
||||
<label for="configJson" class="form-label">配置JSON数据:</label>
|
||||
<textarea class="form-control" id="configJson" rows="10" placeholder="粘贴导出的配置JSON数据..."></textarea>
|
||||
</div>
|
||||
<div class="alert alert-warning">
|
||||
<i class="fas fa-exclamation-triangle me-2"></i>
|
||||
导入配置将覆盖当前所有配置,请谨慎操作!
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">取消</button>
|
||||
<button type="button" class="btn btn-primary" onclick="feishuSync.importConfig()">导入</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 通知容器 -->
|
||||
<div id="notificationContainer" class="position-fixed top-0 end-0 p-3" style="z-index: 1050;"></div>
|
||||
|
||||
<!-- 脚本 -->
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/chart.js@3.9.1/dist/chart.min.js"></script>
|
||||
|
||||
Reference in New Issue
Block a user