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.
@@ -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
- overflow: 'break',
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); } }), _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, sx: { marginTop: 1 }, 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%)'] }))] }))] })) })));
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;
@@ -52,7 +52,7 @@ function setupCanvas(canvas) {
52
52
  // Good: Array<number>;
53
53
  // Best: Array<number>;
54
54
  // }
55
- var DIVIDER_TEXT = '以下为全局维度(不按题目评价)';
55
+ var DIVIDER_TEXT = '以下为全局维度';
56
56
  var DIVIDER_HEIGHT = 20;
57
57
  var MAX_WIDTH = 315;
58
58
  var MAX_HEIGHT = 24;
@@ -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({}, tdStyle), { fontWeight: 500 }) }, { children: v.name })), _jsx("td", __assign({ style: tdStyle }, { children: _jsx(Chip, { color: "success", label: "\u5168\u5C40", size: "small" }) })), _jsxs("td", __assign({ style: __assign(__assign({}, tdStyle), { color: TEXT_MUTED }) }, { children: [v.weight, "%"] })), _jsxs("td", __assign({ style: tdStyle }, { 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)); })] })) })) }))] })) })));
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, {})), _jsx(GlobalDimensions, {}), fetchFormResult && _jsx(FormReport, { fetchFormResult: fetchFormResult }), _jsx(CheatRisk, {}), hasRisk && (_jsx(Box, __assign({ id: "report-risk-alert" }, { children: _jsx(NotFinish, {}) }))), _jsx(VideoQuestion, { isExportPdf: isExportPdf })] }))] })) })) })));
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 (_jsx(Box, __assign({ width: 400, 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 })] })) })));
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
- overflow: 'break',
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); } }), (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, sx: { marginTop: 1 }, 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%)'] }))] }))] })) })));
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;
@@ -55,7 +55,7 @@ function setupCanvas(canvas) {
55
55
  // Good: Array<number>;
56
56
  // Best: Array<number>;
57
57
  // }
58
- var DIVIDER_TEXT = '以下为全局维度(不按题目评价)';
58
+ var DIVIDER_TEXT = '以下为全局维度';
59
59
  var DIVIDER_HEIGHT = 20;
60
60
  var MAX_WIDTH = 315;
61
61
  var MAX_HEIGHT = 24;
@@ -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({}, tdStyle), { fontWeight: 500 }) }, { children: v.name })), (0, jsx_runtime_1.jsx)("td", __assign({ style: tdStyle }, { 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({}, tdStyle), { color: TEXT_MUTED }) }, { children: [v.weight, "%"] })), (0, jsx_runtime_1.jsxs)("td", __assign({ style: tdStyle }, { 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)); })] })) })) }))] })) })));
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, {})), (0, jsx_runtime_1.jsx)(GlobalDimensions_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 })] }))] })) })) })));
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 ((0, jsx_runtime_1.jsx)(fbm_ui_1.Box, __assign({ width: 400, 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 })] })) })));
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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eli-video-interview",
3
- "version": "1.9.0",
3
+ "version": "1.9.2",
4
4
  "description": "鳄梨科技 AI视频面试 React SDK",
5
5
  "author": "鳄梨科技",
6
6
  "license": "MIT",