diff --git a/platform/frontend/logs.html b/platform/frontend/logs.html
index 44afb65..557c87a 100644
--- a/platform/frontend/logs.html
+++ b/platform/frontend/logs.html
@@ -1,167 +1,230 @@
-
-
-
-
-
-
-
-
-
-
📄 系统日志
-
-
-
-
-
-
-
- 加载日志
-
-
{{ logContent }}
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
+ function getStatusText(status) {
+ var statusMap = {
+ pending: '待处理',
+ review: '待审查',
+ ready: '待发布',
+ published: '已发布'
+ };
+ return statusMap[status] || status;
+ }
+
+ function formatDate(dateStr) {
+ if (!dateStr || dateStr === '-') return '-';
+ var date = new Date(dateStr);
+ return date.toLocaleString('zh-CN', {
+ year: 'numeric', month: '2-digit', day: '2-digit',
+ hour: '2-digit', minute: '2-digit'
+ });
+ }
+
+ function filterTopics(filter) {
+ var rows = document.querySelectorAll('tbody tr');
+ rows.forEach(function(row) {
+ if (filter === 'all') {
+ row.style.display = '';
+ } else {
+ var status = row.getAttribute('data-status');
+ row.style.display = (status === filter) ? '' : 'none';
+ }
+ });
+ }
+
+ function toggleSelectAll(checkbox) {
+ var checkboxes = document.querySelectorAll('tbody input[type="checkbox"]');
+ checkboxes.forEach(function(cb) { cb.checked = checkbox.checked; });
+ }
+
+ function toggleSelectTopic(id) {
+ console.log('选中选题:', id);
+ }
+
+ function previewTopic(id) { alert('预览选题: ' + id); }
+ function createTopic(id) { alert('创作选题: ' + id); }
+ function optimizeTopic(id) { alert('优化选题: ' + id); }
+ function publishTopic(id) { alert('发布选题: ' + id); }
+ function deleteTopic(id) {
+ if (confirm('确定删除该选题?删除后无法恢复。')) {
+ alert('删除选题: ' + id);
+ }
+ }
+
\ No newline at end of file
diff --git a/platform/frontend/topics.html b/platform/frontend/topics.html
index d0fe76d..8821862 100644
--- a/platform/frontend/topics.html
+++ b/platform/frontend/topics.html
@@ -1,214 +1,230 @@
-
-
-
宇之然内容创作平台 - 选题管理
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
宇之然内容创作平台 - 选题管理
+
-
-
-
-
-
-
-
-
-
-
-
📋 选题管理
-
-
-
- 🔄 批量刷新
- ▶ 批量创作
- 🔍 批量优化
- 已选 {{ selectedTopicIds.length }} 项
-
-
-
- 全部 ({{ topics.length }})
- 待处理 ({{ countByStatus('待处理') }})
- 待审查 ({{ countByStatus('待审查') }})
- 待发布 ({{ countByStatus('待发布') }})
- 已发布 ({{ countByStatus('已发布') }})
-
-
-
-
-
-
-
-
-
- {{ scope.row.priority_score }}
-
-
-
-
-
-
- {{ scope.row.status }}
-
-
-
-
-
-
-
-
- {{ formatDate(scope.row.created_at) }}
- {{ scope.row.generated_at ? formatDate(scope.row.generated_at) : '-' }}
- {{ scope.row.published_at ? formatDate(scope.row.published_at) : '-' }}
- {{ formatDate(scope.row.updated_at) }}
-
-
-
- 预览
- 创作
- 审查
- 发布
- 删除
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
+ function getStatusText(status) {
+ var statusMap = {
+ pending: '待处理',
+ review: '待审查',
+ ready: '待发布',
+ published: '已发布'
+ };
+ return statusMap[status] || status;
+ }
+
+ function formatDate(dateStr) {
+ if (!dateStr || dateStr === '-') return '-';
+ var date = new Date(dateStr);
+ return date.toLocaleString('zh-CN', {
+ year: 'numeric', month: '2-digit', day: '2-digit',
+ hour: '2-digit', minute: '2-digit'
+ });
+ }
+
+ function filterTopics(filter) {
+ var rows = document.querySelectorAll('tbody tr');
+ rows.forEach(function(row) {
+ if (filter === 'all') {
+ row.style.display = '';
+ } else {
+ var status = row.getAttribute('data-status');
+ row.style.display = (status === filter) ? '' : 'none';
+ }
+ });
+ }
+
+ function toggleSelectAll(checkbox) {
+ var checkboxes = document.querySelectorAll('tbody input[type="checkbox"]');
+ checkboxes.forEach(function(cb) { cb.checked = checkbox.checked; });
+ }
+
+ function toggleSelectTopic(id) {
+ console.log('选中选题:', id);
+ }
+
+ function previewTopic(id) { alert('预览选题: ' + id); }
+ function createTopic(id) { alert('创作选题: ' + id); }
+ function optimizeTopic(id) { alert('优化选题: ' + id); }
+ function publishTopic(id) { alert('发布选题: ' + id); }
+ function deleteTopic(id) {
+ if (confirm('确定删除该选题?删除后无法恢复。')) {
+ alert('删除选题: ' + id);
+ }
+ }
+
\ No newline at end of file
diff --git a/platform/frontend/users.html b/platform/frontend/users.html
index 3916e87..a2d1833 100644
--- a/platform/frontend/users.html
+++ b/platform/frontend/users.html
@@ -1,175 +1,230 @@
-
-
-
宇之然内容创作平台 - 用户管理
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
宇之然内容创作平台 - 用户管理
+
-
-
-
-
-
-
-
-
-
-
👥 用户管理
-
-
用户列表
- + 新建用户
-
-
-
-
-
-
- {{ scope.row.role }}
-
-
- {{ formatDate(scope.row.created_at) }}
-
-
- 删除
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
+ function getStatusText(status) {
+ var statusMap = {
+ pending: '待处理',
+ review: '待审查',
+ ready: '待发布',
+ published: '已发布'
+ };
+ return statusMap[status] || status;
+ }
+
+ function formatDate(dateStr) {
+ if (!dateStr || dateStr === '-') return '-';
+ var date = new Date(dateStr);
+ return date.toLocaleString('zh-CN', {
+ year: 'numeric', month: '2-digit', day: '2-digit',
+ hour: '2-digit', minute: '2-digit'
+ });
+ }
+
+ function filterTopics(filter) {
+ var rows = document.querySelectorAll('tbody tr');
+ rows.forEach(function(row) {
+ if (filter === 'all') {
+ row.style.display = '';
+ } else {
+ var status = row.getAttribute('data-status');
+ row.style.display = (status === filter) ? '' : 'none';
+ }
+ });
+ }
+
+ function toggleSelectAll(checkbox) {
+ var checkboxes = document.querySelectorAll('tbody input[type="checkbox"]');
+ checkboxes.forEach(function(cb) { cb.checked = checkbox.checked; });
+ }
+
+ function toggleSelectTopic(id) {
+ console.log('选中选题:', id);
+ }
+
+ function previewTopic(id) { alert('预览选题: ' + id); }
+ function createTopic(id) { alert('创作选题: ' + id); }
+ function optimizeTopic(id) { alert('优化选题: ' + id); }
+ function publishTopic(id) { alert('发布选题: ' + id); }
+ function deleteTopic(id) {
+ if (confirm('确定删除该选题?删除后无法恢复。')) {
+ alert('删除选题: ' + id);
+ }
+ }
+
\ No newline at end of file