eli-video-interview 1.2.20 → 1.2.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/assets/icons/AI.svg +1 -0
- package/esm/components/AiHeaderTitle/index.d.ts +4 -0
- package/esm/components/AiHeaderTitle/index.js +19 -0
- package/esm/components/AiHeaderTitle/interface.d.ts +4 -0
- package/esm/components/AiHeaderTitle/interface.js +1 -0
- package/esm/modules/ai-ability/interface.d.ts +1 -0
- package/esm/modules/ai-question/components/AiAnalysis/AnalysisItem.d.ts +1 -1
- package/esm/modules/ai-question/components/AiAnalysis/AnalysisItem.js +12 -7
- package/esm/modules/ai-question/components/AiAnalysis/index.js +9 -17
- package/esm/modules/ai-question/components/AiAssessmentCriteria/const.d.ts +6 -0
- package/esm/modules/ai-question/components/AiAssessmentCriteria/const.js +7 -0
- package/esm/modules/ai-question/components/AiAssessmentCriteria/index.d.ts +1 -1
- package/esm/modules/ai-question/components/AiAssessmentCriteria/index.js +24 -23
- package/esm/modules/ai-question/components/AiAssessmentCriteria/interface.d.ts +6 -0
- package/esm/modules/ai-question/components/QuestionModel/index.js +6 -6
- package/esm/modules/ai-question/components/QuestionUpdate/Form.d.ts +1 -1
- package/esm/modules/ai-question/components/QuestionUpdate/Form.js +19 -10
- package/esm/modules/ai-question/components/QuestionUpdate/index.js +41 -8
- package/esm/modules/ai-question/interface.d.ts +2 -0
- package/esm/modules/ai-report/Root.js +7 -5
- package/esm/modules/ai-report/components/AIEvaluate/index.js +10 -9
- package/esm/modules/ai-report/components/ScoreReport/Report.js +13 -5
- package/esm/modules/ai-report/components/Suggestion/Suggestion.d.ts +4 -0
- package/esm/modules/ai-report/components/Suggestion/Suggestion.js +29 -0
- package/esm/modules/ai-report/components/Suggestion/index.d.ts +2 -0
- package/esm/modules/ai-report/components/Suggestion/index.js +27 -0
- package/esm/modules/ai-report/components/VideoQuestion/Abilities.d.ts +1 -1
- package/esm/modules/ai-report/components/VideoQuestion/Abilities.js +5 -5
- package/esm/modules/ai-report/components/VideoQuestion/QuestionItem.d.ts +1 -1
- package/esm/modules/ai-report/components/VideoQuestion/QuestionItem.js +9 -9
- package/esm/modules/ai-report/components/VideoQuestion/index.js +4 -3
- package/esm/modules/ai-report/components/WorkPlaces/ScoreSlider.d.ts +4 -0
- package/esm/modules/ai-report/components/WorkPlaces/ScoreSlider.js +24 -0
- package/esm/modules/ai-report/components/WorkPlaces/WorkPlace.d.ts +11 -0
- package/esm/modules/ai-report/components/WorkPlaces/WorkPlace.js +55 -0
- package/esm/modules/ai-report/components/WorkPlaces/index.d.ts +2 -0
- package/esm/modules/ai-report/components/WorkPlaces/index.js +67 -0
- package/esm/modules/ai-report/components/WorkPlaces/interface.d.ts +7 -0
- package/esm/modules/ai-report/components/WorkPlaces/interface.js +1 -0
- package/esm/modules/ai-report/components/WorkPlaces/styled.d.ts +62 -0
- package/esm/modules/ai-report/components/WorkPlaces/styled.js +27 -0
- package/esm/modules/ai-report/interface.d.ts +38 -0
- package/esm/services/ai-ability.d.ts +1 -0
- package/esm/services/ai-report.d.ts +5 -0
- package/esm/services/ai-report.js +4 -0
- package/esm/store/ai-ability/question-ability-store.d.ts +12 -0
- package/esm/store/ai-ability/question-ability-store.js +10 -0
- package/esm/store/ai-question/ai-analysis-store.d.ts +7 -3
- package/esm/store/ai-question/ai-analysis-store.js +24 -10
- package/lib/assets/icons/AI.svg +1 -0
- package/lib/components/AiHeaderTitle/index.d.ts +4 -0
- package/lib/components/AiHeaderTitle/index.js +24 -0
- package/lib/components/AiHeaderTitle/interface.d.ts +4 -0
- package/lib/components/AiHeaderTitle/interface.js +2 -0
- package/lib/modules/ai-ability/interface.d.ts +1 -0
- package/lib/modules/ai-question/components/AiAnalysis/AnalysisItem.d.ts +1 -1
- package/lib/modules/ai-question/components/AiAnalysis/AnalysisItem.js +12 -7
- package/lib/modules/ai-question/components/AiAnalysis/index.js +8 -16
- package/lib/modules/ai-question/components/AiAssessmentCriteria/const.d.ts +6 -0
- package/lib/modules/ai-question/components/AiAssessmentCriteria/const.js +8 -1
- package/lib/modules/ai-question/components/AiAssessmentCriteria/index.d.ts +1 -1
- package/lib/modules/ai-question/components/AiAssessmentCriteria/index.js +24 -23
- package/lib/modules/ai-question/components/AiAssessmentCriteria/interface.d.ts +6 -0
- package/lib/modules/ai-question/components/QuestionModel/index.js +6 -6
- package/lib/modules/ai-question/components/QuestionUpdate/Form.d.ts +1 -1
- package/lib/modules/ai-question/components/QuestionUpdate/Form.js +19 -10
- package/lib/modules/ai-question/components/QuestionUpdate/index.js +41 -8
- package/lib/modules/ai-question/interface.d.ts +2 -0
- package/lib/modules/ai-report/Root.js +7 -5
- package/lib/modules/ai-report/components/AIEvaluate/index.js +9 -8
- package/lib/modules/ai-report/components/ScoreReport/Report.js +13 -5
- package/lib/modules/ai-report/components/Suggestion/Suggestion.d.ts +4 -0
- package/lib/modules/ai-report/components/Suggestion/Suggestion.js +31 -0
- package/lib/modules/ai-report/components/Suggestion/index.d.ts +2 -0
- package/lib/modules/ai-report/components/Suggestion/index.js +32 -0
- package/lib/modules/ai-report/components/VideoQuestion/Abilities.d.ts +1 -1
- package/lib/modules/ai-report/components/VideoQuestion/Abilities.js +5 -5
- package/lib/modules/ai-report/components/VideoQuestion/QuestionItem.d.ts +1 -1
- package/lib/modules/ai-report/components/VideoQuestion/QuestionItem.js +9 -9
- package/lib/modules/ai-report/components/VideoQuestion/index.js +4 -3
- package/lib/modules/ai-report/components/WorkPlaces/ScoreSlider.d.ts +4 -0
- package/lib/modules/ai-report/components/WorkPlaces/ScoreSlider.js +26 -0
- package/lib/modules/ai-report/components/WorkPlaces/WorkPlace.d.ts +11 -0
- package/lib/modules/ai-report/components/WorkPlaces/WorkPlace.js +57 -0
- package/lib/modules/ai-report/components/WorkPlaces/index.d.ts +2 -0
- package/lib/modules/ai-report/components/WorkPlaces/index.js +72 -0
- package/lib/modules/ai-report/components/WorkPlaces/interface.d.ts +7 -0
- package/lib/modules/ai-report/components/WorkPlaces/interface.js +2 -0
- package/lib/modules/ai-report/components/WorkPlaces/styled.d.ts +62 -0
- package/lib/modules/ai-report/components/WorkPlaces/styled.js +30 -0
- package/lib/modules/ai-report/interface.d.ts +38 -0
- package/lib/services/ai-ability.d.ts +1 -0
- package/lib/services/ai-report.d.ts +5 -0
- package/lib/services/ai-report.js +6 -1
- package/lib/store/ai-ability/question-ability-store.d.ts +12 -0
- package/lib/store/ai-ability/question-ability-store.js +13 -0
- package/lib/store/ai-question/ai-analysis-store.d.ts +7 -3
- package/lib/store/ai-question/ai-analysis-store.js +24 -10
- package/package.json +1 -1
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
+
import { BulbFilledIcon, CopyIcon, LayerIcon, styled, Typography } from 'fbm-ui';
|
|
14
|
+
import { Box, Stack } from 'fbm-ui/lib/mui';
|
|
15
|
+
var TagTitle = styled(Box)(function () { return ({
|
|
16
|
+
width: 100,
|
|
17
|
+
height: 32,
|
|
18
|
+
display: 'inline-block',
|
|
19
|
+
textAlign: 'center',
|
|
20
|
+
color: 'RGBA(0, 0, 0, 0.86)',
|
|
21
|
+
borderLeft: '4px solid #4CAF50',
|
|
22
|
+
backgroundColor: '#E8F5E9',
|
|
23
|
+
margin: '24px 0 16px',
|
|
24
|
+
}); });
|
|
25
|
+
var Suggestion = function (_a) {
|
|
26
|
+
var abilityName = _a.abilityName, interviewQuestion = _a.interviewQuestion, keyPoints = _a.keyPoints;
|
|
27
|
+
return (_jsxs(Stack, { children: [_jsx(TagTitle, { children: _jsx(Typography, __assign({ variant: "subtitle1", fontWeight: "medium", style: { lineHeight: '32px' } }, { children: abilityName })) }), _jsxs(Box, __assign({ display: "flex", justifyContent: "space-between" }, { children: [_jsxs(Box, __assign({ display: "flex", flexDirection: "column", style: { background: '#FAFAFA', borderRadius: 8, padding: 16, flex: 1 }, mr: 2 }, { children: [_jsxs(Box, __assign({ display: "flex", alignItems: "center", mb: 2 }, { children: [_jsx(BulbFilledIcon, { style: { color: '#4CAF50', fontSize: 16 } }), _jsx(Typography, __assign({ variant: "body2", style: { marginLeft: 4 } }, { children: "\u9762\u8BD5\u95EE\u9898" }))] })), interviewQuestion.map(function (v, index) { return (_jsxs(Box, __assign({ display: "flex", mb: 2 }, { children: [_jsx(CopyIcon, { style: { color: '#81C784', fontSize: 16, marginTop: 4 } }), _jsx(Typography, __assign({ variant: "body2", style: { marginLeft: 4 }, color: "secondary" }, { children: v }))] }), index)); })] })), _jsxs(Box, __assign({ display: "flex", flexDirection: "column", style: { background: '#FFF3E0', borderRadius: 8, padding: 16, flex: 1 } }, { children: [_jsxs(Box, __assign({ display: "flex", alignItems: "center", mb: 2 }, { children: [_jsx(LayerIcon, { style: { color: '#FF9800', fontSize: 16 } }), _jsx(Typography, __assign({ variant: "body2", style: { marginLeft: 4 } }, { children: "\u8BC4\u5206\u5173\u952E\u70B9" }))] })), keyPoints.map(function (v, index) { return (_jsxs(Box, __assign({ display: "flex", mb: 2 }, { children: [_jsx(CopyIcon, { style: { color: '#FFB74D', fontSize: 16, marginTop: 4 } }), _jsx(Typography, __assign({ variant: "body2", style: { marginLeft: 4 }, color: "secondary" }, { children: v }))] }), index)); })] }))] }))] }));
|
|
28
|
+
};
|
|
29
|
+
export default Suggestion;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
+
import Suggestion from './Suggestion';
|
|
14
|
+
import { useAiReportStore } from "../../../../store/ai-report/global-store";
|
|
15
|
+
import AiHeaderTitle from "../../../../components/AiHeaderTitle";
|
|
16
|
+
import { Typography } from 'fbm-ui';
|
|
17
|
+
import { Box, Collapse, Paper, Stack } from 'fbm-ui/lib/mui';
|
|
18
|
+
var Index = function () {
|
|
19
|
+
var _a, _b, _c, _d;
|
|
20
|
+
var _e = useAiReportStore(function (store) { return [store.reportResult]; }), reportResult = _e.reportResult, showAiDimension = _e.showAiDimension;
|
|
21
|
+
if (!showAiDimension || !((_a = reportResult === null || reportResult === void 0 ? void 0 : reportResult.suggestion) === null || _a === void 0 ? void 0 : _a.show))
|
|
22
|
+
return null;
|
|
23
|
+
return (_jsxs(Box, __assign({ component: Paper, variant: "outlined", px: 2, mt: 2, pb: 2 }, { children: [_jsx(Stack, __assign({ direction: "row", height: 56, alignItems: "center", spacing: 1 }, { children: _jsx(AiHeaderTitle, { name: "\u8003\u5BDF\u5EFA\u8BAE" }) })), _jsx(Typography, __assign({ variant: "body2", color: "secondary", mt: 1 }, { children: (_b = reportResult === null || reportResult === void 0 ? void 0 : reportResult.suggestion) === null || _b === void 0 ? void 0 : _b.text })), _jsx(Collapse, __assign({ in: true }, { children: (_d = (_c = reportResult === null || reportResult === void 0 ? void 0 : reportResult.suggestion) === null || _c === void 0 ? void 0 : _c.abilitys) === null || _d === void 0 ? void 0 : _d.map(function (v) {
|
|
24
|
+
return _jsx(Suggestion, { abilityName: v.abilityName, interviewQuestion: v.interviewQuestion, keyPoints: v.keyPoints }, v.abilityName);
|
|
25
|
+
}) }))] })));
|
|
26
|
+
};
|
|
27
|
+
export default Index;
|
|
@@ -10,16 +10,16 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
10
|
return __assign.apply(this, arguments);
|
|
11
11
|
};
|
|
12
12
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
-
import
|
|
13
|
+
import ScoreSlider from './ScoreSlider';
|
|
14
|
+
import { useAiReportStore } from "../../../../store/ai-report/global-store";
|
|
14
15
|
import { Box, Typography } from 'fbm-ui';
|
|
15
16
|
import update from 'immutability-helper';
|
|
16
|
-
import {
|
|
17
|
-
import ScoreSlider from './ScoreSlider';
|
|
17
|
+
import { useCallback } from 'react';
|
|
18
18
|
var Abilities = function (_a) {
|
|
19
19
|
var stepIndex = _a.stepIndex;
|
|
20
20
|
var _b = useAiReportStore(function (store) { return [store.reportResult]; }), reportResult = _b.reportResult, updateReportResult = _b.updateReportResult, onScoreChange = _b.onScoreChange;
|
|
21
21
|
var steps = (reportResult || {}).steps;
|
|
22
|
-
var handleChangeCommitted = useCallback(function (score, index) {
|
|
22
|
+
var handleChangeCommitted = useCallback(function (score, index, type) {
|
|
23
23
|
var _a, _b;
|
|
24
24
|
var newSteps = update(steps, (_a = {}, _a[stepIndex] = { scoreInfo: { abilities: (_b = {}, _b[index] = { finalScore: { $set: score } }, _b) } }, _a));
|
|
25
25
|
updateReportResult(__assign(__assign({}, reportResult), { steps: newSteps }));
|
|
@@ -34,7 +34,7 @@ var Abilities = function (_a) {
|
|
|
34
34
|
return (_jsxs(Box, __assign({ mt: 1 }, { children: [_jsx(Typography, __assign({ variant: "body2", color: "secondary", mb: 1 }, { children: "\u5206\u503C\u8BA1\u7B97\u89C4\u5219\uFF1A\u7EFC\u5408\u8BC4\u5206=AI\u8BC4\u5206*\u5355\u9898\u6743\u91CD" })), _jsx(Box, __assign({ mt: 3 }, { children: steps &&
|
|
35
35
|
steps[stepIndex].scoreInfo.abilities.map(function (_a, index) {
|
|
36
36
|
var name = _a.name, originScore = _a.originScore, finalScore = _a.finalScore;
|
|
37
|
-
return (_jsxs(Box, { children: [_jsx(Typography, __assign({ variant: "body2" }, { children: name })), _jsx(ScoreSlider, { width: 400, isShowLabel: true, originScore: originScore, finalScore: finalScore, valueLabelDisplay: "auto", onChangeCommitted: function (score) { return handleChangeCommitted(score, index); } })] }, name));
|
|
37
|
+
return (_jsxs(Box, { children: [_jsx(Typography, __assign({ variant: "body2" }, { children: name })), _jsx(ScoreSlider, { width: 400, isShowLabel: true, originScore: originScore, finalScore: finalScore, valueLabelDisplay: "auto", onChangeCommitted: function (score) { return handleChangeCommitted(score, index, 'ability'); } })] }, name));
|
|
38
38
|
}) }))] })));
|
|
39
39
|
};
|
|
40
40
|
export default Abilities;
|
|
@@ -10,19 +10,19 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
10
|
return __assign.apply(this, arguments);
|
|
11
11
|
};
|
|
12
12
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
13
|
-
import
|
|
14
|
-
import
|
|
15
|
-
import {
|
|
16
|
-
import { Paper } from 'fbm-ui/lib/mui';
|
|
17
|
-
import update from 'immutability-helper';
|
|
13
|
+
import Abilities from './Abilities';
|
|
14
|
+
import ScoreSlider from './ScoreSlider';
|
|
15
|
+
import { QuestionDesc } from './styled';
|
|
18
16
|
import { QUESTION_TYPE } from "../../../../enum/ai-question";
|
|
19
17
|
import { INTERVIEW_STEP_STATUS } from "../../../../enum/ai-report";
|
|
20
18
|
import FormatQuoteIcon from '@mui/icons-material/FormatQuote';
|
|
21
19
|
import { useAiReportStore } from "../../../../store/ai-report/global-store";
|
|
22
20
|
import { formatScore, highlighKeywords } from "../../../../utils/utils";
|
|
23
|
-
import
|
|
24
|
-
import
|
|
25
|
-
import {
|
|
21
|
+
import { Box, Button, Typography } from 'fbm-ui';
|
|
22
|
+
import { theme } from 'fbm-ui/lib/components/ThemeProvider';
|
|
23
|
+
import { Paper } from 'fbm-ui/lib/mui';
|
|
24
|
+
import update from 'immutability-helper';
|
|
25
|
+
import { useCallback, useMemo, useState } from 'react';
|
|
26
26
|
var STEP_NO_ANSWER = INTERVIEW_STEP_STATUS.STEP_NO_ANSWER, STEP_COMPLETED = INTERVIEW_STEP_STATUS.STEP_COMPLETED, STEP_FAILED = INTERVIEW_STEP_STATUS.STEP_FAILED, STEP_IN_CALCULATION = INTERVIEW_STEP_STATUS.STEP_IN_CALCULATION;
|
|
27
27
|
var QuestionItem = function (props) {
|
|
28
28
|
var token = props.token, index = props.index, status = props.status, _a = props.answer, analysisResult = _a.analysisResult, videoUrl = _a.videoUrl, _b = props.question, desc = _b.desc, type = _b.type, _c = props.scoreInfo, score = _c.score, weight = _c.weight, originScore = _c.originScore, finalScore = _c.finalScore, abilities = _c.abilities;
|
|
@@ -86,6 +86,6 @@ var QuestionItem = function (props) {
|
|
|
86
86
|
mt: 2,
|
|
87
87
|
cursor: videoUrl ? 'pointer' : 'inherit',
|
|
88
88
|
borderColor: token === stepToken ? theme.palette.primary.main : '',
|
|
89
|
-
}, variant: "outlined", onClick: handleClickItem }, { children: [_jsxs(Typography, __assign({ fontSize: 14, color: token === stepToken ? theme.palette.primary.main : theme.palette.text.primary }, { children: [index + 1, ".", desc] })), _jsxs(QuestionDesc, { children: [_jsx(FormatQuoteIcon, {}), status === STEP_IN_CALCULATION ? (_jsx(Typography, __assign({ variant: "caption", color: "secondary" }, { children: "\u89C6\u9891\u5904\u7406\u4E2D\uFF0C\u8BF7\u7A0D\u5019" }))) : (_jsxs(_Fragment, { children: [_jsx(Typography, { variant: "caption", color: "secondary", dangerouslySetInnerHTML: { __html: renderText } }), type === QUESTION_TYPE.COLOR_BLINDNESS && (analysisResult === null || analysisResult === void 0 ? void 0 : analysisResult.img) && (_jsxs(Box, { children: [_jsx("img", { style: { width: 100, height: 100 }, src: analysisResult === null || analysisResult === void 0 ? void 0 : analysisResult.img, alt: "" }), _jsxs(Typography, __assign({ variant: "caption", color: "secondary", ml: 1 }, { children: ["\u56DE\u7B54\uFF1A", analysisResult === null || analysisResult === void 0 ? void 0 : analysisResult.answer] }))] }))] }))] }), isExistWeight && status === STEP_COMPLETED && (_jsxs(Box, __assign({ mt: 2, display: "flex" }, { children: [_jsxs(Typography, __assign({ variant: "body2", mr: 4 }, { children: ["\u8BC4\u5206\uFF1A", finalScore.toFixed(0), "\u5206"] })), isShowWeight && _jsxs(Typography, __assign({ variant: "body2" }, { children: ["\u5355\u9898\u6743\u91CD\uFF1A", weight, "%"] }))] }))), isExistWeight && (_jsxs(Box, __assign({ width: "100%", display: "flex", alignItems: "center", mt: 2 }, { children: [_jsx(Box, __assign({ flex: "1 0", display: "flex", alignItems: "center" }, { children: status === STEP_COMPLETED && (_jsxs(_Fragment, { children: [_jsx(ScoreSlider, { originScore: originScore, finalScore: finalScore, isShowScoreRank: true, onChangeCommitted: handleChangeCommitted }), isShowAbilitiesButton && (_jsx(Button, __assign({ variant: "text", onClick: function () { return setShowAbilities(!showAbilities); } }, { children: showAbilities ? '收起' : '详情' })))] })) })), _jsx(Box, __assign({ width: 150, textAlign: "right" }, { children: _jsxs(Typography, __assign({ variant: "body1", fontSize: 16, fontWeight: 500 }, { children: ["\u7EFC\u5408\u8BC4\u5206\uFF1A", comprehensiveScore] })) }))] }))), isShowAbilitiesDetails && _jsx(Abilities, { stepIndex: index })] }), token));
|
|
89
|
+
}, variant: "outlined", onClick: handleClickItem }, { children: [_jsxs(Typography, __assign({ fontSize: 14, color: token === stepToken ? theme.palette.primary.main : theme.palette.text.primary }, { children: [index + 1, ".", desc] })), _jsxs(QuestionDesc, { children: [_jsx(FormatQuoteIcon, {}), status === STEP_IN_CALCULATION ? (_jsx(Typography, __assign({ variant: "caption", color: "secondary" }, { children: "\u89C6\u9891\u5904\u7406\u4E2D\uFF0C\u8BF7\u7A0D\u5019" }))) : (_jsxs(_Fragment, { children: [_jsx(Typography, { variant: "caption", color: "secondary", dangerouslySetInnerHTML: { __html: renderText } }), type === QUESTION_TYPE.COLOR_BLINDNESS && (analysisResult === null || analysisResult === void 0 ? void 0 : analysisResult.img) && (_jsxs(Box, { children: [_jsx("img", { style: { width: 100, height: 100 }, src: analysisResult === null || analysisResult === void 0 ? void 0 : analysisResult.img, alt: "" }), _jsxs(Typography, __assign({ variant: "caption", color: "secondary", ml: 1 }, { children: ["\u56DE\u7B54\uFF1A", analysisResult === null || analysisResult === void 0 ? void 0 : analysisResult.answer] }))] }))] }))] }), isExistWeight && status === STEP_COMPLETED && (_jsxs(Box, __assign({ mt: 2, display: "flex" }, { children: [_jsxs(Typography, __assign({ variant: "body2", mr: 4 }, { children: ["\u8BC4\u5206\uFF1A", finalScore.toFixed(0), "\u5206"] })), isShowWeight && _jsxs(Typography, __assign({ variant: "body2" }, { children: ["\u5355\u9898\u6743\u91CD\uFF1A", weight, "%"] }))] }))), isExistWeight && (_jsxs(Box, __assign({ width: "100%", display: "flex", alignItems: "center", mt: 2 }, { children: [_jsx(Box, __assign({ flex: "1 0", display: "flex", alignItems: "center" }, { children: status === STEP_COMPLETED && (_jsxs(_Fragment, { children: [_jsx(ScoreSlider, { originScore: originScore, finalScore: finalScore, isShowScoreRank: true, onChangeCommitted: handleChangeCommitted }), isShowAbilitiesButton && (_jsx(Button, __assign({ variant: "text", style: { whiteSpace: 'nowrap' }, onClick: function () { return setShowAbilities(!showAbilities); } }, { children: showAbilities ? '收起' : '详情' })))] })) })), _jsx(Box, __assign({ width: 150, textAlign: "right" }, { children: _jsxs(Typography, __assign({ variant: "body1", fontSize: 16, fontWeight: 500 }, { children: ["\u7EFC\u5408\u8BC4\u5206\uFF1A", comprehensiveScore] })) }))] }))), isShowAbilitiesDetails && _jsx(Abilities, { stepIndex: index })] }), token));
|
|
90
90
|
};
|
|
91
91
|
export default QuestionItem;
|
|
@@ -10,12 +10,13 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
10
|
return __assign.apply(this, arguments);
|
|
11
11
|
};
|
|
12
12
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
-
import { Box, Empty, Typography } from 'fbm-ui';
|
|
14
|
-
import { useAiReportStore } from "../../../../store/ai-report/global-store";
|
|
15
13
|
import QuestionItem from './QuestionItem';
|
|
14
|
+
import AiHeaderTitle from "../../../../components/AiHeaderTitle";
|
|
15
|
+
import { useAiReportStore } from "../../../../store/ai-report/global-store";
|
|
16
|
+
import { Box, Empty, Paper } from 'fbm-ui';
|
|
16
17
|
var VideoQuestion = function () {
|
|
17
18
|
var reportResult = useAiReportStore(function (store) { return [store.reportResult, store.operableButtons]; }).reportResult;
|
|
18
19
|
var steps = (reportResult || {}).steps;
|
|
19
|
-
return (_jsxs(Box, __assign({
|
|
20
|
+
return (_jsxs(Box, __assign({ component: Paper, pl: 2, pt: 2, pr: 2, style: { background: '#fff', border: '1px solid rgb(244, 244, 244)' }, mt: 2 }, { children: [_jsx(AiHeaderTitle, { name: "\u89C6\u9891\u9898" }), _jsx(Box, __assign({ mt: 3 }, { children: steps && steps.length > 0 ? (steps === null || steps === void 0 ? void 0 : steps.map(function (item, index) { return _jsx(QuestionItem, __assign({ index: index }, item), item.token); })) : (_jsx(Empty, { src: "//public-static-assets.oss-cn-beijing.aliyuncs.com/img/empty.png", desc: "\u6682\u65E0\u9898\u76EE" })) }))] })));
|
|
20
21
|
};
|
|
21
22
|
export default VideoQuestion;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
+
import { ScoreSliderRoot, WorkplaceStyledSlider } from './styled';
|
|
14
|
+
import { Box, Typography } from 'fbm-ui';
|
|
15
|
+
var ScoreColorMap = {
|
|
16
|
+
1: '#4CAF50',
|
|
17
|
+
2: '#000000',
|
|
18
|
+
3: '#FF6C6C',
|
|
19
|
+
};
|
|
20
|
+
var ScoreSlider = function (props) {
|
|
21
|
+
var _a = props.width, width = _a === void 0 ? 320 : _a, score = props.score, _b = props.valueLabelDisplay, valueLabelDisplay = _b === void 0 ? 'off' : _b, _c = props.isShowLabel, isShowLabel = _c === void 0 ? false : _c, _d = props.scoreText, scoreText = _d === void 0 ? '' : _d, _e = props.scoreLevel, scoreLevel = _e === void 0 ? 2 : _e;
|
|
22
|
+
return (_jsxs(ScoreSliderRoot, __assign({ width: width }, { children: [_jsxs(Box, __assign({ width: width, display: "flex", justifyContent: "space-between" }, { children: [_jsx(Typography, __assign({ flexShrink: 0, variant: "body2", fontWeight: "medium" }, { children: "\u5019\u9009\u4EBA\u8868\u73B0" })), isShowLabel && (_jsxs(Box, __assign({ display: "flex" }, { children: [_jsxs(Typography, __assign({ color: ScoreColorMap[scoreLevel], variant: "body2", fontWeight: "medium" }, { children: [score, "\u5206"] })), _jsx(Typography, __assign({ color: ScoreColorMap[scoreLevel], variant: "body2", fontWeight: "medium", ml: 1 }, { children: scoreText }))] })))] })), _jsx(WorkplaceStyledSlider, { valueLabelDisplay: valueLabelDisplay, value: score })] })));
|
|
23
|
+
};
|
|
24
|
+
export default ScoreSlider;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
declare type Mode = 'edit' | 'show';
|
|
3
|
+
interface WorkplaceProps {
|
|
4
|
+
token: string;
|
|
5
|
+
answer: string;
|
|
6
|
+
bgcolor?: string;
|
|
7
|
+
mode?: Mode;
|
|
8
|
+
canEdit?: boolean;
|
|
9
|
+
}
|
|
10
|
+
declare const Evaluate: React.FC<WorkplaceProps>;
|
|
11
|
+
export default Evaluate;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
+
import { PostAiInterviewWorkplace } from "../../../../services/ai-report";
|
|
14
|
+
import { Button, confirm, EditIcon, FormItem, IconButton, Typography } from 'fbm-ui';
|
|
15
|
+
import { Box, Stack } from 'fbm-ui/lib/mui';
|
|
16
|
+
import { useCallback, useEffect, useState } from 'react';
|
|
17
|
+
var Evaluate = function (_a) {
|
|
18
|
+
var answer = _a.answer, token = _a.token, bgcolor = _a.bgcolor, _b = _a.mode, mode = _b === void 0 ? 'show' : _b, _c = _a.canEdit, canEdit = _c === void 0 ? 'true' : _c;
|
|
19
|
+
var _d = useState(answer), content = _d[0], setContent = _d[1];
|
|
20
|
+
var _e = useState('show'), internalMode = _e[0], setInternalMode = _e[1];
|
|
21
|
+
var handleChange = useCallback(function (e) {
|
|
22
|
+
var value = e.target.value;
|
|
23
|
+
setContent(value);
|
|
24
|
+
}, []);
|
|
25
|
+
var handleModeChange = useCallback(function () {
|
|
26
|
+
setInternalMode(internalMode === 'show' ? 'edit' : 'show');
|
|
27
|
+
}, [internalMode]);
|
|
28
|
+
var handleSubmit = useCallback(function () {
|
|
29
|
+
confirm({
|
|
30
|
+
header: null,
|
|
31
|
+
content: '确认将评价内容修改吗?该动作无法被撤销。',
|
|
32
|
+
okText: '修改',
|
|
33
|
+
okProps: {
|
|
34
|
+
color: 'error',
|
|
35
|
+
variant: 'contained',
|
|
36
|
+
},
|
|
37
|
+
onOk: function (_a) {
|
|
38
|
+
var onClose = _a.onClose;
|
|
39
|
+
var data = {
|
|
40
|
+
token: token,
|
|
41
|
+
answer: content,
|
|
42
|
+
};
|
|
43
|
+
PostAiInterviewWorkplace(data).then(handleModeChange).then(onClose).catch(console.log);
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
}, [token, content, handleModeChange]);
|
|
47
|
+
useEffect(function () {
|
|
48
|
+
setInternalMode(mode);
|
|
49
|
+
}, [mode]);
|
|
50
|
+
return (_jsxs(Stack, { children: [_jsx(Stack, __assign({ direction: "row", alignItems: "center", justifyContent: "flex-end" }, { children: canEdit && (_jsx(IconButton, __assign({ onClick: handleModeChange }, { children: _jsx(EditIcon, {}) }))) })), internalMode === 'edit' && (_jsxs(Box, __assign({ width: 1, pr: 2 }, { children: [_jsx(FormItem, { sx: { height: 'auto', pr: 0 }, multiline: true, rows: 3.5, required: true, name: "name", placeholder: "", value: content, onChange: handleChange }), _jsxs(Stack, __assign({ boxSizing: "border-box", mr: 2, mt: 1, spacing: 1, direction: "row", width: 1, justifyContent: "flex-end" }, { children: [_jsx(Button, __assign({ size: "medium", variant: "text", color: "secondary", onClick: function () {
|
|
51
|
+
handleModeChange();
|
|
52
|
+
setContent(answer);
|
|
53
|
+
} }, { children: "\u53D6\u6D88" })), _jsx(Button, __assign({ size: "medium", onClick: handleSubmit }, { children: "\u4FDD\u5B58" }))] }))] }))), internalMode === 'show' && (_jsx(Box, __assign({ style: { padding: 8, borderRadius: 4, overflow: 'hidden', background: bgcolor } }, { children: _jsx(Typography, __assign({ variant: "body2", sx: { whiteSpace: 'pre-wrap', color: 'RGBA(0, 0, 0, 0.56)' } }, { children: content })) })))] }));
|
|
54
|
+
};
|
|
55
|
+
export default Evaluate;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
+
import ScoreSlider from './ScoreSlider';
|
|
14
|
+
import WorkPlace from './WorkPlace';
|
|
15
|
+
import { useAiReportStore } from "../../../../store/ai-report/global-store";
|
|
16
|
+
import AiHeaderTitle from "../../../../components/AiHeaderTitle";
|
|
17
|
+
import { blue, orange, purple } from '@mui/material/colors';
|
|
18
|
+
import { InfoOutlineIcon, styled, Tooltip, Typography } from 'fbm-ui';
|
|
19
|
+
import { Box, Collapse, Paper, Stack } from 'fbm-ui/lib/mui';
|
|
20
|
+
var TagTitle = styled(Box)(function (bgcolor) { return ({
|
|
21
|
+
position: 'relative',
|
|
22
|
+
width: 100,
|
|
23
|
+
height: 32,
|
|
24
|
+
display: 'inline-block',
|
|
25
|
+
textAlign: 'center',
|
|
26
|
+
backgroundColor: bgcolor[200],
|
|
27
|
+
margin: '8px 0 16px',
|
|
28
|
+
'&:before': {
|
|
29
|
+
position: 'absolute',
|
|
30
|
+
content: '""',
|
|
31
|
+
right: '-16px',
|
|
32
|
+
top: 0,
|
|
33
|
+
width: 0,
|
|
34
|
+
height: 0,
|
|
35
|
+
borderStyle: 'solid',
|
|
36
|
+
borderColor: 'transparent',
|
|
37
|
+
borderTop: 'solid #fff',
|
|
38
|
+
borderWidth: '16px',
|
|
39
|
+
},
|
|
40
|
+
'&:after': {
|
|
41
|
+
position: 'absolute',
|
|
42
|
+
content: '""',
|
|
43
|
+
right: '-16px',
|
|
44
|
+
top: 0,
|
|
45
|
+
width: 0,
|
|
46
|
+
height: 0,
|
|
47
|
+
borderStyle: 'solid',
|
|
48
|
+
borderColor: 'transparent',
|
|
49
|
+
borderBottom: 'solid #fff',
|
|
50
|
+
borderWidth: '16px',
|
|
51
|
+
},
|
|
52
|
+
}); });
|
|
53
|
+
var ColorIndexMap = {
|
|
54
|
+
0: blue,
|
|
55
|
+
1: orange,
|
|
56
|
+
2: purple,
|
|
57
|
+
};
|
|
58
|
+
var Index = function () {
|
|
59
|
+
var _a;
|
|
60
|
+
var _b = useAiReportStore(function (store) { return [store.reportResult, store.operableButtons]; }), reportResult = _b.reportResult, showAiDimension = _b.showAiDimension, canEditAiDimension = _b.canEditAiDimension;
|
|
61
|
+
if (!showAiDimension)
|
|
62
|
+
return null;
|
|
63
|
+
return (_jsxs(Box, __assign({ component: Paper, variant: "outlined", px: 2, mt: 2 }, { children: [_jsx(Stack, __assign({ direction: "row", height: 56, alignItems: "center", spacing: 1, marginBottom: 1 }, { children: _jsx(AiHeaderTitle, { name: "\u804C\u573A\u80FD\u529B\u8868\u73B0" }) })), _jsx(Collapse, __assign({ in: true }, { children: (_a = reportResult === null || reportResult === void 0 ? void 0 : reportResult.workplaces) === null || _a === void 0 ? void 0 : _a.map(function (v, idx) {
|
|
64
|
+
return (_jsxs(Box, __assign({ component: Paper, variant: "outlined", elevation: 0, mb: 2, pb: 2, pr: 2 }, { children: [_jsxs(Box, __assign({ display: "flex", justifyContent: "space-between", alignItems: "center" }, { children: [_jsx(TagTitle, __assign({ bgcolor: ColorIndexMap[idx % 3][200] }, { children: _jsx(Typography, __assign({ variant: "subtitle1", fontWeight: "medium", style: { lineHeight: '32px', color: '#fff' } }, { children: v.dimensionName })) })), _jsx(Tooltip, __assign({ title: _jsxs("span", { children: ["\u9AD8\u5206\u8868\u73B0\uFF1A", v.abilityExpression.good, _jsx("br", {}), "\u4F4E\u5206\u8868\u73B0\uFF1A", v.abilityExpression.bad] }) }, { children: _jsxs(Box, __assign({ display: "flex", alignItems: "center" }, { children: [_jsx(Typography, __assign({ variant: "body2", style: { lineHeight: '32px' }, mr: 1 }, { children: "\u4F18\u6B21\u8868\u73B0" })), _jsx(InfoOutlineIcon, { sx: { fontSize: '16px' } })] })) }))] })), _jsx(Typography, __assign({ variant: "body2", color: "secondary", ml: 2, style: { background: '#F5F5F5', borderRadius: 4, padding: 8 } }, { children: v.define })), _jsxs(Stack, __assign({ pl: 2 }, { children: [_jsx(Box, __assign({ mt: 2 }, { children: _jsx(ScoreSlider, { width: "100%", isShowLabel: true, score: v.score, scoreText: v.scoreText, scoreLevel: v.scoreLevel }) })), _jsx(Stack, __assign({ spacing: 2 }, { children: _jsx(WorkPlace, { token: v.token, canEdit: canEditAiDimension, answer: v.answer, mode: "show", bgcolor: ColorIndexMap[idx % 3][50] }) }))] }))] }), v.token));
|
|
65
|
+
}) }))] })));
|
|
66
|
+
};
|
|
67
|
+
export default Index;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { WorkPlaceScoreInfo } from '../../interface';
|
|
2
|
+
export interface ScoreSliderProps extends Pick<WorkPlaceScoreInfo, 'score' | 'scoreText' | 'scoreLevel'> {
|
|
3
|
+
width?: any;
|
|
4
|
+
valueLabelDisplay?: 'on' | 'off' | 'auto';
|
|
5
|
+
isShowLabel?: boolean;
|
|
6
|
+
onChangeCommitted?: (score: number) => void;
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export declare const WorkplaceStyledSlider: import("@emotion/styled").StyledComponent<{
|
|
3
|
+
color?: "secondary" | "primary" | undefined;
|
|
4
|
+
classes?: (Partial<import("fbm-ui/lib/mui").SliderUnstyledClasses> & {
|
|
5
|
+
colorPrimary?: string | undefined;
|
|
6
|
+
colorSecondary?: string | undefined;
|
|
7
|
+
sizeSmall?: string | undefined;
|
|
8
|
+
thumbColorPrimary?: string | undefined;
|
|
9
|
+
thumbColorSecondary?: string | undefined;
|
|
10
|
+
thumbSizeSmall?: string | undefined;
|
|
11
|
+
}) | undefined;
|
|
12
|
+
size?: "small" | "medium" | undefined;
|
|
13
|
+
sx?: import("@mui/system").SxProps<import("fbm-ui/lib/mui").Theme> | undefined;
|
|
14
|
+
} & {
|
|
15
|
+
'aria-label'?: string | undefined;
|
|
16
|
+
'aria-labelledby'?: string | undefined;
|
|
17
|
+
'aria-valuetext'?: string | undefined;
|
|
18
|
+
classes?: Partial<import("fbm-ui/lib/mui").SliderUnstyledClasses> | undefined;
|
|
19
|
+
components?: {
|
|
20
|
+
Root?: import("react").ElementType<any> | undefined;
|
|
21
|
+
Track?: import("react").ElementType<any> | undefined;
|
|
22
|
+
Rail?: import("react").ElementType<any> | undefined;
|
|
23
|
+
Thumb?: import("react").ElementType<any> | undefined;
|
|
24
|
+
Mark?: import("react").ElementType<any> | undefined;
|
|
25
|
+
MarkLabel?: import("react").ElementType<any> | undefined;
|
|
26
|
+
ValueLabel?: import("react").ElementType<any> | undefined;
|
|
27
|
+
} | undefined;
|
|
28
|
+
componentsProps?: {
|
|
29
|
+
root?: (import("react").HTMLAttributes<HTMLSpanElement> & import("fbm-ui/lib/mui").SliderUnstyledComponentsPropsOverrides) | undefined;
|
|
30
|
+
track?: (import("react").HTMLAttributes<HTMLSpanElement> & import("fbm-ui/lib/mui").SliderUnstyledComponentsPropsOverrides) | undefined;
|
|
31
|
+
rail?: (import("react").HTMLAttributes<HTMLSpanElement> & import("fbm-ui/lib/mui").SliderUnstyledComponentsPropsOverrides) | undefined;
|
|
32
|
+
thumb?: (import("react").HTMLAttributes<HTMLSpanElement> & import("fbm-ui/lib/mui").SliderUnstyledComponentsPropsOverrides) | undefined;
|
|
33
|
+
mark?: (import("react").HTMLAttributes<HTMLSpanElement> & import("fbm-ui/lib/mui").SliderUnstyledComponentsPropsOverrides) | undefined;
|
|
34
|
+
markLabel?: (import("react").HTMLAttributes<HTMLSpanElement> & import("fbm-ui/lib/mui").SliderUnstyledComponentsPropsOverrides) | undefined;
|
|
35
|
+
valueLabel?: (import("fbm-ui/lib/mui").ValueLabelUnstyledProps & import("fbm-ui/lib/mui").SliderUnstyledComponentsPropsOverrides) | undefined;
|
|
36
|
+
} | undefined;
|
|
37
|
+
defaultValue?: number | number[] | undefined;
|
|
38
|
+
disabled?: boolean | undefined;
|
|
39
|
+
disableSwap?: boolean | undefined;
|
|
40
|
+
getAriaLabel?: ((index: number) => string) | undefined;
|
|
41
|
+
getAriaValueText?: ((value: number, index: number) => string) | undefined;
|
|
42
|
+
isRtl?: boolean | undefined;
|
|
43
|
+
marks?: boolean | import("fbm-ui/lib/mui").Mark[] | undefined;
|
|
44
|
+
max?: number | undefined;
|
|
45
|
+
min?: number | undefined;
|
|
46
|
+
name?: string | undefined;
|
|
47
|
+
onChange?: ((event: Event, value: number | number[], activeThumb: number) => void) | undefined;
|
|
48
|
+
onChangeCommitted?: ((event: Event | import("react").SyntheticEvent<Element, Event>, value: number | number[]) => void) | undefined;
|
|
49
|
+
orientation?: "horizontal" | "vertical" | undefined;
|
|
50
|
+
scale?: ((value: number) => number) | undefined;
|
|
51
|
+
step?: number | null | undefined;
|
|
52
|
+
tabIndex?: number | undefined;
|
|
53
|
+
track?: false | "normal" | "inverted" | undefined;
|
|
54
|
+
value?: number | number[] | undefined;
|
|
55
|
+
valueLabelDisplay?: "on" | "off" | "auto" | undefined;
|
|
56
|
+
valueLabelFormat?: string | ((value: number, index: number) => import("react").ReactNode) | undefined;
|
|
57
|
+
} & Omit<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "key" | keyof import("react").HTMLAttributes<HTMLSpanElement>> & {
|
|
58
|
+
ref?: ((instance: HTMLSpanElement | null) => void) | import("react").RefObject<HTMLSpanElement> | null | undefined;
|
|
59
|
+
}, "track" | "name" | "classes" | "color" | "scale" | "sx" | "defaultValue" | "tabIndex" | "aria-label" | "aria-labelledby" | "aria-valuetext" | "onChange" | "disabled" | "max" | "min" | "orientation" | "size" | "step" | "value" | "components" | "componentsProps" | "disableSwap" | "getAriaLabel" | "getAriaValueText" | "isRtl" | "marks" | "onChangeCommitted" | "valueLabelDisplay" | "valueLabelFormat"> & import("@mui/system").MUIStyledCommonProps<import("fbm-ui/lib/mui").Theme>, {}, {}>;
|
|
60
|
+
export declare const ScoreSliderRoot: import("@emotion/styled").StyledComponent<import("fbm-ui/lib/components/Box").BoxProps & {
|
|
61
|
+
children?: import("react").ReactNode;
|
|
62
|
+
} & import("@mui/system").MUIStyledCommonProps<import("fbm-ui/lib/mui").Theme>, {}, {}>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Box, styled } from 'fbm-ui';
|
|
2
|
+
import { Slider } from 'fbm-ui/lib/mui';
|
|
3
|
+
export var WorkplaceStyledSlider = styled(Slider)(function () { return ({
|
|
4
|
+
color: 'transparent',
|
|
5
|
+
height: 8,
|
|
6
|
+
'& .MuiSlider-rail': {
|
|
7
|
+
// backgroundColor: '#ECEFF1',
|
|
8
|
+
opacity: 1,
|
|
9
|
+
background: 'linear-gradient(90deg, RGB(229, 115, 115), RGB(255, 183, 77) 50%, RGB(0, 217, 157))',
|
|
10
|
+
},
|
|
11
|
+
'& .MuiSlider-track': {
|
|
12
|
+
border: 'none',
|
|
13
|
+
background: 'transparent',
|
|
14
|
+
},
|
|
15
|
+
'& .MuiSlider-thumb': {
|
|
16
|
+
height: 16,
|
|
17
|
+
width: 16,
|
|
18
|
+
backgroundColor: '#fff',
|
|
19
|
+
zIndex: 2,
|
|
20
|
+
boxShadow: '0 4px 8px RGBA(0, 0, 0, 0.16)',
|
|
21
|
+
},
|
|
22
|
+
}); });
|
|
23
|
+
export var ScoreSliderRoot = styled(Box)({
|
|
24
|
+
display: 'flex',
|
|
25
|
+
alignItems: 'center',
|
|
26
|
+
flexDirection: 'column',
|
|
27
|
+
});
|
|
@@ -51,6 +51,7 @@ export interface ScoreInfo {
|
|
|
51
51
|
finalScore: number;
|
|
52
52
|
score: number;
|
|
53
53
|
abilities: Ability[];
|
|
54
|
+
workplaces: Ability[];
|
|
54
55
|
}
|
|
55
56
|
export interface AiEvaluation {
|
|
56
57
|
assessmentPoint: string[];
|
|
@@ -58,6 +59,36 @@ export interface AiEvaluation {
|
|
|
58
59
|
increasePoint: any[];
|
|
59
60
|
decreasePoint: any[];
|
|
60
61
|
}
|
|
62
|
+
export interface AbilityExpression {
|
|
63
|
+
bad: string;
|
|
64
|
+
good: string;
|
|
65
|
+
}
|
|
66
|
+
export interface WorkPlaceAbility {
|
|
67
|
+
abilityExpression: AbilityExpression;
|
|
68
|
+
answer: string;
|
|
69
|
+
define: string;
|
|
70
|
+
dimensionName: string;
|
|
71
|
+
dimensionType: number;
|
|
72
|
+
score: number;
|
|
73
|
+
scoreLevel: number;
|
|
74
|
+
scoreText: string;
|
|
75
|
+
token: string;
|
|
76
|
+
}
|
|
77
|
+
export interface WorkPlaceScoreInfo {
|
|
78
|
+
score: number;
|
|
79
|
+
scoreText: string;
|
|
80
|
+
scoreLevel: number;
|
|
81
|
+
}
|
|
82
|
+
export interface SuggestionAbility {
|
|
83
|
+
abilityName: string;
|
|
84
|
+
interviewQuestion: Array<string>;
|
|
85
|
+
keyPoints: Array<string>;
|
|
86
|
+
}
|
|
87
|
+
export interface Suggestion {
|
|
88
|
+
text: string;
|
|
89
|
+
show: boolean;
|
|
90
|
+
abilitys: SuggestionAbility[];
|
|
91
|
+
}
|
|
61
92
|
export interface AiInterviewReportStep {
|
|
62
93
|
token: string;
|
|
63
94
|
status: number;
|
|
@@ -70,6 +101,10 @@ export interface FaceAnalysis {
|
|
|
70
101
|
age: number;
|
|
71
102
|
beauty: number;
|
|
72
103
|
}
|
|
104
|
+
export interface SummaryText {
|
|
105
|
+
sprintf: string;
|
|
106
|
+
variables: Array<string>;
|
|
107
|
+
}
|
|
73
108
|
export interface AiInterviewReportList {
|
|
74
109
|
orderToken: string;
|
|
75
110
|
aiModel: AiModel;
|
|
@@ -77,6 +112,9 @@ export interface AiInterviewReportList {
|
|
|
77
112
|
faceUrl: string;
|
|
78
113
|
faceAnalysis: FaceAnalysis;
|
|
79
114
|
evaluations: Array<any>;
|
|
115
|
+
workplaces: WorkPlaceAbility[];
|
|
116
|
+
suggestion: Suggestion;
|
|
117
|
+
summaryText: SummaryText;
|
|
80
118
|
score: number;
|
|
81
119
|
status: number;
|
|
82
120
|
completedStatus: number;
|
|
@@ -6,4 +6,9 @@ interface PostAiInterviewEvaluationData {
|
|
|
6
6
|
manualSuggestions?: Array<string>;
|
|
7
7
|
}
|
|
8
8
|
export declare const PostAiInterviewEvaluation: <R>(data: PostAiInterviewEvaluationData) => import("axios").AxiosPromise<R>;
|
|
9
|
+
interface PostAiInterviewWorkplaceData {
|
|
10
|
+
token: string;
|
|
11
|
+
answer?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare const PostAiInterviewWorkplace: <R>(data: PostAiInterviewWorkplaceData) => import("axios").AxiosPromise<R>;
|
|
9
14
|
export {};
|
|
@@ -7,3 +7,7 @@ export var PostAiInterviewRefresh = function (orderID) { return POST({ url: "/st
|
|
|
7
7
|
export var PostAiInterviewEvaluation = function (data) {
|
|
8
8
|
return POST({ url: "/standard/b/aiInterview/aiEvaluation/modify", data: data });
|
|
9
9
|
};
|
|
10
|
+
// 更新职场能力回答
|
|
11
|
+
export var PostAiInterviewWorkplace = function (data) {
|
|
12
|
+
return POST({ url: "/standard/b/aiInterview/workplace/answer/modify", data: data });
|
|
13
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { QuestionCollectionList } from '@/modules/ai-ability/interface';
|
|
3
|
+
export declare const useQuestionCollectionListStore: (depsFn?: import("hox/es/types").DepsFn<{
|
|
4
|
+
questionCollectionList: QuestionCollectionList[];
|
|
5
|
+
updateQuestionCollectionList: import("react").Dispatch<import("react").SetStateAction<QuestionCollectionList[]>>;
|
|
6
|
+
}> | undefined) => {
|
|
7
|
+
questionCollectionList: QuestionCollectionList[];
|
|
8
|
+
updateQuestionCollectionList: import("react").Dispatch<import("react").SetStateAction<QuestionCollectionList[]>>;
|
|
9
|
+
}, getQuestionCollectionListStore: () => {
|
|
10
|
+
questionCollectionList: QuestionCollectionList[];
|
|
11
|
+
updateQuestionCollectionList: import("react").Dispatch<import("react").SetStateAction<QuestionCollectionList[]>>;
|
|
12
|
+
} | undefined;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
var _a;
|
|
2
|
+
import { createGlobalStore } from 'hox';
|
|
3
|
+
import { useState } from 'react';
|
|
4
|
+
export var useQuestionCollectionListStore = (_a = createGlobalStore(function () {
|
|
5
|
+
var _a = useState([]), questionCollectionList = _a[0], updateQuestionCollectionList = _a[1];
|
|
6
|
+
return {
|
|
7
|
+
questionCollectionList: questionCollectionList,
|
|
8
|
+
updateQuestionCollectionList: updateQuestionCollectionList,
|
|
9
|
+
};
|
|
10
|
+
}), _a[0]), getQuestionCollectionListStore = _a[1];
|
|
@@ -1,25 +1,29 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import { AiAbilityItem } from '@/modules/ai-question/components/AiAssessmentCriteria/interface';
|
|
2
|
+
import { AiAbilityItem, WorkplaceItem } from '@/modules/ai-question/components/AiAssessmentCriteria/interface';
|
|
3
3
|
import { QuestionParams } from '@/modules/ai-question/components/QuestionUpdate/interface';
|
|
4
4
|
interface AnalysisStateParams extends Pick<QuestionParams, 'aiSwitch' | 'language'> {
|
|
5
5
|
}
|
|
6
6
|
export declare const useAiAnalysisStore: (depsFn?: import("hox/es/types").DepsFn<{
|
|
7
7
|
aiAbilities: AiAbilityItem[];
|
|
8
|
+
workplaces: WorkplaceItem[];
|
|
8
9
|
analysisState: AnalysisStateParams;
|
|
9
10
|
keyPointAnalysisError: number[];
|
|
10
11
|
updateState: (params: Partial<AnalysisStateParams>) => void;
|
|
11
|
-
updateAiAbilities: (data: AiAbilityItem[], inInit?: any) => void;
|
|
12
|
+
updateAiAbilities: (data: AiAbilityItem[], inInit?: any, isWorkplaceChange?: any) => void;
|
|
12
13
|
updateAiAbilitiesWeight: (value: string, index: number) => void;
|
|
13
14
|
removeAiAbilities: (index: number) => void;
|
|
15
|
+
updateWorkplaces: (data: WorkplaceItem[]) => void;
|
|
14
16
|
setKeyPointAnalysisError: import("react").Dispatch<import("react").SetStateAction<number[]>>;
|
|
15
17
|
}> | undefined) => {
|
|
16
18
|
aiAbilities: AiAbilityItem[];
|
|
19
|
+
workplaces: WorkplaceItem[];
|
|
17
20
|
analysisState: AnalysisStateParams;
|
|
18
21
|
keyPointAnalysisError: number[];
|
|
19
22
|
updateState: (params: Partial<AnalysisStateParams>) => void;
|
|
20
|
-
updateAiAbilities: (data: AiAbilityItem[], inInit?: any) => void;
|
|
23
|
+
updateAiAbilities: (data: AiAbilityItem[], inInit?: any, isWorkplaceChange?: any) => void;
|
|
21
24
|
updateAiAbilitiesWeight: (value: string, index: number) => void;
|
|
22
25
|
removeAiAbilities: (index: number) => void;
|
|
26
|
+
updateWorkplaces: (data: WorkplaceItem[]) => void;
|
|
23
27
|
setKeyPointAnalysisError: import("react").Dispatch<import("react").SetStateAction<number[]>>;
|
|
24
28
|
}, AiAnalysisStoreProvider: import("react").FC<{
|
|
25
29
|
children?: import("react").ReactNode;
|