| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- <!DOCTYPE html>
- <html lang="zh-CN">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>测试去重逻辑</title>
- <style>
- body {
- font-family: Arial, sans-serif;
- max-width: 800px;
- margin: 50px auto;
- padding: 20px;
- }
- button {
- padding: 10px 20px;
- font-size: 16px;
- cursor: pointer;
- margin: 10px 0;
- }
- #result {
- margin-top: 20px;
- padding: 20px;
- background: #f5f5f5;
- border-radius: 4px;
- }
- .log {
- margin: 5px 0;
- padding: 5px;
- background: white;
- border-left: 3px solid #4CAF50;
- }
- .log.duplicate {
- border-left-color: #f44336;
- }
- </style>
- </head>
- <body>
- <h1>文档去重测试</h1>
- <p>这个页面用于测试文档内容去重逻辑是否正常工作。</p>
-
- <div>
- <label>
- Record ID:
- <input type="text" id="recordId" value="请从实际记录中获取" style="width: 300px;">
- </label>
- </div>
-
- <div>
- <label>
- User ID:
- <input type="text" id="userId" value="default-user" style="width: 200px;">
- </label>
- </div>
-
- <button onclick="testDedup()">测试去重逻辑</button>
- <button onclick="clearResult()">清除结果</button>
-
- <div id="result"></div>
- <script>
- async function testDedup() {
- const recordId = document.getElementById('recordId').value;
- const userId = document.getElementById('userId').value;
- const resultDiv = document.getElementById('result');
-
- resultDiv.innerHTML = '<div class="log">开始测试...</div>';
-
- try {
- // 模拟内容数组(完全重复的情况)
- const mockContent = [
- { type: 'heading', level: 1, text: '东河塘油田东河1****区块****DH1-10H****井', id: 'h1' },
- { type: 'paragraph', text: '调剖****地质设计', id: 'p1' },
- { type: 'paragraph', text: '作业类型:调剖', id: 'p2' },
- // 重复内容
- { type: 'heading', level: 1, text: '东河塘油田东河1****区块****DH1-10H****井', id: 'h1-dup' },
- { type: 'paragraph', text: '调剖****地质设计', id: 'p1-dup' },
- { type: 'paragraph', text: '作业类型:调剖', id: 'p2-dup' },
- ];
-
- resultDiv.innerHTML += `<div class="log">原始内容块数量: ${mockContent.length}</div>`;
-
- // 执行去重逻辑
- const uniqueContent = [];
- const seenTexts = new Map();
- let duplicateCount = 0;
-
- mockContent.forEach((block, index) => {
- let key = '';
- if (block.type === 'heading') {
- key = `H${block.level}:${block.text}`;
- } else if (block.type === 'paragraph') {
- key = `P:${block.text}`;
- }
-
- const firstIndex = seenTexts.get(key);
- if (firstIndex === undefined) {
- seenTexts.set(key, uniqueContent.length);
- uniqueContent.push(block);
- resultDiv.innerHTML += `<div class="log">✓ 保留 [${index}]: ${block.text?.substring(0, 50)}...</div>`;
- } else {
- duplicateCount++;
- resultDiv.innerHTML += `<div class="log duplicate">✗ 跳过重复 [${index}]: ${block.text?.substring(0, 50)}... (首次出现在 ${firstIndex})</div>`;
- }
- });
-
- resultDiv.innerHTML += `<div class="log"><strong>去重结果:</strong></div>`;
- resultDiv.innerHTML += `<div class="log">- 原始: ${mockContent.length} 个块</div>`;
- resultDiv.innerHTML += `<div class="log">- 唯一: ${uniqueContent.length} 个块</div>`;
- resultDiv.innerHTML += `<div class="log">- 移除: ${duplicateCount} 个重复块</div>`;
- resultDiv.innerHTML += `<div class="log">- 移除比例: ${((duplicateCount / mockContent.length) * 100).toFixed(1)}%</div>`;
-
- if (duplicateCount === 3) {
- resultDiv.innerHTML += `<div class="log" style="border-left-color: #4CAF50; font-weight: bold;">✓ 去重逻辑工作正常!</div>`;
- } else {
- resultDiv.innerHTML += `<div class="log duplicate" style="font-weight: bold;">✗ 去重逻辑可能有问题</div>`;
- }
-
- } catch (error) {
- resultDiv.innerHTML += `<div class="log duplicate">错误: ${error.message}</div>`;
- }
- }
-
- function clearResult() {
- document.getElementById('result').innerHTML = '';
- }
- </script>
- </body>
- </html>
|