@@ -458,9 +458,8 @@ function generateHtmlReport(diffs: ParagraphDiff[], title: string): string {
458458 // 只统计左栏的变更项,避免重复统计
459459 const leftColumnItems = document.querySelector('.column:first-child').querySelectorAll('.diff-item');
460460 leftColumnItems.forEach((item, index) => {
461- // 只统计真正有变更的内容(新增、删除、修改)
462- if (item.classList.contains('added') ||
463- item.classList.contains('removed') ||
461+ // 只统计左栏的变更项(删除和修改)
462+ if (item.classList.contains('removed') ||
464463 item.classList.contains('modified')) {
465464 changes.push(index);
466465 }
@@ -502,7 +501,9 @@ function generateHtmlReport(diffs: ParagraphDiff[], title: string): string {
502501 const rightColumnItem = document.querySelector('.column:last-child').querySelectorAll('.diff-item')[targetIndex];
503502
504503 if (leftColumnItem && rightColumnItem) {
504+ // 同时滚动左右两栏到对应位置
505505 leftColumnItem.scrollIntoView({ behavior: 'smooth', block: 'center' });
506+ rightColumnItem.scrollIntoView({ behavior: 'smooth', block: 'center' });
506507 leftColumnItem.classList.add('highlight');
507508 rightColumnItem.classList.add('highlight');
508509
@@ -565,20 +566,25 @@ function generateHtmlReport(diffs: ParagraphDiff[], title: string): string {
565566 const originalContent = diffs
566567 . map ( ( diff , index ) => {
567568 let content = '' ;
569+ let badge = '' ;
568570 const typeClass = diff . type ;
569571
570572 if ( diff . type === 'added' ) {
571573 // 新增的内容在左侧显示为空占位符
572574 content = '<div class="diff-paragraph empty-line"></div>' ;
573- } else if ( diff . type === 'removed' || diff . type === 'modified' ) {
575+ } else if ( diff . type === 'removed' ) {
574576 content = `<div class="diff-paragraph">${ escapeHtml ( diff . original || '' ) } </div>` ;
577+ badge = '<span class="diff-badge badge-removed">删除</span>' ;
578+ } else if ( diff . type === 'modified' ) {
579+ content = `<div class="diff-paragraph">${ escapeHtml ( diff . original || '' ) } </div>` ;
580+ badge = '<span class="diff-badge badge-removed">删除</span>' ;
575581 } else {
576582 content = `<div class="diff-paragraph">${ escapeHtml ( diff . original || '' ) } </div>` ;
577583 }
578584
579585 return `
580586 <div class="diff-item ${ typeClass } " data-index="${ index } ">
581- ${ diff . type !== 'unchanged' ? `<span class="diff- badge badge- ${ diff . type } "> ${ diff . type === 'added' ? '新增' : diff . type === 'removed' ? '删除' : '修改' } </span>` : '' }
587+ ${ badge }
582588 ${ content }
583589 </div>
584590 ` ;
@@ -589,20 +595,25 @@ function generateHtmlReport(diffs: ParagraphDiff[], title: string): string {
589595 const modifiedContent = diffs
590596 . map ( ( diff , index ) => {
591597 let content = '' ;
598+ let badge = '' ;
592599 const typeClass = diff . type ;
593600
594601 if ( diff . type === 'removed' ) {
595602 // 删除的内容在右侧显示为空占位符
596603 content = '<div class="diff-paragraph empty-line"></div>' ;
597- } else if ( diff . type === 'added' || diff . type === 'modified' ) {
604+ } else if ( diff . type === 'added' ) {
605+ content = `<div class="diff-paragraph">${ escapeHtml ( diff . modified || '' ) } </div>` ;
606+ badge = '<span class="diff-badge badge-added">新增</span>' ;
607+ } else if ( diff . type === 'modified' ) {
598608 content = `<div class="diff-paragraph">${ escapeHtml ( diff . modified || '' ) } </div>` ;
609+ badge = '<span class="diff-badge badge-added">新增</span>' ;
599610 } else {
600611 content = `<div class="diff-paragraph">${ escapeHtml ( diff . modified || '' ) } </div>` ;
601612 }
602613
603614 return `
604615 <div class="diff-item ${ typeClass } " data-index="${ index } ">
605- ${ diff . type !== 'unchanged' ? `<span class="diff- badge badge- ${ diff . type } "> ${ diff . type === 'added' ? '新增' : diff . type === 'removed' ? '删除' : '修改' } </span>` : '' }
616+ ${ badge }
606617 ${ content }
607618 </div>
608619 ` ;
0 commit comments