eli-video-interview 1.2.27 → 1.2.28-beta.0
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/README.md +1 -1
- package/esm/constants/ai-report.d.ts +27 -0
- package/esm/constants/ai-report.js +27 -0
- package/esm/modules/ai-question/components/AiAnalysis/index.js +1 -1
- package/esm/modules/ai-question/components/QuestionUpdate/Form.js +5 -2
- package/esm/modules/ai-question/components/QuestionUpdate/index.js +22 -23
- package/esm/modules/ai-question/components/QuestionUpdate/interface.d.ts +1 -0
- package/esm/modules/ai-report/Root.js +4 -4
- package/esm/modules/ai-report/components/AIEvaluate/index.js +1 -1
- package/esm/modules/ai-report/components/MenuAnchor/index.d.ts +4 -0
- package/esm/modules/ai-report/components/MenuAnchor/index.js +115 -0
- package/esm/modules/ai-report/components/ScoreReport/Report.js +1 -1
- package/esm/modules/ai-report/components/ScoreReport/index.d.ts +1 -1
- package/esm/modules/ai-report/components/ScoreReport/index.js +8 -8
- package/esm/modules/ai-report/components/Suggestion/index.js +1 -1
- package/esm/modules/ai-report/components/VideoQuestion/index.js +1 -1
- package/esm/modules/ai-report/components/VideoQuestion/styled.d.ts +1 -1
- package/esm/modules/ai-report/components/WorkPlaces/index.js +1 -1
- package/esm/modules/ai-report/components/WorkPlaces/styled.d.ts +1 -1
- package/esm/modules/ai-report/index.js +4 -2
- package/esm/modules/ai-report/interface.d.ts +10 -0
- package/esm/store/ai-question/ai-analysis-store.js +4 -3
- package/lib/constants/ai-report.d.ts +27 -0
- package/lib/constants/ai-report.js +28 -1
- package/lib/modules/ai-question/components/AiAnalysis/index.js +1 -1
- package/lib/modules/ai-question/components/QuestionUpdate/Form.js +5 -2
- package/lib/modules/ai-question/components/QuestionUpdate/index.js +22 -23
- package/lib/modules/ai-question/components/QuestionUpdate/interface.d.ts +1 -0
- package/lib/modules/ai-report/Root.js +4 -4
- package/lib/modules/ai-report/components/AIEvaluate/index.js +1 -1
- package/lib/modules/ai-report/components/MenuAnchor/index.d.ts +4 -0
- package/lib/modules/ai-report/components/MenuAnchor/index.js +117 -0
- package/lib/modules/ai-report/components/ScoreReport/Report.js +1 -1
- package/lib/modules/ai-report/components/ScoreReport/index.d.ts +1 -1
- package/lib/modules/ai-report/components/ScoreReport/index.js +8 -8
- package/lib/modules/ai-report/components/Suggestion/index.js +1 -1
- package/lib/modules/ai-report/components/VideoQuestion/index.js +1 -1
- package/lib/modules/ai-report/components/VideoQuestion/styled.d.ts +1 -1
- package/lib/modules/ai-report/components/WorkPlaces/index.js +1 -1
- package/lib/modules/ai-report/components/WorkPlaces/styled.d.ts +1 -1
- package/lib/modules/ai-report/index.js +3 -1
- package/lib/modules/ai-report/interface.d.ts +10 -0
- package/lib/store/ai-question/ai-analysis-store.js +4 -3
- package/package.json +1 -1
- package/CHANGELOG.md +0 -30
package/README.md
CHANGED
|
@@ -75,7 +75,7 @@ return (
|
|
|
75
75
|
|
|
76
76
|
| 名称 | 说明 | 类型 |
|
|
77
77
|
| :--- | :--- | :--- |
|
|
78
|
-
| handleValues | 获取AI
|
|
78
|
+
| handleValues | 获取AI视频题目所有字段值 | () => [AiQuestionValues](#aiquestionvalues) |
|
|
79
79
|
| handleSubmit | 提交AI视频题目 | () => Promise<[AiQuestionSubmitRes](#aiquestionsubmitres)> |
|
|
80
80
|
|
|
81
81
|
#### MediaList
|
|
@@ -1,2 +1,29 @@
|
|
|
1
1
|
export declare const RosePieColors: string[][];
|
|
2
2
|
export declare const scoreRankIntervalColors: string[];
|
|
3
|
+
export declare const REPORT_MODULE_MAP: {
|
|
4
|
+
score: {
|
|
5
|
+
id: string;
|
|
6
|
+
name: string;
|
|
7
|
+
type: string;
|
|
8
|
+
};
|
|
9
|
+
workplace: {
|
|
10
|
+
id: string;
|
|
11
|
+
name: string;
|
|
12
|
+
type: string;
|
|
13
|
+
};
|
|
14
|
+
evaluate: {
|
|
15
|
+
id: string;
|
|
16
|
+
name: string;
|
|
17
|
+
type: string;
|
|
18
|
+
};
|
|
19
|
+
suggestion: {
|
|
20
|
+
id: string;
|
|
21
|
+
name: string;
|
|
22
|
+
type: string;
|
|
23
|
+
};
|
|
24
|
+
videoQuestion: {
|
|
25
|
+
id: string;
|
|
26
|
+
name: string;
|
|
27
|
+
type: string;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
@@ -10,3 +10,30 @@ export var RosePieColors = [
|
|
|
10
10
|
['rgba(160, 115, 255, 0.2)', 'rgba(160, 115, 255, 0.4)', 'rgba(160, 115, 255, 0.6)', 'rgba(160, 115, 255, 1)'],
|
|
11
11
|
];
|
|
12
12
|
export var scoreRankIntervalColors = ['#C8E6C9', '#A5D6A7', '#81C784', '#66BB6A', '#4CAF50'];
|
|
13
|
+
export var REPORT_MODULE_MAP = {
|
|
14
|
+
score: {
|
|
15
|
+
id: 'report-score',
|
|
16
|
+
name: '综合表现',
|
|
17
|
+
type: 'score',
|
|
18
|
+
},
|
|
19
|
+
workplace: {
|
|
20
|
+
id: 'report-workplace',
|
|
21
|
+
name: '职场能力表现',
|
|
22
|
+
type: 'workplace',
|
|
23
|
+
},
|
|
24
|
+
evaluate: {
|
|
25
|
+
id: 'report-evaluate',
|
|
26
|
+
name: 'AI基础能力',
|
|
27
|
+
type: 'evaluate',
|
|
28
|
+
},
|
|
29
|
+
suggestion: {
|
|
30
|
+
id: 'report-suggestion',
|
|
31
|
+
name: '考察建议',
|
|
32
|
+
type: 'suggestion',
|
|
33
|
+
},
|
|
34
|
+
videoQuestion: {
|
|
35
|
+
id: 'report-question',
|
|
36
|
+
name: '视频题',
|
|
37
|
+
type: 'videoQuestion',
|
|
38
|
+
},
|
|
39
|
+
};
|
|
@@ -22,6 +22,6 @@ var AiAnalysis = function () {
|
|
|
22
22
|
var _b = useState(false), aiAnalysisOpen = _b[0], setAiAnalysisOpen = _b[1];
|
|
23
23
|
var language = analysisState.language;
|
|
24
24
|
var isOpenAiAnalysis = aiAbilities.length > 0;
|
|
25
|
-
return (_jsxs(Box, { children: [aiAnalysisOpen && _jsx(AiAssessmentCriteria, { open: aiAnalysisOpen, onClose: function () { return setAiAnalysisOpen(false); } }), isOpenAiAnalysis && (_jsx(Box, __assign({ display: "flex", alignItems: "center", justifyContent: "space-between" }, { children: _jsxs(Box, __assign({ display: "flex", alignItems: "center" }, { children: [_jsx(Typography, __assign({ variant: "subtitle1" }, { children: "\u6743\u91CD\u8BBE\u7F6E" })), language && LANGUAGE_NAMES[language]
|
|
25
|
+
return (_jsxs(Box, { children: [aiAnalysisOpen && _jsx(AiAssessmentCriteria, { open: aiAnalysisOpen, onClose: function () { return setAiAnalysisOpen(false); } }), isOpenAiAnalysis && (_jsx(Box, __assign({ display: "flex", alignItems: "center", justifyContent: "space-between" }, { children: _jsxs(Box, __assign({ display: "flex", alignItems: "center" }, { children: [_jsx(Typography, __assign({ variant: "subtitle1" }, { children: "\u6743\u91CD\u8BBE\u7F6E" })), language && LANGUAGE_NAMES[language] ? (_jsxs(Typography, __assign({ variant: "caption", color: "secondary", ml: "8px" }, { children: ["\u8BED\u79CD\uFF1A", language && LANGUAGE_NAMES[language]] }))) : ('')] })) }))), aiAbilities.length > 0 && (_jsx(List, { children: aiAbilities.map(function (item, index) { return (_jsx(AnalysisItem, __assign({ index: index }, item), item.token)); }) })), _jsx(Divider, { sx: { mb: 1 } }), _jsx(Button, __assign({ variant: "text", color: "inherit", icon: _jsx(AddIcon, {}), onClick: function () { return setAiAnalysisOpen(true); } }, { children: "\u6DFB\u52A0AI\u5206\u6790\u7EF4\u5EA6" }))] }));
|
|
26
26
|
};
|
|
27
27
|
export default AiAnalysis;
|
|
@@ -56,7 +56,7 @@ import { useRequest } from 'ahooks';
|
|
|
56
56
|
import { Autocomplete, Box, Form, FormItem, Select, useForm } from 'fbm-ui';
|
|
57
57
|
import { forwardRef, memo, useEffect, useImperativeHandle } from 'react';
|
|
58
58
|
var QuestionForm = forwardRef(function (props, ref) {
|
|
59
|
-
var aiShowType = props.aiShowType, initialValues = props.initialValues, values = props.values, preview = props.preview, onValuesChange = props.onValuesChange, onSubmit = props.onSubmit;
|
|
59
|
+
var aiShowType = props.aiShowType, initialValues = props.initialValues, values = props.values, preview = props.preview, onValuesChange = props.onValuesChange, onSubmit = props.onSubmit, onCategoryChange = props.onCategoryChange;
|
|
60
60
|
var _a = useQuestionCollectionListStore(function (store) { return [store.questionCollectionList]; }), questionCollectionList = _a.questionCollectionList, updateQuestionCollectionList = _a.updateQuestionCollectionList;
|
|
61
61
|
var data = useRequest(PostQuestionCollectionList, { manual: preview }).data;
|
|
62
62
|
var form = useForm({
|
|
@@ -73,6 +73,9 @@ var QuestionForm = forwardRef(function (props, ref) {
|
|
|
73
73
|
});
|
|
74
74
|
}); },
|
|
75
75
|
});
|
|
76
|
+
var handleCategoryChange = function (e, value) {
|
|
77
|
+
onCategoryChange === null || onCategoryChange === void 0 ? void 0 : onCategoryChange(value);
|
|
78
|
+
};
|
|
76
79
|
useImperativeHandle(ref, function () { return ({
|
|
77
80
|
handleValues: function () { return form.values; },
|
|
78
81
|
handleSubmit: function () { return form.handleSubmit(); },
|
|
@@ -96,7 +99,7 @@ var QuestionForm = forwardRef(function (props, ref) {
|
|
|
96
99
|
token: token,
|
|
97
100
|
isWorkplace: isWorkplace,
|
|
98
101
|
});
|
|
99
|
-
}) }) })))] })), form.values.broadcastType === 1 || preview ? (_jsx(FormItem, { required: true, disabled: preview, name: "desc", label: "\u9762\u8BD5\u5185\u5BB9", max: 300, placeholder: "\u9762\u8BD5\u5185\u5BB9\uFF08\u7CFB\u7EDF\u5C06\u6839\u636E\u6B64\u5185\u5BB9\u5411\u5019\u9009\u4EBA\u8FDB\u884C\u8BED\u97F3\u64AD\u62A5\uFF09" })) : (_jsx(VideoVoice, {})), aiShowType === ADD_QUESTION_TYPE.LANGUAGE && (_jsx(FormItem, { sx: { height: 'auto', mb: 2 }, required: true, name: "readText", label: "\u6717\u8BFB\u5185\u5BB9", max: 240, InputProps: {
|
|
102
|
+
}), onChange: handleCategoryChange }) })))] })), form.values.broadcastType === 1 || preview ? (_jsx(FormItem, { required: true, disabled: preview, name: "desc", label: "\u9762\u8BD5\u5185\u5BB9", max: 300, placeholder: "\u9762\u8BD5\u5185\u5BB9\uFF08\u7CFB\u7EDF\u5C06\u6839\u636E\u6B64\u5185\u5BB9\u5411\u5019\u9009\u4EBA\u8FDB\u884C\u8BED\u97F3\u64AD\u62A5\uFF09" })) : (_jsx(VideoVoice, {})), aiShowType === ADD_QUESTION_TYPE.LANGUAGE && (_jsx(FormItem, { sx: { height: 'auto', mb: 2 }, required: true, name: "readText", label: "\u6717\u8BFB\u5185\u5BB9", max: 240, InputProps: {
|
|
100
103
|
rows: 3,
|
|
101
104
|
multiline: true,
|
|
102
105
|
placeholder: '朗读内容(候选人将根据此内容进行朗读)',
|
|
@@ -136,7 +136,8 @@ var QuestionUpdate = function () {
|
|
|
136
136
|
var _b = values || { category: undefined }, _c = _b.readText, readText = _c === void 0 ? '' : _c, otherValues = __rest(_b, ["readText"]);
|
|
137
137
|
resolve({
|
|
138
138
|
errorIndexes: errorIndexes,
|
|
139
|
-
params: __assign(__assign(__assign(__assign({}, item), otherValues), analysisState), { category: (otherValues === null || otherValues === void 0 ? void 0 : otherValues.category) ? [(_a = otherValues === null || otherValues === void 0 ? void 0 : otherValues.category) === null || _a === void 0 ? void 0 : _a.value] : [], extra: readText && item.extra ? __assign(__assign({}, item.extra), { readText: readText }) : item.extra, aiType: newAiAbilities.length > 0
|
|
139
|
+
params: __assign(__assign(__assign(__assign({}, item), otherValues), analysisState), { category: (otherValues === null || otherValues === void 0 ? void 0 : otherValues.category) ? [(_a = otherValues === null || otherValues === void 0 ? void 0 : otherValues.category) === null || _a === void 0 ? void 0 : _a.value] : [], extra: readText && item.extra ? __assign(__assign({}, item.extra), { readText: readText }) : item.extra, aiType: newAiAbilities.length > 0 ? 2 : 1, // 不参与AI分析的考察能力不可设置题目权重,只有可AI分析的职场能力和AI基础能力
|
|
140
|
+
aiShowType: aiShowType, aiAbilities: newAiAbilities }),
|
|
140
141
|
});
|
|
141
142
|
});
|
|
142
143
|
}, [aiAbilities, aiShowType, analysisState, item, setKeyPointAnalysisError]);
|
|
@@ -200,8 +201,8 @@ var QuestionUpdate = function () {
|
|
|
200
201
|
});
|
|
201
202
|
}); }, [getModelParams, item === null || item === void 0 ? void 0 : item.videoBroadcast.videoUrl, token, editModel, index, addModel, updateQuestionState]);
|
|
202
203
|
var handleWorkplaceData = useCallback(function (curSelectWorkPlace) {
|
|
203
|
-
|
|
204
|
-
var curAiAbilities =
|
|
204
|
+
console.log('curSelectWorkPlace', curSelectWorkPlace);
|
|
205
|
+
var curAiAbilities = aiAbilities.slice();
|
|
205
206
|
// 是否是初始化
|
|
206
207
|
var inInit = true;
|
|
207
208
|
// 考察能力是否包含在AI能力
|
|
@@ -209,35 +210,33 @@ var QuestionUpdate = function () {
|
|
|
209
210
|
var CurWorkplace = questionCollectionList.find(function (v) { return v.name === curSelectWorkPlace.label; }) || {};
|
|
210
211
|
var CurWorkPlaceAiAbility = __assign(__assign(__assign({}, curSelectWorkPlace), CurWorkplace), { abilityType: 2, weight: 0, sort: 0 });
|
|
211
212
|
inInit = workplaceTypeIndex === -1;
|
|
212
|
-
// 是否可修改
|
|
213
|
-
// CurWorkPlaceAiAbility.isNotCompute = !CurWorkPlaceAiAbility.isWorkplace;
|
|
214
213
|
CurWorkPlaceAiAbility.desc = CurWorkPlaceAiAbility.name;
|
|
215
214
|
console.log('CurWorkPlaceAiAbility', CurWorkPlaceAiAbility);
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
console.log('form value category:', value.category);
|
|
223
|
-
// 考察能力未发生变化
|
|
224
|
-
var WorkplaceIndex = item.aiAbilities.findIndex(function (v) { var _a; return v.name === ((_a = value.category) === null || _a === void 0 ? void 0 : _a.label); });
|
|
225
|
-
if (WorkplaceIndex > -1) {
|
|
226
|
-
return;
|
|
215
|
+
// 添加和修改
|
|
216
|
+
if (workplaceTypeIndex > -1) {
|
|
217
|
+
curAiAbilities.splice(workplaceTypeIndex, 1, CurWorkPlaceAiAbility);
|
|
218
|
+
}
|
|
219
|
+
else {
|
|
220
|
+
curAiAbilities.unshift(CurWorkPlaceAiAbility);
|
|
227
221
|
}
|
|
222
|
+
console.log('curAiAbilities', curAiAbilities, inInit);
|
|
223
|
+
updateAiAbilities(curAiAbilities, inInit);
|
|
224
|
+
}, [questionCollectionList, aiAbilities, updateAiAbilities]);
|
|
225
|
+
var handleCategoryChange = useCallback(function (value) {
|
|
226
|
+
console.log('category value:', value);
|
|
228
227
|
// 考察能力更改
|
|
229
|
-
if (value
|
|
230
|
-
handleWorkplaceData(value
|
|
228
|
+
if (value && value.label) {
|
|
229
|
+
handleWorkplaceData(value);
|
|
231
230
|
}
|
|
232
|
-
else if (!value
|
|
233
|
-
var curAiAbilities =
|
|
231
|
+
else if (!(value === null || value === void 0 ? void 0 : value.label)) {
|
|
232
|
+
var curAiAbilities = aiAbilities.filter(function (v) { return v.abilityType === 1; });
|
|
234
233
|
updateAiAbilities(curAiAbilities);
|
|
235
234
|
// 考察能力删除
|
|
236
|
-
console.log('考察能力删除');
|
|
235
|
+
console.log('考察能力删除', aiAbilities);
|
|
237
236
|
}
|
|
238
237
|
},
|
|
239
238
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
240
|
-
[
|
|
239
|
+
[aiAbilities, handleWorkplaceData]);
|
|
241
240
|
useEffect(function () {
|
|
242
241
|
if (open) {
|
|
243
242
|
updateState({ language: item.language, aiSwitch: item.aiSwitch });
|
|
@@ -253,6 +252,6 @@ var QuestionUpdate = function () {
|
|
|
253
252
|
(_a = formRef === null || formRef === void 0 ? void 0 : formRef.current) === null || _a === void 0 ? void 0 : _a.setFormValues({ category: { label: '', value: '' } });
|
|
254
253
|
}
|
|
255
254
|
}, [workplaces]);
|
|
256
|
-
return (_jsx(Dialog, __assign({ open: open, header: CustomHeader, size: "sm", okText: "\u786E\u8BA4", onClose: handleClose, onOk: handleOk }, { children: _jsx(ScrollDialogContent, { children: _jsx(Box, __assign({ sx: { mt: 1 } }, { children: _jsx(Form, { ref: formRef, initialValues: initialValues, aiShowType: aiShowType, onSubmit: handleSubmit,
|
|
255
|
+
return (_jsx(Dialog, __assign({ open: open, header: CustomHeader, size: "sm", okText: "\u786E\u8BA4", onClose: handleClose, onOk: handleOk }, { children: _jsx(ScrollDialogContent, { children: _jsx(Box, __assign({ sx: { mt: 1 } }, { children: _jsx(Form, { ref: formRef, initialValues: initialValues, aiShowType: aiShowType, onSubmit: handleSubmit, onCategoryChange: handleCategoryChange }) })) }) })));
|
|
257
256
|
};
|
|
258
257
|
export default QuestionUpdate;
|
|
@@ -45,6 +45,7 @@ export interface QuestionFormProps {
|
|
|
45
45
|
values?: QuestionFormValues;
|
|
46
46
|
preview?: boolean;
|
|
47
47
|
aiShowType: number;
|
|
48
|
+
onCategoryChange?: (category: any) => void;
|
|
48
49
|
onValuesChange?: (values: QuestionFormValues) => void;
|
|
49
50
|
onSubmit?: (values: QuestionFormValues) => void;
|
|
50
51
|
}
|
|
@@ -27,8 +27,8 @@ var AiReportRoot = forwardRef(function (props, ref) {
|
|
|
27
27
|
var token = props.token, reminderSent = props.reminderSent, operableButtons = props.operableButtons, onLoad = props.onLoad, onSendReminderClick = props.onSendReminderClick;
|
|
28
28
|
var firstLoad = useRef(true);
|
|
29
29
|
var _a = useAiReportStore(), updateState = _a.updateState, updateReportResult = _a.updateReportResult, reportResult = _a.reportResult;
|
|
30
|
-
var _b = reportResult || {}, _c = _b.collection, collection = _c === void 0 ? [] : _c, _d = _b.
|
|
31
|
-
var
|
|
30
|
+
var _b = reportResult || {}, _c = _b.collection, collection = _c === void 0 ? [] : _c, _d = _b.workplaces, workplaces = _d === void 0 ? [] : _d;
|
|
31
|
+
var _e = useRequest(function () { return PostAiInterviewResult([token]); }, {
|
|
32
32
|
manual: true,
|
|
33
33
|
onSuccess: function (_a) {
|
|
34
34
|
var list = _a.data.list;
|
|
@@ -46,7 +46,7 @@ var AiReportRoot = forwardRef(function (props, ref) {
|
|
|
46
46
|
onLoad === null || onLoad === void 0 ? void 0 : onLoad(__assign({ pageStepIndexes: pageStepIndexes_1 }, result));
|
|
47
47
|
}
|
|
48
48
|
},
|
|
49
|
-
}), data =
|
|
49
|
+
}), data = _e.data, loading = _e.loading, postAiInterviewResult = _e.run;
|
|
50
50
|
var status = (data === null || data === void 0 ? void 0 : data.data.list[0].status) || NO_ANSWER;
|
|
51
51
|
var handleRefreshSuccess = useCallback(function () {
|
|
52
52
|
postAiInterviewResult();
|
|
@@ -70,7 +70,7 @@ var AiReportRoot = forwardRef(function (props, ref) {
|
|
|
70
70
|
else {
|
|
71
71
|
return (_jsxs(Box, { children: [_jsx(NotFinish, {}), (collection === null || collection === void 0 ? void 0 : collection.length) > 0 && _jsx(ScoreReport, { onRefreshSuccess: handleRefreshSuccess }), (workplaces === null || workplaces === void 0 ? void 0 : workplaces.length) > 0 && _jsx(WorkPlaces, {}), (collection === null || collection === void 0 ? void 0 : collection.length) > 0 && _jsx(AIEvaluate, {}), _jsx(Suggestion, {}), _jsx(VideoQuestion, {})] }));
|
|
72
72
|
}
|
|
73
|
-
}, [handleRefreshSuccess, onSendReminderClick, reminderSent, status, operableButtons, collection, workplaces
|
|
73
|
+
}, [handleRefreshSuccess, onSendReminderClick, reminderSent, status, operableButtons, collection, workplaces]);
|
|
74
74
|
return (_jsx(Box, __assign({ loading: firstLoad.current && loading, sx: { width: '100%', minHeight: '584px', height: '100%', margin: '0 auto', overflow: 'auto' } }, { children: aiReportResult })));
|
|
75
75
|
});
|
|
76
76
|
AiReportRoot.displayName = 'AiReportRoot';
|
|
@@ -30,7 +30,7 @@ var Index = function () {
|
|
|
30
30
|
}, [expand]);
|
|
31
31
|
if (!showAiDimension || ((_a = reportResult === null || reportResult === void 0 ? void 0 : reportResult.evaluations) === null || _a === void 0 ? void 0 : _a.length) === 0)
|
|
32
32
|
return null;
|
|
33
|
-
return (_jsxs(Box, __assign({ component: Paper, variant: "outlined", px: 2, mt: 2 }, { children: [_jsxs(Stack, __assign({ direction: "row", height: 56, alignItems: "center", spacing: 1, marginBottom: 1 }, { children: [_jsx(AiHeaderTitle, { name: "AI\u57FA\u7840\u80FD\u529B" }), _jsx(Tooltip, __assign({ title: _jsxs("span", { children: ["\u7ED3\u679C\u8BF4\u660E\uFF1A", _jsx("br", {}), "AI\u57FA\u7840\u80FD\u529B\u4ECE\u8BED\u901F\u3001\u666E\u901A\u8BDD\u3001\u8BED\u8A00\u6D41\u7545\u5EA6\u3001\u8981\u70B9\u5206\u6790\u5339\u914D\u5EA6\u3001\u8BED\u8A00\u4E30\u5BCC\u5EA6\u3001\u5F62\u8C61\u516D\u4E2A\u7EF4\u5EA6\u5BF9\u5019\u9009\u4EBA\u5728\u9762\u8BD5\u4E2D\u7684\u56DE\u7B54\u8868\u73B0\u8FDB\u884C\u8BC4\u4EF7\uFF0C\u6BCF\u4E2A\u7EF4\u5EA6\u5206\u4E3A\u4E09\u4E2A\u6863\uFF0C\u5206\u522B\u4E3A\uFF1A\u524D30%\u4EE3\u8868\u4F18\u79C0\u3001\u4E2D\u95F430%~70%\u4EE3\u8868\u9002\u4E2D\u3001\u540E30%\u4EE3\u8868\u6B20\u4F73\u3002", _jsx("br", {}), "\u6BCF\u4E2A\u80FD\u529B\u7684\u4E09\u6863\u7684\u5206\u6570\u503C\u4F9D\u636E\u5168\u56FD\u5927\u6570\u636E\u7EDF\u8BA1\u800C\u5B9A\u3002\u6839\u636E\u5019\u9009\u4EBA\u5F53\u524DAI\u89C6\u9891\u6B65\u9AA4\u4E0B\u7684\u6BCF\u4E2A\u80FD\u529B\u7684\u5E73\u5747\u5206\u6765\u786E\u5B9A\u6BCF\u4E2A\u80FD\u529B\u7684\u8BC4\u4EF7\u3002\u76F8\u540C\u7684\u5F97\u5206\uFF0C\u6210\u7EE9\u5148\u51FA\u7684\u6392\u540D\u9760\u524D\u3002"] }) }, { children: _jsx(Box, __assign({ display: "flex", alignItems: "center" }, { children: _jsx(InfoOutlineIcon, { sx: { fontSize: '16px' } }) })) }))] })), _jsxs(Collapse, __assign({ in: expand }, { children: [(_b = reportResult === null || reportResult === void 0 ? void 0 : reportResult.evaluations) === null || _b === void 0 ? void 0 : _b.map(function (v) {
|
|
33
|
+
return (_jsxs(Box, __assign({ id: "report-evaluate", component: Paper, variant: "outlined", px: 2, mt: 2 }, { children: [_jsxs(Stack, __assign({ direction: "row", height: 56, alignItems: "center", spacing: 1, marginBottom: 1 }, { children: [_jsx(AiHeaderTitle, { name: "AI\u57FA\u7840\u80FD\u529B" }), _jsx(Tooltip, __assign({ title: _jsxs("span", { children: ["\u7ED3\u679C\u8BF4\u660E\uFF1A", _jsx("br", {}), "AI\u57FA\u7840\u80FD\u529B\u4ECE\u8BED\u901F\u3001\u666E\u901A\u8BDD\u3001\u8BED\u8A00\u6D41\u7545\u5EA6\u3001\u8981\u70B9\u5206\u6790\u5339\u914D\u5EA6\u3001\u8BED\u8A00\u4E30\u5BCC\u5EA6\u3001\u5F62\u8C61\u516D\u4E2A\u7EF4\u5EA6\u5BF9\u5019\u9009\u4EBA\u5728\u9762\u8BD5\u4E2D\u7684\u56DE\u7B54\u8868\u73B0\u8FDB\u884C\u8BC4\u4EF7\uFF0C\u6BCF\u4E2A\u7EF4\u5EA6\u5206\u4E3A\u4E09\u4E2A\u6863\uFF0C\u5206\u522B\u4E3A\uFF1A\u524D30%\u4EE3\u8868\u4F18\u79C0\u3001\u4E2D\u95F430%~70%\u4EE3\u8868\u9002\u4E2D\u3001\u540E30%\u4EE3\u8868\u6B20\u4F73\u3002", _jsx("br", {}), "\u6BCF\u4E2A\u80FD\u529B\u7684\u4E09\u6863\u7684\u5206\u6570\u503C\u4F9D\u636E\u5168\u56FD\u5927\u6570\u636E\u7EDF\u8BA1\u800C\u5B9A\u3002\u6839\u636E\u5019\u9009\u4EBA\u5F53\u524DAI\u89C6\u9891\u6B65\u9AA4\u4E0B\u7684\u6BCF\u4E2A\u80FD\u529B\u7684\u5E73\u5747\u5206\u6765\u786E\u5B9A\u6BCF\u4E2A\u80FD\u529B\u7684\u8BC4\u4EF7\u3002\u76F8\u540C\u7684\u5F97\u5206\uFF0C\u6210\u7EE9\u5148\u51FA\u7684\u6392\u540D\u9760\u524D\u3002"] }) }, { children: _jsx(Box, __assign({ display: "flex", alignItems: "center" }, { children: _jsx(InfoOutlineIcon, { sx: { fontSize: '16px' } }) })) }))] })), _jsxs(Collapse, __assign({ in: expand }, { children: [(_b = reportResult === null || reportResult === void 0 ? void 0 : reportResult.evaluations) === null || _b === void 0 ? void 0 : _b.map(function (v) {
|
|
34
34
|
var _a;
|
|
35
35
|
var c = customInterviewDimRankMap === null || customInterviewDimRankMap === void 0 ? void 0 : customInterviewDimRankMap[v.evaluationToken];
|
|
36
36
|
var rank = rankPercent((c === null || c === void 0 ? void 0 : c.rank) || (v === null || v === void 0 ? void 0 : v.rank), (c === null || c === void 0 ? void 0 : c.total) || (v === null || v === void 0 ? void 0 : v.total));
|
|
@@ -0,0 +1,115 @@
|
|
|
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, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
+
import { REPORT_MODULE_MAP } from "../../../../constants/ai-report";
|
|
14
|
+
import { PostAiInterviewResult } from "../../../../services/ai-report";
|
|
15
|
+
import { useAiReportStore } from "../../../../store/ai-report/global-store";
|
|
16
|
+
import { useRequest } from 'ahooks';
|
|
17
|
+
import { Box, MenuIcon } from 'fbm-ui';
|
|
18
|
+
import { List, ListItem, ListItemButton, ListItemText, Popover } from 'fbm-ui/lib/mui';
|
|
19
|
+
import { forwardRef, memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
20
|
+
var MenuAnchor = forwardRef(function (props) {
|
|
21
|
+
var _a = useState(null), anchorEl = _a[0], setAnchorEl = _a[1];
|
|
22
|
+
var open = Boolean(anchorEl);
|
|
23
|
+
// 接口请求
|
|
24
|
+
var token = props.token, showAiDimension = props.showAiDimension;
|
|
25
|
+
var firstLoad = useRef(true);
|
|
26
|
+
var _b = useState([]), list = _b[0], setList = _b[1];
|
|
27
|
+
var _c = useAiReportStore(), updateState = _c.updateState, updateReportResult = _c.updateReportResult;
|
|
28
|
+
var postAiInterviewResult = useRequest(function () { return PostAiInterviewResult([token]); }, {
|
|
29
|
+
manual: true,
|
|
30
|
+
onSuccess: function (_a) {
|
|
31
|
+
var list = _a.data.list;
|
|
32
|
+
var result = list[0];
|
|
33
|
+
updateReportResult(result);
|
|
34
|
+
if (firstLoad.current) {
|
|
35
|
+
firstLoad.current = false;
|
|
36
|
+
handleMenuList(result);
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
}).run;
|
|
40
|
+
useEffect(function () {
|
|
41
|
+
firstLoad.current = true;
|
|
42
|
+
postAiInterviewResult();
|
|
43
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
44
|
+
}, [token]);
|
|
45
|
+
useEffect(function () {
|
|
46
|
+
updateState(props);
|
|
47
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
48
|
+
}, [props]);
|
|
49
|
+
// 处理菜单数据
|
|
50
|
+
var handleMenuList = function (reportResult) {
|
|
51
|
+
if (!reportResult.status) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
var resList = [REPORT_MODULE_MAP['videoQuestion']];
|
|
55
|
+
var _a = reportResult.collection, collection = _a === void 0 ? [] : _a, _b = reportResult.workplaces, workplaces = _b === void 0 ? [] : _b, _c = reportResult.suggestion, suggestion = _c === void 0 ? { show: false } : _c, _d = reportResult.evaluations, evaluations = _d === void 0 ? [] : _d;
|
|
56
|
+
if (showAiDimension) {
|
|
57
|
+
if (suggestion === null || suggestion === void 0 ? void 0 : suggestion.show) {
|
|
58
|
+
resList.unshift(REPORT_MODULE_MAP['suggestion']);
|
|
59
|
+
}
|
|
60
|
+
if (collection.length > 0 && evaluations.length > 0) {
|
|
61
|
+
resList.unshift(REPORT_MODULE_MAP['evaluate']);
|
|
62
|
+
}
|
|
63
|
+
if (workplaces.length > 0) {
|
|
64
|
+
resList.unshift(REPORT_MODULE_MAP['workplace']);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
if (collection.length > 0) {
|
|
68
|
+
resList.unshift(REPORT_MODULE_MAP['score']);
|
|
69
|
+
}
|
|
70
|
+
console.log(resList);
|
|
71
|
+
setList(resList);
|
|
72
|
+
};
|
|
73
|
+
var handlePopoverOpen = function (event) {
|
|
74
|
+
setAnchorEl(event.currentTarget);
|
|
75
|
+
};
|
|
76
|
+
var handlePopoverClose = function () {
|
|
77
|
+
setAnchorEl(null);
|
|
78
|
+
};
|
|
79
|
+
var scrollToAnchor = useCallback(function (id) {
|
|
80
|
+
if (id) {
|
|
81
|
+
var anchorEle = document.getElementById(id);
|
|
82
|
+
if (anchorEle) {
|
|
83
|
+
anchorEle.scrollIntoView({ block: 'start', behavior: 'smooth' });
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}, []);
|
|
87
|
+
var content = useMemo(function () {
|
|
88
|
+
return (_jsx(List, __assign({ style: { minWidth: 150 }, onMouseLeave: handlePopoverClose }, { children: list.map(function (_a) {
|
|
89
|
+
var name = _a.name, id = _a.id;
|
|
90
|
+
return (_jsx(ListItem, __assign({ disablePadding: true }, { children: _jsx(ListItemButton, __assign({ onClick: function () { return scrollToAnchor(id); } }, { children: _jsx(ListItemText, { primary: name }) })) }), id));
|
|
91
|
+
}) })));
|
|
92
|
+
}, [scrollToAnchor, list]);
|
|
93
|
+
return (_jsxs(_Fragment, { children: [_jsx(Box, __assign({ style: {
|
|
94
|
+
display: 'flex',
|
|
95
|
+
alignItems: 'center',
|
|
96
|
+
justifyContent: 'center',
|
|
97
|
+
position: 'absolute',
|
|
98
|
+
top: 20,
|
|
99
|
+
right: -10,
|
|
100
|
+
zIndex: 999,
|
|
101
|
+
height: 32,
|
|
102
|
+
width: 32,
|
|
103
|
+
backgroundColor: '#fff',
|
|
104
|
+
borderRadius: 4,
|
|
105
|
+
boxShadow: '0px 2px 4px rgba(0,0,0, 0.08)',
|
|
106
|
+
}, "aria-owns": open ? 'menu-anchor-popover' : undefined, "aria-haspopup": "true", onClick: handlePopoverOpen, onMouseEnter: handlePopoverOpen }, { children: _jsx(MenuIcon, {}) })), _jsx(Popover, __assign({ id: "menu-anchor-popover", open: open, anchorEl: anchorEl, anchorOrigin: {
|
|
107
|
+
vertical: 'bottom',
|
|
108
|
+
horizontal: 'right',
|
|
109
|
+
}, transformOrigin: {
|
|
110
|
+
vertical: -8,
|
|
111
|
+
horizontal: 'right',
|
|
112
|
+
}, onClose: handlePopoverClose }, { children: content }))] }));
|
|
113
|
+
});
|
|
114
|
+
MenuAnchor.displayName = 'MenuAnchor';
|
|
115
|
+
export default memo(MenuAnchor);
|
|
@@ -27,7 +27,7 @@ var Report = function () {
|
|
|
27
27
|
var _a = summaryText.sprintf, sprintf = _a === void 0 ? '' : _a, _b = summaryText.variables, variables = _b === void 0 ? [] : _b;
|
|
28
28
|
var textList = (sprintf === null || sprintf === void 0 ? void 0 : sprintf.split('%s')) || [];
|
|
29
29
|
return textList.map(function (text, index) {
|
|
30
|
-
return (_jsxs(_Fragment, { children: [_jsx("span", __assign({ style: { fontSize: 14, color: 'RGBA(0, 0, 0, 0.56)' } }, { children: text })), _jsx("span", __assign({ style: { fontSize: 14, color: '#4CAF50' } }, { children: variables[index] || '' }))] }));
|
|
30
|
+
return (_jsxs(_Fragment, { children: [_jsx("span", __assign({ style: { fontSize: 14, color: 'RGBA(0, 0, 0, 0.56)' } }, { children: text })), _jsx("span", __assign({ style: { fontSize: 14, color: '#4CAF50', fontWeight: 500 } }, { children: variables[index] || '' }))] }));
|
|
31
31
|
});
|
|
32
32
|
}, [summaryText]);
|
|
33
33
|
return (_jsxs(Box, __assign({ width: "100%" }, { children: [_jsxs(Box, __assign({ display: "flex", alignItems: "center", justifyContent: "space-between", pl: 2, pt: 2, pr: 2 }, { children: [_jsx(AiHeaderTitle, { name: "\u7EFC\u5408\u8868\u73B0" }), _jsxs(Box, __assign({ display: "flex", alignItems: "center" }, { children: [_jsx(Typography, __assign({ variant: "body2" }, { children: "\u80FD\u529B\u6807\u51C6" })), _jsx(Tooltip, __assign({ title: title }, { children: _jsx("span", __assign({ style: { display: 'flex', alignItems: 'center', marginLeft: '4px' } }, { children: _jsx(InfoOutlineIcon, { sx: { fontSize: 14, color: 'RGBA(0, 0, 0, 0.86)' } }) })) }))] }))] })), _jsxs(Box, __assign({ height: 300, sx: { position: 'relative' } }, { children: [_jsx(ReportPie, { id: orderToken || '', source: collection }), _jsx(ScoreBigBall, { score: score || 0, status: status })] })), showSummaryText.length > 0 && (_jsx(Box, __assign({ display: "block", width: 498, style: { backgroundColor: '#FAFAFA', padding: 8, margin: '0 auto 16px' } }, { children: showSummaryText })))] })));
|
|
@@ -10,15 +10,15 @@ 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 { Message } from 'fbm-ui';
|
|
14
|
-
import { Divider, Paper } from 'fbm-ui/lib/mui';
|
|
15
|
-
import { useRequest } from 'ahooks';
|
|
16
|
-
import { INTERVIEW_STATUS } from "../../../../enum/ai-report";
|
|
17
|
-
import { PostAiInterviewRefresh } from "../../../../services/ai-report";
|
|
18
|
-
import { useAiReportStore } from "../../../../store/ai-report/global-store";
|
|
19
13
|
import Failed from './Failed';
|
|
20
14
|
import Report from './Report';
|
|
21
15
|
import Score from './Score';
|
|
16
|
+
import { INTERVIEW_STATUS } from "../../../../enum/ai-report";
|
|
17
|
+
import { PostAiInterviewRefresh } from "../../../../services/ai-report";
|
|
18
|
+
import { useAiReportStore } from "../../../../store/ai-report/global-store";
|
|
19
|
+
import { useRequest } from 'ahooks';
|
|
20
|
+
import { Message } from 'fbm-ui';
|
|
21
|
+
import { Divider, Paper } from 'fbm-ui/lib/mui';
|
|
22
22
|
var FAILED = INTERVIEW_STATUS.FAILED, IN_CALCULATION = INTERVIEW_STATUS.IN_CALCULATION;
|
|
23
23
|
var ScoreReport = function (_a) {
|
|
24
24
|
var onRefreshSuccess = _a.onRefreshSuccess;
|
|
@@ -32,10 +32,10 @@ var ScoreReport = function (_a) {
|
|
|
32
32
|
},
|
|
33
33
|
}), run = _d.run, loading = _d.loading;
|
|
34
34
|
if ([FAILED, IN_CALCULATION].includes(status)) {
|
|
35
|
-
return (_jsx(Paper, __assign({ variant: "outlined" }, { children: _jsx(Failed, { status: status, loading: loading, onRefresh: run }) })));
|
|
35
|
+
return (_jsx(Paper, __assign({ id: "report-score", variant: "outlined" }, { children: _jsx(Failed, { status: status, loading: loading, onRefresh: run }) })));
|
|
36
36
|
}
|
|
37
37
|
else {
|
|
38
|
-
return (_jsxs(Paper, __assign({ variant: "outlined" }, { children: [_jsx(Score, { loading: loading, onRefresh: run }), _jsx(Divider, {}), _jsx(Report, {})] })));
|
|
38
|
+
return (_jsxs(Paper, __assign({ id: "report-score", variant: "outlined" }, { children: [_jsx(Score, { loading: loading, onRefresh: run }), _jsx(Divider, {}), _jsx(Report, {})] })));
|
|
39
39
|
}
|
|
40
40
|
};
|
|
41
41
|
export default ScoreReport;
|
|
@@ -20,7 +20,7 @@ var Index = function () {
|
|
|
20
20
|
var _e = useAiReportStore(function (store) { return [store.reportResult]; }), reportResult = _e.reportResult, showAiDimension = _e.showAiDimension;
|
|
21
21
|
if (!showAiDimension || !((_a = reportResult === null || reportResult === void 0 ? void 0 : reportResult.suggestion) === null || _a === void 0 ? void 0 : _a.show))
|
|
22
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) {
|
|
23
|
+
return (_jsxs(Box, __assign({ id: "report-suggestion", 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
24
|
return _jsx(Suggestion, { abilityName: v.abilityName, interviewQuestion: v.interviewQuestion, keyPoints: v.keyPoints }, v.abilityName);
|
|
25
25
|
}) }))] })));
|
|
26
26
|
};
|
|
@@ -17,6 +17,6 @@ import { Box, Empty, Paper } from 'fbm-ui';
|
|
|
17
17
|
var VideoQuestion = function () {
|
|
18
18
|
var reportResult = useAiReportStore(function (store) { return [store.reportResult, store.operableButtons]; }).reportResult;
|
|
19
19
|
var steps = (reportResult || {}).steps;
|
|
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
|
+
return (_jsxs(Box, __assign({ id: "report-question", 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" })) }))] })));
|
|
21
21
|
};
|
|
22
22
|
export default VideoQuestion;
|
|
@@ -46,7 +46,7 @@ export declare const StyledSlider: import("@emotion/styled").StyledComponent<{
|
|
|
46
46
|
name?: string | undefined;
|
|
47
47
|
onChange?: ((event: Event, value: number | number[], activeThumb: number) => void) | undefined;
|
|
48
48
|
onChangeCommitted?: ((event: Event | import("react").SyntheticEvent<Element, Event>, value: number | number[]) => void) | undefined;
|
|
49
|
-
orientation?: "
|
|
49
|
+
orientation?: "vertical" | "horizontal" | undefined;
|
|
50
50
|
scale?: ((value: number) => number) | undefined;
|
|
51
51
|
step?: number | null | undefined;
|
|
52
52
|
tabIndex?: number | undefined;
|
|
@@ -60,7 +60,7 @@ var Index = function () {
|
|
|
60
60
|
var _b = useAiReportStore(function (store) { return [store.reportResult, store.operableButtons]; }), reportResult = _b.reportResult, showAiDimension = _b.showAiDimension, canEditAiDimension = _b.canEditAiDimension;
|
|
61
61
|
if (!showAiDimension)
|
|
62
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) {
|
|
63
|
+
return (_jsxs(Box, __assign({ id: "report-workplace", 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
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
65
|
}) }))] })));
|
|
66
66
|
};
|
|
@@ -46,7 +46,7 @@ export declare const WorkplaceStyledSlider: import("@emotion/styled").StyledComp
|
|
|
46
46
|
name?: string | undefined;
|
|
47
47
|
onChange?: ((event: Event, value: number | number[], activeThumb: number) => void) | undefined;
|
|
48
48
|
onChangeCommitted?: ((event: Event | import("react").SyntheticEvent<Element, Event>, value: number | number[]) => void) | undefined;
|
|
49
|
-
orientation?: "
|
|
49
|
+
orientation?: "vertical" | "horizontal" | undefined;
|
|
50
50
|
scale?: ((value: number) => number) | undefined;
|
|
51
51
|
step?: number | null | undefined;
|
|
52
52
|
tabIndex?: number | undefined;
|
|
@@ -9,12 +9,14 @@ var __assign = (this && this.__assign) || function () {
|
|
|
9
9
|
};
|
|
10
10
|
return __assign.apply(this, arguments);
|
|
11
11
|
};
|
|
12
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
+
import MenuAnchor from './components/MenuAnchor';
|
|
13
14
|
import ReportRoot from './Root';
|
|
14
15
|
import RootProvider from "../../components/RootProvider";
|
|
15
16
|
import { forwardRef, memo } from 'react';
|
|
16
17
|
var AiReport = forwardRef(function (props, ref) {
|
|
17
|
-
|
|
18
|
+
var token = props.token, _a = props.showAiDimension, showAiDimension = _a === void 0 ? true : _a;
|
|
19
|
+
return (_jsxs(RootProvider, { children: [_jsx(MenuAnchor, { token: token, showAiDimension: showAiDimension }), _jsx(ReportRoot, __assign({ ref: ref }, props))] }));
|
|
18
20
|
});
|
|
19
21
|
AiReport.displayName = 'AiReport';
|
|
20
22
|
export default memo(AiReport);
|
|
@@ -175,3 +175,13 @@ export interface AiReportProps {
|
|
|
175
175
|
export interface AiReportRef {
|
|
176
176
|
handleRefresh: () => void;
|
|
177
177
|
}
|
|
178
|
+
export interface AnchorItem {
|
|
179
|
+
type: string;
|
|
180
|
+
name: string;
|
|
181
|
+
id: string;
|
|
182
|
+
}
|
|
183
|
+
export interface MenuAnchorProps {
|
|
184
|
+
list?: AnchorItem[];
|
|
185
|
+
token: string;
|
|
186
|
+
showAiDimension: boolean;
|
|
187
|
+
}
|
|
@@ -71,7 +71,9 @@ export var useAiAnalysisStore = (_a = createStore(function () {
|
|
|
71
71
|
__assign(__assign({}, item), { isNotCompute: false, weight: weight }),
|
|
72
72
|
];
|
|
73
73
|
});
|
|
74
|
-
|
|
74
|
+
var resAiAbilities = update(data, { $splice: $splice });
|
|
75
|
+
console.log('resAiAbilities', resAiAbilities);
|
|
76
|
+
setAiAbilities(resAiAbilities);
|
|
75
77
|
}, []);
|
|
76
78
|
/**
|
|
77
79
|
* 更新AI分析维度
|
|
@@ -101,7 +103,7 @@ export var useAiAnalysisStore = (_a = createStore(function () {
|
|
|
101
103
|
*/
|
|
102
104
|
var updateAiAbilitiesWeight = useCallback(function (value, index) {
|
|
103
105
|
var _a;
|
|
104
|
-
console.log(value);
|
|
106
|
+
console.log('updateAiAbilitiesWeight', value);
|
|
105
107
|
var formatValue = formatNumberDecimal(value);
|
|
106
108
|
var curOriginalWeight = Number(aiAbilities[index].weight);
|
|
107
109
|
var disabledWeight = Number(aiAbilities[aiAbilities.length - 1].weight);
|
|
@@ -119,7 +121,6 @@ export var useAiAnalysisStore = (_a = createStore(function () {
|
|
|
119
121
|
var WorkplaceLength = newAiAbilities.filter(function (v) { return v.abilityType === 2; }).length;
|
|
120
122
|
if (WorkplaceLength === 0) {
|
|
121
123
|
setWorkplaces([]);
|
|
122
|
-
console.log('222');
|
|
123
124
|
}
|
|
124
125
|
if (newAiAbilities.length) {
|
|
125
126
|
computeWeight(newAiAbilities);
|
|
@@ -1,2 +1,29 @@
|
|
|
1
1
|
export declare const RosePieColors: string[][];
|
|
2
2
|
export declare const scoreRankIntervalColors: string[];
|
|
3
|
+
export declare const REPORT_MODULE_MAP: {
|
|
4
|
+
score: {
|
|
5
|
+
id: string;
|
|
6
|
+
name: string;
|
|
7
|
+
type: string;
|
|
8
|
+
};
|
|
9
|
+
workplace: {
|
|
10
|
+
id: string;
|
|
11
|
+
name: string;
|
|
12
|
+
type: string;
|
|
13
|
+
};
|
|
14
|
+
evaluate: {
|
|
15
|
+
id: string;
|
|
16
|
+
name: string;
|
|
17
|
+
type: string;
|
|
18
|
+
};
|
|
19
|
+
suggestion: {
|
|
20
|
+
id: string;
|
|
21
|
+
name: string;
|
|
22
|
+
type: string;
|
|
23
|
+
};
|
|
24
|
+
videoQuestion: {
|
|
25
|
+
id: string;
|
|
26
|
+
name: string;
|
|
27
|
+
type: string;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.scoreRankIntervalColors = exports.RosePieColors = void 0;
|
|
3
|
+
exports.REPORT_MODULE_MAP = exports.scoreRankIntervalColors = exports.RosePieColors = void 0;
|
|
4
4
|
exports.RosePieColors = [
|
|
5
5
|
['rgba(78, 163, 253, 0.2)', 'rgba(78, 163, 253, 0.4)', 'rgba(78, 163, 253, 0.6)', 'rgba(78, 163, 253, 1)'],
|
|
6
6
|
['rgba(82, 206, 220, 0.2)', 'rgba(82, 206, 220, 0.4)', 'rgba(82, 206, 220, 0.6)', 'rgba(82, 206, 220, 1)'],
|
|
@@ -13,3 +13,30 @@ exports.RosePieColors = [
|
|
|
13
13
|
['rgba(160, 115, 255, 0.2)', 'rgba(160, 115, 255, 0.4)', 'rgba(160, 115, 255, 0.6)', 'rgba(160, 115, 255, 1)'],
|
|
14
14
|
];
|
|
15
15
|
exports.scoreRankIntervalColors = ['#C8E6C9', '#A5D6A7', '#81C784', '#66BB6A', '#4CAF50'];
|
|
16
|
+
exports.REPORT_MODULE_MAP = {
|
|
17
|
+
score: {
|
|
18
|
+
id: 'report-score',
|
|
19
|
+
name: '综合表现',
|
|
20
|
+
type: 'score',
|
|
21
|
+
},
|
|
22
|
+
workplace: {
|
|
23
|
+
id: 'report-workplace',
|
|
24
|
+
name: '职场能力表现',
|
|
25
|
+
type: 'workplace',
|
|
26
|
+
},
|
|
27
|
+
evaluate: {
|
|
28
|
+
id: 'report-evaluate',
|
|
29
|
+
name: 'AI基础能力',
|
|
30
|
+
type: 'evaluate',
|
|
31
|
+
},
|
|
32
|
+
suggestion: {
|
|
33
|
+
id: 'report-suggestion',
|
|
34
|
+
name: '考察建议',
|
|
35
|
+
type: 'suggestion',
|
|
36
|
+
},
|
|
37
|
+
videoQuestion: {
|
|
38
|
+
id: 'report-question',
|
|
39
|
+
name: '视频题',
|
|
40
|
+
type: 'videoQuestion',
|
|
41
|
+
},
|
|
42
|
+
};
|
|
@@ -27,6 +27,6 @@ var AiAnalysis = function () {
|
|
|
27
27
|
var _b = (0, react_1.useState)(false), aiAnalysisOpen = _b[0], setAiAnalysisOpen = _b[1];
|
|
28
28
|
var language = analysisState.language;
|
|
29
29
|
var isOpenAiAnalysis = aiAbilities.length > 0;
|
|
30
|
-
return ((0, jsx_runtime_1.jsxs)(fbm_ui_1.Box, { children: [aiAnalysisOpen && (0, jsx_runtime_1.jsx)(AiAssessmentCriteria_1.default, { open: aiAnalysisOpen, onClose: function () { return setAiAnalysisOpen(false); } }), isOpenAiAnalysis && ((0, jsx_runtime_1.jsx)(fbm_ui_1.Box, __assign({ display: "flex", alignItems: "center", justifyContent: "space-between" }, { children: (0, jsx_runtime_1.jsxs)(fbm_ui_1.Box, __assign({ display: "flex", alignItems: "center" }, { children: [(0, jsx_runtime_1.jsx)(fbm_ui_1.Typography, __assign({ variant: "subtitle1" }, { children: "\u6743\u91CD\u8BBE\u7F6E" })), language && const_1.LANGUAGE_NAMES[language]
|
|
30
|
+
return ((0, jsx_runtime_1.jsxs)(fbm_ui_1.Box, { children: [aiAnalysisOpen && (0, jsx_runtime_1.jsx)(AiAssessmentCriteria_1.default, { open: aiAnalysisOpen, onClose: function () { return setAiAnalysisOpen(false); } }), isOpenAiAnalysis && ((0, jsx_runtime_1.jsx)(fbm_ui_1.Box, __assign({ display: "flex", alignItems: "center", justifyContent: "space-between" }, { children: (0, jsx_runtime_1.jsxs)(fbm_ui_1.Box, __assign({ display: "flex", alignItems: "center" }, { children: [(0, jsx_runtime_1.jsx)(fbm_ui_1.Typography, __assign({ variant: "subtitle1" }, { children: "\u6743\u91CD\u8BBE\u7F6E" })), language && const_1.LANGUAGE_NAMES[language] ? ((0, jsx_runtime_1.jsxs)(fbm_ui_1.Typography, __assign({ variant: "caption", color: "secondary", ml: "8px" }, { children: ["\u8BED\u79CD\uFF1A", language && const_1.LANGUAGE_NAMES[language]] }))) : ('')] })) }))), aiAbilities.length > 0 && ((0, jsx_runtime_1.jsx)(mui_1.List, { children: aiAbilities.map(function (item, index) { return ((0, jsx_runtime_1.jsx)(AnalysisItem_1.default, __assign({ index: index }, item), item.token)); }) })), (0, jsx_runtime_1.jsx)(mui_1.Divider, { sx: { mb: 1 } }), (0, jsx_runtime_1.jsx)(fbm_ui_1.Button, __assign({ variant: "text", color: "inherit", icon: (0, jsx_runtime_1.jsx)(fbm_ui_1.AddIcon, {}), onClick: function () { return setAiAnalysisOpen(true); } }, { children: "\u6DFB\u52A0AI\u5206\u6790\u7EF4\u5EA6" }))] }));
|
|
31
31
|
};
|
|
32
32
|
exports.default = AiAnalysis;
|
|
@@ -61,7 +61,7 @@ var ahooks_1 = require("ahooks");
|
|
|
61
61
|
var fbm_ui_1 = require("fbm-ui");
|
|
62
62
|
var react_1 = require("react");
|
|
63
63
|
var QuestionForm = (0, react_1.forwardRef)(function (props, ref) {
|
|
64
|
-
var aiShowType = props.aiShowType, initialValues = props.initialValues, values = props.values, preview = props.preview, onValuesChange = props.onValuesChange, onSubmit = props.onSubmit;
|
|
64
|
+
var aiShowType = props.aiShowType, initialValues = props.initialValues, values = props.values, preview = props.preview, onValuesChange = props.onValuesChange, onSubmit = props.onSubmit, onCategoryChange = props.onCategoryChange;
|
|
65
65
|
var _a = (0, question_ability_store_1.useQuestionCollectionListStore)(function (store) { return [store.questionCollectionList]; }), questionCollectionList = _a.questionCollectionList, updateQuestionCollectionList = _a.updateQuestionCollectionList;
|
|
66
66
|
var data = (0, ahooks_1.useRequest)(ai_ability_1.PostQuestionCollectionList, { manual: preview }).data;
|
|
67
67
|
var form = (0, fbm_ui_1.useForm)({
|
|
@@ -78,6 +78,9 @@ var QuestionForm = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
78
78
|
});
|
|
79
79
|
}); },
|
|
80
80
|
});
|
|
81
|
+
var handleCategoryChange = function (e, value) {
|
|
82
|
+
onCategoryChange === null || onCategoryChange === void 0 ? void 0 : onCategoryChange(value);
|
|
83
|
+
};
|
|
81
84
|
(0, react_1.useImperativeHandle)(ref, function () { return ({
|
|
82
85
|
handleValues: function () { return form.values; },
|
|
83
86
|
handleSubmit: function () { return form.handleSubmit(); },
|
|
@@ -101,7 +104,7 @@ var QuestionForm = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
101
104
|
token: token,
|
|
102
105
|
isWorkplace: isWorkplace,
|
|
103
106
|
});
|
|
104
|
-
}) }) })))] })), form.values.broadcastType === 1 || preview ? ((0, jsx_runtime_1.jsx)(fbm_ui_1.FormItem, { required: true, disabled: preview, name: "desc", label: "\u9762\u8BD5\u5185\u5BB9", max: 300, placeholder: "\u9762\u8BD5\u5185\u5BB9\uFF08\u7CFB\u7EDF\u5C06\u6839\u636E\u6B64\u5185\u5BB9\u5411\u5019\u9009\u4EBA\u8FDB\u884C\u8BED\u97F3\u64AD\u62A5\uFF09" })) : ((0, jsx_runtime_1.jsx)(VideoVoice_1.default, {})), aiShowType === ai_question_1.ADD_QUESTION_TYPE.LANGUAGE && ((0, jsx_runtime_1.jsx)(fbm_ui_1.FormItem, { sx: { height: 'auto', mb: 2 }, required: true, name: "readText", label: "\u6717\u8BFB\u5185\u5BB9", max: 240, InputProps: {
|
|
107
|
+
}), onChange: handleCategoryChange }) })))] })), form.values.broadcastType === 1 || preview ? ((0, jsx_runtime_1.jsx)(fbm_ui_1.FormItem, { required: true, disabled: preview, name: "desc", label: "\u9762\u8BD5\u5185\u5BB9", max: 300, placeholder: "\u9762\u8BD5\u5185\u5BB9\uFF08\u7CFB\u7EDF\u5C06\u6839\u636E\u6B64\u5185\u5BB9\u5411\u5019\u9009\u4EBA\u8FDB\u884C\u8BED\u97F3\u64AD\u62A5\uFF09" })) : ((0, jsx_runtime_1.jsx)(VideoVoice_1.default, {})), aiShowType === ai_question_1.ADD_QUESTION_TYPE.LANGUAGE && ((0, jsx_runtime_1.jsx)(fbm_ui_1.FormItem, { sx: { height: 'auto', mb: 2 }, required: true, name: "readText", label: "\u6717\u8BFB\u5185\u5BB9", max: 240, InputProps: {
|
|
105
108
|
rows: 3,
|
|
106
109
|
multiline: true,
|
|
107
110
|
placeholder: '朗读内容(候选人将根据此内容进行朗读)',
|
|
@@ -141,7 +141,8 @@ var QuestionUpdate = function () {
|
|
|
141
141
|
var _b = values || { category: undefined }, _c = _b.readText, readText = _c === void 0 ? '' : _c, otherValues = __rest(_b, ["readText"]);
|
|
142
142
|
resolve({
|
|
143
143
|
errorIndexes: errorIndexes,
|
|
144
|
-
params: __assign(__assign(__assign(__assign({}, item), otherValues), analysisState), { category: (otherValues === null || otherValues === void 0 ? void 0 : otherValues.category) ? [(_a = otherValues === null || otherValues === void 0 ? void 0 : otherValues.category) === null || _a === void 0 ? void 0 : _a.value] : [], extra: readText && item.extra ? __assign(__assign({}, item.extra), { readText: readText }) : item.extra, aiType: newAiAbilities.length > 0
|
|
144
|
+
params: __assign(__assign(__assign(__assign({}, item), otherValues), analysisState), { category: (otherValues === null || otherValues === void 0 ? void 0 : otherValues.category) ? [(_a = otherValues === null || otherValues === void 0 ? void 0 : otherValues.category) === null || _a === void 0 ? void 0 : _a.value] : [], extra: readText && item.extra ? __assign(__assign({}, item.extra), { readText: readText }) : item.extra, aiType: newAiAbilities.length > 0 ? 2 : 1, // 不参与AI分析的考察能力不可设置题目权重,只有可AI分析的职场能力和AI基础能力
|
|
145
|
+
aiShowType: aiShowType, aiAbilities: newAiAbilities }),
|
|
145
146
|
});
|
|
146
147
|
});
|
|
147
148
|
}, [aiAbilities, aiShowType, analysisState, item, setKeyPointAnalysisError]);
|
|
@@ -205,8 +206,8 @@ var QuestionUpdate = function () {
|
|
|
205
206
|
});
|
|
206
207
|
}); }, [getModelParams, item === null || item === void 0 ? void 0 : item.videoBroadcast.videoUrl, token, editModel, index, addModel, updateQuestionState]);
|
|
207
208
|
var handleWorkplaceData = (0, react_1.useCallback)(function (curSelectWorkPlace) {
|
|
208
|
-
|
|
209
|
-
var curAiAbilities =
|
|
209
|
+
console.log('curSelectWorkPlace', curSelectWorkPlace);
|
|
210
|
+
var curAiAbilities = aiAbilities.slice();
|
|
210
211
|
// 是否是初始化
|
|
211
212
|
var inInit = true;
|
|
212
213
|
// 考察能力是否包含在AI能力
|
|
@@ -214,35 +215,33 @@ var QuestionUpdate = function () {
|
|
|
214
215
|
var CurWorkplace = questionCollectionList.find(function (v) { return v.name === curSelectWorkPlace.label; }) || {};
|
|
215
216
|
var CurWorkPlaceAiAbility = __assign(__assign(__assign({}, curSelectWorkPlace), CurWorkplace), { abilityType: 2, weight: 0, sort: 0 });
|
|
216
217
|
inInit = workplaceTypeIndex === -1;
|
|
217
|
-
// 是否可修改
|
|
218
|
-
// CurWorkPlaceAiAbility.isNotCompute = !CurWorkPlaceAiAbility.isWorkplace;
|
|
219
218
|
CurWorkPlaceAiAbility.desc = CurWorkPlaceAiAbility.name;
|
|
220
219
|
console.log('CurWorkPlaceAiAbility', CurWorkPlaceAiAbility);
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
console.log('form value category:', value.category);
|
|
228
|
-
// 考察能力未发生变化
|
|
229
|
-
var WorkplaceIndex = item.aiAbilities.findIndex(function (v) { var _a; return v.name === ((_a = value.category) === null || _a === void 0 ? void 0 : _a.label); });
|
|
230
|
-
if (WorkplaceIndex > -1) {
|
|
231
|
-
return;
|
|
220
|
+
// 添加和修改
|
|
221
|
+
if (workplaceTypeIndex > -1) {
|
|
222
|
+
curAiAbilities.splice(workplaceTypeIndex, 1, CurWorkPlaceAiAbility);
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
curAiAbilities.unshift(CurWorkPlaceAiAbility);
|
|
232
226
|
}
|
|
227
|
+
console.log('curAiAbilities', curAiAbilities, inInit);
|
|
228
|
+
updateAiAbilities(curAiAbilities, inInit);
|
|
229
|
+
}, [questionCollectionList, aiAbilities, updateAiAbilities]);
|
|
230
|
+
var handleCategoryChange = (0, react_1.useCallback)(function (value) {
|
|
231
|
+
console.log('category value:', value);
|
|
233
232
|
// 考察能力更改
|
|
234
|
-
if (value
|
|
235
|
-
handleWorkplaceData(value
|
|
233
|
+
if (value && value.label) {
|
|
234
|
+
handleWorkplaceData(value);
|
|
236
235
|
}
|
|
237
|
-
else if (!value
|
|
238
|
-
var curAiAbilities =
|
|
236
|
+
else if (!(value === null || value === void 0 ? void 0 : value.label)) {
|
|
237
|
+
var curAiAbilities = aiAbilities.filter(function (v) { return v.abilityType === 1; });
|
|
239
238
|
updateAiAbilities(curAiAbilities);
|
|
240
239
|
// 考察能力删除
|
|
241
|
-
console.log('考察能力删除');
|
|
240
|
+
console.log('考察能力删除', aiAbilities);
|
|
242
241
|
}
|
|
243
242
|
},
|
|
244
243
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
245
|
-
[
|
|
244
|
+
[aiAbilities, handleWorkplaceData]);
|
|
246
245
|
(0, react_1.useEffect)(function () {
|
|
247
246
|
if (open) {
|
|
248
247
|
updateState({ language: item.language, aiSwitch: item.aiSwitch });
|
|
@@ -258,6 +257,6 @@ var QuestionUpdate = function () {
|
|
|
258
257
|
(_a = formRef === null || formRef === void 0 ? void 0 : formRef.current) === null || _a === void 0 ? void 0 : _a.setFormValues({ category: { label: '', value: '' } });
|
|
259
258
|
}
|
|
260
259
|
}, [workplaces]);
|
|
261
|
-
return ((0, jsx_runtime_1.jsx)(fbm_ui_1.Dialog, __assign({ open: open, header: CustomHeader, size: "sm", okText: "\u786E\u8BA4", onClose: handleClose, onOk: handleOk }, { children: (0, jsx_runtime_1.jsx)(ScrollDialogContent_1.default, { children: (0, jsx_runtime_1.jsx)(fbm_ui_1.Box, __assign({ sx: { mt: 1 } }, { children: (0, jsx_runtime_1.jsx)(Form_1.default, { ref: formRef, initialValues: initialValues, aiShowType: aiShowType, onSubmit: handleSubmit,
|
|
260
|
+
return ((0, jsx_runtime_1.jsx)(fbm_ui_1.Dialog, __assign({ open: open, header: CustomHeader, size: "sm", okText: "\u786E\u8BA4", onClose: handleClose, onOk: handleOk }, { children: (0, jsx_runtime_1.jsx)(ScrollDialogContent_1.default, { children: (0, jsx_runtime_1.jsx)(fbm_ui_1.Box, __assign({ sx: { mt: 1 } }, { children: (0, jsx_runtime_1.jsx)(Form_1.default, { ref: formRef, initialValues: initialValues, aiShowType: aiShowType, onSubmit: handleSubmit, onCategoryChange: handleCategoryChange }) })) }) })));
|
|
262
261
|
};
|
|
263
262
|
exports.default = QuestionUpdate;
|
|
@@ -45,6 +45,7 @@ export interface QuestionFormProps {
|
|
|
45
45
|
values?: QuestionFormValues;
|
|
46
46
|
preview?: boolean;
|
|
47
47
|
aiShowType: number;
|
|
48
|
+
onCategoryChange?: (category: any) => void;
|
|
48
49
|
onValuesChange?: (values: QuestionFormValues) => void;
|
|
49
50
|
onSubmit?: (values: QuestionFormValues) => void;
|
|
50
51
|
}
|
|
@@ -32,8 +32,8 @@ var AiReportRoot = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
32
32
|
var token = props.token, reminderSent = props.reminderSent, operableButtons = props.operableButtons, onLoad = props.onLoad, onSendReminderClick = props.onSendReminderClick;
|
|
33
33
|
var firstLoad = (0, react_1.useRef)(true);
|
|
34
34
|
var _a = (0, global_store_1.useAiReportStore)(), updateState = _a.updateState, updateReportResult = _a.updateReportResult, reportResult = _a.reportResult;
|
|
35
|
-
var _b = reportResult || {}, _c = _b.collection, collection = _c === void 0 ? [] : _c, _d = _b.
|
|
36
|
-
var
|
|
35
|
+
var _b = reportResult || {}, _c = _b.collection, collection = _c === void 0 ? [] : _c, _d = _b.workplaces, workplaces = _d === void 0 ? [] : _d;
|
|
36
|
+
var _e = (0, ahooks_1.useRequest)(function () { return (0, ai_report_2.PostAiInterviewResult)([token]); }, {
|
|
37
37
|
manual: true,
|
|
38
38
|
onSuccess: function (_a) {
|
|
39
39
|
var list = _a.data.list;
|
|
@@ -51,7 +51,7 @@ var AiReportRoot = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
51
51
|
onLoad === null || onLoad === void 0 ? void 0 : onLoad(__assign({ pageStepIndexes: pageStepIndexes_1 }, result));
|
|
52
52
|
}
|
|
53
53
|
},
|
|
54
|
-
}), data =
|
|
54
|
+
}), data = _e.data, loading = _e.loading, postAiInterviewResult = _e.run;
|
|
55
55
|
var status = (data === null || data === void 0 ? void 0 : data.data.list[0].status) || NO_ANSWER;
|
|
56
56
|
var handleRefreshSuccess = (0, react_1.useCallback)(function () {
|
|
57
57
|
postAiInterviewResult();
|
|
@@ -75,7 +75,7 @@ var AiReportRoot = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
75
75
|
else {
|
|
76
76
|
return ((0, jsx_runtime_1.jsxs)(fbm_ui_1.Box, { children: [(0, jsx_runtime_1.jsx)(NotFinish_1.default, {}), (collection === null || collection === void 0 ? void 0 : collection.length) > 0 && (0, jsx_runtime_1.jsx)(ScoreReport_1.default, { onRefreshSuccess: handleRefreshSuccess }), (workplaces === null || workplaces === void 0 ? void 0 : workplaces.length) > 0 && (0, jsx_runtime_1.jsx)(WorkPlaces_1.default, {}), (collection === null || collection === void 0 ? void 0 : collection.length) > 0 && (0, jsx_runtime_1.jsx)(AIEvaluate_1.default, {}), (0, jsx_runtime_1.jsx)(Suggestion_1.default, {}), (0, jsx_runtime_1.jsx)(VideoQuestion_1.default, {})] }));
|
|
77
77
|
}
|
|
78
|
-
}, [handleRefreshSuccess, onSendReminderClick, reminderSent, status, operableButtons, collection, workplaces
|
|
78
|
+
}, [handleRefreshSuccess, onSendReminderClick, reminderSent, status, operableButtons, collection, workplaces]);
|
|
79
79
|
return ((0, jsx_runtime_1.jsx)(fbm_ui_1.Box, __assign({ loading: firstLoad.current && loading, sx: { width: '100%', minHeight: '584px', height: '100%', margin: '0 auto', overflow: 'auto' } }, { children: aiReportResult })));
|
|
80
80
|
});
|
|
81
81
|
AiReportRoot.displayName = 'AiReportRoot';
|
|
@@ -35,7 +35,7 @@ var Index = function () {
|
|
|
35
35
|
}, [expand]);
|
|
36
36
|
if (!showAiDimension || ((_a = reportResult === null || reportResult === void 0 ? void 0 : reportResult.evaluations) === null || _a === void 0 ? void 0 : _a.length) === 0)
|
|
37
37
|
return null;
|
|
38
|
-
return ((0, jsx_runtime_1.jsxs)(mui_1.Box, __assign({ component: mui_1.Paper, variant: "outlined", px: 2, mt: 2 }, { children: [(0, jsx_runtime_1.jsxs)(mui_1.Stack, __assign({ direction: "row", height: 56, alignItems: "center", spacing: 1, marginBottom: 1 }, { children: [(0, jsx_runtime_1.jsx)(AiHeaderTitle_1.default, { name: "AI\u57FA\u7840\u80FD\u529B" }), (0, jsx_runtime_1.jsx)(fbm_ui_1.Tooltip, __assign({ title: (0, jsx_runtime_1.jsxs)("span", { children: ["\u7ED3\u679C\u8BF4\u660E\uFF1A", (0, jsx_runtime_1.jsx)("br", {}), "AI\u57FA\u7840\u80FD\u529B\u4ECE\u8BED\u901F\u3001\u666E\u901A\u8BDD\u3001\u8BED\u8A00\u6D41\u7545\u5EA6\u3001\u8981\u70B9\u5206\u6790\u5339\u914D\u5EA6\u3001\u8BED\u8A00\u4E30\u5BCC\u5EA6\u3001\u5F62\u8C61\u516D\u4E2A\u7EF4\u5EA6\u5BF9\u5019\u9009\u4EBA\u5728\u9762\u8BD5\u4E2D\u7684\u56DE\u7B54\u8868\u73B0\u8FDB\u884C\u8BC4\u4EF7\uFF0C\u6BCF\u4E2A\u7EF4\u5EA6\u5206\u4E3A\u4E09\u4E2A\u6863\uFF0C\u5206\u522B\u4E3A\uFF1A\u524D30%\u4EE3\u8868\u4F18\u79C0\u3001\u4E2D\u95F430%~70%\u4EE3\u8868\u9002\u4E2D\u3001\u540E30%\u4EE3\u8868\u6B20\u4F73\u3002", (0, jsx_runtime_1.jsx)("br", {}), "\u6BCF\u4E2A\u80FD\u529B\u7684\u4E09\u6863\u7684\u5206\u6570\u503C\u4F9D\u636E\u5168\u56FD\u5927\u6570\u636E\u7EDF\u8BA1\u800C\u5B9A\u3002\u6839\u636E\u5019\u9009\u4EBA\u5F53\u524DAI\u89C6\u9891\u6B65\u9AA4\u4E0B\u7684\u6BCF\u4E2A\u80FD\u529B\u7684\u5E73\u5747\u5206\u6765\u786E\u5B9A\u6BCF\u4E2A\u80FD\u529B\u7684\u8BC4\u4EF7\u3002\u76F8\u540C\u7684\u5F97\u5206\uFF0C\u6210\u7EE9\u5148\u51FA\u7684\u6392\u540D\u9760\u524D\u3002"] }) }, { children: (0, jsx_runtime_1.jsx)(mui_1.Box, __assign({ display: "flex", alignItems: "center" }, { children: (0, jsx_runtime_1.jsx)(fbm_ui_1.InfoOutlineIcon, { sx: { fontSize: '16px' } }) })) }))] })), (0, jsx_runtime_1.jsxs)(mui_1.Collapse, __assign({ in: expand }, { children: [(_b = reportResult === null || reportResult === void 0 ? void 0 : reportResult.evaluations) === null || _b === void 0 ? void 0 : _b.map(function (v) {
|
|
38
|
+
return ((0, jsx_runtime_1.jsxs)(mui_1.Box, __assign({ id: "report-evaluate", component: mui_1.Paper, variant: "outlined", px: 2, mt: 2 }, { children: [(0, jsx_runtime_1.jsxs)(mui_1.Stack, __assign({ direction: "row", height: 56, alignItems: "center", spacing: 1, marginBottom: 1 }, { children: [(0, jsx_runtime_1.jsx)(AiHeaderTitle_1.default, { name: "AI\u57FA\u7840\u80FD\u529B" }), (0, jsx_runtime_1.jsx)(fbm_ui_1.Tooltip, __assign({ title: (0, jsx_runtime_1.jsxs)("span", { children: ["\u7ED3\u679C\u8BF4\u660E\uFF1A", (0, jsx_runtime_1.jsx)("br", {}), "AI\u57FA\u7840\u80FD\u529B\u4ECE\u8BED\u901F\u3001\u666E\u901A\u8BDD\u3001\u8BED\u8A00\u6D41\u7545\u5EA6\u3001\u8981\u70B9\u5206\u6790\u5339\u914D\u5EA6\u3001\u8BED\u8A00\u4E30\u5BCC\u5EA6\u3001\u5F62\u8C61\u516D\u4E2A\u7EF4\u5EA6\u5BF9\u5019\u9009\u4EBA\u5728\u9762\u8BD5\u4E2D\u7684\u56DE\u7B54\u8868\u73B0\u8FDB\u884C\u8BC4\u4EF7\uFF0C\u6BCF\u4E2A\u7EF4\u5EA6\u5206\u4E3A\u4E09\u4E2A\u6863\uFF0C\u5206\u522B\u4E3A\uFF1A\u524D30%\u4EE3\u8868\u4F18\u79C0\u3001\u4E2D\u95F430%~70%\u4EE3\u8868\u9002\u4E2D\u3001\u540E30%\u4EE3\u8868\u6B20\u4F73\u3002", (0, jsx_runtime_1.jsx)("br", {}), "\u6BCF\u4E2A\u80FD\u529B\u7684\u4E09\u6863\u7684\u5206\u6570\u503C\u4F9D\u636E\u5168\u56FD\u5927\u6570\u636E\u7EDF\u8BA1\u800C\u5B9A\u3002\u6839\u636E\u5019\u9009\u4EBA\u5F53\u524DAI\u89C6\u9891\u6B65\u9AA4\u4E0B\u7684\u6BCF\u4E2A\u80FD\u529B\u7684\u5E73\u5747\u5206\u6765\u786E\u5B9A\u6BCF\u4E2A\u80FD\u529B\u7684\u8BC4\u4EF7\u3002\u76F8\u540C\u7684\u5F97\u5206\uFF0C\u6210\u7EE9\u5148\u51FA\u7684\u6392\u540D\u9760\u524D\u3002"] }) }, { children: (0, jsx_runtime_1.jsx)(mui_1.Box, __assign({ display: "flex", alignItems: "center" }, { children: (0, jsx_runtime_1.jsx)(fbm_ui_1.InfoOutlineIcon, { sx: { fontSize: '16px' } }) })) }))] })), (0, jsx_runtime_1.jsxs)(mui_1.Collapse, __assign({ in: expand }, { children: [(_b = reportResult === null || reportResult === void 0 ? void 0 : reportResult.evaluations) === null || _b === void 0 ? void 0 : _b.map(function (v) {
|
|
39
39
|
var _a;
|
|
40
40
|
var c = customInterviewDimRankMap === null || customInterviewDimRankMap === void 0 ? void 0 : customInterviewDimRankMap[v.evaluationToken];
|
|
41
41
|
var rank = (0, utils_1.rankPercent)((c === null || c === void 0 ? void 0 : c.rank) || (v === null || v === void 0 ? void 0 : v.rank), (c === null || c === void 0 ? void 0 : c.total) || (v === null || v === void 0 ? void 0 : v.total));
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
15
|
+
var ai_report_1 = require("../../../../constants/ai-report");
|
|
16
|
+
var ai_report_2 = require("../../../../services/ai-report");
|
|
17
|
+
var global_store_1 = require("../../../../store/ai-report/global-store");
|
|
18
|
+
var ahooks_1 = require("ahooks");
|
|
19
|
+
var fbm_ui_1 = require("fbm-ui");
|
|
20
|
+
var mui_1 = require("fbm-ui/lib/mui");
|
|
21
|
+
var react_1 = require("react");
|
|
22
|
+
var MenuAnchor = (0, react_1.forwardRef)(function (props) {
|
|
23
|
+
var _a = (0, react_1.useState)(null), anchorEl = _a[0], setAnchorEl = _a[1];
|
|
24
|
+
var open = Boolean(anchorEl);
|
|
25
|
+
// 接口请求
|
|
26
|
+
var token = props.token, showAiDimension = props.showAiDimension;
|
|
27
|
+
var firstLoad = (0, react_1.useRef)(true);
|
|
28
|
+
var _b = (0, react_1.useState)([]), list = _b[0], setList = _b[1];
|
|
29
|
+
var _c = (0, global_store_1.useAiReportStore)(), updateState = _c.updateState, updateReportResult = _c.updateReportResult;
|
|
30
|
+
var postAiInterviewResult = (0, ahooks_1.useRequest)(function () { return (0, ai_report_2.PostAiInterviewResult)([token]); }, {
|
|
31
|
+
manual: true,
|
|
32
|
+
onSuccess: function (_a) {
|
|
33
|
+
var list = _a.data.list;
|
|
34
|
+
var result = list[0];
|
|
35
|
+
updateReportResult(result);
|
|
36
|
+
if (firstLoad.current) {
|
|
37
|
+
firstLoad.current = false;
|
|
38
|
+
handleMenuList(result);
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
}).run;
|
|
42
|
+
(0, react_1.useEffect)(function () {
|
|
43
|
+
firstLoad.current = true;
|
|
44
|
+
postAiInterviewResult();
|
|
45
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
46
|
+
}, [token]);
|
|
47
|
+
(0, react_1.useEffect)(function () {
|
|
48
|
+
updateState(props);
|
|
49
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
50
|
+
}, [props]);
|
|
51
|
+
// 处理菜单数据
|
|
52
|
+
var handleMenuList = function (reportResult) {
|
|
53
|
+
if (!reportResult.status) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
var resList = [ai_report_1.REPORT_MODULE_MAP['videoQuestion']];
|
|
57
|
+
var _a = reportResult.collection, collection = _a === void 0 ? [] : _a, _b = reportResult.workplaces, workplaces = _b === void 0 ? [] : _b, _c = reportResult.suggestion, suggestion = _c === void 0 ? { show: false } : _c, _d = reportResult.evaluations, evaluations = _d === void 0 ? [] : _d;
|
|
58
|
+
if (showAiDimension) {
|
|
59
|
+
if (suggestion === null || suggestion === void 0 ? void 0 : suggestion.show) {
|
|
60
|
+
resList.unshift(ai_report_1.REPORT_MODULE_MAP['suggestion']);
|
|
61
|
+
}
|
|
62
|
+
if (collection.length > 0 && evaluations.length > 0) {
|
|
63
|
+
resList.unshift(ai_report_1.REPORT_MODULE_MAP['evaluate']);
|
|
64
|
+
}
|
|
65
|
+
if (workplaces.length > 0) {
|
|
66
|
+
resList.unshift(ai_report_1.REPORT_MODULE_MAP['workplace']);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
if (collection.length > 0) {
|
|
70
|
+
resList.unshift(ai_report_1.REPORT_MODULE_MAP['score']);
|
|
71
|
+
}
|
|
72
|
+
console.log(resList);
|
|
73
|
+
setList(resList);
|
|
74
|
+
};
|
|
75
|
+
var handlePopoverOpen = function (event) {
|
|
76
|
+
setAnchorEl(event.currentTarget);
|
|
77
|
+
};
|
|
78
|
+
var handlePopoverClose = function () {
|
|
79
|
+
setAnchorEl(null);
|
|
80
|
+
};
|
|
81
|
+
var scrollToAnchor = (0, react_1.useCallback)(function (id) {
|
|
82
|
+
if (id) {
|
|
83
|
+
var anchorEle = document.getElementById(id);
|
|
84
|
+
if (anchorEle) {
|
|
85
|
+
anchorEle.scrollIntoView({ block: 'start', behavior: 'smooth' });
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}, []);
|
|
89
|
+
var content = (0, react_1.useMemo)(function () {
|
|
90
|
+
return ((0, jsx_runtime_1.jsx)(mui_1.List, __assign({ style: { minWidth: 150 }, onMouseLeave: handlePopoverClose }, { children: list.map(function (_a) {
|
|
91
|
+
var name = _a.name, id = _a.id;
|
|
92
|
+
return ((0, jsx_runtime_1.jsx)(mui_1.ListItem, __assign({ disablePadding: true }, { children: (0, jsx_runtime_1.jsx)(mui_1.ListItemButton, __assign({ onClick: function () { return scrollToAnchor(id); } }, { children: (0, jsx_runtime_1.jsx)(mui_1.ListItemText, { primary: name }) })) }), id));
|
|
93
|
+
}) })));
|
|
94
|
+
}, [scrollToAnchor, list]);
|
|
95
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(fbm_ui_1.Box, __assign({ style: {
|
|
96
|
+
display: 'flex',
|
|
97
|
+
alignItems: 'center',
|
|
98
|
+
justifyContent: 'center',
|
|
99
|
+
position: 'absolute',
|
|
100
|
+
top: 20,
|
|
101
|
+
right: -10,
|
|
102
|
+
zIndex: 999,
|
|
103
|
+
height: 32,
|
|
104
|
+
width: 32,
|
|
105
|
+
backgroundColor: '#fff',
|
|
106
|
+
borderRadius: 4,
|
|
107
|
+
boxShadow: '0px 2px 4px rgba(0,0,0, 0.08)',
|
|
108
|
+
}, "aria-owns": open ? 'menu-anchor-popover' : undefined, "aria-haspopup": "true", onClick: handlePopoverOpen, onMouseEnter: handlePopoverOpen }, { children: (0, jsx_runtime_1.jsx)(fbm_ui_1.MenuIcon, {}) })), (0, jsx_runtime_1.jsx)(mui_1.Popover, __assign({ id: "menu-anchor-popover", open: open, anchorEl: anchorEl, anchorOrigin: {
|
|
109
|
+
vertical: 'bottom',
|
|
110
|
+
horizontal: 'right',
|
|
111
|
+
}, transformOrigin: {
|
|
112
|
+
vertical: -8,
|
|
113
|
+
horizontal: 'right',
|
|
114
|
+
}, onClose: handlePopoverClose }, { children: content }))] }));
|
|
115
|
+
});
|
|
116
|
+
MenuAnchor.displayName = 'MenuAnchor';
|
|
117
|
+
exports.default = (0, react_1.memo)(MenuAnchor);
|
|
@@ -32,7 +32,7 @@ var Report = function () {
|
|
|
32
32
|
var _a = summaryText.sprintf, sprintf = _a === void 0 ? '' : _a, _b = summaryText.variables, variables = _b === void 0 ? [] : _b;
|
|
33
33
|
var textList = (sprintf === null || sprintf === void 0 ? void 0 : sprintf.split('%s')) || [];
|
|
34
34
|
return textList.map(function (text, index) {
|
|
35
|
-
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("span", __assign({ style: { fontSize: 14, color: 'RGBA(0, 0, 0, 0.56)' } }, { children: text })), (0, jsx_runtime_1.jsx)("span", __assign({ style: { fontSize: 14, color: '#4CAF50' } }, { children: variables[index] || '' }))] }));
|
|
35
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("span", __assign({ style: { fontSize: 14, color: 'RGBA(0, 0, 0, 0.56)' } }, { children: text })), (0, jsx_runtime_1.jsx)("span", __assign({ style: { fontSize: 14, color: '#4CAF50', fontWeight: 500 } }, { children: variables[index] || '' }))] }));
|
|
36
36
|
});
|
|
37
37
|
}, [summaryText]);
|
|
38
38
|
return ((0, jsx_runtime_1.jsxs)(fbm_ui_1.Box, __assign({ width: "100%" }, { children: [(0, jsx_runtime_1.jsxs)(fbm_ui_1.Box, __assign({ display: "flex", alignItems: "center", justifyContent: "space-between", pl: 2, pt: 2, pr: 2 }, { children: [(0, jsx_runtime_1.jsx)(AiHeaderTitle_1.default, { name: "\u7EFC\u5408\u8868\u73B0" }), (0, jsx_runtime_1.jsxs)(fbm_ui_1.Box, __assign({ display: "flex", alignItems: "center" }, { children: [(0, jsx_runtime_1.jsx)(fbm_ui_1.Typography, __assign({ variant: "body2" }, { children: "\u80FD\u529B\u6807\u51C6" })), (0, jsx_runtime_1.jsx)(fbm_ui_1.Tooltip, __assign({ title: title }, { children: (0, jsx_runtime_1.jsx)("span", __assign({ style: { display: 'flex', alignItems: 'center', marginLeft: '4px' } }, { children: (0, jsx_runtime_1.jsx)(fbm_ui_1.InfoOutlineIcon, { sx: { fontSize: 14, color: 'RGBA(0, 0, 0, 0.86)' } }) })) }))] }))] })), (0, jsx_runtime_1.jsxs)(fbm_ui_1.Box, __assign({ height: 300, sx: { position: 'relative' } }, { children: [(0, jsx_runtime_1.jsx)(ReportPie_1.default, { id: orderToken || '', source: collection }), (0, jsx_runtime_1.jsx)(ScoreBigBall_1.default, { score: score || 0, status: status })] })), showSummaryText.length > 0 && ((0, jsx_runtime_1.jsx)(fbm_ui_1.Box, __assign({ display: "block", width: 498, style: { backgroundColor: '#FAFAFA', padding: 8, margin: '0 auto 16px' } }, { children: showSummaryText })))] })));
|
|
@@ -15,15 +15,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
18
|
-
var fbm_ui_1 = require("fbm-ui");
|
|
19
|
-
var mui_1 = require("fbm-ui/lib/mui");
|
|
20
|
-
var ahooks_1 = require("ahooks");
|
|
21
|
-
var ai_report_1 = require("../../../../enum/ai-report");
|
|
22
|
-
var ai_report_2 = require("../../../../services/ai-report");
|
|
23
|
-
var global_store_1 = require("../../../../store/ai-report/global-store");
|
|
24
18
|
var Failed_1 = __importDefault(require("./Failed"));
|
|
25
19
|
var Report_1 = __importDefault(require("./Report"));
|
|
26
20
|
var Score_1 = __importDefault(require("./Score"));
|
|
21
|
+
var ai_report_1 = require("../../../../enum/ai-report");
|
|
22
|
+
var ai_report_2 = require("../../../../services/ai-report");
|
|
23
|
+
var global_store_1 = require("../../../../store/ai-report/global-store");
|
|
24
|
+
var ahooks_1 = require("ahooks");
|
|
25
|
+
var fbm_ui_1 = require("fbm-ui");
|
|
26
|
+
var mui_1 = require("fbm-ui/lib/mui");
|
|
27
27
|
var FAILED = ai_report_1.INTERVIEW_STATUS.FAILED, IN_CALCULATION = ai_report_1.INTERVIEW_STATUS.IN_CALCULATION;
|
|
28
28
|
var ScoreReport = function (_a) {
|
|
29
29
|
var onRefreshSuccess = _a.onRefreshSuccess;
|
|
@@ -37,10 +37,10 @@ var ScoreReport = function (_a) {
|
|
|
37
37
|
},
|
|
38
38
|
}), run = _d.run, loading = _d.loading;
|
|
39
39
|
if ([FAILED, IN_CALCULATION].includes(status)) {
|
|
40
|
-
return ((0, jsx_runtime_1.jsx)(mui_1.Paper, __assign({ variant: "outlined" }, { children: (0, jsx_runtime_1.jsx)(Failed_1.default, { status: status, loading: loading, onRefresh: run }) })));
|
|
40
|
+
return ((0, jsx_runtime_1.jsx)(mui_1.Paper, __assign({ id: "report-score", variant: "outlined" }, { children: (0, jsx_runtime_1.jsx)(Failed_1.default, { status: status, loading: loading, onRefresh: run }) })));
|
|
41
41
|
}
|
|
42
42
|
else {
|
|
43
|
-
return ((0, jsx_runtime_1.jsxs)(mui_1.Paper, __assign({ variant: "outlined" }, { children: [(0, jsx_runtime_1.jsx)(Score_1.default, { loading: loading, onRefresh: run }), (0, jsx_runtime_1.jsx)(mui_1.Divider, {}), (0, jsx_runtime_1.jsx)(Report_1.default, {})] })));
|
|
43
|
+
return ((0, jsx_runtime_1.jsxs)(mui_1.Paper, __assign({ id: "report-score", variant: "outlined" }, { children: [(0, jsx_runtime_1.jsx)(Score_1.default, { loading: loading, onRefresh: run }), (0, jsx_runtime_1.jsx)(mui_1.Divider, {}), (0, jsx_runtime_1.jsx)(Report_1.default, {})] })));
|
|
44
44
|
}
|
|
45
45
|
};
|
|
46
46
|
exports.default = ScoreReport;
|
|
@@ -25,7 +25,7 @@ var Index = function () {
|
|
|
25
25
|
var _e = (0, global_store_1.useAiReportStore)(function (store) { return [store.reportResult]; }), reportResult = _e.reportResult, showAiDimension = _e.showAiDimension;
|
|
26
26
|
if (!showAiDimension || !((_a = reportResult === null || reportResult === void 0 ? void 0 : reportResult.suggestion) === null || _a === void 0 ? void 0 : _a.show))
|
|
27
27
|
return null;
|
|
28
|
-
return ((0, jsx_runtime_1.jsxs)(mui_1.Box, __assign({ component: mui_1.Paper, variant: "outlined", px: 2, mt: 2, pb: 2 }, { children: [(0, jsx_runtime_1.jsx)(mui_1.Stack, __assign({ direction: "row", height: 56, alignItems: "center", spacing: 1 }, { children: (0, jsx_runtime_1.jsx)(AiHeaderTitle_1.default, { name: "\u8003\u5BDF\u5EFA\u8BAE" }) })), (0, jsx_runtime_1.jsx)(fbm_ui_1.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 })), (0, jsx_runtime_1.jsx)(mui_1.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) {
|
|
28
|
+
return ((0, jsx_runtime_1.jsxs)(mui_1.Box, __assign({ id: "report-suggestion", component: mui_1.Paper, variant: "outlined", px: 2, mt: 2, pb: 2 }, { children: [(0, jsx_runtime_1.jsx)(mui_1.Stack, __assign({ direction: "row", height: 56, alignItems: "center", spacing: 1 }, { children: (0, jsx_runtime_1.jsx)(AiHeaderTitle_1.default, { name: "\u8003\u5BDF\u5EFA\u8BAE" }) })), (0, jsx_runtime_1.jsx)(fbm_ui_1.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 })), (0, jsx_runtime_1.jsx)(mui_1.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) {
|
|
29
29
|
return (0, jsx_runtime_1.jsx)(Suggestion_1.default, { abilityName: v.abilityName, interviewQuestion: v.interviewQuestion, keyPoints: v.keyPoints }, v.abilityName);
|
|
30
30
|
}) }))] })));
|
|
31
31
|
};
|
|
@@ -22,6 +22,6 @@ var fbm_ui_1 = require("fbm-ui");
|
|
|
22
22
|
var VideoQuestion = function () {
|
|
23
23
|
var reportResult = (0, global_store_1.useAiReportStore)(function (store) { return [store.reportResult, store.operableButtons]; }).reportResult;
|
|
24
24
|
var steps = (reportResult || {}).steps;
|
|
25
|
-
return ((0, jsx_runtime_1.jsxs)(fbm_ui_1.Box, __assign({ component: fbm_ui_1.Paper, pl: 2, pt: 2, pr: 2, style: { background: '#fff', border: '1px solid rgb(244, 244, 244)' }, mt: 2 }, { children: [(0, jsx_runtime_1.jsx)(AiHeaderTitle_1.default, { name: "\u89C6\u9891\u9898" }), (0, jsx_runtime_1.jsx)(fbm_ui_1.Box, __assign({ mt: 3 }, { children: steps && steps.length > 0 ? (steps === null || steps === void 0 ? void 0 : steps.map(function (item, index) { return (0, jsx_runtime_1.jsx)(QuestionItem_1.default, __assign({ index: index }, item), item.token); })) : ((0, jsx_runtime_1.jsx)(fbm_ui_1.Empty, { src: "//public-static-assets.oss-cn-beijing.aliyuncs.com/img/empty.png", desc: "\u6682\u65E0\u9898\u76EE" })) }))] })));
|
|
25
|
+
return ((0, jsx_runtime_1.jsxs)(fbm_ui_1.Box, __assign({ id: "report-question", component: fbm_ui_1.Paper, pl: 2, pt: 2, pr: 2, style: { background: '#fff', border: '1px solid rgb(244, 244, 244)' }, mt: 2 }, { children: [(0, jsx_runtime_1.jsx)(AiHeaderTitle_1.default, { name: "\u89C6\u9891\u9898" }), (0, jsx_runtime_1.jsx)(fbm_ui_1.Box, __assign({ mt: 3 }, { children: steps && steps.length > 0 ? (steps === null || steps === void 0 ? void 0 : steps.map(function (item, index) { return (0, jsx_runtime_1.jsx)(QuestionItem_1.default, __assign({ index: index }, item), item.token); })) : ((0, jsx_runtime_1.jsx)(fbm_ui_1.Empty, { src: "//public-static-assets.oss-cn-beijing.aliyuncs.com/img/empty.png", desc: "\u6682\u65E0\u9898\u76EE" })) }))] })));
|
|
26
26
|
};
|
|
27
27
|
exports.default = VideoQuestion;
|
|
@@ -46,7 +46,7 @@ export declare const StyledSlider: import("@emotion/styled").StyledComponent<{
|
|
|
46
46
|
name?: string | undefined;
|
|
47
47
|
onChange?: ((event: Event, value: number | number[], activeThumb: number) => void) | undefined;
|
|
48
48
|
onChangeCommitted?: ((event: Event | import("react").SyntheticEvent<Element, Event>, value: number | number[]) => void) | undefined;
|
|
49
|
-
orientation?: "
|
|
49
|
+
orientation?: "vertical" | "horizontal" | undefined;
|
|
50
50
|
scale?: ((value: number) => number) | undefined;
|
|
51
51
|
step?: number | null | undefined;
|
|
52
52
|
tabIndex?: number | undefined;
|
|
@@ -65,7 +65,7 @@ var Index = function () {
|
|
|
65
65
|
var _b = (0, global_store_1.useAiReportStore)(function (store) { return [store.reportResult, store.operableButtons]; }), reportResult = _b.reportResult, showAiDimension = _b.showAiDimension, canEditAiDimension = _b.canEditAiDimension;
|
|
66
66
|
if (!showAiDimension)
|
|
67
67
|
return null;
|
|
68
|
-
return ((0, jsx_runtime_1.jsxs)(mui_1.Box, __assign({ component: mui_1.Paper, variant: "outlined", px: 2, mt: 2 }, { children: [(0, jsx_runtime_1.jsx)(mui_1.Stack, __assign({ direction: "row", height: 56, alignItems: "center", spacing: 1, marginBottom: 1 }, { children: (0, jsx_runtime_1.jsx)(AiHeaderTitle_1.default, { name: "\u804C\u573A\u80FD\u529B\u8868\u73B0" }) })), (0, jsx_runtime_1.jsx)(mui_1.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) {
|
|
68
|
+
return ((0, jsx_runtime_1.jsxs)(mui_1.Box, __assign({ id: "report-workplace", component: mui_1.Paper, variant: "outlined", px: 2, mt: 2 }, { children: [(0, jsx_runtime_1.jsx)(mui_1.Stack, __assign({ direction: "row", height: 56, alignItems: "center", spacing: 1, marginBottom: 1 }, { children: (0, jsx_runtime_1.jsx)(AiHeaderTitle_1.default, { name: "\u804C\u573A\u80FD\u529B\u8868\u73B0" }) })), (0, jsx_runtime_1.jsx)(mui_1.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) {
|
|
69
69
|
return ((0, jsx_runtime_1.jsxs)(mui_1.Box, __assign({ component: mui_1.Paper, variant: "outlined", elevation: 0, mb: 2, pb: 2, pr: 2 }, { children: [(0, jsx_runtime_1.jsxs)(mui_1.Box, __assign({ display: "flex", justifyContent: "space-between", alignItems: "center" }, { children: [(0, jsx_runtime_1.jsx)(TagTitle, __assign({ bgcolor: ColorIndexMap[idx % 3][200] }, { children: (0, jsx_runtime_1.jsx)(fbm_ui_1.Typography, __assign({ variant: "subtitle1", fontWeight: "medium", style: { lineHeight: '32px', color: '#fff' } }, { children: v.dimensionName })) })), (0, jsx_runtime_1.jsx)(fbm_ui_1.Tooltip, __assign({ title: (0, jsx_runtime_1.jsxs)("span", { children: ["\u9AD8\u5206\u8868\u73B0\uFF1A", v.abilityExpression.good, (0, jsx_runtime_1.jsx)("br", {}), "\u4F4E\u5206\u8868\u73B0\uFF1A", v.abilityExpression.bad] }) }, { children: (0, jsx_runtime_1.jsxs)(mui_1.Box, __assign({ display: "flex", alignItems: "center" }, { children: [(0, jsx_runtime_1.jsx)(fbm_ui_1.Typography, __assign({ variant: "body2", style: { lineHeight: '32px' }, mr: 1 }, { children: "\u4F18\u6B21\u8868\u73B0" })), (0, jsx_runtime_1.jsx)(fbm_ui_1.InfoOutlineIcon, { sx: { fontSize: '16px' } })] })) }))] })), (0, jsx_runtime_1.jsx)(fbm_ui_1.Typography, __assign({ variant: "body2", color: "secondary", ml: 2, style: { background: '#F5F5F5', borderRadius: 4, padding: 8 } }, { children: v.define })), (0, jsx_runtime_1.jsxs)(mui_1.Stack, __assign({ pl: 2 }, { children: [(0, jsx_runtime_1.jsx)(mui_1.Box, __assign({ mt: 2 }, { children: (0, jsx_runtime_1.jsx)(ScoreSlider_1.default, { width: "100%", isShowLabel: true, score: v.score, scoreText: v.scoreText, scoreLevel: v.scoreLevel }) })), (0, jsx_runtime_1.jsx)(mui_1.Stack, __assign({ spacing: 2 }, { children: (0, jsx_runtime_1.jsx)(WorkPlace_1.default, { token: v.token, canEdit: canEditAiDimension, answer: v.answer, mode: "show", bgcolor: ColorIndexMap[idx % 3][50] }) }))] }))] }), v.token));
|
|
70
70
|
}) }))] })));
|
|
71
71
|
};
|
|
@@ -46,7 +46,7 @@ export declare const WorkplaceStyledSlider: import("@emotion/styled").StyledComp
|
|
|
46
46
|
name?: string | undefined;
|
|
47
47
|
onChange?: ((event: Event, value: number | number[], activeThumb: number) => void) | undefined;
|
|
48
48
|
onChangeCommitted?: ((event: Event | import("react").SyntheticEvent<Element, Event>, value: number | number[]) => void) | undefined;
|
|
49
|
-
orientation?: "
|
|
49
|
+
orientation?: "vertical" | "horizontal" | undefined;
|
|
50
50
|
scale?: ((value: number) => number) | undefined;
|
|
51
51
|
step?: number | null | undefined;
|
|
52
52
|
tabIndex?: number | undefined;
|
|
@@ -15,11 +15,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
18
|
+
var MenuAnchor_1 = __importDefault(require("./components/MenuAnchor"));
|
|
18
19
|
var Root_1 = __importDefault(require("./Root"));
|
|
19
20
|
var RootProvider_1 = __importDefault(require("../../components/RootProvider"));
|
|
20
21
|
var react_1 = require("react");
|
|
21
22
|
var AiReport = (0, react_1.forwardRef)(function (props, ref) {
|
|
22
|
-
|
|
23
|
+
var token = props.token, _a = props.showAiDimension, showAiDimension = _a === void 0 ? true : _a;
|
|
24
|
+
return ((0, jsx_runtime_1.jsxs)(RootProvider_1.default, { children: [(0, jsx_runtime_1.jsx)(MenuAnchor_1.default, { token: token, showAiDimension: showAiDimension }), (0, jsx_runtime_1.jsx)(Root_1.default, __assign({ ref: ref }, props))] }));
|
|
23
25
|
});
|
|
24
26
|
AiReport.displayName = 'AiReport';
|
|
25
27
|
exports.default = (0, react_1.memo)(AiReport);
|
|
@@ -175,3 +175,13 @@ export interface AiReportProps {
|
|
|
175
175
|
export interface AiReportRef {
|
|
176
176
|
handleRefresh: () => void;
|
|
177
177
|
}
|
|
178
|
+
export interface AnchorItem {
|
|
179
|
+
type: string;
|
|
180
|
+
name: string;
|
|
181
|
+
id: string;
|
|
182
|
+
}
|
|
183
|
+
export interface MenuAnchorProps {
|
|
184
|
+
list?: AnchorItem[];
|
|
185
|
+
token: string;
|
|
186
|
+
showAiDimension: boolean;
|
|
187
|
+
}
|
|
@@ -77,7 +77,9 @@ exports.useAiAnalysisStore = (_a = (0, hox_1.createStore)(function () {
|
|
|
77
77
|
__assign(__assign({}, item), { isNotCompute: false, weight: weight }),
|
|
78
78
|
];
|
|
79
79
|
});
|
|
80
|
-
|
|
80
|
+
var resAiAbilities = (0, immutability_helper_1.default)(data, { $splice: $splice });
|
|
81
|
+
console.log('resAiAbilities', resAiAbilities);
|
|
82
|
+
setAiAbilities(resAiAbilities);
|
|
81
83
|
}, []);
|
|
82
84
|
/**
|
|
83
85
|
* 更新AI分析维度
|
|
@@ -107,7 +109,7 @@ exports.useAiAnalysisStore = (_a = (0, hox_1.createStore)(function () {
|
|
|
107
109
|
*/
|
|
108
110
|
var updateAiAbilitiesWeight = (0, react_1.useCallback)(function (value, index) {
|
|
109
111
|
var _a;
|
|
110
|
-
console.log(value);
|
|
112
|
+
console.log('updateAiAbilitiesWeight', value);
|
|
111
113
|
var formatValue = (0, utils_1.formatNumberDecimal)(value);
|
|
112
114
|
var curOriginalWeight = Number(aiAbilities[index].weight);
|
|
113
115
|
var disabledWeight = Number(aiAbilities[aiAbilities.length - 1].weight);
|
|
@@ -125,7 +127,6 @@ exports.useAiAnalysisStore = (_a = (0, hox_1.createStore)(function () {
|
|
|
125
127
|
var WorkplaceLength = newAiAbilities.filter(function (v) { return v.abilityType === 2; }).length;
|
|
126
128
|
if (WorkplaceLength === 0) {
|
|
127
129
|
setWorkplaces([]);
|
|
128
|
-
console.log('222');
|
|
129
130
|
}
|
|
130
131
|
if (newAiAbilities.length) {
|
|
131
132
|
computeWeight(newAiAbilities);
|
package/package.json
CHANGED
package/CHANGELOG.md
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
|
-
|
|
5
|
-
## 1.3.0 (2022-11-09)
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
### Features
|
|
9
|
-
|
|
10
|
-
* 题目允许跳过 ([a899bee](https://jihulab.com/elihr/elifront/open/lerna-avocado-sdk/commit/a899beede4d71da37bfb3a4cb34bd745c4c29cef))
|
|
11
|
-
* 题目允许跳过 ([67369a3](https://jihulab.com/elihr/elifront/open/lerna-avocado-sdk/commit/67369a3735096a6c0598a9878d020c4cb86994ed))
|
|
12
|
-
* 增加对企业 id 支持 ([1711c47](https://jihulab.com/elihr/elifront/open/lerna-avocado-sdk/commit/1711c472ace5ebafdf3bf95d9c899b3294c3bfa9))
|
|
13
|
-
* add package eli-video-interview ([78c1130](https://jihulab.com/elihr/elifront/open/lerna-avocado-sdk/commit/78c113068882e1192354e153b596a9efd5ebbf90))
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
### Bug Fixes
|
|
17
|
-
|
|
18
|
-
* 图片预览报错 ([047314d](https://jihulab.com/elihr/elifront/open/lerna-avocado-sdk/commit/047314d03eefb475ec933c86c4d8a58ad357602c))
|
|
19
|
-
* 图片预览报错 ([222c8a5](https://jihulab.com/elihr/elifront/open/lerna-avocado-sdk/commit/222c8a57aa86614d5a078992020b72245b413f7d))
|
|
20
|
-
* 图片预览报错 ([7924905](https://jihulab.com/elihr/elifront/open/lerna-avocado-sdk/commit/7924905c4e744cdb9c02356f928c64b98a9f32a3))
|
|
21
|
-
* 修复已知问题 ([d432e59](https://jihulab.com/elihr/elifront/open/lerna-avocado-sdk/commit/d432e59f607f6bfaa64016ad331577cf5a21783a))
|
|
22
|
-
* 修复已知问题 ([2057483](https://jihulab.com/elihr/elifront/open/lerna-avocado-sdk/commit/2057483b47fc4c515d9fff20a6146aed1d39976d))
|
|
23
|
-
* 修复已知问题 ([8f1581d](https://jihulab.com/elihr/elifront/open/lerna-avocado-sdk/commit/8f1581d96d8d35a814b6b40a87618725f0037fda))
|
|
24
|
-
* 修复已知问题 ([be5d222](https://jihulab.com/elihr/elifront/open/lerna-avocado-sdk/commit/be5d2221ff5dd71c14fcdf531474fdfa8d1030fd))
|
|
25
|
-
* 修复已知问题 ([66e8d7c](https://jihulab.com/elihr/elifront/open/lerna-avocado-sdk/commit/66e8d7cb93fe95ef41fac48548c14bd6abab15dd))
|
|
26
|
-
* 修复已知问题 ([59b0422](https://jihulab.com/elihr/elifront/open/lerna-avocado-sdk/commit/59b04224586850b3d3625f173f56ed3580c738de))
|
|
27
|
-
* 修复已知问题 ([9125ae4](https://jihulab.com/elihr/elifront/open/lerna-avocado-sdk/commit/9125ae44d45ab935b8fea3db8f301ff51707bd04))
|
|
28
|
-
* 修复已知问题 ([1e04309](https://jihulab.com/elihr/elifront/open/lerna-avocado-sdk/commit/1e04309e37d77d3e9e73a58da837d3575c816c62))
|
|
29
|
-
* 修复已知问题 ([fe35d71](https://jihulab.com/elihr/elifront/open/lerna-avocado-sdk/commit/fe35d71374c4b92bac5d09878b02ff4624c2b4ae))
|
|
30
|
-
* 修复已知问题 ([27c4d32](https://jihulab.com/elihr/elifront/open/lerna-avocado-sdk/commit/27c4d3205a2ea6071d54a183b64c83888b30fb0e))
|