Skip to content

Commit b3eab95

Browse files
authored
Merge pull request #213 from QingXia-Ela/dev
feat: 为作业详情页面增加评价数量
2 parents 5c8dee4 + a66846c commit b3eab95

File tree

3 files changed

+52
-20
lines changed

3 files changed

+52
-20
lines changed

src/components/editor/action/EditorActionAdd.tsx

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -259,20 +259,22 @@ export const EditorActionAdd = ({
259259
<div className="h-px w-full bg-gray-200 mt-4 mb-6" />
260260

261261
<EditorActionModule
262-
title="执行条件" icon="stopwatch" className="font-bold"
262+
title="执行条件"
263+
icon="stopwatch"
264+
className="font-bold"
263265
>
264-
<div className="flex flex-wrap">
265-
<EditorActionExecPredicateKills control={control} />
266-
<EditorActionExecPredicateCooling control={control} />
267-
</div>
268-
<div className="flex flex-wrap">
269-
<EditorActionExecPredicateCosts control={control} />
270-
<EditorActionExecPredicateCostChange control={control} />
271-
</div>
272-
<div className="flex flex-wrap">
273-
<EditorActionPreDelay control={control} />
274-
<EditorActionRearDelay control={control} />
275-
</div>
266+
<div className="flex flex-wrap">
267+
<EditorActionExecPredicateKills control={control} />
268+
<EditorActionExecPredicateCooling control={control} />
269+
</div>
270+
<div className="flex flex-wrap">
271+
<EditorActionExecPredicateCosts control={control} />
272+
<EditorActionExecPredicateCostChange control={control} />
273+
</div>
274+
<div className="flex flex-wrap">
275+
<EditorActionPreDelay control={control} />
276+
<EditorActionRearDelay control={control} />
277+
</div>
276278
</EditorActionModule>
277279
<div className="h-px w-full bg-gray-200 mt-4 mb-6" />
278280

@@ -309,7 +311,7 @@ export const EditorActionAdd = ({
309311
/>
310312
</div>
311313
</EditorActionModule>
312-
314+
313315
<div className="mt-4 flex">
314316
<Button intent="primary" type="submit" icon={isNew ? 'add' : 'edit'}>
315317
{isNew ? '添加' : '保存'}

src/components/viewer/OperationRating.tsx

Lines changed: 34 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { Icon, IconSize } from '@blueprintjs/core'
2+
import { Popover2InteractionKind, Tooltip2 } from '@blueprintjs/popover2'
23

34
import clsx from 'clsx'
45
import { FC } from 'react'
@@ -7,8 +8,39 @@ import Rating from 'react-rating'
78
import { Operation } from 'models/operation'
89
import { ratingLevelToString } from 'models/rating'
910

11+
type PickedOperation = Pick<
12+
Operation,
13+
'notEnoughRating' | 'ratingRatio' | 'ratingLevel' | 'like' | 'dislike'
14+
>
15+
16+
const GetLevelDescription: FC<{
17+
operation: PickedOperation
18+
layout?: 'horizontal' | 'vertical'
19+
}> = ({ operation, layout }) => {
20+
return operation.notEnoughRating ? (
21+
layout === 'vertical' ? (
22+
<>还没有足够的评分</>
23+
) : (
24+
<>评分不足</>
25+
)
26+
) : (
27+
<Tooltip2
28+
className="!inline-block !mt-0"
29+
interactionKind={Popover2InteractionKind.HOVER}
30+
content={`有${Math.round(
31+
(operation.like / (operation.like + operation.dislike)) * 100,
32+
)}%的人为本作业点了个赞(${operation.like}/${
33+
operation.like + operation.dislike
34+
})`}
35+
position="bottom-left"
36+
>
37+
{ratingLevelToString(operation.ratingLevel)}
38+
</Tooltip2>
39+
)
40+
}
41+
1042
export const OperationRating: FC<{
11-
operation: Pick<Operation, 'notEnoughRating' | 'ratingRatio' | 'ratingLevel'>
43+
operation: PickedOperation
1244
layout?: 'horizontal' | 'vertical'
1345
className?: string
1446
}> = ({ operation, layout = 'vertical', className }) => {
@@ -60,11 +92,7 @@ export const OperationRating: FC<{
6092
layout === 'horizontal' && !operation.notEnoughRating && 'mr-1.5',
6193
)}
6294
>
63-
{operation.notEnoughRating
64-
? layout === 'vertical'
65-
? '还没有足够的评分'
66-
: '评分不足'
67-
: ratingLevelToString(operation.ratingLevel)}
95+
<GetLevelDescription layout={layout} operation={operation} />
6896
</div>
6997
</div>
7098
)

src/models/operation.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ export interface Operation {
1717
ratingRatio: number
1818
ratingType: OpRatingType
1919
notEnoughRating: boolean
20+
like: number
21+
dislike: number
2022
commentsCount: number
2123
}
2224

0 commit comments

Comments
 (0)