Skip to content

Commit 20101fe

Browse files
authored
Merge pull request #1888 from DevCloudFE/dev
chore: update main
2 parents 8651e8a + b772e49 commit 20101fe

File tree

13 files changed

+617
-35
lines changed

13 files changed

+617
-35
lines changed
Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1+
/* @jsxImportSource vue */
12
import { defineComponent } from 'vue';
23
import type { SetupContext } from 'vue';
34
import { codeEditorProps, CodeEditorProps } from './code-editor-types';
45
import { useCodeEditor } from './composables/use-code-editor';
56
import './code-editor.scss';
67

78
export default defineComponent({
8-
name: 'DCodeEditor',
9-
props: codeEditorProps,
10-
emits: ['update:modelValue', 'afterEditorInit', 'click'],
11-
setup(props: CodeEditorProps, ctx: SetupContext) {
12-
const { editorEl } = useCodeEditor(props, ctx);
13-
14-
return () => <div ref={editorEl} class="devui-code-editor"></div>;
15-
}
9+
name: 'DCodeEditor',
10+
props: codeEditorProps,
11+
emits: ['update:modelValue', 'afterEditorInit', 'click'],
12+
setup(props: CodeEditorProps, ctx: SetupContext) {
13+
const { editorEl } = useCodeEditor(props, ctx);
14+
return () => <div ref={editorEl} class="devui-code-editor"></div>;
15+
}
1616
});

packages/devui-vue/devui/code-review/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,6 @@ export default {
99
category: '演进中',
1010
status: '100%',
1111
install(app: App): void {
12-
app.component(CodeReview.name, CodeReview);
12+
app.component(CodeReview.name as string, CodeReview);
1313
},
1414
};

packages/devui-vue/devui/code-review/src/code-review-types.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ export const codeReviewProps = {
3030
type: Boolean,
3131
default: true,
3232
},
33+
allowChecked: {
34+
type: Boolean,
35+
default: false,
36+
},
3337
allowExpand: {
3438
type: Boolean,
3539
default: true,

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

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,53 @@
223223
display: table-cell;
224224
}
225225
}
226+
227+
.d2h-file-diff {
228+
// 单栏
229+
.comment-checked {
230+
&.d2h-cntx {
231+
background-color: #fff8c5; // 通常选中
232+
}
233+
234+
&.d2h-del {
235+
background-color: #ffe5b4; // 删除行选中
236+
237+
&.d2h-code-linenumber {
238+
background-color: #ffc89d; // 删除行中的number
239+
}
240+
}
241+
242+
&.d2h-ins {
243+
background-color: #d1f1a8; // 增加行选中
244+
245+
&.d2h-code-linenumber {
246+
background-color: #daf4ae; // 增加行中的number
247+
}
248+
}
249+
}
250+
}
251+
252+
.comment-checked {
253+
&.d2h-cntx {
254+
background-color: #fff8c5; // 通常选中
255+
}
256+
257+
&.d2h-del {
258+
background-color: #ffe5b4; // 删除行选中
259+
260+
&.d2h-code-side-linenumber {
261+
background-color: #ffc89d; // 删除行中的number
262+
}
263+
}
264+
265+
&.d2h-ins {
266+
background-color: #d1f1a8; // 增加行选中
267+
268+
&.d2h-code-side-linenumber {
269+
background-color: #daf4ae; // 增加行中的number
270+
}
271+
}
272+
}
226273
}
227274

228275
.comment-icon {

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

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import { defineComponent, onMounted, provide, toRefs } from 'vue';
1+
/* @jsxImportSource vue */
2+
import { defineComponent, onMounted, provide, toRefs, onBeforeUnmount } from 'vue';
23
import type { SetupContext } from 'vue';
34
import CodeReviewHeader from './components/code-review-header';
45
import { CommentIcon } from './components/code-review-icons';
@@ -19,13 +20,20 @@ export default defineComponent({
1920
const { diffType } = toRefs(props);
2021
const { renderHtml, reviewContentRef, diffFile, onContentClick } = useCodeReview(props, ctx);
2122
const { isFold, toggleFold } = useCodeReviewFold(props, ctx);
22-
const { commentLeft, commentTop, mouseEvent, onCommentMouseLeave, onCommentIconClick, insertComment, removeComment } =
23-
useCodeReviewComment(reviewContentRef, props, ctx);
23+
const { commentLeft, commentTop,
24+
mouseEvent, onCommentMouseLeave,
25+
onCommentIconClick, onCommentKeyDown,
26+
unCommentKeyDown, insertComment,
27+
removeComment, updateCheckedLineClass } = useCodeReviewComment(reviewContentRef, props, ctx);
2428

2529
onMounted(() => {
26-
ctx.emit('afterViewInit', { toggleFold, insertComment, removeComment });
30+
ctx.emit('afterViewInit', { toggleFold, insertComment, removeComment, updateCheckedLineClass });
31+
onCommentKeyDown();
32+
});
33+
// 销毁
34+
onBeforeUnmount(() => {
35+
unCommentKeyDown();
2736
});
28-
2937
provide(CodeReviewInjectionKey, { diffType, reviewContentRef, diffInfo: diffFile.value[0], isFold, rootCtx: ctx });
3038

3139
return () => (
@@ -51,7 +59,8 @@ export default defineComponent({
5159
class="comment-icon"
5260
style={{ left: commentLeft.value + 'px', top: commentTop.value + 'px' }}
5361
onClick={onCommentIconClick}
54-
onMouseleave={onCommentMouseLeave}>
62+
onMouseleave={onCommentMouseLeave}
63+
>
5564
<CommentIcon />
5665
</div>
5766
)}

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
/* @jsxImportSource vue */
12
import { defineComponent, inject } from 'vue';
23
import type { SetupContext } from 'vue';
34
import { Popover } from '../../../popover';

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
/* @jsxImportSource vue */
12
export function FoldIcon(): JSX.Element {
23
return (
34
<svg width="16px" height="16px" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">

0 commit comments

Comments
 (0)