eli-video-interview 1.9.0 → 1.9.2
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/components/Charts/ReportPie.js +4 -2
- package/esm/modules/ai-question/components/GlobalDimensions/Dialog.js +5 -1
- package/esm/modules/ai-report-v2/components/AIEvaluate/Graph.js +1 -1
- package/esm/modules/ai-report-v2/components/GlobalDimensions/index.js +3 -1
- package/esm/modules/ai-report-v3/Root.js +1 -2
- package/esm/modules/ai-report-v3/components/AIEvaluate/Graph.js +1 -1
- package/esm/modules/ai-report-v3/components/ScoreReport/Report.js +3 -1
- package/lib/components/Charts/ReportPie.js +4 -2
- package/lib/modules/ai-question/components/GlobalDimensions/Dialog.js +5 -1
- package/lib/modules/ai-report-v2/components/AIEvaluate/Graph.js +1 -1
- package/lib/modules/ai-report-v2/components/GlobalDimensions/index.js +3 -1
- package/lib/modules/ai-report-v3/Root.js +1 -2
- package/lib/modules/ai-report-v3/components/AIEvaluate/Graph.js +1 -1
- package/lib/modules/ai-report-v3/components/ScoreReport/Report.js +3 -1
- package/package.json +1 -1
|
@@ -111,14 +111,16 @@ var ReportPie = function (props) {
|
|
|
111
111
|
color: '#33A853',
|
|
112
112
|
fontSize: 10,
|
|
113
113
|
lineHeight: 15,
|
|
114
|
+
// 固定胶囊宽高:否则容器宽度不够时「全局」会被折成两行
|
|
115
|
+
width: 32,
|
|
116
|
+
height: 17,
|
|
114
117
|
padding: [1, 5],
|
|
115
118
|
borderRadius: 8,
|
|
116
119
|
backgroundColor: 'rgba(78, 201, 83, 0.14)',
|
|
117
120
|
align: 'center',
|
|
118
121
|
},
|
|
119
122
|
},
|
|
120
|
-
|
|
121
|
-
width: 76,
|
|
123
|
+
// 不再写死 label 宽度(写死会让长维度名 + 全局胶囊互相挤压):交给 echarts 按内容布局
|
|
122
124
|
lineHeight: 18,
|
|
123
125
|
},
|
|
124
126
|
labelLine: {
|
|
@@ -149,6 +149,10 @@ var GlobalDimensionDialog = function (_a) {
|
|
|
149
149
|
mb: 1,
|
|
150
150
|
cursor: 'pointer',
|
|
151
151
|
}, onClick: function () { return handleToggleLibrary(item, !checked); } }, { children: [_jsx(Checkbox, { checked: checked, onChange: function () { }, sx: { pointerEvents: 'none', p: 0.5, mr: 0.5 } }), _jsxs(Box, __assign({ minWidth: 0 }, { children: [_jsx(Typography, __assign({ variant: "body2" }, { children: item.name })), item.define && (_jsx(Typography, __assign({ variant: "caption", color: "secondary", noWrap: true, display: "block", maxWidth: 430 }, { children: item.define })))] }))] }), item.token));
|
|
152
|
-
}), filteredLibrary.length === 0 && (_jsx(Typography, __assign({ variant: "body2", color: "secondary" }, { children: "\u6CA1\u6709\u5339\u914D\u7684\u7EF4\u5EA6" })))] }))), activeTab === 'custom' && (_jsxs(Stack, __assign({ spacing: 2, mt: 2 }, { children: [_jsx(TextField, { label: "\u7EF4\u5EA6\u540D\u79F0", value: customName, onChange: function (e) { return setCustomName(e.target.value); } }), _jsx(TextField, { label: "\u8BC4\u4EF7\u6807\u51C6", multiline: true, rows: 4, value: customDefine, placeholder: "AI \u6309\u8FD9\u6BB5\u63CF\u8FF0\u7ED9\u8BE5\u7EF4\u5EA6\u6253\u5206\u5E76\u7ED9\u51FA\u8BC4\u4EF7", onChange: function (e) { return setCustomDefine(e.target.value); }
|
|
152
|
+
}), filteredLibrary.length === 0 && (_jsx(Typography, __assign({ variant: "body2", color: "secondary" }, { children: "\u6CA1\u6709\u5339\u914D\u7684\u7EF4\u5EA6" })))] }))), activeTab === 'custom' && (_jsxs(Stack, __assign({ spacing: 2, mt: 2 }, { children: [_jsx(TextField, { label: "\u7EF4\u5EA6\u540D\u79F0", value: customName, onChange: function (e) { return setCustomName(e.target.value); } }), _jsx(TextField, { label: "\u8BC4\u4EF7\u6807\u51C6", multiline: true, rows: 4, value: customDefine, placeholder: "AI \u6309\u8FD9\u6BB5\u63CF\u8FF0\u7ED9\u8BE5\u7EF4\u5EA6\u6253\u5206\u5E76\u7ED9\u51FA\u8BC4\u4EF7", onChange: function (e) { return setCustomDefine(e.target.value); },
|
|
153
|
+
// fbm-ui 的 TextField 根节点写死 height:84px,多行输入会溢出压到下方按钮上
|
|
154
|
+
sx: { '&.MuiFormControl-root': { height: 'auto' } } }), _jsx(Box, { children: _jsx(Button, __assign({ variant: "outlined", color: "inherit", startIcon: _jsx(AddIcon, {}), onClick: handleAddCustom }, { children: "\u65B0\u5EFA\u81EA\u5B9A\u4E49\u7EF4\u5EA6" })) }), _jsx(Typography, __assign({ variant: "caption", color: "secondary" }, { children: "\u81EA\u5B9A\u4E49\u7EF4\u5EA6\u53EA\u5728\u672C\u6B21\u8BD5\u5377\u751F\u6548\uFF0C\u4E0D\u5199\u56DE\u7EF4\u5EA6\u5E93\u3002" }))] })))] })), _jsxs(Box, __assign({ sx: { flex: '0 0 320px', borderLeft: '1px solid rgba(0, 0, 0, 0.08)', pl: 2.5 } }, { children: [_jsxs(Stack, __assign({ direction: "row", alignItems: "center", spacing: 1 }, { children: [_jsx(Typography, __assign({ variant: "body2", fontWeight: 500 }, { children: "\u5DF2\u9009\u7EF4\u5EA6" })), _jsx(Chip, { color: "default", label: selected.length, size: "medium" })] })), _jsxs(Box, __assign({ sx: { maxHeight: 320, overflowY: 'auto', pr: 0.5, mt: 1.5 } }, { children: [selected.map(function (item, index) { return (_jsxs(Box, __assign({ sx: { border: '1px solid rgba(0, 0, 0, 0.08)', borderRadius: 1, px: 1.5, py: 1, mb: 1 } }, { children: [_jsxs(Stack, __assign({ direction: "row", alignItems: "center", spacing: 1 }, { children: [_jsx(Typography, __assign({ variant: "body2", sx: { flex: '1 1 auto', minWidth: 0 }, noWrap: true }, { children: item.name })), _jsx(Input, { size: "small", sx: { width: 92 }, value: item.weight, placeholder: "0", onChange: function (e) { return handleWeightChange(index, e.target.value); }, endAdornment: _jsx(Typography, __assign({ variant: "caption", color: "textSecondary" }, { children: "%" })) }), _jsx(IconButton, __assign({ size: "small", onClick: function () { return handleRemove(index); } }, { children: _jsx(DeleteIcon, {}) }))] })), _jsx(TextField, { size: "small", multiline: true, rows: 2,
|
|
155
|
+
// 同上:多行输入不能被 TextField 写死的 84px 高度裁掉
|
|
156
|
+
sx: { marginTop: 1, '&.MuiFormControl-root': { height: 'auto' } }, placeholder: "\u8BC4\u4EF7\u6807\u51C6\uFF08\u9ED8\u8BA4\u53D6\u7EF4\u5EA6\u5E93\u5B9A\u4E49\uFF09", value: item.define || '', onChange: function (e) { return handleDefineChange(index, e.target.value); } })] }), "".concat(item.collectionToken || item.name, "-").concat(index))); }), selected.length === 0 && (_jsx(Typography, __assign({ variant: "body2", color: "secondary" }, { children: "\u8FD8\u6CA1\u6709\u9009\u62E9\u5168\u5C40\u7EF4\u5EA6" })))] })), _jsx(Typography, __assign({ variant: "caption", color: "secondary", display: "block", mt: 1 }, { children: "\u6743\u91CD\u5FC5\u586B\uFF0C\u4E0E\u9898\u76EE\u6743\u91CD\u5408\u8BA1\u9700\u8981\u51D1\u6EE1 100%\uFF1B\u8C03\u6574\u540E\u4F1A\u6309\u6BD4\u4F8B\u91CD\u6392\u9898\u76EE\u6743\u91CD\u3002" })), _jsxs(Typography, __assign({ variant: "caption", display: "block" }, { children: ["\u5F53\u524D\u5408\u8BA1\uFF1A", weightSum(selected), "%", aiQuestionCount === 0 && '(当前试卷没有可 AI 评分的题目,需要合计 100%)'] }))] }))] })) })));
|
|
153
157
|
};
|
|
154
158
|
export default GlobalDimensionDialog;
|
|
@@ -55,6 +55,8 @@ var tdStyle = {
|
|
|
55
55
|
padding: '12px',
|
|
56
56
|
verticalAlign: 'middle',
|
|
57
57
|
};
|
|
58
|
+
// 左侧几列按内容定宽 + 不换行,把剩余宽度让给「一句话评价」(否则维度名/得分会被折行)
|
|
59
|
+
var tdNowrapStyle = __assign(__assign({}, tdStyle), { whiteSpace: 'nowrap' });
|
|
58
60
|
/**
|
|
59
61
|
* 全局维度(只绑试卷、不绑题目):紧凑表格展示,行内展开可改分 / 改评价。
|
|
60
62
|
* 由宿主 `ReportSectionFrame`(与「视频题」同一套白框)承载,标题缎带挂在白框左上角。
|
|
@@ -79,6 +81,6 @@ var Index = function () {
|
|
|
79
81
|
if (!showAiDimension || globalDimensions.length === 0) {
|
|
80
82
|
return null;
|
|
81
83
|
}
|
|
82
|
-
return (_jsx(ReportSectionFrame, __assign({ sx: { mt: 2, mb: 2 } }, { children: _jsxs(Box, __assign({ id: "report-global-dimension" }, { children: [_jsx(AiHeaderTitle, { name: "\u5168\u5C40\u7EF4\u5EA6" }), _jsx(Box, __assign({ mx: 1, mt: 2 }, { children: _jsx(Box, __assign({ sx: { border: BORDER, borderRadius: 2, overflow: 'hidden' } }, { children: _jsxs("table", __assign({ style: { width: '100%', borderCollapse: 'collapse', fontSize: 13, color: 'rgba(0, 0, 0, 0.86)' } }, { children: [_jsx("thead", { children: _jsxs("tr", __assign({ style: { background: 'rgba(0, 0, 0, 0.02)' } }, { children: [_jsx("th", __assign({ style: thStyle }, { children: "\u7EF4\u5EA6" })), _jsx("th", __assign({ style: thStyle }, { children: "\u6765\u6E90" })), _jsx("th", __assign({ style: thStyle }, { children: "\u6743\u91CD" })), _jsx("th", __assign({ style: thStyle }, { children: "\u5F97\u5206" })), _jsx("th", __assign({ style: thStyle }, { children: "\u4E00\u53E5\u8BDD\u8BC4\u4EF7" })), _jsx("th", __assign({ style: __assign(__assign({}, thStyle), { width: 56, textAlign: 'center' }) }, { children: "\u64CD\u4F5C" }))] })) }), globalDimensions.map(function (v, index) { return (_jsxs("tbody", { children: [_jsxs("tr", __assign({ style: { borderTop: BORDER } }, { children: [_jsx("td", __assign({ style: __assign(__assign({},
|
|
84
|
+
return (_jsx(ReportSectionFrame, __assign({ sx: { mt: 2, mb: 2 } }, { children: _jsxs(Box, __assign({ id: "report-global-dimension" }, { children: [_jsx(AiHeaderTitle, { name: "\u5168\u5C40\u7EF4\u5EA6" }), _jsx(Box, __assign({ mx: 1, mt: 2 }, { children: _jsx(Box, __assign({ sx: { border: BORDER, borderRadius: 2, overflow: 'hidden' } }, { children: _jsxs("table", __assign({ style: { width: '100%', borderCollapse: 'collapse', fontSize: 13, color: 'rgba(0, 0, 0, 0.86)' } }, { children: [_jsx("thead", { children: _jsxs("tr", __assign({ style: { background: 'rgba(0, 0, 0, 0.02)' } }, { children: [_jsx("th", __assign({ style: __assign(__assign({}, thStyle), { width: 150 }) }, { children: "\u7EF4\u5EA6" })), _jsx("th", __assign({ style: __assign(__assign({}, thStyle), { width: 88 }) }, { children: "\u6765\u6E90" })), _jsx("th", __assign({ style: __assign(__assign({}, thStyle), { width: 76 }) }, { children: "\u6743\u91CD" })), _jsx("th", __assign({ style: __assign(__assign({}, thStyle), { width: 96 }) }, { children: "\u5F97\u5206" })), _jsx("th", __assign({ style: thStyle }, { children: "\u4E00\u53E5\u8BDD\u8BC4\u4EF7" })), _jsx("th", __assign({ style: __assign(__assign({}, thStyle), { width: 56, textAlign: 'center' }) }, { children: "\u64CD\u4F5C" }))] })) }), globalDimensions.map(function (v, index) { return (_jsxs("tbody", { children: [_jsxs("tr", __assign({ style: { borderTop: BORDER } }, { children: [_jsx("td", __assign({ style: __assign(__assign({}, tdNowrapStyle), { fontWeight: 500 }) }, { children: v.name })), _jsx("td", __assign({ style: tdNowrapStyle }, { children: _jsx(Chip, { color: "success", label: "\u5168\u5C40", size: "small" }) })), _jsxs("td", __assign({ style: __assign(__assign({}, tdNowrapStyle), { color: TEXT_MUTED }) }, { children: [v.weight, "%"] })), _jsxs("td", __assign({ style: tdNowrapStyle }, { children: [_jsx(Box, __assign({ component: "span", sx: { color: SCORE_COLOR[v.scoreLevel] || 'rgba(0, 0, 0, 0.86)', fontWeight: 600 } }, { children: v.score })), _jsx(Box, __assign({ component: "span", sx: { color: TEXT_MUTED, ml: 0.5, fontSize: 12 } }, { children: v.scoreText }))] })), _jsx("td", __assign({ style: __assign(__assign({}, tdStyle), { color: 'rgba(0, 0, 0, 0.6)' }) }, { children: v.answer })), _jsx("td", __assign({ style: __assign(__assign({}, tdStyle), { textAlign: 'center' }) }, { children: canEditAiDimension && (_jsx(IconButton, __assign({ size: "small", onClick: function () { return setExpandedIndex(expandedIndex === index ? -1 : index); } }, { children: _jsx(EditIcon, {}) }))) }))] })), _jsx("tr", { children: _jsx("td", __assign({ colSpan: 6, style: { padding: 0 } }, { children: _jsx(Collapse, __assign({ in: expandedIndex === index }, { children: _jsxs(Box, __assign({ sx: { px: 2, pt: 1.5, pb: 2, bgcolor: '#FAFBFA', borderTop: BORDER } }, { children: [_jsxs(Typography, __assign({ variant: "caption", color: "textSecondary", display: "block", mb: 1 }, { children: ["\u8BC4\u4EF7\u6807\u51C6\uFF1A", v.define || '—'] })), _jsx(ScoreSlider, { width: "100%", isShowLabel: true, score: v.score, scoreText: v.scoreText, scoreLevel: v.scoreLevel, valueLabelDisplay: "auto", onChangeCommitted: function (score) { return handleScoreChange(index, score); } }), _jsx(Stack, __assign({ mt: 1.5 }, { children: _jsx(WorkPlace, { thirdOrderID: orderToken, token: v.token, canEdit: canEditAiDimension, answer: v.answer, mode: "show" }) }))] })) })) })) })] }, v.token || v.name)); })] })) })) }))] })) })));
|
|
83
85
|
};
|
|
84
86
|
export default memo(Index);
|
|
@@ -13,7 +13,6 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
13
13
|
import AIEvaluate from './components/AIEvaluate';
|
|
14
14
|
import CheatRisk from './components/CheatRisk/CheatRisk';
|
|
15
15
|
import { FormReport } from './components/Form';
|
|
16
|
-
import GlobalDimensions from './components/GlobalDimensions';
|
|
17
16
|
import NotFinish from './components/NotFinish';
|
|
18
17
|
import V3Header from './components/V3Header/V3Header';
|
|
19
18
|
import VideoQuestion from './components/VideoQuestion';
|
|
@@ -84,7 +83,7 @@ var AiReportRoot = forwardRef(function (props, ref) {
|
|
|
84
83
|
borderRadius: 2,
|
|
85
84
|
overflow: 'hidden',
|
|
86
85
|
pb: 3,
|
|
87
|
-
} }, { children: [_jsx(V3Header, { v3AssetBase: v3AssetBase, status: status, customScore: customScore, passScore: passScore, onRefreshSuccess: handleRefreshSuccess, fetchCandidateInfo: fetchCandidateInfo, onExportReportClick: onExportReportClick }), _jsxs(Box, __assign({ sx: { mx: 2, mt: 0.75 } }, { children: [((collection === null || collection === void 0 ? void 0 : collection.length) > 0 || !!(reportResult === null || reportResult === void 0 ? void 0 : reportResult.workplaceEvaluation)) && (_jsx(AIEvaluate, {})),
|
|
86
|
+
} }, { children: [_jsx(V3Header, { v3AssetBase: v3AssetBase, status: status, customScore: customScore, passScore: passScore, onRefreshSuccess: handleRefreshSuccess, fetchCandidateInfo: fetchCandidateInfo, onExportReportClick: onExportReportClick }), _jsxs(Box, __assign({ sx: { mx: 2, mt: 0.75 } }, { children: [((collection === null || collection === void 0 ? void 0 : collection.length) > 0 || !!(reportResult === null || reportResult === void 0 ? void 0 : reportResult.workplaceEvaluation)) && (_jsx(AIEvaluate, {})), fetchFormResult && _jsx(FormReport, { fetchFormResult: fetchFormResult }), _jsx(CheatRisk, {}), hasRisk && (_jsx(Box, __assign({ id: "report-risk-alert" }, { children: _jsx(NotFinish, {}) }))), _jsx(VideoQuestion, { isExportPdf: isExportPdf })] }))] })) })) })));
|
|
88
87
|
}, [
|
|
89
88
|
loading,
|
|
90
89
|
status,
|
|
@@ -55,7 +55,7 @@ function setupCanvas(canvas) {
|
|
|
55
55
|
var MAX_WIDTH = 354;
|
|
56
56
|
var MAX_HEIGHT = 18;
|
|
57
57
|
// 题目维度与全局维度之间的分隔线 + 说明(方案③:不逐条打标)
|
|
58
|
-
var DIVIDER_TEXT = '
|
|
58
|
+
var DIVIDER_TEXT = '以下为全局维度';
|
|
59
59
|
var DIVIDER_HEIGHT = 20;
|
|
60
60
|
// 粗略估算文本像素宽(与下方绘制所用 sans-serif 接近;中文宽、拉丁/数字窄)
|
|
61
61
|
var estimateTextWidth = function (s, cjkW, latinW) {
|
|
@@ -17,6 +17,8 @@ import { Box } from 'fbm-ui';
|
|
|
17
17
|
var Report = function () {
|
|
18
18
|
var reportResult = useAiReportStore(function (store) { return [store.reportResult]; }).reportResult;
|
|
19
19
|
var _a = reportResult || {}, orderToken = _a.orderToken, score = _a.score, status = _a.status, _b = _a.collection, collection = _b === void 0 ? [] : _b;
|
|
20
|
-
return (
|
|
20
|
+
return (
|
|
21
|
+
// 400 宽度会把饼图标签挤到条形图上面(v2 是 500),这里放宽到 480 让标签有完整空间
|
|
22
|
+
_jsx(Box, __assign({ width: 480, flexShrink: 0 }, { children: _jsxs(Box, __assign({ height: 300, sx: { position: 'relative' } }, { children: [_jsx(ReportPie, { id: orderToken || '', source: collection }), _jsx(ScoreBigBall, { score: score || 0, status: status })] })) })));
|
|
21
23
|
};
|
|
22
24
|
export default Report;
|
|
@@ -116,14 +116,16 @@ var ReportPie = function (props) {
|
|
|
116
116
|
color: '#33A853',
|
|
117
117
|
fontSize: 10,
|
|
118
118
|
lineHeight: 15,
|
|
119
|
+
// 固定胶囊宽高:否则容器宽度不够时「全局」会被折成两行
|
|
120
|
+
width: 32,
|
|
121
|
+
height: 17,
|
|
119
122
|
padding: [1, 5],
|
|
120
123
|
borderRadius: 8,
|
|
121
124
|
backgroundColor: 'rgba(78, 201, 83, 0.14)',
|
|
122
125
|
align: 'center',
|
|
123
126
|
},
|
|
124
127
|
},
|
|
125
|
-
|
|
126
|
-
width: 76,
|
|
128
|
+
// 不再写死 label 宽度(写死会让长维度名 + 全局胶囊互相挤压):交给 echarts 按内容布局
|
|
127
129
|
lineHeight: 18,
|
|
128
130
|
},
|
|
129
131
|
labelLine: {
|
|
@@ -151,6 +151,10 @@ var GlobalDimensionDialog = function (_a) {
|
|
|
151
151
|
mb: 1,
|
|
152
152
|
cursor: 'pointer',
|
|
153
153
|
}, onClick: function () { return handleToggleLibrary(item, !checked); } }, { children: [(0, jsx_runtime_1.jsx)(fbm_ui_1.Checkbox, { checked: checked, onChange: function () { }, sx: { pointerEvents: 'none', p: 0.5, mr: 0.5 } }), (0, jsx_runtime_1.jsxs)(mui_1.Box, __assign({ minWidth: 0 }, { children: [(0, jsx_runtime_1.jsx)(fbm_ui_1.Typography, __assign({ variant: "body2" }, { children: item.name })), item.define && ((0, jsx_runtime_1.jsx)(fbm_ui_1.Typography, __assign({ variant: "caption", color: "secondary", noWrap: true, display: "block", maxWidth: 430 }, { children: item.define })))] }))] }), item.token));
|
|
154
|
-
}), filteredLibrary.length === 0 && ((0, jsx_runtime_1.jsx)(fbm_ui_1.Typography, __assign({ variant: "body2", color: "secondary" }, { children: "\u6CA1\u6709\u5339\u914D\u7684\u7EF4\u5EA6" })))] }))), activeTab === 'custom' && ((0, jsx_runtime_1.jsxs)(mui_1.Stack, __assign({ spacing: 2, mt: 2 }, { children: [(0, jsx_runtime_1.jsx)(fbm_ui_1.TextField, { label: "\u7EF4\u5EA6\u540D\u79F0", value: customName, onChange: function (e) { return setCustomName(e.target.value); } }), (0, jsx_runtime_1.jsx)(fbm_ui_1.TextField, { label: "\u8BC4\u4EF7\u6807\u51C6", multiline: true, rows: 4, value: customDefine, placeholder: "AI \u6309\u8FD9\u6BB5\u63CF\u8FF0\u7ED9\u8BE5\u7EF4\u5EA6\u6253\u5206\u5E76\u7ED9\u51FA\u8BC4\u4EF7", onChange: function (e) { return setCustomDefine(e.target.value); }
|
|
154
|
+
}), filteredLibrary.length === 0 && ((0, jsx_runtime_1.jsx)(fbm_ui_1.Typography, __assign({ variant: "body2", color: "secondary" }, { children: "\u6CA1\u6709\u5339\u914D\u7684\u7EF4\u5EA6" })))] }))), activeTab === 'custom' && ((0, jsx_runtime_1.jsxs)(mui_1.Stack, __assign({ spacing: 2, mt: 2 }, { children: [(0, jsx_runtime_1.jsx)(fbm_ui_1.TextField, { label: "\u7EF4\u5EA6\u540D\u79F0", value: customName, onChange: function (e) { return setCustomName(e.target.value); } }), (0, jsx_runtime_1.jsx)(fbm_ui_1.TextField, { label: "\u8BC4\u4EF7\u6807\u51C6", multiline: true, rows: 4, value: customDefine, placeholder: "AI \u6309\u8FD9\u6BB5\u63CF\u8FF0\u7ED9\u8BE5\u7EF4\u5EA6\u6253\u5206\u5E76\u7ED9\u51FA\u8BC4\u4EF7", onChange: function (e) { return setCustomDefine(e.target.value); },
|
|
155
|
+
// fbm-ui 的 TextField 根节点写死 height:84px,多行输入会溢出压到下方按钮上
|
|
156
|
+
sx: { '&.MuiFormControl-root': { height: 'auto' } } }), (0, jsx_runtime_1.jsx)(mui_1.Box, { children: (0, jsx_runtime_1.jsx)(fbm_ui_1.Button, __assign({ variant: "outlined", color: "inherit", startIcon: (0, jsx_runtime_1.jsx)(fbm_ui_1.AddIcon, {}), onClick: handleAddCustom }, { children: "\u65B0\u5EFA\u81EA\u5B9A\u4E49\u7EF4\u5EA6" })) }), (0, jsx_runtime_1.jsx)(fbm_ui_1.Typography, __assign({ variant: "caption", color: "secondary" }, { children: "\u81EA\u5B9A\u4E49\u7EF4\u5EA6\u53EA\u5728\u672C\u6B21\u8BD5\u5377\u751F\u6548\uFF0C\u4E0D\u5199\u56DE\u7EF4\u5EA6\u5E93\u3002" }))] })))] })), (0, jsx_runtime_1.jsxs)(mui_1.Box, __assign({ sx: { flex: '0 0 320px', borderLeft: '1px solid rgba(0, 0, 0, 0.08)', pl: 2.5 } }, { children: [(0, jsx_runtime_1.jsxs)(mui_1.Stack, __assign({ direction: "row", alignItems: "center", spacing: 1 }, { children: [(0, jsx_runtime_1.jsx)(fbm_ui_1.Typography, __assign({ variant: "body2", fontWeight: 500 }, { children: "\u5DF2\u9009\u7EF4\u5EA6" })), (0, jsx_runtime_1.jsx)(fbm_ui_1.Chip, { color: "default", label: selected.length, size: "medium" })] })), (0, jsx_runtime_1.jsxs)(mui_1.Box, __assign({ sx: { maxHeight: 320, overflowY: 'auto', pr: 0.5, mt: 1.5 } }, { children: [selected.map(function (item, index) { return ((0, jsx_runtime_1.jsxs)(mui_1.Box, __assign({ sx: { border: '1px solid rgba(0, 0, 0, 0.08)', borderRadius: 1, px: 1.5, py: 1, mb: 1 } }, { children: [(0, jsx_runtime_1.jsxs)(mui_1.Stack, __assign({ direction: "row", alignItems: "center", spacing: 1 }, { children: [(0, jsx_runtime_1.jsx)(fbm_ui_1.Typography, __assign({ variant: "body2", sx: { flex: '1 1 auto', minWidth: 0 }, noWrap: true }, { children: item.name })), (0, jsx_runtime_1.jsx)(fbm_ui_1.Input, { size: "small", sx: { width: 92 }, value: item.weight, placeholder: "0", onChange: function (e) { return handleWeightChange(index, e.target.value); }, endAdornment: (0, jsx_runtime_1.jsx)(fbm_ui_1.Typography, __assign({ variant: "caption", color: "textSecondary" }, { children: "%" })) }), (0, jsx_runtime_1.jsx)(fbm_ui_1.IconButton, __assign({ size: "small", onClick: function () { return handleRemove(index); } }, { children: (0, jsx_runtime_1.jsx)(fbm_ui_1.DeleteIcon, {}) }))] })), (0, jsx_runtime_1.jsx)(fbm_ui_1.TextField, { size: "small", multiline: true, rows: 2,
|
|
157
|
+
// 同上:多行输入不能被 TextField 写死的 84px 高度裁掉
|
|
158
|
+
sx: { marginTop: 1, '&.MuiFormControl-root': { height: 'auto' } }, placeholder: "\u8BC4\u4EF7\u6807\u51C6\uFF08\u9ED8\u8BA4\u53D6\u7EF4\u5EA6\u5E93\u5B9A\u4E49\uFF09", value: item.define || '', onChange: function (e) { return handleDefineChange(index, e.target.value); } })] }), "".concat(item.collectionToken || item.name, "-").concat(index))); }), selected.length === 0 && ((0, jsx_runtime_1.jsx)(fbm_ui_1.Typography, __assign({ variant: "body2", color: "secondary" }, { children: "\u8FD8\u6CA1\u6709\u9009\u62E9\u5168\u5C40\u7EF4\u5EA6" })))] })), (0, jsx_runtime_1.jsx)(fbm_ui_1.Typography, __assign({ variant: "caption", color: "secondary", display: "block", mt: 1 }, { children: "\u6743\u91CD\u5FC5\u586B\uFF0C\u4E0E\u9898\u76EE\u6743\u91CD\u5408\u8BA1\u9700\u8981\u51D1\u6EE1 100%\uFF1B\u8C03\u6574\u540E\u4F1A\u6309\u6BD4\u4F8B\u91CD\u6392\u9898\u76EE\u6743\u91CD\u3002" })), (0, jsx_runtime_1.jsxs)(fbm_ui_1.Typography, __assign({ variant: "caption", display: "block" }, { children: ["\u5F53\u524D\u5408\u8BA1\uFF1A", weightSum(selected), "%", aiQuestionCount === 0 && '(当前试卷没有可 AI 评分的题目,需要合计 100%)'] }))] }))] })) })));
|
|
155
159
|
};
|
|
156
160
|
exports.default = GlobalDimensionDialog;
|
|
@@ -60,6 +60,8 @@ var tdStyle = {
|
|
|
60
60
|
padding: '12px',
|
|
61
61
|
verticalAlign: 'middle',
|
|
62
62
|
};
|
|
63
|
+
// 左侧几列按内容定宽 + 不换行,把剩余宽度让给「一句话评价」(否则维度名/得分会被折行)
|
|
64
|
+
var tdNowrapStyle = __assign(__assign({}, tdStyle), { whiteSpace: 'nowrap' });
|
|
63
65
|
/**
|
|
64
66
|
* 全局维度(只绑试卷、不绑题目):紧凑表格展示,行内展开可改分 / 改评价。
|
|
65
67
|
* 由宿主 `ReportSectionFrame`(与「视频题」同一套白框)承载,标题缎带挂在白框左上角。
|
|
@@ -84,6 +86,6 @@ var Index = function () {
|
|
|
84
86
|
if (!showAiDimension || globalDimensions.length === 0) {
|
|
85
87
|
return null;
|
|
86
88
|
}
|
|
87
|
-
return ((0, jsx_runtime_1.jsx)(styled_1.ReportSectionFrame, __assign({ sx: { mt: 2, mb: 2 } }, { children: (0, jsx_runtime_1.jsxs)(mui_1.Box, __assign({ id: "report-global-dimension" }, { children: [(0, jsx_runtime_1.jsx)(AiHeaderTitleV2_1.default, { name: "\u5168\u5C40\u7EF4\u5EA6" }), (0, jsx_runtime_1.jsx)(mui_1.Box, __assign({ mx: 1, mt: 2 }, { children: (0, jsx_runtime_1.jsx)(mui_1.Box, __assign({ sx: { border: BORDER, borderRadius: 2, overflow: 'hidden' } }, { children: (0, jsx_runtime_1.jsxs)("table", __assign({ style: { width: '100%', borderCollapse: 'collapse', fontSize: 13, color: 'rgba(0, 0, 0, 0.86)' } }, { children: [(0, jsx_runtime_1.jsx)("thead", { children: (0, jsx_runtime_1.jsxs)("tr", __assign({ style: { background: 'rgba(0, 0, 0, 0.02)' } }, { children: [(0, jsx_runtime_1.jsx)("th", __assign({ style: thStyle }, { children: "\u7EF4\u5EA6" })), (0, jsx_runtime_1.jsx)("th", __assign({ style: thStyle }, { children: "\u6765\u6E90" })), (0, jsx_runtime_1.jsx)("th", __assign({ style: thStyle }, { children: "\u6743\u91CD" })), (0, jsx_runtime_1.jsx)("th", __assign({ style: thStyle }, { children: "\u5F97\u5206" })), (0, jsx_runtime_1.jsx)("th", __assign({ style: thStyle }, { children: "\u4E00\u53E5\u8BDD\u8BC4\u4EF7" })), (0, jsx_runtime_1.jsx)("th", __assign({ style: __assign(__assign({}, thStyle), { width: 56, textAlign: 'center' }) }, { children: "\u64CD\u4F5C" }))] })) }), globalDimensions.map(function (v, index) { return ((0, jsx_runtime_1.jsxs)("tbody", { children: [(0, jsx_runtime_1.jsxs)("tr", __assign({ style: { borderTop: BORDER } }, { children: [(0, jsx_runtime_1.jsx)("td", __assign({ style: __assign(__assign({},
|
|
89
|
+
return ((0, jsx_runtime_1.jsx)(styled_1.ReportSectionFrame, __assign({ sx: { mt: 2, mb: 2 } }, { children: (0, jsx_runtime_1.jsxs)(mui_1.Box, __assign({ id: "report-global-dimension" }, { children: [(0, jsx_runtime_1.jsx)(AiHeaderTitleV2_1.default, { name: "\u5168\u5C40\u7EF4\u5EA6" }), (0, jsx_runtime_1.jsx)(mui_1.Box, __assign({ mx: 1, mt: 2 }, { children: (0, jsx_runtime_1.jsx)(mui_1.Box, __assign({ sx: { border: BORDER, borderRadius: 2, overflow: 'hidden' } }, { children: (0, jsx_runtime_1.jsxs)("table", __assign({ style: { width: '100%', borderCollapse: 'collapse', fontSize: 13, color: 'rgba(0, 0, 0, 0.86)' } }, { children: [(0, jsx_runtime_1.jsx)("thead", { children: (0, jsx_runtime_1.jsxs)("tr", __assign({ style: { background: 'rgba(0, 0, 0, 0.02)' } }, { children: [(0, jsx_runtime_1.jsx)("th", __assign({ style: __assign(__assign({}, thStyle), { width: 150 }) }, { children: "\u7EF4\u5EA6" })), (0, jsx_runtime_1.jsx)("th", __assign({ style: __assign(__assign({}, thStyle), { width: 88 }) }, { children: "\u6765\u6E90" })), (0, jsx_runtime_1.jsx)("th", __assign({ style: __assign(__assign({}, thStyle), { width: 76 }) }, { children: "\u6743\u91CD" })), (0, jsx_runtime_1.jsx)("th", __assign({ style: __assign(__assign({}, thStyle), { width: 96 }) }, { children: "\u5F97\u5206" })), (0, jsx_runtime_1.jsx)("th", __assign({ style: thStyle }, { children: "\u4E00\u53E5\u8BDD\u8BC4\u4EF7" })), (0, jsx_runtime_1.jsx)("th", __assign({ style: __assign(__assign({}, thStyle), { width: 56, textAlign: 'center' }) }, { children: "\u64CD\u4F5C" }))] })) }), globalDimensions.map(function (v, index) { return ((0, jsx_runtime_1.jsxs)("tbody", { children: [(0, jsx_runtime_1.jsxs)("tr", __assign({ style: { borderTop: BORDER } }, { children: [(0, jsx_runtime_1.jsx)("td", __assign({ style: __assign(__assign({}, tdNowrapStyle), { fontWeight: 500 }) }, { children: v.name })), (0, jsx_runtime_1.jsx)("td", __assign({ style: tdNowrapStyle }, { children: (0, jsx_runtime_1.jsx)(fbm_ui_1.Chip, { color: "success", label: "\u5168\u5C40", size: "small" }) })), (0, jsx_runtime_1.jsxs)("td", __assign({ style: __assign(__assign({}, tdNowrapStyle), { color: TEXT_MUTED }) }, { children: [v.weight, "%"] })), (0, jsx_runtime_1.jsxs)("td", __assign({ style: tdNowrapStyle }, { children: [(0, jsx_runtime_1.jsx)(mui_1.Box, __assign({ component: "span", sx: { color: SCORE_COLOR[v.scoreLevel] || 'rgba(0, 0, 0, 0.86)', fontWeight: 600 } }, { children: v.score })), (0, jsx_runtime_1.jsx)(mui_1.Box, __assign({ component: "span", sx: { color: TEXT_MUTED, ml: 0.5, fontSize: 12 } }, { children: v.scoreText }))] })), (0, jsx_runtime_1.jsx)("td", __assign({ style: __assign(__assign({}, tdStyle), { color: 'rgba(0, 0, 0, 0.6)' }) }, { children: v.answer })), (0, jsx_runtime_1.jsx)("td", __assign({ style: __assign(__assign({}, tdStyle), { textAlign: 'center' }) }, { children: canEditAiDimension && ((0, jsx_runtime_1.jsx)(fbm_ui_1.IconButton, __assign({ size: "small", onClick: function () { return setExpandedIndex(expandedIndex === index ? -1 : index); } }, { children: (0, jsx_runtime_1.jsx)(fbm_ui_1.EditIcon, {}) }))) }))] })), (0, jsx_runtime_1.jsx)("tr", { children: (0, jsx_runtime_1.jsx)("td", __assign({ colSpan: 6, style: { padding: 0 } }, { children: (0, jsx_runtime_1.jsx)(mui_1.Collapse, __assign({ in: expandedIndex === index }, { children: (0, jsx_runtime_1.jsxs)(mui_1.Box, __assign({ sx: { px: 2, pt: 1.5, pb: 2, bgcolor: '#FAFBFA', borderTop: BORDER } }, { children: [(0, jsx_runtime_1.jsxs)(fbm_ui_1.Typography, __assign({ variant: "caption", color: "textSecondary", display: "block", mb: 1 }, { children: ["\u8BC4\u4EF7\u6807\u51C6\uFF1A", v.define || '—'] })), (0, jsx_runtime_1.jsx)(ScoreSlider_1.default, { width: "100%", isShowLabel: true, score: v.score, scoreText: v.scoreText, scoreLevel: v.scoreLevel, valueLabelDisplay: "auto", onChangeCommitted: function (score) { return handleScoreChange(index, score); } }), (0, jsx_runtime_1.jsx)(mui_1.Stack, __assign({ mt: 1.5 }, { children: (0, jsx_runtime_1.jsx)(WorkPlace_1.default, { thirdOrderID: orderToken, token: v.token, canEdit: canEditAiDimension, answer: v.answer, mode: "show" }) }))] })) })) })) })] }, v.token || v.name)); })] })) })) }))] })) })));
|
|
88
90
|
};
|
|
89
91
|
exports.default = (0, react_1.memo)(Index);
|
|
@@ -18,7 +18,6 @@ var jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
18
18
|
var AIEvaluate_1 = __importDefault(require("./components/AIEvaluate"));
|
|
19
19
|
var CheatRisk_1 = __importDefault(require("./components/CheatRisk/CheatRisk"));
|
|
20
20
|
var Form_1 = require("./components/Form");
|
|
21
|
-
var GlobalDimensions_1 = __importDefault(require("./components/GlobalDimensions"));
|
|
22
21
|
var NotFinish_1 = __importDefault(require("./components/NotFinish"));
|
|
23
22
|
var V3Header_1 = __importDefault(require("./components/V3Header/V3Header"));
|
|
24
23
|
var VideoQuestion_1 = __importDefault(require("./components/VideoQuestion"));
|
|
@@ -89,7 +88,7 @@ var AiReportRoot = (0, react_1.forwardRef)(function (props, ref) {
|
|
|
89
88
|
borderRadius: 2,
|
|
90
89
|
overflow: 'hidden',
|
|
91
90
|
pb: 3,
|
|
92
|
-
} }, { children: [(0, jsx_runtime_1.jsx)(V3Header_1.default, { v3AssetBase: v3AssetBase, status: status, customScore: customScore, passScore: passScore, onRefreshSuccess: handleRefreshSuccess, fetchCandidateInfo: fetchCandidateInfo, onExportReportClick: onExportReportClick }), (0, jsx_runtime_1.jsxs)(fbm_ui_1.Box, __assign({ sx: { mx: 2, mt: 0.75 } }, { children: [((collection === null || collection === void 0 ? void 0 : collection.length) > 0 || !!(reportResult === null || reportResult === void 0 ? void 0 : reportResult.workplaceEvaluation)) && ((0, jsx_runtime_1.jsx)(AIEvaluate_1.default, {})),
|
|
91
|
+
} }, { children: [(0, jsx_runtime_1.jsx)(V3Header_1.default, { v3AssetBase: v3AssetBase, status: status, customScore: customScore, passScore: passScore, onRefreshSuccess: handleRefreshSuccess, fetchCandidateInfo: fetchCandidateInfo, onExportReportClick: onExportReportClick }), (0, jsx_runtime_1.jsxs)(fbm_ui_1.Box, __assign({ sx: { mx: 2, mt: 0.75 } }, { children: [((collection === null || collection === void 0 ? void 0 : collection.length) > 0 || !!(reportResult === null || reportResult === void 0 ? void 0 : reportResult.workplaceEvaluation)) && ((0, jsx_runtime_1.jsx)(AIEvaluate_1.default, {})), fetchFormResult && (0, jsx_runtime_1.jsx)(Form_1.FormReport, { fetchFormResult: fetchFormResult }), (0, jsx_runtime_1.jsx)(CheatRisk_1.default, {}), hasRisk && ((0, jsx_runtime_1.jsx)(fbm_ui_1.Box, __assign({ id: "report-risk-alert" }, { children: (0, jsx_runtime_1.jsx)(NotFinish_1.default, {}) }))), (0, jsx_runtime_1.jsx)(VideoQuestion_1.default, { isExportPdf: isExportPdf })] }))] })) })) })));
|
|
93
92
|
}, [
|
|
94
93
|
loading,
|
|
95
94
|
status,
|
|
@@ -58,7 +58,7 @@ function setupCanvas(canvas) {
|
|
|
58
58
|
var MAX_WIDTH = 354;
|
|
59
59
|
var MAX_HEIGHT = 18;
|
|
60
60
|
// 题目维度与全局维度之间的分隔线 + 说明(方案③:不逐条打标)
|
|
61
|
-
var DIVIDER_TEXT = '
|
|
61
|
+
var DIVIDER_TEXT = '以下为全局维度';
|
|
62
62
|
var DIVIDER_HEIGHT = 20;
|
|
63
63
|
// 粗略估算文本像素宽(与下方绘制所用 sans-serif 接近;中文宽、拉丁/数字窄)
|
|
64
64
|
var estimateTextWidth = function (s, cjkW, latinW) {
|
|
@@ -22,6 +22,8 @@ var fbm_ui_1 = require("fbm-ui");
|
|
|
22
22
|
var Report = function () {
|
|
23
23
|
var reportResult = (0, global_store_1.useAiReportStore)(function (store) { return [store.reportResult]; }).reportResult;
|
|
24
24
|
var _a = reportResult || {}, orderToken = _a.orderToken, score = _a.score, status = _a.status, _b = _a.collection, collection = _b === void 0 ? [] : _b;
|
|
25
|
-
return (
|
|
25
|
+
return (
|
|
26
|
+
// 400 宽度会把饼图标签挤到条形图上面(v2 是 500),这里放宽到 480 让标签有完整空间
|
|
27
|
+
(0, jsx_runtime_1.jsx)(fbm_ui_1.Box, __assign({ width: 480, flexShrink: 0 }, { children: (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 })] })) })));
|
|
26
28
|
};
|
|
27
29
|
exports.default = Report;
|