Skip to content

Commit 126d7b7

Browse files
xingyan95GreatZPP
andauthored
feat: 多选行交互由shift选中改为拖拽选中 (#1914)
* feat(CodeReview): 支持传入options&暴露清除选中行样式的方法 * chore: 更新版本号 * feat: 多选行交互由shift选中改为拖拽选中 * feat: 更新文档 * feat(CodeReview): 添加边框线 * feat(CodeReview): 抛出选中事件 * feat(CodeReview): 优化边框线 * fix(CodeReview): 修复单行点击抛出数据错误问题 --------- Co-authored-by: GreatZP <greatzp@greatzp.cn>
1 parent 7c32038 commit 126d7b7

File tree

7 files changed

+306
-121
lines changed

7 files changed

+306
-121
lines changed

packages/devui-vue/devui/code-review/src/code-review.scss

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,10 @@
183183
content: '';
184184
}
185185

186+
.d2h-code-linenumber {
187+
border-right: 2px solid transparent;
188+
}
189+
186190
.d2h-code-line-ctn {
187191
word-break: break-all;
188192
word-wrap: break-word !important;
@@ -222,6 +226,11 @@
222226
position: static;
223227
display: table-cell;
224228
}
229+
230+
.d-code-left:nth-of-type(2) > .d2h-code-side-line,
231+
.d-code-right:nth-of-type(4) > .d2h-code-side-line {
232+
border-left: 2px solid transparent;
233+
}
225234
}
226235

227236
.d2h-file-diff {
@@ -269,6 +278,15 @@
269278
background-color: #daf4ae; // 增加行中的number
270279
}
271280
}
281+
282+
&.d2h-code-linenumber {
283+
border-right: 2px solid #fe7300;
284+
}
285+
286+
&.d-code-left:nth-of-type(2) > .d2h-code-side-line,
287+
&.d-code-right:nth-of-type(4) > .d2h-code-side-line {
288+
border-left: 2px solid #fe7300;
289+
}
272290
}
273291
}
274292

packages/devui-vue/devui/code-review/src/code-review.tsx

Lines changed: 27 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/* @jsxImportSource vue */
2-
import { defineComponent, onMounted, provide, toRefs, onBeforeUnmount } from 'vue';
2+
import { defineComponent, onMounted, provide, toRefs } from 'vue';
33
import type { SetupContext } from 'vue';
44
import CodeReviewHeader from './components/code-review-header';
55
import { CommentIcon } from './components/code-review-icons';
@@ -14,27 +14,40 @@ import './code-review.scss';
1414
export default defineComponent({
1515
name: 'DCodeReview',
1616
props: codeReviewProps,
17-
emits: ['foldChange', 'addComment', 'afterViewInit', 'contentRefresh'],
17+
emits: ['foldChange', 'addComment', 'afterViewInit', 'contentRefresh', 'afterCheckLines'],
1818
setup(props: CodeReviewProps, ctx: SetupContext) {
1919
const ns = useNamespace('code-review');
2020
const { diffType } = toRefs(props);
2121
const { renderHtml, reviewContentRef, diffFile, onContentClick } = useCodeReview(props, ctx);
2222
const { isFold, toggleFold } = useCodeReviewFold(props, ctx);
23-
const { commentLeft, commentTop,
24-
mouseEvent, onCommentMouseLeave,
25-
onCommentIconClick, onCommentKeyDown,
26-
unCommentKeyDown, insertComment,
27-
removeComment, updateCheckedLineClass, clearCheckedLines } = useCodeReviewComment(reviewContentRef, props, ctx);
23+
const {
24+
commentLeft,
25+
commentTop,
26+
mouseEvent,
27+
onCommentMouseLeave,
28+
onCommentIconClick,
29+
insertComment,
30+
removeComment,
31+
updateCheckedLineClass,
32+
clearCheckedLines,
33+
} = useCodeReviewComment(reviewContentRef, props, ctx);
2834

2935
onMounted(() => {
30-
ctx.emit('afterViewInit', { toggleFold, insertComment, removeComment, updateCheckedLineClass, clearCheckedLines });
31-
onCommentKeyDown();
36+
ctx.emit('afterViewInit', {
37+
toggleFold,
38+
insertComment,
39+
removeComment,
40+
updateCheckedLineClass,
41+
clearCheckedLines,
42+
});
3243
});
33-
// 销毁
34-
onBeforeUnmount(() => {
35-
unCommentKeyDown();
44+
provide(CodeReviewInjectionKey, {
45+
diffType,
46+
reviewContentRef,
47+
diffInfo: diffFile.value[0],
48+
isFold,
49+
rootCtx: ctx,
3650
});
37-
provide(CodeReviewInjectionKey, { diffType, reviewContentRef, diffInfo: diffFile.value[0], isFold, rootCtx: ctx });
3851

3952
return () => (
4053
<div class={ns.b()}>
@@ -59,8 +72,7 @@ export default defineComponent({
5972
class="comment-icon"
6073
style={{ left: commentLeft.value + 'px', top: commentTop.value + 'px' }}
6174
onClick={onCommentIconClick}
62-
onMouseleave={onCommentMouseLeave}
63-
>
75+
onMouseleave={onCommentMouseLeave}>
6476
<CommentIcon />
6577
</div>
6678
)}

0 commit comments

Comments
 (0)