## 配置与环境 - .env.example: 更新环境变量配置 - docker-compose.yml: 完善Docker编排配置 - docker/README.md: 更新Docker文档 ## 后端知识库模块 - endpoints/knowledge.py: 增强知识库API端点 - schemas/knowledge.py: 扩展知识库数据模型 - services/knowledge.py: 完善知识库业务逻辑 - config.py: 优化配置管理 - storage/knowledge/.index.json: 更新知识库索引 ## 前端功能 - api.js: 完善API服务层 - knowledge.js: 优化知识库服务 - onlyoffice.js: 新增OnlyOffice文档服务集成 - TopBar.vue: 优化顶部导航栏 - PoliciesView.vue: 完善策略视图 - AppShellRouteView.vue: 新增应用外壳路由视图 - views/scripts/PoliciesView.js: 优化策略脚本 - policiesPreviewFormatters.js: 新增策略预览格式化工具 ## 样式 - policies-view.css: 完善策略页样式 ## 测试 - api-request.test.mjs: API请求测试 - onlyoffice-service.test.mjs: OnlyOffice服务测试 - policies-preview-formatters.test.mjs: 策略预览格式化测试
70 lines
2.1 KiB
JavaScript
70 lines
2.1 KiB
JavaScript
import assert from 'node:assert/strict'
|
|
|
|
import {
|
|
buildExcelPreviewTable,
|
|
buildPreviewMetaLine,
|
|
buildPreviewSecondaryMetaLine
|
|
} from '../src/views/scripts/policiesPreviewFormatters.js'
|
|
|
|
function testBuildPreviewMetaLineUsesRealDocumentFields() {
|
|
const document = {
|
|
summary: '财务知识库 · XLSX · 10.9 KB',
|
|
time: '2026-05-09 12:30'
|
|
}
|
|
|
|
assert.deepEqual(buildPreviewMetaLine(document), ['财务知识库 · XLSX · 10.9 KB', '2026-05-09 12:30'])
|
|
}
|
|
|
|
function testBuildPreviewSecondaryMetaLineForExcelUsesSubtitleAndStats() {
|
|
const document = {
|
|
previewKind: 'table',
|
|
previewPages: [
|
|
{
|
|
subtitle: '表格内容预览',
|
|
stats: [
|
|
{ label: '工作表数量', value: '4' },
|
|
{ label: '预览行数', value: '7' },
|
|
{ label: '文件大小', value: '10.9 KB' }
|
|
]
|
|
},
|
|
{
|
|
subtitle: '第二页签预览',
|
|
stats: [
|
|
{ label: '工作表数量', value: '4' },
|
|
{ label: '预览行数', value: '3' }
|
|
]
|
|
}
|
|
]
|
|
}
|
|
|
|
assert.deepEqual(buildPreviewSecondaryMetaLine(document, document.previewPages[0]), ['表格内容预览', '工作表数量 4', '预览行数 7'])
|
|
assert.deepEqual(buildPreviewSecondaryMetaLine(document, document.previewPages[1]), ['第二页签预览', '工作表数量 4', '预览行数 3'])
|
|
}
|
|
|
|
function testBuildExcelPreviewTableParsesHeaderAndRows() {
|
|
const page = {
|
|
blocks: [
|
|
{ heading: '第 1 行', lines: ['日期 | 部门 | 金额 | 备注'] },
|
|
{ heading: '第 2 行', lines: ['2026-05-01 | 财务部 | 300 | 差旅'] },
|
|
{ heading: '第 3 行', lines: ['2026-05-02 | 行政部 | 120 | '] }
|
|
]
|
|
}
|
|
|
|
assert.deepEqual(buildExcelPreviewTable(page), {
|
|
headers: ['日期', '部门', '金额', '备注'],
|
|
rows: [
|
|
['2026-05-01', '财务部', '300', '差旅'],
|
|
['2026-05-02', '行政部', '120', '']
|
|
]
|
|
})
|
|
}
|
|
|
|
function run() {
|
|
testBuildPreviewMetaLineUsesRealDocumentFields()
|
|
testBuildPreviewSecondaryMetaLineForExcelUsesSubtitleAndStats()
|
|
testBuildExcelPreviewTableParsesHeaderAndRows()
|
|
console.log('policies preview formatter tests passed')
|
|
}
|
|
|
|
run()
|